Với việc khảo sát lưu lượng đầu vào UDP và TCP, sinh viên có thể hiểu rõ hơn về quá trình truyền gói tin qua mạng khi sử dụng hai loại giao thức ở lớp vận chuyển là TCP và UDP.. Các dịch
Trang 1BÀI THỰC HÀNH MẠNG VIỄN THÔNG
BÀI SỐ 1-2 Làm quen với NS và Thực hành cơ bản về TCP/IP
Thời gian thực hiện: 6 tiết (CQ)/4 tiết (TC)
Đối tượng: Sinh viên đại học điện tử viễn thông
I Mục đích
Bài thực hành số 1 giúp sinh viên làm quen với môi trường mô phỏng mạng Network Simulation (NS) Từ đó sinh viên có thể thực hiện được các bài thực hành sử dụng NS với mức độ khác nhau
Bài thực hành số 2 đưa ra nội dung và các bước thực hành cơ bản về TCP/IP Giúp sinh viên hiểu được các khái niệm cơ bản về TCP/IP Với việc khảo sát lưu lượng đầu vào UDP và TCP, sinh viên có thể hiểu rõ hơn về quá trình truyền gói tin qua mạng khi sử dụng hai loại giao thức ở lớp vận chuyển là TCP và UDP Bài thực hành cũng đưa ra bài toán khảo sát hệ thống với các thông số mạng khác nhau (nút: độ lớn của bộ đệm; link: băng thông, trễ, kiểu hàng đợi) để sinh viên tính toán, đánh giá được hiệu năng của mạng
II Cơ sở lí thuyết
TCP/IP là một bộ giao thức, nó được phát triển bởi Cục các dự án nghiên cứu cấp cao (ARPA) của Bộ quốc phòng Mỹ Ban đầu nó được sử dụng trong mạng ARPANET Khi công nghệ mạng cục bộ phát triển, TCP/IP được tích hợp vào môi trường điều hành UNIX và sử dụng chuẩn Ethernet để kết nối các trạm làm việc với nhau Đến khi xuất hiện các máy PC, TCP/IP lại được chuyển mang sang môi trường PC, cho phép các máy
PC chạy DOS và các trạm làm việc chạy UNIX có thể cùng kết nối trên cùng một mạng Hiện nay, TCP/IP được sử dụng rất phổ biến trong mạng máy tính, mà điển hình là mạng Internet
Giao thức TCP là giao thức được thực hiện tại đầu cuối, còn IP là giao thức để truyền dữ liệu trên mạng Khi người dùng giao thức TCP tạo ra được gói tin TCP, TCP sẽ lồng nó vào thành gói datagram IP Router căn cứ vào địa chỉ có trong datagram IP và thông tin chứa trong bảng định tuyến để chuyển các gói này đi đến các Router sau Khi datagram đến Router cuối cùng, Router này tìm và chuyển datagram đến hệ thống đầu cuối
Trang 2Nếu gói IP không chuyển tới đầu cuối được vì một lý do nào đó, nó sẽ bị hủy bỏ và giao thức IP không thể thông báo điều này cho người sử dụng biết Vì vậy người sử dụng muốn truyền các gói một cách chắc chắn và có thông báo lỗi thì phải dùng giao thức TCP
hỗ trợ cho IP, bởi vì TCP cung cấp mối liên hệ tin cậy giữa các đầu cuối TCP bảo đảm datagram phát đi đúng địa chỉ, không sai sót và trùng gói, ngay tại đầu cuối giao thức TCP sẽ đọc số thứ tự trong gói TCP để biết nó nhận đủ gói hay chưa và báo lại cho đầu phát biết
Tuy nhiên, giao thức IP là một giao thức rất hiệu quả, nó không quan tâm đến giao thức cụ thể của các mạng khác nhau mà các gói tin đi qua Với IP, các mạng chỉ đơn thuần là đường dẫn giữa các Router
Vì vậy sự kết hợp giữa hai giao thức TCP và IP đã giúp người dùng sử dụng được các dịch vụ trao đổi trên Internet một cách an toàn và chính xác
Tương tự như mô hình OSI, mô hình TCP/IP cũng là mô hình phân lớp, tuy nhiên khác với mô hình OSI, TCP/IP chỉ có bốn lớp Mối quan hệ giữa mô hình TCP/IP được cho như Hình 1:
Hình 1: Mô hình TCP/IP
Bộ giao thức TCP/IP gồm 4 lớp như sau:
Lớp 4-Application layer (lớp ứng dụng): Điều khiển chi tiết từng ứng dụng cụ thể Nó tương ứng với các lớp ứng dụng, lớp trình diễn và lớp phiên trong mô hình OSI Nó gồm các giao thức mức cao, mã hóa, điều khiển hội thoại Các dịch vụ ứng dụng như SMTP,
Lớp ứng dụng Lớp trình diễn Lớp phiên Lớp vận chuyển Lớp mạng Lớp liên kết dữ liệu Lớp vật lý
Lớp ứng dụng
Lớp vận chuyển Lớp Internet Lớp giao diện mạng
Trang 3FTP, SNMP Hiện nay có rất nhiều giao thức thuộc lớp này cho những ứng dụng khác nhau
Lớp 3- Transport layer (lớp vận chuyển): Chịu trách nhiệm truyền thông điệp (message) từ một tiến trình (process) tới một tiến trình khác Do vậy lớp vận chuyển đề cập đến các vấn đề về chất lượng dịch vụ như độ tin cậy, điều khiển luồng và sửa lỗi Lớp này có 2 giao thức rất khác nhau là giao thức điều khiển truyền dẫn (TCP) và giao thức dữ liệu người sử dụng (UDP)
Lớp 2- Internet Layer (lớp Internet – đôi khi được gọi là lớp mạng): Cung cấp chức năng đánh địa chỉ, độc lập phần cứng mà nhờ đó dữ liệu có thể di chuyển giữa các mạng con có kiến trúc vật lý khác nhau Lớp này điều khiển việc chuyển gói qua mạng, định tuyến các gói (Hỗ trợ giao thức liên mạng IP- khái niệm liên mạng là nói đến mạng lớn hơn: mạng liên kết giữa các mạng LAN) Các giao thức thuộc lớp này là IP, ICMP, IGMP, ARP, RARP
Lớp 1- Network Access Layer/ Network Interface and Hardware (lớp truy nhập mạng, đôi khi được gọi là lớp giao diện mạng): Cung cấp giao tiếp với mạng vật lý (thông thường lớp này bao gồm các driver thiết bị trong hệ thống vận hành và các card giao diện mạng tương ứng trong máy tính Lớp này thực hiện nhiệm vụ điều khiển tất cả các chi tiết phần cứng hoặc thực hiện giao tiếp vật lý với cáp hoặc với bất kỳ môi trường nào được sử dụng) Cung cấp kiểm soát lỗi dữ liệu phân bố trên mạng vật lý Lớp này không định nghĩa một giao thức riêng nào cả, nó hỗ trợ tất cả các giao thức chuẩn (standard) và độc quyền (proprietory) Ví dụ: Ethernet, Token Ring, FDDI, X25, wireless, Async, ATM, SNA…
Trong mô hình TCP/IP, lớp vận chuyển cho phép các thiết bị của người sử dụng (user) phân đoạn dữ liệu của các ứng dụng lớp trên để đặt vào cùng một luồng dữ liệu của lớp 4 và cho phép thiết bị thu tái thiết lập trở lại dữ liệu cho các ứng dụng lớp trên Luồng
dữ liệu của lớp 4 là một cầu nối luận lý giữa các đầu cuối trên một mạng và cung cấp các dịch vụ vận chuyển từ host đến một đích nào đó Dịch vụ này đôi khi được gọi la dịch vụ end-to-end Lớp vận chuyển cung cấp hai giao thức TCP và UDP:
TCP là một giao thức có hướng kết nối, đầu cuối tới đầu cuối Nó là giao thức có
độ tin cậy, được thiết kế để lắp vào trong 1 lớp hệ thống của các giao thức và cung cấp nhiều ứng dụng mạng Giao thức TCP cung cấp cho ta nhiều hình thức xử lý truyền tin đáng tin cậy ở giữa các cặp của những hình thức xử lý, trong các máy chủ máy tính để gắn bó nhằm phân biệt chúng, nhưng những mạng máy tính truyền tin được nối liền nhau, rất ít sự chiếm đoạt được tạo ra từ tính tin cậy của các giao thức truyền tin từ bên dưới
Về cơ bản TCP có thể hoạt động phía trên phạm vi rộng của những dãy hệ thống truyền tin từ đường kết nối hệ thống tới mạng chuyển mạch gói Giao thức IP cũng phân mảnh
Trang 4hoặc nhóm lại từng phần TCP được đòi hỏi để hoàn thành việc vận chuyển và phân chia thông qua nhiều mạng và kết nối liên tiếp nhiều cổng lại với nhau
UDP là một giao thức truyền thông phi kết nối, nằm trong lớp vận chuyển: thực hiện bởi một tiến trình cung cấp một cách chính xác gói tin UDP khi một gói tin IP được gửi đi Điều này khác với giao thức hướng kết nối như TCP khi mà dữ liệu có quan hệ rất
ít đến gói tin IP được gửi đi UDP không cung cấp sự tin cậy: Nó gửi gói tin mà ứng dụng được thêm vào lớp IP nhưng không có sự đảm bảo rằng gói tin sẽ đến được đích của chúng Sự tin cậy không được đảm bảo Nhưng không vì thế mà chúng ta loại bỏ, không
sử dụng giao thức UDP Ưu điểm của nó là rất tiện lợi và đặc biệt là nhanh chóng
Tiếp theo, chúng ta xem xét 2 kỹ thuật quan trọng trong TCP/IP, đó là kỹ thuật điều khiển lưu lượng và kỹ thuật điều khiển lỗi:
Điều khiển luồng định nghĩa lượng dữ liệu mà nguồn có thể gửi trước khi nhận một xác nhận từ đích Trong trường hợp đặc biệt, giao thức lớp vận chuyển có thể gửi một byte dữ liệu và đợi xác nhận trước khi gửi byte tiếp theo Nhưng nếu làm như vậy, quá trình gửi sẽ diễn ra rất chậm Nếu dữ liệu phải đi qua đoạn đường dài thì nguồn sẽ ở trạng thái rỗi trong khi đợi xác nhận
Trong một trường hợp đặc biệt khác, giao thức lớp vận chuyển có thể gửi tất cả dữ liệu nó có mà không quan tâm tới xác nhận Làm như vậy sẽ tăng tốc độ truyền, nhưng có thể làm tràn lụt trạm đích (trạm đích không xử lý kịp) Bên cạnh đó, nếu một phần dữ liệu bị mất, bị nhân đôi, sai thứ tự hoặc bị hỏng thì trạm nguồn sẽ không biết
TCP sử dụng một giải pháp cho hai trường hợp đặc biệt này Nó định nghĩa một cửa sổ, đặt cửa sổ này lên bộ đệm gửi và chỉ gửi lượng dữ liệu bằng kích thước cửa sổ
Kỹ thuật này gọi là kỹ thuật cửa sổ trượt (sliding window) Hay nói một cách khác, để thực hiện điều khiển luồng, TCP sử dụng giao thức cửa sổ trượt Hai trạm ở hai đầu kết nối TCP đều sử dụng một cửa sổ trượt Cửa sổ này bao phủ phần dữ liệu trong bộ đệm mà một trạm có thể gửi trước khi quan tâm tới xác nhận từ trạm kia Nó được gọi là cửa sổ trượt do có thể trượt trên bộ đệm khi trạm gửi nhận được xác nhận
Kỹ thuật điều khiển lỗi cũng là một kỹ thuật hết sức quan trọng khi nghiên cứu TCP/IP Nó là kỹ thuật đảm bảo tính tin cậy cho TCP/IP Trong phần trên, chúng ta thấy TCP là một giao thức vận chuyển tin cậy Ngoài điều khiển luồng, TCP còn điều khiển lỗi Điều khiển lỗi gồm các cơ chế phát hiện phân đoạn bị hỏng, bị mất, sai thứ tự hoặc nhân đôi Nó cũng gồm cơ chế sửa lỗi sau khi chúng được phát hiện
Phát hiện lỗi trong TCP được thực hiện thông qua việc sử dụng ba công cụ đơn giản: tổng kiểm tra, xác nhận và thời gian chờ (time-out) Mỗi phân đoạn có chứa một trường tổng kiểm tra để phát hiện phân đoạn lỗi Nếu phân đoạn lỗi, nó sẽ bị TCP nhận bỏ
Trang 5đi TCP sử dụng phương pháp xác nhận để thông báo sự nhận các gói đã tới đích mà không hỏng Không có xác nhận phủ định (xác nhận gói hỏng) trong TCP Nếu một phân đoạn không được xác nhận trước khi hết hạn thời gian (TTL) thì nó được xem như bị hỏng hoặc bị mất trên đường đi
Cơ chế sửa lỗi trong TCP cũng rất đơn giản TCP nguồn đặt một bộ định thời cho mỗi phân đoạn được gửi đi Bộ định thời được kiểm tra định kỳ Khi bộ định thời tắt, phân đoạn tương ứng xem như bị hỏng hoặc bị mất và sẽ được truyền lại
Trên đây là những kiến thức tổng quan, cơ bản nhất về TCP/IP, không chỉ là cơ sở
lý thuyết cho bài thực hành này mà còn là kiến thức nền để có thể nghiên cứu, thực hành sâu hơn về TCP/IP
II Thực hành
Bước 1: Chạy chương trình: Để chạy chương trình, kích đúp chuột vào biểu tượng
Cygwin trên Destop, khi cửa sổ chương trình xuất hiện, tại dấu nhắc gõ lệnh startx
, cửa sổ tiếp theo xuất hiện, gõ lệnh ns ex.tcl (hoặc vidu1.tcl) để kích hoạt NAM () và chạy chương trình Trong đó file ex.tcl (hoặc vidu1.tcl) là file mã nguồn của chương trình File ex.tcl (hoặc vidu1.tcl) này phải được copy vào trong thư mục chạy của NS Đối với Cygwin file chạy *.tcl (hoặc *.txt) mặc định trong thư mục home (C:\Cygwin\ home).
Bước 2: Tạo file *.tcl (hoặc *.txt): đây được gọi là file mã nguồn của NS Chúng ta có
thể sử dụng nhiều công cụ để soạn thảo với file *.tcl (hoặc *.txt) này Đơn giản nhất,
thường dùng đó là công cụ notepad của HĐH Windows Bài thực hành này hướng dẫn cho sinh viên cách thực hiện tạo một chương trình chạy trong NS, đồng thời cũng đưa ra 2
ví dụ đơn giản nhất để sinh viên thực hiện: tạo nút, tạo link và truyền dữ liệu giữa các nút Trên cơ sở này, sinh viên tiếp tục nghiên cứu để thực hiện các bài toán phức tạp hơn, sinh động hơn
Trước hết chúng ta phải kích hoạt chương trình soạn thảo mã nguồn Notepad Trong phần
này, sinh viên thực hiện tạo một file mẫu *.tcl Đặt tên file cho ví dụ này là ‘bai1.tcl’ và
làm theo các bước sau:
- Đầu tiên, phải tạo ra đối tượng mô phỏng với câu lệnh:
set ns [new Simulator]
- Tiến hành mở một file out.nam để ghi lại các thông số của chương trình, file này
nó được sử dụng như một file Trace cho NAM
set nf [open out.nam w]
$ns namtrace-all $nf
Trang 6- Bước tiếp theo là thủ tục kết thúc, bước này để đóng tất cả các tiến trình và kích hoạt NAM:
proc finish {} { global ns nf
$ns flush-trace close $nf
exec nam out.nam &
exit 0 }
- Một thủ tục cần thiết nữa để hạn định thời gian cho phần chạy mô phỏng với câu lệnh Trong câu lệnh dưới đây chương trình sẽ chạy đến thời gian 5.0s là kết thúc:
$ns at 5.0 "finish"
- Cuối cùng, kết thúc chương trình và kích hoạt phần mô phỏng với câu lệnh:
$ns run
- Sau khi soạn thảo xong phần mã cho chương trình, chúng ta lưu lại file với tên
“bai1.tcl” Sau khi soạn xong ví dụ trên, kích hoạt và chạy chương trình với lệnh ns bai1.tcl hoặc ns bai1.txt, chương trình sẽ thông báo lỗi: 'nam: empty trace file
out.nam' Vì lúc này, NAM không thể chạy do không có các đối tượng mô phỏng như nút, link… Chúng ta sẽ xem cách tạo nút, link ở phần tiếp theo
Bước 3: Tạo 2 nút, 1 link: Đây là ví dụ đơn giản nhất với 2 nút nối với nhau bằng 1 link.
Hai câu lệnh sau đây lần lượt tạo 2 nút n0 và n1 Chú ý rằng phần câu lệnh này phải nằm trước câu lệnh $ns run, nhưng tốt nhất vẫn để trước câu lệnh $ns at 5.0 "finish" như trong
ví dụ trên
set n0 [$ns node]
set n1 [$ns node]
Để tạo ra kết nối link giữa 2 nút trên, sử dụng câu lệnh sau:
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
Trong đó: duplex-link là kết nối song hướng giữa 2 nút n0 và n1 ($n0 $n1) với tốc độ 1Mb/s và độ trễ là 10ms với kiểu hàng đợi là DropTail
Bây giờ, lưu lại file với tên là “bai1.tcl” và chạy chương trình, trên màn hình xuất hiện kết nối như Hình 2:
Hình 2: Tạo 2 nút và link
Trang 7Bước 4: Gửi dữ liệu: Trong ví dụ này, thực hiện truyền dữ liệu từ nút n0 đến n1 Trong
NS, dữ liệu luôn được gửi từ một agent tới một agent khác Vì thế, bây giờ chúng ta sẽ tạo một agent gửi dữ liệu từ nút n0 và một agent khác nhận dữ liệu tại nút n1
# Tạo một agent UDP và gán nó vào nút n0
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
# Tạo một nguồn lưu lượng CBR và gán nó là udp0
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
# hoặc sử dụng lệnh sau để gán tốc độ cho luồng cbr
# $cbr0 set rate_ 0.1mb
$cbr0 attach-agent $udp0
Trong đó: kích cỡ gói tin ‘packetSize’ là 500byte và các gói tin được gửi đi cách nhau 0,005giây (200 packet trong 1s)
Câu lệnh tiếp theo sẽ tạo một Null agent gán cho n1, để nó nhận lưu lượng cbr0 ở trên
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
Bây giờ 2 agent phải được nối với nhau nhờ câu lệnh sau:
$ns connect $udp0 $null0
Và bây giờ chúng ta phải đặt thời điểm CBR agent bắt đầu và kết thúc việc gửi dữ liệu:
$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"
Sau khi hoàn thành các công việc, lưu lại vào file “bai1.tcl” Chạy chương trình, trong cửa
sổ NAM kích vào PLAY để chạy Chúng ta sẽ thấy cứ 0.005s (thời gian giả lập trong chương trình) n0 lại bắt đầu gửi dữ liệu cho n1 Để thay đổi tốc độ gửi dữ liệu (chính xác hơn là thay đổi bước thời gian mô phỏng) di chuyển thanh trượt bên phải phía trên của cửa sổ NAM
Hình 3: Truyền dữ liệu giữa 2 nút
Trang 8Bước 5: Thực hiện viết phần mã cho topo trong hình vẽ dưới với tên file: TH1_***.tcl.
Trong đó TH1 là bài thực hành 1, *** là tên sinh viên thực hiện
Hình 4: Topo mạng thực hiện cho bài thực hành Bước 6: Đặt các tham số cho mạng: các tuyến nối (link) giữa các nút được đặt các tham
số về tốc độ bit và độ trễ Ví dụ giữa nút 0 và nút 2: $ns duplex-link $n0 $n2 2Mb 10ms DropTail Có nghĩa là nút 0-nút2 là tuyến duplex, tốc độ truyền dữ liệu 2 chiều là 2Mb/s,
độ trễ là 10ms Tương tự các tuyến được đặt các tham số:
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
$ns simplex-link $n2 $n3 0.3Mb 100ms DropTail
$ns simplex-link $n3 $n2 0.3Mb 100ms DropTail
$ns duplex-link $n3 $n4 0.5Mb 40ms DropTail
$ns duplex-link $n3 $n5 0.5Mb 30ms DropTail Đặt kích cỡ hàng đợi tại n2 cho liên kết n2-n3 là 20 gói:
$ns queue-limit $n2 $n3 20
Bước 7: Thiết lập các kết nối TCP và UDP: Thiết lập kết nối từ nút 0 đến nút 4 là TCP,
tín hiệu truyền trên kết nối này mã hóa bởi màu xanh Còn kết nối từ nút 1 đến nút 5 là kết nối UDP, tín hiệu truyền trên kết nối này mã hóa bằng màu đỏ Tín hiệu truyền sử dụng kết nối TCP là FTP và tín hiệu sử dụng kết nối UDP là CBR
Kích cỡ gói tin gửi trên TCP là 552 byte, còn tín hiệu CBR là cbr set packet_size_ 1000,
$cbr set rate_ 0.01mb Thời điểm bắt đầu phát tín hiệu FTP và CBR là 1.0 và thời gian kết thúc tín hiệu FTP là 124.0, thời gian kết thúc phát tín hiệu CBR là 124.5
Lưu lại tất cả các phần mã vào file TH1_***.tcl
Bước 8: Chạy chương trình với file TH1_***.tcl:
- Ghi lại các thông số của mạng: xem xét thời gian hàng đợi bị tràn lần đầu tiên, ghi lại hình ảnh mạng tại thời điểm đó Đưa ra những tính toán, giải thích và nhận xét
- Tăng dần tốc độ luồng CBR, sau đó xem thời điểm mà băng thông của tuyến 2-3 không đáp ứng được với lưu lượng qua nó, dữ liệu bị mất Giải thích hiện tượng xẩy ra
0
1
3
4
5 2
Trang 9- Tăng dần tốc độ luồng CBR, chúng ta xem xét sự thích ứng tốc độ của luồng FTP
sử dụng kết nối TCP Giải thích
Ghi lại hình ảnh mạng và thời điểm xẩy ra mất dữ liệu
IV Báo cáo kết quả thực hành
Trước khi chạy chương trình, đưa ra phép tính toán thời gian bộ đệm bị tràn dựa trên tốc độ 2 luồng vào FTP và CBR và kích cỡ của bộ đệm
Trong quá trình thực hành, sinh viên lần lượt ghi lại các giá trị thay đổi và ghi lại các thời điểm bộ đệm bị tràn, thời điểm hết tràn
Trên cơ sở đó viết báo cáo và trả lời các câu hỏi do giáo viên hướng dẫn đưa ra
Nội dung yêu cầu:
1 Tính toán được thời điểm bị tràn bộ đệm và ghi lại thời điểm mạng trở lại hoạt động bình thường
2 Vẽ biểu đồ số lượng gói đến cho nút 2 theo thời gian cho tới khi có gói bị tràn
3 Tính tổng số lượng gói tin bị rớt trong thời gian mô phỏng
4 Đưa ra nhận xét đánh giá về biểu đồ và các kết quả tính toán
5 Đưa ra những nhận xét về đặc điểm và so sánh hai loại lưu lượng TCP và UDP
Tài liệu tham khảo
[1] W Richard Steven, TCP/IP Illustrated Volume 1-The Protocols, Addison
WesleyLongman, Inc, 1994 [2] Kavin Fall, Kannan Varadhan, The NS manual, http://www.isi.edu/nsnam/ns/,
13/12/2003 [3] Jae Chung & Mark Claypool, Giới thiệu chung về NS bằng các ví dụ,
http://nile.wpi.edu/NS/
[4] Tải NS về và cài đặt, http://www.isi.edu/nsnam/dist/
[5] Cygwin, www.isi.edu/nsnam/ns/ns-cygwin.html
*._.*._.*._.*._.*._.*._.*._.*._.*._.*._.*._.*._.*
Nguyễn Thị Thu Hằng
Bộ môn Mạng viễn thông
Khoa Viễn thông 1- Học viện Công nghệ Bưu chính Viễn thông
Km 10 - Ha Noi - Ha Dong
*********************
Các phòng làm việc và thực hành của bộ môn P315A1, P9B15, P304A3 (cơ sở Hà Đông) Tel: 84-34-519387/515484
Fax: 84-34-511405 Email: bomonmangvt1@yahoo.com http://www.ptit.edu.vn/
http://www.vnpt.com.vn
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
Trang 10$ns connect $udp0 $null0
$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"