Việc thiết lập cấu hình ưu tiên một cách hợp lý cho các luồng traffic là tối quan
trọng trong WRED. Thí nghiệm với TSW3CM cho thấy nếu nguồn bùng phát được
giới hạn không đúng mức, thì khi xảy ra tắc nghẽn,giao thức sẽ không có được kết
quả mong muốn, thậm chí còn giảm đáng kể hiệu năng của hệ thống
86 trang |
Chia sẻ: lylyngoc | Lượt xem: 3208 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Đánh giá hiệu quả đảm bảo qos cho truyền thông đa phương tiện của chiến lược quản lý hàng đợi wred, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g tôi cũng đồng ý với các tác giả
trong [1] rằng nên chọn maxp = 0.1.
3.2.4 Một số đánh giá về RED
RED là một điển hình của các chiến lược quản lý hàng đợi động AQM, ngoài
những ưu điểm chung của AQM, RED còn có một số tính chất (ưu điểm) riêng biệt
khác nữa:
− Tránh tắc nghẽn: Nếu RED gateway thực sự loại bỏ gói tin đến khi kích thước
hàng đợi trung bình đạt đến ngưỡng trên, thì RED gateway đảm bảo kích
thước hàng đợi trung bình tính theo lý thuyết không vượt quá ngưỡng trên. Nếu
trọng số hàng đợi wq được thiết lập một cách hợp lý thì RED gateway hoàn
toàn có thể điều khiển được kích thước hàng đợi trung bình thực sự. Nếu RED
gateway đánh dấu một bit trong header của gói tin đến khi kích thước hàng đợi
trung bình vượt quá ngưỡng trên, thay vì loại bỏ nó, thì hiệu quả hoạt động của
RED gateway còn phụ thuộc vào sự hợp tác của các cặp nguồn/đích để điều
khiển kích thước hàng đợi trung bình.
− Tránh đồng bộ toàn cục: Tỷ lệ đánh dấu gói tin của RED gateway phụ thuộc
vào mức độ tắc nghẽn. Ở giai đoạn tắc nghẽn thấp, RED gateway đánh dấu gói
tin với một xác suất thấp, và khi tắc nghẽn tăng lên thì xác suất đánh dấu cũng
tăng lên. Mặt khác, RED gateway chọn ngẫu nhiên các gói tin đến để đánh dấu;
với phương pháp này xác suất đánh dấu một gói tin từ một kết nối cụ thể tỉ lệ
với phần băng thông được chia sẻ của kết nối đó tại gateway. Như vậy, RED
gateway tránh hiện tượng đồng bộ toàn cục bằng cách đánh dấu gói tin theo một
tỷ lệ thấp nhất có thể và việc đánh dấu các gói tin một cách ngẫu nhiên.
− Đơn giản: Thuật toán RED có thể được cài đặt với một chi phí vừa phải,
không yêu cầu phải cài đặt đồng loạt cho tất cả các gateway trong mạng mà có
thể triển khai dần.
53
− Cực đại hoá công suất toàn cục: Công suất nói ở đây được định nghĩa bằng tỷ lệ
giữa thông lượng và độ trễ. Vì RED gateway điều khiển cho kích thước hàng
đợi nhỏ, dẫn tới độ trễ nhỏ, mặt khác như các mô phỏng chúng tôi trình bày
dưới đây, hệ số sử dụng đường truyền với RED và DropTail là xấp xỉ nhau, vì
vậy công suất đường truyền cao hơn rất nhiều so với DropTail (điều này được
khẳng định bằng các mô phỏng dưới đây).
− Tính công bằng: một trong những mục tiêu quan trọng của một thuật toán quản
lý hàng đợi là sự công bằng trong việc cấp phát đường truyền cho các kết nối
chia sẻ. Về điểm này thì RED gateway có phần hạn chế. RED gateway không
phân biệt các kết nối hay các lớp kết nối khác nhau. Đối với RED gateway, tỷ lệ
các gói tin bị đánh dấu tỷ lệ với phần băng thông chia sẻ của kết nối đó tại
gateway. Tuy nhiên nó không cố gắng đảm bảo tất cả các kết nối nhận được
cùng một tỷ lệ dải thông, mặt khác nó không điều khiển được hiện tượng
misbehaving users - hiện tượng một kết nối nào đó nhận được tỷ lệ băng thông
lớn hơn rất nhiều so với các kết nối khác đi qua gateway.
3.3 Phương pháp loại bỏ ngẫu nhiên theo trọng số - WRED
Thuật toán RED không phải lúc nào cũng đảm bảo cho các luồng chia sẻ băng
thông một cách cân đối nhau. Trong thực tế, RED không ưu tiên đối với các luồng
TCP tốc độ thấp vì RED loại bỏ ngẫu nhiên các gói khi ngưỡng bị vượt quá. WRED
(Weighted RED) là phương pháp tránh tắc nghẽn dựa trên việc các thuộc tính của
thuật toán RED và ưu tiên IP. WRED có thể lựa chọn loại bỏ lưu lượng có mức ưu tiên
thấp khi trên giao diện bắt đầu xảy ra quá trình tắc nghẽn và cung cấp các đặc tính tiêu
chuẩn khác nhau cho các lớp dịch vụ khác nhau.
Với các giao diện mạng được cấu hình sử dụng đặc tính giao thức dành sẵn tài
nguyên (RSVP), khi quá trình nghẽn xảy ra WRED ưu tiên các luồng RSVP hơn là các
luồng dữ liệu khác trong quá trình loại bỏ gói để tránh tắc nghẽn. Cũng giống như
RED trong cơ chế của mình WRED loại bỏ gói một cách ngẫu nhiên, từ đó thông báo
tới trạm gốc giảm tốc độ truyền gói tin vào mạng. Nếu trạm gốc sử dụng TCP, nó sẽ
làm giảm tốc độ của chính các gói đó cho tới khi tất cả các gói có thể đến được đích.
WRED loại gói dựa trên giá trị ưu tiên IP được gán cho mỗi gói. Các gói có giá trị
ưu tiên thấp hơn có khả năng bị làm rớt cao. WRED khắc phục các điểm yếu của cơ
chế DropTail khi đầu ra giao diện có nguy cơ bị tắc nghẽn nó sẽ thực hiện lựa chọn
làm mất một số gói thay vì chờ cho tới khi các hàng đợi bị đầy rồi mới thực hiện việc
loại bỏ gói.
WRED tránh việc làm mất một lượng lớn các gói trong một khoảng thời gian ngắn,
từ đó nó cho phép các đường truyền được sử dụng hữu ích tại mọi thời điểm. WRED
tránh được các vấn đề đồng bộ toàn cục xảy ra khi sử dụng DropTail để tránh tắc
54
nghẽn. WRED chỉ hữu ích khi phần lớn lưu lượng là dữ liệu của giao thức TCP, khi đó
các gói bị loại sẽ phát sinh thông báo (gián tiếp) về sự nghẽn mạch để từ đó trạm phát
giảm tốc độ truyền dẫn của mình. Đối với các gói tin được đóng gói theo một giao
thức khác có thể trạm gửi không phát hiện quá trình mất gói xảy ra, như vậy có thể
không ngăn chặn được quá trình nghẽn mạch. Với các dữ liệu mà không thuộc dạng
gói TCP, WRED coi đó như là dữ liệu có mức ưu tiên thấp nhất (Precedence = 0), bởi
vậy khả năng bị loại của nó là cao hơn các dữ liệu TCP.
Hình 3. 3 Cơ chế làm việc của WRED được minh hoạ trong hình vẽ trên
Router sẽ tự động tính toán các thông số của WRED để xác định cỡ hàng đợi trung
bình. Cỡ hàng đợi trung bình được tính trên cơ sở cỡ hàng đợi trung bình trước và cỡ
hàng đợi hiện tại. Giá trị của nó được tính theo công thức sau:
average = (old_average * (1 – 1/2n )) + (current_queue_size * 1/2n )
Trong đó:
n: là hệ số trọng số và có thể cấu hình được.
average: Cỡ hàng đợi trung bình
old_average: Cỡ hàng đợi trung bình trước đó
current_queue_size: Kích thước hàng đợi hiện tại
Chúng ta nên chọn hệ số trọng số cho phù hợp nếu n quá lớn WRED sẽ không tác
động để chống tắc nghẽn, các gói tin sẽ được gửi hoặc bị loại vì vậy việc áp dụng
WRED là vô ích, tuy nhiên việc lựa chọn n quá nhỏ WRED sẽ phản ứng mãnh liệt với
sự bùng nổ lưu lượng tạm thời dẫn đến làm mất gói trong khi không thực sự cần thiết.
Chúng tôi sẽ sử dụng NS2 để mô phỏng thuật toán này và đưa ra các nhận xét trong
chương 4.
Như đã trình bày trong chương 2, DiffServ đi theo hướng đảm bảo chất lượng dựa
trên nguyên lý hành vi theo từng chặng căn cứ vào mức ưu tiên của các gói tin đã được
đánh dấu. Việc đưa ra chính sách với các loại lưu lượng khác nhau là do người quản trị
quyết định và có thể thay đổi theo thực tế nên nó rất mềm dẻo. DiffServ tận dụng tốt
tài nguyên mạng hơn, tránh được tình trạng nhàn rỗi băng thông và năng lực xử lý trên
55
router, ngoài ra mô hình DifServ có thể triển khai trên nhiều miền độc lập do vậy khả
năng mở rộng mạng trở nên dễ dàng. Dưới đây, là các đặc tính của WRED được sử
dụng trong kiến trúc DiffServ.
a. Cấu trúc của DiffServ
DiffServ cung cấp dịch vụ QoS bằng việc chia traffic ra làm nhiều nhóm (lớp) khác
nhau, mỗi một packet sẽ được đánh dấu bằng 1 mã (Code Point) để xác định nhóm.
Module DiffServ trong NS2 có thể hỗ trợ 4 lớp traffic, mỗi lớp lại có 3 loại quyền ưu
tiên loại bỏ (dropping precedences) cho phép ta xử lý các lớp traffic theo nhiều cách
khác nhau. Các packet trong một lớp đơn sẽ được đưa vào trong 1 hàng đợi RED vật lý
(physical queue), trong đó chứa tối đa 3 hàng đợi ảo (virtual queue). Tại các hàng đợi
ảo này ta có thể cấu hình để ưu tiên với các loại gói tin theo ý muốn.
Những tham số khác nhau của RED có thể được cấu hình cho các virtual queue, từ
đó có thể dẫn đến 1 virtual queue có thể drop gói tin thường xuyên hơn những virtual
queue khác. Mỗi packet sẽ được gắn với 1 giá trị Code Point và các tham số của RED,
trong đó có trị số drop (dropping precedences), nếu trị số này thấp thì sẽ packet được
ưu tiên hơn, sẽ ít bị drop khi xảy ra tắc nghẽn.
Module DiffServ trong NS2 có 3 thành phần chính như sau:
- Policy: là bộ luật, nó được thiết lập bởi người quản trị mạng, nói về các cấp độ
của dịch vụ mà của 1 lớp traffic nhận được trên mạng
- Edge router: các router biên có nhiệm vụ đánh dấu mã Code Point vào packet.
Giá trị Code Point tương ứng với policy đã được thiết lập ở trên.
- Core router: các router lõi có nhiệm vụ thực thi policy dựa theo code point của
gói tin.
Tất cả những thủ tục và chức năng của DiffServ có thể tìm thấy trong bộ code/thư
viện của NS2: ~ns/diffserv/dsred, dsredq, dsEdge, dsCore, dsPolicy.{cc, h}
b. Hàng đợi RED trong module DiffServ
Hàng đợi RED trong DiffServ khác với hàng đợi RED sẵn có của NS2 trong
REDQueue, nó được định nghĩa trong lớp dsREDQueue, thừa kế từ lớp Queue, nó có
những chức năng như sau:
- Triển khai nhiều hàng đợi vật lý RED qua cùng 1 liên kết đơn
- Triển khai nhiều hàng đợi ảo trong 1 hàng đợi vật lý, với những tham số riêng
biệt cho mỗi hàng đợi ảo
- Xác định 1 packet thuộc hàng đợi vật lý và hàng đợi ảo nào dựa vào giá trị
Code Point của nó
- Xác định hàng đợi vật lý và hàng đợi ảo nào mà packet đi ra.
56
Lớp dsREDQueue bao gồm tối đa 4 hàng đợi RED vật lý, mỗi cái lại chứa tối đa 4
hàng đợi ảo. Số hàng đợi vật lý và ảo được sử dụng có thể được thiết lập thông qua
biến numPrec và numQueues_.
Hàng đợi vật lý được định nghĩa trong lớp redQueue, nó khả năng phân biệt các
traffic thông qua việc định nghĩa các hàng đợi ảo với các cấu hình độc lập, chi tiết về
việc này có tại file dsredq.h và dsredq.cc trong bộ cài NS2.
Lớp dsREDQueue còn chứa một kiến trúc dữ liệu là bảng Per Hop Behavior
(PHB), các router biên đánh dấu packet bằng Code Point và core router xử lý packet
dựa trên giá trị Code Point đó, và cả 2 loại router đều sử dụng bảng PHB để ánh xạ
Code Point tới hàng đợi vật lý và ảo.
Bảng PHB được định nghĩa như là 1 mảng với 3 trường như sau:
struct phbParam {
int codePt_; // giá trị Code Point
int queue_; // số hiệu hàng đợi vật lý
int prec_; // số hiệu hàng đợi ảo
c. Router lõi và router biên
Định nghĩa router lõi và router biên trong DiffServ có trong class edgeQueue và
coreQueue, chúng thừa kế từ class dsREDQueue. Chi tiết có tại file dsEdge,
dsCore.{h.cc}.
Vị trí của router lõi và router biên trong miền DiffServ được minh hoạ trên
Hình 3.4 sau đây.
Hình 3. 4 Vị trí router lõi và biên trong miền DiffServ
Nhiệm vụ của router biên:
- Phân tích và phân loại các gói tin đến mạng dựa theo các policy đã thiết lập
- Đánh dấu gói tin với 1 mã (code point) phản ánh mức độ phục vụ
- Bảo đảm tất cả các luồng dữ liệu phải được đánh dấu và tuân theo policy
Nhiệm vụ của router lõi:
- Phân tích các gói tin
- Xử lý gói tin dựa theo code point được đánh dấu
57
Các packet được đánh dấu bằng class edgeQueue. Mỗi packet với 1 code point xác
định thường phải liên quan đến 1 policy đã định nghĩa trước đó. Class edgeQueue có
mối liên hệ với class PolicyClassifier – nơi chứa các policy để đánh dấu gói tin.
d. Các chính sách - Policy
Lớp Policy và những lớp con của nó định nghĩa các cách xử lý gói tin bởi router
biên trong việc đánh dấu. Một policy được xác định bởi node nguồn và đích. Tất cả
những luồng packet mà có chung nguồn và đích thì đều được coi như 1 tập hợp traffic
đơn (single traffic aggregate).
Policy cho mỗi tập hợp này được gán bằng 3 thông số: polycier type, meter type và
initial code point. Meter type xác định phương thức đo lường các giá trị cần thiết bởi
polycier, ví dụ: TSW Tagger là một kiểu meter đo bằng tần suất traffic trung bình.
Khi một gói tin tới 1 router biên, nó sẽ được phân tích để xác định thuộc luồng nào.
Tiếp theo Policier sẽ xác định đánh dấu (marking) gói tin ra sao. Dựa vào các thông
số: trạng thái của luồng, code point ban đầu, code point bị giảm, sau đó packet sẽ được
đưa vào hàng đợi.
Bảng chính sách (Policy Table):
Lớp Policy sử dụng Policy Table để lưu trữ các bộ luật của mỗi luồng traffic. Bảng
này là 1 mảng bao gồm nhiều trường, trong đó tùy theo policer type mà có nhiều
trường không sử dụng. Các trường của Policy Table là:
- Source node ID: định danh node nguồn
- Destination node ID: định danh node đích
- Policer type : kiểu policer
- Meter type : kiểu đo
- Initial code point : code point ban đầu
- CIR (committed information rate) : là tốc độ thông tin cam kết và cũng được
gọi là tốc độ cam kết hoặc tốc độ được định dạng.
- CBS (committed burst size) : kích thước burst cam kết
- C bucket (current size of the committed bucket) : Kích thước hiện tại của
bucket cam kết
- EBS (excess burst size) : kích thước burst ngưỡng giới hạn
- E bucket (current size of the excess bucket) : kích thước hiện tại của bucket
ngưỡng giới hạn
- PIR (peak information rate) : Tốc độ gửi đỉnh
- PBS (peak burst size) : Ngưỡng kích thước burst
58
- P bucket (current size of the peak bucket) : Kích thước hiện tại của ngưỡng
bucket
- Arrival time of last packet : thời gian tới của packet cuối cùng
- Average sending rate: tốc độ gửi trung bình:
- TSW window length : độ dài cửa sổ TSW
Các kiểu thi hành (Policier Types):
Hiện tại lớp Policy hỗ trợ 6 loại Policier:
- Time Sliding Window with 2 Color Marking (TSW2CMPolicer): Cửa sổ trượt
theo thời gian với việc đánh dầu 2 màu, sử dụng biến CIR và 2 hàng đợi ảo.
Những hàng đợi ảo có số hiệu thấp hơn sẽ drop gói tin khi ngưỡng CIR bị vi
phạm.
- Time Sliding Window with 3 Color Marking (TSW3CMPolicer): Cửa sổ trượt
theo thời gian với việc đánh dầu 3 màu, sử dụng biến CIR, PIR và 3 hàng đợi
ảo. Khi PIR bị vi phạm thì sẽ drop trong hàng đợi thấp nhất, khi CIR bị vi phạm
thì sẽ drop trong hàng đợi thấp thứ 2.
- Token Bucket (tokenBucketPolicer): sử dụng CIR, CBS và 2 hàng đợi ảo. Mỗi
packet sẽ bị ưu tiên drop bằng cách đặt vào hàng đợi ảo thấp hơn khi kích cỡ
của nó lớn hơn CBS và tần suất gửi vi phạm CIR
- Single Rate Three ColorMarker (srTCMPolicer): sử dụng biến CIR, CBS, EBS
để ưu tiên packet từ 3 hàng đợi ảo.
- Two Rate Three Color Marker (trTCMPolicer): sử dụng biến CIR, CBS, PIR
và PBS để ưu tiên packet từ 3 hàng đợi ảo.
- NullPlocier: không ưu tiên packet nào cả.
Nhưng policy ở trên đều được định nghĩa như là một class con của class dsPolicy.
3.4 Một số phương pháp khác
3.4.1. Tốc độ truy cập cam kết (CAR - Committed Access Rate)
CAR là một cơ chế giám sát tốc độ cho phép người quản trị mạng đưa ra các biện
pháp xử lý để kiểm soát lưu lượng. Do CAR là một cơ chế kiểm soát chứ không phải
là cơ chế hàng đợi vì vậy nó không có bộ đệm và nó cũng không làm phát sinh trễ có
thể cho phép truyền tốc độ cao.
3.4.1.1. Cơ chế hoạt động
Khi dữ liệu được gửi đến một giao tiếp, CAR thực hiện việc kiểm tra lưu lượng sau
đó so sánh tốc độ của lưu lượng với thông số “token bucket” (xô chứa thẻ bài) và đưa
ra hành động tương ứng dựa trên cơ sở kết quả so sánh đó. Ví dụ CAR sẽ loại gói, sửa
lại quyền ưu tiên IP hay khởi tạo lại các bit ToS. Người quản trị mạng cũng có thể cấu
59
hình CAR để truyền gói, loại bỏ gói hoặc thiết lập quyền ưu tiên (xem hình sơ đồ khối
của CAR).
Hình 3. 5 Sơ đồ khối của CAR
Lưu lượng chuyển đến đòi hỏi phải được nhận dạng phù hợp với các đặc tính về
tốc độ giới hạn, quyền ưu tiên hoặc cả hai. Cơ sở của việc định nghĩa tốc độ giới hạn
dựa trên 3 thông số sau:
− Tốc độ trung bình, được xác định là tốc độ truyền dẫn trong một thời gian dài. Đó
là lưu lượng luôn dưới mức tốc độ giới hạn cho phép.
− Cỡ khối trung bình, xác định lưu lượng lớn cỡ nào trước khi một vài phần lưu
lượng vượt quá tốc độ giới hạn cho phép.
− Cỡ khối quá mức, xác định lưu lượng lớn cỡ nào trước khi tất cả lưu lượng vượt
quá tốc độ giới hạn cho phép (CAR).
3.4.1.2. Các chức năng của CAR
Chức năng giới hạn tốc độ được thể hiện như sau:
− Cho phép điều khiển tốc độ tối đa truyền hay nhận trên một giao diện.
− Thực hiện điều khiển tại lớp 3 để điều khiển lưu lượng cụ thể nào đó khi lưu
lượng có thể phù hợp hoặc quá tải.
− Nhà quản trị có thể giới hạn tốc độ dữ liệu dựa trên các đặc tính về quyền ưu tiên,
địa chỉ MAC (Medium Access Control) hoặc các thông số khác. CAR thường
được thiết lập tại các router biên (edge) trong tổ chức của một mạng để giới hạn
tốc độ truyền dữ liệu đi và đến mạng.
60
Hình 3. 6 Lưu đồ thuật toán CAR được minh họa họa ở hình trên
Khi CAR có hiệu lực, lưu lượng sẽ được đi vào phân lớp đầu tiên rồi đưa vào quá
trình xử lý CAR. Sau đó CAR đo lưu lượng và trên kết quả đo của CAR cho biết lưu
lượng có thể phù hợp hoặc vượt quá mức chính sách đã cấu hình.
Có 3 hành động cơ bản có thể xẩy ra trên mỗi gói, phụ thuộc vào các gói đó hợp
hay vượt quá so với chính sách:
− Truyền (Transmit): gói được gửi đi.
− Rớt (Drop): Gói bị loại bỏ.
− Tiếp (Continue): Gói được đưa tiếp đến chính sách về tốc độ tiếp theo trên dây
truyền giới hạn tốc độ. Nếu không còn chính sách nào khác thì gói sẽ được
chuyển đi.
Như đã đề cập ở phần trước, CAR cũng có thể được đánh dấu hoặc đánh dấu lại
lưu lượng cũng như thực hiện giới hạn tốc độ. Phụ thuộc vào hình dạng lưu lượng các
hành động đánh dấu hoặc tái đánh dấu có thể được thực hiện trong xử lý CAR như:
Đặt Precedence hoặc giá trị DSCP và phát đi IP Precedence ToS hoặc bit DSCP
trong header của gói được viết lại. Sau đó gói được phát đi. Hành động này có thể
đánh dấu hoặc tái đánh dấu các gói.
− Đặt bit MPLS experimental và truyền bit experimental MPLS có thể được thiết
lập. Thường sử dụng các tham số QoS báo hiệu trong MPLS.
− Đặt QoS group và phát QoS group có thể được đặt. Nó chỉ được sử dụng trong
router nội tại (local router). QoS group có thể được dùng trong cơ chế QoS cuối
cùng và thực hiện trên cùng một router, như là CB-WFQ.
3.4.1.3. Mô hình chiếc thùng và thẻ bài
Thưc hiện cơ chế đo lưu lượng bằng mô hình chiếc thùng và thẻ bài được chỉ ra
trong hình
61
Hình 3. 7 Mô hình chiếc thùng và thẻ bài
Mô hình chiếc thùng và thẻ bài (Token Bucket) là một mô hình cho việc điều hoà
lưu lượng, để xử lý bất kỳ một gói mới nào đi đến. Mỗi một thẻ (Token) đại diện sự
cho phép gửi một số lượng bit cố định vào mạng. Bucket (cái thùng) là khả năng giữ
một số lượng thẻ bài nào đó. Nếu bucket được điền đầy, thì các gói mới đến sẽ bị lờ đi,
không có thẻ bài cho các gói đến sau, do vậy các gói sẽ bị drop. Ví dụ Token bucket
với khả năng có thể là 700 bytes, khi một gói 500 byte đi đến giao diện, kích thước của
gói sẽ được so sánh với Bucket và gói 500 byte này được lấy thẻ bài. Khi một gói 300
byte tiếp theo đến ngay sau gói thứ nhất, gói này không được nhận thẻ bài vì trong
bucket chỉ còn có 200 thẻ cho gói tiếp theo, nên gói này bị drop. Thực hiện token
bucket dựa vào 3 tham số CIR, Bc, Be.
− CIR (Committed Information Rate) là tốc độ thông tin cam kết và cũng được gọi
là tốc độ cam kết hoặc tốc độ được định dạng.
− Bc được biết đến như là khả năng bùng nổ nằm trong giới hạn.
− Be là khả năng bùng nổ quá giới hạn.
− Tc là chu kỳ mà số thẻ được thêm vào.
3.4.2 Định dạng lưu lượng tổng quát - GTS (Generic Traffic Shaping)
− GTS cho phép người quản trị điều khiển lưu lượng đầu ra của một giao diện phù
hợp với các yêu cầu giữa tốc độ trạm đầu ra và chỉ tiêu của giao diện mà đã được
thỏa thuận trước. Từ đó loại trừ hiệu ứng nút cổ chai xảy ra trong mạng.
− GTS cho phép thực hiện điều khiển truy nhập băng thông khả dụng, bên cạnh đó nó
cũng có tính năng ngăn cản quá tình làm mất gói.
− GTS cũng có thể sử dụng để giới hạn tốc độ truyền dẫn. Người sử dụng có thể giới
hạn tốc độ truyền dẫn theo một trong các đặc tính sau:
Tốc độ được thiết lập.
Tốc độ của trạm gửi dựa trên mức tắc nghẽn.
− GTS làm “trơn” lưu lượng bằng cách lưu giữ lưu lượng có tốc độ lớn hơn tốc độ
được thiết lập trong một hàng đợi.
a. Cơ chế hoạt động của GTS
62
GTS bao gồm các khối chức năng (xem Hình 3.8 Sơ đồ các khối chức năng của
GTS) như sau:
− Bộ phân lớp lưu lượng: Phân loại các lớp lưu lượng khác nhau để có thể có các
chính sách được áp dụng khác nhau.
− Bộ đo (Metering): Dùng cơ chế token-bucket để phân biệt lưu lượng thỏa mãn và
lưu lượng quá ngưỡng.
− Định dạng: Dùng buffer để trễ những lưu lượng vượt quá tốc độ, và sửa dạng
chúng tới một tốc độ giới hạn đã được cấu hình. GTS được thực hiện như cơ chế
hàng đợi, trong đó có các hàng đợi trễ WFQ riêng biệt được thực hiện cho mỗi lớp
lưu lượng. Mỗi hàng đợi trễ các gói cho tới khi chúng thỏa mãn tốc độ giới hạn, và
cũng sắp xếp chúng theo thuật toán WFQ. Sau đó lưu lượng được thỏa mãn sẽ
được gửi tới giao diện vật lý.
Hình 3. 8 Sơ đồ các khối chức năng của GTS
Đầu tiên các gói được đưa tới các bộ phân loại, sự phân lớp có thể được thực hiện
bằng access-list. Một gói được phân lớp đi vào một lớp định dạng, kích thước của
chúng được so sánh với số lượng thẻ bài có thể trong token bucket của lớp đó. Gói
được chuyển tiếp tới hàng đợi giao diện chính nếu đủ thẻ bài. Nếu không đủ thẻ bài
cho các gói chuyển tiếp, các gói nằm trong bộ đệm trong hệ thống WFQ được gán cho
lớp định dạng này. Sau đó router làm đầy token bucket định kỳ và kiểm tra nếu đủ thẻ
bài cấp cho các gói chuyển tiếp. Các gói được xếp ra khỏi hàng đợi định dạng tùy
thuộc vào thuật toán sắp xếp WFQ.
b. Kết luận
GTS thực thi trong phiên bản router hỗ trợ đa giao thức và làm việc trên nhiều loại
giao diện khác nhau. WFQ được dùng như hàng đợi trễ định dạng, cho phép sự sắp
63
xếp công bằng trong một lớp lưu lượng. GTS có thể thực hiện kết hợp với các cơ chế
hàng đợi khác như: FIFO, PQ, CQ, WFQ. GTS chỉ làm việc ở đầu ra của giao diện.
GTS có thể được dùng để định dạng tất cả lưu lượng đầu ra trên giao diện hoặc nó có
thể chia thành nhiều lớp định dạng.
Kết luận chương
Chương 3 đã đưa ra các phân tích ưu điểm và hạn chế của các chiến lược quản lý
hàng đợi DropTail, RED, WRED.
Ngoài ra còn phương pháp Tốc độ truy cập cam kết – CAR và phương pháp Sửa
dạng lưu lượng – GTS.
Trong chương tiếp theo chúng tôi sử dụng NS2 để mô phỏng, so sánh giải thuật
WRED với DropTail, RED, đưa ra những nhận xét, đánh giá hiệu năng và khẳng định
bằng thực nghiệm mô phỏng về các giải thuật này.
64
Chương 4: ĐÁNH GIÁ VÀ SO SÁNH WRED VỚI
DROP-TAIL VÀ RED
4.1. Giới thiệu bộ mô phỏng mạng NS-2
NS-2 là phần mềm mô phỏng mạng hướng đối tượng, được viết bằng ngôn ngữ
C++ và OTcl. Bằng NS-2, ta có thể tạo ra các nút mạng theo 1 topo xác định, sau đó
gắn các nguồn sinh lưu lượng dữ liệu lên các thực thể giao thức để truyền qua mạng,
theo các giao thức định tuyến xác định, từ đó quan sát cách thức hoạt động của mạng
và phân tích dữ liệu đến và đi qua các node.
Sử dụng NS-2 mang lại 4 lợi ích chính:
− Có khả năng kiểm tra, mô phỏng các giao thức sẵn có theo nhiều kịch bản, topo
mạng khác nhau
− Cho khả năng thử nghiệm, đánh giá các giao thức mạng mới trước khi triển khai
thực hiện và đưa vào sử dụng trong mạng thực.
− Khả năng thực thi mạnh: có những mô hình mạng lớn mà gần như ta không thể
triển khai được trong thực tế nhưng lại dễ dàng xây dựng trên NS-2.
− Có thể mô phỏng nhiều loại mạng khác nhau và rất linh hoạt khi xây dựng kịch
bản.
NS-2 là phần mềm mã nguồn mở có sẵn cho cả nền Windows 32 và Linux. Trong
hệ thống mạng xây dựng cho luận văn, chúng tôi triển khai trên hệ điều hành Ubuntu
10.04 Lucid Lynx, phiên bản của phần mềm là 2.33. NS-2 được cài đặt chuẩn thông
qua tiện ích aptitude, khai báo nguồn trong source.list như sau:
deb lucid main
deb-src lucid main
4.2. Thiết lập tô-pô mạng mô phỏng
Trong các thí nghiệm mô phỏng DropTail, RED, WRED, chúng tôi sử dụng chung
một tô-pô mạng mô phỏng (node, link...) để so sánh ưu nhược điểm giữa các giao thức.
Nhằm mục tiêu kiểm tra hoạt động của hàng đợi nên hệ thống mạng mô phỏng cần
phải có 1 đường truyền là nút cổ chai, có băng thông nhỏ hơn tổng thông lượng truyền
qua nó.
Mạng mô phỏng có cấu trúc như trong hình sau:
65
Hình 4.1 Cấu trúc mô phỏng
Hệ thống gồm 8 nút, trong đó R1, R2, CORE đóng vai trò là router trên đường đi,
S1, S2, S3, S4 là nguồn phát và DEST là đích.
Với mục đích minh họa các chiến lược quản lý hàng đợi để chống tắc nghẽn, hệ
thống được thiết kế như trên với nhiều nguồn phát tới đích, đi qua mạng có điểm nút
cổ chai là đường truyền (link) nối nút CORE và nút R2 với băng thông thấp. Tất cả các
đường truyền đều là song công với thời gian đáp ứng và băng thông như trên hình vẽ.
Mỗi nguồn S1, S2, S3 được gắn với 1 thực thể gửi (nguồn) của giao thức TCP, mỗi
thực thể gửi TCP lại được gắn với một nguồn sinh lưu lượng của ứng dụng FTP, đó là:
ftp(1,1) ; ftp(1,2); ftp(1,3); ftp(2,1).... Nguồn sinh lưu lượng trên nút S4 phát dữ liệu
với tốc độ không đổi - CBR bằng giao thức UDP. Nguồn S3 và S4 nằm trên nút nỗi
với các đường truyền có băng thông lớn nhằm mục đích tạo ra các thời điểm bùng
phát, truyền nhiều dữ liệu làm ngập nút cổ chai.
Các thông số quan trọng khác: kích thước cửa sổ tối đa của các luồng TCP: 50;
kích thước các gói tin: 100 byte.
Router ghi nhãn CORE là nơi sẽ xảy ra tắc nghẽn, ta sẽ triển khai các dịch vụ quản
lý hàng đợi tại đó để so sánh đặc tính của các chiến lược quản lý hàng đợi.
4.3. Kịch bản mô phỏng
Trong các thí nghiệm mô phỏng DropTail, RED, WRED sử dụng chung 1 kịch bản
mô phỏng (tô-pô mạng, các nguồn sinh lưu lượng, các thời điểm bắt đầu, kết thúc
truyền, kích thước hàng đợi...). Mục tiêu của kịch bản là nhằm tạo ra ngữ cảnh thuận
lợi cho việc quan sát trạng thái của hệ thống như: số gói tin trong hàng đợi, phục hồi
tốc độ truyền giữa các nguồn, số gói tin bị mất… khi hệ thống trong trạng thái bình
thường và khi có xảy ra tắc nghẽn.
Với mỗi một giao thức, ta có 3 kịch bản như sau:
− Kịch bản 1: Tăng cường độ tắc nghẽn với các nguồn phát TCP
Giây 0.1, 10 và 20 lần lượt các nguồn S1, S2, S3 bắt đầu truyền 1 luồng ftp
tương ứng.
66
Tại giây 20, lúc S3 bắt đầu truyền thì tổng băng thông của 3 nguồn đã bắt
đầu lớn hơn băng thông của nút cổ chai (3Mbps), nhưng do có hàng đợi nên
vẫn trong phạm vi xử lý được của router CORE.
Đến giây 30, tại nguồn S3 thì 2 luồng ftp(3,2) và ftp(3,3) cùng lúc truyền và
chiếm hết băng thông 5Mbps của link S4-R1. Từ đó tạo nên thời điểm tắc
nghẽn ở nút cổ chai.
Đến giây 40, cả 3 luồng TCP tại S3 đều đột ngột dừng truyền, mô tả burst
dữ liệu đã hết. Từ đó ta sẽ quan sát sự phục hồi về tốc độ truyền của S1 và
S2.
Code:
$ns at 0.1 "$ftp(1,1) start"
$ns at 10 "$ftp(2,1) start"
$ns at 20 "$ftp(3,1) start"
$ns at 30 "$ftp(3,2) start"
$ns at 30 "$ftp(3,3) start"
$ns at 40 "$ftp(3,1) stop"
$ns at 40 "$ftp(3,2) stop"
$ns at 40 "$ftp(3,3) stop"
− Kịch bản 2: Tăng cường độ tắc nghẽn với nguồn phát UDP
Thí nghiệm này có 2 phần: theo dõi, so sánh sự thay đổi khi có sự bùng phát
về lưu lượng UDP trong 2 trường hợp UDP: khi các luồng TCP đang chạy
ổn định và khi các luồng TCP cũng đang tắc nghẽn.
Thí nghiệm thực hiện với thông lượng của luồng UDP là 5Mbps. Trong khi
đó băng thông của nút cổ chai chỉ là 3Mbps. Tình trạng tắc nghẽn sẽ xảy ra
tại link CORE-R2, các gói tin sẽ được cache trong queue của router Core.
Code:
$ns at 0.1 "$ftp(1,1) start"
$ns at 0.1 "$ftp(2,1) start"
$ns at 10 "$ftp(3,1) start"
$ns at 20 "$cbr4 start"
$ns at 30 "$cbr4 stop"
$ns at 40 "$ftp(3,1) stop"
- Kịch bản 3: Luồng ưu tiên bắt đầu chạy khi đang có tắc nghẽn
Kịch bản này chỉ áp dụng với cơ chế WRED với chức năng đặt ưu tiên
truyền dữ liệu theo nguồn phát.
Khi mạng bị tắc nghẽn bởi nguồn CBR cbr4, các luồng dữ liệu TCP với độ
ưu tiên khác nhau lần lượt được phát. Sau một thời gian thì luồng gây tắc
67
nghẽn CBR dừng truyền, từ đó ta sẽ quan sát được độ phục hồi của hệ
thống.
Code:
$ns at 0.1 "$cbr4 start"
$ns at 0.1 "$ftp(2,1) start"
$ns at 10 "$ftp(1,1) start"
$ns at 20 "$ftp(3,1) start"
$ns at 20 "$ftp(3,2) start"
$ns at 20 "$ftp(3,3) start"
$ns at 30 "$cbr4 stop"
$ns at 40 "$ftp(2,1) stop"
4.4. Đánh giá hiệu năng truyền thông đa phương tiện khi sử dụng DropTail
và RED
4.4.1 Kịch bản 1: Tăng cường độ tắc nghẽn với các nguồn phát TCP
a. Kết quả
Ta theo dõi 2 giải thuật DropTail và RED dựa trên 3 tham số: tỉ lệ packet mất, kích
thước hàng đợi và thông lượng sử dụng.
Hình 4. 2 Tỉ lệ packet bị mất của DropTail và RED
68
Hình 4. 3 – Kích thước hàng đợi của DropTail và RED
Hình 4. 4 Thông lượng của DropTail và RED
b. Nhận xét
− Trong vòng 20 giây đầu, chưa có sự quá tải băng thông xảy ra, vì thế trong cả 2
giao thức thì luồng dữ liệu đều đi qua thông suốt, gần như không có packet nào
phải ở trong hàng đợi. Tốc độ truyền của các luồng TCP qua link giữa 2 router
CORE – R2 đạt tốc độ tối đa.
− 20s – 30s: bắt đầu xuất hiện tắc nghẽn, các gói tin được lưu lại ở trong hàng đợi.
Với giao thức DropTail thì đạt ổn định khoảng 38 packet thường xuyên trong
69
queue, dưới ngưỡng tối đa 50 packet của link, và vì thế không có packet nào bị
drop, dù băng thông đã bị đầy. Nhưng giao thức RED lại khác, do có cơ chế drop
sớm các gói tin trong hàng đợi nên đã xuất hiện các packet bị mất, từ đó lưu lượng
truyền dao động, không liên tục đạt ngưỡng tối đa 3Mbps, nhưng bù lại số gói tin
trong hàng đợi giảm hẳn, dao động mạnh trong khoảng từ 0 đến 36 packet.
− 30s - 40s: lưu lượng truyền tăng cường TCP, tại giây 30 đột ngột tăng làm tràn đầy
queue (hiện tượng lock out) ở cả 2 giao thức. Với DropTail, do đặc tính của nó nên
băng thông lúc nào cũng được sử dụng tối đa, tuy nhiên số gói tin trong hàng đợi
dao động hết sức thất thường, từ 0-50 packet, rất thường xuyên đạt ngưỡng 50
packet và drop mọi gói tin đến (hiện tượng lockout). Với RED, do có khả năng
drop sớm nên không bị hiện tượng này, và số gói tin trong hàng đợi vẫn dao động
ổn định quanh ngưỡng từ 5 đến 35 packet.
− 40s – 50s: quá trình bùng phát dữ liệu kết thúc, hàng đợi được giải phóng, không có
gói tin nào bị mất. Trong thí nghiệm này thì giao thức DropTail tỏ ra tốt hơn khi gần
như ngay lập tức tốc độ truyền của S1 và S2 đã duy trì ở mức tối đa. Trong khi đó, dựa
vào biểu đồ băng thông, ta thấy với giao thức RED thì S1 và S2 phải mất 2 giây để từ
từ tăng window size lên để truyền với tốc độ cao nhất. Nguyên nhân của việc này là do
trong quá trình trước đó, RED đã drop nhiều gói tin hơn hẳn so với DropTail, trong đó
vì tính ngẫu nhiên, nhiều gói tin từ nguồn S1, S2 cũng bị drop theo, vì thế trường
window size từ 2 nguồn này đã giảm thấp và cần thời gian để phục hồi.
4.4.2. Thí nghiệm 2: Tăng cường độ tắc nghẽn với nguồn phát UDP
a. Kết quả
Ta theo dõi sự thay đổi của thông lượng - throughput sử dụng trên link CORE – R2
với 2 lần thay đổi mức độ bùng phát UDP như kịch bản đã phát biểu ở trên.
Hình 4. 5 Kích thước hàng đợi của DropTail và RED
70
Hình 4. 6 Thông lượng của Droptail và RED khi CBR có throughput 3Mbps
Hình 4. 6.2. Thông lượng của Droptail và RED khi CBR có throughput 5Mbps
71
Hình 4.7. Tỉ lệ packet bị mất của Droptail và RED
b. Nhận xét:
Giao thức UDP truyền tin không tin cậy, nó không sử dụng trường window size
hay 1 cơ chế nào khác để tự giảm tốc độ truyền mà chỉ đơn thuần là làm ngập băng
thông, khác với giao thức TCP có thể tự giảm tốc độ truyền khi gặp tắc nghẽn. Trong
thí nghiệm 2, ta có thể thấy tại giây 30, sau khi dừng phát UDP, chỉ còn luồng TCP
đang hoạt động, thì có sự khác biệt giữa tốc độ phục hồi của luồng TCP giữa giao thức
DropTail và RED.
Trong trường hợp mức độ bùng phát tại nguồn UDP chưa thật sự lớn (3Mbps, bằng
với băng thông nút cổ chai) thì kết quả thu được cho thấy 2 nguồn TCP khi sử dụng
giao thức RED có thể phục hồi nhanh hơn hẳn so với DropTail. Cụ thể tại các giây 30,
3 luồng TCP ở RED với tổng thông lượng 100Kbps chỉ mất 2s để đạt được thông
lượng tối đa 3Mbps. Trong khi đó với Droptail thì từ 0 Kbps và phải mất đến 5s mới
phục hồi hoàn toàn, lâu hơn 2,5 lần.
Tuy nhiên khi mức độ bùng phát tại nguồn UDP nghiêm trọng (5Mbps) thì kết quả
thu được giữa 2 giao thức là không có sự khác biệt rõ ràng. Với lượng dữ liệu lớn,
ngập tràn thì thuật toán loại bỏ sớm ngẫu nhiên của RED không còn tỏ ra hiệu quả, và
tốc độ phục hồi ở giây 30 như trong thí nghiệm trên không có nhiều sự khác biệt so với
giải thuật DropTail.
4.5. Đánh giá hiệu năng truyền thông đa phương tiện khi sử dụng WRED
Topô mạng và kịch bản được xây dựng chung như đã trình bày trong phần trên.
WRED có nhiều loại khác nhau, tùy theo mục đích cần minh họa cho Policier Type
nào mà ta sẽ có kịch bản tùy chỉnh các tham số tương ứng. Chi tiết sẽ được trình bày
trong mô phỏng cụ thể tiếp theo.
4.5.1. Mô phỏng WRED TSW2CM và TSW3CM
72
a. Cấu hình mô phỏng
Theo mô phỏng, ta sẽ ưu tiên các gói tin từ nguồn S1 và S3, và sẽ hạn chế thông
lượng từ S2 và S4. Ngưỡng CIR của S1, S3 đặt max băng thông của nó và lần lượt là
1Mbps và 3Mbps. Ngưỡng CIR của 2 luồng cần giới hạn S2, S4 sẽ đặt lần lượt là
0.5Mbps và 1Mbps.
Tham số PIR của TSW3CM sẽ được thiết lập gấp đôi so với CIR.
TSW2CM sử dụng 2 hàng đợi ảo, trong đó hàng đợi (0,0) màu green sẽ được ưu
tiên hơn, hàng đợi (0,1) màu đỏ sẽ có xác suất drop cao hơn. Cụ thể trong cấu hình
configQ như sau:
$qCR2 configQ 0 0 20 80 0.02
$qCR2 configQ 0 1 20 40 0.10
TSW3CM sử dụng 3 hàng đợi ảo, trong đó hàng đợi (0,0) màu green sẽ được ưu
tiên nhất, tiếp đó hàng đợi (0,1) màu vàng sẽ có xác suất drop cao hơn., và cuối cùng
hàng đợi (0,2) màu đỏ kém ưu tiên sẽ bị drop nhiều nhất. Cụ thể trong cấu hình
configQ như sau:
$qCR2 configQ 0 0 20 80 0.02
$qCR2 configQ 0 1 20 40 0.10
$qCR2 configQ 0 2 10 20 0.30
b. Phương thức thu thập kết quả
− Lấy dữ liệu từ NS2:
Với mục đích nghiên cứu về các cơ chế quản lý hàng đợi nên kết quả thu thập được
sẽ chủ yếu được lấy từ hàng đợi Core-R2, là nơi có băng thông thấp và xảy ra hiện
tượng nút cổ chai.
Thông số thu thập bao gồm kích cỡ, thông lượng và số gói tin bị mất. Các giá trị
này được tính toán và ghi vào file bằng việc phân tích dữ liệu ở qFile – đối tượng
thuộc dạng monitor-queue. Từ các giá trị thu được ta dùng xgraph để vẽ biểu đồ so
sánh tương ứng.
− Đường trung bình
Do dữ liệu thô có biên độ dao động lớn, để trực quan hơn ta sử dụng giá trị trung
bình. Ta tính giá trị này theo thuật toán:
average = (old_average * (1 – 1/2n )) + (current_queue_size * 1/2n )
Trong đó:
n: là hệ số trọng số và có thể cấu hình được.
average: Cỡ hàng đợi trung bình
old_average: Cỡ hàng đợi trung bình trước đó
current_queue_size: Kích thước hàng đợi hiện tại
File shell script: calculate_average_point.sh lấy đầu vào là file dữ liệu kích cỡ,
thông lượng hoặc số gói tin bị mất, từ đó sinh ra file ghi các giá trị trung bình tương
73
ứng. Ta sử dụng file mới này để vẽ đường trung bình. Chi tiết code của file
calculate_average_point.sh được cung cấp trong phụ lục của luận văn.
− Độ trễ
Để tính độ trễ của các gói tin khi qua các node thì ta phải phân tích tệp vết của file
tcl.
Tệp vết sẽ sử dụng 2 chương trình awk để phân tích :
calculate-queue-delay.awk : tính độ trễ trung bình khi các gói tin đi qua 1 link
(thường bị chậm do lưu trong queue).
calculate-flow-delay.awk: tính độ trễ trung bình của 1 flow từ nguồn đến đích.
Do các tệp vết ghi đầy đủ thông tin về tất cả các gói tin qua mạng nên dung lượng
thường khá lớn. Với 45s mô phỏng của mỗi kịch bản thì tệp vết sẽ có xấp xỉ khoảng 3
triệu record và dung lượng khoảng 120MB. Trong luận văn ứng với mỗi kịch bản mô
phỏng và cơ chế quản lý hàng đợi thì đều có 1 tệp vết tương ứng. Vì vậy, có tất cả
3x3=9 tệp vết được phân tích.
c. Kết quả
Ta xem xét kích thước hàng đợi và băng thông qua Core router khi sử dụng các kĩ
thuật RED, TSW2CM, TSW3CM
- Kịch bản 1: Tăng cường độ tắc nghẽn với nguồn phát TCP
Hình 4. 8. Kích thước hàng đợi RED, WRED-TSW2CM , WRED-TSW3CM
[
74
Hình 4. 9 Kết quả so sánh thông lượng của RED với hai chính sách của WRED
Hình 4. 10 Đường thông lượng trung bình của RED, tsw2cm và tsw3cm
Giao thức
quản lý hàng
đợi
Thời gian trễ
trung bình của
link R1 - Core
(s)
Thời gian trễ
trung bình của
link Core – R2
(s)
Thời gian trễ
trung bình của
link R2 – Dest
(s)
Thời gian trễ
trung bình từ
nguồn S1 đến
đích (s)
RED 0.00512952 0.00950826 0.005112 0.00859365
WRED
tsw2cm 0.0101001 0.0182467 0.005112 0.00976031
WRED
tsw3cm 0.0100821 0.024623 0.00508321 0.0092573
75
Bảng 4.1. Kết quả so sánh thời gian trễ của RED, tsw2cm và ts3cm ở kịch bản 1
- Kịch bản 2: Tăng cường độ tắc nghẽn với nguồn phát UDP
Hình 4. 11 Kích thước hàng đợi của RED, tsw2cm và tsw3cm (Kịch bản 2)
Hình 4. 12 Kết quả so sánh thông lượng của RED với ba chính sách của WRED
76
Hình 4. 13 Kết quả so sánh đường thông lượng trung bình của RED với ba chính sách
của WRED
Giao thức
quản lý hàng
đợi
Thời gian trễ
trung bình của
link R1 - Core
(s)
Thời gian trễ
trung bình của
link Core – R2
(s)
Thời gian trễ
trung bình của
link R2 – Dest
(s)
Thời gian trễ
trung bình từ
nguồn S1 đến
đích (s)
RED 0.00510018 0.0310101 0.00510062 0.00852365
WRED
tsw2cm 0.0101055 0.0154239 0.005112 0.00920217
WRED
tsw3cm 0.0100949 0.0196376 0.00509856 0.00922524
Bảng 4.2. Kết quả so sánh thời gian trễ của RED, tsw2cm và ts3cm ở kịch bản 2
- Kịch bản 3: Luồng ưu tiên bắt đầu chạy khi đang có tắc nghẽn
77
Hình 4. 14 Kích thước hàng đợi của RED, tsw2cm và tsw3cm (Kịch bản 3)
Hình 4. 15 Kết quả so sánh thông lượng của RED với ba chính sách của WRED
78
Hình 4. 16 Kết quả so sánh thông lượng trung bình của RED với ba chính sách của
WRED
Giao thức quản
lý hàng đợi
Thời gian trễ
trung bình của
link R1 - Core
(s)
Thời gian trễ
trung bình của
link Core – R2
(s)
Thời gian trễ
trung bình của
link R2 – Dest
(s)
Thời gian trễ
trung bình từ
nguồn S1 đến
đích (s)
RED 0.00508605 0.0606333 0.00508553 0.00850128
WRED tsw2cm 0.0101001 0.0182467 0.005112 0.00976031
WRED tsw3cm 0.0100821 0.024623 0.00508321 0.0092573
Bảng 4.3. Kết quả so sánh thời gian trễ của RED, tsw2cm và ts3cm ở kịch bản 3
d. Nhận xét
Kịch bản 1: bùng phát TCP, ta có thể thấy 1 sự khác biệt đáng kể giữa 3 chính
sách: RED, TSW2CM và TSW3CM:
− RED tận dụng được nhiều băng thông nhất, tuy nhiên không có cơ chế QoS để
ưu tiên luồng dữ liệu từ S1 và S3. Khi có tắc nghẽn (từ giây 20 đến giây 40) thì
loại bỏ gói tin ngẫu nhiên trong hàng đợi. Sau khi nguồn S3 ngập băng thông
ngừng truyền, thì thông lượng qua router cũng bị giảm đột ngột, dữ liệu từ S1
và S2 phải mất 2 giây để phục hồi từ tốc độ 1Mbps lên 2Mbps
− TSW2CM theo cấu hình luôn ưu tiên S1 vào hàng đợi (0,0) ưu tiên còn S2 vào
hàng đợi (0,1) có xác suất loại bỏ rất cao. Theo cấu hình tại configQ thì các
traffic của S2 đã vượt ngưỡng maxth 20 nên trong kịch bản này bị drop toàn bộ.
Biên độ dao động tốc độ truyền là khá lớn, nhưng đến khi dữ liệu ưu tiên từ
nguồn S3 làm ngập mạng, thì router tận dụng hết throughput để phục vụ S3 và
đường throughput trở nên “mịn”. Đặc biệt, sau khi S3 dừng truyền ở giây 40 thì
ngay lập tức S1 vẫn có tốc độ truyền tối đa (1Mbps) chứ không bị mất 2 giây
79
phục hồi như RED. Điều này chứng tỏ sau khi S1 được ổn định tốc độ tối đa, dù
có xảy ra tắc nghẽn nhưng do được ưu tiên nên không có gói tin nào của S1 bị
mất. Từ đó tốc độ S1 không bị ảnh hưởng.
− TSW3CM được cấu hình với các luồng dữ liệu từ S2, S4 ban đầu sẽ được cho
vào hàng đợi (0,1), nói cách khác traffic được màu vàng, chỉ hạn chế phần nào
tốc độ truyền chứ không cấm chặt chẽ như màu đỏ ở hàng đợi (0,2).Vì vậy khi
tới giây 10, nguồn S2 với tốc độ 1Mbps bắt đầu truyền nhưng chỉ được đi qua
55%, từ giây 10 đến giây 20, băng thông đi qua router core dao động trong
khoảng 1,55 Mbps. Khi bùng phát xảy ra ở giây 30, do nguồn gây bùng phát là
S3 và cũng là 1 nguồn được ưu tiên, vì thế dữ liệu bùng phát nhanh chóng
chiếm đầy hàng đợi mà không bị drop. Từ đó gây nên hiện tược lockout và sau
đó băng thông của router tụt xuống về gần 0. Sau đó quá trình truyền dữ liệu
khi quá tải của CORE router hết sức bất thường với sự tăng giảm đột ngột, liên
tục của tốc độ truyền. Khi nguồn bùng phát S3 dừng truyền dữ liệu thì giống
như TSW2CM, ngay lập tức S1 và S2 vẫn giữ được tốc độ lý tưởng (1,55Mbps)
như trước khi xảy ra tắc nghẽn. Điều này chứng tỏ khả năng phục hồi của hệ
thống là rất tốt.
− Về độ trễ trung bình, giao thức RED cho thời gian trễ là nhỏ nhất. Nguyên nhân
là khi chạy giao thức WRED tsw2cmm tsw3cm, các gói tin cần mất thêm thời
gian tại link R1-CORE để đánh dấu và router core ở link CORE-R2 cũng mất
nhiều thời gian phân loại, ưu tiên gói tin theo hàng đợi hơn.
Kịch bản 2: bùng phát UDP
− RED: kết quả của thí nghiệm không khác với những gì đã làm trong phần trên.
Băng thông được tận dụng nhiều nhưng khi bùng phát xảy ra, dữ liệu truyền lại
chủ yếu là UDP, và sau đó các luồng tcp phải mất đến 6 giây mới phục hồi
được tốc độ 3Mbps như ban đầu.
− TSW2CP: Do cấu hình đã đánh dấu traffic từ S2 và S4 bằng màu đỏ, đặt vào
hàng đợi (0,1) với tham số loại bỏ rất cao. Vì thế ngay từ khi bắt đầu S2 và S4
đã vi phạm ngưỡng truyền CIR và bị drop sớm. Dữ liệu bùng phát không được
truyền qua router CORE, không làm ngập băng thông và các traffic TCP từ S1,
S3 được bảo đảm hoàn toàn, không gặp phải tắc nghẽn.
− TSW3CP: Dữ liệu từ nguồn bùng phát S4 được đánh dấu màu vàng, cho vào
hàng đợi (0,1) với các tham số loại bỏ vừa phải. Tuy nhiên do traffic UDP bùng
phát sinh ra là quá lớn nên trong khoảng thời gian từ 20s đến 30s đã chiếm toàn
bộ băng thông của router CORE. Kết quả là hệ thống cũng mất đến 6s để phục
hồi lại tốc độ truyền TCP như trước khi tắc nghẽn, TSW3CP trong trường hợp
này không đạt hiệu quả nào đáng kể trong việc chống bùng phát.
80
− Về thời gian trễ trung bình, RED vẫn chỉ bằng 1 nửa so với tsw2cm và tsw3cm
trong link R1-CORE vì không phải đánh dấu gói tin. Tuy nhiên tại link CORE-
R2 thì thời gian trễ của RED là 0,0310101 giây, nhiều hơn gấp đôi so với
0.0154239 và 0.0196376 của tsw2cm và tsw3cm. Nguyên nhân vì lưu lượng
CBR phát ra là rất lớn, giao thức RED drop gói tin sớm không hiệu quả bằng
WRED nên trong thời gian hàng đợi bị tràn nhiều hơn hẳn. Vì thế gói tin bị giữ
trong hàng đợi lâu hơn và tổng hợp lại làm thời gian trễ trung bình của gói tin
RED trong kết nối CORE-R2 nhiều lên.
Kịch bản 3: Luồng ưu tiên bắt đầu chạy khi đang có tắc nghẽn
− RED: do traffic từ S2, S4 truyền quá mạnh, và không có cơ chế ưu tiên nên
traffic từ S1, S3 truyền vào trong thời gian tắc nghẽn không gây được hiệu quả
nào. Sau khi hết tắc nghẽn, băng thông được giải phóng thì S1, S3 mới bắt đầu
tăng window size từ 0 lên và mới truyền được dữ liệu
− TSW2CM: traffic từ S2, S4 bị đánh màu Đỏ và nhanh chóng bị drop, vì thế khi
S1 và S3 bắt đầu truyền vào giây 10 và giây 20, chúng không gặp cản trở gì và
nhanh chóng đạt tốc độ tối đa.
− TSW3CM: Dữ liệu từ S2, S4 bị đánh màu Vàng, có khả năng bị drop nhiều
hơn nhưng do lưu lượng bùng phát là quá lớn, nên cho dù traffic ưu tiên từ S1,
S3 cũng không thể truyền qua được. Sau khi nguồn S2, S4 dừng truyền thì
traffic của S1, S3 dần dần chiếm được băng thông nhưng với tốc độ chậm hơn
RED
− Thời gian trễ trung bình của RED và WRED trong link R1-CORE không có gì
thay đổi so với kịch bản 1 và 2. Tuy nhiên tại nút cổ chai CORE-R2 thì có sự
khác biệt rõ rệt. Ta có thể quan sát tương ứng với biểu đồ thông lượng, thì giải
thuật nào có thời gian truyền với full throughput lâu hơn thì sẽ có nhiều packet
lưu trong hàng đợi hơn, theo đó thì độ trễ của gói tin sẽ lớn theo. Theo bảng dữ
liệu thì RED với cơ chế quản lý hàng đợi kém hơn có thời gian trễ lớn nhất ở
nút cổ chai là 0.0606333, so với 0.0182467 và 0.024623 của tsw2cm và
tsw3cm.
4.5 So sánh và kết luận chung
Qua việc lập mô phỏng WRED với phương pháp TSW2CM và TSW3CM, so với
RED, DropTail thì ta thấy có 1 số ưu điểm như sau:
− Ta có thể định nghĩa chính xác ưu tiên cho những luồng dữ liệu nào, và có thể
chặn hoặc giới hạn traffic từ những nguồn không mong muốn. Điều này có ý
nghĩa quyết định trong việc triển khai mô hình QoS bảo đảm chất lượng dịch vụ
truyền tin.
81
− Độ phục hồi của dữ liệu sau khi xảy ra bùng phát được cải thiện đáng kể. Nếu
có cấu hình đúng đắn, thì tốc độ truyền sẽ được bảm đảo, vẫn đạt tối đa ngay cả
khi tắc nghẽn xảy ra.
Việc thiết lập cấu hình ưu tiên một cách hợp lý cho các luồng traffic là tối quan
trọng trong WRED. Thí nghiệm với TSW3CM cho thấy nếu nguồn bùng phát được
giới hạn không đúng mức, thì khi xảy ra tắc nghẽn, giao thức sẽ không có được kết
quả mong muốn, thậm chí còn giảm đáng kể hiệu năng của hệ thống
4.6 Hướng nghiên cứu tiếp theo
Trong phạm vi luận văn này chúng tôi mới nghiên cứu, tìm hiểu, đánh giá và mô
phỏng một số chiến lược quản lý hàng đợi: DropTail, RED và đặc biệt là WRED. Để
có thể chứng minh được tính ưu việt của giao thức WRED cũng như tăng tính chất
thực tiễn của nghiên cứu, chúng ta có thể phát triển luận văn theo hướng triển khai, áp
dụng RED, WRED trên 1 số thiết bị router/switch của Cisco.
Trong thực tế, cơ chế quản lý hàng đợi RED và WRED đã được lập trình như là 1
thành phần hoàn chỉnh của router/switch và được tích hợp vào hệ điều hành IOS trên
một số thiết bị phần cứng của Cisco, Juniper. Các dòng router/switch của Cisco hỗ trợ
RED, WRED là: AS5200, 4000, 4500 4700, 7000 series, 7500 series…
Qua quá trình nghiên cứu, có 3 kịch bản triển khai thực tế của Cisco mà sử dụng cơ
chế quản lý hàng đợi RED, WRED như là 1 thành phần của QoS. Chúng tôi đề xuất
một số giải pháp triển khai trong doanh nghiệp.
Dưới đây là các giải pháp triển khai:
4.6.1 SNA ToS (System Network Architecture Term of Service)
Kiến trúc hệ thống mạng (SNA) ToS là 1 khái niệm liên quan đến sự chuyển mạch
ở tầng datalink (datalink switching plus DSLw+), nó cho phép ánh xạ giữa một kiến
trúc hệ thống mạng CoS (Class of Service) với 1 dịch vụ IP riêng lẻ.
Sơ đồ triển khai của hệ thống như sau:
82
Hình 4.17 Kiến trúc mạng TOS
DLSW+ mở 4 TCP session và ánh xạ mỗi lưu lượng SNA ToS vào 1 session, trong
hình vẽ trên là các dịch vụ SNA interactive, Telnet, SNA batch và FTP. Mỗi session
lại được đánh dấu bằng 1 độ ưu tiên trong queue và có thể áp dụng các cơ chế quản lý
hàng đợi của QoS.
4.6.2 QoS VoIP Solution
Với mục đích tăng cường chất lượng thoại trong truyền tin VoIP, khả năng QoS
cần phải thêm vào mạng dữ liệu truyền thống. Chức năng QoS của hệ điều hành IOS
trên các thiết bị Cisco đáp ứng tốt yêu cầu đó với việc kết hợp luồng dữ liệu voice với
dữ liệu thông thường.
Sơ đồ sau diễn tả một mô hình mạng doanh nghiệp thực tế sử dụng hệ thống VoIP
đã được tối ưu về chi phí thoại.
83
Hình 4.18 Sơ đồ hệ thống VoIP trong doanh nghiệp
3 router dòng 3620, 3640 kết nối giữa 3 chi nhánh của doanh nghiệp, trên đó được
cấu hình QoS với các chiến lược quản lý hàng đợi để tối ưu tốc độ truyền và giảm độ
trễ cho dữ liệu thoại.
4.6.3 QoS trong streaming video
Xây dựng hệ thống streaming video thì khó khăn hơn hệ thống VoIP vì video yêu
cầu được đáp ứng một lượng dải thông lớn hơn rất nhiều. Trong sơ đồ tiếp theo, giao
thức RSVP (Resource Reservation Protocol) được kết nối với hệ thống ATM PVCs để
đảm bảo 1 lượng băng thông ổn định cho việc truyền streaming video.
84
Hình 4.19 Sơ đồ hệ thống Streaming Video trong doanh nghiệp
85
TÀI LIỆU THAM KHẢO
Tài liệu Tiếng Việt
[1]. PGS.TS. Nguyễn Đình Việt, Bài giảng đánh giá hiệu năng mạng máy tính,
2008.
[2]. PGS.TS. Nguyễn Đình Việt, Bài giảng Mạng và Truyền số liệu nâng cao,
2008.
[3]. Luận văn cao học - Nguyễn Đức Xuân Bình, 2009.
[4]. Vũ Duy Lợi, Nguyễn Đình Việt, Ngô Thị Duyên, Lê Thị Hợi (2004), “Đánh
giá hiệu suất chiến lược quản lý hàng đợi RED bằng bộ mô phỏng NS”, Kỷ yếu
Hội thảo Khoa học Quốc gia lần thứ hai về Nghiên cứu, Phát triển và Ứng dụng
Công nghệ Thông tin và Truyền thông (ICT.rda'04), (Hà nội, 24-25/9/2004). NXB
Khoa học và Kỹ thuật, Hà Nội, 5/2005, trang 394-403.
Báo cáo khoa học, PGS,TS Vũ Duy Lợi, TS Nguyễn Đình Việt, Sinh viên Ngô Thị
Duyên, Lê Thị Hợi, 2004.
[5]. Luận văn cao học – Lê Đình Danh, 2007
Tài liệu Tiếng Anh
[6]. The ns Manual (formerly ns Notes and Documentation) - A Collaboration
between researchers at UC Berkeley, LBL, USC/ISI, and Xerox PARCAAuthor,
Reference 1, Publisher, Year.
[7]. A study of TCP-RED congestion control using ns2 - Arijit Ganguly & Pasi
Lassila
[8]. A Network Simulator Differentiated Services Implementation - Peter Pieda &
Jeremy Ethridge & Mandeep Baines & Farhan Shallwani
[9]. Implementing Quality of Service – Cisco
[10]. Integration of Mechanisms for ACK Control and Queueing Management in
Network Traffic Control – Vo Thanh Tu & Nguyen Thuc Hai
[11]. Adaptive RED: An Algorithm for Increasing the Robustness of RED’s Active
Queue Management - Sally Floyd, Ramakrishna Gummadi, and Scott Shenker
[12]. NS Simulator for beginners - Eitan Altman & Tania Jimenez
[13]. Network advanced modeling in NS-2 - Giovanni Perbellini
[14]. B. SUTER ET AL., “Efficient Active Queue Management for Internet
Routers”, Proc. Eng. Conf. at Interop 98, Las Vegas, NV, May 1998.
[15]. http:// www. isi.edu/nsnam/ns/ns-documentation.html
[16]. LEONARD KLEINROCK, “On the Modeling and Analysis of Computer
Networks”, IEEE, vol.81, No.8, August 1993.
[17]. M. BORDEN, V. FIROIU, “Queue Management for Congestion Control”,
IEEE INFOCOM, Mar 2000.
86
[18]. S. FLOYD AND V. JACOBSON, “Random Early Detection Gateways for
Conges-tion Avoidance”, IEEE/ACM Trans. Net., vol. 1, no. 4, Aug. 1993,
pp.397–413.
[19]. SALLY FLOYD, “A Report on Some Recent Developments in TCP
Congestion Control”, IEEE Magazine, April 2001.
[20]. R. G. GALLAGER, A. K. PAREKH, “A Generalized Processor Sharing
Approach to Flow Control in Integrated Services Networks: The Multiple Node
Case”, IEEE Net., vol. 2, no. 2, Apr. 1994, pp. 137–50.
Các file đính kèm theo tài liệu này:
- LUẬN VĂN- ĐÁNH GIÁ HIỆU QUẢ ĐẢM BẢO QoS CHO TRUYỀN THÔNG ĐA PHƯƠNG TIỆN CỦA CHIẾN LƯỢC QUẢN LÝ HÀNG ĐỢI WRED.pdf