【问题标题】:Detecting retransmitted packet with libpcap使用 libpcap 检测重新传输的数据包
【发布时间】:2013-07-22 16:41:39
【问题描述】:

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

【问题讨论】:

    标签: tcp wireshark packet pcap libpcap


    【解决方案1】:

    据我了解,您正在寻找 TCP 重传。这些可以在捕获后通过 display fitters 在wireshark 中找到。这两个应该可以帮助你:

    • 可以通过显示过滤器tcp.analysis.retransmission (more such filters) 找到重传的数据包。
    • 当接收方收到一个乱序数据包(通常表示丢失数据包)时,它会为丢失的序列号发送一个 ACK​​。这是一个重复的 ACK,可以使用 tcp.analysis.duplicate_ack (details) 找到。

    【讨论】:

    • 你是对的。还没有听说过这个术语,但现在我看到“重新传输”是专家使用的术语。
    • libpcap 过滤器 "tcp src localhost and (not tcp.analysis.retransmission)" 编译失败 (pcap_compile(...))。它适用于wireshark,但我正在寻找libpcap过滤器。无论如何感谢您的帮助,如果 libpcap 不可能,我将不得不寻找其他选项,例如 tshark。
    • 是的,这就是为什么我说它是一个显示过滤器。它不是捕获过滤器。
    猜你喜欢
    • 2013-07-25
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2014-03-12
    • 2011-01-11
    • 1970-01-01
    相关资源
    最近更新 更多