如何解释不包含两个地址的 SACK

网络工程 tcp
2022-02-06 05:10:26

TCP 报头可以包含 SACK 选项,它允许选择性确认。正如我在野外看到的那样,SACK 选项通常包含两个序列号,比如说 0x00004000 和 0x00006000,然后这个段序列号是例如 0x00002000,这意味着:我拥有 0x00002000 之前的所有内容,并且我也拥有所有内容在 0x00004000 到 0x00006000 之间,所以从 0x00002001 开始发送。

在维基百科上,我读到 SACK 选项也可以包含 1、3 或 4 个地址。他们的意思是什么?

1个回答

好的,我自己发现了答案:该选项包含 1 到 4 个地址范围。

这意味着长度为 10 的 SACK 选项不包含“一个地址”,而是“一个地址范围”,因为序列号当然只有 4 个字节(类型选项为 +1 个字节,长度为 +1 个字节选项),呃。