如何解释由WinMTR识别的数据包丢失

我被要求研究客户在前面find的顾问的丢包问题。 他们有两个ADSLMax连接,一个用于数据,另一个用于VoIP。 数据包丢失导致VoIP呼叫出现问题,但是我的第一个努力是在testingVoIP线路之前,通过数据连接运行WinMTR给我一个参照系。

我发现结果有趣,但我不确定如何解释它们。 在这两种情况下, 10.5.4.1是一个Linux网关, 10.5.4.254是ADSL路由器, 212.74.102.14是ISP端的网关。 我第一次生产:

 |------------------------------------------------------------------------------------------| | WinMTR statistics | | Host - % | Sent | Recv | Best | Avrg | Wrst | Last | |------------------------------------------------|------|------|------|------|------|------| | 10.5.4.1 - 10 | 1215 | 1094 | -24901298 | 2353567 | 24901342 | 24901342 | | 10.5.4.254 - 0 | 2149 | 2149 | -24901307 | 222826 | 24899947 | 0 | | 212.74.102.14 - 0 | 2138 | 2138 | -24901309 | 1904058 | 24901369 | 30 | |________________________________________________|______|______|______|______|______|______| 

对于我的第二次运行,我通过将网关地址更改为10.5.4.254(数据路由器)来切断Linux网关:

 |------------------------------------------------------------------------------------------| | WinMTR statistics | | Host - % | Sent | Recv | Best | Avrg | Wrst | Last | |------------------------------------------------|------|------|------|------|------|------| | 10.5.4.254 - 0 | 955 | 955 | -24896677 | 3722073 | 24896756 | 0 | | 212.74.102.14 - 0 | 821 | 821 | -24896534 | 2222737 | 24896284 | -297383 | |________________________________________________|______|______|______|______|______|______| 

我问顾问对testing的解释,他说:

linux盒子实际上并没有路由互联网stream量,它是使VPN跨越路由更容易的默认路由,但是它为大多数stream量做了一个ICMPredirect到实际的路由器。

ICMP并不总是代表数据包丢失,除了两端受控的端到端。 中级路由器经常扼杀ICMP回声响应。

实际上,他认为ADSL线路上的数据包丢失是在离开路由器之后发生的,但他对我的问题“你做了什么testing来测量数据包丢失 – 是在Asterisk日志还是你使用工具衡量它? 是:

我不记得 – 那是几年前。

我的问题是,这是否是对数据有帮助的解释,还是我确定了一个潜在的问题,可以通过修复网关来解决。

请注意,我并不是试图诋毁顾问或对他的技能贬低 – 他为这个客户所做的大部分工作都是没有报酬的(这是一种慈善)。 我只是希望得到专家的第二个意见:-)

基本上,他对丢弃的ICMP数据包的属性是正确的,虽然在本地Linux机器上看到丢弃是非常典型的 – 特别是在10%的范围内。 您应该使用另一台Linux主机并运行ping -f 10.5.4.1来检查是否存在本地连接问题。 如果你看到相同数量的损失, 那么对这台机器运行一个iperf来查看是否会影响其他协议(即TCP和UDP)。

WinMTR统计数据表明连接正常 – 对212.74.102.14的回应请求有100%的回复。 如果VoIP数据通过10.5.4.1通过VPN,并且这个主机无论出于何种原因都有本地连接问题,这可能是您的VoIP丢失的原因。