【计算机⽹络】TCPIP通信处理过程
1.数据包⾸部
每个分层中都会对所发送的数据附加⼀个⾸部,其中包含了该层必要的信息,如发送端地址、接收端地址以及协议等相关信息。
2.发送数据包
1)应⽤程序处理
进⾏编码处理(相当于表⽰层功能),管理何时建⽴通信何时发送数据等功能(相当于会话层功能)。建⽴连接后将数据发送给下⼀层的TCP,再做实际的转发处理。
2)TCP模块的处理
TCP根据应⽤的提⽰,负责建⽴连接、发送数据以及断开连接。提供可靠传输。
在数据前端附加⼀个TCP⾸部,包括源端⼝号、⽬标端⼝号(⽤以识别发送主机跟接收主机上的应⽤)、序号以及校验和(判断数据是否被损坏)。再将数据发送给IP。
3)IP模块的处理
IP在TCP传过来的数据前附加IP⾸部,包括接收端IP、发送端IP、上层协议等信息。
IP包⽣成后,参考路由控制表决定接收此IP包的路由或主机。随后将数据发送给连接这些路由器或主机⽹络接⼝驱动程序,以实现真正的数据发送。
如果不知道接收端MAC地址,则通过ARP查。
4)⽹络接⼝(以太⽹驱动)的处理
在接收到的数据前⾯附加以太⽹⾸部进⾏发送处理。以太⽹⾸部中包含接收端MAC地址、发送端MAC地址以及标志以太⽹类型的以太⽹数据协议。发送处理中的FCS由硬件计算,添加到包的最后。FCS为了判断数据包在传输过程中是否被破坏。
3.经过数据链路的包
包流动时,从前往后依次被附加了以太⽹包⾸部、IP包⾸部、TCP包⾸部(或UDP包⾸部)以及应⽤⾃⼰的包⾸和数据。⽽包的最后则被添加了以太⽹包尾。
每个包⾸部中⾄少包含两个信息:⼀个是发送端和接收端地址,另⼀个是上⼀层的协议类型。
经过每个协议分层时,都必须有识别包发送端和接收端的信息。以太⽹会⽤MAC地址,IP会⽤IP地址,⽽TCP/IP则会⽤端⼝号作为识别两端主机的地址。
4.数据包接收处理
包的接收流程是发送流程的逆序过程。
1)⽹络接⼝(以太⽹驱动)的处理
主机接收到以太⽹包以后,⾸先从包⾸部到MAC地址判断是否为发给⾃⼰的包。如果不是则丢弃数据。
如果是发给⾃⼰的包,就查包⾸部中的类型域,确定传送过来的数据类型,传给相应的⼦程序进⾏处理(若是IP类型作为传给IP,若是ARP类型则传给ARP处理),若没有对应的类型,则丢弃数据。
2)IP模块的处理
IP模块收到包以后,做相似处理。如果包⾸部的IP地址与⾃⼰的IP地址匹配,则接收数据并查上⼀层协议。如果上⼀层是TCP就传给TCP 处理,如果是UDP则传给UDP处理。对于路由器,往往接收端地址不是⾃⼰的地址,此时需要借助路由控制表转发数据。
3)TCP模块的处理
TCP模块⾸先会计算校验和,判断数据是否被破坏。然后检查是否按照序号接收数据。最后检查端⼝号,确定具体的应⽤程序。
数据接收完毕后,接收端会发送⼀个“确认回执”给发送端。如果该信息⼀直未到达,那么发送端会认为接收端没有接收数据⽽⼀直反复发送。
数据完整地接收以后,会传给由端⼝号识别的应⽤程序。
4)应⽤程序的处理
接收端应⽤程序会直接接收发送的数据。如果接收正常,会返回“处理正常”的回执,否则会发送相应的错误信息。
——《图解TCP IP》学习笔记tcpip路由协议
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论