2013-07-23 63 views
1

我正在使用类似“tcp src localhost”的过滤器过滤带有libpcap的数据包。它过滤所有来源是localhost(我的主机)的数据包。
当localhost没有收到已经发送的sendt数据包的TCP确认时,localhost会转发数据包。
并非所有通过libpcap过滤的数据包都会到达其目的地,并且我需要确定数据包何时是“转发数据包”。有什么方法可以用libpcap来识别转发的数据包吗?使用libpcap检测重传数据包

回答

1

根据我的理解,您正在寻找TCP重传。这些可以通过显示装配工在wireshark捕获后找到。这两个应该可以帮助您:

  • 重传的分组可以通过该显示器滤光片tcp.analysis.retransmissionmore such filters)中找到。
  • 当接收方得到一个乱序的数据包(通常表示丢失数据包)时,它会发送一个缺失的seq编号的ACK。这是一个重复的ACK,可以使用tcp.analysis.duplicate_ackdetails)找到。
+0

你说得对。还没有听说过这个术语,但现在我看到“转播”是专家用过的术语。 – tremendows

+0

libpcap过滤器“tcp src localhost和(not tcp.analysis.retransmission)”编译失败(pcap_compile(...))。它适用于wireshark,但我正在寻找libpcap过滤器。无论如何,感谢您的帮助,如果不可能libpcap我将不得不寻找其他选项,如tshark。 – tremendows

+0

是的,这就是为什么我说它的显示过滤器。它不是一个捕获过滤器。 – jman