Tính thời gian khứ hồi một cách thông minh

Một phần của tài liệu Mạng máy tính và HTM (Trang 103 - 104)

e. Cổng giao tiế p Gateway

5.3.4.2. Tính thời gian khứ hồi một cách thông minh

Tính thời gian khứ hồi một cách thơng minh là cách khắc phục nguyên nhân thứ hai dẫn tới việc vi phạm ngun lý “Bảo tồn các gói số liệu”, đó là việc đưa vào mạng một gói tin mới trước khi có một gói tin cũ ra khỏi mạng. Như đã được trình bày tại tiểu mục 1.3.2.2, có hai sai lầm dẫn đến nguyên nhân thứ hai này, cách giải quyết chúng được trình bày dưới đây.

Cách giải quyết sai lầm thứ nhất: tính ước lượng thời gian khứ hồi bằng một bộ lọc dải thông thấp để tránh cho đại lượng này khỏi thăng giáng quá mạnh nhằm duy trì sự cân bằng. Đặc tả cho giao thức TCP, RFC-793 gợi ý tính ước lượng thời gian khứ

hồi như sau:

RTT ←α.RTT+(1-α).M (1)

Trong đó RTT là ước lượng thời gian khứ hồi trung bình, M là số đo thời gian khứ hồi nhận được từ gói số liệu đã được biên nhận gần nhất và α là hệ số làm trơn của bộ lọc, giá trị mà người ta gợi ý nên sử dụng là α=0.9.

Sau khi ước lượng về RTT đã được cập nhật, thì thời gian hết giờ để phát lại gói số liệu tiếp theo, RTO (retransmit timeout) được tính như sau:

RTO = β.RTT (2)

Cần phải chọn β sao cho việc phát lại do hết giờ không bị sai lầm do thăng giáng của thời gian khứ hồi; nghĩa là làm cho xác suất thời gian khứ hồi của một gói tin lớn hơn RTO là rất nhỏ. Chính vì vậy, β cần được chọn khơng q nhỏ, có thể sẽ dẫn đến việc phát lại vội vàng, khi gói tin vẫn đang ở trong mạng; β cũng khơng được chọn q lớn, có thể sẽ dẫn đến việc phát lại quá chậm trễ, gói tin bị mất từ lâu, mà bên gửi vẫn chờ cho hết giờ rồi mới phát lại.

Trong các phiên bản TCP được cài đặt đầu tiên, người ta thường chọn β là một số cố định bằng 2. Tuy nhiên, các nghiên cứu thực nghiệm sau này cho thấy rằng, RTT thăng giáng trong một miền tương đối rộng, vì vậy khơng nên chọn β theo cách đơn giản

như trên. Công trình đầu tiên đề xuất việc cải tiến thuật tốn tính RTO của Jacobson được cơng bố năm 1988. Ơng đã đề xuất cách làm cho β xấp xỉ tỉ lệ với độ lệch chuẩn của hàm mật độ xác suất thời gian đến của biên nhận. Cụ thể là, sử dụng độ lệch trung bình như một ước lượng rẻ (cheap estimator) của độ lệch chuẩn. Thuật tốn này địi hỏi phải tính một biến nữa là độ lệch được làm trơn D, như sau:

D = α.D + (1-α).|RTT-M| (3)

Trong đó, các tham số RTT và M hồn tồn tương tự như trong biểu thức (1), còn α ở đây khơng nhất thiết phải có cùng giá trị như tham số α trong biểu thức đó. Jacobson đã chỉ ra rằng, mặc dù D khơng hồn tồn giống độ lệch chuẩn, nhưng nó cũng là một xấp xỉ đủ tốt. Cách tính D như trên nhằm đạt được tốc độ cao nhất, chỉ sử dụng các phép tính cộng, trừ và dịch trên các số nguyên. Ngày nay, các phiên bản TCP đều sử dụng thuật tốn này và tính thời gian hết giờ để phát lại như sau:

RTO = RTT + 4.D (4)

Sử dụng hệ số 4 có hai ưu điểm, thứ nhất là việc nhân với 4 sẽ được thực hiện bởi phép dịch, có tốc độ thực hiện cao; thứ hai là, xác suất một gói tin được biên nhận chậm hơn RTO là rất nhỏ, có thể bỏ qua.

Cách giải quyết sai lầm thứ hai: rút lui theo hàm mũ. Đây là cách giải quyết duy

nhất đúng đắn, bởi vì theo cơ chế khởi động chậm, cửa sổ gửi tăng lên theo hàm mũ, cho nên cũng cần phải rút lui theo cách này cho đủ nhanh khi đã có dấu hiệu của tắc nghẽn. TCP sẽ đặt đồng hồ phát lại bằng khoảng thời gian rút lui và khoảng đó sẽ được tăng gấp đôi cứ mỗi lần bị hết giờ liên tiếp.

Thuật toán Slow Start (SS):

− Thực thể phát sử dụng thêm biến:

+ cwnd (congestion window) - kích thước cửa sổ phát

+ ssthresh (ss threshhold) - giới hạn trên của cwnd, nếu vượt qua Ỉ tắc nghẽn.

− Bắt đầu phát, cwnd := 1, đó là tốc độ “an tồn nhất”

− Nhận được mỗi ack, tăng cwnd lên 1 để thăm dị (Additive Increase)

+ Khơng tăng cwnd quá Window Size mà bên nhận thông báo.

+ Thực chất, cwnd tăng lên theo hàm mũ (theo thời gian). − Khi cwnd ≥ ssthresh, chuyển sang CA

Hình 5.8. Thuật tốn Slow Start (SS)

Một phần của tài liệu Mạng máy tính và HTM (Trang 103 - 104)

Tải bản đầy đủ (PDF)

(124 trang)