Lan*_*dak 15 networking routing adsl
我最近和我的父母一起度过了复活节银行假期,他们住在英国一个非常偏远的地区。他们有一个(可怕的)ADSL 互联网连接,它运行在几公里的不可靠的铜线上,并且当附近的农民将他们的拖拉机插入电话线时会定期中断。
我注意到他们的路由器反复放弃pptp握手,并重新协商,有效地终止了连接。这令人沮丧。因此,为了避免发疯,我告诉它将可接受的最小 SNR 余量和握手的最低速度加倍以降低速度:
$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
U.S. Robotics Wireless MAXg ADSL Gateway
Login: ***********
Password:
> sh
BusyBox v1.00 (2006.02.17-20:30+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.
# adsl configure --snr 200; exit
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)
这改善了问题,并且这件事得到了一个(有点)稳定的,如果非常慢,管道到外部世界:
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
64 bytes from 8.8.8.8: icmp_seq=0 ttl=55 time=3236.679 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=3699.541 ms
...
Run Code Online (Sandbox Code Playgroud)
大约在这一点上,现实生活介入了,然后我花了几个小时和猫一起玩,在手机上看猫的 gif, 实际上和我的家人聊天等等。我忘记了我让这个 ping 进程运行,然后回来了一天后打ctrl-c。
显示的汇总统计数据让我感到震惊:
--- 8.8.8.8 ping statistics ---
103074 packets transmitted, 100564 packets received, 2.4% packet loss
round-trip min/avg/max/stddev = 32.986/3034.479/3600577.732/87527.276 ms
Run Code Online (Sandbox Code Playgroud)
如您所见,ICMP 数据包跨大西洋短跳到 Google 的 DNS 服务器的最大记录响应时间为 3600577.732 ms。这几乎正好是一个小时,而且肯定比ping默认超时时间长得多。
地球上怎么这样可以吗?是它准确吗?哪个路由器会高兴地保留一个数据包60 分钟在发送之前?为什么这个数据包没有被丢弃?是 8 位数据包计数器溢出与大延迟相结合的结果吗?
最后,我很想知道英国是否有任何行为准则规定消费者 ADSL 连接预计比RFC 1149和RFC 2549具有更少的延迟和更好的流量管理;-)。
ICMP 数据包和 ping 响应的长度均为 32 字节,因此对于一个小时长的 ping 来说,每个字节的传输时间似乎都差不多一分钟。
这只能通过非常大量的错误重试计数(你在做什么?),再加上非常慢的路由器以及对每个传输字节的痛苦等待或重试来解释。
互联网协议(IP)通过数据报传输数据,并尽量不发送部分数据。一旦开始传输,默认情况下它将等待 200 毫秒,以便将更多字节添加到数据报中。过了这个时间,软件/固件就会将其所拥有的任何内容作为一个数据报发送。在 ping 时间长达一小时的情况下,数据包有效负载可能只有一个字节。只要数据仍在到达,连接就不会被参与的双方终止。
你可以做什么 :
定位有问题的交换机可能相当复杂,因为可能是电话公司的交换机,但 ISP 也可能有自己的交换机。通常,交换机的问题是区域性的,这有助于找到发生故障的交换机。但在农村地区,没有太多用户使用该交换机,这可能不会被发现。如果一些邻居使用相同的 ISP,请尝试了解他们的连接情况。
| 归档时间: |
|
| 查看次数: |
526 次 |
| 最近记录: |