快捷搜索:

TCP IP协议栈的各个层次解释

对付收集协议有所懂得的同伙,信托都知道TCP IP收集协议这个大年夜户,那么对付TCP IP协议来说,我们必要掌握的内容还真不少,此次我们则重点解说一下协议栈的内容。我们知道,TCP IP收集协议栈分为利用层(Application)、传输层(Transport)、收集层(Network)和链路层(Link)四层。如下图所示

图 TCP IP协议栈

两台谋略机经由过程TCP IP协议通讯的历程如下所示

图 TCP IP通讯历程

传输层及其以下的机制由内核供给,利用层由用户进程供给(后面将先容若何应用socket API编写利用法度榜样),利用法度榜样对通讯数据的含义进行解释,而传输层及其以下处置惩罚通讯的细节,将数据从一台谋略机经由过程必然的路径发送到另一台谋略机。利用层数据经由过程协议栈发到收集上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示

图 TCP IP数据包的封装

不合的协议层对数据包有不合的称谓,在传输层叫做段(segment),在收集层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉落响应的首部,着末将利用层数据交给利用法度榜样处置惩罚。

上图对应两台谋略机在同一网段中的环境,假如两台谋略机在不合的网段中,那么数据从一台谋略机到另一台谋略机传输历程中要颠末一个或多个路由器,如下图所示

图 跨路由器通讯历程

其其实链路层之下还有物理层,指的是电旌旗灯号的通报要领,比如现在以太网通用的网线(双绞线)、早期以太网采纳的的同轴电缆(现在主要用于有线电视)、光纤等都属于物理层的观点。物理层的能力抉择了最大年夜传输速度、传输间隔、抗滋扰性等。集线器(Hub)是事情在物理层的收集设备,用于双绞线的连接和旌旗灯号中继(将已衰减的旌旗灯号再次放大年夜使之传得更远)。

链路层有以太网、令牌环网等标准,链路层认真网卡设备的驱动、帧同步(便是说从网线上检测到什么旌旗灯号看成新帧的开始)、冲突检测(假如检测到冲突就自动重发)、数据缺点校验等事情。互换机是事情在链路层的收集设备,可以在不合的链路层收集之间转发数据帧(比如十兆以太网和百兆以太网之间、以太网和令牌环网之间),因为不合链路层的帧款式不合,互换机要将进来的数据包拆掉落链路层首部从新封装之后再转发。

收集层的IP协议是构成Internet的根基。Internet上的主机经由过程IP地址来标识,Internet上有大年夜量路由器认真根据IP地址选择相宜的路径转发数据包,数据包从Internet上的源主机到目的主机每每要颠末十多个路由器。路由器是事情在第三层的收集设备,同时兼有互换机的功能,可以在不合的链路层接口之间转发数据包,是以路由器必要将进来的数据包拆掉落收集层和链路层两层首部并从新封装。IP协议不包管传输的靠得住性,数据包在传输历程中可能损掉,靠得住性可以在上层协议或利用法度榜样中供给支持。

收集层认真点到点(point-to-point)的传输(这里的"点"指主机或路由器),而传输层认真端到端(end-to-end)的传输(这里的"端"指源主机和目的主机)。传输层可选择TCP或UDP协议。TCP是一种面向连接的、靠得住的协议,有点像打电话,双方拿起电话互通身份之后就建立了连接,然后措辞就行了,这边说的话那边包管听获得,并且是按措辞的顺序听到的,说完话挂机断开连接。也便是说TCP传输的双方必要首先建立连接,之后由TCP协议包管数据收发的靠得住性,损掉的数据包自动重发,上层利用法度榜样收到的老是靠得住的数据流,通讯之后关闭连接。UDP协议不面向连接,也不包管靠得住性,有点像寄信,写好信放到邮筒里,既不能包管信件在邮递历程中不会损掉,也不能包管信件是按顺序寄到目的地的。应用UDP协议的利用法度榜样必要自己完成丢包重发、消息排序等事情。

目的主机收到数据包后,若何颠末各层协议栈着末到达利用法度榜样呢?全部历程如下图所示

图 Multiplexing历程

以太网驱动法度榜样首先根据以太网首部中的"上层协议"字段确定该数据帧的有效载荷(payload,指撤除协议首部之外实际传输的数据)是IP、ARP照样RARP协议的数据报,然后交给响应的协议处置惩罚。要是是IP数据报,IP协议再根据IP首部中的"上层协议"字段确定该数据报的有效载荷是TCP、UDP、ICMP照样IGMP,然后交给响应的协议处置惩罚。要是是TCP段或UDP段,TCP或UDP协议再根据TCP首部或UDP首部的"端口号"字段确定应该将利用层数据交给哪个用户进程。IP地址是标识收集中不合主机的地址,而端口号便是同一台主机上标识不合进程的地址,IP地址和端口号合起来标识收集中独一的进程。

留意,虽然IP、ARP和RARP数据报都必要以太网驱动法度榜样来封装成帧,然则从功能上划分,ARP和RARP属于链路层,IP属于收集层。虽然ICMP、IGMP、TCP、UDP的数据都必要IP协议来封装成数据报,然则从功能上划分,ICMP、IGMP与IP同属于收集层,TCP和UDP属于传输层。

您可能还会对下面的文章感兴趣: