2010-05-21 25 views
5

tôi sẽ biết ơn sự giúp đỡ, sự hiểu biết phải mất bao lâu để thiết lập một kết nối TCP khi tôi có Ping RoundTripTip:Thiết lập kết nối TCP = Cách đo thời gian dựa trên Ping RRT?

Theo Wikipedia một kết nối TCP sẽ được thành lập trong ba bước:

1.SYN-SENT (=>CLIENT TO SERVER) 
2.SYN/ACK-RECEIVED (=>SERVER TO CLIENT) 
3.ACK-SENT (=>CLIENT TO SERVER) 

Câu hỏi của tôi:

  1. là nó đúng, rằng việc truyền tải thứ ba (ACK-GỬI) sẽ chưa thực hiện bất kỳ tải trọng (dữ liệu của tôi) nhưng chỉ được sử dụng cho các establishement kết nối (Điều này dẫn đến kết luận, rằng. gói thứ tư sẽ là gói đầu tiên giữ bất kỳ tải trọng nào ....)

  2. Có đúng không khi giả sử Ping RoundTripTime là 20 mili giây, trong ví dụ ở trên, cơ sở kết nối TCP sẽ ít nhất yêu cầu 30 millisecons, trước khi bất kỳ dữ liệu nào có thể được truyền giữa Client và Server?

Thank you very much

Tom

+0

Nếu bạn có thể đo thời gian ping đối với máy chủ, tại sao không đo kết nối? Tất cả những gì bạn cần làm là thời gian kết nối cuộc gọi trong mã của bạn, về cơ bản. –

Trả lời

4

Những điều cơ bản đúng, mặc dù # 2 giả định rằng thời gian khứ hồi là đối xứng.

+1

+1. Định tuyến trên internet nói chung hiếm khi đối xứng. Trong một doanh nghiệp, đó là một câu chuyện khác. –

0

Để đo lường điều này, được gọi là "Thời gian để đồng bộ/ACK" (KHÔNG phải là thời gian để thiết lập kết nối - kết nối chỉ nửa mở khi ở trạng thái đó, bạn cần gói thứ 3 thừa nhận cơ sở xem xét nó được thiết lập), bạn thường cần các công cụ chuyên nghiệp bao gồm ngăn xếp TCP của riêng mình, cho phép loại phép đo đó. Loại được sử dụng nhiều nhất được gọi là Spirent Avalanche, nhưng bạn cũng có hộp Ixia's IxLoad hoặc BreakingPoint Systems (BPS hiện đã được mua lại bởi Ixia btw).

Lưu ý rằng, có, gói thứ ba sẽ không có bất kỳ dữ liệu nào và điều đó cũng đúng với hai dữ liệu đầu tiên. Chúng chỉ là Syn và Syn + Ack được gắn cờ (đó là các cờ TCP), và không chứa dữ liệu ứng dụng. Trao đổi ban đầu này, được gọi là bắt tay ba chiều do đó gây ra một số chi phí, đó là lý do tại sao TCP thường không được sử dụng trong các ứng dụng thời gian thực (thoại, video trực tiếp, v.v.).

Cũng như đã nêu, bạn không thể giả định rằng Độ trễ = RTT/2. Thực tế là rất phức tạp để đo độ trễ một chiều trên lớp 3 (IP) - và bạn đã ở lớp 4 (TCP) ở đây. Bài đăng trên blog này đề cập chi tiết về thử thách này: http://synsynack.wordpress.com/2012/04/09/realistic-latency-measurement-in-the-application-layers/

Các vấn đề liên quan