Appearance
Appearance
默认情况下,Wireshark 和 TShark 会跟踪所有 TCP 会话,并将所有 Sequence Numbers(SEQ numbers)和 Acknowledge Numbers(ACK Numbers)转换为相对数值。这意味着 Wireshark 不会在显示中展示真实/绝对的 SEQ 和 ACK numbers,而是显示相对于该会话中首次看到的 segment 的 SEQ 和 ACK number。
这意味着,在每个会话中首次看到的数据包,其所有 SEQ 和 ACK numbers 始终从 0 开始。
与真实数值相比,这使这些数值更小、更易阅读和比较;真实数值通常在 SYN 阶段初始化为 0 - (2^32)-1 范围内随机选择的数值。
此可用性功能依赖 TCP_Analyze_Sequence_Numbers 中的功能,因此若要使用此功能,还必须启用 TCP_Analyze_Sequence_Numbers。
使用相对序列号是一项可用性增强功能,可让数值更易阅读和比较。为了将解析结果与无法处理相对序列号的较低级分析器的数据进行比较,可能需要在 Wireshark 中临时禁用此功能。
对于 1.5 之前的 Wireshark 版本:启用 Relative Sequence Numbers 首选项时,Wireshark 也会启用 "Window Scaling"。
对于 Wireshark 1.5 及更新版本:"Window Scaling" 是一个单独的 TCP 首选项,默认启用。
如果启用了 "Window Scaling",Wireshark 会尝试监控在 SYN 阶段协商的 TCP Window Scaling 选项;如果检测到此类 TCP Window Scaling,Wireshark 还会缩放 window 字段,并将其转换为有效窗口大小。这可能会影响所解析和报告的窗口值,并可能使 Wireshark 与其他工具相比以不同但更准确的方式解码数据包。
若要禁用相对序列号并改为将其显示为真实的绝对数值,请进入 TCP 首选项,并取消勾选 relative sequence numbers 复选框。
相对序列号和窗口缩放。
tcp.window_size_scalefactor - 窗口大小缩放因子(未知时为 -1,未使用缩放时为 -2)
SampleCaptures/200722_win_scale_examples_anon.pcapng
TCP Stream 0 - 客户端和服务器在 SYN 和 SYN/ACK TCP options 中提供 shift count(scale factor)。
TCP Stream 1 - 双端均不支持。服务器的 SYN/ACK 中没有 shift count。设置为 -2 - no scaling。
TCP Stream 2 - 未捕获来自客户端的 SYN。Wireshark 将 scale factor 设置为 -1 - unknown
Scaling Factor 只会在 TCP 连接开始时的 SYN 和 SYN/ACK 数据包中发送,这说明了为什么在排查问题时捕获完整 TCP 握手非常重要。
当 Window Scale Factor 为 -1(unknown)或 -2(no scaling)时,Calculated Window size = TCP header 中的 Window Size 值。
可以使用 TCP 首选项覆盖 -1(unknown)scale factor。
在 Packet List 中的 TCP 数据包上右键单击,或在 Packet Details 中的 TCP section header 或 TCP field 上右键单击。
TCP Preferences 也可通过 Edit -> Preferences... -> Protocols -> TCP 访问
Packet details 会指示由 TCP Preferences 设置提供的字段值。
于 2020-08-11 23:26:32 UTC 从 https://wiki.wireshark.org/TCP_Relative_Sequence_Numbers 导入




