UDP Agent

Một phần của tài liệu Luận văn Nghiên cứu chương trình mô phỏng mạng NS và các công cụ hỗ trợ, và cơ sở để áp dụng các bài toán ứng dụng trên NS để đánh giá tính khả thi và tối ưu của chúng trên mạng (Trang 42)

1. Mô phỏng các gói tin UDP/TCP

1.1 UDP Agent

UDP agent được thực hiện trong file udp.{cc, h}. Một UDP agent cho phép dữ liệu trong một kích cỡ biến thiên lấy từ một ứng dụng và phân đoạn dữ liệu đó nếu cần.Các gói tin UDP cũng chứa một số tuần tự tăng và một nhãn thời gian RTP mặc dù các gói tin UDP thực tế không chứa chúng, số tuần tự này không tự làm các overhead giả lập và dễ dùng đối với sự phân tích file trace hay giả lập các ứng dụng dựa trên UDP.Kích cỡ phân đoạn tối đa mặc định (MSS) cho các UDP agent là 1000 byte:

Agent/UDP set packetSize_ 1000 ; # max segment size

Các ứng dụng có thể truy cập các UDP agent thông qua hàm sendmsg() trong C++ hay phương thức sendmsg trong OTcl,

Sau đây là ví dụ cách thức một UDP agent có thể đwocj sử dụng trong một chương trình, ở đây bộ khởi tạo lưu lượng CBR khởi tạo tại thời gian 1.0,khi đó bắt đầu gọi định kỳ hàm UDP agent sendmsg().

set ns [new Simulator] set n0 [$ns node] set n1 [$ns node]

$ns duplex-link $n0 $n1 5Mb 2ms DropTail set udp0 [new Agent/UDP]

$ns attach-agent $n0 $udp0

set cbr0 [new Application/Traffic/CBR] $cbr0 attach-agent $udp0

$udp0 set packetSize_ 536 ;# set MSS to 536 bytes

set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 1.0 "$cbr0 start"

1.1.2 Giải thích các lệnh:

Các lệnh sau dùng để cài đặt các UDP agent trong kịch bản giả lập: set udp0 [new Agent/UDP] : #Tạo một UDP agent.

$traffic-gen attach-agent <agent> : #Đây là một phương thức lớp Application/Traffic/<traffictype> được kết nối bộ khởi tạo lưu lượng tới <agent>.

Ví dụ :nếu ta muốn thiết lập một luồng lưu lượng CBR cho udp agent, udp1, ta sẽ dùng lệnh

set cbr1 [new Application/Traffic/CBR] $cbr1 attach-agent $udp1

$ns_ connect <src-agent> <dst-agent> : Lệnh này sẽ thiết lập một kết nối đầu cuối giữa hai agent (ở lớp transport ).

$udp set packetSize_ <pktsize> $udp set dst_addr_ <address> $udp set dst_port_ <portnum> $udp set class_ <class-type> $udp set ttl_ <time-to-live> ...

Một phần của tài liệu Luận văn Nghiên cứu chương trình mô phỏng mạng NS và các công cụ hỗ trợ, và cơ sở để áp dụng các bài toán ứng dụng trên NS để đánh giá tính khả thi và tối ưu của chúng trên mạng (Trang 42)

Tải bản đầy đủ (PDF)

(71 trang)