Môi trường thực hiện mô phỏng là NS-2 (Network Simutator) phiên bản 2.31 chạy trong hệ điều hành Ubuntu 12.04. NS-2 là một công cụ mã nguồn mở cho phép mô phỏng mạng chuyển mạch gói, hỗ trợ mô phỏng các giao thức như TCP, UDP, các giao thức định tuyến, giao thức lớp MAC trên môi trường mạng vô tuyến và hữu tuyến như Wireless LANs, Mobile Adhoc Networks (MANETs), …
NS-2 là một công cụ mô phỏng hướng đối tượng. Cấu trúc ngôn ngữ bao gồm hai thành phần: ngôn ngữ hướng đối tượng C++ và OTcl được phân biệt theo hai mức điều khiển và xử lí gói. C++ được sử dụng để xử lí gói trong khi OTcl được sử dụng để định nghĩa các thông số cấu hình mô phỏng như topology mạng, kiểu đơn vị lập lịch, thời điểm khởi đầu và kết thúc luồng dữ liệu, kiểu luồng với định danh nút nguồn và nút đích.
Luận văn sử dụng module WiMAX for NS-2 (gọi tắt là module WiMAX) phiên bản 2.6 [21] thực thi chuẩn IEEE 802.16 trong NS-2 phiên bản 2.31 [20]. Module WiMAX được tích hợp vào kiến trúc sẵn có của một nút không dâytrong NS-2.
57
Hình 3.1: Module WiMAX trong NS-2
Trong kiến trúc NS-2, một nút không dây bao gồm các thành phần: Traffic Generating Agent (address classifier, port classifier, agent protocol, agent routing), lớp Link Layer (LL), lớp MAC, hàng đợi và kênh vật lý. Address classifier và port classifier chịu trách nhiệm phân phối các gói tương ứng với các agent. Agent protocol biểu diễn cho lớp Application và agent routing biểu diễn cho lớp IP. Khi một packet đi từ agent protocol đến agent routing, agent routing sẽ đặt địa chỉ của đích vào gói và chuyển tiếp gói tin đến lớp LL. Lớp LL sử dụng giao thức phân giải địa chỉ ARP (Address Resolution Protocol) để xác định địa chỉ MAC của đích. Lớp LL đặt địa chỉ MAC của đích vào gói tin và chuyển đến lớp MAC. Lớp MAC sẽ thực hiện các chức năng tương ứng và xác định thời điểm gửi gói tin trên kênh truyền. Sau đó, chuyển gói đến lớp vật lý. Lớp vật lý chịu trách nhiệm gửi gói tin trên kênh truyền không dâyđến nơi nhận.
Module WiMAX thực hiện mô phỏng lớp con phần chung MAC chuẩn IEEE 802.16 trong NS-2, gồm các thành phần:
- Cơ chế cấp phát băng thông GPC (Grant Per Connection).
- UCD, DCD, DL-MAP, UL-MAP, RNG-REQ, RNG-RSP, BW-REQ. - Tạo và truyền MAC PDU (tại BS và MS), phân mảnh và đóng gói tin.
- Cơ chế lập lịch (trên kênh uplink, downlink) năm kiểu dịch vụ (UGS, rtPS, nrtPS, ertPS, BE)
- Thuật toán lập lịch được cài đặt sử dụng mặc định trong module WiMAX này là thuật toán lập lịch quay vòng Round Robin [09].
58
3.1.2 Kịch bản mô phỏng
Mục tiêu bài toán muốn hướng tới là ưu tiên luồng các gói tin FTP (ưu tiên dịch vụ truyền file) được truyền băng thông lớn với độ trễ thấp. Do đó, nội dung luận văn tiến hành thử nghiệm kết quả khi chạyvới luồng các gói tin FTP và luồng các gói tin CBR để so sánh thông lượng và độ trễ của hai luồng các gói tin trên khi cùng được truyền.Lần lượt thay đổi thông số về kích thước gói tin để đánh giá kết quả khi sử dụng thuật toán lập lịch Round Robin với các luồng gói tin FTP và CBR được truyền trong queue BE.
Mô hình mạng đưa ra gồm 6 node,
- Sink node: nhận và xử lý gói tin (tạo và gửi packet dạng ACK cho sender và giải phóng packet nhận được).
- Base Station: trạm gốc, sink node và base station kết nối với nhau thông qua một đường internet có dây.
- Mobile node = 4, các MN này sẽ chạy các dịch vụ tương ứng được gán, trong đó có các node 1, 2, 3 chạy dịch vụ FTP, node 4 chạy dịch vụ CBR.
Toàn bộ quá trình mô phỏng được chia thành hai trường hợp như sau: - Trường hợp 1: Tất cả các luồng có cùng kích thước gói tin = 1000 byte.
- Trường hợp 2: Các luồng 1, 2, và 3 có các gói tin FTP (giao thức TCP) có kích thước gói tin lần lượt là 100 byte, 500 byte, 750 byte; luồng 4 có các gói tin CBR (giao thức UDP) có kích thước gói tin giữ nguyên là 1000 byte.
Mô hình tổng quan của mô phỏng như sau:
Kết quả mô phỏng tập trung chính vào các thông s gói tin để bảo đảm yêu cầu QoS
- Thông lượng (Throughput): đư nhận trong một chu k
- Độ trễ (Delay): độ tr Kết quả đánh giá:
Trường hợp 1: Tất cả các lu
Bảng kết quả (lấy trung bình sau 10 l
Luồng FTP1 Luồng FTP2 Luồng FTP3 Luồng CBR Hình 3. 0.000000 20.000000 40.000000 60.000000 80.000000 100.000000 120.000000 140.000000 160.000000 180.000000 Luồng FTP 1 T h ô n g lư ợ n g ( kb p s)
Thông lượng trung bình của các gói tin
59
p trung chính vào các thông số về thông lượng, và đ u QoS
ng (Throughput): được định nghĩa như là số lượng d t chu kỳ thời gian xác định.
trễ gói tin trong quá trình gửi nhận.
các luồng có cùng kích thước gói tin = 1000 y trung bình sau 10 lần tính): Kích thước gói tin (byte) Độ trễ (s) Thông lư (kbps) ồng FTP1 1000 0.001207 69.895573 ồng FTP2 1000 0.001233 79.219402 ồng FTP3 1000 0.001272 92.111199 ồng CBR 1000 0.001153 160.466773
Hình 3.3: Thông lượng trung bình của gói tin
Luồng FTP 1 Luồng FTP 2 Luồng FTP 3 Luồng CBR
Luồng
Thông lượng trung bình của các gói tin
ng, và độ trễ của
ng dữ liệu được thu
Thông lượng (kbps) 69.895573 79.219402 92.111199 160.466773 Luồng CBR
Hình 3. Nhận xét:
- Khi để kích thước c
mức thông lượng trung bình cao nh các luồng có gói tin FTP là th
Trường hợp 2: Luồng 1, 2 và 3 có kích thư 750 byte; Luồng 4 có kích thư
Bảng kết quả (lấy trung bình sau 10 l
Luồng FTP 1 Luồng FTP 2 Luồng FTP 3 Luồng CBR 0.001080 0.001100 0.001120 0.001140 0.001160 0.001180 0.001200 0.001220 0.001240 0.001260 0.001280 Luồng FTP 1 Đ ộ t rễ ( s)
Độ trễ trung bình của các gói tin
60
Hình 3.4: Độ trễ trung bình của các gói tin
c của các gói tin là như nhau, luồng có gói tin CBR đ ng trung bình cao nhất trong khi đó thông lượng trung bình c ng có gói tin FTP là thấp nhất, chỉ bằng khoảng 1/3 so vớ
ng 1, 2 và 3 có kích thước gói tin lần lượt là 100 byte, 500 byte, ng 4 có kích thước gói tin là 1000 byte.
y trung bình sau 10 lần tính): Kích thước gói tin (byte) Độ trễ (s) Thông lượng (kbps) ồng FTP 1 100 0.001219 58.677017 ồng FTP 2 500 0.001194 59.152980 ồng FTP 3 750 0.001208 60.987831 ồng CBR 1000 0.001150 159.306364
Luồng FTP 1 Luồng FTP 2 Luồng FTP 3 Luồng CBR
Luồng
Độ trễ trung bình của các gói tin
ng có gói tin CBR đạt được ng trung bình của ới CBR. t là 100 byte, 500 byte, Thông 58.677017 59.152980 60.987831 159.306364 Luồng CBR
Hình 3.5: Thông lượ
Hình 3.6: Độ trễ trung bình c Nhận xét:
- Khi kích thước của các gói tin là khác nhau, lu được mức thông lư
bình của các luồng có gói tin FTP là th - Đặc biệt khi kích thư
tăng cao và khá đều nhau, các gói tin CBR duy trì 0.000000 20.000000 40.000000 60.000000 80.000000 100.000000 120.000000 140.000000 160.000000 Luồng FTP 1 Th ô n g lư ợ n g (k b p s)
Thông lượng trung bình khi kích thước
0.001100 0.001120 0.001140 0.001160 0.001180 0.001200 0.001220 Luồng FTP 1 Đ ộ t rễ ( s)
Độ trễ trung bình khi kích thước gói tin
61
ợng trung bình của các gói tin khi kích thước thay đ
trung bình của các gói tin khi kích thước gói tin thay đ
a các gói tin là khác nhau, luồng có gói tin CBR v c thông lượng trung bình cao nhất trong khi đó thông lư
ng có gói tin FTP là thấp hơn và có sự giảm nhẹ
t khi kích thước của các gói tin FTP giảm đi, độ trễ của các gói tin FTP u nhau, các gói tin CBR duy trì độ trễ gói tin
Luồng FTP 1 Luồng FTP 2 Luồng FTP 3 Luồng CBR
Luồng
Thông lượng trung bình khi kích thước gói tin thay đổi
Luồng FTP 1 Luồng FTP 2 Luồng FTP 3 Luồng CBR
Luồng
Độ trễ trung bình khi kích thước gói tin thay đổi
c thay đổi
c gói tin thay đổi
ng có gói tin CBR vẫn đạt t trong khi đó thông lượng trung
ẹ.
a các gói tin FTP gói tin ở mức thấp.
Thông lượng trung bình khi kích thước
62
Nhận xét tổng quát: các gói tin trong luồng CBR được truyền với thông lượng lớn hơn, trong khi các gói tin FTP dù có gán kích thước gói tin bằng hay lớn hơn hẳn cũng có thông lượng thấp hơn và có độ trễ cao hơn so với các gói tin CBR. Do các gói tin CBR được truyền theo giao thức UDP (truyền không đảm bảo, không yêu cầu xác thực gói tin hai chiều gửi – nhận), còn các gói tin FTP được truyền theo giao thức TCP (truyền đảm bảo, yêu cầu xác thực hai chiều).
3.2 THUẬT TOÁN “LẬP LỊCH HỖN HỢP”
Trong chuẩn IEEE 802.16, quy định có 5 queue tương ứng với 5 dịch vụ khác nhau với thứ tự ưu tiên UGS > rtPS > ertPS > nrtPS > BE. Tuy nhiên, module WiMAX được sử dụng trong mô phỏng chỉ hỗ trợ lập lịch đối với dịch vụ UGS và BE. Thuật toán lập lịch mặc định được sử dụng là thuật toán Round Robin. Thực chất, thuật toán Round Robin là kỹ thuật xử lý hàng đợi gói dữ liệu theo kiểu quay vòng cơ bản. Các queue dịch vụ lần lượt được truyền gói tin theo thứ tự ưu tiên, khi đến lượt truyền của queue nào thì gói tin trong queue đó sẽ được truyền đi. Trong mỗi queue, thuật toán RR được áp dụng cho tất cả các gói tin tiếp theo của mỗi luồng dịch vụ trong queue đó. Tuy nhiên, các gói tin của queue khác nhau sẽ được truyền đi với băng thông khác nhau vì độ ưu tiên của các queue là không giống nhau.Trong quá trình phân bổ băng thông, do các UL burst luôn thay đổi, tất cả các yêu cầu về băng thông sẽ được tính theo số byte cần để mang PDU của MAC bao gồm cả PHY overhead. Thông báo về băng thông yêu cầu có thể được truyềntrong quá trình phân bổ đường uplink, trừ khoảng thời gian khởi tạo. Dịch vụ UGS được thiết kế để hỗ trợ các luồng dịch vụ uplink theo thời gian thực với các gói tin có kích thước cố định, do đó băng thông được gán là dựa vào số kết nối. Với các dịch vụ còn lại, kích thước gói tin là thay đổi, do đó phương pháp gán theo packet được sử dụng để tính băng thông riêng cho từng gói tin. Queue BE có mức độ ưu tiên thấp nhất so với các queue khác.Trong khi đó, lưu lượng queue BE bị ảnh hưởng khi băng thông bị thiếu, sự xung đột các yêu cầu có thể gây ra tranh chấp và làm gia tăng sự chậm trễ trong quá trình truyền gói tin đối với SS. Ngoài ra, mỗi gói tin khi truyền trên mạng sẽ có một thời gian sống , khi thời gian sống = 0, gói tin đó sẽ bị hủy dẫn đến mất mát thông tin trên đường truyền. Bài toán đặt ra là làm thế nào để tránh bị mất gói tin trên đường truyền do quá hạn . Bên cạnh đó, theo kết quả mô phỏng phía trên, các gói tin CBR được truyền với thông lượng cao hơn và độ trễ nhỏ hơn gói tin FTP. Trong khi, hệ thống muốn đạt mục đích ưu tiên dịch vụ truyền file (tăng khả năng trao đổi tập tin), dịch vụ truyền file sẽ được truyền với băng thông cao hơn các dịch vụ khác.
Từ vấn đề nêu trên, tác giả đề xuất phương án sử dụng thuật toán “lập lịch hỗn hợp”, sử dụng hai thuật toán lập lịch là thuật toán EDF (Early Deadline First) và thuật toán WRR (Weighted Round Robin - lập lịch vòng tròn có trọng số). Với các queue UGS, rtPS, nrtPS, ertPS, thuật toán EDF được sử dụng để chọn gói tin gần tới hạn
63
nhấtđể ưu tiên truyền đi trước trong các queue, nhằm mục đích hạn chế việc bị mất gói tin (do quá hạn) trên đường truyền. Với queue BE, thuật toán WRR được dùng để chọn gói tin FTP được ưu tiên truyền trước các gói tin khác trong cùng queue. Phương án lập lịch dùng để lập lịch cho các gói tin theo chiều uplink, áp dụng cơ chế ưu tiên nghiêm ngặt đối với việc phân bổ băng thông sử dụng tới từng packet trong mỗi queue cụ thể.
Một số thông số:
- Flow_Number: tổng số các luồng chứa gói tin cần truyền - Flow_NumberUGS: số luồng của queue lớp dịch vụ UGS - Flow_NumberrtPS: số luồng của queue lớp dịch vụ rtPS - Flow_NumberertPS: số luồng của queue lớp dịch vụ ertPS - Flow_NumbernrtPS: số luồng của queue lớp dịch vụ nrtPS - Flow_NumberBE: số luồng của queue lớp dịch vụ BE - Tk: biến lưu trữ thời gian hết hạn của gói tin k
- Capa: khả năng của kênh uplink (TDD frame vẫn còn slot trống dành để chứa tin truyền)
- BWi: băng thông được phân bổ cho kết nối i.
- Check (i): thủ tục kiểm tra xem kết nối i thuộc lớp dịch vụ nào - Deadline (i): thủ tục lấy thời gian hết hạn của kết nối i
- Enqueue (k): thêm gói tin k vào hàng đợi
- Pdu (i): kiểm tra luồng i là luồng của dịch vụ nào - MinT: hàm lấy gói tin có thời hạn gần nhất
- Size (minT): thủ tục lấy kích thước của gói tin có thời hạn gần nhất - Weight (i, ftp): thủ tục để tính trọng số cho các gói tin ftp
- Weight (i, other): thủ tục để tính trọng số cho các gói tin khác (ngoài ftp) - CreatIE (): thủ tục tạo một IE (information element) cho từng SS (chứa các
thông tin của gói tin cần truyền như nguồn, đích, độ dài, thời gian sống, thứ tự được truyền,…)
Giả mã:
//Thêm gói tin đến vào hàng đợi If packet k of connection i is arrival
64
// Lấy thời hạn của gói tin k nằm trong một trong bốn queue UGS, rtPS, nrtPS, ertPS
If check (i) == (Flow_NumberUGS or Flow_Number rtPS or Flow_Number nrtPS or Flow_NumberertPS)
Ti = deadline(i) Enqueue (k) Else
// Tính trọng số weight tương ứng để gán cho luồng i của queue BE If pdu(i) == ftp
W(i) = Weight(i, ftp) Enqueue (k)
Else
W(i) = Weight(i, other) enqueue (k)
End if End if
//Nếu không có gói tin nào cần truyền, chương trình quay lại bước 1 If Flow_Number = = null
return
//Áp dụng thuật toán EDF với các luồng trong các queue: UGS, rtPS, nrtPS, ertPS While (Capa > 0 and (queue (Flow_NumberUGS ) or queue (Flow_NumberrtPS ) or queue (Flow_NumbernrtPS ) or queue (Flow_NumberertPS )) != NULL)
For i in 1…Flow_NumberUGS, Flow_NumberrtPS, Flow_NumbernrtPS, Flow_NumberertPS
BWi = BWi + size (minT)
CreatIE (i) //Tạo IE (Information Element) của từng kết nối và gán vào bản tin UL-MAP
Capa = Capa – size (minT) End for
End while
65
While (Capa > 0 and queue (Flow_NumberBE ) != NULL) // The uplink channel capacity and queue BE is not empty
For i in 1…Flow_NumberBE BWi = BWi + Wi * Capa
CreatIE (i) //Tạo IE (Information Element) của từng kết nối và gán vào bản tin UL-MAP
Capa = Capa – Wi *Capa End for
End while
Giải thích giả mã:
- Bước 1: Khi một gói tin k của luồng i cần được truyền, chương trình sẽ xác định xem luồng i thuộc queue nào. Nếu luồng i thuộc một trong bốn queue UGS, rtPS, ertPS, nrtPS thì thời gian hết hạn của gói tin sẽ được lấy thông qua thủ tục deadline () và gán vào một biến T. Nếu gói tin thuộc queue BE, nó sẽ được kiểm tra tiếp để xác định trọng số được gán. Nếu đó là gói tin FTP thì trọng số của luồng i thông qua thủ tục weight (i, ftp), ngược lại, thủ tục weight (i, other) được gọi để gán trọng số cho gói tin. Sau khi kiểm tra xong, gói tin k được thêm vào đúng queue của nó qua thủ tục enqueue ().
- Bước 2: Duyệt kiểm tra tất cả các luồng, nếu các luồng đều rỗng tức là không có gói tin nào cần được truyền đi thì chương trình duyệt lại từ bước 1.
- Bước 3: Sử dụng thuật toán EDF, với các queue UGS, rtPS, ertPS, nrtPS, nếu ul-subframe vẫn có slot trống có thể chứa thêm packet, và ít nhất một trong các queue trên vẫn còn packet cần truyền, gói tin sẽ được truyền đi với băng thông bằng băng thông được phân chia theo từng SS, và khả năng sẵn sàng của kênh uplink bị giảm xuống.
Hình 3.7: Quá trình xử lý gói tin theo thuật toán EDF trong các queue UGS, rtPS, nrtPS, ertPS
66
- Bước 4: Sử dụng thuật toán WRR, duyệt queue BE, nếu ul-subframe vẫn còn slot trống và queue BE vẫn còn gói tin thì tiến hành tính băng thông bằng tích