Tcp 用libpcap检测重传数据包

Tcp 用libpcap检测重传数据包,tcp,wireshark,packet,pcap,libpcap,Tcp,Wireshark,Packet,Pcap,Libpcap,我使用libpcap和类似“tcp src localhost”的过滤器过滤数据包。它过滤源为localhost(我的主机)的所有数据包。 当localhost没有收到已发送数据包的TCP确认时,localhost将转发该数据包。 并非所有经过libpcap过滤的数据包都会到达其目的地,我需要确定数据包何时是“转发的数据包”。libpcap有没有办法识别转发的数据包?据我所知,您正在寻找TCP重传。捕获后,可通过wireshark中的显示装配工找到这些。这两个应该可以帮助您: 可以通过显示筛选

我使用libpcap和类似“tcp src localhost”的过滤器过滤数据包。它过滤源为localhost(我的主机)的所有数据包。
当localhost没有收到已发送数据包的TCP确认时,localhost将转发该数据包。

并非所有经过libpcap过滤的数据包都会到达其目的地,我需要确定数据包何时是“转发的数据包”。libpcap有没有办法识别转发的数据包?

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

  • 可以通过显示筛选器
    tcp.analysis.retransmission
    ()找到重新传输的数据包
  • 当接收器收到一个无序的数据包(通常表示丢失的数据包)时,它会发送一个ACK以确认丢失的序号。这是一个重复的确认,可以通过使用
    tcp.analysis.duplicate_ACK
    ()找到

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

  • 可以通过显示筛选器
    tcp.analysis.retransmission
    ()找到重新传输的数据包
  • 当接收器收到一个无序的数据包(通常表示丢失的数据包)时,它会发送一个ACK以确认丢失的序号。这是一个重复的确认,可以通过使用
    tcp.analysis.duplicate_ACK
    ()找到

你说得对。我还没有听说过这个术语,但现在我看到“重新传输”是专家们使用的术语。libpcap filter“tcp src localhost and(而不是tcp.analysis.retransmission)”编译失败(pcap_compile(…))。它在wireshark上工作,但我正在寻找libpcap过滤器。无论如何,谢谢你的帮助,如果libpcap不可能,我将不得不寻找其他选项,如tshark。是的,这就是为什么我说它是一个显示过滤器。这不是一个捕获过滤器,你是对的。我还没有听说过这个术语,但现在我看到“重新传输”是专家们使用的术语。libpcap filter“tcp src localhost and(而不是tcp.analysis.retransmission)”编译失败(pcap_compile(…))。它在wireshark上工作,但我正在寻找libpcap过滤器。无论如何,谢谢你的帮助,如果libpcap不可能,我将不得不寻找其他选项,如tshark。是的,这就是为什么我说它是一个显示过滤器。它不是一个捕获过滤器。