1. TCP/IP通常被认为是一个四层协议:物理层/数据链路层、网络层、传输层、应用层,如下图所示:
2. 各层的主要功能如下表所示:
属性 | 物理层 | 数据链路层 | 网络层 | 传输层 | 应用层 |
单位 | 比特流 | 帧 | 数据报 | 报文段,用户数据报或分组 | 报文 |
协议 | 无固定协议 | 无固定协议 | IP/ICMP/ARP/IGMP | TCP/UDP/SCTP | HTTP/SMTP/FTP/DNS/DHCP |
通讯方式 | 节点到节点(PC或者Router) | 节点到节点 | 端到端 | 进程间 | |
属性 | 数据头,发送方和接收方的物理地址(连接设备的地址) | 数据头,发送方和接受方的逻辑地址(IP地址) | 数据头,服务点地址(端口地址) | 数据正文 | |
备注 | 比特通过编码变成电(铜线)或光(光纤)信号。 | 当从A节点到B节点的后,会在B节点产生一个新帧传输到C节点。 | 两个系统连接到一个链路上则不需要网络层 | 纠错通过重传完成 | OSI模型中会话层,表示层和应用层的组合 |
概括 | 通过媒体传输比特数据 | 控制何时发送比特。将比特组装成帧,提供逐跳交付 | 从源到终点的传送分组,提供网络互联,将分组送到正确的计算机 | 提供可靠的进程到进程的交付和差错恢复。将报文送到正确的进程。 | 让软件接入网络。 |
任务 | 编码技术(如+5v表示1,-5V表示0) | 组帧,物理编址(MAC地址),流量控制,差错控制,接入控制 | 逻辑编址(IP地址),路由选择(选择最佳路线) | 服务点编址(端口),分段与重传,连接控制,流量控制和差错控制。 | 回话控制,转换,加密,压缩, |
说白点 | 发送数据 | 发送给哪个网卡 | 发送给哪个IP地址 | 发送给哪个程序(进程或端口号) | 发送什么数据 |
3. 在局域网中的一个工作示例:
4. 比较专业点的解释
TCP/IP由四个层次组成:网络接口层、网间网层、传输层、应用层
网络接口层:这是TCP/IP软件的最低层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。
网间网层:负责相邻计算机之间的通信。其功能包括三方面。一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。二、处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。三、处理路径、流控、拥塞等问题。
传输层:提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。
应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。
5. 实例解释
用浏览网页为例:
发送方:
(1)输入网址:www.baidu.com ,按了回车键,电脑使用应用层用IE浏览器将数据从80端口发出,给了下一层协议——传输层。
(2)传输层将数据前面加上了TCP标记,标记这是80端口发出的哦,将这个数据段给了下一层——网络层。
(3)网络层在使这个数据段前面加上了自己机器的IP和目的IP,这时这个段被称为IP数据包(也可以称为报文),然后将这个IP包给了下一层协议——网络接口层。
(4)网络接口层,网络接口层先将IP数据包前面加上自己机器的MAC地址,以及目的MAC地址,这时加上MAC地址的数据称为帧,网络接口曾最后用对应的物理设备——网卡,将这个帧以比特流的方式发送到网络上。
互联网上有路由器,它会读取比特流中的IP地址进行选路,到达正确的网段,之后这个网段的交换机读取比特流中的MAC地址,找到对应要接收的机器。
接收方:
(1)网络接口层用网卡接收到了比特流,读取比特流中的帧,将帧中的MAC地址去掉,就成了IP数据包,传递给了上一层网络层。
(2)网络层接收了下层传上来的IP数据包,将IP从包的前面拿掉,取出带有TCP的数据(数据段)交给了传输层。
(3)传输层拿到了这个数据段,看到TCP标记的是80端口发送的嘛,那就是HTTP协议咯,之后将TCP头去掉并将数据交给应用层,告诉应用层对方要求的是HTTP的数据。
(4)应用层知道了这个是发送方以端口80发送过来的数据,知道TCP端口80是HTTP协议,要用IE来回复,所以将www.baidu.com 的网址按照发送方的方式发送回去。
参考文献:
【1】TCP/IP协议分层。http://www.4ucode.com/Study/Topic/2052744
【2】TCP/IP 分层。http://www.vlan9.com/net-protocol/g901160508.html
【3】TCP IP 分层模型是怎样的,各有什么基本作用?http://zhidao.baidu.com/question/20995981.html
【4】网络接口层、网际层、传输层、应用层之间的对应关系?http://zhidao.baidu.com/question/42613476