寻找丢失的数据包

网络工程 包分析
2021-07-30 03:35:20

我有两个捕获:发送方捕获文件和接收方捕获文件。

当我在发送方应用 tcp.analysis.lost_segment 过滤器时,我没有看到任何帧弹出。当我在接收器端应用相同的内容并看到与描述匹配的黑色突出显示的列时,“专家信息(警告/序列):上一段未捕获(捕获开始时常见)”。

  1. 谁先知道(发送者或接收者)数据包丢失了?
  2. 在发送方滚动。我确实看到帧以黑色突出显示,信息为“这是 TCP 重复 ACK”。这是丢失的数据包吗?但是这一帧与接收方说的“prev seg not capture”不同。
  3. 应该使用哪个捕获文件来识别丢失的数据包?
1个回答

实际上,在网络中,如果您只关注端点,您永远不知道数据包是否丢失。这是因为您无法区分丢失的数据包(被路由器丢弃或什至在链路层损坏)和极度延迟的传输(数据包仍在线路上或在队列中,但未被处理)。

TCP 重复 ACK 表示:您收到了来自服务器的确认,但它提供了与上一个 ACK​​ 相同的序列号。这意味着中间数据包丢失(因为接收器两次确认该号码)或极度延迟。但是当您收到另一个 ACK​​(重复的 ACK)时,这意味着网络路径并未完全拥塞。因此,如果您连续收到多个 ACK​​,您可以假设 ACK 数据包在其他数据包通过时丢失。许多 TCP 实现然后执行所谓的快速重传,因此它们不会等待重传超时,而是重新发送第一个未确认的数据包。这对于拥塞窗口也有一些影响。

消息“专家信息(警告/序列):未捕获上一个段(捕获开始时常见)”意味着以下内容:在接收方,您捕获了未看到相应段的序列号的传出 ACK 数据包。这是很常见的,因为可能有一个段到达,您开始捕获,然后您的 TCP 堆栈回复一个 ACK​​。所以没有办法看到传入的数据包。这并不一定表示亏损。