1. Trang chủ
  2. » Công Nghệ Thông Tin

Khảo sát giải thuật điều khiển tắc nghẽn cho luồng TCP

9 8 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 688,58 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài báo khảo sát một số giải thuật điều khiển tắc nghẽn thông dụng dùng trong các hệ điều hành window và Linux như TCP-Tahoe, TCP-Reno, TCP-NewReno, BIC-TCP và CUBIC. Trong từng giải pháp, các cơ chế điều khiển cửa sổ tắc nghẽn sử dụng các hàm khác nhau được phân tích và so sánh dựa vào mức độ tận dụng tài nguyên mạng của từng giải pháp. Mời các bạn cùng tham khảo!

Trang 1

Khảo sát giải thuật điều khiển tắc nghẽn cho luồng

TCP

Nguyễn Xuân Khánh

Khoa Viễn Thông II, Học Viện Công Nghệ Bưu Chính Viễn Thông Email: xuankhanh@ptithcm.edu.vn

Abstract— TCP (Transmisssion Control Protocol) mang hầu hết

các lưu lượng trên Internet, vì thế hiệu năng của Internet phụ

thuộc rất lớn vào TCP thực hiện như thế nào khi truyển qua

Internet, nhất là hiệu quả của giải thuật điều khiển tắc nghẽn mà

TCP sử dụng Bài báo này khào sát một số giải thuật điều khiển

tắc nghẽn thông dụng dùng trong các hệ điều hành window và

Linux như TCP-Tahoe, TCP-Reno, TCP-NewReno, BIC-TCP và

CUBIC Trong từng giải pháp, các cơ chế điều khiển cửa sổ tắc

nghẽn sử dụng các hàm khác nhau được phân tích và so sánh

dựa vào mức độ tận dụng tài nguyên mạng của từng giải pháp

Keywords- TCP, Điều khển tắc nghẽn, giải thuật tránh tắc

nghẽn, Khởi động chậm

Các giải thuật điều khiển tránh tắc nghẽn trong TCP nhằm

giải quyết vấn đề sử dụng tài nguyên mạng một cách hiệu quả,

công bằng và giảm thiểu sự mất gói xảy ra Mỗi kết nối TCP sẽ

phản ứng với hiện tượng này bằng cách điều chỉnh tải đưa vào

mạng sao cho vẫn đảm bảo được ở một mức độ hợp lý chất

lượng kết nối TCP, giảm thiểu mức độ tắc nghẽn xảy ra trên

mạng và ảnh hưởng của nó Bên cạnh đó, các giải thuật này

còn đảm bảo sự công bằng trong việc sử dụng tài nguyên mạng

giữa các kết nối Tuy nhiên trong bài báo này chỉ đề cập đến

góc độ điều chỉnh mức độ phát của bên phát thông qua điều

chỉnh cửa sổ tắc nghẽn

Phần còn lại của bài báo được tổ chức như sau: trong phần

II, miêu tả về các hoạt động cơ bản trong điều khển tắc nghẽn

Phần III, IV và V giới thiệu các giải pháp TAHOE, RENO,

NEWRENO Phần VI và VI giới thiệu các giải thuật cho mạng

tộc độ cao và độ trễ lớn BIC-TCP và CUBIC Phần VIII cung

cấp các kết quả mô phỏng và phân tích lý thuyết Cuối cùng, là

kết luận bài báo trong phần IX

II ĐIỀU KHIỂN TẮC NGHẼN TRONG TCP

Cơ chế điều khiển lưu lượng của TCP nhằm tránh hiện tượng

quá tải/tắc nghẽn ở phía TCP nhận khi tốc độ TCP phát cao

hơn tốc độ xử lý ở TCP nhận Tuy nhiên, nó không giải quyết

được tình trạng tắc nghẽn trên đường truyển khi luồng TCP

được truyền qua mạng (ví dụ Internet) Hiện tượng tắc nghẽn

trên mạng gây ra do một router hay một gateway trên con

đường đi của luồng TCP bị tắc nghẽn trong khoản thời gian tải

nặng Trong khoản thời gian tắc nghẽn này, các bộ đệm dùng

lưu trữ gói truyền tại hàng đợi đầu ra của router tạm thời có thể bị tràn và gây ra tình trạng mất gói (mất segment TCP) Mặc dù, một nguyên nhân khác gây ra hiện tượng mất gói cũng có thể do lỗi sai truyền dẫn nhưng hiện nay lý do chính

là vẫn do tình trạng tắc nghẽn trên mạng (hiện nay mạng sử dụng phương tiện truyền dẫn quang rộng rãi nên lỗi truyển dẫn thấp)

Luồng TCP qua mạng Internet thường đi qua nhiều đường truyền, liên kết có tốc độ khác nhau Do đó, tốc độ truyền segment trên toàn bộ tuyến được xác định bởi liên kết có tốc

độ thấp nhất Tắc nghẽn có thể xảy ra ở phía phát của liên kết này (hàng đợi đầu ra) khi có nhiều segment trong nhiều kết nối TCP đồng hiện hành cùng tới với tốc độ nhanh hơn tốc độ truyển trên liên kết này Trong tình huống này, số lượng gói trong hàng đợi đầu ra này tăng dần lên cho đến khi bộ đệm đầy và xảy ra hiện tượng gói bị loại bỏ Điều này cũng ảnh hưởng đến các ACK liên quan đến những gói đã mất và như vậy nó có một ảnh hưởng đáng kể đến tổng thời gian truyền một bản tin

Để giảm khả năng xảy ra mất segment, mỗi host TCP phát có một thủ tục điều khiển tắc nghẽn cho mỗi kết nối TCP, thủ tục này sử dụng tốc độ đến của các ACK trong một kết nối để ổn định tốc độ đưa segment vào Internet Bên cạnh thủ tục điều khiển lưu lượng dùng cửa sổ trượt, mỗi kết nối TCP cũng có một biến cửa sổ tắc nghẽn Wc kết hợp với thủ tục điều khiển tắc nghẽn này Mỗi kết nối đều phải duy trì cả 2 biến này và chỉ có thể thực hiện truyền một segment trong kết nối khi cả 2 cửa số này đều trong trạng thái mở (con hạn mức truyền) Như trên đã trình bày, thủ tục điều khiển tắc nghẽn có tác dụng khi xảy ra trường hợp mạng nặng tải và trạng thái luồng segment được điều khiển chính bởi cửa sổ tắc nghẽn Wc Còn trong trường hợp mạng có tải nhẹ thì nó được điều khiển chính bởi cửa sổ phát Ws Tuy nhiên, một kết nối TCP khi bắt đầu truyền do chưa nhận các ACK nên TCP phát không biết được mức độ tải hiện hành của mạng Nên để ngăn tránh việc truyền một khối lượng lớn các segment (lên đến kích thước cửa sổ

Ws cực đại đã thỏa thuận giữa 2 đầu phát và nhận) thì kích thước của sổ tắc nghẽn Wc được thiết lập ban đầu là 1 segment Do kích thước Wc tính theo đơn vị byte nên giá trị ban đầu này sẽ bằng với kích thước segment lớn nhất MSS (Maximum Segment Size) đã được thỏa thuận giữa 2 đầu thu phát của kết nối TCP vào lúc thiết lập kết nối

Trang 2

Thủ tục điều khiển cửa sổ tắc nghẽn thực hiện khi TCP phát

bắt đầu pha truyền dữ liệu của một kết nối bằng cách gởi một

segment với kích thước MSS Sau đó nó khởi tạo một bộ định

thời phát lại RTO (Retransmission TimeOut) cho segment này

và chờ nhận ACK cho segment này Nếu thời gian định thời

phát lại hết hạn thì nó sẽ phát lại segment này Nếu nó nhận

được ACK trước thời hạn này thì Wc được tăng lên 2 segment

với kích thước mỗi segment là MSS TCP phát sau đó có thể

phát 2 segment và mỗi ACK nhận được cho các segment này

Wc được tăng lên 1 segment (MSS byte) Do đó, TCP phát

bây giờ có thể phát 4 segment và cứ tiếp tục như thế Wc sẽ

tăng theo qui luật hàm mũ Mặc dù, Wc tăng nhanh như vậy,

nhưng pha này vẫn được gọi là khởi đầu chậm (slow start) vì

nó được tăng từ 1 segment Việc tăng này được tiếp tục cho

đến khi có một sự hết hạn thời gian phát lại của một segment

bị mất, hoặc TCP phát nhận được một ACK nhân bản (nhiều

ACK giống nhau xác nhận cho cùng một segment), hoặc đạt

đến mức cao hơn mức ngưỡng SST (Slow Start Threshold)

Với mỗi kết nối TCP, SST được thiết lập 64 kbyte Tuy

nhiên, trong ví dụ hình 1 giá trị này được giả định ban đầu là

32 kbyte và nếu MSS là 1 kbyte thì nó bằng với 32 segment

8

16

32

64

4

Wc

(segment/kbyte)

37

3 nhân bản ACK đầu tiên

3 nhân bản ACK thứ 2 SST= 32

SST= 17

Wc = 34

a)

8

16

32

64

4

Wc

(segment/kbyte)

RTO đầu tiên

SST= 32

RTO thứ 2

RTO thứ 3

b)

Hình 1 Điều chỉnh cửa sổ tắc nghẽn : a) Vào lúc nhận các

ACK nhân bản ; b) Vào lúc hết hạn bộ định thời phát lại RTO

Giả sử Wc đạt đến SST cho thấy đường truyền không bị tắc

nghẽn và do đó thủ tục sẽ bước vào giai đoạn 2 Trong giai

đoạn 2 thay vì Wc tăng 1 segment, thì nó chỉ tăng 1/Wc

segment cho mỗi ACK nhận được Như vậy, giai đoạn này

Wc sẽ tăng 1 segment khi nhận được một tập Wc ACK Pha

này được gọi là pha tránh tắc nghẽn và trong pha này việc tăng

Wc mang tính cộng Giai đoạn này tiếp tục cho đến khi Wc

đạt được đến một mức ngưỡng thứ 2 – trong ví dụ này là 64

kbyte – thì Wc sẽ được duy trì không đổi ở giá trị này

Trong trường hợp mạng có tải nhẹ - có nghĩa là không có liên kết nào trên con đường qua mạng bị tắc nghẽn - thì luồng segment trên kết nối được điều khiển chính bởi Ws miễn sao

Wc luôn lớn hơn Ws cực đại Trong trạng thái này tất cả các segment được truyền với một độ biến động trễ và độ trễ tương đối là hằng số Tuy nhiên, khi số lượng kết nối trên mạng tăng dẫn đến mức độ lưu lượng tăng đến một mức bắt đầu xảy ra mất gói thì thủ tục điều khiển tránh tắc nghẽn trên mỗi kết nối

sẽ bắt đầu điều chỉnh cửa sổ Wc của kết nối sao cho phản ánh được mức độ tắc nghẽn

Khi xảy ra mất gói thủ tục điểu khiển tắc nghẽn ở TCP phát sẽ phản ứng lại bằng cách điều chỉnh Wc (giảm Wc) tùy vào trường hợp cụ thể phát hiện ra sự mất gói do nhận được các ACK nhân bản hay hết thời hạn của bộ định thời phát lại Trường hợp thứ nhất : phát hiện ra mất gói khi nhận được các ACK nhân bản Việc nhận được ACK nhân bản cho thấy ở host đích vẫn nhận được các segment Do đó mức độ tắc nghẽn có thể được giả định là nhẹ và vào lúc nhận được ACK nhân bản thứ 3 liên quan đến segment bị mất (thủ tục fast retransmit) thì kích thước của Wc sẽ được giảm phân nữa và thủ tục tránh tắc nghẽn được thực hiện bắt đầu từ giá trị này Thủ tục này được gọi là khôi phục nhanh (fast recovery) Trong ví dụ trong hình 1 (a) , vào lúc nhận ACK nhân bản thứ

3, segment bị mất được phát lại và Wc được thiết lập lại bằng phân nữa - 32 kbyte - giá trị hiện hành (64 kbyte) Sau đó Wc được tăng trở lại theo như thủ tục tránh tắc nghẽn Tuy nhiên, khi đạt đến 34 segment (34 kbyte) một segment thứ 2 bị mất (giả sử do nhận được ACK nhân bản ACK thứ 3 lần 2) làm cho Wc lại bị thiết lập lại phân nữa là 17 segment và thủ tục tránh tắc nghẽn lại khởi động lại Lần này ở giá trị Wc=17 segment

Trường hợp thứ hai : mất gói được nhận ra do quá hạn bộ định thời phát lại RTO trong trường hợp này được giả định là mức

độ tắc nghẽn xảy ra đến nổi không có segment nào thuộc kết nối có thể đi qua mạng Như ví dụ trong hình 1(b), khi bộ định thời phát lại hết hạn (RTO), Wc được thiết lập lại 1 segment bất chấp giá trị hiện hành của nó là bao nhiêu và thủ tục slow start được khởi động lại Như vậy, khi mức độ tắc nghẽn đạt đến mức làm quá hạn bộ định thời phát lại thì luồng segment được điều khiển chính bằng Wc

III GIẢI PHÁP TCP-TAHOE TCP Tahoe là một trong những giải pháp điều khiển tắc nghẽn trong TCP có sớm nhất do V Jacobson đề xuất [3] Giải pháp này dựa trên đặc tả RFC 793 (TCP chuẩn) và bao gồm một số giải thuật được chia thành 3 nhóm : Khắc phục vấn đề ước lượng thời hạn phát lại (RTO), Tăng cường nhận diện sự mất gói nhanh hơn và Các giải thuật tránh tắc nghẽn (CA-Congestion Avoidance) và khởi động chậm (SS-Slow Start) Cải tiến đầu tiên : Nếu giá trị RTO được ước lượng quá cao thì viện nhận ra sự mất gói sẽ quá bảo toàn và hiệu suất của các luồng TCP riêng biệt có thể suy giảm nghiêm trọng Trong trường hợp ngược lại, khi giá trị RTO được ước lượng không

Trang 3

đúng mức thì cơ chế phát hiện lỗi có thể gây ra tình trạng phát

lại không cần thiết, lãng phí các tài nguyên mạng dùng chung

và làm cho sự tắc nghẽn trên toàn mạng tồi tệ hơn Do thực tế

không thể phân biệt giữa một ACK cho gói phát lần đầu hay

cho gói phát lại nên việc tính toán RTO phức tạp hơn

Giải thuật ước lượng sự biến động độ trễ đi-về rttvar

(round-trip variance) cố gắng giảm bớt vấn đề ước lương quá cao

Thay vì sử dụng mối quan hệ tuyến tính giữa RTO và giá trị

ước lượng RTT βxSRTT (RFC 793) sau

Với

SRTT = ( α x SRTT ) + ((1- α ) x RTT) (2)

SRTT : Smoothed RTT

Ubound : giới hạn trên của thời hạn phát lại

Lbound : giới hạn dưới của thời hạn phát lại

α : hằng số nhuyễn ( 0,8 – 0,9)

β : hằng số biến động trễ ( 1,3-2,0)

TCP Tahoe tính toán ước lượng biến động RTT thiết lập một

giới hạn trên cho RTO (SRTT + 4rttvar) như sau

RTO = min [SRTT+4rttvar, max[Lbound, [β x SRTT)]] (3)

Sự ước lượng RTO không đúng mức được giải quyết bằng

cách nhân đôi giá trị RTO khi có mỗi sự kiện phát lại Nói

cách khác, trong quá trình xảy ra tắc nghẽn nghiêm trọng, khi

nhận ra chuỗi mất gói liên tục thì RTO được tăng theo hàm

mũ Việc này làm giảm đáng kể tổng số gói phát lại và giúp

ổn định trạng thái mạng

Cải tiến thứ 2 : Tăng cường việc nhận ra mất gói đặc tả TCP

đầu tiên dùng RTO là cơ chế nhận ra mất gói duy nhất Mặc

dù RTO đủ tin cậy để nhận ra sự mất gói nhưng nó không đủ

nhanh để phản ứng lại sự mất gói này Rõ ràng, thời gian tối

thiểu để nhận ra mất gói là RTT, nghĩa là nếu đầu nhận TCP

có thể nhận ra tức thời và báo cáo một sự kiện mất gói cho đầu

phát TCP thì báo cáo này sẽ đến đầu phát trong thời gian

chính xác một RTT sau khi đầu phát gởi gói bị mất RTO, theo

định nghĩa, lớn hơn RTT Mặt khác, nếu đầu thu được yêu

cầu đáp ứng lại ngay tức thời tất cả những gói dữ liệu đến

không đúng thứ tự bằng cách báo cáo gói đúng thứ tự nhận

được sau cùng (ACK nhân bản) thì sự mất gói có thể nhận biết

được hầu như trong khoản thời khoản RTT (nhỏ hơn RTO)

Nói cách khác, giả định xác suất sắp xếp lại thứ tự và nhân

bản gói trong mạng không đáng kể thì các ACK nhân bản có

thể được xem như là một chỉ thị mất gói tin cậy Như vậy với

chỉ thị mất gói mới này thì đầu phát có thể phát lại gói mất mà

không cần phải chờ đến sự kiện quá hạn RTO

Cải tiến thứ 3 : đây là cải tiến quan trọng nhất Nó bao gồm

các giải thuật khởi động chậm (SS) và Tránh tắc nghẽn (CA)

Những giải thuật này cho phép một đầu phát TCP nhận ra các

tài nguyên mạng khả dụng và điều chỉnh tốc độ truyền của

luồng TCP đến các giới hạn tài nguyên mà nó nhận biết được

Giả sử xác suất hư hỏng gói ngẫu nhiên trong truyền dẫn là

không đáng kể (<< 1%), đầu phát có thể xử lý tất cả các sự mất gói nhận biết được như là các chỉ thị tắc nghẽn Hơn nữa, việc nhận được bất kỳ một gói ACK nào đều cho biết mạng có thể nhận và truyền ít nhất một gói mới (vì một gói được ACK

đã rời mạng) Như vậy, đầu phát có thể gởi ít nhất một số lượng dữ liệu vừa được xác nhận Sự cân bằng vào-ra này được gọi là nguyên lý bảo toàn gói và là nguyên lý cốt lõi của

2 giải thuật SS và CA

Trong giải thuật SS, khi nhận được một ACK đầu phát có thể gởi gấp đôi số lượng dữ liệu đã được xác nhận bởi ACK này (tăng theo cấp bội) Như vậy, thay vì phát triển một bước theo

số lượng gói tồn đọng (hình 2) giống như trong đặc tả ban đầu (RFC 793) thì giải thuật SS phát triển cửa sổ theo một hàm mũ (hình 3) Nếu nhận ra một gói bị mất(có nghĩa mạng đang trong tình trạng tắc nghẽn) thì của số tắc nghẽn sẽ được thiết lập lại giá trị ban đầu (bằng một) để đảm bảo giải tỏa các tài nguyên mạng Đồ thị trong hình 3 cho thấy 2 trường hợp biến động cửa sổ tắc nghẽn : đồ thị a biểu diễn trường hợp khi đầu nhận không thể xử lý theo tốc độ nhận và đồ thị b cho thầy những biến động cửa sổ tắc nghẽn khi mạng không thể phân phối mọi gói thành công ở tốc độ truyền dẫn

Thời gian

Giới hạn đầu nhận (cửa sổ)

cực đại

Hình 2 Biến động số lượng gói tồn đọng trong RFC 793

Thời gian

Giới hạn đầu nhận

b)

Thời gian

Giới hạn đầu nhận

Giới hạn mạng Giới hạn mạng

Nhận ra mất gói

a)

Hình 3 Biến động cửa số tắc nghẽn của SS nếu giới hạn được tác động bởi điều khiển lưu lượng cũ (a) và bởi mạng (b) Tính hiệu quả của giải thuật có thể được định nghĩa là tỉ số giữa vùng bên dưới của đồ thị cửa sổ tắc nghẽn và vùng bên dưới đường giới hạn mạng (hình 3) Rõ ràng khi tài nguyên mạng khả dụng thấp hơn giới hạn ấn định bởi đầu nhận (đồ thị

Trang 4

b trong hình 3), hiệu suất của giải thuật SS trong một khoản

thời gian dài rất thấp

Giải thuật thứ hai trong nhóm này là tránh tắc nghẽn CA Mục

đích của giải thuật này nhằm cải tiến hiệu suất của TCP trong

trường hợp tài nguyên mạng giới hạn, có khả năng xảy ra hiện

tượng cổ trai truyền dẫn So với giải thuật khởi động chậm thì

giải thuật này dè dặt nhiều hơn trong đáp ứng cho những gói

ACK nhận được và với việc nhận ra mất gói Nếu tất cả các

gói đã được giao thành công trong khoản thời gian RTT thì

thay vì nhân đôi cửa sổ tắc nghẽn như trong giai đoạn SS thì

giải thuật CA chỉ tăng 1 (tăng cộng) Và khi có sự mất gói xảy

ra, thay vì khởi động lại với kích thước 1 gói thì cửa sổ tắc

nghẽn chỉ đơn giản giảm phân nữa so với kích thước hiện

hành (ngay trước khi sự mất gói xảy ra) Theo phân tích của

Jacobson [3] để đạt được mạng không có tắc nghẽn thì việc

giảm phân nữa cửa sổ tắc nghẽn bởi các luồng riêng biệt là đủ

Cách giảm có tính nhân này giống như hành vi hàm mũ khi

nhiều gói liên tiếp bị mất (trạng thái tắc nghẽn kéo dài) Theo

như trong hình 4, Giải thuật CA này đúng là có hiệu quả trong

thời gian dài nhưng bù lại thì thời gian tìm ra tài nguyên mạng

của nó lại chậm do tốc độ tăng kích thước cửa sổ của nó mang

tính dè dặt

Thời gian

Giới hạn mạng Nhận ra mất gói

Hình 4 Biến động cửa sổ tắc nghẽn và hiệu quả của giải thuật

tránh tắc nghẽn CA

Giải thuật TCP Tahoe gồm cả 2 giải thuật SS và CA hoạt động

riêng biệt Nó tổ hợp cả khám phá nhanh tài nguyên mạng

(SS) và hiệu suất dài hạn (CA) Để chuyển giữa 2 pha giải

thuật này, một mức ngưỡng ssthresh được định nghĩa Mức

ngưỡng này xác định kích thước cực đại của cửa sổ tắc nghẽn

trong pha khởi động chậm SS, và nếu có bất kỳ sự mất gói xảy

ra thì ssthreh được điều chỉnh về phân nữa kích thước cửa sổ

tắc nghẽn hiện hành Khi nằm trong giai đoạn của giải thuật

SS và có một sự mất gói được nhận biết thì bản thân cửa sổ

luôn thiết lập lại ở giá trị tối thiểu (=1) Ngay khi giá trị cửa sổ

tắc nghẽn thấp hơn ssthreh, pha SS được thực hiện Khi cửa sổ

lớn hơn mức ngưỡng này, giải thật CA được sử dụng Đây là

gọi là chu trình SS-CA (hình 5)

Thời gian

Giới hạn mạng Nhận ra mất gói

Hình 5 Biến động cửa sổ tắc nghẽn của tổ hợp 2 giải thuật SS

và CA

IV GIẢI PHÁP TCP RENO Trong TCP Tahoe, việc giảm cửa sổ tắc nghẽn về 1 khi có sự mất gói xảy ra là một việc khá hà khắc và trong một vài trường hợp có thể dẫn đến sự suy giảm độ thông xuất nghiêm trọng Ví dụ, với tỉ lệ mất gói 1% có thể gây ra sự suy giảm đến 75% độ thông xuất của một luồng TCP chạy giải thuật Tahoe [4] Để giải quyết vấn đề này, Jacobson đã đưa ra khái niệm về sự khác biệt giữa những sự kiện tắc nghẽn nhẹ và tắc nghẽn nghiêm trọng và đồng thời đã hiệu chỉnh lại các giải thuật khởi động chậm và tránh tắc nghẽn

Sự nhận ra mất gói thông qua thời hạn phát lại RTO cho thấy trong một khoản thời gian nhất định (ví dụ RTO-RTT) một sự kiện tắc nghẽn nghiêm trọng nào đó đã ngăn cản việc truyền bất kỳ gói nào trên mạng Vì vậy, bên phát TCP sẽ áp dụng chính sách bảo toàn thiết lập lại cửa sổ tắc nghẽn tới một giá trị tối thiểu

Một cách khác có thể nhận ra mất gói bằng các ACK nhân bản Giả sử bên phát TCP nhận được 4 ACK, ACK đầu tiên xác nhận cho gói dữ liệu mới nào đó, 3 ACK còn lại là các bản copy chính xác của ACK đầu tiên Các ACK nhân bản cho thấy những gói nào đó đã bị lỗi Tuy nhiên, sự hiện diện của mỗi gói ACK (bao gồm ACK nhân bản) cho biết một gói dữ liệu đã đến đích thành công Hơn nữa, phía phát bên cạnh việc nhận ra mất gói nó cũng quan sát khả năng của mạng trong việc phân phối dữ liệu Như vậy, trong trường hợp này trạng thái của mạng có thể được xem là bị tắc nghẽn nhẹ, và phản ứng với sự kiện mất gói có thể lạc quan hơn Trong TCP Reno, phản ứng lạc quan này là sử dụng giải thuật khôi phục nhanh FR (Fast Recovery)

Ý định của FR là giảm phân nữa cửa sổ tắc nghẽn và thực hiện thăm dò tài nguyên mạng cho đến khi lỗi được khắc phục Hay nói một cách khác, bên phát nằm trong trạng thái khôi phục nhanh cho đến khi nó nhận được gói ACK không nhân bản Các giai đoạn của giải thuật được minh họa trong hình 6 Các kích thước cửa sổ tắc nghẽn trong các trạng thái khác nhau được biểu thị bởi các đoạn bên trên các đường trạng thái, và các mũi tên biểu thị kích thước cửa sổ hiệu lực hay số lượng gói đang được chuyển tiếp

Trang 5

Sự chuyển từ trạng thái 1 sang trạng thái 2 biểu thị sự giảm

việc sử dụng tài nguên mạng dùng chính sách giảm gấp bội

Sau khi giảm phân nữa (Wc/2), giải thuật không chỉ phát lại

gói dữ liệu chưa được xác nhận cũ nhất mà còn’thổi phồng’

cửa sổ theo số lượng gói ACK nhân bản (trang thái 2 sang

trạng thái 3) Như chúng ta đã biết, một ACK sẽ chỉ thị ít nhất

một gói dữ liệu đã được giao thành công Như vậy, nếu chúng

ta muốn duy trì một số lượng gói không đổi đang được chuyển

tiếp, chúng ta phải thổi phồng cửa sổ tắc nghẽn để mở một vị

trí gởi dữ liệu mới (trạng thái 4) Nếu không có sự tăng này thì

các gói dữ liệu mới không thể được gởi trước khi lỗi được

khắc phục, và số lượng gói đang được chuyển tiếp có thể giảm

nhiều hơn mong đợi

Dữ liệu đã phát chờ ACK

Dữ liệu đã

được ACK đệm chờ phátDữ liệu được

Wc Trạng thái 1

Wc/2 Trạng thái 2

Ngay trước khi nhận ra mất gói

Wc/2+#dup Trạng thái 3

Wc/2+#dup Trạng thái 4

Wc/2 Trạng thái 5

Ngay sau khi nhận ra mất gói

Wc “phình ra” theo số lượng ACK nhân bản nhận được Các ACK nhân bản có thêm làm Wc “phình ra” thêm Sau khi khôi phục thành công

Dữ liệu tồn đọng không được phép phát lại

Số lượng dữ liệu mới được phép gởi đi do

cửa sổ tắc nghẽn “xã hơi”

Số lượng dữ liệu tới đầu nhận thành công,

suy ra từ các ACK nhân bản nhận được

Số lượng gói đang chuyển tiếp

Kích thước cửa sổ tắc nghẽn là tổng của 2 thành phần này

Hình 6 Các trạng thái tiêu biểu của FR

Trong trạng thái cuối cùng (trạng thái 5), khi một gói ACK

không nhân bản được nhận, chúng ta muốn khôi phục lại hoạt

động tránh tắc nghẽn với phân nữa cửa sổ tắc nghẽn ban đầu

Với xác suất cao, các ACK không nhân bản này sẽ xác nhận

việc giao thành công tất cả các gói dữ liệu tồn đọng suy luận

từ các ACK nhân bản nhận được trước đây Ở thời điểm này,

việc giảm cửa số tắc nghẽn tới Wc/2 (giá trị ngay trước khi

vào giai đoạn khối phục -trang thái 2) là một cách thức tin cậy

và đơn giản để đảm bảo mục tiêu thoát trạng thái khôi phục

nhanh FR

Thời gian

Giới hạn mạng Nhận ra mất gói

ssthresh

Hình 7 Những biến động cửa sổ tắc nghẽn của TCP Reno

Kết quả những biến động cửa sổ tắc nghẽn lý thuyết của TCP Reno biểu diễn trong hình 7 So với nững biến động của TCP Tahoe, bằng cách thay các giai đoạn khởi động chậm SS sau mỗi sự kiện mất gói bằng các giai đoạn phát lại nhanh FR ngắn hơn, TCP Reno đạt hiệu quả trong trạng thái ổn định cải thiện đáng kể

Thực ra, Việc khôi phục từ một sự mất gói đơn sẽ luôn hoàn thành trong một RTT Tuy nhiên, hiệu suất được cải thiện không chỉ bởi rút ngắn giai đoạn khôi phục, mà còn bởi việc cho phép truyền dữ liệu trong giai đoạn khôi phục

V GIẢI PHÁP TCP NEWRENO Một trong những điểm yếu của giải thuật FR trong TCP Reno

sẽ bộc lộ khi nhiều gói mất xảy ra trong một sự kiện tắc nghẽn đơn lẽ Điều này làm giảm đáng kể hiệu năng của TCP Reno trong những môi trường tải nặng Khi một một sự kiện tắc nghẽn đơn lẽ (đột biến lưu lượng trong một khoản thời gian ngắn) gây ra mất nhiều gói dữ liệu Phản ứng giảm phân nữa cửa số tắc nghẽn của FR đột nhiên chuyển thành một sự giảm cửa cổ tắc nghẽn theo quy luật hàm mũ mang tính thận trọng

Sự mất gói đầu tiên gây ra giải thuật bắt đầu vào giai đoạn khôi phục và giảm phân nữa cửa sổ tắc nghẽn sau đó nếu nhận được một ACK không nhân bản thì giải thuật sẽ kết thúc qua trình khôi phục Tuy nhiên, các sự mất tiếp theo sẽ gây ra cửa sổ tắc nghẽn tiếp tục giảm thêm nữa theo cùng một cơ chế vào và thoát trạng thái khôi phục như trường hợp mất gói đầu tiên trong chuỗi mất gói này

Theo một ý nghĩa nào đó, việc phản ứng theo quy luật hàm mũ này đối với nhiều sự mất gói là mong muốn của các giải thuật tránh tắc nghẽn với mục đích giảm sự tiêu thụ tài nguyên mạng trong những tình trạng tắc nghẽn nghiêm trọng Nhưng

sự mong muốn này dựa trên giả định các trạng thái tắc nghẽn độc lập nhau và trong ví dụ trên thì điều này không đúng Có khả năng cao tất cả sự mất gói trong nhóm dữ liệu ban đầu (những gói dữ liệu còn tồn đọng vào lúc xảy ra sự mất gói) được gây ra bởi cùng một sự kiện mất gói đơn lẽ Như vậy, các sự mất gói thứ hai, thứ ba trong ví dụ trên nên được xử lý như là một yêu cầu phát lại dữ liệu chứ không phải như là những chỉ báo tắc nghẽn Hơn nữa, việc giảm cửa sổ tắc nghẽn không đảm bảo sẽ giải phóng tài nguyên mạng ngay tức thời

do tất cả gói dữ liệu được phát trước khi giảm cửa sổ vẫn đang được chuyển tiếp Vì vậy, trước khi kích thước cửa sổ tắc nghẽn mới có hiệu lực, ta không nên áp dụng thêm bất kỳ chiến lược giảm nào nữa Điều này có thể hiểu là việc giảm cửa sổ tắc nghẽn không nên thường xuyên hơn một lần trong khoản thời gian độ trễ lan truyền một chiều hay xấp xỉ RTT/2 Floyd et al [7] đưa ra một sự cải tiến đơn giản giải thuật khôi phục nhanh FR Sự cải tiến này nhằm giải quyết sự không tường minh của các sự kiện tắc nghẽn bằng cách trì hoãn việc thoát khỏi giai đoạn khôi phục cho tới khi tất cả các gói dữ liệu trong giới hạn cửa sổ tắc nghẽn ban đầu (ngay khi tắc nghẽn xảy ra) được xác nhận Giải thuật NewReno bổ sung thêm một biến trạng thái đặc biệt để nhớ số thứ tự của gói dữ

Trang 6

liệu sau cùng được gởi đi trước khi vào trạng thái khôi phục

nhanh FR Giá trị này giúp phân biệt giữa ACK nội bộ (ACK

cho các gói tồn đọng) và ACK cho dữ liệu mới Việc nhận

được một ACK cho gói dữ liệu mới có nghĩa là tất cả các gói

được gởi trước khi nhận ra lỗi đã được giao thành công và bất

kỳ một sự mất gói mới nào sẽ chỉ báo một sự kiện tắc nghẽn

mới Một ACK nội bộ xác nhận sự khôi phục từ chỉ một lỗi sai

đầu tiên và chỉ báo thêm nhiều sự mất gói trong bó gói đầu

tiên

Dữ liệu đã phát chờ

ACK

Dữ liệu đã

được ACK đệm chờ phátDữ liệu được

Wc Trạng thái 1

Wc/2 Trạng thái 2

Ngay trước khi nhận ra mất gói

#dup+Wc/2 Trạng thái 3

#dup+Wc/2-ACK Trạng thái 6

Wc/2 Trạng thái 7

Ngay sau khi nhận ra mất gói Phát lại gói mất Mỗi ACK nhân bản ‘thổi phồng’ Wc

Các ACK nhân bản chỉ làm

Wc “phình ra” thêm Thoát trạng thài khôi phục và làm giảm Wc khi nhận được Mất gói do sự kiện tắc nghẽn thấp

Phát lại gói

Số lượng dữ liệu tới đầu nhận thành công,

biết được từ các ACK nhân bản nhận được

Số lượng gói đang chuyển tiếp

Kích thước cửa sổ tắc nghẽn là tổng của 2 thành phần này

#dup+Wc/2-ACK Trạng thái 4

ACK nội bộ làm giàm cwnd, các gói trước khi nhận

#dup+Wc/2-ACK Trạng thái 5

Phát lại gói bị mất ( ) Wc vẫn duy trì không đổi

X X

X

Nhận ra mất gói (3 ACK nhân bản)

ACK không nhân bản

Hình 8 Các trạng thái của giải thuật khôi phục nhanh FR của

TCP NewReno

Hình 8 minh họa sự biến động kích thước cửa sổ tắc nghẽn

trong NewReno Tương tự với giải thuật Reno, việc nhận bất

kỳ các gói ACK nhân bản đều chỉ kích khởi việc ‘thổi phồng’

cửa sổ tắc nghẽn (các trạng thái 3,4,6) Một ACK nội bộ cho

biết chính xác về phần nào đó dữ liệu đã được giao thành

công Như vậy, phản ứng với ACK nội bộ chỉ là một sự giảm

bớt cửa sổ tắc nghẽn (trạng thái 4) và một sự phát lại gói dữ

liệu chưa được xác nhận kế tiếp (trạng thái 5) Cuối cùng,

việc thoát khỏi giai đoạn khôi phục nhanh FR chỉ có thể thực

hiện khi bên phát nhận được một ACK cho gói dữ liệu mới

và kèm theo đó là việc giảm kích thước cửa sổ hoàn toàn

VI GIẢI PHÁP BIC-TCP

BIC-TCP (Binary Increase Congestion Control – TCP) mở rộng NewReno thêm một một giai đoạn hội tụ nhanh RC (Rapid Convergence) Trong giai đoạn này, BIC-TCP sử dụng cách thức tìm kiếm nhị phân để khám phá nhanh kích thước cửa sổ tắc nghẽn tối ưu (giá trị tương ứng với tài nguyên mạng khả dụng) bằng cách xem sự nhận biết mất gói như là một chỉ báo cửa sổ tắc nghẽn có kích thước qua mức

Thời gian

Wmax

Wmin

Hình 9 Tìm kiếm nhị phân để đạt kích thước cửa sổ tối ưu Trong khi mạng giao các gói dữ liệu thành công (bên phát nhận được ACK trong khoảng RTT) cửa sổ tắc nghẽn được cập nhật đến điểm giữa (giá trị trung bình) trong dãy tìm kiếm giữa kích thước cửa sổ tối thiểu Wmin (không có sự mất gói trong khoản RTT) và kích thước cửa sổ cực đại Wmax (giá trị

có sự mất gói xảy ra) Khi có một chỉ báo giao dữ liệu thành công (nhận được ACK không nhân bản) thì Wmin được tăng lên giá trị cửa sổ trước đó (gía trị cửa sổ khi mạng không có tắc nghẽn) Sau khi cửa sổ tăng đến điểm giữa, nếu mạng không có mất gói xảy ra thì có nghĩa rằng mạng có thể xử lý nhiều lưu lượng hơn và như vậy có thể thiết lập điểm giữa là một giá trị Wmin mới và thực hiện một sự tìm kiếm khác với giá trị Wmin và Wmax mới Ngay khi nhận ra mất gói ( ví dụ nhận được 3 ACK nhân bản) thì Wmax được thiết lập bằng gía trị cửa sổ hiện hành (giá trị khi mạng có tắc nghẽn) và vào giai đoạn khôi phục nhanh như trong NewReno Với cách thực hiện này, cửa sổ tăng rất nhanh khi kích thước cửa sổ hiện hành cách xa giá trị tương ứng với dung lượng của đường truyền (giá trị xảy ra mất gói trước đó) Còn nếu gần với giá trị này thì nó sẽ giảm chậm mức độ tăng kích thước Mức độ tăng cửa sổ nhỏ nhất ở điểm bảo hòa và số lượng quá mức của

nó vượt qua điểm bảo hòa với sự mất gói rất nhỏ Toàn bộ hàm phát triển cửa sổ này đơn giản là một hàm logarit lõm Hàm lõm này giữ cho cửa sổ tắc nghẽn ở điểm bảo hòa lâu và cân bằng hơn nhiều so với các hàm tuyến tính và hàm lồi (các hàm này có mức tăng cửa sổ lớn nhất ở điểm bảo hòa và như vậy gây ra sự quá mức lớn nhất về kích thước cửa sổ ở thời điểm mất gói xảy ra Đặc tính này giúp cho BIC-TCP rất ổn định

Tuy nhiên, việc tăng đến điểm giữa có thể tăng quá nhiều trong một RTT, vì thế nếu khoảng cách giữa điểm giữa và Wmin hiện hành lớn hơn một hằng số cố định nào đó Smax thì BIC-TCP sẽ tăng cửa sổ theo Smax Nếu không có sự mất gói xảy ra ở kích thước cửa sổ cập nhật này, thì kích thước cửa sổ này trở thành giá trị Wmin mới Tiến trình này tiếp tục cho

Trang 7

đến khi độ tăng cửa sổ này ít hơn một hằng số nhỏ Smin nào

đó và lúc này kích thước cửa sổ được thiết lập tới giá trị cực

đại hiện hành (Wmax) Như thế, sau khi thực hiện giảm cửa sổ

do tắc nghẽn, hàm phát triển cửa sổ này sẽ hầu như phù hợp

với một hàm tuyến tính (giai đoạn tăng cộng) theo sau bởi một

hàm logarithmic (giai đoạn tìm kiếm nhị phân)

Nếu kích thước cửa sổ tăng quá giá trị cực đại, kích thước cửa

số cân bằng phải lớn hơn giá trị cực đại hiện hành và một giá

trị cực đại mới được thiết lập BIC-TCP vào một giai đoạn

mới gọi là thăm dò giá trị cực đại Giai đoạn thăm do cực đại

sử dụng một hàm phát triển cửa sổ đối xứng chính xác với sự

phát triển trong giai đoạn tăng cộng và tìm kiếm nhị phân

Hình-10a biểu diễn hàm phát triển này trong giai đoạn thăm

dò giá trị cực đại Trong quá trình thăm dò, kích thước cửa sổ

ban đầu phát triển chậm để tìm giá trị cực đại cận kề, và sau

một khoản thời gian phát triển chậm mà không tim thấy giá trị

cực đại mới (không có sự mất gói xảy ra) thì nó đoán giá trị

cực đại mới nằm xa vị trí hiện hành và nó chuyển sang tăng

nhanh hơn bằng cách chuyển sang tăng cộng Trong quá trình

này kích thước cửa sổ được tăng với mức tăng cố định

BIC-TCP có hiệu năng tốt là nhờ sự tăng chậm quanh giá trị Wmax

và tăng tuyến tính trong quá trình tăng công và thăm dò giá trị

cực đại

b)

a)

Tăng

cộng Tìm kiếm nhị phân

Thăm dò cực đại Wmax

Trạng thài ổn định

Thăm dò cực đại Wmax

Hàm phát triển cửa số BIC-TCP

Hàm phát triển cửa số CUBIC

Hình 10 Các hàm phát triển cửa sổ BIC-TCP và CUBIC

BIC-TCP đạt được tính linh hoạt tốt trong mạng tốc độ cao,

công bằng giữa các luồng và ổn định do sự dao động cửa sổ

thấp Tuy nhiên, hàm phát triển của nó có thể vẫn quá mạnh

đối với TCP., đặc biệt trong trường hợp mạng tốc độ chậm và

có RTT nhỏ Hơn nữa nhiều giai đoạn khác nhau (tăng nhị

phân, tham dò giá trị cực đại, Smax và Smin) của quá trình

điều khiển cửa sổ làm tăng độ phức tạp khi thực hiện giao thức

và phân tích hiệu năng của nó Để giải quyết những vần đề

này, CUBIC đã được giới thiệu như là một biến thể của

BIC-TCP với sự điều khiển cửa sổ đơn giản và tăng cường tình

công bằng giữa các luồng TCP trong việc sử dụng tài nguyên

mạng khi có tắc nghẽn xảy ra

VII GIẢI PHÁP CUBIC CUBIC là một biến thể của BIC-TCP Tên gọi của giải thuật này xuất phát từ hàm phát triển cửa sổ của nó là một hàm cubic Dạng của hàm này rất giống với hàm phát triển cửa sổ của BIC-TCP CUBIC sử dụng hàm cubic theo thời gian trôi qua từ sự kiện tắt nghẽn mới nhất Trong khi hầu hết các giải thuật sử dụng hàm tăng lồi khi có sự kiện mất gói xảy ra, mức

độ tăng cửa sổ là luôn luôn tăng, CUBIC sử dụng cả 2 giai đoạn lõm và lồi của hàm CUBIC

Chi tiết của hoạt động của CUBIC như sau Khi có sự mất gói xảy ra CUBIC thiết lập Wmax bằng kích thước cửa sổ nơi sự kiện mất gói xảy ra và thực hiện giảm kích thước cửa sổ theo bội số với hệ số β ( hằng số giảm kích thước cửa sổ), thực hiện giai đoạn khôi phục nhanh thông thường và phát lại của TCP Sau đó nó vào giai đoạn tránh tắc nghẽn, bắt đầu tăng cửa sổ dùng giai đoạn lõm của hàm cubic Hàm cubic được thiết lập

có giai đoạn bằng phẳng của nó ở Wmax, như vậy hàm lõm sẽ phát triển tiếp tục cho tới khi kích thước cửa sổ bằng Wmax Giải thuật tiếp tục chuyển sang phần lồi của hàm cubic và bắt đầu giai đoạn phát triển cửa sổ lồi Cách điều chỉnh cửa sổ này (lõm và sau đó lồi) cải thiện giao thức và độ ổn định của mạng nhưng vẫn duy trì sự tận dụng mạng cao [8] Điều này là do kích thước cửa sổ duy trì hầu như là hằng số, hình thành một

sự bình ổn quanh giá trị Wmax nơi mà được xem như hiệu quả

sử dụng mạng cao nhất và trong trạng thái ổn định, hầu hết những mẫu kích thước cửa sổ của CUBIC là gấn với Wmax, như vậy nó đẩy mạnh việc tận dụng mạng cao và ổn định giao thức

Hàm phát triển cửa sổ CUBIC sử dụng hàm sau :

𝑊𝑊(𝑡𝑡) = 𝐶𝐶(𝑡𝑡 𝑡 𝑡𝑡)3+ 𝑊𝑊𝑊𝑊𝑊𝑊𝑊𝑊 (4) C: là một thông số CUBIC

t : thời gian trôi qua từ sự giảm kích thước cửa sổ gần nhất

K : khoản thời gian hàm W(t) tăng W đến Wmax khi không có thêm sự mất gói xảy ra

Wmax : Kích thước cửa sổ tắc nghẽn ngay trước khi nhận

ra sự kiện mất gói gần nhất

K được tính theo công thức sau ;

K = √3 WmaxβC (5)

β : Hệ số giảm bội số Vào lúc nhận một ACK trong giai đoạn tắc nghẽn, CUBIC tính toán tốc độ phát triển cửa sổ trong giai đoạn RTT kế dùng công thức (4) Nó thiết lập W(t+RTT) như là giá trị mục tiêu

dự kiến của cửa sổ tắc nghẽn Giả sử kích thước cửa sổ tắc nghẽn hiện hành là Wc Phụ thuộc vào giá trị của Wc, CUBIC thực hiện trong 3 phương thức khác nhau Đầu tiên, nếu Wc nhỏ hơn kích thước cửa sổ mà TCP chuẩn đạt được ở thời điểm t sau sự kiện mất gói gần nhất, thì CUBIC nằm trong mô

Trang 8

hình TCP Ngược lại, nếu Wc thấp hơn Wmax, thì CUBIC

năm trong vùng lõm, và nếu Wc lớn hơn Wmax thì CUBIC

nằm trong vùng lồi

Khi nhận được một ACK trong giai đoạn tránh tắc nghẽn,

CUBIC sẽ kiểm tra xem giao thức có nằm trong vùng TCP

hay không Để trả lời câu hỏi này, đầu tiên phải phân tích kích

thước cửa sổ của TCP theo thời gian trôi qua t Kích thước

cửa sổ trung bình của giải thuật tăng công giảm bội số AIMD

(sử dụng trong TCP chuẩn Reno) với hệ số cộng α, hệ số nhân

β và xác suất mất gói p được tính theo công thức sau

1 RTTx√α2x2−ββ x1p (6) Kích thước cửa sổ trung bình của TCP với α = 1 và β = 0,5 là

RTT1 x√32x1p (7)

Như vậy để phương trình (6) giống với (7) thì α phải bằng

3β/2-β Nếu TCP tăng cửa sổ lên α trong khoảng RTT thí kích

thước cửa sổ theo thời gian trôi qua t sẽ là

Wtcp(t) = Wmax(1 − β) + 32−ββ xRTTt (8)

Nếu Wc nhỏ hơn Wtcp(t), thì giao thức nằm trong phương

thức TCP và Wc được thiết lập giá trị Wtcp(t) mỗi lần nhận

được ACK

VIII KẾT QUẢ

Mô phỏng được thực hiện trên một mạng giả lập gồm 2 subnet

(HN và HCMC) và mạng Internet Subnet HCMC bao gồm

một FPT server kết nối vào mạng Internet thông qua một

Router Tương tự, subnet HN gồm một Client và Router_HN

kết nối vào Internet Luồng lưu lượng trong mô phỏng là

luồng FPT truyền qua giao thức TCP từ FPT server đến Client

Với các giải thuật điều khiển tắc nghẽn khác nhau thì sự biến

động kích thước cửa sổ khác nhau thể hiện tương tự như trong

các phần trên đã trình bày

Subnet HN Subnet HCMC

Internet

Hình-11 Mô hình mạng giả lập

Mô phỏng gồm 3 ngữ cảnh Tahoe, Reno và Cubic tương ứng

với 3 giải thuật trong phần III,IV và VII Trong 2 ngữ cảnh

Tahoe và Reno, giá trị các thông số SST=64000 và xác suất

mất gói trên mạng Internet là 0.5% Kết quả như sau :

Đồ thị trong hình-12 biểu diễn sự biến động của kích thước

cửa sổ tắc nghẽn trong ngữ cảnh Tahoe Khi tắc nghẽn được

chỉ thị bởi một RTO, giải thuật khởi động chậm (SS) và Wc được thiết lập về một segment

Đồ thị trong hình-13 biểu diễn biến động của kích thước cửa

sổ tắc nghẽn trong ngữ cảnh Reno Trong giải thuật Reno khi tắc nghẽn xảy ra thì giải thuật khôi phục nhanh (FR) được thực hiện nên Wc không thiết lập lại ở giá trị 1 segment như trong Tahoe mà được thiết lập giá trị 3 segment (4886 byte )

Hình-12 biến động cửa sổ tắc nghẽn của giải thuật Tahoe

Hình-13 Biến động cửa sổ tắc nghẽn của giải thuật Reno Trong ngữ cảnh Cubic độ mất gói trong mạng Internet vẫn là 0,5% những độ trễ lan truyền một chiều được thiết lập 100ms (mạng độ trễ cao, ví dụ vệ tinh) Hình-14 biểu diễn sự biến động cửa sổ tắc nghẽn của giải thuật Cubic, kết quả cho thấy hàm cubic được thể hiện qua những vùng lõm hoặc lõm và lồi

Hình-14 Biến động cửa sổ tắc nghẽn của giải thuật Cubic

IX KẾT LUẬN Bài báo đã khảo sát và mô phỏng một số giải thuật điều khiển tắc nghẽn phổ biến cho luồng TCP dùng trong các hệ điều hành window và linux

Cả 2 vùng lõm và lồi Vùng lõm

Trang 9

LỜI CÁM ƠN

Nghiên cứu này được tài trợ bởi Học Viện Công Nghệ Bưu

Chính Viễn Thông với mã số đề tài 02-HV-2015-RD_VT2

TÀI LIỆU THAM KHẢO

[1] J.Postel, “ RFC 793- Transmission Control Protocol “, RFC, 1981.

[2] S Floyd,T Henderson and A Gurtov, “RFC3782 – The NewReno

modification to TCP’s fast recovery algorithm,“ RFC, 2004

[3] V Jacobson, “ Congestion avoidance and control, ” ACM

SIGCOMM,pp 314-329, 1988

[4] V Jacobson, “ Modified TCP congestion avoidance algorithm,“ email to

the end2end list, 4/1990

[5] S Floyd and T Henderson, “RFC2582 – The NewReno modification to TCP’s fast recovery algorithm,“ RFC, 1999.

[6] Alexander Afanasyev, Neil Tilley, Peter Reiher, and Leonard Kleinrock,

“ Host-to-Host Congestion Control for TCP,“ IEEE Communication Surveys & Tutorial, Vol.12, No 3, 2010.

[7] S Floyd,T Henderson, A Gurtov and Y Nishida, “RFC6582 – The NewReno modification to TCP’s fast recovery algorithm,“ RFC, 2012 [8] Cai, H., eun, D., Ha, S., Rhee, I., and xu, L., “Stochastic ordering for internet congestion control and its applications,“ In proceedings of IEEE INFOCOM, 2007

[9] Peng Yang, Wen Luo, Lisong Xu, Jitender Deogun, and Ying Lu , “TCP Congestion Avoidance Algorithm Identification,“ 31st International Conference on Distributed Computing System, 2011

Ngày đăng: 28/04/2022, 09:39

HÌNH ẢNH LIÊN QUAN

Hình 1. Điều chỉnh cửa sổ tắc nghẽn : a) Vào lúc nhận các ACK nhân bản ; b) Vào lúc hết hạn bộ định thời phát lại RTO  Giả sử Wc đạt đến SST cho thấy đường truyền không bị tắc nghẽn  và do đó thủ tục sẽ bước vào  giai đoạn 2 - Khảo sát giải thuật điều khiển tắc nghẽn cho luồng TCP
Hình 1. Điều chỉnh cửa sổ tắc nghẽn : a) Vào lúc nhận các ACK nhân bản ; b) Vào lúc hết hạn bộ định thời phát lại RTO Giả sử Wc đạt đến SST cho thấy đường truyền không bị tắc nghẽn và do đó thủ tục sẽ bước vào giai đoạn 2 (Trang 2)
Hình 3. Biến động cửa số tắc nghẽn của SS nếu giới hạn được tác động bởi điều khiển lưu lượng cũ (a) và bởi mạng (b)  Tính hiệu quả của giải thuật có thể được  định  nghĩa  là  tỉ số giữa vùng bên dưới của đồ thị cửa sổ tắc nghẽn và vùng bên  dưới đường g - Khảo sát giải thuật điều khiển tắc nghẽn cho luồng TCP
Hình 3. Biến động cửa số tắc nghẽn của SS nếu giới hạn được tác động bởi điều khiển lưu lượng cũ (a) và bởi mạng (b) Tính hiệu quả của giải thuật có thể được định nghĩa là tỉ số giữa vùng bên dưới của đồ thị cửa sổ tắc nghẽn và vùng bên dưới đường g (Trang 3)
Hình 2. Biến động số lượng gói tồn đọng trong RFC 793 - Khảo sát giải thuật điều khiển tắc nghẽn cho luồng TCP
Hình 2. Biến động số lượng gói tồn đọng trong RFC 793 (Trang 3)
b trong hình 3), hiệu suất của giải thuật SS trong một khoản thời gian dài rất thấp. - Khảo sát giải thuật điều khiển tắc nghẽn cho luồng TCP
b trong hình 3), hiệu suất của giải thuật SS trong một khoản thời gian dài rất thấp (Trang 4)
như trong hình 4, Giải thuật CA này đúng là có hiệu quả trong thời gian dài nhưng bù lại thì thời gian tìm ra tài nguyên mạng  của nó lại chậm do tốc độ tăng kích thước cửa sổ của nó mang  tính dè dặt - Khảo sát giải thuật điều khiển tắc nghẽn cho luồng TCP
nh ư trong hình 4, Giải thuật CA này đúng là có hiệu quả trong thời gian dài nhưng bù lại thì thời gian tìm ra tài nguyên mạng của nó lại chậm do tốc độ tăng kích thước cửa sổ của nó mang tính dè dặt (Trang 4)
Hình 6. Các trạng thái tiêu biểu của FR - Khảo sát giải thuật điều khiển tắc nghẽn cho luồng TCP
Hình 6. Các trạng thái tiêu biểu của FR (Trang 5)
Hình 7. Những biến động cửa sổ tắc nghẽn của TCP Reno - Khảo sát giải thuật điều khiển tắc nghẽn cho luồng TCP
Hình 7. Những biến động cửa sổ tắc nghẽn của TCP Reno (Trang 5)
Hình 8 minh họa sự biến động kích thước cửa sổ tắc nghẽn trong NewReno. Tương tự với giải thuật Reno, việc nhận bấ t kỳ các gói ACK nhân bản đều chỉ kích khởi việc ‘thổi ph ồng’  - Khảo sát giải thuật điều khiển tắc nghẽn cho luồng TCP
Hình 8 minh họa sự biến động kích thước cửa sổ tắc nghẽn trong NewReno. Tương tự với giải thuật Reno, việc nhận bấ t kỳ các gói ACK nhân bản đều chỉ kích khởi việc ‘thổi ph ồng’ (Trang 6)
Hình 8. Các trạng thái của giải thuật khôi phục nhanh FR của TCP NewReno - Khảo sát giải thuật điều khiển tắc nghẽn cho luồng TCP
Hình 8. Các trạng thái của giải thuật khôi phục nhanh FR của TCP NewReno (Trang 6)
Hình 10. Các hàm phát triển cửa sổ BIC-TCP và CUBIC - Khảo sát giải thuật điều khiển tắc nghẽn cho luồng TCP
Hình 10. Các hàm phát triển cửa sổ BIC-TCP và CUBIC (Trang 7)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm