Bao cao nhom bài tập lớn mô phỏng rada - Pdf 97

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA ĐIỆN TỬ VIỄN THÔNG

BÁO CÁO BÀI TẬP LỚN
MÔN CƠ SỞ MẠNG THÔNG TIN
ĐỀ BÀI SỐ 2
GIẢNG VIÊN HƯỚNG DẪN: TS PHẠM VĂN TIẾN
SINH VIÊN THỰC HIỆN:
Nguyễn Ngọc Mạnh(TN) MSSV:20071914
Lưu Tiến Đạt MSSV:20070716
Nguyễn Viết Thu MSSV:20072801
HÀ NỘI 11/2010
1
Tóm tắt nội dung báo cáo :
I, Đề bài và phân tích yêu cầu 3
II. Cách thức tiến hành công việc 4
III. Giới thiệu về NS2 4
IV, Nội dung chương trình mô phỏng 8
V, Kết quả mô phỏng 13
VI,Kết luận 24
2
I, Đề bài và phân tích yêu cầu :
1.Đề bài:
Các thông số của mạng :
- Mạng gồm 7 nút
- Các liên kết giữa các nút có trễ truyền lan 10ns, chiều dài hàng đợi là 50.
Cụ thể :
+ Các liên kết giữa các máy tính và các bộ định tuyến thuộc loại
100BaseT có băng thông 100 Mbps
+ Băng thông các liên kết giữa các nút như trên hình vẽ
- Mạng truyền 2 nguồn thông tin :

-Tìm hiểu về UDP,TCP
3.Viết Thu:
-Tìm hiểu về awk
-Viết chương trình tính tỉ lệ mất gói tại node_1, node_2.
III. Giới thiệu về NS2
NS (phiên bản) là phần mềm mô phỏng mạng điều khiển sự kiện riêng rẽ
hướng đối tượng, được phát triển tại UC Berkely, viết bằng ngôn ngữ C++
và OTcl. NS rất hữu ích cho việc mô phỏng mạng diện rộng (WAN) và
mạng local (LAN). Bốn lợi ích lớn nhất của NS-2 phải kể đến đầu tiên là:
• Khả năng kiểm tra tính ổn định của các giao thức mạng đang tồn tại
• Khả năng đánh giá các giao thức mạng mới trước khi đưa vào sử dụng
• Khả năng thực thi những mô hình mạng lớn mà gần như ta không thể
thực thi được trong thực tế
• Khả năng mô phỏng nhiều loại mạng khác nhau
4
Các lệnh cơ bản:
1. Tạo biến mới
Để tạo một biến mới ta dùng lệnh set. Có 3 cách dùng lệnh set như sau:
set a 0 : Tạo một biến a và gán cho a giá trị bằng 0.
set b $a: Tạo biến b và gán cho b giá trị bằng giá trị của biến a
set a [] : Tạo biến a và gán cho a giá trị của một hàm ở trong “[]”.
set a [ new Node]: Tạo biến a và thiết lập a là một node. Node là một
đối tượng ở trong NS2
2. Kiểu biến
Chú ý rằng ở trong Tcl cũng như trong NS2 không có kiểu của biến.
Biến là string hay interger phụ thuộc vào giá trị ta gán cho biến. Ví dụ:
set a [expr 1/20] : a có giá trị bằng 0.
set a [expr 1.0/20.0] : a có giá trị chính xác là 0.05
Điều này rất quan trọng trong quá trình lập trình cho NS2.
3. Lệnh puts

1. Phần mềm mô phỏng Nam
Ở đây chúng ta chỉ nói đến một số lệnh cơ bản thường để sử dụng Nam
trong phần mềm mô phỏng mạng NS2. Chú ý rằng nếu chạy trực tiếp
chương trình Nam thì các lệnh có thể sẽ khác đi.
- Tạo file theo dõi hệ thống phục vụ cho việc mô phỏng:
set nf [open out.nam w]
$ns namtrace-all $nf
- Gọi phần mềm mô phỏng Nam. Lệnh này thường được đặt trong
chương trình con “finish”
exec nam out.nam &
Lệnh này sẽ gọi chương trình Nam và chạy nó dựa vào file theo theo
dõi out.nam
- Xác định vị trí các node trong cửa sổ Nam
$ns duplex-link-op $node1 $node2 orient right
Chú ý rằng ở câu lệnh trên right là dùng để chỉ phương hướng. Hoàn
toàn có thể thay right bằng left, right – down, down, left – down, v.v
- Gán màu cho các gói tin khi chạy chương trình mô phỏng
$ns color 1 red # Gán cho các gói tin thuộc luồng 1 màu đỏ
- Gán màu cho node
$node color red # có thể thay red bằng blue, green, yellow……
- Gán hình dạng cho các node
$node shape box
- Gán màu sắc cho đường link
$ns duplex-link-op $node1 $node2 “green”
2. Theo dõi sự kiện
2a. Các lệnh theo dõi cơ bản
Các lệnh cơ bản dùng để theo dõi các sự kiện trên hệ thống:
- Cân bằng cấp phát bộ đệm cho tất cả các file theo dõi:
$ns flush-trace
- Tạo một đối tượng theo dõi:

trên.
11. Số chuỗi các gói tin của một lớp giao thức mạng. Mặc dù thành phần
UDP trong mạng thực tế không có số các chuỗi nhưng ns vẫn giữ lại các vết
(track) để phân tích kết quả.
12. Trường cuối cùng ghi chỉ số id của gói tin (unique id of packet).
IV, Nội dung chương trình mô phỏng:
Mở đầu một chương trình mô phỏng luôn luôn là một lệnh tạo một đối tượng
Simulator:
set ns [new Simulator]
-gán màu cho 2 luồng dữ liệu:
$ns color 1 Blue
$ns color 2 Red
-Tạo file lưu cửa sổ tắc nghẽn
set cwnd [open cwnd.tr w]
- Tạo file trace lưu tất cả các thông số về mạng đang xét
set tracefile [open TraceAll.tr w]
$ns trace-all $tracefile

Tiếp theo ta thiết lập file ghi lại các thông tin theo dõi phục vụ cho việc chạy
Nam và các lệnh để tạo ra các node:
set nf [open out.nam w]
$ns namtrace-all $nf
-Tạo 2 file chứa thông tin băng thông:
set f1 [open khathong1.tr w]
set f2 [open khathong2.tr w]
- Xác định phương thức định tuyến cho mạng :
$ns rtproto Session
Tạo các nút:
set s1 [$ns node]
set s2 [$ns node]

$ns duplex-link-op $n1 $n4 orient right-down
$ns duplex-link-op $n4 $n3 orient right-up
$ns duplex-link-op $n1 $n3 orient right
-Đặt nhãn cho các nút:
$s1 label " Source 1 "
$s2 label " Source 2"
$d0 label " Destination "
$n1 label " n1"
$n4 label " n2 "
$n3 label " n3"
$n2 label " n4 "
-Đặt kích thước băng thông cho các liên kết:
$ns duplex-link-op $n1 $n2 label "1.5Mb"
$ns duplex-link-op $n2 $n3 label "1.5Mb"
$ns duplex-link-op $n1 $n4 label "1.5Mb"
$ns duplex-link-op $n4 $n3 label "1Mb"
$ns duplex-link-op $n1 $n3 label "20Kb"
-Tạo cost cho các liên kết theo băng thông:
$ns cost $n1 $n2 1
$ns cost $n1 $n3 77
$ns cost $n1 $n4 1
$ns cost $n2 $n3 2
9
$ns cost $n3 $n4 1
- Tạo ra các nguồn lưu lượng :
+ Nguồn lưu lượng tcp và gắn mã luồng 1 cho nguồn lưu lượng này :
set tcp [new Agent/TCP]
$ns attach-agent $s1 $tcp
set sink2 [new Agent/TCPSink/DelAck]
$ns attach-agent $d0 $sink2

set now [$ns now]
#tinh toan bang thong va ghi no vao file
puts $f1 "$now [expr $bw1/$time*8/1000000]"
puts $f2 "$now [expr $bw2/$time*8/1000000]"
#Reset gia tri sink
10
$sink1 set bytes_ 0
$sink2 set bytes_ 0

set cwnd0 [$tcp set cwnd_]
set now [$ns now]
puts $cwnd "$now $cwnd0"
$ns at [expr $now+$time] "record"
}
- Thủ tục finish với chức năng ghi dữ liệu ra các file trace, gọi các lệnh mô
phỏng và vẽ đồ thị :
proc finish {} {
global ns nf cwnd f1 f2 tracefile losspacket_1 losspacket_2
$ns flush-trace
#Close the NAM trace file
close $nf
close $tracefile
close $f1
close $f2
close $cwnd
close $losspacket_1
close $losspacket_2
## Luu thong tin mat goi tai node2 cua luong cbr vao file node_2.dat
exec awk -f node_1.awk TraceAll.tr >node_1.dat
exec awk -f node_2.awk TraceAll.tr >node_2.dat

12
13

b,Khi tốc độ luồng udp1 là 1.5MB
mô phỏng sau 10.1s:

14
c,Khi tốc độ luồng udp1 là 2MB
mô phỏng sau 10.1s:
15
2, Các đồ thị thu được :
a, Khi tốc độ luồng udp1 là 1MB :
- Đồ thị khả thông :
16
Đường màu đỏ biểu diễn khả thông của luồng udp
Đường màu xanh biểu diễn khả thông của luồng tcp
- Đồ thị cửa sổ tắc nghẽn :
17
18
- Đồ thị tỷ lệ mất gói tại node_1 và node_2 :
b, Khi tốc độ luồng udp là 1:
- Đồ thị khả thông :
19
- Đồ thị cửa sổ tắc nghẽn :
- Đồ thị tỷ lệ mất gói tại node_1 và node_2 :
c, Khi tốc độ luồng udp là 2MB
- Đồ thị khả thông :
20
21
- Đồ thị cửa sổ tắc nghẽn :

Với tốc độ luồng UDP 1Mbps thì tỉ lệ mất gói tại nút này là thấp (khoảng
1,2-1,4%) . Do lúc này tốc độ luồng UDP vẫn còn thấp.
Khi tăng tốc độ lên 1.5Mbps thì tỉ lệ mất gói tăng vọt (~20%).
Tiếp tục tăng tốc độ lên 2Mbps thì ban đầu (10.1-25s) thì vẫn xảy ra mất gói
nhưng có xu hướng giảm dần và sau đó (từ 25s trở đi) tỉ lệ mất gói là bằng 0.
-Tỉ lệ mất gói ở nút 2 luôn bằng không.( hay không xảy ra hiện tượng mất
gói). Điều này dễ dàng giải thích do nút 2 chỉ là nút trung gian trong quá
trình truyền gói thông tin từ nguồn đến đích.
VI,Kết luận :
Môn cơ sở mạng thông tin là một môn học chuyên ngành thú vị,và bổ
ích. Nó cung cấp những kiến thức cơ bản nhất cho những bạn nào có định
hướng theo mảng Viễn Thông. Và theo quan điểm học phải đi đôi với hành,
em thấy việc cho bọn em có cơ hội được làm bài tập lớn là một việc rất có ý
nghĩa. Và đề bài thầy giao cũng rất phù hợp với trình độ hiện tại của chúng
em. Sau khi làm xong bài tập này chúng em đã học thêm được rất nhiều
điều. Trước tiên phải kể đến đó là kiến thức về mạng thông tin, các giao thức
truyền và gửi gói tin, Thứ hai đó là biết cách sử dụng công cụ hỗ trợ thiết
kế mạng rất hữu hiệu đó là NS2, và còn biết thêm về hệ điều hành mã nguồn
mở đang được sử dụng ngày càng phổ biến ngày này đó là Linux.
Mặc dù đã cố gắng hết sức nhưng chúng em cũng tự nhận thấy bài
làm của mình còn nhiều thiếu sót, mong thầy xem xét và cho ý kiến để bài
tập này được hoàn thiện hơn.
Lời cuối, nhóm chúng em chúc thầy công tác tốt, sức khỏe và có được
nhiều thành công hơn nữa.
* * *
24
Tài liệu tham khảo
1. Slide bài giảng Cơ sở mạng thông tin của thầy Phạm Văn Tiến
2.Ebook: -Introduction to Network Simulator NS2 của Teerawat
Issariyakul • Ekram Hossain


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status