Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.8 MB, 99 trang )
Luận văn cao học – Nghiên cứu thuật toán WLDA+
2007
1. Cửa sổ tắc nghẽn giới hạn số byte mỗi thiết bị gửi.
2. Không có gói dữ liệu phải gửi lại (do không có tình trạng tắc nghẽn).
3. Tất các các tiêu đề của TCP, IP và tầng liên kết là nhỏ và không đáng
kể.
4. Mỗi đối tượng được truyền có kích thước đủ lớn, gồm một số gói dữ
liệu ( bội của SMSS)
5. Các gói xác nhận ACK nhỏ và có thời gian truyền là không đáng kể.
6. Giá trị ngưỡng ban đầu đặt đủ lớn để giá trị của cửa sổ tắc nghẽn
không bao giờ đạt được.
Nếu :
Độ lớn của mỗi một đối tượng (là khối dữ liệu cần truyền, có thể được
chia thành một số gói tin để gửi đi) được truyền là O bit.
Độ lớn tối đa một gói dữ liệu là S bit.
Tốc độ truyền trên đường liên kết là R bps.
ELT (elapsed time) thời gian trễ của một gói dữ liệu trên đường
truyền, không bao gồm thời gian phát gói dữ liệu đó.
Với mạng có khả năng bị tắc nghẽn, giá trị R thể hiện độ lớn băng
thông ở trạng thái ổn định trong mỗi kết nối TCP, ELT phản ánh độ trễ
trên mạng,
Xem ELT là thời gian thiết lập một kết nối thì 2 * ELT là thời gian
thực hiện thiết lập và bắt tay một kết nối. Nếu đối với mỗi phiên làm việc
không có hạn chế về thời gian kết thúc phiên làm việc đó ta thấy sau
khoảng thời gian 2 *ELT, quá trình phát một đối tượng được bắt đầu và
kết thúc sau O/R giây. Do đó như khái niệm đã trình bày ở trên, tổng thời
gian phát một đối tượng sẽ là 2*ELT + O/R.
Gọi W là độ lớn của sổ phát cố định tức là tối đa số gói dữ liệu chờ
được phát tại mỗi thời điểm. Khi máy chủ nhận được tín hiệu phát, nó
phát cả W gói dữ liệu cho máy yêu cầu. Khi nhận được một gói xác nhận
ACK, thể hiện rằng gói dữ liệu đã đến đích, máy chủ gửi tiếp một gói dữ
Trang 41
Luận văn cao học – Nghiên cứu thuật toán WLDA+
2007
liệu nữa, và quá trình này lặp lại cho đến khi tất cả gói dữ liệu của đối
tượng đó được gửi đi. Xét hai trường hợp xảy ra :
Trường hợp 1: Máy chủ nhận được gói xác nhận ACK trước khi gửi
hết W gói dữ liệu đầu tiên tức là W*S/R > ELT + S/R. Xét với W=4 thì
sau 2*ELT giây, kết nối được khởi tạo và dữ liệu được phát sau ELT/2
giây tiếp theo. Sau 2*ELT máy trạm sẽ nhận được dữ liệu từ máy chủ.
Các gói dữ liệu được phát cho máy trạm theo chu kỳ S/R và máy trạm
gửi các gói xác nhận ACK tương ứng khi nhận được một gói dữ liệu. Vì
máy chủ nhận được gói xác nhận ACK đầu tiên trước khi gửi cả W gói
dữ liệu, máy chủ tiếp tục phát các gói dữ liệu còn lại trong cửa sổ phát.
Chú ý rằng trong quá trình phát , tốc độ truyền là không đổi và duy trì ở
mức R. Tổng thời gian truyền trong trường hợp này là 2*ELT + O/R.
Trường hợp 2: Máy chủ nhận được gói xác nhận ACK sau khi đã gửi
hết W gói dữ liệu đầu tiên, tức là W*S/R < ELT + S/R. Với W=2, sau
2*ELT + O/R giây, đối tượng O được phát hết từ máy chủ sang máy
trạm, nhưng lúc này máy chủ không nhận được gói xác nhận ACK đầu
tiên sau khi đã gửi tất cả W gói dữ liệu. Như vậy, máy chủ phải chờ gói
xác nhận ACK này trước khi tiếp tục phát các gói dữ liệu tiếp theo trong
cửa sổ thứ hai. Nếu đặt K = ceiling(O/W*S) (ceiling() là hàm làm tròn
lên) là số cửa sổ cần thiết để truyền đối tượng cỡ O. Vì trong mỗi chu kỳ
(thời gian truyền hết một cửa sổ) W*S /R < ELT + S/R nên thời gian chờ
phát không quá ELT + S/R – W*S/R, khi đó thời gian truyền đối tượng O
sẽ không vượt quá :
2*ELT + O/R + (K-1) [S/R + ELT - W*S/R]
Trong đó (K-1) [S/R + ELT - W*S/R] là tổng thời gian chờ phát
của các gói dữ liệu trong O và 2*ELT + O/R là thời gian phát hết các đối
tượng trong O dựa trên tốc độ vật lý (cửa sổ đầu tiên được phát sau thời
gian bắt tay để thiết lập kết nối, không cần chờ; với (K-1) cửa sổ tiếp
theo, cần tính thêm thời gian chờ biên nhận).
Trang 42
Luận văn cao học – Nghiên cứu thuật toán WLDA+
2007
Từ hai trường hợp trên ta thấy rằng thời gian truyền một đối tượng
là :
2 * ELT + O/R + (K-1)*[S/R + ELT - W*S/R]
Trong việc sử dụng khung cửa sổ động sau khi gói dữ liệu đầu
tiên được phát và gói xác nhận ACK được trả về với đối tượng có O bít
dữ liệu, khung cửa sổ phát ban đầu là 1, khung cửa sổ phát tăng lên một.
Sau khi phát hết 2 gói dữ liệu và nhận về gói xác nhận ACK tương ứng
cho hai gói dữ liệu này, khung cửa sổ phát tăng lên 4. Các gói dữ liệu
được phát lên mạng theo chu kỳ S/R giây. Như vậy sau mỗi chu kỳ ELT
giây, trong giai đoạn khởi động chậm, độ lớn cửa sổ phát tăng lên gấp
đôi. Chú ý rằng O/S là số gói dữ liệu trong một đối tượng được phát.
Theo thuật toán truyền ở trên, cửa sổ phát thứ k chứa 2 k-1 gói dữ liệu, ta
có :
Trong mô hình đang xét, khoảng thời gian từ lúc phát gói dữ liệu
đầu tiên trong cửa sổ thứ k cho đến khi nó nhận được gói xác nhận ACK
đầu tiên là S/R + ELT, tức là bằng thời gian phát vật lý cộng thời gian lan
truyền. Ở đây S là độ lớn gói dữ liệu, đơn vị bit, R là tốc độ truyền, đơn
vị bit/giây. Thời gian phát 2k-1 gói dữ liệu là (S/R) 2k-1. Như vậy thời gian
chờ phát của một độ lớn cửa sổ là :
[S/R + ELT - 2k-1 (S/R)]
Trang 43
Luận văn cao học – Nghiên cứu thuật toán WLDA+
2007
tức là, nếu S/R + ELT < 2k-1 (S/R), thời gian chờ phát bằng 0. Nếu S/R +
ELT > 2k-1 (S/R), thời gian chờ phát bằng S/R + ELT - 2k-1 (S/R) . Khi đó
tổng thời gian truyền một đối tượng ( K cửa sổ ) là :
So sánh với trường hợp dùng cửa sổ tĩnh ta thấy chỉ có sự khác
nhau là hạng thức W*S/R trong cửa sổ tĩnh được thay bằng 2 k-1*S/R.
Như trên ta thấy K xác định cận trên của số cửa sổ phát cần thiết để phát
hết đối tượng O. Tuy nhiên ta có thể xác định giá trị cận trên bằng cách
sau :
Với :
và
P:=min(Q,K-1)
Khi đó số cửa sổ cần thiết để truyền hết đối tượng O phải không
vượt quá P và thời gian để truyền hết đối tượng O là :
Trong đó : O/R là thời gian phát hết đối tượng O, 2*ELT là thời
gian thiết lập kết nối, còn lại là tổng thời gian chờ trên đường truyền. Rút
gọn lại ta có tổng thời gian truyền đối tượng O có tính đến tắc nghẽn là :
Trang 44
Luận văn cao học – Nghiên cứu thuật toán WLDA+
2007
Như vậy, nếu không có tắc nghẽn xảy ra, thời gian phát một đối
tượng tối thiểu MINIMUM_WAIT_TIME là 2*ELT + O/R Khi đó ta có:
Đây chính là biểu thức tính hiệu suất sử dụng đường truyền. Qua
đó ta thấy nếu ELT rất nhỏ thì giai đoạn khởi động chậm sẽ chiếm thời
gian không đáng kể.
2. Thuật toán điều khiển lưu lượng
Như trên đã trình bày, khả năng của TCP là điều chỉnh luồng phù
hợp với tài nguyên sẵn có của mạng. TCP dựa trên kỹ thuật sliding
window cho việc gửi gói tin và chống tràn bộ đệm nhận, TCP lưu giữ một
bộ đệm truyền được gọi là cửa sổ truyền. Để thống kê tình trạng tắc
nghẽn trong mạng và thực thể gửi chọn được một giá trị cửa sổ truyền
thích hợp, cửa sổ truyền có những cách điều chỉnh khác nhau:
- Slow start: Thuật toán này định nghĩa thêm một cửa sổ TCP phát
được gọi là cửa sổ tắc nghẽn - CWND (Congestion Window) được đo
bằng đơn vị gói tin. Khi một kết nối mới được thiết lập hoặc sau khi kết
thúc thời gian time-out, cửa sổ này sẽ được đặt bằng kích cỡ của một gói
tin. Sau mỗi lần nhận một ACK, cửa sổ được tăng lên bằng kích cỡ của
các gói tin đã nhận ACK cho đến khi xảy ra tình trạng tắc nghẽn (gia tăng
RTT) hoặc vượt quá một ngưỡng nhất định và cần phải có điều chỉnh cho
phù hợp.
Trang 45
Luận văn cao học – Nghiên cứu thuật toán WLDA+
2007
- Congestion avoidance: Đặc trưng của hiện tượng tắc nghẽn số
liệu là thời gian trễ RTT tăng. Những nguyên nhân chính dẫn đến sự gia
tăng giá trị RTT là do hiện tượng mất gói số liệu tại một hệ định tuyến
nào đó trong mạng (do thiếu bộ nhớ nhận chẳng hạn) dẫn đến time-out
hoặc do thực thể phát nhận được nhiều lần thông báo trả lời ACK cho
cùng một gói tin, báo hiệu đã có các gói số liệu đã đến không theo đúng
thứ tự phát, nên thực thể phát phải phát lại gói số liệu bị mất.
Biện pháp tránh tắc nghẽn chính là giảm lưu lượng số liệu phát, từ
đó hạn chế được tình trạng mất gói số liệu. Thuật toán “bắt đầu chậm”
(Slow Start) và “tránh tắc nghẽn” (Congestion Avoidance) là những kỹ
thuật điều khiển lưu lượng, tránh tắc nghẽn số liệu hoạt động độc lập,
song có quan hệ mật thiết với nhau và thường được cài đặt cùng nhau.
Hoạt động của hai giải pháp này được kết hợp như sau:
* Đặt giá trị ban đầu cwnd = 1 đơn vị gói số liệu và ssthresh =
65.535 Byte, trong đó ssthresh là ngưỡng trên của CWND theo thuật toán
“bắt đầu chậm”.
* Thực thể TCP không bao giờ phát nhiều hơn giá trị tối thiểu của
cwnd và độ lớn cửa sổ thu rwnd được thực thể thu thông báo trước đó : W
= min {cwnd, rcnd].
* Khi hiện tượng tắc nghẽn số liệu xuất hiện, đặt giá trị ngưỡng tắc
nghẽn ssthresh = CWND/2 (nhưng không nhỏ hơn 2 đơn vị gói số liệu)
và đặt wcnd = 1 đơn vị gói số liệu.
* Mỗi khi nhận được thông báo ACK, giá trị wcnd được tăng lên,
mức độ tăng phụ thuộc vào thuật toán bắt đầu chậm hay thuật toán tránh
tắc nghẽn đang được thực hiện:
- Nếu thuật toán bắt đầu chậm đang được thực hiện (CWND <
ssthresh): giá trị wcnd được tăng 1 đơn vị gói số liệu với mỗi thông báo
ACK nhận được.
Trang 46