您的位置:首页 > 理论基础 > 计算机网络

linux内核学习之网络篇——TCP/IP概述

2012-09-26 21:20 507 查看
1.ISO 参考模型

因特网协议栈中的层

人们已经进行了一些讨论关于如何将TCP/IP参考模型映射到到OSI模型。由于TCP/IPOSI模型组不能精确地匹配,还没有一个完全正确的答案。

另外,OSI模型下层还不具备能够真正占据真正层的位置的能力;在传输层和网络层之间还需要另外一个层(网络互连层)。特定网络类型专用的一些协议应该运行在网络层上,但是却运行在基本的硬件帧交换上。类似协议的例子有地址解析协议生成树协议(用来保持冗余网桥的空闲状态直到真正需要它们)。然而,它们是本地协议并且在网络互连功能下面运行。不可否认,将两个组(更不用说它们只是运行在如ICMP等不同的互连网络协议上的逻辑上的网络层的一部分)整个放在同一层会引起混淆,但是OSI模型还没有复杂到能够做更好的工作。

下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:

下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:

7应用层例如HTTPSMTPSNMPFTPTelnetSIPSSHNFSRTSPXMPPWhoisENRP
6表示层例如XDRASN.1SMBAFPNCP
5会话层例如ASAPTLSSSH、ISO
8327 / CCITT X.225、RPCNetBIOSASPWinsock、BSD
sockets
4传输层例如TCPUDPRTPSCTPSPXATPIL
3网络层例如IPICMPIGMPIPXBGPOSPFRIPIGRPEIGRPARPRARPX.25
2数据链路层例如以太网令牌环HDLC帧中继ISDNATM、IEEE
802.11、FDDIPPP
1实体层例如线路无线电光纤
通常人们认为OSI模型的最上面三层(应用层、表示层和会话层)在TCP/IP组中是一个应用层。由于TCP/IP有一个相对较弱的会话层,由TCP和RTP下的打开和关闭连接组成,并且在TCP和UDP下的各种应用提供不同的端口号,这些功能能够被单个的应用程序(或者那些应用程序所使用的库)增加。与此相似的是,IP是按照将它下面的网络当作一个黑盒子的思想设计的,这样在讨论TCP/IP的时候就可以把它当作一个独立的层。

4应用层
(OSI

5 到 7层)
例如HTTPFTPDNS
(如BGPRIP这样的路由协议,尽管由于各种各样的原因它们分别运行在TCP和UDP上,仍然可以将它们看作网络层的一部分)
3传输层
(OSI

4层)
例如TCPUDPRTPSCTP
(如OSPF这样的路由协议,尽管运行在IP上也可以看作是网络层的一部分)
2网络互连层
(OSI

3层)
对于TCP/IP来说这是因特网协议(IP)
(如ICMPIGMP这样的必须协议尽管运行在IP上,也仍然可以看作是网络互连层的一部分;ARP不运行在IP上)
1网络接口层
(OSI

1和2层)
例如以太网Wi-FiMPLS等。
其中,每层都只能与紧邻的层通信。下面介绍一下各层执行的任务

网络接口层,主要是负责将信息从一台计算机传输到远程的计算机。将数据流划分为定长的帧。在我们生活中,它主要是包括网络物理介质 网线,网卡,网卡有个全球唯一的的MAC地址。
网络互联层的主要任务就是找到一条线路让两台计算机能互联。网络层也负责其他链接信息。比如传输的数据划分定长。网络层还分配网络中唯一的的地址,就是我们耳熟的IP地址.
传输层,计算机之间建立通信链接还远远不够,该层的任务就是控制应用程序之间的数据传输。就是TCP和UDP模型。而我们所说的socket的编程,就是ip+tcp端口才能唯一确定两个应用程序之间互相通信。
应用层就是面向应用的一层了。应用层主要是负责两个应用程序传输实际的数据内容了。
给出一个比较直接的数据流图,



下节简单介绍一些socket编程基本函数。

更多文章,欢迎访问http://blog.csdn.net/wallwind

来源: <可视化编辑器,alt+1到9键,切换到工具区,tab键,选择按钮,esc键,返回编辑>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息