Hoạt động của thuật toỏn cửa sổ trượt trong việc kết nối tớn hiệu giữa đớch và nguồn bởi một hệ trống trung gian. Hệ thống trung gian này cú thể được hiểu đơn giản như là một đường dõy hoặc súng dành riờng cho việc truyền tải dữ liệu giữa nguồn và đớch.
Hỡnh 3.6: Mụi trường truyền trong thuật toỏn cửa sổ
Nguồn Hệ thống trung
gian
Cỏc gúi tin được gửi đi từ nguồn qua hệ thống trung gian nếu quỏ trỡnh diễn ra thuận lợi thỡ toàn bộ cỏc gúi tin sẽ đến đớch và đớch sẽ gửi một gúi tin xỏc bỏo đến nguồn. Cỏc gúi tin chuyển đi cú thể ko tới được đớch mà bị mất mỏt bởi hệ thống trung gian hoặc khụng được xỏc bỏo bởi đớch nhận được lỗi hoặc đớch đến đó đầ. Để khắc phục tỡnh trạng trờn nguồn luụn duy trỡ bản sao của cỏc gúi tin đó được truyền nhưng khụng được xỏc bỏo. Cơ chế timeuot sẽ đưuọc sử dụng để truyền đi cỏc gúi tin mà nguồn khụng được bờn thu xỏc bỏo.
Chức năng chớnh của thuật toỏn cửa sổ trượt là điều khiển luồng cho cỏc gúi tin từ nguồn tới đớch. Điều này cú tỏc dụng kộp là hạn chế luồng tin đến đớch đồng thời hạn chế tốc độ truyền của cỏc gúi tin cung cấp vào hệ thống trung gian khi đú trỏnh được tắc nghẽn. Thuật toỏn cửa sổ trượt đặc trưng bởi một biến là kớch thước cửa sổ, nú chỉ ra số lượng gúi tin tối đa mà nguồn gửi đến đớch trước khi nú nhận được rằng cú thể truyền được nhiều hơn. Nguồn cú thể tăng hoặc giảm kớch thước của sổ.
Mỗi cửa sổ bao gồm cỏc thành phần khỏc nhau một trong số đú cú thể khụng cần thiết trong mụi trường nhất định.Chức năng của từng khối trong hỡnh:
+ Chức năng nguồn:
- Xỏc định trạng thỏi của hệ thống trung gian. - Tăng giảm kớch thước cửa sổ khi cú phản ứng.
+Chức năng hệ thống trung gian: Đo lường tỡnh trạng dữ liệu truyền và bỏo cỏo sự thay đổi đú.
+Chức năng đớch:
- Khi nào và làm thế nào xỏc nhận gúi tin đến từ nguồn. - Khi nào tớn hiệu nguồn tăng kớch thước cửa sổ.
3.2.1:Điều khiển luồng theo cửa sổ
Phương phỏp điều khiển luồng theo cửa sổ trượt là phương phỏp được sử dụng phổ biến nhất ở thời điểm hiện tại. Trong phần này, em sẽ lần lượt trỡnh bày việc điều khiển luồng theo cửa sổ trượt theo hai cơ chế end-to-end (điều khiển luồng giữa điểm phỏt và điểm thu trong mạng) và hop-by-hop (điều khiển luồng giữa hai nỳt mạng liờn tiếp).
a. Điều khiển luồng giữa 2 nỳt đầu cuối (end-to-end)
Cửa sổ End to End: Dựng để điều khiển luồng giữa điểm phỏt và điểm thu trong mạng. Nhằm đảm bảo nỳt nguồn thực hiện truyền thụng tin khụng vượt quỏ khả năng xử lý của nỳt đớch
7 6 5 4 3 2 1 0 phía thu phía phát G ói tin (0) A CK (1) 0 trục thời gian trục thời gian Trễ truyền lan (d=delay)
Thời gian phát 1 gói tin Kích thước cửa sổ K=7
Thời gian phát 1 gói tin
1 2 3 4 5 6 7
Hỡnh 3.7: Cửa sổ End to End với phớa phỏt truyền tin liờn tục.
+Tix: Là thời gian phỏt 1 gúi thụng tin. +K: Là kớch thước cửa sổ.
+d: Là tổng trễ từ phớa phỏt đến phớa thu và phớa thu đến phớa phỏt.
Khi d≤K.Tix, lỳc này phớa phỏt cú thể truyền thụng tin liờn tục với tốc độ
truyền cực đại là r 1 Tix
= mà khụng bị hạn chế, trong trường hợp này điều khiển luồng khụng cú ý nghĩa. 0 1 2 3 4 5 6 7 7 6 5 4 3 2 1 Thời gian phát 1 gói tin Thời gian phát 1 gói tin
Trễ truyền lan (d=delay)
trục thời gian trục thời gian 0 ACK(0 ) G ói tin (0) phía phát phía thu Kích thước cửa sổ K=5
Hỡnh 3.8: Cửa sổ End to End với phớa phỏt truyền tin khụng liờn tục.
Trong trường hợp d≥K.Tix, phớa phỏt tiến hành phỏt K gúi tin sau đú nú dừng
lại chờ bỏo nhận vỡ kớch thước cửa sổ giảm xuống K=0 (cỏc bản coppy của cỏc gúi tin phỏt vẫn được giữ trong bộ đệm phỏt). Như vậy lượng gúi tin đi vào mạng đó bị hạn
chế nhỏ hơn tốc độ phỏt cực đại r 1 Tix
= . Điều này xảy ra là do thời gian trễ trờn đường truyền lớn nờn khi phớa phỏt thực hiện phỏt xong K gúi tin trong cửa sổ nhưng vẫn chưa nhận được bất kỳ một bỏo nhận nào của phớa thu. Nếu phớa phỏt luụn cú thụng tin để phỏt thỡ tốc độ phỏt trung bỡnh của phớa phỏt là K
d (gúi/s). Như vậy tốc độ phỏt r là một giỏ trị trong khoảng 1 K,
Tix d
, khi trễ trờn đường truyền d tăng cao (xảy ra tắc nghẽn), điều khiển luồng sẽ thể hiện vai trũ của nú là giới hạn lượng gúi tin vào mạng làm giảm tốc độ phỏt. Khi mạng thoỏt khỏi trạng thỏi tắc nghẽn, tốc độ phỏt sẽ tăng lờn và cú thể đạt đến cực đại.
0
W/d
W.X 1/X
điều khiển luồng Điểm bắt đầu có Tốc độ phát cực đại Tố c đ ộ t hô ng tin ph át Trễ truyền (delay)
Hỡnh 3.9: Biểu đồ mối quan hệ giữa trễ truyền dõ̃n và tốc độ thụng tin phỏt.
Biểu đồ trỡnh bày mối quan hệ giữa tốc độ truyền dẫn và trễ truyền (round-trip delay) trong cơ chế điều khiển luồng. Tốc độ truyền tin sẽ bị giảm khi xảy ra tắc nghẽn (trễ tăng). Ngoài ra, phương phỏp cửa sổ trượt phản ứng khỏ nhanh với tắc nghẽn (trong khoảng thời gian truyền K gúi). Sự phản ứng nhanh với tắc nghẽn kết hợp với thụng tin điều khiển ớt là ưu điểm chớnh của cơ chế cửa sổ so với cỏc cơ chế khỏc.
Nguyờn tắc chọn kớch thước cửa sổ:
Trong trường hợp khụng cú tắc nghẽn xảy ra, kớch thước cửa sổ được chọn đủ lớn để đảm bảo tốc độ truyền thụng tin đạt r = 1/Tix (gúi/s).
d’ = Round-trip delay khi trễ hàng đợi xấp xỉ 0 (trường hợp khụng cú tắc
nghẽn) – đõy là trễ tớnh từ lỳc phỏt gúi thụng tin ở bờn phỏt và nhận ACK từ phớa thu.
N = Số nỳt mạng dọc theo đường truyền từ phỏt đến thu. D = Trễ truyền súng dọc theo đường truyền.
d’ = 2.N.Tix + 2.D
Để đảm bảo tốc độ truyền tin tối đa (khi khụng cú tắc nghẽn), cần đảm bảo
K.Tix ≥ d’ hay K ≥ 2.N + 2.D/Tix. Ta nhận thấy:
+ Khi D < Tix thỡ K ≈ 2.N Kớch thước cửa sổ khụng phụ thuộc vào trễ truyền súng. + Khi D >> Tix thỡ K ≈ 2.D/Tix kớch thước cửa sổ khụng phụ thuộc vào chiều dài liờn kết.
Trong trường hợp cú tắc nghẽn xảy ra, thỡ trễ round-trip d > d’ (d bao gồm cả trễ hàng đợi do tắc nghẽn).
Phương phỏp cửa sổ End-to-End cú những hạn chế nhất định như sau:
+ Khú đảm bảo trễ nằm trong giới hạn cho phộp khi lưu lượng vào mạng tăng. Giả sử trong mạng cú n tiến trỡnh điều khiển luồng với kớch thước cửa sổ tương ứng là
K1, K2, ... Kn. Lỳc này, tổng số gúi tin trong mạng sẽ là i 1 . n i i K β = ∑ trong đú βi là một hệ số trong khoảng 0 1 phụ thuộc vào thời gian trễ của ACK. Vậy thời gian trễ trung bỡnh của gúi tin trong mạng sẽ là i
1 . n i i K T β λ = =∑ trong đú λ là thụng lượng.
Khi số lượng cỏc tiến trỡnh cần điều khiển luồng tăng lờn (n tăng) thỡ λtiến đến giỏ trị cực đại là tốc độ của cỏc đường liờn kết và do đú, là giỏ trị khụng đổi (giỏ trị này phụ thuộc vào mạng). Như vậy giỏ trị trễ T sẽ tăng tỷ lệ với số lượng tiến trỡnh được điều khiển luồng (chớnh xỏc ra là kớch thước cửa sổ của chỳng). Như vậy, nếu số lượng tiến trỡnh là rất lớn thỡ hệ thống mạng khụng đảm bảo giữ giỏ trị T nằm trong một giới hạn nhất định và khụng cú khả năng trỏnh tắc nghẽn một cỏch triệt để.
Một giải phỏp cú thể sử dụng là giảm kớch thước cửa sổ để cú thể giảm trễ khi mạng hoạt động ở tỡnh trạng tải nặng (cú thể xảy ra tắc nghẽn). Giải phỏp này chỉ cú thể ỏp dụng với mức độ phự hợp vỡ nếu giỏ trị này quỏ nhỏ thỡ việc truyền thụng tin lại khụng hiệu quả.
Trờn thực tế, người ta sử dụng phương phỏp cửa sổ thớch ứng (daptive window) để thực hiện truyền tin. Trong phương phỏp này, kớch thước cửa sổ cực đại cú thể thay đổi tựy thuộc tỡnh trạng của mạng. Trong trường hợp mạng ớt tải, kớch thước cửa sổ cú thể lớn để cho phộp truyền thụng tin với tốc độ cao. Khi tải trờn mạng tăng, kớch thước cửa sổ được giảm đi nhằm trỏnh tắc nghẽn. Với phương phỏp này hiệu quả truyền thụng được tăng cao đỏng kể phự hợp với cỏc mạng trờn thực tế.
+ Một hạn chế nữa của phương phỏp cửa sổ End-to-End là chưa đảm bảo được tớnh cụng bằng cho người dựng trong tất cả cỏc trường hợp. Để đảm bảo truyền tin tốt nhất cho một kết nối, kớch thước cửa sổ tỷ lệ với số nỳt mạng trờn đường đi từ nguồn đến đớch cũng như tỷ lệ với trễ truyền súng dọc theo đường truyền (tức là kớch thước cửa sổ cũng phụ thuộc vào khoảng cỏch). Như vậy, trong trường hợp cú tắc nghẽn, nếu
trờn một đường truyền cú nhiều kết nối cựng hoạt động thỡ kết nối nào cú khoảng cỏch nguồn đớch lớn sẽ được sử dụng tài nguyờn nhiều hơn (do kớch thước cửa sổ lớn hơn).
Để đảm bảo được tớnh cụng bằng, người ta dựng cơ chế round-robin (xử lý vũng) cho tất cả cỏc kết nối cựng sử dụng tài nguyờn của một nỳt mạng. Lỳc này, cỏc kết nối được coi như cú độ ưu tiờn như nhau và được sử lý luõn phiờn dựa theo kết nối chứ khụng dựa trờn tỷ lệ gúi tin đến.
b. Điều khiển luồng giữa 2 nỳt liờn tiếp trong mạng (hop-by-hop):
Điều khiển luồng theo phương phỏp cửa sổ hop-by-hop: Là việc thực hiện điều khiển luồng giữa 2 nỳt liờn tiếp trờn đường đi từ nguồn tới đớch.
Trong cơ chế điều khiển luồng Hop-by-Hop, việc điều khiển luồng được thực hiện giữa hai nỳt mạng kế tiếp trờn đường truyền. Mỗi nỳt mạng cú cỏc cửa sổ độc lập dựng cho cỏc kờnh làm việc khỏc nhau. Nguyờn tắc hoạt động của cơ chế này tương tự như điều khiển luồng kiểu End-to-End nhưng chỉ ỏp dụng cho một chặng (hai nỳt liờn tiếp nhau). Trong phần lớn cỏc cơ chế truyền thụng tin với cự ly khụng quỏ xa kớch thước cửa sổ thường được chọn là K=2 hoặc K=3 (do hai nỳt mạng là liờn tiếp nhau, số lượng nỳt gúi tin phải đi qua là một nỳt nờn trễ truyền súng khụng đỏng kể). Riờng đối với thụng tin vệ tinh do cự ly truyền rất xa nờn kớch thước cửa sổ cũng được chọn lớn hơn để tăng hiệu quả truyền thụng tin.
Trong cấu trỳc của mạng, cỏc nỳt cú nhiệm vụ tiếp nhận và chuyển tiếp cỏc gúi tin cho nờn khỏi niệm nỳt nguồn và nỳt đớch chỉ mang tớnh tương đối. Gọi nỳt cú thụng tin cần truyền là nỳt nguồn, nỳt nhận thụng tin là nỳt đớch (cỏc nỳt này nằm dọc trờn đường truyền, và cú thể bao gồm cả phớa phỏt và phớa thu). Mục đớch chớnh của điều khiển luồng Hop-by-Hop là đảm bảo bộ đệm của nỳt đớch khụng bị quỏ tải bởi quỏ nhiều gúi tin đến. Điều này được thực hiện với việc nỳt đớch giảm tốc độ gửi ACK về cho nỳt nguồn. Trong trường hợp tổng quỏt, nỳt đớch cú bộ đệm với dung lượng K gúi cho mỗi liờn kết và nú sẽ gửi ACK cho nỳt nguồn nếu trong bộ đệm cũn chỗ trống. Nỳt đớch sẽ xúa gúi tin trong bộ đệm nếu nú đó được truyền thành cụng đến nỳt kế tiếp trờn đường truyền hay đó đi ra khỏi mạng.
Giả sử cú ba nỳt liờn tiếp trờn mạng là (i-1, i, i+1) và bộ đệm của nỳt i đó bị đầy với K gúi tin. Nỳt i sẽ gửi ACK cho nỳt i-1 nếu nú đó gửi thành cụng một gúi tin cho nỳt i+1 (lỳc đú bộ đệm của nỳt i mới được giải phúng và cú chỗ trống cho một gúi tin). Nỳt i thực hiện được điều này nếu nú nhận được một ACK từ nỳt i+1.
Trong trường hợp cú tắc nghẽn xảy ra tại một nỳt nào đú, bộ đệm của nỳt này bị điền đầy bởi K gúi tin. Nếu tắc nghẽn xảy ra trong thời gian dài thỡ theo hệ quả, bộ đệm của cỏc nỳt phớa trước nỳt đú cũng sẽ dần dần bị đầy. Hiện tượng này được gọi là
Hỡnh 3.10: Cơ chế backpressure trong điều khiển luồng Hop-by-Hop.
Ưu điểm của phương phỏp Hop-by-Hop: Trong trường hợp xấu nhất, giả sử tắc nghẽn xảy ra tại đường nối cuối cựng của tuyến truyền (đường nối thứ n) thỡ tổng số gúi tin nằm trong mạng sẽ là n.K (bộ đệm của mỗi nỳt sẽ bị điền đầy bởi K gúi tin). Trong trường hợp này, số lượng gúi tin sẽ được phõn bố đều ở bộ đệm của cỏc nỳt và do đú dung lượng bộ đệm cần thiết ở mỗi nỳt sẽ nhỏ hơn trường hợp End-to-End rất nhiều (trong trường hợp End-to-End, nếu tổng số gúi tin vào mạng hay kớch thước cửa sổ là n.K thỡ dung lượng bộ đệm tương ứng ở mỗi nỳt cũng phải là n.K).
Một ưu điểm khỏc nữa của phương phỏp Hop-by-Hop chớnh là cho phộp thực hiện tớnh cụng bằng. Với việc phõn cỏc gúi tin của một kết nối dọc theo cỏc nỳt mạng mà kết nối phải đi qua, ta cú thể trỏnh được tỡnh trạng ở tại một nỳt, kết nối với khoảng cỏch nguồn đớch lớn sẽ chiếm hết tài nguyờn của cỏc kết nối khỏc. Trong trường hợp Hop-by-Hop, kớch thước cửa sổ của cỏc kết nối là xấp xỉ bằng nhau do đú tốc độ thụng tin đến là khụng chờnh lệch và việc sử dụng tài nguyờn được đảm bảo cụng bằng. Điều này khụng ỏp dụng trong trường hợp kết nối giữa hai nỳt dựng cho truyền vệ tinh. Trong trường hợp này, do trễ truyền dẫn khỏ lớn nờn kớch thước cửa sổ của kết nối vệ tinh cú thể lớn hơn kớch thước cửa sổ của cỏc kết nối khỏc dẫn đến tỡnh trạng khụng cụng bằng.
Phương thức Isarithmic: phương thức này cũng được coi là một biến thể của cơ chế điều khiển luồng theo cửa sổ duy nhất được dựng cho toàn mạng. Việc điều khiển luồng được thực hiện bởi việc giới hạn số lượng gúi tinđi vào mạng thụng qua việc cấp phỏt một sụ́ lượng hạn chế thẻ bài. Mỗi một gúi tin muốn đi vào mạng cần phải nhận được một thẻ bài ở nỳt mà gúi tin đú vào và trả lại thẻ bài ở nỳt mà gúi tin đú ra khỏi mạng. Như vậy, tổng số gúi tin tồn tại đồng thời trong mạng luụn nhỏ hơn hoặc bằng tổng số lượng thẻ bài và việc điều khiển luồng được thực hiện.
Tuy nhiờn phương phỏp này cú những hạn chế nhất định. Nú khụng đảm bảo tớnh cụng bằng cho tất cả người dựng vỡ khụng cú những cơ chế nhất định để quản lý vị phõn phối thẻ bài. Ngoài ra, cỏc thẻ bài cú thể bị mất vỡ những lý do nhất định mà hiện tại chưa cú cơ chế để quản lý số lượng thẻ bài tồn tại trong mạng. Vỡ những lý do đú phương thức Isarithmic ớt được sử dụng trong thực tế.
Để làm rừ nguyờn lý hoạt động của phương phỏp cửa sổ ta xột vớ dụ sau: Vớ dụ hoạt động của phương phỏp cửa sổ với kớch thước K=7.
4 RR4 RR3 I(6) I(5) I(4) I(3) I(2) I(1) I(0) Phía thu Phía phát 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Hỡnh 3.11: Hoạt động của phương phỏp cửa sổ trượt với K=7
Trong vớ dụ này người ta dựng 3 bit để đỏnh dấu chỉ số cho cỏc gúi tin nờn kớch