TCP报文段的结构如下:
源端口号(16位):用于标识发送方的应用程序使用的端口号。
目的端口号(16位):用于标识接收方的应用程序使用的端口号。
序列号(32位):用于按序传输数据,指示发送方已发送的字节流的顺序。
确认号(32位):在确认应答中使用,指示期望接收方下一个需要接收的字节序号。
数据偏移(4位):指示TCP报文段头部长度,以4字节为单位。
保留(6位):保留字段,未使用。
控制位(6位):包括URG、ACK、PSH、RST、SYN和FIN等标志位,用于控制连接的建立、维护和关闭。
窗口大小(16位):用于流量控制,指示发送方可以接收的字节量。
校验和(16位):用于检验报文段是否在传输过程中发生了错误。
紧急指针(16位):当URG标志位被设置时,指示紧急数据的位置。
选项和填充(可变长度):可选的字段,用于在需要时提供额外信息。
UDP报文段的结构相对简单:
源端口号(16位):用于标识发送方的应用程序使用的端口号。
目的端口号(16位):用于标识接收方的应用程序使用的端口号。
长度(16位):指示UDP报文段的总长度,包括头部和数据部分。
校验和(16位):用于检验报文段是否在传输过程中发生了错误。
数据(可变长度):将应用层数据封装在UDP报文段中进行传输。
TCP报文段相对复杂,提供了可靠性和有序性,并支持连接的建立和维护;
而UDP报文段相对简单,不提供可靠性和有序性,适合于实时性要求高、容忍数据丢失的应用场景。