Chương 3: Các phương pháp điều khiển tắc nghẽn
Chương 3
CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN TẮC NGHẼN
3.1 Giới thiệu chương
Trong chương này, chúng ta sẽ hệ thống hóa lại một số phương pháp điều
khiển tắc nghẽn điển hình nhất, phân tích đánh giá chúng dựa trên cơ sở những tiêu
chí đã đề xuất trong chương 2. Đó là các phương pháp điều khiển tắc nghẽn truyền
thống như DECbit, và một vài phương pháp mới như EWA, ETCP, FBA- TCP, QS-
TCP để cải thiện hiệu suất hoạt động mạng. Trong đó đặc biệt đi sâu vào phương
pháp điều khiển tắc nghẽn sử dụng TCP phổ biến hiện nay (đặc biệt là trong mạng
Internet) và XCP là ứng cử viên cho mạng dựa trên cơ sở IP sau này.
3.2 Một số phương pháp điều khiển tắc nghẽn truyền thống
3.2.1 DECbit
DECbit là một trong các mô hình điều khiển tắc nghẽn sớm nhất. Phương
pháp này sử dụng phản hồi ẩn. Trong DECbit, mạng cung cấp thông tin phản hồi cho
phép phía gởi điều chỉnh lưu lượng vào mạng. Các bộ định tuyến giám sát kích thước
trung bình của hàng đợi trong khoảng thời gian được định nghĩa. Nếu độ dài trung
bình của bộ đệm vượt quá ngưỡng (threshold) thì bộ định tuyến thiết lập một bit chỉ
dẫn chống tắc nghẽn (gọi là DECbit) trong các gói tin để thông báo sự tắc nghẽn của
mạng. Phía nhận gởi lại bit này trong thông báo nhận được đến phía gởi. Phía gởi
giám sát các bit chỉ dẫn chống tắc nghẽn này để điều chỉnh kích thước của cửa sổ gởi
như sau: Nếu xảy ra tắc nghẽn thì giảm đi theo phép nhân (nhân với 0,875), trong
trường hợp ngược lại thì kích thước cửa sổ được tăng lên theo phép cộng.
DECbit là phương pháp khá đơn giản và hữu hiệu. Tuy nhiên, căn cứ vào các
tiêu chí nêu trên thì thuật toán này không đạt được tính hiệu quả vì lưu lượng bị gạt
bỏ đáng kể (qua hệ số 0,875) dẫn đến thông lượng rất thấp. Ngoài ra, các tiêu chí về
tính bình đẳng, độ hội tụ, độ mịn điều khiển cũng không đạt được. Thuật toán không
phù hợp cho các ứng dụng mới trong NGN.
34
Chương 3: Các phương pháp điều khiển tắc nghẽn
3.2.2 Điều khiển chống tắc nghẽn trong TCP
TCP (Transmission Control Protocol) [11] là giao thức phổ biến nhất hiện nay
cho truyền dữ liệu tin cậy trên Internet. Ngoài điều khiển chống tắc nghẽn ra, nó còn
thực hiện chức năng khôi phục dữ liệu đã mất và quản lý kết nối. Điều khiển chống
tắc nghẽn trong TCP thuộc loại điều khiển vòng kín phản hồi ẩn, TCP dựa vào mất
gói để phát hiện tắc nghẽn. Nó có 2 cơ cấu để phát hiện ra mất gói. Đầu tiên, khi gói
được gởi, phía gởi TCP khởi tạo bộ định thời. Nếu bộ định thời hết hiệu lực trước khi
gói được xác nhận, TCP xem như gói bị mất. Thứ 2, khi phía nhận TCP nhận gói
không đúng trật tự. Nó gởi xác nhận ACK cho gói mà nó nhận gần nhất. Ví dụ, giả
sử phía nhận nhận gói từ 1 đến 5, và gói 6 bị mất. Khi phía nhận nhận gói 7, nó gởi
dupack cho gói 5. Phía gởi TCP xét các sự tới của 3 bản sao phúc đáp (3 dupack) như
dấu hiệu của 1 gói mất.
Kết nối TCP qua 2 pha: khởi đầu chậm và pha AIMD. Hình 3.1 cho ta thấy quỹ đạo
điển hình của cửa sổ chống tắc nghẽn.
Khởi đầu chậm: TCP đi vào mô hình khởi đầu chậm khi bắt đầu kết nối.
Trong suốt quá trình khởi đầu chậm, phía gởi tăng tốc độ gởi theo hàm mũ.
Cụ thể, khi bắt đầu khởi đầu chậm cửa sổ tắc nghẽn thiết lập là 1 đoạn, là
MSS khởi tạo bởi phía gởi trong suốt giai đoạn thiết lập kết nối. Do đó, phía
gởi gởi 1 đoạn và đợi cho tới khi phía nhận xác nhận nó. Một khi ACK đến
phía gởi, phía gởi tăng cửa sổ chống tắc nghẽn của nó bởi 1, gởi 2 đoạn, và
đợi ACK tương ứng. Mỗi khi ack đến, phía gởi có thể gởi 2 đoạn, 4 đoạn, ...
gấp đôi lên dẫn đến tăng theo hàm mũ của cửa sổ chống tắc nghẽn. TCP thoát
khỏi khởi đầu chậm khi đoạn bị mất. Khi đó phía gởi giảm cửa sổ tắc nghẽn
đi 1 nửa và đi vào giai đoạn AIMD.
35
Chương 3: Các phương pháp điều khiển tắc nghẽn
Cửa sổ
tắc
nghẽn
Thời gian
Khởi đầu
chậm (tăng
theo hàm mũ)
Cửa sổ bằng
1 khi hết thời
gian chở
AIMD
(tăng
tuyến
tính)
Cửa sổ giảm 1
nửa khi phát
hiện tắc nghẽn
Hình 3.1 Cửa sổ tắc nghẽn
AIMD: Trong mô hình này, miễn là không có đoạn nào bị mất, phía gởi TCP
tăng cửa sổ tắc nghẽn của nó bởi 1 MSS mỗi RTT. Khi gói bị mất, TCP giảm
cửa sổ tắc nghẽn đi một nửa. Như kết quả, thông lượng biểu thị 1 dãy tăng
cộng theo sau bởi giảm nhân. Trạng thái này thường được xem như “TCP
sawtooth” hình 3.1.
Điều khiển chống tắc nghẽn trong TCP có những nhược điểm cơ bản là:
• Thông tin phản hồi là ẩn và vì vậy cửa sổ gửi luôn giảm đi một nửa khi xảy ra
tắc nghẽn là không thực sự hiệu quả.
• TCP không chia sẻ thông tin điều khiển, vì vậy các kết nối cùng một thời điểm
đến cùng một đích (một trường hợp thường xảy ra với lưu lượng web) sẽ phải
cạnh tranh, thay vì phối hợp để sử dụng băng thông mạng một cách hợp lý.
• Đối với mạng đa dịch vụ, thuật toán điều khiển chống tắc nghẽn của TCP
không đem lại tính bình đẳng cần thiết cho các ứng dụng.
• Đối với mạng có lưu lượng biến đổi động, biến đổi nhanh, điều khiển tắc
nghẽn của TCP tỏ ra bất ổn định và không hội tụ [5]
36
Chương 3: Các phương pháp điều khiển tắc nghẽn
3.3 Một số phương pháp điều khiển tắc nghẽn mới
3.3.1 EWA (Explicit Window Adaptation) và FEWA (Fuzzy EWA)
Phương pháp EWA [10] (Explicit Window Adaptation) dùng thông báo một
cách rõ ràng đến phía gởi về băng thông còn khả dụng của các đường ra bằng cách sử
dụng cơ chế điều khiển lưu lượng giống như trong TCP để truyền thông tin phản hồi
từ các bộ định tuyến đến phía gởi.
Sau mỗi khoảng đo i với thời gian tồn tại không đổi phụ thuộc vào băng thông
của tuyến mà router có khả năng EWA được nối, chẳng hạn, 10ms, router với khả
năng EWA đo độ dài hàng đợi hiện thời của nó Q
i
và tính toán độ dài hàng trung bình
hiện thời
i
Q
.
i
i
QQ ,
và độ dài hàng trung bình trước đó
1−i
Q
được dùng để tính toán
cửa sổ gởi mới cho mỗi kết nối TCP đi qua router:
Cửa sổ gởi
( ){ }
MSSQBMSS
i
.log.,max
2
−=
α
(3.1)
Trong đó, B là độ dài hàng lớn nhất trong router (tức là, tại cùng 1 thời điểm
nhiều nhất B+1 gói có thể lưu trữ và được chuyển đi trong router), MSS là kích cỡ
đoạn của tất cả các kết nối TCP đi qua router, và
α
là hệ số động được tính toán như
trong phần sau. B và Q
i
được biểu diễn theo số gói và MSS được biểu diễn theo số
byte. Biểu thức thuật toán trong (3.1) được giới thiệu để phản ánh kết nối TCP với
khởi đầu chậm và có thể gởi nhiều hơn 2 lần số đoạn trong khoảng thời gian vòng
truyền kế tiếp (RTT- Round Trip Time).
Hệ số
α
có thể thay đổi trong đẳng thức (3.1) được giới thiệu để sử dụng tốt
đường truyền nếu chỉ 1 vài kết nối TCP được truyền đoạn qua router.
α
được cập
nhật mỗi milli giây như sau:
( )
==
i
Qf ,
αα
+
down
up
ωα
ωα
.
(3.2)
với
i
ii
QQQ
128
1
128
127
1
+=
−
(3.3)
Giá trị khởi tạo của hệ số sử dụng
α
được thiết lập là 1, tham số
up
ω
( để tăng
cộng) và
down
ω
(để giảm bằng cách nhân với
α
) được thiết lập lần lượt là 1/8 và
37
Nếu ngưỡng dưới
Nếu ngưỡng trên
Chương 3: Các phương pháp điều khiển tắc nghẽn
31/32, độ dài hàng đợi ngưỡng dưới và ngưỡng trên trung bình được thiết lập đến
20% và 60% của độ dài hàng B.
Cửa sổ gởi đã tính toán được truyền đến mỗi TCP phía gởi bằng cách hiệu
chỉnh cửa sổ thông báo phía nhận trong xác nhận TCP. Router (có khả năng TCP) chỉ
giảm cửa sổ khi cần thiết, nhưng không tăng để duy trì điều khiển luồng điểm nối
điểm của TCP.
Cửa sổ gởi = min{cửa sổ gởi, cửa sổ thông báo phía nhận} (3.4)
Với thông tin phản hồi tắc nghẽn rõ, TCP phía gởi có thể phản ứng lại thích
hợp với tải hiện thời trong router hơn nó có thể với cơ cấu khác, chẳng hạn, ECN
(Explicit Congestion Notigication) [9] hay RED (Random Early Detection) [4].
EWA cho thấy các kết quả hoạt động tốt trong các bộ định tuyến có tải lớn,
nhưng có một số vấn đề trong các bộ định tuyến hoạt động ở dưới mức tải trong hầu
hết thời gian. Lý do nằm ở việc tính toán α, nó đặt quá nhiều vào trọng tải trước đó
của bộ định tuyến, vì vậy không thể phản ứng lại đủ nhanh đối với những thay đổi
lớn của các điều kiện tải.
Chính vì hạn chế đó EWA mờ (FEWA – Fuzzy EWA) [10] đã phát triển, khác
với EWA cũ chủ yếu ở việc tính toán α. FEWA sử dụng một bộ điều khiển mờ để
tính α dựa theo giá trị hiện tại và một giá trị gần nhất của bộ đệm bộ định tuyến. Với
các thay đổi này trong việc tính toán phản hồi bên trong bộ định tuyến, hiệu suất từ
đầu cuối đến đầu cuối có thể đạt được lớn hơn so với EWA.
3.3.2 ETCP (Enhanced TCP)
Ý tưởng của ETCP [10] là sử dụng phản hồi FEWA (dựa trên sự điều khiển
thích ứng lưu lượng-AWND) để tính cửa sổ gởi mới (SWND). ETCP phía gởi không
thực hiện chu trình bắt đầu chậm (slow start) và tránh tắc nghẽn (congestion
avoidance), mà bắt đầu với 1 cửa sổ gởi khởi tạo và cập nhật cửa sổ gởi theo các cách
sau:
- Nếu cửa sổ gởi hiện tại lớn hơn cửa sổ điều khiển lưu lượng thì cửa sổ gởi
mới được thiết lập bằng cửa sổ điều khiển lưu lượng:
AWNDSWND ←
38
Chương 3: Các phương pháp điều khiển tắc nghẽn
- Nếu cửa sổ gởi hiện tại nhỏ hơn cửa sổ điều khiển lưu lượng thì cửa sổ gởi
được tính như sau:
( )
SWND
SWNDAWNDSWNDSWND
/1
/.←
Với tính toán này cửa sổ của phía gởi ETCP được tăng theo hàm mũ để tiệm
cận với cửa sổ điều khiển lưu lượng. Với các thay đổi nhỏ này có thể thu được sự cải
thiện đáng kể về khả năng thực hiện.
3.3.3 XCP (Explicit Control Protocol)
XCP [6] là giao thức truyền thông liên quan đến TCP. Không như TCP, XCP
cung cấp phản hồi chống tắc nghẽn rõ từ router có khả năng XCP đến XCP phía gởi.
Do đó, XCP phía gởi có thể điều khiển cửa sổ gởi thích hợp hơn để đạt được tính
hiệu quả, bình đẳng, điều khiển tắc nghẽn có thể mở rộng qui mô và ổn định trong
toàn mạng.
Thuật toán điều khiển chống tắc nghẽn phản hồi trong router có khả năng
XCP được phân thành 2 phần: thuật toán hiệu quả và bình đẳng. Với phương pháp
này, tính hiệu quả và tính bình đẳng giữa các kết nối XCP trong 1 router có thể được
quản lý 1 cách tách biệt nhau.
3.3.3.1 Mào đầu chống tắc nghẽn.
Mỗi gói dữ liệu của 1 kết nối XCP mang theo phần mào đầu chống tắc nghẽn
(CH) hình 3.2. Hai giá trị đầu tiên, H_cwnd và H_rtt, được thiết lập bởi XCP phía gởi
là cửa sổ chống tắc nghẽn hiện thời và RTT ước lượng hiện thời và giữ nó không đổi
trong suốt quá trình truyền thông. Giá trị thứ ba, H_feedback, được dùng cho phản
hồi chống tắc nghẽn của router. Nó được khởi tạo bởi XCP phía gởi đến giá trị tăng
theo yêu cầu cửa sổ chống tắc nghẽn và có thể được điều chỉnh bởi router dựa vào 2
giá trị đầu và thuật toán điều khiển tính hiệu quả và bình đẳng thực hiện trong router.
H_cwnd
39