Làm thế nào trên trái đất này có thể báo cáo thời gian ping kéo dài hàng giờ là có thật?


15

Gần đây tôi đã dành kỳ nghỉ ngân hàng Phục Sinh với bố mẹ tôi, sống ở một vùng nông thôn ở Anh. Họ có một kết nối internet ADSL (khủng khiếp), chạy trên một vài km đồng tinh ranh và bị gián đoạn định kỳ khi nông dân gần đó đảo ngược máy kéo của họ vào đường dây điện thoại.

Tôi nhận thấy rằng bộ định tuyến của họ liên tục bỏ qua pptpcái bắt tay và đàm phán lại nó, giết chết kết nối một cách hiệu quả. Điều này thật khó chịu. Vì vậy, trong một nỗ lực để tránh phát điên, tôi đã bảo nó tăng gấp đôi biên SNR tối thiểu có thể chấp nhận và bắt tay với tốc độ thấp hơn:

$ 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.

Điều này đã cải thiện vấn đề và mọi thứ trở nên ổn định (phần nào), nếu cực kỳ chậm, với thế giới bên ngoài:

$ 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
...

Vào thời điểm này, cuộc sống thực sự đã can thiệp và sau đó tôi đã dành vài giờ chơi với mèo, nhìn vào gif mèo trên điện thoại của tôi, thực sự nói chuyện với gia đình tôi , v.v. Tôi quên rằng tôi đã bỏ quá trình ping này và chạy trở lại Một ngày sau đánh ctrl-c.

Các số liệu thống kê tóm tắt hiển thị làm tôi kinh ngạ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

Như bạn có thể thấy, thời gian phản hồi được ghi lại tối đa cho gói ICMP tạo ra một bước nhảy xuyên Đại Tây Dương ngắn đến máy chủ DNS của Google là 3600577.732 ms . Đó gần như là một giờ , và chắc chắn lâu hơn pingthời gian chờ mặc định.

Làm thế nào trên trái đất này có thể được? chính xác không? Bộ định tuyến nào sẽ vui vẻ giữ một gói trong sáu mươi phút trước khi gửi nó trên đường? Tại sao gói này không bị rơi? Đây có phải là kết quả của một tràn từ bộ đếm gói 8 bit kết hợp với độ trễ lớn không?

Cuối cùng, tôi sẽ muốn biết liệu có bất kỳ quy tắc ứng xử nào ở Vương quốc Anh nói rằng các kết nối ADSL của người tiêu dùng dự kiến ​​sẽ có độ trễ thấp hơn và quản lý lưu lượng tốt hơn so với RFC 1149RFC 2549 ;-).


1
một bộ định tuyến không bị quá tải với thư rác.
ratchet freak

Một bộ định tuyến tham lam;) Chỉ cần chơi cái này khi bạn nhận thấy nó có kế hoạch đợi một giờ trước khi chuyển tiếp gói. youtube.com/watch?v=moSFlvxnbgk
Cestarian

1
Có thể là do bạn nói rằng bạn để nó qua đêm, máy tính của bạn đã áp dụng giờ +1 khi bắt đầu Giờ tiết kiệm ánh sáng ban ngày và điều đó gây rối với việc tính toán RTT của một gói cụ thể?
kenkh

@kenkh - Không; Tôi chắc chắn rằng ngày đồng hồ thay đổi không phải là cái đó. Ngoài ra, nhìn vào ping mã nguồn (từ ~ l 761) tôi có thể thấy rằng các múi giờ bị bỏ qua trong phép tính tiếp theo ( gettimeofday(nv, NULL)trả về epoch micro giây). Nó thực sự đã mất một giờ!
Landak

Nếu bạn có quyền truy cập vào hệ thống, bạn có thể chạy pathping không? Sẽ hiển thị đại khái nơi chậm lại
Journeyman Geek

Câu trả lời:


4

Gói ICMP và phản hồi cho ping mỗi chiều dài 32 byte, do đó, dường như một ping dài một giờ mà mỗi byte mất gần một phút để truyền.

Điều này chỉ có thể giải thích bằng số lần thử lại lỗi rất hào phóng (bạn đang làm gì?), Cùng với bộ định tuyến rất chậm và chờ đợi hoặc thử lại đau đớn cho mỗi byte được truyền.

Giao thức Internet (IP) truyền dữ liệu bằng datagram và cố gắng không gửi một phần. Khi quá trình truyền được bắt đầu, nó sẽ đợi theo mặc định trong 200 mili giây để có thêm byte được thêm vào datagram. Quá thời gian đó, phần mềm / phần sụn sẽ gửi bất cứ thứ gì nó có dưới dạng một datagram. Trong trường hợp thời gian ping kéo dài hàng giờ, tải trọng gói có thể chỉ nhỏ bằng một byte. Miễn là dữ liệu vẫn đến, kết nối sẽ không bị hai bên tham gia chấm dứt.

Bạn có thể làm gì :

  • Nếu các điện thoại, fax hoặc thiết bị khác được kết nối với cùng một đường dây điện thoại, hãy kiểm tra xem chúng có được bảo vệ bởi các bộ lọc DSL không . Hãy chắc chắn rằng bạn không đặt bộ lọc trên đường truyền tới modem DSL của bạn.
  • Hãy thử một bộ định tuyến khác - một khi bạn đã có cho mình một thiết bị tồi thì hoàn toàn không có gì bạn có thể làm về nó ngoại trừ vứt nó đi và nhận được thứ gì đó tốt hơn.
  • Nếu không có bộ định tuyến nào khác, liên hệ với ISP của bạn - họ có thể chạy các thử nghiệm hữu ích từ phía họ.
  • Nếu ISP không tìm thấy gì, hãy thử yêu cầu bộ định tuyến / modem thay thế.
  • Nếu vấn đề tương tự xảy ra với một bộ định tuyến khác, hãy liên hệ với công ty điện thoại.

Có thể khá phức tạp để xác định vị trí một công tắc có vấn đề, vì nó có thể là với công ty điện thoại, nhưng ISP cũng có thể có các công tắc riêng. Thông thường, một vấn đề với công tắc là toàn khu vực giúp xác định vị trí của công tắc bị hỏng. Nhưng ở khu vực nông thôn nơi không có quá nhiều người đăng ký đang sử dụng công tắc đó có thể không bị phát hiện. Nếu một số hàng xóm đang sử dụng cùng một ISP, hãy thử tìm hiểu xem kết nối của họ như thế nào.


Tôi sẽ quay 2 và 3 xung quanh. Gọi ISP trước dễ dàng hơn nhiều. Họ có thể làm một bài kiểm tra. Nếu họ thấy có vấn đề, họ sẽ gửi một modem mới (không nhất thiết phải là bộ định tuyến). Nếu một modem mới không giải quyết được vấn đề, ISP nên liên hệ với công ty điện thoại. Đó là cách nó hoạt động ở đây, nhưng nó có thể khác ở Anh.
XUÂN

Tôi có nghĩa là một người nên thực hiện càng nhiều điểm trên song song càng tốt. Trong trường hợp của tôi, ISP của tôi có thể quyết định gửi qua kỹ thuật viên, nhưng nếu sự cố không đáng kể như các bộ lọc DSL không sử dụng, nó có thể quyết định tính phí.
harrymc

Ừ Các ý kiến ​​đề cập đến các số trong một danh sách đánh số. Sau đó, người đăng câu trả lời đã chỉnh sửa câu trả lời để xóa các con số, từ đó làm cho các bình luận có vẻ không đúng chỗ. TSK tsk.
TUYỆT VỜI

1
200 ms : Phần mềm này được tích hợp vào phần mềm Windows / Linux. Tôi đã tìm thấy nó khi phân tích lý do tại sao sản phẩm của công ty tôi có thông lượng TCP / IP quá thấp trên các datagram nhỏ, sau đó tìm thấy các cuộc gọi hệ thống "gửi ngay lập tức" trên ổ cắm. Tải trọng gói : Điều này không được thương lượng, thay vào đó, một datagram TCP / IP quá lớn sẽ bị cắt thành nhiều phần khi nó gặp một con đường nơi MTU quá nhỏ. Modem DSL : có thể việc thay đổi các tham số sẽ phần nào bù cho đường dây / điện thoại xấu, nhưng nó nên được sửa chữa thay vì được bù.
harrymc

1
Một điều chỉnh khác: vô hiệu hóa ADSL2 + và duy trì ổn định với ADSL1. Bất cứ bộ định tuyến nào bạn mua, đảm bảo bạn có thể điều chỉnh lề SNR đúng cách (một số thông tin ở đây ). Tỷ tỷ bộ định tuyến là tốt, như Netgear (Tôi thích các mô hình hỗ trợ DD-WRT với cài đặt đơn giản). Bài viết này có thể cung cấp cho bạn nhiều ý tưởng hơn - và hãy xem sơ đồ khoảng cách / tốc độ.
harrymc

0

Tôi thấy trường hợp này liên quan rất nhiều đến quản lý tắc nghẽn dữ liệu mặc dù một trường hợp được quản lý rất tệ vì bất kỳ lý do gì có thể xảy ra. Theo hiểu biết của tôi, có bộ đệm gói dọc theo hệ thống truyền được quản lý chặt chẽ, điều này gây ra sự bất thường này trong các gói yêu cầu / trả lời tiếng vang ICMP.

Vì vậy, sự kết hợp của việc có một chính sách quản lý tắc nghẽn tồi tệ với việc mở một phiên ping trong nhiều giờ có thể gây ra hậu quả xấu trong kịch bản kỳ lạ như vậy.

Thông tin thêm về quản lý tắc nghẽn ở đây .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.