如何检测网络是否正在丢弃 UDP 数据包?

Gil*_*ili 8 networking udp

我有一个视频流应用程序,它在我的办公室运行良好,但在客户位置却惨遭失败。症状是每隔几秒钟,我就会停止接收 UDP 数据包 2 秒钟,然后流恢复,好像没有任何问题。

我在客户所在地运行了http://www.pingtest.net/,结果非常好。没有丢包和低延迟。我注意到我们两个位置之间的唯一区别是ping google.ca在他们的位置超时但在我的位置有效。

如何测试我所在的网络是否阻止传入的 UDP 数据包?有没有办法让我隔离谁正在丢弃数据包?

小智 15

在服务器端,建立一个UPD服务器

iperf -s -u
Run Code Online (Sandbox Code Playgroud)

在客户端,检查 UDP 连接

iperf -u -c <IP Address of Server>
Run Code Online (Sandbox Code Playgroud)


mpy*_*mpy 4

您可以尝试与 建立 UDP 连接netcat

在消费者网络之外的机器A上运行:

nc -u -l -p 1234            # if using netcat-traditional
nc -u -l 1234               # if using netcat-openbsd (as pointed out by @JamesHaigh)
Run Code Online (Sandbox Code Playgroud)

请注意,-u它指示 netcat 使用 UDP。(还要注意,有不同版本的netcat,它们需要-p或不需要参数;给出的是两个最常见(?)版本的变体,都包含在 Debian 中。)

关于消费者位置:nc -u [addr of machine A] 1234.

尝试发送一些文本,或者更好地使用管道在两个位置之间发送文件,然后进行比较。