加入收藏 | 设为首页 | 会员中心 | 我要投稿 通化站长网 (https://www.0435zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

TCP数据段格式

发布时间:2021-05-01 15:43:54 所属栏目:传媒 来源:互联网
导读:号)(32位) 用于标识每个报文段,使目的主机可确认已收到指定报文段中的数据。当源主机用于多个报文段发送一个报文时,即使这些报文到达目的主机的顺序不一样,序列号也可以使目的主机按顺序排列它们。 在 SYN 标志未置位时,该字段指示了用户数据区中***个字

号)(32位)

用于标识每个报文段,使目的主机可确认已收到指定报文段中的数据。当源主机用于多个报文段发送一个报文时,即使这些报文到达目的主机的顺序不一样,序列号也可以使目的主机按顺序排列它们。

在 SYN 标志未置位时,该字段指示了用户数据区中***个字节的序号;在 SYN 标志置位时,该字段指示的是初始发送的序列号。

在建立连接时发送的***个报文段中,双方都提供一个初始序列号。TCP 标准推荐使用以 4ms 间隔递增 1 的计数器值作为这个初始序列号的值。使用计数器可以防止连接关闭再重新连接时出现相同的序列号。

对于那些包含数据的报文段,报文段中***个数据字节的数量就是初始序列号,其后数据字节按顺序编号。如果源主机使用同样的连接发送另一个报文段,那么这个报文段的序列号等于前一个报文段的序列号与前一个报文段中数据字节的数量之和。例如,假设源主机发送 3 个报文段,每个报文段有 100 字节的数据,且***个报文段的序列号是 1000,那么第二个报文段的序列号就是 1100(1000 + 100),第三个报文段的序列号就是 1200(1100 + 100)。

如果序列号增大至***值将复位为 0。

4.确认号(32位)

目的主机返回确认号,使源主机知道某个或几个报文段已被接收。如果 ACK 控制位被设置为 1,则该字段有效。确认号等于顺序接收到的***一个报文段的序号加 1,这也是目的主机希望下次接收的报文段的序号值。返回确认号后,计算机认为已接收到小于该确认号的所有数据。

例如,序列号等于前一个报文段的序列号与前一个报文段中数据字节的数量之和。例如,假设源主 机发送 3 个报文段,每个报文段有 100 字节的数据,且***个报文段的序列号是 1000,那么接收到***个报文段后,目的主机返回含确认号1100 的报头。接收到第二个报文段(其序号为 1100 )后,目的主机返回确认号 1200。接收到第三个报文段后,目的主机返回确认号 1300 。

目的主机不一定在每次接收到报文段后都返回确认号。在上面的例子中,目的主机可能等到所有 3 个报文段都收到后,再返回一个含确认号 1300 的报文段,表示已接收到全部 1200 字节的数据。但是如果目的主机再发回确认号之前等待时间过长,源主机会认为数据没有到达目的主机,并自动重发。

上面的例子中,如果目的主机接收到了报文段号为 1000 的***个报文段以及报文段号为 1200 的***一个报文段,则可返回确认号 1100,但是再返回确认号 1300 之前,应该等待报文段号为 1100 的中间报文段。

5.数据偏移(首部长度)(4位)

TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远,即首部长度。 由于 TCP 报头的长度随 TCP 选项字段内容的不同而变化,因此报头中包含一个指定报头字段的字段。该字段以 32 比特为单位,所以报头长度一定是 32 比特的整数倍,有时需要在报头末尾补 0 。如果报头没有 TCP 选项字段,则报头长度值为 5 ,表示报头一个有 160 比特,即 20 字节。

6.保留位(6位)

(编辑:通化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读