1. Trang chủ >
  2. Luận Văn - Báo Cáo >
  3. Công nghệ thông tin >

3 Điều khiển lưu lượng động

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 :





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



Xem Thêm
Tải bản đầy đủ (.pdf) (99 trang)

×