Báo cáo bài tập lớn cơ sở truyền số liệu bài 12 mạng hàng đợi
Trang 1VIỆN ĐIỆN TỬ - VIỄN THÔNG
- -BÁO CÁO BÀI TẬP LỚN
CƠ SỞ TRUYỀN SỐ LIỆU
Trang 2M c L c ục Lục ục Lục
Phần 1: Yêu cầu đề bài và kế hoạch thực hiện 4
1.1 Yêu cầu đề bài 4
1.2 Kế hoạch thực hiện 5
Phần 2: Quá trình thực hiện 6
2.1 Xây dựng kịch bản và mô phỏng 6
2.2 Tính toán độ trễ của từng gói tại các nút và toàn đường truyền 11
a Thời gian trễ tại các node 11
b Thời gian trễ toàn tuyến 13
2.3 Thống kê số lượng gói đến đích trễ hơn 0.5s 13
2.4 Thông lượng của từng luồng và tỉ lệ mất gói 14
a Luồng 1 s1-d1 15
b Luồng 2 s2-d1 16
c Luồng 3 s2-d2 17
Phần 3 Kết Luận 19
Trang 3Danh sách hình vẽ
Hình 1 Đề 12: Mạng hàng đợi 4
Hình 2 Mô phỏng mạng hàng đợi UDP 11
Hình 3 Thời gian trễ của các gói tại các node 11
Hình 4 Thời gian trễ của các gói tại các node (trung bình) 12
Hình 5 Thời gian trễ toàn tuyến của 3 luồng 13
Hình 6 Số lượng gói trễ nhiều hơn 0.5s 14
Hình 7 Thông lượng của luồng 1 khi thay đổi kích thước và tốc dộ phát gói 15
Hình 8 Thông lượng luồng 2 khi thay đổi kích thước và tốc độ phát gói 16
Hình 9 Thông lượng luồng 3 khi thay đổi kích thước và tốc độ phát gói 17
Trang 4LỜI MỞ ĐẦU
Trong quá trình học môn cơ sở truyền số liệu chúng em đã được tiếp xúc với các mạng hàng đợi và được phân tích tính toán các thông số của mạng theo lý thuyết Mục đích thực hiện bài tập này nhằm củng cố kiến thức lý thuyết đã được học và tìm hiểu thêm phương pháp đánh giá mạng hàng đợi sử dụng phương pháp mô phỏng Công cụ mô phỏng được sử dụng trong bài tập này là OmNET ++ là một công cụ mô phỏng mạng thông tin được sử dụng rất nhiều hiện nay OmNET sẽ giúp chúng ta thực hiện mô phỏng các hệ thống mạng thông tin dễ dàng, tổng hợp và phân tích kết quả nhằm đánh giá so sánh giữa 2 phương pháp Để thực hiện bài tập này chúng em sử dụng thư viện INET giúp thực hiện truyền các luồng UDP theo phân bố Poisson.
Chúng em xin chân thành cảm ơn TS Trần Thị Ngọc Lan đã giúp đỡ chúng em hoàn thành bài tập này!
Trang 5Phần 1: Yêu cầu đề bài và kế hoạch thực
độ 1000 gói/s.
1 Dựng kịch bản mô phỏng hệ thống thông tin nói trên vói thời gian mô phỏng 100s.
2 Vẽ đồ thị độ trễ của các gói tại từng nút và trễ trên toàn đường truyền.
3 Vẽ đồ thị biểu diễn số lượng gói đến d1 d2 bị trễ nhiều hơn 0.5s.
4 Thay đổi tham số chiều dài gói tin và tốc độ phát sinh gói của từng luồng thông tin trong khi giữ nguyên các luồng khác.Vẽ đồ thị biểu diễn thông lượng,
tỷ lệ mất thông tin của từng luồng Nhận xét kết quả thu được.
Trang 620/10/2012 21/10/2012
5 Tìm hiểu cách
tính và cách mô phỏng trễ
Hồng 10/10/201
2 17/10/2012 17/10/2012
6 Tìm hiểu cách
tính và cách mô phỏng thông lượng và tỷ lệ mất thông tin
Trang 7Phần 2: Quá trình thực hiện
2.1 Xây dựng kịch bản và mô phỏng
Mô phỏng mạng hàng đợi truyền các luồng dữ liệu qua các node (hàng đợi)
để đến được đích Các thông số cụ thể của mạng:
Kích thước gói UDP tại s1 và s2 tương ứng là 1000 bytes và 1300 bytes
S1 truyền đến d1 , s2 truyền 2 luồng đến d1 và d2
Thời gian phát gói của từng luồng theo phân bố poisson và với tốc
độ 1000 gói/s
Kích thước hàng đợi ở các node:
Tốc độ của các kênh truyền giữa các node
a Để mô phỏng mạng hàng đợi truyền các luồng UDP ta sử dụng thư viện Inet với các gói:
ned.DatarateChannel; để mô phỏng định nghĩa các kênh truyền giữa các host và node
inet.nodes.inet.Router;để định nghĩa các node trong mạng
inet.nodes.inet.StandardHost; để định nghĩa nguồn s1,s2 và đích d1,d2
Trang 8}
submodules: s1: StandardHost {
parameters:
@display("i=device/pc3;p=58,76"); }
s2: StandardHost {
parameters:
@display("i=device/pc3;p=59,426"); }
d1: StandardHost {
parameters:
@display("p=766,78;i=device/pc2"); }
d2: StandardHost {
parameters:
@display("p=785,387;i=device/pc2"); }
router1: Router {
parameters:
@display("p=181,149");
} router2: Router {
parameters:
@display("p=186,328");
} router3: Router {
Trang 9@display("p=329,233");
} router4: Router {
parameters:
@display("p=520,228");
} router5: Router {
parameters:
@display("p=655,140");
} router6: Router {
parameters:
@display("p=663,319");
}configurator: IPv4NetworkConfigurator {
parameters: config = xmldoc("config.xml");
@display("p=408,135");
}
connections: s1.pppg++ < > E < > router1.pppg++;
b Gán địa chỉ cho các thành phần của mạng
Địa chỉ của các thành phần mạng được định nghĩa trong file config.xml theo từng kênh truyền
<interface hosts="s1" towards="router1" address="192.168.1.5" netmask="255.255.255.0" mtu="1500"/>
<interface host="router1" towards="s1" address="192.168.1.2" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="s2" towards="router2" address="192.1.1.1" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="router2" towards="s2" address="192.1.1.2" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="router1" towards="router3"
address="172.0.0.11" netmask="255.255.255.0" mtu="1500"/>
Trang 10<interface hosts="router3" towards="router1"
address="172.0.0.12" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="router2" towards="router3"
address="172.0.1.11" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="router3" towards="router2"
address="172.0.1.12" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="router3" towards="router4"
address="172.0.2.11" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="router4" towards="router3"
address="172.0.2.12" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="router4" towards="router5"
address="172.0.3.11" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="router5" towards="router4"
address="172.0.3.12" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="router4" towards="router6"
address="172.0.4.11" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="router6" towards="router4"
address="172.0.4.12" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="d1" towards="router5" address="192.128.1.6" netmask="255.255.255.0" mtu="1500"/>
<interface host="router5" towards="d1" address="192.128.1.2" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="d2" towards="router6" address="192.123.1.1" netmask="255.255.255.0" mtu="1500"/>
<interface hosts="router6" towards="d2" address="192.123.1.2"netmask="255.255.255.0" mtu="1500"/>
Với các địa chỉ của các router và host được định nghĩa như trên ta tiến hành đinh tuyến cho các luồng theo yêu cầu:
Luồng 1: s1-d1: 1000bytes/packet
<route hosts="s1" destination="192.128.1.6"
netmask="/32" gateway="router1" metric="0"
interface="ppp0"/>
<route hosts="router1" destination="192.128.1.6"
netmask="/32" gateway="router3" metric="0"
interface="ppp1"/>
<route hosts="router3" destination="192.128.1.6"
netmask="/32" gateway="router4" metric="0"
interface="ppp2"/>
<route hosts="router4" destination="192.128.1.6"
netmask="/32" gateway="router5" metric="0"
interface="ppp1"/>
Luồng 2: s2-d1: 1300bytes/packet
Trang 11<route hosts="s2" destination="192.128.1.6"
netmask="/32" gateway="router1" metric="0"
interface="ppp0"/>
<route hosts="router2" destination="192.128.1.6"
netmask="/32" gateway="router3" metric="0"
interface="ppp1"/>
<route hosts="router3" destination="192.128.1.6"
netmask="/32" gateway="router4" metric="0"
interface="ppp2"/>
<route hosts="router4" destination="192.128.1.6"netmask="/32" gateway="router5" metric="0"interface="ppp2"/>
Luồng 3: s2-d2: 1300bytes/packet
<route hosts="s2" destination="192.123.1.1"
netmask="/32" gateway="router2" metric="0"
interface="ppp0"/>
<route hosts="router2" destination="192.123.1.1"
netmask="/32" gateway="router3" metric="0"
interface="ppp1"/>
<route hosts="router3" destination="192.123.1.1"
netmask="/32" gateway="router4" metric="0"
interface="ppp2"/><route hosts="router4"
destination="192.123.1.1" netmask="/32"
gateway="router6" metric="0" interface="ppp2"/>
c Khởi tạo các thông số của mạng
Phân bố poisson của các gói
Số lượng gói phát ra tại mỗi luồng phân theo phân bố poisson có nghĩa là thời gian phát giữa các gói phân bố poisson và giá trị trung bình là 0.001s (tương đương 1000 packets/s)
**.s1.udpApp[0].sendInterval = exponential( 001s)
**.s2.udpApp[0].sendInterval = exponential( 001s)
**.s2.udpApp[1].sendInterval = exponential( 001s)
Độ dài hàng đợi tại các node
**.ppp[*].queueType = "DropTailQueue"# in routers
**.ppp[*].queue.frameCapacity = 48 # in routers
Ở đây với mỗi node chúng ta quy định như là một hàng đợi với kích thước hàng đợi là 48
Các luồng UDP
Trang 12Có 3 luồng được phát ra trừ 2 nguồn s1 và s2 để truyền đến đích d1 và d2 Trong file *.ini chúng ta sẽ định nghĩa kích thước gói, địa chỉ đích:
**.s1.udpApp[0].messageLength = 1300 bytes
**.s1.udpApp[0].sendInterval = exponential( 001s)
**.s2.udpApp[0].messageLength = 1000 bytes
**.s2.udpApp[0].sendInterval = exponential( 001s)
#luồGng 3
**.s2.udpApp[1].destAddresses = "192.123.1.1"#d2
**.s2.udpApp[1].destPort = 100
**.s2.udpApp[1].messageLength = 1000 bytes
**.s2.udpApp[1].sendInterval = exponential( 001s)
Kết quả mô phỏng mạng:
Trang 13Hình 2 Mô phỏng mạng hàng đợi UDP
2.2 Tính toán độ trễ của từng gói tại các nút và toàn đường truyền
a Thời gian trễ tại các node
Hình 3 Thời gian trễ của các gói tại các node
Trang 14 Node 4 có 2 hàng đợi ra node 5 và node 6,
o Hàng đợi ra node 5 (d1) trễ nhiều nhất (0.3s) vì có luồng 1
và luồng 2 đều truyền qua đây.
o Hàng đợi ra node 6 (d2) gần như không trễ vì chỉ có luồng
3 đi qua đây.
Node 2do có 2 luồng của s2 ( 2 luồng 1300 bytes) truyền qua đây nên có độ trễ lớn hơn so với node 1 (1000 bytes)
Node 3 có độ trễ 0.1s.
Trang 15b Thời gian trễ toàn tuyến
Hình 5 Thời gian trễ toàn tuyến của 3 luồng
Thời gian trễ của 3 luồng đối với kích thước hàng đợi là 48
Ta thấy thời gian trễ của luồng 3 (s2-d2) là thấp nhất (khoảng 0.2s) và 2 luồng 1 và 2 cỡ khoảng gần 0.5s
Nếu giảm kích thước hàng đợi xuống thì thời gian trễ sẽ giảm xuống (với kích thước 10 thì các luồng trễ khoảng 0.1s)
Nếu tăng kích thước hàng đợi thì thời gian trễ tăng (50 thì trễ đều trên 0.5s)
2.3 Thống kê số lượng gói đến đích trễ hơn 0.5s
Luồng Số lượng gói gửi Số lượng gói trễ hơn 0.5s
Trang 16Hình 6 Số lượng gói trễ nhiều hơn 0.5s
Nhận xét:
Ta thấy 3 luồng đều có số lượng gói gửi đi khoảng 100000packets
Với luồng 1 thì có số lượng gói trễ lớn hơn 0.5s lớn nhất sau đó là luồng 2 và luồng 3 không có gói nào trễ lớn hơn 0.5s
2.4 Thông lượng của từng luồng và tỉ lệ mất gói
Thực hiện mô phỏng và tổng hợp kết quả tỉ lệ mất gói và tính toán thông lượng khi thay đổi kích thước gói và tốc độ phát gói.
Cách thực hiện:
Tại mỗi luồng sẽ tính toán đối với 2 kích thước gói
o Luồng 1: 1300 bytes và 600 bytes
o Luồng 2 và luồng 3: 1000 bytes và 500 bytes
Với mỗi kích thước gói sẽ thực hiện tính toán và mô phỏng với các sendInterval có giá trị trung bình là 0.1s, 0.01s, 0.001s
Trang 17 Tính toán tỉ lệ mất gói dựa vào số lượng gói phát đi và số lượng gói nhận được
Thông lượng sẽ là lượng dữ liệu được truyền qua mạng từ nguồn đến đích
So sánh giá trị trung bình của thông lượng của các lần mô phỏng tính toán với nhau (cùng số lượng gói truyền đi)
a Luồng 1 s1-d1
s1-d1sendInterval s1 sent receivedd1[0] loss throughput(bps) throughput/packet sent
size=1300byte
s
exp(0.1s) 1004 258 74.30% 26832 26.7250996exp(0.001s) 100246 9305 90.72% 967720 9.653452507exp(0.0001s) 998683 9257 99.07% 962728 0.963997585size=600bytes
exp(0.1s) 1004 210 79.08% 10080 10.03984064exp(0.001s) 100246 17146 82.90% 823008 8.209883686exp(0.0001s) 998683 19603 98.04% 940944 0.942184857
Hình 7 Thông lượng của luồng 1 khi thay đổi kích thước và tốc dộ phát gói
Trang 18b Luồng 2 s2-d1
S2-d1sendInterval S2 sent receivedd1[0] loss throughput(bps) throughput/packet sent
size=1000byte
s
exp(0.1s) 969 195 79.88% 15600 16.09907121exp(0.001s) 100225 6113 93.90% 489040 4.879421302exp(0.0001s
) 999182 8733 99.13% 698640 0.699211955size=500bytes
exp(0.1s) 969 116 88.03% 4640 4.788441692exp(0.001s) 100225 5955 94.06% 238200 2.376652532exp(0.0001s
) 999182 11085 98.89% 443400 0.443762998
Hình 8 Thông lượng luồng 2 khi thay đổi kích thước và tốc độ phát gói
Trang 19c Luồng 3 s2-d2
S2-d2sendInterval S2 sent D2[0] recv loss throughput(bps) throughput/packet sent
size=1000byte
s
exp(0.1s) 1057 291 72.47% 23280 22.0246exp(0.001s) 100031 13588 86.42% 1087040 10.86703exp(0.0001s
) 998331 24140 97.58% 1931200 1.934429size=500bytes
exp(0.1s) 1057 186 82.40% 7440 7.038789exp(0.001s) 100031 13045 86.96% 521800 5.216383exp(0.0001s
) 998331 38711 96.12% 1548440 1.551029
Trang 20Hình 9 Thông lượng luồng 3 khi thay đổi kích thước và tốc độ phát gói
Nhận xét:
Trang 21 Thông lượng là lượng dữ liệu thực sự được truyền qua mạng trên một đơn vị thời gian
Khi thay đổi kích thước của mỗi gói trên từng luồng và giữ nguyên giá trị đối với các luồng còn lại ta thấy với tất cả các luồng thì thông lượng đều giảm khi giảm kích thước gói
Khi tăng tốc độ phát gói thì tỉ lệ mất gói tăng dần và thông lượng cũng giảm dần Điều này hoàn toàn phù hợp với lý thuyết
Trang 22Kết Luận
Qua bài tập này chúng em đã hiểu rõ hơn về hoạt động của mạng hàng đợi, phương thức truyền UDP thông qua phương pháp mô phỏng trên OmNET++.Nắm được phương pháp đánh giá thông lượng của các giao thức đó dựa trên công mô phỏng OMNET++ Do thời gian có hạn chế chưa thể mô phỏng được nhiều lần nên kết quả có thể có sai số so với lý thuyết Ngoài ra bài tập có thể mở rộng cho việc tính toán đối với những hệ thống mạng hàng đợi lớn hơn hoặc sử dụng các giao thức khác.Chúng em rất mong nhận được ý kiến đóng góp của cô giáo cùng các bạn để có thể hoàn thiện hơn bài tập lớn này.