我是Wireshark的初学者,想找一些TCP连接的问题。基本上,我有一些套接字超时,我想知道正在发送的消息(数据包)是否丢失。
Wireshark 是用于此目的的正确工具吗?
我是Wireshark的初学者,想找一些TCP连接的问题。基本上,我有一些套接字超时,我想知道正在发送的消息(数据包)是否丢失。
Wireshark 是用于此目的的正确工具吗?
是的,您可以为此使用wireshark(和/或tcpdump)。
我会在源主机和目标主机上运行wireshark,对您感兴趣的流量使用捕获过滤器,然后检查流量是否实际发送,以及是否在另一台主机上接收到相同的流量。
您也可以使用 Iperf。
Iperf 是一种测量带宽和网络链接质量的工具。一台机器配置为客户端,另一台机器配置为服务器。配置如下:
服务器端:
iperf -s
客户端:
iperf -c xxx.xxx.xxx.xxx //其中xxx.xxx.xxx.xxx是服务器的IP地址。
您还可以指定 TCP 窗口大小。
“我有一个应用程序,它使用同一主机上的环回接口生成通过 TCP 相互通信的进程。只是标准的 TCP 套接字。”
对于通过环回的 TCP 连接,除非在大量过载的情况下,否则丢包非常罕见,并且取决于操作系统。我肯定会去别处看看。
套接字在环回上超时更有可能是编程错误。其详细信息取决于套接字超时的确切连接阶段。
附注。是的,对于两台主机通信并且您怀疑丢包,wireshark/tshark/tcpdump 是正确的工具;理想情况下在服务器和客户端上都捕获,然后您实际上会在其中一个而不是另一个上看到丢失的数据包。
聚苯乙烯。但几乎总是最好猜测丢失的数据包类型。“都是一定大小的?” 特别常见。如果它真的只是随机丢包,那么一些较少使用的选项(一端为 ping,另一端为 tcpdump/whatever)通常会这样做。否则,netcat 可能非常有用,正如另一位指出的,iperf。