首页 > 编程知识 正文

tcp报头中的字段信息,udp首部字段

时间:2023-05-06 17:23:46 阅读:15609 作者:3376

CP标头中的最后一个选项字段(options )是可变长度的选项信息。 此部分最多包含40个字节。 这是因为TCP标头最多为60个字节。 这还包括前面提到的20字节固定部分。 典型的TCP头部选项结构如图所示。

选项的第一个字段kind指示选项的类型。 http://www.Sina.com /第二个字段length (如果有) http://www.Sina.com)此长度包括kind字段和length字段所占的2字节3358 www.Sina.com 图

1,http://www.Sina.com /

一个消息段只使用一次。 记入末尾是为了说明开头没有更多的信息,APP应用数据位于下一个32位字的开头

2,http://www.Sina.com /

没有特别的意思。有的TCP选项没有后面两个字段,仅包含1字节的kind字段

指定该选项的总长度

在TCP连接初始化时,通信双方使用此选项协商最大段长度。 TCP模块通常将MSS设置为(MTU-40 )字节(减去此40字节,包括20字节TCP标头和20字节IP标头)。 这将确保具有TCP段的IP数据报的长度不超过MTU,并且不会在本地生成IP分片。 假设TCP标头和IP标头都不包含选项字段,这也很常见。 对于以太网,请访问第三个字段info(如果有的话)是选项的具体信息

kind=0,选项表结束(EOP)选项

初始化TCP连接时,通信双方使用该选项协商接收窗口的放大因子。 在TCP头部中,接收窗口大小由16位表示,因此最多为65535字节,但实际上TCP模块允许的接收窗口大小不仅如此(为了提高TCP通信的吞吐量)。 窗口放大因子解决了这个问题。

假设TCP报头中的接收通知窗口大小为n,窗口放大因子(移位数)为m,则TCP消息段的实际接收通知窗口大小向左移位N*2M或n m个比特。 请注意m的可取范围为0~14。 可以通过修改/proc/sys/net/IP v4/TCP _ window _ scaling内核变量来启用或禁用窗口放大因子选项。

与MSS选项类似,窗口放大因子选项只显示在同步消息段中,否则将被忽略。 但是,同步段自身不进行窗口的放大操作。 也就是说,同步段的开头处的接收窗口的大小是该TCP段的实际接收窗口的大小。 连接建立后,各数据传输方向的窗口放大率保持不变。

kind=1,空操作(NOP)选项

在TCP通信的情况下,如果一个TCP段丢失,TCP将重传紧跟在最后确认的TCP段之后的所有段,并且原本正确传输的TCP段也被重复发送,这样TCP性能可能降低。 SACK技术是为了改善这种情况而产生的,TCP仅重发丢失的TCP分段,而不需要发送所有未被确认的TCP分段。 选项确认选项在初始化连接时使用,并指示是否支持SACK技术。 可以通过修改/proc/sys/net/ipv4/tcp_sack内核变量来启用或禁用选择性确认选项。

一般用于将TCP选项的总长度填充为4字节的整数倍

此可选参数将发送方接收并缓存的不连续数据块通知发送方,以便发送方可以据此检查并重新发送丢失的数据块。 每个块边缘参数包含一个4字节的序列号。 这里,块的左端表示不连续块的第一数据的序列号,块的右端表示不连续块的最后的数据的序列号的下一个序列号。 不会接收这些参数对(块的左边和块的右边)之间的数据。 因为块信息占用8个字节,TCP报头选项实际上最多可以包括4个这样的不连续数据块(考虑可选的类型和长度占用的2个字节)。

3、kind=2,最大报文段长度(MSS)选项

此选项提供了一种更准确地计算通信伙伴之间循环时间(RTT )的方法,并为TCP流量控制提供了重要信息。 要启用或禁用时间戳选项,请修改/proc/sys/net/IP v4/TCP _ timestamps内核变量。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。