Các phiên bản điều khiển tắc nghẽn số liệu TCP 4

Một phần của tài liệu Phân tích, đánh giá hiệu suất tác động của một số thuật toán điều khiển tắc nghẽn số liệu TCP (Trang 44)

1. 3 Điểu khiển lưu lượng và tắc nghẽn số liệu TCP trong mạng Intern et

3.1.1Các phiên bản điều khiển tắc nghẽn số liệu TCP 4

Chúng ta so sánh T ah o e và R e n o T C P , hai sự thực hiện hay được nói đến nhiều nhất trong T C P. T ah o e T C P chính là T C P với c á c thuật toán "K hởi động ch ậm ", "Tránh tắc nghẽn" và "P hát lại nhan h". R en o T C P chính là T C P với các thuật toán của T ah o e cộ n g thêm "Phục hổi nhan h". V ớ i R eno TC P, hai phiên bản đã được sửa đổi là N ew -R en o T C P không có S A C K và SA C K -T C P . Phiên bản đầu, N ew -R en o T C P không có S A C K , cải thiện được m ột phần nào đó về hiệu suất của R e n o T C P khi m à c ó nhiều gói dữ liệu bị m ất trong cửa sổ dữ liệu. Phiôn bản thứ hai, S A C K T C P , là m ột sự m ở rộng thận trọng có sửa đổi của R en o T C P để sử đụng tuỳ ch ọn S A C K được đề xuất trong IE T F (Internet Engineering T ask F o rce).

Khi không sử dụng S A C K , cả hai thực thể R e n o và N ew -R eno có thể phát lại nhi ều nhất m ột gói dữ liệu bị m ất ch o m ỗi R T T , ch o dù thực thể gửi phục hồi từ nhiều sự “ rơi m ất” gói trong cửa sổ dữ liệu không cần phải đợi thời gian ch ờ phát lại (retransm it tim eou t). Đ ặc tính này chưa được chia xẻ bởi Tahoe T C P (T ahoe T C P không hạn c h ế việc truyền lại nhiều nhất m ột gói dữ liệu bị mất cho m ỗi R T T ). Song, đó là m ột hệ quả c ơ bản củ a việc không áp dụng SA C K m à thực thể gửi phải chọn giữa c á c ch iến lược sau đây để phục hồi dữ liệu bị mất :

1. Phát lại nhiều nhất m ột gói dữ liệu bị m ất ch o m ỗi R T T , hoặc

2. Phát lại cá c gói dữ liệu m à cá c gói này có thể đã được truyền thành công. Reno và N ew -R en o sử dụng ch iến lược thứ nhất, và T ahoe sử dụng chiến

Điều khiển tắc nghẽn T C P Trang 45

Những đề xuất đầu tiên cho việc sử dụng SA C K đối với T C P đã bị loại bỏ sau này bởi các R F C [B B J9 2 ] và còn để ngỏ việc nghiên cứu. Đ ề xuất hiện thời cho việc sử dụng SA C K đối với T C P được đưa ra trong [M M F R 9 6 ]. Một SA C K -O ption (tuỳ chọn SA C K ) được mô tả trong tài liệu này cho phép thực thể nhận tự động báo cáo những dữ liệu không tuần tự mà nó đã nhận được. Khi kết hợp với chiến lược phát lại có lựa chọn được thực hiện trong thực thể gửi, chúng đã có thể cải thiện lưu lượng một cách đáng kể.

Chúng ta mô tả các thuật toán điều khiển tắc nghẽn T C P và thực hiện mô phỏng các thuật toán có hay không có SA C K để chỉ ra rằng trong khi SA C K không được yêu cầu để giải quyết những vấn đề về hiệu suất của R eno T C P khi nhiều gói dữ liệu bị mất, sự vắng mặt của SA C K ảnh hưởng đến giới hạn về hiệu suất tối thiểu của TC P. V à chúng ta cũng nhận thấy rằng khi không có S A C K , những sự thực hiện T C P bị “ép” để truyền lại nhiều nhất m ột gói dữ liệu bị mất cho mỗi thời gian trễ toàn phần (R T T ) hoặc truyền lại cá c gói dữ liệu, cá c gói mà có thể đã được truyền thành công.

Không phải mọi vấn đề hiệu suất là hệ quả tất yếu của việc không áp dụng SA C K . Đ ể chỉ ra tại sao, người ta đã thực hiện một thay đổi cá c thuật toán R en o trong hệ m ô phòng, được gọi là N ew -Reno. V iệc sử dụng m ột gợi ý từ Jan ey Hoe [H oe95, H oe96], N ew -R eno loại bỏ nhiều thời gian ch ờ phát lại của R en o không dùng SA C K . Tuy vậy, N ew -Reno lại không thực hiện tốt như là T C P với SA C K khi một số lượng lớn c á c gói dữ liệu bị m ất từ m ột cửa sổ dữ liệu.

Đ ể chứng tỏ những ưu điểm của T C P có SA C K , chúng ta cho thấy những sự mô phỏng với SA C K T C P, khi sử dụng việc thực hiện SA C K trong bộ mô phỏng. SA C K T C P dựa trên cơ sở m ột sự m ở rộng thận trọng của các thuật toán điều khiển tắc nghẽn với việc thêm A C K có lựa chọn (S A C K ) và phát lại có lựa chọn. Với SA C K , một thực thể gửi có m ột ý tưởng tốt hơn và chính xác những

Điều khiển tắc nghẽn T C P Trang 46

sói dữ liệu nào đã được chuyển giao thành công như đã so sánh với các giao thức có thể so sánh được khi không có SA C K . Đưa ra thông tin như vậy, một thực thể gửi có thể tránh những việc trì hoãn (làm trễ) không cần thiết và các việc phát lại, dẫn đến lưu lượng được cải thiện. Chúng ta tin tưởng rằng việc thêm SA C K đối với T C P là m ột trong những sự thay đổi quan trọng nhất m à phải được làm cho T C P vào thời gian này để cải tiến hiệu suất của nó.

3.1.2 Tahoe TCP

Các phiên bản T C P hiện tại bao gồm một số thuật toán hướng tập trung vào điều khiển tắc nghẽn trên mạng nhưng vẫn duy trì (đảm bảo) thông lượng cho người sử dụng. Ban đầu những sự thực hiện T C P đã theo kiểu go-back-n có sử dụng A CK tích luỹ (cum ulative positive A C K ) và thông qua một đồng hổ phát lại để phát lại dữ liệu bị mất trong thời gian truyền. C ác T C P này cũng làm giảm một phần tắc nghẽn trên mạng.

Phiên bản T ah oe-T C P có thêm m ột số các thuật toán mới và cải tiến các phiên bản trước đấy. C ác thuật toán mới bao gồm "K hởi động chậm ", "Tránh tắc nghẽn" và "Phát lại nhanh" [Ja c8 8 ] m à đã được m ô tả chi tiết trong chương 2 của bài luận văn này. Những sự cải tiến bao gồm m ột sự sửa đổi đối với bộ ước lượng R T T đã được sử dụng để đặt cá c giá trị thời gian ch ờ phát lại. Tất cả các thay đổi này đã được m ô tả trong [Ja c 8 8 , S te94].

Thuật toán "Phát lại nhanh" là m ột lưu ý đặc biệt trong chương này bởi vì nó được thay đổi trong cá c phiên bản tiếp theo của T C P. V ới "Phát lại nhanh", sau khi nhận được m ột số lượng nhỏ cá c A C K trùng cho gói dữ liệu cùng TCP, thực thể gửi dữ liệu phỏng đoán rằng một gói dữ liệu đã bị mất và truyền lại gói dữ liệu này không cần đợi thời gian ch ờ hết hạn, dẫn đến việc sử dụng cá c kênh cao hơn và cải thiện thông lượng kết nối.

Điểu khiển tắc nghẽn T C P Trang 47

Thuât toán : Thuật toán điều khiển tắc nghẽn Tahoe-TCPlà kết hợp của ba thuật toán cơ sở “Khởi động chậm”, “Tránh tắc nghẽn” và “Phát lại nhanh” được mô tả ở chương 2 . Đặc trưng của Tiìhoe- TCP là khi phát hiện thấy mất dữ liệu thông qua 3 ACK trùng thực thể gửi phát lại gói dữ liệu bị mất, đặt cwnd bàng 1 gói-dữ-ìiệu và thực hiện “Khởi động chậm Chiến lược phục hồi của Tahoe ở đẫy là không hạn ch ế việc truyền lại nhiều nhất một gói dữ liệu cho mỗi thời gian trễ toàn phần (RTT) và Tiìhoe có thể phát Ịại các gói dữ liệu mà các gói này có thể đã được truyền thành công.

Sau đâv là sơ đồ thuật toán của T ahoe-TC P.

Điều khiển tắc nghẽn T C P Trang 48 DupAckNum = 3 DupAckNum + = 1 Cwnd = 1 G ói D L ■ Ssthrcsh = 6 5 5 3 5 (hoãc ssthresh = rwnd) ■ DupAckNura = 0 — "K hởi động ch ậm "... Ss thresh = 1/2 C w n d ^ n Phát lại G ói dữ liêu bị mất Cwnd = 1 Gói dữ liêu

... "Tránh lầc nghẽn'' Cwnd + = 1/ Cwnd Nếu đun vị là G ói dĩr liệu ... h oặc... . Cvvnd + = S M S S *S M S S 1 / Cwnd

Nếu dim vi là Bvte

— Khới động chẠm C w n d + = 1 Phát

M in (Cwnd, Rwnd) G ói d a liệu

Điều khiển tắc nghẽn T C P Trang 49

3.1.3 R enoTC P

Sự thực hiện R en o -T C P vẫn giữ lại sự ưu việt được hợp nhất trong Tahoe, nhưng đã sửa đổi quá trình hoạt động của thuật toán “Phát lại nhanh” để bao hàm luôn cả thuật toán "Phục hồi n h an h "[Jac90]. Thuật toán mới loại bỏ đường truyền “rỗng” sau khi “Phát lại nhanh”, bằng cách đó tránh việc cần thiết phải “ Khởi động chậm ” để lấp đầy chỗ trống sau khi một gói dữ liệu bị mất. "Phục hổi nhanh" hoạt động với giả thiết mỗi m ột A C K trùng nhận được đại diện cho m ột gói dữ liệu (đơn) đã dời khỏi khỏi mạng. Như vậy trong thời gian "Phục hồi nhanh" thực thể gửi T C P có khả năng làm các ước lượng (đánh giá) thông minh về tổng số dữ liệu còn tổn đọng trên mạng.

"Phục hồi nhanh" được bắt đầu bởi thực thể gửi T C P sau việc nhận một ngưỡng khởi tạo của các só i A C K trùng. Ngưỡng này thông thường được đặt giá trị 3. Một khi ngưỡng của của các A C K trùng được nhận, thực thể gửi phát lại một gói dữ liệu và giảm cửa sổ tắc nghẽn của nó đi m ột nửa. Thay vì “ Khởi động chậm ’' như đã được thực hiện bởi m ột thực thể gửi T ahoe-T C P, thực thể gửi R en o -T C P sử dụng c á c A C K trùng bổ sung vừa đến để làm “c lo c k ” (làm nhịp) cho các gói dữ liệu được gửi đi tiếp sau.

Trong R eno, cửa sổ có-thể-sử-dụng-được của thực thể gửi là m in(rwnd, cw n d + ndup) trong đó rw nd là cửa sổ đã được thông báo của thực thể nhận,

cw n d là cửa sổ tắc nghẽn của thực thể gửi, và ndup được duy trì bằng 0 cho đến khi số lượng các A C K trùng đạt đến ngưỡng (tức bằng 3 ), và sau đó nó bằng số cá c A C K trùng. D o đó, trong thời gian “Phục hồi nhanh” thực thể gửi tăng một cách g iả tạo cửa sổ của nó m ột giá trị đúng bằng số lượng A C K trùng mà nó đã nhận, theo sự quan sát mà m ỗi một A C K trùng cho biết m ột gói nào đó đã rời khỏi mạng và được lưu giữ trong bộ nhớ đệm thực thể nhận. Sau khi vào quá

Điều khiển tắc nghẽn TC P Trang 5 0

trình "Phục hồi nhanh" và phát lại một gói dữ liệu (đơn), thực thể gửi đợi cho đến khi có hiệu lực một nửa kích thước cửa sổ của các A C K trùng đã nhận, và gửi một gói mới cho mỗi A C K trùnẹ bổ sung được nhận. V ào lúc nhận được một A C K cho dữ liệu mới (được gọi là m ột sự “khôi phục A C K ”), thực thể gửi ra khỏi quá trình "Phục hồi nhanh" với việc đặt Iĩdup bằng 0. X in xem phần mô tả chi tiết trong phần m ổ phỏng ở m ục 3.2. (adsbygoogle = window.adsbygoogle || []).push({});

Thuật toán "Phục hổi nhanh" của R en o được tối ưu hoá cho trường hợp khi một gói dữ liệu đơn bị mất từ m ột cửa sổ dữ liệu. Thực thể gửi phát lại nhiều nhất một gói dữ liệu bị m ất cho mỗi R T T . R en o cải thiện m ột cách đáng kể việc xử lý của Tahoe khi m ột gói dữ liệu đơn bị mất, nhưng có thể có vấn đề về hiệu suất khi nhiều gói dữ liệu bị m ất từ một cửa sổ dữ liệu. Đ iều đó được minh họa trong các mô phỏng ở mục 3.2 với số lượng gói dữ liệu bị mất > 3. V ấn đề được xúy dựng đơn giản trong bộ mô phỏng của chúng ta khi một kết nối R eno- T C P với một cửa sổ tắc nghẽn lớn chịu đựng m ột sự tăng đột ngột số lượng của các gói dữ liệu bị mất sau quá trình "K hởi động chậm " trong m ột mạng với các cổng drop-tail (hoặc với cá c cổng khác thiếu sự giám sát độ lớn hàng đợi trung bình).

Tỉmẵt toán : Thuật toán điều khiển tắc nghẽn Reno-TCPlà kết hợp bốn thuật toán cơ sở “Khởi động chậm ", “Tránh tắc nghẽn ”, “Phất lại nhanh ” và "Phục hồi nhanh " được mô tả ở trên . Đặc trưng của Reno-TCP là khi phát hiện thấy mất dữ liệu thông qua 3 ACK trùng thực thể gửi phất lại gói dữ liệu bị mất, giảm cửa sổ tắc nghẽn một nửa và thay “Khởi động chậmcủa Tahoe bằng

"Phục hồi nhanh Chiến lược phục hồi của Reno là có thể phát lại nhiều nhất một gói dữ liệu bị mất cho mỗi thời gian trễ toàn phần (RTT). Khi có nhiều gói bị mất trong một cửa sổ dữ liệu (sốgói mất > 2) Reno vẩn phải nhờ vào đồng hồ phát lại đ ể phục hồi các gói dữ ỉịệu bị mất đó.

Điêu khiển tắc nghẽn T C P Trang 5 ỉ Cwnd = 1 Gói DL Ssthresh = 65535 (hoặc ssthresh = rwnd) Đ Cwnd = Ssthressh w " T rán h ù ic n g h ẽ n " Cwnd + = 1/ Cwnd (N iu dơn vị là Gói D.liạu) hoặc Cwnd + = SM SS *SM S S1/ O l i d

(Nếu đơn vị là Byte)

\ ;

Phát Min (Cwnd, Rwnd) gói-dử-li^u DupAckNum = 0

& thresh = \/2 Cwnd(,Ịỉ0 lb,ỵ,

Phát lại G ói dữ liệu bị mất. Cwnd = ssthrcsh + 3 G ó i .

Cwnd + = 1

Phát 1 G ói dữ liíu nếu Giá trị Mới cùa Cwnd cho phép Nếu Timeout xuất hiên ;

• Phát lại G ói dữ litu

bị mất. • Cwnd = 1. • DupAckNum = 0 (DupACKNum <3) "Khởi động chậm " Cwnd + = 1 (M ột ACK trùng) DupAckNum + = 1

Hình 3.2 : Sơ đồ thuật toán Reno - TCP

Điều khiển tắc nghẽn TCP Trang 52

3.1.4 New-Reno TCP

Chúng ta đưa New-Reno TCP vào trong chương này để cho thấy một sự thay đổi đơn giản đối với TCP để có thể tránh một số vấn đề hiệu suất của Reno-TCP khi không có SACK. Vào cùng thời gian đó, chúng ta sử dụng New-Reno TCP để khảo sát những nhược điểm cơ bản của hiệu suất TCP khi không có SACK.

Nevv-Reno TCP có tính đến một sự thay đổi nhỏ đối với thuật toán Reno ở thực thể gửi ià loại bỏ việc chờ của Reno thông qua một đồng hồ phát lại khi nhiều gói dữ liệu bị mất trong một cửa sổ dữ liệu [Hoe95, CH95]. Sự thay đổi này liên quan đến hành vi của thực thể gửi trong then gian "Phục hồi nhanh" khi một ACK cục-bộ được nhận mà nó trả lời một số (nhưng không phải tất cả) các gói dữ liệu còn tồn đọng tại thời điểm bắt đầu "Phục hồi nhanh". Trong New-Reno, các ACK cục-bộ không đưa TCP ra khỏi quá trình "Phục hổi nhanh". Thay vào đó, các ACK cục-bộ nhận được trong thời gian "Phục hồi nhanh" được xem như là một dấu hiệu chỉ báo rằng gói dữ liệu ngay tiếp sau gói dữ liệu được trả lời (xác nhận) trong khoảng trống tuần tự đã bị mất, và phải được truyền lại. Như vậy , khi nhiều gói dữ liệu bị mất từ một cửa sổ dữ liệu đơn, Nevv-Reno có thể phục hồi không cần thời gian chờ phát lại, phát lại một gói dữ liệu đã mất cho mỗi RTT cho đến khi tất cả các gói dữ liệu bị mất đã được truyền lại. New-Reno giữ nguyên trong "Phục hổi nhanh" cho đến khi tất cả dữ liệu đang tổn đọng khi "Phục hồi nhanh" được bắt đầu báo đã nhận được.

[Hoe95] đẻ nghị một thay đổi bổ sung đối với các thuật toán "Phục hồi nhanh" của TCP. Họ đề xuất thực thể gửi dữ liệu gửi một gói dữ liệu mới cho 2 ACK trùng nhận được trong thời gian "Phục hồi nhanh", để giữ “bánh đà” của ACK và tốc độ vận chuyển của các gói dữ liệu. Cái đó không được thực hiện trong “New-Reno” vì chúng ta muốn lưu ý đến một số thay đổi đối với Reno

Điều khiển tắc nghẽn TCP Trang 53

Thuât toán : Thuật toán điều kh iển tắc nghẽn N ew -R en o TCP là k ế t h ọp bốn thuật toán c ơ s ở “K h ở i độn g ch ậ m ”, “Tránh tắc n g h ẽn ”, “Phát lạ i n han h "Phục h ồ i nhanh" được m ô tả ở trên . N ew -R en o c ó tính đến m ột sự thay đ ổ i n hỏ đ ố i với R en o chủ y ếu là nằm trong h a i thuật toán “P hát lạ i nhanh ” và "Phục h ồ i nhanh " là lo ạ i b ỏ việc c h ờ của R en o n h ờ vào m ột đồn g h ồ p h á t lạ i k h i nhiều g ó i dữ liệu b ị m ất trong m ột cửa s ổ dữ liệu . Cũng như R en o, chiến lư ợc phụ c h ồ i của N ew -R eno là c ó th ể p h át lạ i nhiều nhất m ột g ó i dữ liệu ch o m ỗ i thời gian trề toàn phần (RTT). Trong N ew -R en o c ó sử dụng A C K cụ c-bộ, là A C K m à n ó trả lờ i m ột s ố nhưng kh ôn g p h ả i tất c ả c á c g ó i dữ liệu đ ã được p h ắt đ i nhưng chưa nhận được trả lờ i tại thời đ iểm bắt đẩu 'Thục h ồ i nhanh K h i nhận đư ợc A C K n ày c ó nghĩa g ó i dữ liệu n gay sau g ó i dữ liệu đư ợc trả lờ i b ị m ất và n ó p h ả i được truyền lạ i tức thì m ằ kh ôn g cần p h ả i c h ờ đồn g h ồ p h át lạ i h ết hạn (tim eout xuất hiện).

Sau đây là sơ đồ thuật toán của New-Reno TCP .

Điểu khiển tắc nghẽn TCP Trang 54

Điều khiển tắc nghẽn TCP Trang 55

3.1.5 SACK TCP

Sự thực hiện SACK TCP trong chương này được thảo luận trong [FIo96b, Flo96a]. Tuỳ chọn SACK theo định dạng được mô tả trong [MMFR96]. Theo [MMFR96], trường tuỳ chọn SACK chứa đựng một số các SACK-block, ở đó mỗi SACK-block báo cáo một tập không tiếp giáp nhau của dữ liệu đã được

Một phần của tài liệu Phân tích, đánh giá hiệu suất tác động của một số thuật toán điều khiển tắc nghẽn số liệu TCP (Trang 44)