gpt4 book ai didi

linux - Wireshark 与 tcpdump/libpcap 中数据包的不同顺序?

转载 作者:太空宇宙 更新时间:2023-11-04 10:37:52 27 4
gpt4 key购买 nike

我注意到,对于从远程 FTP 站点到 Linux 上的本地主机的单数据包文件传输,Wireshark 始终可以以正确的顺序捕获数据包,但不能在 tcpdump/libpcap 或 RAW_PACKET 上打开混杂模式的简单 recvfrom 中捕获数据包。

在前者中,“传输完成”响应总是在单个数据包之前(在不同的连接中,因此没有 TCP 重新排序),但在后者中,数据包总是先到达——根据协议(protocol),这显然是错误的, FTP 服务器的实现,因为“传输完成”是在数据发送之后发送的 - 如果客户端在数据发送之前收到它,它将停止等待数据连接,这并没有发生,因为我可以清楚地看到数据。所以 libpcap/tcpdump 实际上以错误的顺序捕获数据包,但在 Wireshark 中没有这样的问题?

这怎么可能?? Wireshark 还使用 libpcap...

最佳答案

对于 FTP 协议(protocol)有效负载在单独的 TCP 连接中传输,并行 TCP 连接中的数据包顺序没有保证(实际上即使在同一个 TCP 连接中也没有数据包顺序的保证,您的主机应该对它们进行排序)。

  1. 服务器有两个打开的套接字。
  2. 将文件写入数据套接字
  3. 紧接着它写入“传输完成”来控制套接字。2 和 3 之间的差异是几微秒。
  4. 数据包通过互联网运行,它们甚至可以选择不同的路径
  5. 他们以随机顺序来到你的机器。

附注tcpdump 文件也有数据包数和时间戳。数据包不一定按时间戳排序写入。 Wireshark 可以在显示时对其进行排序,查看命令字段。

关于linux - Wireshark 与 tcpdump/libpcap 中数据包的不同顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36563394/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com