1. Mô phỏng các gói tin UDP/TCP
2.1 The Interface to the Simulation Operator (The API)
Kịch bản giả lập cấp độ người sử dụng đòi hỏi một lệnh để đặc tả đinh tuyến unicast hay các giao thức cho mô phỏng.Một kế hoạch định tuyến chính là một cơ chế tổng quan trong đó NS sẽ tính toán các đường đi trong bộ mô phỏng.Có 4 cơ chế routing trong NS :Static, Session, Dynamic và Manual. Ngược lại, một giao thức định tuyến là một sự thực hiện của một thuật toán đặc biệt.Thông thường Static và Session routing dùng thuật toán Dijkstra để tìm đường đi ngắn nhất;Còn cơ chế dynamic routing dùng thuật toán Bellman-Ford phân tán.trong NS, thường không có sự khác biệt rõ ràng giữa cơ chế và thuật toán cho static và session routing, thường quy về giao thức.
- rtproto{}: là phương thức trong lớp: class Simulator đặc tả giao thức unicast routing dược dùng trong mô phỏng.Nó có nhiều tham số: đầu tiên là ID của giao thức routing, tiếp theo là tham số đặc tả các node sẽ chạy trong instance của giao thức này.Mặc định là chạy cùng một giao thức routing trong tất cả các node trong tô pô mạng.Ví dụ về lệnh rtproto{} như sau:
$ns rtproto Static ;# Enable static route strategy for the simulation
$ns rtproto DV $n1 $n2 $n3 ;# Run DV agents on nodes $n1, $n2, and $n3
$ns rtproto LS $n1 $n2 ;# Run link state routing on specified nodes
Nếu NS không thực hiện rtproto{}, nó sẽ thực hiện chạy Static routing trên tất cả các node.
Nhiều dòng rtproto{} cho cùng hay các giao thức routing khác nhau có thể xảy ra trong một kịch bản mô phỏng.Tuy nhiên một mô phỏng không thể dùng cả hai cơ chế routing tập trung như static hay session routing và các giao thức định tuyến động được mô tả hóa như DV.
Trong dynamic routing, mỗi node có thể được chạy nhiều hơn một giao thức routing, khi đó nhiều hơn một giao thức sẽ có một đường định tuyến tới cùng một đích.Do đó, mỗi giao thức sẽ thêm vào một gía trị tham chiếu tới mõi đường định tuyến.Đây là các giá trị không âm trong dải 0. . . 255.Các giá tri thấp hơn sẽ được ưu tiên hơn.Khi các agent giao thức định tuyến có nhiều hơn một đưwngf đi tới cùng đích, đường được chọn sẽ được cài đặt vào bảng forwarding table của node.Ta gọi đường định tuyến có cost thấp nhất là “candidate” route.Nếu có nhiều candidate route từ cùng một hay nhiều giao thức khác nhau, một trong các đường của agent đó sẽ được chọn ngẫu nhiên.
Preference Assignment and Control: Mỗi agent giao thức chứa một mảng các ưu tiên định tuyến rtpref_. Đó là một thành phần trên mỗi đích, được đánh chỉ mục bởi node.Giá trị ưu tiên mặc định đươc dùng bởi mỗi giao thức xuất phát từ một biến lớp preference_ cho mỗi giao thức, mặc định là :
Agent/rtProto set preference_ 200 ; # global default preference
Agent/rtProto/Direct3 set preference_ 100 Agent/rtProto/DV set preference_ 120
Một kịch bản mô phỏng có thể điều khiển định tuyến bằng cách biến đổi sự ưu tiên của đường định tuyến qua một trong 3 cách :
+ Biến đổi độ ưu tiên cho mỗi đường đi qua một protocol agent riêng biệt. + Biến đổi độ ưu tiên mọi đường đi được học bởi agent,
+ Biến đổi các biến lớp cho agent trước khi agent được tạo ra.
Link Cost Assignment and Control: Trong các giao thức định tuyến đươc thực hiện hiện tại,,
metric của một đường đi tới đích của một node là cost để tìm thấy đích đó từ node.Có thể thay đổi cost của các link. Thủ tục instance cost{} được gọi giống như
$ns cost <node1> <node2> <cost> : Thiết lập giá của đường link từ node 1 tới node 2 $ns cost $n1 $n2 10 ;# set cost of link from $n1 to $n2 to 10
$ns cost $n2 $n1 5 ; # set cost of link in reverse direction to 5
[$ns link $n1 $n2] cost? ; # query cost of link from $n1 to $n2
[$ns link $n2 $n1] cost? ; # query cost of link in reverse direction
Chú ý rằng thủ tục thiết lập cost chỉ theo một hướng, tương tự , thủ tục cost?{} trả về giá trị cost của một liên kết vô hướng, có giá trị mặc định là 1.