Kĩ thuật fast retransmit

Một phần của tài liệu Nghiên cứu kĩ thuật điều khiển tắc nghẽn mạng và mô phỏng, đánh giá trên Network Simulator-2 (Trang 31)

Như đó thấy trong phần quản lớ thời gian phỏt lại, RTO được đặt lớn hơn RTT. Một số nguyờn nhõn dẫn đến điều này là :

1. RTO được tớnh dựa trờn sự dự đoỏn của RTT tiếp theo, mà RTT này

được dự đoỏn từ cỏc RTT trước đú. Nếu trễ trờn mạng dao động, giỏ trị RTT dự đoỏn cú thể sẽ nhỏ hơn giỏ trị RTT thực.

2. Nếu trễ ở TCP đớch dao động thỡ giỏ trị RTT dự đoỏn được trở nờn khụng thể tin cậy được.

3. TCP đớch cú thể khụng tạo ACK với mỗi gúi tin mà tạo ACK lũy tớch. Điều này gúp phần vào sự dao động của RTT.

Kết quả của nhứng nhõn tố này là khi một gúi tin bị mất, TCP nguồn sẽ nhận ra điều này rất chậm, kộo theo sự phỏt lại rất chậm. Nếu TCP đớch sử dụng chớnh sỏch chấp nhận theo thứ tự, in-order, thỡ sẽ cú nhiều gúi tin cú thể bị mất. Thậm chớ nếu TCP đớch sử dụng chớnh sỏch chấp nhận trong cửa sổ,

in-window, (cỏch này phổ biến hơn) thỡ sự phỏt lại chậm chạp vẫn cú thể gõy ra vài vấn đề.

Giả thiết A truyền một chuỗi gúi tin, gúi tin đầu tiờn bị mất. Tuy nhiờn trong quỏ trỡnh truyền cả cửa sổ, timeout chưa xảy ra nờn A vẫn cú thể tiếp tục truyền mà khụng cần đợi ACK. B nhận được tất cả cỏc gúi tin trừ gúi tin đầu tiờn. Nhưng B phải đặt chỳng trong bộ đệm cho đến khi gúi tin mất được truyền lại, nú khụng thể xúa dữ liệu ra khỏi bộ đệm bằng cỏch đưa chỳng lờn lớp ứng dụng cho đến khi nhận được gúi tin cũn thiếu. Nếu sự truyền lại gúi tin mất đú kộo dài quỏ lõu, B sẽ bắt đầu vứt bỏ cỏc gúi tin tới.

Kĩ thuật fast retransmit của Tahoe được thiết kế để khắc phục tỡnh huống nờu trờn. fast retransmit dựa vào một qui tắc của TCP: nếu TCP đớch nhận được một gúi tin khụng đỳng thứ tự, nú sẽ lập tức tạo một ACK cho gúi tin nhận đỳng thứ tự cuối cựng trước đú. TCP sẽ tiếp tục lặp lại ACK này cho đến khi nhận được gúi tin cũn thiếu để “lấp chỗ trống” trong bộ đệm của nú. Khi nhận được gúi tin thiếu đú, TCP gửi ACK lũy tớch cho tất cả cỏc gúi tin đó nhận đỳng thứ tự.

Khi TCP nguồn nhận được một ACK lặp lại, điều đú cú nghĩa là (1) gúi tin ngay sau gúi tin được ACK bị trễ quỏ nhiều nờn nú đó đến khụng đỳng thứ tự, hoặc (2) là gúi tin đú đó bị mất. Trong trường hợp 1, gúi tin đú chưa bị mất và do đú TCP khụng cần phải phỏt lại. Nhưng trong trường hợp 2, ACK lặp cú thể là một tớn hiệu cảnh bỏo sớm cho TCP là gúi tin đú đó bị mất và cần phỏt lại. Trong mạng TCP, sự nhận cỏc gúi tin khụng đỳng thứ tự ở một mức nào đú khỏ phổ biến. Để chắc chắn là trường hợp 2 hơn, fast retransmit chỉ được khởi động khi nhận được số ACK lặp đủ lớn, giỏ trị này thường là 3, nghĩa là TCP nguồn nhận được 4 ACK liờn tiếp của cựng một gúi tin. Với điều kiện này, xỏc suất gúi tin đú bị mất là cao hơn và cần phải phỏt lại ngay mà khụng cần đợi timeout.

Một phần của tài liệu Nghiên cứu kĩ thuật điều khiển tắc nghẽn mạng và mô phỏng, đánh giá trên Network Simulator-2 (Trang 31)