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.
42 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 3267 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Đề tài Đo hiệu năng mạng Ethernet, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Luận văn
Đề tài: Đo hiệu năng mạng EthernetMục Lục
I.Yêu cầu bài tập lớn:
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
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 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 EthernetHệ 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.
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ệu2.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 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 . 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 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 l=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.
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]
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 ] 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]
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
. 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
}
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_]
#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
$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:
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 :
- kích thước gói ethernet: 1500 bytes
- tốc độ gói gửi: 100Mb/s
- thời gian mô phỏng: 30s
Kết quả cho mạng Ethernet 3 máy:
*Code đã giải thích ở phần trên
a.mô hình mạng mô phỏng:
b. Đồ thị tổng dung lượng băng thông:
c. Đồ thị tốc độ mất gói
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
$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) " &
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
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
$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]
$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
s