Độ trễ gói có thể dao động?


9

Thời gian để một gói tin được truyền từ máy khách đến máy chủ có thể dao động không?

Câu trả lời:


9

Giao thức IP, trên đỉnh mà TCP và UDP được xây dựng, quy định cụ thể mà datagrams đang không được bảo đảm đến theo thứ tự, cũng không qua cùng một tuyến đường, cũng không phải, cho rằng vấn đề, ở tất cả (nhờ Trevor cho lời nhắc nhở). Vì vậy, bất kể sử dụng TCP hay UDP, độ trễ sẽ dao động. Độ trễ một phần là do quãng đường di chuyển , nó thay đổi nếu đường dẫn thay đổi và một phần do dịch ngăn xếp giao thức trên các thiết bị định tuyến dọc theo đường dẫn đã chọn - cũng thay đổi nếu đường dẫn thay đổi.

Đây là một phần của bản chất tự sửa chữa của internet, cho phép nó thực hiện công việc hàng ngày: nếu một tuyến trở nên không phù hợp theo phương pháp phỏng đoán được lập trình trên các thiết bị định tuyến khác nhau trên đường đi, một tuyến khác sẽ được chọn thay thế. Điều này có thể là tạm thời, hoặc lâu dài. Hãy nhớ rằng trước khi có internet, đó là ARPANET - một mạng lưới phòng thủ được thiết kế để đối phó với ví dụ. loại bỏ ngay lập tức các phần lớn của mạng (nghĩ rằng chiến tranh hạt nhân), mà không có toàn bộ mạng đi xuống. Bằng cách định tuyến xung quanh các khu vực bị hư hỏng hoặc không lý tưởng, mạng lớn hơn tiếp tục hoạt động (mặc dù, có lẽ, dưới mức tối ưu).


1
Đáng nói thêm là các datagram không được đảm bảo để đến nơi. Họ chỉ có thể âm thầm bị rơi tại bất kỳ điểm nào trên hành trình của họ. Chỉ có giao thông của TCP được xây dựng trên đỉnh IP có thêm ảo giác về độ tin cậy đối với truyền thông mạng.
Trevor Powell

Cũng xem câu trả lời của Daniel Pflughoeft, anh ta nói thêm rằng TCP sẽ phải chịu thêm sự chậm trễ do cách thức hoạt động - nếu các gói bị mất, chúng sẽ được yêu cầu lại và gửi lại, thêm thời gian chuyến đi khứ hồi đầy đủ vào độ trễ của tin nhắn. Và điều đó có thể xảy ra tùy ý nhiều lần. UDP khắc phục điều này bằng cách gửi một luồng cập nhật liên tục và nơi mô phỏng có thể tiến lên phía trước mặc dù mất gói (tuy nhiên nhiều hơn để suy nghĩ và lập kế hoạch cho loại hệ thống này).
Kỹ sư

5

Đây có lẽ không phải là câu hỏi phát triển trò chơi, nhưng có. Trong kết nối IP thông thường, mỗi gói có thể đi qua các "bước nhảy" trung gian khác nhau và mỗi "bước nhảy" khác nhau có thể có độ trễ khác nhau.

Nếu bạn đang sử dụng TCP để truyền dữ liệu của mình, giao thức sẽ tóm tắt lại cho bạn và sẽ sắp xếp lại các gói để phân phối các gói theo thứ tự ban đầu chúng được gửi; tuy nhiên nếu bạn đang sử dụng UDP, các gói có thể và không theo thứ tự, tùy thuộc vào độ trễ của từng gói riêng lẻ.


Cụ thể, nếu các gói UDP và TCP được định tuyến theo cùng một cách và các gói UDP thường không theo thứ tự, điều này sẽ chuyển thành "độ trễ gai" trên cùng một kết nối sử dụng TCP.
Martin Sojka


1

Ngoài những gì đã nói, đừng quên rằng các bộ định tuyến được phép tùy ý thả các gói , có nghĩa là trong TCP, một gói về mặt lý thuyết có thể mất nhiều thời gian để đến đích (và trong UDP, nó có thể không bao giờ đến đích!).

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.