gói TCP có số thứ tự (byte offset kể từ khi bắt đầu, từ bộ nhớ) và các thông điệp ACK thừa nhận rằng một cụ thể bù đắp được nhận:
Vì vậy, bạn có thể kết thúc với một tình huống như thế :
data 1 (10 bytes) ->
<- ack (10, data1)
data 2 (15 bytes) ->
data 3 (10 bytes) ->
data 4 (8 bytes) ->
<- ack (25, data1/2/3)
<- ack (33, data1/2/3/4)
Nói cách khác, người gửi có thể tiếp tục gửi bất kể lời cảm ơn đến điểm mà bộ đệm của nó có đầy đủ (nó có để giữ các gói tin không được thừa nhận trong trường hợp cần thiết để tái truyền cho họ).
Điều này "ngắt kết nối" giữa gửi và xác nhận có thể đẩy nhanh lưu lượng dữ liệu.
Khi kết thúc nhận, các gói có thể không hoạt động, và chúng được giữ cho đến khi có thể phân phối đến mức cao hơn theo thứ tự.
Ví dụ: nếu data 3
đến trước data 2
, đầu tiếp nhận sẽ giữ cho đến khi data 2
đến, sau đó cả hai người trong số họ sẽ được gửi lên trên để gửi.