Tải bản đầy đủ (.doc) (42 trang)

Đề tài Đo hiệu năng mạng Ethernet

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (772.55 KB, 42 trang )

Báo cáo cơ sở mạng
Luận văn
Đề tài: Đo hiệu năng mạng Ethernet
1
Báo cáo cơ sở mạng
Mục Lục
Luận văn 1
Đề tài: Đo hiệu năng mạng Ethernet 1
Mục Lục 2
I.Yêu cầu bài tập lớn: 2
1 .Mục đích bài tập lớn : 4
2. Giới thiệu đề tài : 4
II . Phân công công việc 10
1. Phân công chung : cả nhóm tìm hiểu và làm quen với công cụ mô phỏng NS2 qua
các tài liệu cô giáo đã cho 10
2. Phân công cụ thể thực hiện đề tài : 10
III. Thực hiện đề tài 10
1.Tạo ra mô hình mô phỏng mạng máy tính qua các nút 10
2. Thiết lập các máy nguồn máy đích và tạo liên kết gửi nhận 12
3. Tạo tiến trình gửi dữ liệu là tiến trình Poisson và liên kết vào máy nguồn 12
4. Tạo ra các gói gửi và tính toán băng thông, tốc độ mất gói dựa trên lưu lượng mà
máy đích nhận được (Mbit/s) và số gói bị mất 14
5. Vẽ đồ thị băng thông và tốc độ mất gói từ các file số liệu ở trên 15
IV. Kết quả mô phỏng 16
2.Kết quả với trường hợp trễ là 1s 28
3.Khi độ dài gói thay đổi 33
V. Kết luận 39
1.Hiệu năng mạng Ethernet: 39
2.Công cụ lập trình: 41
VI. Tài liệu tham khảo 42
* 42


* 42
I.Yêu cầu bài tập lớn:
2
Báo cáo cơ sở mạng
Mạng Ethernet với tốc độ 10Mbit/s.sử dụng cấu hình kênh truyền bus
(coaxial cable).Trễ truyền dẫn 10ms.Biết rằng card mạng của máy tính đều
liên tục có các gói được gửi đến với tốc độ như nhau λ =200 gói/s ,tuân theo
phân bố Poisson.Độ dài của gói Ethernet tuân theo phân bố Poisson với
chiều dài trung bình là 1500bytes (hình vẽ).
Chạy mô phỏng dùng NS-2 trong khoảng thời gian 30s.Đánh giá và vẽ đồ thị
tổng dung lượng băng thông chiếm trên bus khi truyền gói b(t) và tốc độ mất
gói e(t) (tính bằng gói/s) khi số máy tính nối mạng là:
2.1. 3 máy
2.2. 10 máy
2.3. Lặp lại mô phỏng trên trong trường hợp trễ truyền dẫn là 1s.Có nhận
xét gì so với trường hợp đầu tiên ?
Giả thiết mỗi máy x sẽ phát đến 1 máy y bất kì do sinh viên tự chọn
3
Báo cáo cơ sở mạng
2.4. Giả thiết độ dài gói Ethernet là cố định L= 1500bytes.Lặp lại câu 2.2,so
sánh kết quả với trường hợp gói có độ dài thay đổi.
1 .Mục đích bài tập lớn :
Trong môn cơ sở mạng thông tin sinh viên đã làm quen với phương
pháp đánh giá hoạt động của một hệ thống thông tin bằng phương pháp toán
học, đặc biệt là mô hình liên quan đến hàng đợi đơn, mạng hàng đợi, cơ sở cho
các cơ chế điều khiển luồng và định tuyến trong mạng. Trong phần bài tập lớn,
sinh viên sẽ được làm quen với một phương pháp khác để đánh giá hiệu năng,
đó là phương pháp mô phỏng.Bài tập lớn này có một số mục đích sau:
* Kiểm nghiệm các kết quả phân tích, đánh giá hệ thống khi dùng
phương pháp phân tích toán học và phương pháp mô phỏng.

* Làm quen với công cụ mô phỏng NS-2 – công cụ mô phỏng mạng
thông dụng nhất hiện nay.
* Làm quen với hệ điều hành Linux và lập trình trong môi trường
GNU.
* Phát triển kỹ năng làm việc theo nhóm.
* Phát triển kỹ năng làm việc độc lập.
2. Giới thiệu đề tài :
2.1. Sơ lược về mạng Ethernet :
Ethernet là mạng cục bộ do các công ty Xerox, Intel và Digital
equipment xây dựng và phát triển. Ethernet là mạng thông dụng nhất đối với
các mạng nhỏ hiện nay. Ethernet LAN được xây dựng theo chuẩn 7 lớp trong
cấu trúc mạng của ISO, mạng truyền số liệu Ethernet cho phép đưa vào mạng
4
Báo cáo cơ sở mạng
các loại máy tính khác nhau kể cả máy tính mini. Ethernet có các đặc tính kỹ
thuật chủ yếu sau đây:
• Có cấu trúc dạng tuyến phân đoạn, đường truyền dùng cáp đồng trục,
tín hiệu truyền trên mạng được mã hoá theo kiểu đồng bộ (Manchester), tốc độ
truyền dữ liệu là 10 Mb/s.
• Chiều dài tối đa của một đoạn cáp tuyến là 500m, các đoạn tuyến này
có thể được kết nối lại bằng cách dùng các bộ chuyển tiếp và khoảng cách lớn
nhất cho phép giữa 2 nút là 2,8 km.
• Sử dụng tín hiệu bǎng tần cơ bản, truy xuất tuyến (bus access) hoặc
tuyến token (token bus), giao thức là CSMA/CD, dữ liệu chuyển đi trong các
gói. Gói (packet) thông tin dùng trong mạng có độ dài từ 64 đến 1518 byte.
2.1.1 Hệ thống Ethernet
Sơ lược về hệ thống Ethernet .
- Ethernet là 1 công nghệ mạng cục bộ (LAN) nhằm chuyển thông tin giữa các
máy tính với tốc độ từ 10 đến 100 triệu bít một giây (Mbps) . Hiện thời công
nghệ Ethernet thường được sử dụng nhất là công nghệ sử dụng cáp đôi xoắn

10-Mbps.
- Công nghệ truyền thông 10-Mbps sử dụng hệ thống cáp đồng trục cỡ lớn ,
hoặc cáp đôi, cáp sợi quang . Tốc độ chuẩn cho hệ thống Ethernet hiện nay là
100-Mbps .
2.1.2.Các thành phần của Ethernet
Hệ thống Ethernet bao gồm 3 thành phần cơ bản :
• Hệ thống trung gian truyền tín hiệu Ethernet giữa các máy tính.
5
Báo cáo cơ sở mạng
• Các nhóm thiết bị trung gian đóng vai trò giao diện Ethernet làm cho
nhiều máy tính có thể kết nối tới cùng 1 kênh Ethernet.
• Các khung Ethernet đóng vai trò làm các bit chuẩn để luân chuyển dữ
liệu trên Ethernet.
Phần tiếp sau đây sẽ miêu tả quy tắc thiết lập cho các thành phần đầu tiên, các
mảng truyền thông vật lí , thiết lập quy tắc truy cập trung gian cho Ethernet và
các khung Ethernet.
2.1.3. Hoạt động của Ethernet
Mỗi máy Ethernet, hay còn gọi là máy trạm , hoạt động độc lập với tất cả
các trạm khác trên mạng , không có một trạm điều khiển trung tâm.Mọi trạm
đều kết nối với Ethernet thông qua một đường truyền tín hiệu chung còn gọi là
đuờng trung gian. Tín hiệu Ethernet được gửi theo chuỗi , từng bit một , qua
đường trung gian tới tất cả các trạm thành viên. Để gửi dữ liệu trước tiên trạm
cần lắng nghe xem kênh có rỗi không , nếu rỗi thì mới gửi đi các gói ( dữ liệu).
Cơ hội để tham gia vào truyền là bằng nhau đối với mỗi trạm . Tức là không có
sự ưu tiên . Sự thâm nhập vào kênh chung được quyết dịnh bởi nhóm điều
khiển truy nhập trung gian ( Medium Access Control-MAC) được đặt trong
mỗi trạm . MAC thực thi dựa trên cơ sở sự phát hiện va chạm sóng mang
( CSMA/CD).
- Giao thức CSMA/CD .
- Xung đột

- Truyền dữ liệu
2.1.3.1.Giao thức CSMA/CD.
Để truyền thông tin, mỗi giao tiếp mạng phải lắng nghe cho tới khi không
có tín hiệu trong kênh chung , lúc này nó mới có thể truyền thông tin . Nếu một
giao tiếp mạng thực hiện truyền thông tin trong kênh thì gọi là sóng và các trạm
6
Báo cáo cơ sở mạng
khác phải chờ đợi cho tới khi sự truyền dẫn này kết thúc . Quá trình này gọi là
phát hiện sóng mang. Mọi giao tiếp Ethernet đều có cơ hội ngang nhau trong
việc truyền thông tin trong mạng (Đa truy nhập ) . Trong quá trình truyền từ
đầu này tới đầu kia của Ethernet , những bít đầu tiên của khung cần phải đi tới
mọi vùng của mạng . Tức là có thể có 2 giao tiếp mạng cùng thấy mạng rỗi và
gửi đi cùng 1 lúc. Khi đó Ethernet phát hiện sự “ va chạm “ và dừng việc truyền
và gửi lại các khung . ĐÓ là quá trình phát hiện va chạm.
Giao thức CSMA/CD được thiết kế nhằm cung cấp cơ hội ngang bằng truy
nhập kênh chung cho mọi trạm trong mạng . Sau khi gói tin được gửi đi mỗi
trạm trong mạng sẽ sủ dụng giao thức CSMA/CD để xem trạm nào sẽ được gửi
tiếp sau.
2.1.3.2.Va chạm
Nếu có có hơn 1 trạm cùng gửi thông tin cùng lúc thì tín hiệu được nói
rằng đang va chạm , Các trạm sẽ nhận ra biến cố này và dừng việc truyền bằng
thuật toán backoff . Sau đó mỗi trạm sẽ chọn 1 thời gian ngẫu nhiên sau đó để
truyền tiếp .
Thông thường khoảng thời gian trễ này là rất ngắn chỉ khoảng phần
nghìn hoặc phần triệu của giây . Nếu như sau đó lại có va chạm thì lại phải
truyền lại . Nếu sau một số lần liên tiếp nào đó va chạm thì hệ thống sẽ thôi
truyền gói tin này nữa , thường Ethernet chọn 16 lần để hảy bỏ truyền gói tin.
Nếu mạng càng lớn và càng nhiều trạm thì khả năng huỷ bỏ càng lớn .
2.1.3.3.Truyền dữ liệu
Cũng như các mạng LAN khác , Ethernet luôn tìm cách truyền dữ liệu

tốt nhất , Tuy nhiên ngay cả với những mạng Ethernet đắt tiền nhất và được
thiết kế tốt nhất thì dữ liệu truyền đi vẫn không hoàn hảo.
Nhiễu điện có thể xuất hiện mọi lúc trên hệ thống cable và làm dữ liêu bị hỏng .
7
Báo cáo cơ sở mạng
Trong trường hợp kênh LAN bị tắc nghẽn làm cho số lần va chạm vượt quá 16
làm cho các khung bị mất . Không thể có mạng LAN nào hoàn hảo , vì thế
những phần mềm ở lớp giao thức mạng cao hơn được thiết kế để cứu dữ liệu
khỏi lỗi.
Cần thiết phải nâng lên các giao thức mạng mức cao để chắc chắn dữ
liệu nhận được là chính xác .Các giao thức bậc cao làm được điều nàu nhờ
phương thức truyền đáng tin cậy và sự xác nhận chuỗi thông tin truyền qua
mạng .
2.1.4.Khung và địa chỉ Ethernet
Quả tim của Ethernet là là khung , khung được sử dụng để truyền dữ liệu
giữa các máy tính ,Khung gồm các bit được chia thành các trường . Các trường
này bao gồm trường địa chỉ , trường dữ liệu chứa từ 46 tới 15000 byte dữ liệu ,
và 1 trường kiểm tra lỗi để kiểm tra các bit nhận được có giống với các bit được
truyền đi không.
Trường đầu tiên mang 48 bit địa chỉ , gọi là địa chỉ nhận và địa chỉ gửi,
IEEE quản lí các địa chỉ bởi trường địa chỉ. IEEE cung cấp 24 bit nhận dạng
gọi là “ định danh tổ chức duy nhất “ (OUI) , mỗi tổ chức tham gia vào Ethernet
sẽ được cung cấp 1 định danh duy nhất .Tổ chức sẽ tạo ra 48 bit địa chỉ sử dụng
OUI của 24 bit địa chỉ đầu tiên . 48 bit này được biết đến như là địa chỉ vật lí ,
phần cứng hoặc địa chỉ MAC. 48 bít địa chỉ là dấu hiệu nhận biết chung cho
mỗi giao tiếp Ethernet khi nó được tạo ra , nhờ đó mà làm đơn giản hơn cấu
trúc của Ethernet. Với cách định danh này bạn có thể nhóm nhiều tổ chức
Ethernet vì thế dễ dàng hơn trong việc quản lí Ethernet.
Mỗi khung Ethernet được gửi tới 1 kênh chung , khi đó mỗi giao tiếp
mạng sẽ xem xét trường 48 bit đầu tiên có chứa địa chỉ , giao tiếp mạng sẽ so

sánh địa chỉ của chính nó với địa chỉ này . Giao tiếp mạng có địa chỉ trùng với
địa chỉ nhận sẽ đọc toàn bộ khung và gửi những dữ liệu này tới phần mềm
8
Báo cáo cơ sở mạng
trong máy . Mọi giao tiếp mạng sẽ ngừng đọc thông tin trong khung sau khi
chúng phát hiện địa chỉ của chúng không trùng với địa chỉ nhận.
2.1.5 .Địa chỉ Multicast and Broadcast
Một địa chỉ multicast cho phép một khung đơn có thể nhận được một
nhóm trạm.Phần mềm mạng có thể cho phép giao tiếp mạng lắng nghe những
địa chỉ multicast chỉ định. Điều này cho phép một nhóm trạm có thể được nhận
biết bởi một nhóm multicast đã được gán cho địa chỉ multicast riêng. Một gói
đơn gởi tới 1 địa chỉ multicast sẽ được nhận bởi mọi trạm trong nhóm này. Có
một trường hợp đặc biệt của multicast là broadcast , đó là 48 bit địa chỉ của mỗi
phần tử. Mọi giao tiếp Ethernet nếu thấy 1 khung với địa chỉ đến kiểu này sẽ
đọc khung và gửi nó đến hần mềm trong trạm.
2.2. Sơ lược về đề tài :
Ethernet là công nghệ mạng thiết bị và thông dụng, mặc dù ngày nay có
nhiều công nghệ LAN nhưng Ethernet vẫn là công nghệ được sử dụng nhiều
nhất . Năm 1994 ước tính có khoảng hơn 40 triệu nút Ethernet được sử dụng
trên toàn cầu.
Mạng Ethernet được sử dụng trong bài tập này với tốc độ 10Mbit/s, sử
dụng cấu hình kênh truyền bus (coaxialcable). Trễ truyền dẫn 10ms. Biết rằng
bộ đệm card mạng của các máy tínhđều liên tục có các gói được gửi đến với tốc
độ như nhau λ=200 gói/s, tuân theo phân bố Poisson. Độ dài của gói Ethernet
tuân theo phân bố Poisson với chiều dài trung bình là 1500bytes (Hình vẽ). Và
chạy mô phỏng dùng NS-2 trong khoảng thời gian 30s.
Mô phỏng mạng Ethernet như trên và sử dụng 3 máy, 10 máy cũng
như thay đổi các thông số mạng như trễ truyền dẫn là 1s, độ dài của gói Ehernet
L=1500 bytes cố định để đánh giá hiệu năng mà mạng Ethernet đem lại.
9

Báo cáo cơ sở mạng
II . Phân công công việc
1. Phân công chung : cả nhóm tìm hiểu và làm quen với công cụ mô
phỏng NS2 qua các tài liệu cô giáo đã cho

2. Phân công cụ thể thực hiện đề tài :
+ Tạo mô hình mô phỏng: Vũ Văn Sơn
+ Tạo tiến trình gửi nhận: Bùi Văn Sỹ
+ Tính toán băng thông và vẽ đồ thị: Đặng Đình Nhất
+ Tôc độ mất gói: Phan Văn Quyết
Hoàng Văn Long
III. Thực hiện đề tài
1.Tạo ra mô hình mô phỏng mạng máy tính qua các nút
- Quá trình này sẽ tạo ra các nút tượng trưng cho các máy tính bằng lệnh:
set name [new node], trong đó name là tên nút (ví dụ ta tạo ra các nút trong
bài lần lượt là: n1, n2, n3…… n10).
#Create a simulator object
set ns [new Simulator]
#mo file mo hinh va file luu du lieu ve bang thong
set nf [open out.nam w] # mo file o che do ghi
set f1 [open out1.tr w]
set f2 [open out2.tr w]
10
Báo cáo cơ sở mạng
set f3 [open out.tr w]
$ns trace-all $f3
$ns namtrace-all $nf
#tao 3 node
set n1 [$ns node]
set n2 [$ns node]

set n3 [$ns node]
$ns color 1 Red
$ns color 2 Green
$ns color 3 Blue
- Sau đó ta sẽ liên kết các nút thành mạng ethernet theo yêu cầu bằng
câu lệnh: set lan [$ns newLan <arguments>] trong đó arguments gồm
7 thành phần:
1. nhóm các nút tạo lan
2. trễ
3. băng thông
4. kiểu liên kết
5. phương thức hàng đợi
6. kiểu MAC
7. kiểu kênh truyền
#tao mang ethernet
set lan [$ns newLan "$n1 $n2 $n3" 10Mb 100ms LL Queue/DropTail
Mac/Csma/Cd]
11
Báo cáo cơ sở mạng
2. Thiết lập các máy nguồn máy đích và tạo liên kết gửi nhận
- Giả thiết các máy sẽ lần lượt là nguồn và đích, ví dụ có các cặp
máy gửi nhận: máy 1 gửi cho máy 2, máy 2 gửi cho máy 3, máy 3
gửi cho máy 4………và máy 10 gửi cho máy 1.
- Các máy gửi sẽ phát gói theo tiến trình Poisson tới máy nhận
#tao cac may dich
set sink1 [new Agent/LossMonitor]
set sink2 [new Agent/LossMonitor]
set sink3 [new Agent/LossMonitor]
$ns attach-agent $n2 $sink1
$ns attach-agent $n3 $sink2

$ns attach-agent $n1 $sink3
#tao nguon0
set source1 [attach-expoo-traffic $n1 $sink1 1500 0s 0.005s 100M 1]
set source2 [attach-expoo-traffic $n2 $sink2 1500 0s 0.005s 100M 2]
set source3 [attach-expoo-traffic $n3 $sink3 1500 0s 0.005s 100M 3]

3. Tạo tiến trình gửi dữ liệu là tiến trình Poisson và liên kết vào
máy nguồn
-Ta xây dựng tiến trình Poisson qua một đối tượng ExponentialOn/Off với
các thành phần tham số:
. packetsize_ dung lượng cố định của gói dữ liệu
12
Báo cáo cơ sở mạng
. burst_ time_ thời gian “bật” khởi tạo
. idle_ time_ thời gian “tắt” khởi tạo
. rate_ tốc độ của gói
- Để tạo ra tiến trình Poisson ta cho tham số burst_time_ về 0 và cho rate_
với tốc độ lớn và idle_time =1/tham số lamda của tiến trình Poisson.
#tao tien trinh poisson
proc attach-expoo-traffic { node sink size burst idle rate idcolor} {
set ns [Simulator instance]
set source [new Agent/UDP]
$source set class_ $idcolor
$ns attach-agent $node $source
#tien trinh poisson voi cac tham so cua no
set traffic [new Application/Traffic/Exponential]
$traffic set packetSize_ $size
$traffic set burst_time_ $burst
$traffic set idle_time_ $idle
$traffic set rate_ $rate

#lien ket tien trinh poisson vao nguon va dich
$traffic attach-agent $source
#Connect the source and the sink
$ns connect $source $sink
return $traffic
}
13
Báo cáo cơ sở mạng
4. Tạo ra các gói gửi và tính toán băng thông, tốc độ mất gói dựa
trên lưu lượng mà máy đích nhận được (Mbit/s) và số gói bị
mất
- Để tính tổng dung lượng băng thông bị chiếm ta tính tổng dung lượng lưu
lượng máy đích nhận được và ghi dữ liệu vào file cùng với chu kì lấy dữ liệu
cho trước
- Để tính tốc độ mất gói ta lấy số gói bị mất trong một khoảng thời gian cho
trước cùng ghi vào file làm số liệu để sử dụng
#thu tuc tinh toan bang thong qua luu luong nhan duoc cua cac may dich va
ghi va
#ghi vao file
proc record {} {
global ns sink1 sink2 sink3 f1 f2 f3
set ns [Simulator instance]
#chu ki lay du lieu
set time 0.1
#so bytes ma may dich nhan
set bw1 [$sink1 set bytes_]
set bw2 [$sink2 set bytes_]
set bw3 [$sink3 set bytes_]
# Lay so luong packet mat
set l1 [$sink1 set nlost_]

set l2 [$sink2 set nlost_]
set l3 [$sink3 set nlost_]

14
Báo cáo cơ sở mạng
#lay thoi gian hien thoi
set now [$ns now]
#tinh toan bang thong (Mbit/s) va ghi vao file
puts $f1 "$now [expr ($bw1+$bw2+$bw3)/$time*8/1000000]"
puts $f2 "$now [expr ($l1+$l2+$l3)/$time]"
#reset
$sink1 set bytes_ 0
$sink2 set bytes_ 0
$sink3 set bytes_ 0
$sink1 set nlost_ 0
$sink2 set nlost_ 0
$sink3 set nlost_ 0
#chay lai thu tuc
$ns at [expr $now+$time] "record"
}
5. Vẽ đồ thị băng thông và tốc độ mất gói từ các file số liệu ở
trên
#tao thu tuc finish
proc finish {} {
global ns nf f1 f2 f3 # khai bao bien toan cuc
15
Báo cáo cơ sở mạng
$ns flush-trace # do cac trace vao cac file tuong ung
#dong file
close $nf

close $f1
close $f2
close $f3

#hien thi mo hinh chay mo phong
exec nam out.nam &
#hien thi do thi ve bang thong
exec xgraph out1.tr -geometry 800x400 -t " tong dung luong " -x "
time(s) " -y " bandwidth(Mbit/s) " &
#do thi toc do mat goi

exec xgraph out2.tr -geometry 800x400 -t " toc do mat goi " -x " time(s)"
-y " rate(packets/s) " &
exit 0
}
IV. Kết quả mô phỏng
Sơ đồ mạng:
16
Báo cáo cơ sở mạng
1.Kết quả mô phỏng khi trễ là 10ms
Thông số kĩ thuật của mạng ethernet:
- tốc độ mạng ethernet: 10Mbit/s
- trễ truyền dẫn: 10ms
- tốc độ gửi :
sgoi /200=
λ
- kích thước gói ethernet: 1500 bytes
- tốc độ gói gửi: 100Mb/s
- thời gian mô phỏng: 30s


1.1. Kết quả cho mạng Ethernet 3 máy:
*Code đã giải thích ở phần trên
17
Báo cáo cơ sở mạng
a.mô hình mạng mô phỏng:

b. Đồ thị tổng dung lượng băng thông:

18
Báo cáo cơ sở mạng
c. Đồ thị tốc độ mất gói
19
Báo cáo cơ sở mạng
1.2. Kết quả mạng cho 10 máy
*Code mô phỏng
# chuong trinh tinh bang thong va toc do mat goi
# cho mang ethernet 10 may voi toc do tre truyen dan la 10ms
########################################
#Create a simulator object
set ns [new Simulator]
#mo file mo hinh
set btl [open out.nam w]
$ns namtrace-all $btl
#file luu du lieu ve bang thong
set f1 [open out1.tr w]
set f2 [open out2.tr w]
set f3 [open out.tr w]
$ns trace-all $f3
#tao 10 node(may tinh)
set n1 [$ns node]

set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
set n6 [$ns node]
set n7 [$ns node]
set n8 [$ns node]
set n9 [$ns node]
set n10 [$ns node]
#gan mau cho luong
$ns color 1 Red
20
Báo cáo cơ sở mạng
$ns color 2 Blue
$ns color 3 Green
$ns color 4 Yellow
$ns color 5 White
$ns color 6 Violet
$ns color 7 Grey
$ns color 8 Black
$ns color 9 Pink
$ns color 10 Brown
#tao mang ethernet
set lan [$ns newLan "$n1 $n2 $n3 $n4 $n5 $n6 $n7 $n8 $n9 $n10" 10Mb
10ms LL Queue/DropTail Mac/Csma/Cd]
#tao thu tuc finish
proc finish {} {
global ns btl f1 f2 f3
$ns flush-trace
#dong file

close $btl
close $f1
close $f2
close $f3
#hien thi mo hinh chay mo phong
exec nam out.nam &
#hien thi do thi ve bang thong
exec xgraph out1.tr -geometry 800x400 -t " tong dung luong " -x "
time(s) " -y " bandwidth(Mbit/s) " &
#do thi toc do mat goi
exec xgraph out2.tr -geometry 800x400 -t " toc do mat goi " -x " time(s)"
-y " rate(packets/s) " &
21
Báo cáo cơ sở mạng
exit 0
}
#tao tien trinh poisson(toi)
proc attach-expoo-traffic { node sink size burst idle rate idcolor } {
set ns [Simulator instance]
set source [new Agent/UDP]
$source set class_ $idcolor
$ns attach-agent $node $source
#tien trinh poisson(toi) voi cac tham so cua no
set traffic [new Application/Traffic/Exponential]
$traffic set packetSize_ $size
$traffic set burst_time_ $burst
$traffic set idle_time_ $idle
$traffic set rate_ $rate
#lien ket tien trinh poisson vao nguon va dich
$traffic attach-agent $source

#Connect the source and the sink
$ns connect $source $sink
return $traffic
}
#thu tuc tinh toan bang thong qua luu luong nhan duoc cua cac may dich va
#ghi vao cac file
proc record {} {
global sink1 sink2 sink3 sink4 sink5 sink6 sink7 sink8 sink9 sink10 f1 f2
set ns [Simulator instance]
#chu ki lay du lieu
set time 0.1
#so bytes ma may dich nhan
22
Báo cáo cơ sở mạng
set bw1 [$sink1 set bytes_]
set bw2 [$sink2 set bytes_]
set bw3 [$sink3 set bytes_]
set bw4 [$sink4 set bytes_]
set bw5 [$sink5 set bytes_]
set bw6 [$sink6 set bytes_]
set bw7 [$sink7 set bytes_]
set bw8 [$sink8 set bytes_]
set bw9 [$sink9 set bytes_]
set bw10 [$sink10 set bytes_]
# Lay so luong goi mat
set l1 [$sink1 set nlost_]
set l2 [$sink2 set nlost_]
set l3 [$sink3 set nlost_]
set l4 [$sink4 set nlost_]
set l5 [$sink5 set nlost_]

set l6 [$sink6 set nlost_]
set l7 [$sink7 set nlost_]
set l8 [$sink8 set nlost_]
set l9 [$sink9 set nlost_]
set l10 [$sink10 set nlost_]
#lay thoi gian hien thoi
set now [$ns now]
#tinh toan bang thong (Mbit/s) va ghi vao file
puts $f1 "$now [expr ($bw1+$bw2+$bw3+$bw4+$bw5+$bw6+
$bw7+$bw8+$bw9+$bw10)/$time*8/1000000]"
puts $f2 "$now [expr ($l1+$l2+$l3+$l4+$l5+$l6+$l7+$l8+$l9+
$l10)/$time]"
#reset
$sink1 set bytes_ 0
$sink2 set bytes_ 0
23
Báo cáo cơ sở mạng
$sink3 set bytes_ 0
$sink4 set bytes_ 0
$sink5 set bytes_ 0
$sink6 set bytes_ 0
$sink7 set bytes_ 0
$sink8 set bytes_ 0
$sink9 set bytes_ 0
$sink10 set bytes_ 0
$sink1 set nlost_ 0
$sink2 set nlost_ 0
$sink3 set nlost_ 0
$sink4 set nlost_ 0
$sink5 set nlost_ 0

$sink6 set nlost_ 0
$sink7 set nlost_ 0
$sink8 set nlost_ 0
$sink9 set nlost_ 0
$sink10 set nlost_ 0
#chay lai thu tuc
$ns at [expr $now+$time] "record"
}
#tao cac may dich
set sink1 [new Agent/LossMonitor]
set sink2 [new Agent/LossMonitor]
set sink3 [new Agent/LossMonitor]
set sink4 [new Agent/LossMonitor]
set sink5 [new Agent/LossMonitor]
set sink6 [new Agent/LossMonitor]
set sink7 [new Agent/LossMonitor]
set sink8 [new Agent/LossMonitor]
set sink9 [new Agent/LossMonitor]
set sink10 [new Agent/LossMonitor]
24
Báo cáo cơ sở mạng
$ns attach-agent $n2 $sink1
$ns attach-agent $n3 $sink2
$ns attach-agent $n4 $sink3
$ns attach-agent $n5 $sink4
$ns attach-agent $n6 $sink5
$ns attach-agent $n7 $sink6
$ns attach-agent $n8 $sink7
$ns attach-agent $n9 $sink8
$ns attach-agent $n10 $sink9

$ns attach-agent $n1 $sink10
#tao nguon
set source1 [attach-expoo-traffic $n1 $sink1 1500 0s 0.005s 100M 1]
set source2 [attach-expoo-traffic $n2 $sink2 1500 0s 0.005s 100M 2]
set source3 [attach-expoo-traffic $n3 $sink3 1500 0s 0.005s 100M 3]
set source4 [attach-expoo-traffic $n4 $sink4 1500 0s 0.005s 100M 4]
set source5 [attach-expoo-traffic $n5 $sink5 1500 0s 0.005s 100M 5]
set source6 [attach-expoo-traffic $n6 $sink6 1500 0s 0.005s 100M 6]
set source7 [attach-expoo-traffic $n7 $sink7 1500 0s 0.005s 100M 7]
set source8 [attach-expoo-traffic $n8 $sink8 1500 0s 0.005s 100M 8]
set source9 [attach-expoo-traffic $n9 $sink9 1500 0s 0.005s 100M 9]
set source10 [attach-expoo-traffic $n10 $sink10 1500 0s 0.005s 100M 10]
#tien trinh chay
$ns at 0.0 "record"
#Start the traffic sources
$ns at 1.0 "$source1 start"
$ns at 1.0 "$source2 start"
$ns at 1.0 "$source3 start"
$ns at 1.0 "$source4 start"
$ns at 1.0 "$source5 start"
$ns at 1.0 "$source6 start"
$ns at 1.0 "$source7 start"
25

×