Hàng đợi RED (Random Early Detection) : Router có chương trình quản lý độ dài hàng đợi và khi kiểm tra thấy sắp xảy ra tắc nghẽn thì thông báo cho trạm nguồn hiệu chỉnh cửa sổ tắc nghẽn. Điểm khác ở đây là RED thông báo cho trạm nguồn về tắc nghẽn bằng cách cho rơi sớm gói tin, như vậy trạm nguồn nhận biết thông qua “time out”, hoặc “duplicate ACK” và trạm nguồn giảm tốc độ phát với hy vọng không phải hủy bỏ nhiều gói tin sau đó. Xác suất rơi gói tin sớm phụ thuộc độ dài trung bình hàng đợi và hai ngưỡng min, max . Vì vậy RED rất hữu dụng trong các mạng TCP tốc độ cao để tránh tắc nghẽn.
Đối tượng FQ là một lớp con của hàng đợi được thể hiện là Fair Queue.
Đối tượng SFQ là một lớp con của hàng đợi được thể hiện là Stochastis Fair Queue. Không có phương thức nào để xác thực với SFQ. Không có biến trạng thái liên kết với đối tượng này.
19 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1865 | Lượt tải: 5
Bạn đang xem nội dung tài liệu Báo cáo Hiệu năng mạng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC DUY TÂN
KHOA CNTT
BÁO CÁO
HIỆU NĂNG MẠNG
GV : TS Võ Thanh Tú
Lớp : K13TMT
Nhóm 2:
Nguyễn Thanh Long
Nguyễn Lê Trọng Phương
Lê Nguyễn Quang Minh
Đà Nẵng, tháng 10 năm 2010
Lab 1 (23/10/2010)
Mạng trên bao gồm 4 node (n0, n1, n2, n3). Giữa node n0 và n2, n1 và n2 có bandwidth (băng thông) = 2 Mbps, delay (thời gian trì hoãn) = 10 ms. Link giữa n2 và n3 có bandwidth = 1.7 Mbps và delay = 20 ms. Các node dùng hàng đợi DropTail, max size (kích thuớc lớn nhất) = 20.
Trường hợp 1: thông số như hình trên
Hình 1 : Ảnh khi chạy file lab2.nam
Sau khi chạy file nam thì qua phần mềm tracegraph ta xem được các biểu đồ biểu diễn thông lượng của các gói tin :
Hình 2 : Thông lượng tổng quát của các gói tin với các thông số như đề bài
Hình 3 : Thông lượng của gói tin bị rớt
Hình 4 : Thông tin tổng quát trường hợp 1
Nhận xét : Nếu ta để băng thông từ node 3 – 1 và từ node 2 – 1 là 2 Mbps, còn băng thông từ node 1 – 0 là 1,7 Mbps thì tại node 1 các gói tin sẽ bị rớt.
Số lượng packet gởi
2704
Số lượng packet bị rớt
24
Số lượng packet bị mất
24
Độ trễ trung bình
0.05381016642
Tỉ lệ truyền thành công : 98.23%
Trường hợp 2 : Thay đổi hàng đợi tại node 2 từ 20 lên 40.
Thay đổi kích thước gói tin TCP từ 210 lên 500
Hình 5 : Chạy file lab2-1.nam
Hình 6 : Thông lượng tổng quát ( lab2-1 ) khi thay đổi thông số trong TH 2.
Hình 7 : Thông lượng của gói tin bị rớt
Hình 8 : Thông tin tổng quát
Nhận xét : Khi ta thay đổi hàng đợi từ 20 lên 40 nhưng cũng thay đổi kích thước packet của TCP từ 210 lên 500 thì dữ liệu truyền đi sẽ bị mất và rớt nhiều hơn. Hàng đợi có kích thước 40 cũng không đủ chứa khi kích thước packet là lớn.
Vì dữ liệu của TCP rớt nhiều nên nó sẽ tạm ngưng ở giây 1.845 , rồi tiếp tục truyền lại ở giây thứ 1.93
Số lượng packet gởi
2518
Số lượng packet bị rớt
60
Số lượng packet bị mất
60
Độ trễ trung bình
0.07578124003
Qua 2 trường hợp ta thấy ở trường hợp 2 thông lượng các gói tin thấp hơn trong trường hợp 1. Độ rớt các gói tin cũng tăng lên. Nên ở trường hợp 2 khi tăng kích thước gói tin thì hiệu quả sẽ giảm.
Tỉ lệ truyền thành công là : 95.24%
Trường hợp 3 : Giống trường hợp 2 nhưng thay đổi băng thông node 0 - 1 từ 1 Mbps lên 2 Mbps.
Hình 9 : Chạy file lab2-2.nam
Hình 10 : Thông lượng tổng quát gói tin (lab2-2)
Hình 11 : Thông lượng các gói tin rớt ( lab2-2)
Hình 12 : Thông tin tổng quát (lab2-2)
Nhận xét : Sau khi thay đổi băng thông từ 1 Mbps lên 2 Mbps thì không có hiện tượng các gói tin bị mất hay bị rớt.
Số lượng packet gởi
3499
Số lượng packet bị rớt
0
Số lượng packet bị mất
0
Độ trễ trung bình
0.04164676622
Như vậy khi ta tăng băng thông tại node 1 thì thông lượng gói tin truyền đi cao hơn (hơn 900 packets/TIL tại thời điểm cao nhất). Các gói tin được truyền đi 100% không bị rớt hay mất. Vậy băng thông thường quyết định đến thông lượng truyền các gói tin cao hay thấp.
Vậy qua 3 trường hợp thì ta thấy trường hợp thứ 3, khi ta tăng băng thông lên thì việc truyền dữ liệu sẽ đạt hiệu quả cao hơn các trường hợp 1 và 2.
Tỉ lệ truyền thành công : 100%
Lab 2:
Các thông số của Lab
Bài lab gồm 6 node mạng, 5 đường link liên kết, độ trễ là 20 ms.
Kích thước hàng đợi của các Node là 5.
Các giao thức sử dụng gồm : TCP, UDP.
Các dịch vụ gồm FTP,CBR.
Thời gian mô phỏng
Node 1 – 6 : bắt đầu 0.00 s kết thúc 8.00 s
Node 2 – 6 : bắt đầu 0.01 s kết thúc 8.00 s
Node 3 – 6 : bắt đầu 0.02 s kết thúc 8.00 s
Node 4 – 6 : bắt đầu 0.03 s kết thúc 8.00 s
Và các thông số được biểu diễn chi tiết ở hình dưới.
Yêu cầu đặt ra :
Xem xét thông lượng, số gói tin rơi, mất và độ trễ trung bình, tỷ lệ gói truyền thành công.
So sánh hiệu năng trong trường hợp liên kết 5 – 6 tăng từ 5 Mbps lên 50 Mbps thì độ trễ là bao nhiêu ?
Tại node 5 ta thay cơ chế quản lý hàng đợi DropTail bằng PQ, SFQ, RED. So sánh số gói tin rơi.
Thay TCP thành TCP Reno, đánh giá các tham số như câu a và so sánh hiệu năng.
Hình ảnh chụp file nam lúc đang chạy.
File nam demo
Xem xét thông lượng, số gói tin rơi, mất và độ trễ trung bình, tỷ lệ gói truyền thành công.
Thông tin tổng quát
Biểu đồ biểu diễn số gói tin rơi
Thông lượng gói tin rơi (số packet/giây)
Thời gian mô phỏng (giây)
Số lượng packet gởi
11479
Số lượng packet bị rớt
50
Số lượng packet bị mất
50
Dựa vào bảng thông tin tổng quát ở trên ta thấy tổng số gói gởi đi là 11479 gói, số gói rơi là 50, số gói mất là 50
à tổng số gói gởi đi thành công sẽ là : 11479 – 50 – 50 = 11379 gói.
è Tỷ lệ gói truyền thành công : 11379/11479 ~ 99,13 %
So sánh hiệu năng trong trường hợp liên kết 5 – 6 tăng từ 5 Mbps lên 50 Mbps thì độ trễ là bao nhiêu ?
Trường hợp 1 (Link 1-0 = 5 Mbps)
Hình ảnh biểu diễn độ trễ của các packet trong trường hợp 1
Trường hợp 2 (Link 1-0 = 50 Mbps)
Hình ảnh biểu diễn độ trễ của các packet trong trường hợp 2
Nhận xét:
Trường hợp 1 độ trễ của các gói tin không đồng đều trong suốt quá trình truyền, độ trễ cao nhất là vào khoảng 0.042s và diễn ra ở các gói tin đầu.
Trường hợp 2 thì ngược lại, độ trễ các gói tin là đồng đều và xuyên suốt từ lúc bắt đầu cho đến khi kết thúc. Và độ trễ cao nhất cũng chỉ dừng lại trong khoảng 0.0402s.
So với trường hợp 2 thì trường hợp 1 độ trễ dao động trong khoảng lớn hơn rất nhiều so với trường hợp 2.
Kết luận : Nếu băng thông từ 5 – 6 tăng thì độ trễ sẽ thấp hơn và ổn định trong suốt quá trình truyền.
Tại node 5 ta thay cơ chế quản lý hàng đợi DropTail bằng FQ, SFQ, RED. So sánh số gói tin rơi.
Hàng đợi RED (Random Early Detection) : Router có chương trình quản lý độ dài hàng đợi và khi kiểm tra thấy sắp xảy ra tắc nghẽn thì thông báo cho trạm nguồn hiệu chỉnh cửa sổ tắc nghẽn. Điểm khác ở đây là RED thông báo cho trạm nguồn về tắc nghẽn bằng cách cho rơi sớm gói tin, như vậy trạm nguồn nhận biết thông qua “time out”, hoặc “duplicate ACK” và trạm nguồn giảm tốc độ phát với hy vọng không phải hủy bỏ nhiều gói tin sau đó. Xác suất rơi gói tin sớm phụ thuộc độ dài trung bình hàng đợi và hai ngưỡng min, max . Vì vậy RED rất hữu dụng trong các mạng TCP tốc độ cao để tránh tắc nghẽn.
Đối tượng FQ là một lớp con của hàng đợi được thể hiện là Fair Queue.
Đối tượng SFQ là một lớp con của hàng đợi được thể hiện là Stochastis Fair Queue. Không có phương thức nào để xác thực với SFQ. Không có biến trạng thái liên kết với đối tượng này.
Từ kết quả mô phỏng, ta thu được kết quả dưới bảng sau:
Node thay đổi
Cơ chế hàng đợi
Số gói tin mất
5
DropTail
50
RED
1
FQ
0
SFQ
0
Biểu đồ so sánh số gói tin mất giữa các cơ chế hàng đợi
è Nhận xét: Khi sử dụng cơ chế hàng đợi là DropTail, số gói tin tắt nghẽn tại hàng đợi là quá cao dẫn đến việc rơi rớt 1 số lượng lớn gói tin là không thể tránh khỏi. Tuy nhiên 2 cơ chế FQ và SFQ đã khắc phục được hoàn toàn số lượng gói tin rớt trên đường truyền. Bên cạnh đó, khi thay thế bằng RED thì số gói tin giảm rõ rệt (giảm đến 98%) điều đó chứng tỏ cơ chế chương trình quản lý độ dài hàng đợi đã làm rất tốt việc kiểm tra khi thấy sắp xảy ra tắc nghẽn thì thông báo cho trạm nguồn hiệu chỉnh cửa sổ tắc nghẽn.
Thay TCP thành TCP Reno, đánh giá các tham số như câu a và so sánh hiệu năng.
TCP_Reno là cải tiến của TCP, ở đây sau “phát lại nhanh” là “hồi phục nhanh”, chứ không phải là “bắt đầu chậm”. Như vậy tránh được “đường ống” khỏi bị rỗng sau khi phát lại nhanh và cần quá trình “bắt đầu chậm” để đổ đầy đường ống. Theo chuẩn TCP_Reno khi độ
lớn cửa sổ phát đặt về 1, giá trị ngưỡng threshold băng W(t)/2, ta thấy trong giai đoạn này cửa sổ phát tăng rất chậm nhưng giảm rất nhanh theo cấp số nhân.
Khi dữ liệu bị mất hay quá thời gian chờ ACK, TCP_Reno đặt lại cửa sổ phát bằng 1, sử dụng cơ chế phát lại nhanh (Fast retransmission) và khôi phục nhanh (Fast Recovery), trạm gửi sẽ đi vào giai đoạn khôi phục nhanh sau khi nhận được một giá trị ngưỡng của số báo nhận ACK lặp bằng 3. Khi số báo nhận lặp đạt đến ngưỡng trạm gửi sẽ phát lại 1 gói dữ liệu, sau đó giảm cửa sổ tắc nghẽn cwnd xuống còn một nữa. Sau đó cứ mỗi lần nhận được 1 ACK, trạm gửi lại gửi đi 1 gói dữ liệu.
Thông tin tổng quát sau khi thay đổi TCP thành TCP Reno
Biểu đồ biểu diễn số gói tin rơi khi thay đổi TCP thành TCP Reno
Dựa vào bảng thông tin tổng quát ở trên ta thấy tổng số gói gởi đi là 13534 gói, số gói rơi là 28, số gói mất là 26
à tổng số gói gởi đi thành công sẽ là : 13534 – 28 -26 = 13480 gói.
è Tỷ lệ gói truyền thành công : 13480/13534 ~ 99,60 %
Bảng so sánh kết quả giữa TCP và TCP Reno
Giao thức
Số gói tin
TCP
TCP Reno
Gửi
11479
13480
Rơi
50
28
Mất
50
26
Tỉ lệ truyền thành công
99,13%
99,60%
Biểu đồ so sánh số gói tin rớt giữa TCP so với TCP Reno
Nhận xét :
Qua kết quả trên, ta thấy TCP Reno điều khiển truyền thông tốt hơn so với TCP. Đặc biệt số packets rơi giảm 36%, số packets bị mất trên mạng giảm đến 42% và tỉ lệ truyền thành công của TCP Reno là 99,53% cao hơn so với tỉ lệ 99,13% của TCP. Đường truyền biểu diễn thông lượng của TCP Reno cũng chứng tỏ tính ổn định của nó trong điều khiển truyền thông. Như vậy rõ ràng TCP Reno đã cải thiện hiệu năng mạng rất tốt so với TCP.
Code chương trình :
#-------------------------------------------------------
# DTU – K13TMT –Nhom 2
# Mon Hieu nang mang
# Nguyễn Thanh Long, Nguyễn Lê Trọng Phương, Lê Nguyễn Quang Minh
# Lab 2
#-------------------------------------------------------
# Tao mot sim moi.
set ns [new Simulator]
# Create a nam trace datafile.
set namfile [open /root/ns-allinone-2.34/Lab3-1.nam w]
$ns namtrace-all $namfile
# Tao file thong ke su dung TraceGraph.
set file [open /root/ns-allinone-2.34/Lab3-1.tr w]
$ns trace-all $file
# Tao cac node.
set node(1) [$ns node]
## node(1) at 510.421844,608.906250
$node(1) set X_ 510.421844
$node(1) set Y_ 608.906250
$node(1) set Z_ 0.0
$node(1) color "black"
set node(2) [$ns node]
## node(2) at 499.765594,590.687500
$node(2) set X_ 499.765594
$node(2) set Y_ 590.687500
$node(2) set Z_ 0.0
$node(2) color "black"
set node(3) [$ns node]
## node(3) at 500.109344,567.656250
$node(3) set X_ 500.109344
$node(3) set Y_ 567.656250
$node(3) set Z_ 0.0
$node(3) color "black"
set node(4) [$ns node]
## node(4) at 513.171875,549.093750
$node(4) set X_ 513.171875
$node(4) set Y_ 549.093750
$node(4) set Z_ 0.0
$node(4) color "black"
set node(5) [$ns node]
## node(5) at 545.140625,581.062500
$node(5) set X_ 545.140625
$node(5) set Y_ 581.062500
$node(5) set Z_ 0.0
$node(5) color "black"
set node(6) [$ns node]
## node(6) at 594.984375,581.062500
$node(6) set X_ 594.984375
$node(6) set Y_ 581.062500
$node(6) set Z_ 0.0
$node(6) color "black"
# Tao lien ket node 1-5
$ns duplex-link $node(1) $node(5) 10.000000Mb 20.000000ms DropTail
$ns duplex-link-op $node(1) $node(5) queuePos 0.5
$ns duplex-link-op $node(1) $node(5) color red
$ns duplex-link-op $node(1) $node(5) orient 321.3deg
# Set Queue Properties for link 1->5
[[$ns link $node(1) $node(5)] queue] set limit_ 5
# Tao lien ket node 2-5
$ns duplex-link $node(2) $node(5) 10.000000Mb 20.000000ms DropTail
$ns duplex-link-op $node(2) $node(5) queuePos 0.5
$ns duplex-link-op $node(2) $node(5) color green
$ns duplex-link-op $node(2) $node(5) orient 348.0deg
# Set Queue Properties for link 2->5
[[$ns link $node(2) $node(5)] queue] set limit_ 5
# Tao lien ket node 3-5
$ns duplex-link $node(3) $node(5) 10.000000Mb 20.000000ms DropTail
$ns duplex-link-op $node(3) $node(5) queuePos 0.5
$ns duplex-link-op $node(3) $node(5) color blue
$ns duplex-link-op $node(3) $node(5) orient 16.6deg
# Set Queue Properties for link 3->5
[[$ns link $node(3) $node(5)] queue] set limit_ 5
# Tao lien ket node 4-5
$ns duplex-link $node(4) $node(5) 100.000000Mb 20.000000ms DropTail
$ns duplex-link-op $node(4) $node(5) queuePos 0.5
$ns duplex-link-op $node(4) $node(5) color yellow
$ns duplex-link-op $node(4) $node(5) orient 45.0deg
# Set Queue Properties for link 4->5
[[$ns link $node(4) $node(5)] queue] set limit_ 5
# Tao lien ket node 5-6
$ns duplex-link $node(5) $node(6) 5.000000Mb 20.000000ms SFQ
$ns duplex-link-op $node(5) $node(6) queuePos 0.5
$ns duplex-link-op $node(5) $node(6) color black
$ns duplex-link-op $node(5) $node(6) orient 0.0deg
# Set Queue Properties for link 5->6
[[$ns link $node(5) $node(6)] queue] set limit_ 5
# Tao agent(2) TCP/Reno cho node 1
set agent(1) [new Agent/TCP/Reno]
$ns attach-agent $node(1) $agent(1)
$ns color 1 "#cccc33330000"
$agent(1) set fid_ 1
$agent(1) set packetSize_ 210
$agent(1) set window_ 20
$agent(1) set windowInit_ 1
$agent(1) set maxcwnd_ 0
# Tao dich vu cho agent 1
set traffic_source(1) [new Application/FTP]
$traffic_source(1) attach-agent $agent(1)
$traffic_source(1) set maxpkts_ 256
# Tao agent(2) TCP/Reno cho node 1
set agent(2) [new Agent/TCP/Reno]
$ns attach-agent $node(2) $agent(2)
$ns color 2 "#6666cccc0000"
$agent(2) set fid_ 2
$agent(2) set packetSize_ 210
$agent(2) set window_ 20
$agent(2) set windowInit_ 1
$agent(2) set maxcwnd_ 0
# Tao dich vu cho agent 2
set traffic_source(2) [new Application/FTP]
$traffic_source(2) attach-agent $agent(2)
$traffic_source(2) set maxpkts_ 256
# Tao agent UDP cho node 3
set agent(3) [new Agent/UDP]
$ns attach-agent $node(3) $agent(3)
$ns color 3 "#00000000ffff"
$agent(3) set fid_ 3
$agent(3) set packetSize_ 210
# Tao dich vu cho agent
set traffic_source(3) [new Application/Traffic/CBR]
$traffic_source(3) attach-agent $agent(3)
$traffic_source(3) set interval_ 0.001950
# Tao agent UDP cho node 4
set agent(4) [new Agent/UDP]
$ns attach-agent $node(4) $agent(4)
$ns color 4 "yellow"
$agent(4) set fid_ 4
$agent(4) set packetSize_ 210
# Tao dich vu cho agent 4
set traffic_source(4) [new Application/Traffic/CBR]
$traffic_source(4) attach-agent $agent(4)
$traffic_source(4) set interval_ 0.001950
# Tao cac agent cho node 6
set agent(5) [new Agent/TCPSink]
$ns attach-agent $node(6) $agent(5)
$agent(5) set packetSize_ 210
set agent(6) [new Agent/TCPSink]
$ns attach-agent $node(6) $agent(6)
$agent(6) set packetSize_ 210
set agent(7) [new Agent/Null]
$ns attach-agent $node(6) $agent(7)
set agent(8) [new Agent/Null]
$ns attach-agent $node(6) $agent(8)
# Ket Noi cac Agents giua cac Node
$ns connect $agent(1) $agent(6)
# Thoi gian bat dau va ket thuc.
$ns at 0.000000 "$traffic_source(1) start"
$ns at 8.000000 "$traffic_source(1) stop"
$ns connect $agent(2) $agent(5)
# Thoi gian bat dau va ket thuc.
$ns at 0.010000 "$traffic_source(2) start"
$ns at 8.000000 "$traffic_source(2) stop"
$ns connect $agent(3) $agent(7)
# Thoi gian bat dau va ket thuc.
$ns at 0.020000 "$traffic_source(3) start"
$ns at 8.000000 "$traffic_source(3) stop"
$ns connect $agent(4) $agent(8)
# Thoi gian bat dau va ket thuc.
$ns at 0.030000 "$traffic_source(4) start"
$ns at 8.000000 "$traffic_source(4) stop"
# Run the simulation
proc finish {} {
global ns namfile
$ns flush-trace
close $namfile
exec nam -r 2000.000000us /root/ns-allinone-2.34/Lab3-1.nam &
exit 0
}
$ns at 60.000000 "finish"
$ns run