• No se han encontrado resultados

3. Marco teórico

3.6. Comunidades profesionales de aprendizaje

Tạo link một chiều giữa hai node bằng lệnh:

$ns simplex-link $n0 $n1 <bandwidth> <delay> <queue_type>

4.3.2 Duplex-link

Và link hai chiều giữa hai node bằng lệnh:

$ns duplex-link $n0 $n1 <bandwidth> <delay> <queue_type>

Giá trị bandwidth (băng thông) và delay (trì hoãn) tương ứng có thể là 1Mb và 10ms. NS-2 hỗ trợ nhiều giá trị queue_type (kiểu hàng đợi) như RED, Drop Tail…

4.4 Khởi tạo Network Agents

Hai lớp Agent và lớp Application sẽ tạo nên traffic trong NS-2. Mỗi node trong mạng muốn gửi và nhận traffic thì phải có agent gắn vào nó. Trên đỉnh của agent chạy application. Chính application sẽ quyết định loại traffic được mô phỏng.

Có hai loại agent trong NS-2 là agent UDP và agent TCP. 4.4.1 UDP

set udp0 [new Agent/UDP] set null [new Agent/Null] $ns attach-agent $n0 $udp0 $ns attach-agent $n1 $null $ns connect $udp0 $null

Chương 4: OTcl script trong NS-2 Đoạn mã trên tạo agent UDP và gắn vào node n0 bằng thủ tục attach-agent. Tạo ra agent Null, hoạt động như một traffic sink và gắn vào node n1. Hai agent được nối lại bằng phương thức connect.

Loss Monitor (Giám sát mất mát) có thể giám sát các packet đang được truyền, cũng như các packet bị mất. Một thủ tục có thể được lập lịch để kiểm tra xoay vòng LossMonitor sau khoảng T giây và lưu lại thông tin throughput (thông lượng).

set lossMonitor [new Agent/LossMonitor] $ns connect $udp0 $lossMonitor

4.4.2 TCP

set tcp [new Agent/TCP]

set tcp_sink [new Agent/TCPSink] $ns attach-agent $n0 $tcp

$ns attach-agent $n1 $tcp_sink $ns connect $tcp $tcp_sink

Đoạn mã trên tạo agent TCP và gắn vào node tcp dùng thủ tục attach-agent. Agent TCPSink hoạt động như một TCP sink và gắn vào node tcp_sink. Hai agent nối với nhau bằng phương thức connect. Các loại TCP có sẵn trong NS-2 là: TCP, TCP/Reno, TCP/Vegas, TCP/Sack1, TCP/Fact, TCPSink.

4.5 Các loại traffic

Có 4 loại traffic application (ứng dụng lưu lượng) có thể gắn vào agent UDP để mô phỏng lưu lượng mạng: CBR, Exponential, Pareto, TrafficTrace

4.5.1 Tốc độ bit cố định CBR

Đối tượng traffic CBR tạo traffic theo tốc độ đã định trước. Packet có kích cỡ nhất định. Mã OTcl để thực thi nguồn traffic CBR như sau:

set my_cbr [new Application/Traffic/CBR] $my_cbr attach_agent $udp

$ns at <time> “$my_cbr start”

Các tham số:

• start: bắt đầu gửi packet theo các tham số cấu hình • stop: ngừng gửi packet

• PacketSize_: cỡ cố định của packet được tạo, ví dụ 48 • rate_: tốc độ truyền, ví dụ 64kb

• interval_: (tuỳ chọn) khoảng cách thời gian giữa các gói, ví dụ 0.05 • random_: cờ báo nhiễu trong các lần xuất phát, mặc định là tắt, 1 là bật • maxpkts_: số gói lớn nhất được gửi, ví dụ 1000

Chương 4: OTcl script trong NS-2 4.5.2 Traffic thay đổi theo phân bố mũ Exponential

Các packet có kích cỡ cố định. Thủ tục này là một phân phối tắt/bật. Trong các giai đoạn bật (on), packet được gửi ở tốc độ cố định. Trong các giai đoạn tắt (off), không có packet nào được gửi.

Mã Tcl thực thi nguồn traffic CBR trong mô phỏng như sau:

set my_exp [new Application/Traffic/Exponential]

Các tham số cấu hình:

• PacketSize_: cỡ cố định của packet được tạo, ví dụ 210

• burst_time_: thời gian bật trung bình cho bộ khởi tạo, ví dụ 500ms • idle_time_: thời gian tắt trung bình cho bộ khởi tạo, ví dụ 500ms • rate_: tốc độ gửi suốt thời gian “bật”, ví dụ 100kb

4.5.3 Traffic thay đổi theo phân bố Pareto

Dùng phân bố Pareto bật/tắt để tạo các traffic tập hợp, các traffic có phụ thuộc dải dài. Mã OTcl để thực thi nguồn traffic Pareto trong mô phỏng như sau:

set my_pareto [new Application/Traffic/Pareto]

Các tham số:

• PacketSize_: cỡ cố định của packet được tạo, ví dụ 210

• burst_time_: thời gian bật trung bình cho bộ khởi tạo, ví dụ 500ms • idle_time_: thời gian tắt trung bình cho bộ khởi tạo, ví dụ 500ms • rate_: tốc độ gửi suốt thời gian “bật”, ví dụ 100kb

• shape_: tham số hình dáng cho phân bố Pareto, ví dụ 1.5 4.5.4 TrafficTrace

TrafficTrace là traffic được tạo dựa trên file trace. File nhị phân phải có 2x32 trường trong thứ tự byte mạng.Trường đầu tiên là khoảng thời gian cho đến khi packet dế tiếp được tạo, tính bằng ms. Trường thứ hai là chiều dài của packet kế tiếp, tính bằng byte. Thủ tục filename của lớp Tracefile gắn file trace vào đối tượng Tracefile.

Mã OTcl:

set t_file [new Tracefile] $t_file filename <file>

set src [new Application/Traffic/Trace] $src attach-tracefile $t_file

Trong đó $t_file là file nhị phân và hai trường trong trong file chứa các lần inter- packets, tính bằng mili giây và cỡ packet, tính bằng byte.

Chương 4: OTcl script trong NS-2 4.6 Các dịch vụ cơ bản trong Internet

Hai application mô phỏng gửi traffic trên đỉnh đối tượng TCP là: Application/FTP và Application/Telnet

4.6.1 Giao thức truyền tập tin FTP Mã OTcl dùng FTP trong mô phỏng là:

set ftp [new Application/FTP] $ftp attach-agent $tcp

$ns at <time> “$ftp start”

Các tham số:

• attach-agent: gắn Application/FTP vào một agent • start: khởi động Application/FTP truyền dữ liệu • stop: ngưng truyền dữ liệu

• produre n: n là bộ đếm số packet được truyền

• producemore n: n là giá trị số packet vừa mới tăng được truyền • send n: tương tư như produremore, nhưng gửi n byte thay vì n packet 4.6.2 Telnet

Mã OTcl dùng Telnet trong mô phỏng:

set telnet [new Application/Telnet] $telnet attach-agent $tcp

Các tham số cấu hình:

• interval_: thời gian đến nội (inter-arrival) trung bình của packet được tạo bởi đối tượng Telnet

if (interval_==0) Số lần đến nội theo phân bố tcplib

if (interval_!=0) Số lần đến nội theo phân bố mũ, giá trị trung bình được gán bằng giá trị interval_

4.6.3 Giao thức truyền siêu văn bản HTTP

Mã OTcl để thực thi HTTP (server (chủ) và client (khách)) trong mô phỏng: • Ứng dụng HTTP ở Node client:

set client [new HTTP/Client $ns $node0] $client connect $server

• Ứng dụng HTTP ở Node server:

set server [new HTTP/Server $ns $node0]

Chương 4: OTcl script trong NS-2

$server set-page-generator $pgp 4.7 Tracing

Trong NS, các hoạt động mạng được trace (lưu dấu) trong các simplex link. Nếu mô phỏng được chỉ trực tiếp đến các hoạt động trace (bằng lệnh $ns trace-all

file hay $ns namtrace-all file) thì các link sẽ có các đối tượng trace được

chèn thêm vào. User cũng có thể tạo đối tượng trace với loại xác định để lưu vết mạng từ nguồn đến đích bằng lệnh create-trace {type file src dst}.

Khi từng đối tượng được chèn thêm đối tượng trace (EnqT, DeqT, DrpT, RecvT) nhận packet, nó sẽ ghi vào file trace xác định mà không tiêu tốn thời gian mô phỏng. Và truyền packet đến đối tượng mạng kế tiếp.

Documento similar