TCP/IP通信处理过程
Posted 西邮Linux兴趣小组
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP/IP通信处理过程相关的知识,希望对你有一定的参考价值。
数据包首部
01
数据包首部
发送数据包
01
应用程序处理
进行编码处理(相当于表示层功能),管理何时建立通信,何时发送数据等功能(相当于会话层功能)。建立连接后将数据发送给下一层的TCP,再做实际的转发处理。
02
TCP模块的处理
TCP根据应用的提示,负责建立连接、发送数据以及断开连接。提供可靠传输。
在数据前端附加一个TCP首部,包括源端口号、目标端口号(用以识别发送主机跟接收主机上的应用)、序号以及校验和(判断数据是否被损坏)。再将数据发送给IP。
03
IP模块的处理
IP在TCP传过来的数据前附加IP首部,包括接收端IP、发送端IP、上层协议等信息。
04
网络接口的处理
经过数据链路的包
包流动时,从前往后依次被附加了以太网包首部、IP包首部、TCP包首部(或UDP包首部)以及应用自己的包首和数据。而包的最后则被添加了以太网包尾。
数据包接收处理
包的接收流程是发送流程的逆序过程。
01
网络接口的处理
如果是发给自己的包,就查找包首部中的类型域,确定传送过来的数据类型,传给相应的子程序进行处理(若是IP类型作为传给IP,若是ARP类型则传给ARP处理),若没有对应的类型,则丢弃数据。
02
IP模块的处理
TCP模块首先会计算校验和,判断数据是否被破坏。然后检查是否按照序号接收数据。最后检查端口号,确定具体的应用程序。
数据接收完毕后,接收端会发送一个“确认回执”给发送端。如果该信息一直未到达,那么发送端会认为接收端没有接收数据而一直反复发送。数据完整地接收以后,会传给由端口号识别的应用程序。
03
应用程序的处理
接收端应用程序会直接接收发送的数据。如果接收正常,会返回“处理正常”的回执,否则会发送相应的错误信息。
以上是关于TCP/IP通信处理过程的主要内容,如果未能解决你的问题,请参考以下文章