Tôi nhận ra rằng câu trả lời này được đơn giản hóa và không rõ ràng như tôi muốn, vì vậy nếu bạn có câu hỏi về một bước, vui lòng hỏi!
Cuộn xuống một chút sau khi mở tệp này trong Wireshark, chúng ta thấy một số khung có màu khác nhau. Trông thật tệ phải không? Chà, nó không tệ Chờ đã, chúng ta sẽ đến đó.
Kiểm tra gói SYN (khung 37), chúng ta thấy SACK và Window Scale trong Tùy chọn TCP. Tốt Điều tương tự trong quy mô SYN / ACK (khung 38), SACK và Windows. Tuyệt vời. Đừng thấy bất cứ điều gì kỳ lạ liên quan đến SACK.
Ước tính RTT không tải là thời gian giữa gói SYN và ACK đầu tiên (khung 39). Đó là khoảng 9,3 ms, phù hợp với những phát hiện của bạn. Lưu ý rằng thời gian giữa SYN / ACK và ACK (khung 38 và 39) thấp hơn nhiều so với giữa SYN và SYN / ACK (37 và 38). Điều này có nghĩa là tệp chụp này được lấy tại máy thu và để xem tại sao điều đó không lý tưởng, chúng tôi sẽ phải quay lại trường.
Giữa người gửi và người nhận có một phần của đường dẫn mạng nhỏ nhất, giới hạn băng thông. Ước tính RTT mà chúng tôi vừa nhận được từ cái bắt tay cho chúng tôi ước tính độ dài của đường dẫn mạng này. Một phép đo có bao nhiêu gói chúng ta có thể phù hợp trong đường ống này là Dung lượng ống hoặc Sản phẩm độ trễ băng thông - PC [bits] = R [bits / s] * RTT [s], trong đó R là băng thông nhỏ nhất. Công suất ống sau đó là một phép đo khối lượng.
Hãy tưởng tượng một vòi vườn. Khối lượng của nó được đo được xác định bởi chiều dài và chiều rộng của nó theo cùng một cách phải không? Để lấy được nhiều nước nhất từ nó, nó cần phải được lấp đầy hoàn toàn bằng nước, nếu không sẽ có những khoảng trống không khí làm hạn chế dòng nước. Trong trường hợp chúng tôi quản lý để lấp đầy nó hoàn toàn, nó có thể tràn. Chúng ta có thể sử dụng một cái xô để chúng ta không bị ướt sàn và nếu xô tràn ra không ảnh hưởng đến dòng nước.
Hóa ra nó giống hệt nhau trong đường dẫn mạng. Chúng ta cần lấp đầy đường ống ... Nói cách khác, Dung lượng ống là byte nhỏ nhất trong chuyến bay (chúng ta có bao nhiêu nước trong ống + xô) giữa người gửi và người nhận sử dụng đầy đủ băng thông nhỏ nhất (không gây ra khe hở không khí). Vì vậy, nếu các byte trong chuyến bay> PC thì chúng ta tốt!
Nhìn vào Thống kê theo dõi TCP -> TCP StreamGraph -> Biểu đồ trình tự thời gian (tcptrace), chúng ta có thể thấy các byte trên trục Y và thời gian trên trục X. Đạo hàm của đường cong này là byte / giây hoặc thông lượng. Lưu ý cách "đường" màu đen phẳng, nghĩa là thông lượng ổn định! Tuy nhiên, nó bị gián đoạn bởi các đường màu xanh đôi lần (đó là các phạm vi SACK trong các ACK trùng lặp), nhưng như có thể thấy nó không ảnh hưởng đến thông lượng.
Xem cách đường liền nét màu xám bên phải thấp hơn (phóng to một chút, đó là ACK) thực sự gần với các phân đoạn TCP màu đen? Thời gian giữa phân đoạn TCP và ACK là RTT, đây là gần 0! Điều đó có nghĩa là không có nhiều phân đoạn trong chuyến bay đã vượt qua điểm bắt giữ này. Đến lượt điều này có nghĩa là chúng ta không thể sử dụng điều đó để ước tính các byte trong chuyến bay và đây là lý do tại sao việc bắt gói bên phía người gửi là cách tốt hơn.
Các gói ở đây tự nhiên bị mất trước điểm chụp. Mỗi phân đoạn dữ liệu trong chuyến bay tại thời điểm mất sẽ kích hoạt ACK trùng lặp. Do đó, chúng ta có thể sử dụng số lượng ACK trùng lặp để ước tính các byte trong chuyến bay tại thời điểm mất gói. Ở đây chúng ta thấy khoảng 9, 16 và 23 phân khúc. Mỗi phân đoạn có 1448 byte dữ liệu, do đó, cung cấp cho chúng tôi một byte trong chuyến bay trong khoảng từ 13k đến 33k. Thông lượng ở đây là khoảng hơn 3 Mbit / s (từ biểu đồ IO ) và với RTT, chúng tôi đã đo trước khi chúng tôi có được Công suất ống nhỏ hơn 3e6 [bit / s] * 10e-3 [s] / 8 byte = 3750 byte, hoặc ít hơn 3 đoạn.
Bởi vì các byte trong chuyến bay tại thời điểm xảy ra những mất mát này không thực sự giống nhau (khó có thể nói ở đây với rất ít mẫu) Tôi thực sự không thể nói nếu đây là những mất mát ngẫu nhiên (đó là xấu xấu) hay tổn thất xảy ra do hàng đợi / xô tràn, nhưng chúng xảy ra khi byte trong chuyến bay> PC nên thông lượng không bị ảnh hưởng.
Câu trả lời của bạn dường như chỉ ra rằng chúng thực sự ngẫu nhiên, nhưng không quá nhiều để gây ra thông lượng thấp.