TCP和UDP的报文格式

TCP和UDP的报文格式

 

  概要

  了解TCP和UDP的报文格式对于网络通信、系统设计、故障排查和安全性等多个方面都非常重要。

  一、TCP 报文格式(Transmission Control Protocol)

  TCP是面向连接、可靠的传输协议,其报文格式较复杂。TCP报文的格式如下:

    上图简化如下:

|  源端口(16位)  |  目的端口(16位)  |
|   序号(32位)   |
| 确认序号(32位) |
|  数据偏移(4位) | 保留(6位) | 标志位(6位) | 窗口大小(16位) |
| 校验和(16位)   |  紧急指针(16位)  |
|   选项(可选)   |
|   数据(可选)   |

   主要字段解释:

   1)源端口和目的端口:分别表示发送方和接收方的端口号,用于区分应用。

   2)序号:标识发送的数据字节流中的某个字节,用来保证数据按序接收。

   3)确认序号:接收方期望下次收到的数据序号,表示已成功接收到的数据。

   4)数据偏移:指出TCP头部的长度。

   5)标志位:有6个常用标志,用于控制和管理TCP连接的状态和数据传输过程。

  • 同步位SYN:SYN=1时,用于同步序列号,表示建立连接的请求。
  • 确认位ACK:ACK=1时,表示确认接收到数据包,确认报文中的序列号。
  • 终止位FIN:FIN=1时,用于关闭TCP连接,表示发送方不再发送数据。
  • 复位RST:RST=1时,用于强制重置连接,立即终止连接。
  • 推送位PSH:PSH=1时,提示接收方应该尽快将数据提交给应用层,而不要等到缓冲区填满后才传输。
  • 紧急位URG:URG=1时,提示优先处理紧急数据。与URG标志配合使用的还有一个紧急指针(Urgent Pointer),它指出紧急数据在数据段中的位置。

   这些标志位协同工作,确保TCP连接的建立、维护和关闭,以及可靠的数据传输和控制。

   6)窗口大小:用于流量控制,表示接收方能够接收的数据量。

   7)校验和:用于检验传输过程中是否发生数据错误。

   8)紧急指针:指向紧急数据的位置。

   9)选项:可选字段,常用于窗口缩放等高级功能。

   10)数据:实际传输的数据部分。

  二、UDP 报文格式(User Datagram Protocol)

  UDP是无连接、不可靠的传输协议,其报文格式相对简单。UDP报文的格式如下:

    上图简化如下:

|  源端口(16位)  |  目的端口(16位)  |
|   长度(16位)   |   校验和(16位)   |
|   数据(可选)   |

   主要字段解释:

   1)源端口和目的端口:分别表示发送方和接收方的端口号。

   2)长度:表示UDP头部和数据的总长度(最小值为8字节)。

   3)校验和:用于检验UDP头部和数据是否在传输过程中出现错误(可选字段)。

   4)数据:实际传输的数据部分。

   其中,UDP校验如下图:

    三、TCP报文和UDP报文的区别

   主要区别:

   TCP:面向连接,可靠传输,具有序号、确认机制等复杂功能,适用于需要可靠传输的场景(如文件传输、网页浏览等)。

   UDP:无连接,不可靠传输,报文格式简单,适用于对时效性要求高且容忍部分数据丢失的场景(如视频流、语音传输等)。

 

   

   参考链接:https://www.cnblogs.com/Chary/p/15954166.html

posted @ 2024-10-21 09:30  欢乐豆123  阅读(124)  评论(0编辑  收藏  举报