Wireshark - SACK_PERM=1

Wireshark - SACK_PERM=1

我们正在捕获通过 Wireshark 从机器 1 到机器 2 的文件传输。虽然我无法捕获 any/few 重传错误,但其他人能够捕获大约 10 到 15 个重传错误和欠载错误。

在分析wire-shark捕获时,我发现主要区别在于我的捕获中未设置SACK_PERM标志,而其他捕获中未设置SACK_PERM=1

下面是

8535 7.272671 172.23.165.254 10.108.32.29 TCP 62 [TCP 重传] 29537 → 389 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 SACK_PERM=1

谁能解释一下 SACK_PERM flag 在网络传输中的作用?

提前致谢。

这是 RFC 2018 中的“Sack-Permitted”选项,“TCP 选择性确认选项”。它说两台机器可以使用“选择性确认”,这意味着,而不是仅仅说“我得到了这个序列号之前的所有字节”,他们可以说“我得到了这个范围内的所有字节和这个范围内的所有字节other range”,这意味着 not 未收到未列出的范围内的字节,因此他们可以说他们在某些范围之前和之后获得了字节,但没有收到中间的字节的范围。