Sequence number là gì?

Phrase Network

Xem acknowledgment, timeout (thời gian chờ) và giao thức Stop-and-Wait ARQ trước khi xem thuật ngữ này. Hình dưới đây cho thấy một sự cố có thể xảy ra khi thông điệp hoặc ACK bị trì hoãn. Nói cách khác, thời gian chờ (timeout) kết thúc trước khi có thể nhận được ACK. Trong ví dụ này, khi người gửi gửi "Hello" đầu tiên, người nhận sẽ nhận được thông điệp này và gửi lại một ACK. Nhưng người gửi hết thời gian trước khi nhận được ACK này. Vì vậy, nó truyền lại "Hello" thứ hai. Sau đó, nó nhận được thông điệp ACK bị trì hoãn. Nhưng ACK này đề cập đến gói tin nào? "Hello" đầu tiên, hay thứ hai? Điều này cũng gây nhầm lẫn cho người nhận! "Hello" thứ hai là một gói tin mới hay một bản sao?

Để giải quyết sự nhầm lẫn này, giao thức Stop-and-Wait ARQ cần sử dụng sequence number.

Sequence number là một số do người gửi chọn và được bao gồm trong header của gói tin. Khi người nhận gửi một ACK, nó bao gồm sequence number tiếp theo để cho người gửi biết rằng nó đã nhận được gói tin trước đó và sẵn sàng cho gói tin tiếp theo.

Ví dụ: khi người gửi gửi “Hello, 0”, đây là thông điệp “Hello” có sequence number 0. Khi nhận gói tin này, người nhận sẽ gửi “ACK, 1”, có nội dung “Tôi đã nhận được gói tin 0, hãy gửi tôi gói tin 1 tiếp theo ”.

Learning English Everyday