我有一个视频流应用程序,它在我的办公室运行良好,但在客户位置却惨遭失败。症状是每隔几秒钟,我就会停止接收 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)
您可以尝试与 建立 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
.
尝试发送一些文本,或者更好地使用管道在两个位置之间发送文件,然后进行比较。
归档时间: |
|
查看次数: |
28966 次 |
最近记录: |