Làm cách nào tôi có thể hình thành độ trễ truyền thông trong TCP / IP?


12

Tôi gặp khó khăn trong việc tạo ra một mô hình / phương trình toán học để ước tính độ trễ chuyến đi khứ hồi giữa hai nút giao tiếp bằng TCP / IP. Các nút đang trao đổi dữ liệu dựa trên giao thức HTTP. Trong mô hình này, các yếu tố quan trọng nhất để nghiên cứu là khoảng cách vật lý giữa hai nút trong mạng, số bước nhảy trung gian, băng thông, độ trễ xử lý tại mỗi bước nhảy. Tôi đã tìm kiếm trên web nhưng không thể tìm thấy bất cứ điều gì theo nghĩa này, thay vào đó tìm thấy một cái gì đó về mạng chuyển mạch và giao thức UDP. Tôi có thể tùy chỉnh chúng để phù hợp với TCP không?


Đây là một mục tiêu di động và có rất nhiều phụ thuộc sẽ thay đổi hằng số mô hình của bạn. Ví dụ: nếu bạn muốn bao gồm độ trễ chuyển tiếp trên mỗi bước nhảy, thì với tư cách là đường cơ sở, bạn cần biết kiểu dáng và kiểu dáng của từng thiết bị. Nếu bạn không kiểm soát hoặc biết từng thiết bị trong đường dẫn, chẳng hạn như qua internet hoặc mạng khác, thì điều này hầu như không thể xem xét. Nếu bạn giả sử rằng bạn biết mọi thứ về từng bước nhảy trong đường dẫn, thì bạn có thể áp dụng độ trễ chuyển tiếp cơ sở, giả sử 1,2 micro giây cho mô hình chuyển đổi "A" và 5.0 cho mô hình chuyển đổi "B", v.v.
netdad


mã nguồn của : httping, sử dụng bình luậnhttping -Gbg www.google.com -c 5
Grijesh Chauhan

@Espanta, mục tiêu của bạn là ước tính độ trễ hay thông lượng? Thông lượng phụ thuộc rất nhiều vào các tính năng TCP như SACK, RWIN, độ chụm của giao thức ứng dụng và tất nhiên là độ trễ.
generalnetworkerror

@generalnetworkerror, tôi cần độ trễ chuyến đi khứ hồi cho http nhận và gửi yêu cầu và phản hồi.
Espanta

Câu trả lời:


8

Đây là một quá trình rất phức tạp, vì vậy để xây dựng một phương trình có thể hữu ích để dự đoán chính xác RTT là vô cùng khó khăn. Tốt nhất, tôi sẽ nói rằng bạn có thể tạo một mô hình sử dụng một loạt các mức trung bình cho từng giai đoạn, mà bạn có thể điều chỉnh nếu bạn tình cờ "biết rõ hơn" cho một tình huống cụ thể gần như bạn có thể đạt được. Đây là một cái gì đó tôi hiện đang nghiên cứu để tôi có thể cho bạn biết những gì tôi biết cho đến nay (từ mặt đất lên, bắt đầu từ lớp vật lý):

  • Xem câu hỏi của tôi về Điện tử SE; Độ trễ mã hóa của Ethernet và mối quan hệ với xếp hạng tần số cápTốc độ điện (truyền tín hiệu?) Thông qua đồng cho độ trễ truyền thông . Vì bạn sẽ sử dụng tốc độ chuẩn hóa (100Mbps, 1Gbps, 10Gbps, v.v.), không xử lý sợi hoặc đồng khác nhau. "Độ trễ" xuống cả hai gần như là chết tiệt, nhưng đồng không thể mang tín hiệu rõ ràng. Tôi có câu hỏi này trên trang Vật lý SE, hiện tại tôi đã biết câu trả lời. Tôi chỉ cần tìm thời gian để sửa nó, vì vậy hãy chú ý rằng nếu bạn quan tâm (tôi sẽ đăng thêm một số câu hỏi liên quan đến viễn thông sử dụng mà bây giờ tôi biết câu trả lời khi có cơ hội ).

  • Các thiết bị sẽ bị trì hoãn nhiều hơn vào cuối liên kết. Không có cách tiêu chuẩn nào để nói "oh 2 công tắc dọc theo một đường dẫn là độ trễ Xms, 4 công tắc là 2 * Xms, 2 bộ định tuyến là Yms ... vv". Giả sử bạn đang sử dụng ví dụ 1Gpbs và các thiết bị trong đường dẫn chuyển tiếp với tốc độ đường truyền, chúng tôi biết rằng đó là 1000000000bps, vì vậy giao diện vật lý đang chạy ở tốc độ mã hóa cố định (từ 1 nano giây mỗi bit cho đến mức tối đa của sơ đồ mã hóa biểu tượng được sử dụng là, chẳng hạn như 10b )

  • Có ba loại độ trễ chính (ở lớp vật lý) bạn cần lưu ý và yếu tố; Độ trễ tuần tự hóa, độ trễ mã hóa, độ trễ lan truyền (và độ trễ xử lý, độ trễ hàng đợi, mã hóa và độ trễ giải mã, nhưng những thứ này nằm trên lớp vật lý nhưng cần đề cập!). Đây là những tài liệu hợp lý trên Internet, VoIP: Phân tích chuyên sâu , Slide 13 tại đây , tải trên Google Scholar và nhiều hơn nữa.

  • Khi chúng ta di chuyển lên ngăn xếp giao thức, tôi sẽ làm việc với giả định rằng MAC đích nằm trong mỗi bảng cam chuyển đổi và ở lớp IP, MAC đích trong các bảng ARP. Sự chậm trễ thêm do các quá trình khám phá này gây ra chỉ xảy ra đối với gói đầu tiên trong một luồng để chúng có thể được phá vỡ bằng cách tăng thời gian chờ và gửi ARP vô cớ, v.v.

  • Khi bạn đến lớp ứng dụng, điều này sẽ thực sự khó khăn vì điều này phụ thuộc vào máy chủ (ví dụ) xử lý yêu cầu, sẽ phải chịu sự chậm trễ. Số lượng ngắt cần thiết để xử lý yêu cầu và chuyển đổi ngữ cảnh do tải là không thể đoán trước.

Tôi rất muốn giúp bạn với câu hỏi của bạn, thật đáng buồn đây là tất cả những gì tôi có thời gian cho bây giờ. Tôi sẽ cập nhật câu trả lời này có thể vào tối nay hoặc ngày mai, tôi muốn đăng những gì tôi có cho đến nay.

Trong khi đó, hầu hết mọi người có xu hướng làm việc với con số về độ trễ ở lớp đồng / sợi vật lý khoảng 0,6 * c (C = tốc độ ánh sáng). Ngoài ra, bạn cần suy nghĩ về việc trao đổi ACK của TCP trên mỗi gói X, khác nhau nếu bạn đang sử dụng SACK, và nếu bạn đang sử dụng khung jumbo và / hoặc kích thước MSS lớn hơn (bây giờ MTU cũng cần được tính đến!) , nếu bạn đang gửi thêm giữa các ACK (nếu khối lượng dữ liệu được truyền tải là mối quan tâm của bạn). Bạn cũng cần phải tính đến Sản phẩm Trì hoãn Băng thông khét tiếng và không được diễn giải sai một cách ngu ngốc mà tôi đã làm trên trang đó. Tôi bắt đầu thực hiện nhiều máy tính dữ liệu đơn giản (và rất xấu) ở đây. Một lần nữa một công việc đang tiến hành tôi sẽ cố gắng và cập nhật chúng sớm. Tôi dự định thêm một máy tính tương tự như những gì bạn đang cố gắng làm. Tôi cũng đã thực hiện một số máy tính ánh sáng và sợi nếu bạn quan tâm, nhưng một lần nữa, không có thời gian!, Tôi đã không làm tròn để tải chúng lên. Tôi sẽ thử ASAP để cập nhật câu trả lời này thêm, trong những ngày tới.

PS tôi quên đề cập đến QoS! Nếu QoS được chơi ở bất cứ đâu trên đường đi, thì sẽ rất khó khăn để nhân lên RTT!


cảm ơn. Đó là chi tiết khá đẹp. Tôi cần nhấn mạnh rằng số bước nhảy giữa hai nút có tác động cao đến khoảng cách vật lý giữa hai nút trong mạng có dây. (Ít nhất là vì điểm chuẩn thực sự của tôi cho thấy điều đó.) Vì vậy, tôi sẽ kết hợp tất cả lại và đi kèm với mô hình của mình sớm. cảm ơn rất nhiều từ tất cả những người đã đọc, đánh giá, trả lời và sẽ trả lời.
Espanta

Việc sử dụng viễn thông (giả sử rằng OP không xử lý sự chậm trễ chỉ trong Trung tâm dữ liệu hoặc một số thiết lập nơi anh ta có toàn quyền kiểm soát cơ sở hạ tầng vật lý) có thể trở nên thú vị và khiến việc lập mô hình trở nên bất khả thi. Một giai thoại để làm nổi bật vấn đề. Tôi đã từng có Louisville, KY <-> Lexington, KY và Louisville, KY <-> Cincinnati, OH không thành công. Gọi cho telco và họ thông báo với tôi rằng việc cắt sợi ở phía tây Illinois là đáng trách. Nhìn vào bản đồ và xem tại sao điều đó thật điên rồ. Tuy nhiên, các liên kết băng thông cao hơn ít có khả năng trở thành con mồi của loại điên cuồng telco này.
Jeff McAdams

5

(Tôi muốn chỉ ra rằng những người khác đã đăng câu trả lời xuất sắc về cách thức trì hoãn và các nguyên nhân gây ra chúng. Nhưng OP đã hỏi về mô hình hóa; Một mô hình cơ bản rất đơn giản và bạn chỉ cần cắm số ví dụ. Nếu bạn muốn biết tại sao sự chậm trễ là những gì họ đang có, sau đó xem câu trả lời của mọi người khác: ^)

Độ trễ mạng chỉ đơn giản là thời gian vận chuyển từ điểm cuối này đến điểm cuối khác, kéo dài N bước giữa .

Vì vậy, bạn có N phân đoạn (bước nhảy) với các nút trung gian N-1. Mỗi nút có độ trễ (hiệu ứng tích lũy của một số thứ trên nút đó, như độ trễ hàng đợi, độ trễ xử lý, v.v.) và mỗi phân đoạn có độ trễ chuyển. Nhìn chung, đó là 2N - 1 biến độc lập. Vì vậy, đó là seg1 + node1 + seg2 ... + nút (N-1) + segN Một hop, chỉ là = seg1, hai hy vọng là seg1 + node1 + seg2, v.v.

Tiếp theo bạn phải xác định tất cả những phần đó là gì. Vì vậy, bạn có thể xây dựng một mạng mô hình với mạng CATV, liên kết vệ tinh, liên kết sợi quang, ethernet, v.v ... Đối với mỗi công nghệ đó, bạn phải tìm kiếm thông tin ví dụ.

Độ trễ quá cảnh sẽ xấp xỉ kích thước dữ liệu chia cho tốc độ truyền của đoạn. Nếu bạn cần một mô hình chính xác hơn, bạn đã thêm độ trễ thời gian bay - xấp xỉ độ dài của phân đoạn, chia cho tốc độ của luồng dữ liệu (xấp xỉ tốc độ ánh sáng.) Điều này KHÔNG quan trọng nếu bạn có liên kết vệ tinh; Việc lên xuống của vệ tinh không đồng bộ là rất quan trọng.

Độ trễ trên mỗi nút bạn sẽ phải ước tính dựa trên thiết bị nào bạn đang đặt vào mô hình của mình.

Nếu bạn muốn độ trễ của ứng dụng, (ví dụ như độ trễ cho đến khi bắt đầu luồng dữ liệu của truyền FTP,) thì bạn sẽ xây dựng bằng cách đếm số lần độ trễ mạng của bạn phát huy. Ví dụ: bắt tay TCP 3 chiều sẽ tăng gấp ba - độ trễ của mạng và tiếp tục xây dựng theo những gì ứng dụng nhìn thấy.


3

Bạn có thể ước tính độ trễ của chuyến đi khứ hồi bằng cách chụp gói tin ở hai bên, sau đó đo độ trễ giữa các yêu cầu đi ra từ máy được giám sát và phản hồi trở lại. Ví dụ: nếu bạn đánh dấu thời gian một SYN đi ra máy từ xa, sau đó đánh dấu thời gian phản hồi của SYN + ACK xuất hiện, sự khác biệt sẽ mang đến cho bạn một sân bóng khá tốt về độ trễ TCP của chuyến đi khứ hồi.

Hãy nhớ rằng điều này sẽ lớn hơn độ trễ mạng thực sự và mức độ lớn hơn tùy thuộc vào mức độ tải của một trong hai máy.


cảm ơn câu trả lời của bạn, nhưng tôi không muốn đo nó bằng cách sử dụng bất kỳ mã hóa hoặc giải thích máy nào, tôi cần xây dựng nó bằng mô hình toán học. Ví dụ, một cái gì đó như: Tổng độ trễ = tổng lan truyền + tổng số truyền + tổng lưu trữ & chuyển tiếp + tổng xử lý. Và với mỗi thời điểm này, tôi có thể có một công thức khác. Vì vậy, nó có thể được đo lường bằng toán học.
Espanta

3

Độ trễ giữa hai máy chủ sẽ phụ thuộc vào một số yếu tố:

  • Trì hoãn tuyên truyền
  • Sự chậm trễ nối tiếp
  • Xếp hàng / trì hoãn đệm

Độ trễ lan truyền là thời gian vật lý để các gói di chuyển giữa hai địa điểm mất bao lâu. Tốc độ ánh sáng trong sợi là khoảng 200000 km / s. Thụy Điển nơi tôi sống là khoảng 1570 km, vì vậy đó sẽ là 7,85 ms nhưng thực tế nó còn nhiều hơn bởi vì đó là khoảng cách thông qua chế độ xem chim.

Độ trễ tuần tự hóa là mất bao nhiêu thời gian để seral hóa gói thông qua môi trường vật lý, đó là các giao diện trên thiết bị mạng. Nếu bạn có kết nối 2 Mbit và bạn đang gửi gói 1500 byte sẽ là 6 ms để tuần tự hóa gói (12000/2000000).

Độ trễ xếp hàng / đệm là thời gian gói phải ở trong hàng đợi / bộ đệm trước khi được gửi đi trên giao diện. Tùy thuộc vào tốc độ trên giao diện và mức độ sử dụng bộ đệm lớn, điều này có thể tiếp theo không có gì hoặc độ trễ đáng kể.

Sau đó, sẽ có một số độ trễ trên máy chủ để tạo các gói và cho ứng dụng xử lý chúng. Có các ứng dụng để đo độ trễ HTTP. Mọi người không chấp nhận nhiều sự chậm trễ trên các trang web trước khi từ bỏ chúng vì vậy đó là một yếu tố quan trọng.


Số hoa bia thì sao? và sự chậm trễ ở mỗi bước nhảy?
Espanta

Thật khó để tạo ra một công thức chung vì một số yếu tố khác nhau như tuần tự hóa và xếp hàng. Đây là một người đã viết về nó. ccieflyer.com/pdf/2009-Mar-Oleg-Berzin.pdf - Toán học vượt quá các kỹ năng toán học của tôi :)
Daniel Dib
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.