Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
382,5 KB
Nội dung
Chapter 16 Mạng Mobile NS Chương trình bày mơ hình wireless đưa tính linh động nhóm Monarch thuộc CMU mở rộng sang NS Chương gồm có hai phần vài phần phụ Phần khái qt mơ hình linh động đưa nhóm Monarch CMU Trong phần này, khái quát đặc tính mobilenode, chế định tuyến thành phần cấu thành mạng sử dụng để thiết kế ngăn xếp mạng cho mobilenode Các thành phần cấu thành trình bày khái quát ngắn gọn kênh (channel), giao diện mạng (Networkinterface), mơ hình wireless radio phổ biến, giao thức MAC, giao tiếp hàng đợi, lóp liên kết (Link) mơ hình giao thức phân giải địa (ARP= Address resolution protocol) Vết dị tìm (trace) CMU hỗ trợ hệ node di chuyển vận chuyển chuỗi file trình bày khái qt phần Mơ hình CMU sở cho phép mơ mạng LAN wireless hay mạng multi-hop với thủ tục ad-hoc Sự mở rộng mơ hình cho phép kết hợp trình mơ mạng wireless hữu tuyến MobileIP mở rộng thành mơ hình wireless Điều thảo luận phần chương 16.1 The basic wireless model in ns Thực chất mơ hình wireless bao gồm MobileNode lõi (core) với đặc tính hỗ trợ thêm vào cho phép trình mơ mạng multi-hop với thủ tục adhoc, mạng LAN wireless, … Đối tượng MobileNode đối tượng tách biệt Lớp MobileNode C++ xuất phát từ lớp cha lớp Node (được trình bày chi tiết chương 5) Vì vậy, MobileNode đối tượng Node sở cộng thêm chức wireless node mobile có khả di chuyển bên topo, có khả nhận truyền tín hiệu đến từ kênh wireless Sự khác chúng MobileNode kết nối liên kết (link) đến node khác hay mobilenode Trong phần này, trình bày đặc tính MobileNode, chế định tuyến nó, giao thức định tuyến dsdv, aodv, tora dsr, trình tạo ngăn xếp mạng cho phép kênh truy suất bên MobileNode, trình bày cách ngắn gọn thành phần cấu thành ngăn xếp, vết hỗ trợ (trace support) di chuyển/vận chuyển (movement/traffic) chuỗi cho trình mơ wireless 16.1.1 Mobilenode: tạo topo wireless MobileNode đối tượng nsNode sở với chức di chuyển, khả truyền nhận kênh cho phép tạo môi truờng mobile, môi trường mô wireless Lớp MobileNode có xuất phát từ lớp sở Node MobileNode đối tượng tách biệt Các tính mobile gồm có di chuyển node, cập nhập vị trí định kỳ, trì đường biên topo,… thực thi C++ q trình dị tìm thành phần mạng bên MobileNode (như phân lớp, dmux, LL, Mac, Channel, …) thực thi Otcl Các chức thủ tục trình bày phần tìm thấy ~ns/mobilenode.{cc,h}, ~ns/tcl/lib/ns-mobilenode.tcl, ~ns/tcl/mobility/dsdv.tcl, ~ns/tcl/mobility/dsr.tcl, ns/tcl/mobility/tora.tcl Các tập lệnh minh hoạ tìm thấy ~ns/tcl/ex/wireless-test.tcl and ~ns/tcl/ex/wireless.tcl Trong minh họa sử dụng topo nhỏ có node, minh họa thứ hai thực thi topo có 50 node Các tập lệnh thực thi đơn giản cách gõ lệnh: $ns tcl/ex/wireless.tcl (or /wireless-test.tcl) Bốn giao thức định tuyến ad-hoc hỗ trợ DSDV (Destination Sequence Distance Vector), DSR (Dynamic Source Routing), TORA (Temporally ordered Routing Algorithm) OADV (Adhoc On-demand Distance Vector) The primitive to create a mobilenode is described below Please note that the old APIs for creating a mobilenode depended on which routing protocol was used, like Cơ sở tạo mobilenode trình bày bên Chú ý API trước tạo mobilenode phụ thuộc vào giao thức định tuyến sử dụng, giống set mnode [$opt(rp)-create-mobile-node $id] where $opt(rp) "dsdv", "aodv", "tora" hay "dsr" id số mobilenode Nhưng cách sử dụng trứơc API lại khác API trình bày sau $ns_ node-config -adhocRouting $opt(adhocRouting) -llType $opt(ll) -macType $opt(mac) -ifqType $opt(ifq) -ifqLen $opt(ifqlen) -antType $opt(ant) -propInstance [new $opt(prop)] -phyType $opt(netif) -channel [new $opt(chan)] -topoInstance $topo -wiredRouting OFF -agentTrace ON -routerTrace OFF -macTrace OFF Cấu hình API cho mobilenode với tất giá trị giao thức định tuyến adhoc-routing, ngăn xếp mạng, kênh, topo, mơ hình chung, với định tuyến hữu tuyến trả on hay off vết tìm kiếm trả on hay off mức khác (router, mac, agent) Địa phân cấp sử dụng, địa phân cấp node cần phải đưa xác Để có nhiều thông tin lệnh (phần node API mới) xem chương "Restructuring ns node and new Node APIs" tài liệu thích NS Đây phương pháp tạo mobilenode: for { set j } { $j < $opt(nn)} {incr j} { set node_($j) [ $ns_ node ] $node_($i) random-motion ;# disable random motion } Thủ tục tạo đối tượng mobilenode (tách biệt), tạo agent định tuyến adhoc-routing đặc tả, tạo ngăn xếp mạng gồm: lớp link, giao diện ngăn xếp, lớp mac, giao diện mạng với antenne, sử dụng định nghĩa mơ hình phổ biến, tương Hình 16.1: Lược đồ mobilenode chuẩn wireless Monarch CMU mở rộng NS kết (interconnects) thành phần cấu thành kết nối ngăn xếp đến kênh Mobilenode trơng giống lược đồ hình 16.1 Cấu trúc mobilenode sử dụng cho định tuyến khác biệt với mobilenode trình bày Lớp SRNode xuất phát từ lớp MobileNode SRNode không sử dụng địa demux hay phân lớp tất packet nhẩn node Hình 16.2: Lưu đồ SRNode chuẩn wireless Monarch CMU mở rộng NS diều khiển giảm xuống agent định tuyến DST theo mặc định Agent định tuyến DSR nhận pkts cho cách điều khiển port dmux hay chuyển tiếp pkts tuyến đích pkt hdr hay gửi tuyến yêu cấu tuyến hồi đáp (reply) cho packet Chi tiết agent định tuyến DSR tìm thấy phần 16.1.5 Mơ hình lưu đồ SRNode biểu diễn hình 16.2 16.1.2 Tạo họat động cho Node (Creating Node movements) Mobilenode thiết kế để hoạt động (move) dạng topo Tuy nhiên dạng thứ khơng sử dụng Đó Mobilenode hoạt động dạng flat (phẳng) với Z lúc Vì vậy, mobilenode có toạ độ X, Y, Z(=0) mà tiếp tục điều chỉnh node hoạt động (move) Có hai chế đưa di chuyển mobilenode Trong phương thức đầu tiên, vị trí bắt đầu node đích sau thiết lập cách rõ rang Những dẫn (directive) thường tập trung chuỗi file di chuyển riêng biệt Vị trí bắt đầu đích tương lai mobilenode thiết lập cách sử dụng API sau: $node set X_ $node set Y_ $node set Z_ $ns at $time $node setdest Tại $time sec, node bắt đầu hoạt động (moving) từ vị trí bắt đầu (x1,y1) chuyển tiếp sang đích (x2,y2) với tốc độ (speed) xác định Trong phương thức này, node-movement-updates khởi tạo (triggered) vị trí node thời gian u cầu Q trình khởi tạo dạng truy vấn (query) từ trình tìm kiếm node lân cận để biết khoảng cách chúng, hay chọn lời dẫn mô tả để thay đổi hướng tốc độ node Một minh hoạ họat động (movement) chuỗi file họat động sử dụng phương thức API, tìm thấy ~ns/tcl/mobility/scene/scen-670x67050-600-20-0 Ở đây, 670x670 xác định chiều dài chiều rộng topo với 50 node hoạt động với tốc độ tối đa 20m/s với thời gian tạm dừng (pause) 600s Các file hoạt động node tạo cách sử dụng chuỗi việc tạo CMU tìm thấy ~ns/indep-utils/cmu-scen-gen/setdest Xem phần 16.18 để biết chi tiết trình tạo chuỗi node họat động Phương thức thứ hai tận dụng trình họat động ngẫu nhiên node Thường sử dụng: $mobilenode start khởi động mobilenode với vị trí ngẫu nhiên thường cập nhập để thay đổi hướng tốc độ node Giá trị đích tốc độ tạo ngẫu nhiên Chúng ta không sử dụng phương thức thứ hai đưa đến người dung với khảo sát chi tiết Quá trình họat động mobilenode thực thi C++ Hãy xem phương pháp ~ns/mobilenode.{cc.h}chi tiết trình thực thi Không quan tâm đến phương thực dụng để tạo họat động cho node, topo mobilenode cần phải xác định Nó cần phải định nghĩa trước tạo mobilenode Dạng topo không cấu trúc (flat) thông thừơng tạo dựa vào đặc tả chiều dài chiều rộng topo sở: set topo [new Topography] $topo load_flatgrid $opt(x) $opt(y) opt(x) opt(y) giới hạn sử dụng trình mơ Q trình họat động mobilenode đưa vào (logged) cách sử dụng thủ tục sau: proc log-movement {} { global logtimer ns_ ns set ns $ns_ source /mobility/timer.tcl Class LogTimer -superclass Timer LogTimer instproc timeout {} { global opt node_; for {set i 0} {$i < $opt(nn)} {incr i} { $node_($i) log-movement } $self sched 0.1 } set logtimer [new LogTimer] $logtimer sched 0.1 } Trong trường hợp này, vị trí mobilenode đặt vào sau 0.1 giây 16.1.3 Các thành phần cấu thành mạng mobilenode Ngăn xếp mạng mobilenode gồm có lớp link (LL), mô-đun ARP kết nối đến LL, hang đợi ngăn xếp IFq (interface priority queue(IFq)), lóp MAC, giao diện mạng netIF (interface(netIF)), tất kết nối đến kênh channel Các thành phần cấu thành mạng tạo tìm thấy OTcl Phương thức lien quan add-interface() in ~ns/tcl/lib/ns-mobilenode.tcl biểu diễn đây: # #Thiết lập cấu trúc lớp Link, lớp MAC, giao tiếp mạng # and lớp vật lý cho node di động # Node/MobileNode instproc add-interface { channel pmodel lltype mactype qtype qlen iftype anttype } { $self instvar arptable_ nifs_ $self instvar netif_ mac_ ifq_ ll_global ns_ MacTrace opt set t $nifs_ incr nifs_ set netif_($t) [new $iftype] ; # net-interface set mac_($t) [new $mactype] ; # mac layer set ifq_($t) [new $qtype] ; # interface queue set ll_($t) [new $lltype] ; # link layer set ant_($t) [new $anttype] # # Local Variables # set nullAgent_ [$ns_ set nullAgent_] set netif $netif_($t) set mac $mac_($t) set ifq $ifq_($t) set ll $ll_($t) # # Initialize ARP table only once # if { $arptable_ == "" } { set arptable_ [new ARPTable $self $mac] set drpT [cmu-trace Drop "IFQ" $self] $arptable_ drop-target $drpT } # # Link Layer # $ll arptable $arptable_ $ll mac $mac $ll up-target [$self entry] $ll down-target $ifq # # Interface Queue # $ifq target $mac $ifq set qlim_ $qlen set drpT [cmu-trace Drop "IFQ" $self] $ifq drop-target $drpT # # Mac Layer # $mac netif $netif $mac up-target $ll $mac down-target $netif $mac nodes $opt(nn) # # Network Interface # $netif channel $channel $netif up-target $mac $netif propagation $pmodel ; # Propagation Model $netif node $self ; # Bind node < -> interface $netif antenna $ant_($t) ; # attach antenna # # Physical Channel # $channel addif $netif ; # add to list of interfaces # ============================================================ # Setting up trace objects if { $MacTrace == "ON" } { # # Trace RTS/CTS/ACK Packets # set rcvT [cmu-trace Recv "MAC" $self] $mac log-target $rcvT # # Trace Sent Packets # set sndT [cmu-trace Send "MAC" $self] $sndT target [$mac sendtarget] $mac sendtarget $sndT # # Trace Received Packets # set rcvT [cmu-trace Recv "MAC" $self] $rcvT target [$mac recvtarget] $mac recvtarget $rcvT # # Trace Dropped Packets # set drpT [cmu-trace Drop "MAC" $self] $mac drop-target $drpT } else { $mac log-target [$ns_ set nullAgent_] $mac drop-target [$ns_ set nullAgent_] } # ============================================================ $self addif $netif } Thực chất phương thức tạo ngăn xếp mạng thấy hình 16.1 Mỗi thành phần cấu thành mô tả ngăn gọn Hi vọng tài liệu chi tiết có tương lai Link Layer LL sử dụng mobilenode giống mô tả chương 14 Chỉ khác lớp LL mobilenode, có mơ đun ARP kết nối đến giải tất trình chuyển đổi địa IP sang địa hardware (MAC) Thông thường tất packet từ kênh, packet đưa xuống LL nhờ vào agent định tuyến Routing Agent LL đưa packet xuống hàng đợi giao tiếp Đối với packet gửi vào (từ kênh riêng), lớp MAC đưa packet lên LL sau dừng node_entry_ point Lớp LL thực thi ~ns/ll.{cc,h} ~ns/tcl/lan/ns-ll.tcl ARP Mô đun giao thức phân giải địa (Address Resolution Protocol) thực thi dạng BSD (implemented in BSD style) nhận câu hỏi từ lớp Link Nếu ARP có địa hardware đích đến, ghi địa đích đến vào header MAC packet Ngược lại, gửi broadcasts truy vấn ARP, tạm thời giữ lại packet Đối với đích đến khơng biết địa hardware, có đệm đơn cho packet Khi gửi thêm packet đến đích mà gửi ARP packet ban đầu đệm bị hủy (drop) Khi biết địa hardware packet, packet thêm vào hàng giao tiếp (interface queue) hop Lớp ARPTable thực thi ~ns/arp.{cc,h} ~ns/tcl/lib/ns-mobilenode.tcl Interface Queue Lớp PriQueue thực thi hàng đợi ưu tiên đưa quyền ưu tiên để định tuyến packet, thêm chúng vào đầu hàng đợi Nó hỗ trợ trình thực thi tất packet hàng đợi gỡ bỏ packet với địa đích đến Hãy xem ~ns/priqueue.{cc,h} để biết q trình thực thi hàng đơi giao tiếp Mac Layer IEEE 802.11 phân phối chức tọa độ DCF (distributed coordination function (DCF) giao thức MAC thực thi CMU Nó sử dụng khuôn dạng RTS/CTS/DATA/ACK cho tất packet unicast đơn giản gửi data cho tất packet broadcast Quá trình thực thi sử dụng phương thức cảm nhận sóng mang dạng vật lý lẫn dạng ảo Lớp Mac802_11 đưa ~ns/mac-802_11.{cc,h} Tap Agents Các agents mà phân lớp lớp Tp xác định mac.h tự đăng ký với đối tượng mac cách sử dụng phương thức installTap() Nếu giao thực MAC cụ thể cho phép, tap đưa paket nhận lớp MAC cách lộn xộn, trước trình lọc địa thực Xem trình thực thi lóp Tap ~ns/mac.{cc,h} Network Interfaces Lớp giao tiếp mạng (Network Interphase) đáp ứng giao tiếp phần cứng (hardware interface) sử dụng mobilenode để truy suất đến kênh truyền thông Giao diện môi trường truyền thong wireless chia thực thi lớp Phy/WirelessPhy Giao diện tùy thuộc vào trình collision mơ hình truyền bá radio nhận packet truyền qua giao diện node khác đến kênh truyền Giao diện cho thấy rõ packet truyền qua với siêu liệu ngòai (meta-data) quan hệ với giao diện truyền tin nguồn điện truyền, chiều dài bước song,… Siêu liệu ngòai header pkt sử dụng mơ hình chung giao tiếp nhận mạng để xác định packet có nguồn điện nhỏ để nhận và/hoặc (and/or) giữ lại và/hoặc (and/or) dị tìm (cảm nhận sóng mang) node đảm nhận việc nhận Để biết trình thực thi giao tiếp mạng xem ~ns/phy.{cc.h} and ~ns/wireless-phy.{cc,h} Mơ hình truyền bá Radio Sử dụng cơng thức tính suy giảm khỏang cách gần 1/r2 khỏang cách xa 1/r4 Xem trình thực thi ~ns/tworayground.{cc,h} Antenna Antenna omni-directional sử dụng với mục đích chung mobilenodes Xem chi tiết trình thực thi ~ns/antenna.{cc,h} 16.1.4 Phân biệc giao thức lớp MAC mạng di động (mobile) Trong NS, hai giao thức lớp MAC thực đầy đủ mạng mobile 802.11 TDMA 802.11 MAC protocol Tham khảo ~ns/mac-802_11.{cc,h} Sơ lược giao thức TDMA Lưu ý rằng: Phần trạng thái sơ bộ, có thêm số tính thiết thực như: tranh chấp pha ban đầu (preamble phase) với khe thời gian lại (slot time) môi trường multi-hop Không giống tranh chấp giao thức sở MAC, giao thức TDMA MAC chi định khe thời gian khác để node truyền nhận packet Tập khe thời gian cấp cao gọi frame TDMA Hiện tại, NS hỗ trợ single hop, giao thức sở ban đầu (preamble-based) TDMA MAC Với giao thức này, frame TDMA có phần preamble bên cạnh phần data truyền qua khe Trong giới hạn preamble, node có sublot chuyên dụng sử dụng để gửi broadcast packet gửi di Các node khác lắng nghe khỏang preamble ghi lại thời gian khe nhận paket Giống giao thức thông thường TDMA khác (ví dụ GSM), node có khe truyền liệu dùng để gửi packet Để tránh tiêu hao lượng không cấn thiết, node thay mở (on) hay tắt (off) radio cách gọi node API: set_node_sleep() Radio mở (on): pha ban đầu có packet để gửi nhận Preamble thực thi kiến trúc data trung tâm tdma_preamble_, sử dụng tất node Tại frame ban đầu, node ghi địa destination vào subslot preamble có packet để gửi Tại pha preamble tiếp theo, node gửi packet khe truyền kiểm tra preamble để xác định packet để nhận slot khác Các tham số sau cấu hình: băng thơng link wireless bandwith_, chiều dài khe packet_slot_len_, số lượng node max_node_num_ Tham khảo chi tiết ~ns/mac-tdma.{cc,h} 16.1.5 Các dạng khác Routing Agent khác mạng mobile Bốn giao thức định tuyến ad-hoc khác thực thi mạng mobile nsare dsdv, dsr, aodv tora DSDV Trong giao thức định tuyến này, meassage chuyển đổi mobilenode lân cận Có thể cập nhập cách thường trình hay (triggered) Các trình cập nhập thực nhanh chóng thơng tin từ lân cận thay đổi bảng định tuyến Một packet gửi theo tuyến đến đích khơng biết giữ lại yêu cầu gửi ngòai pkts giữ lại hồi đáp route-replies đích Có đệm buffer có kích thước tối đa để giữ lại pkts thông tin định tuyến đến nơi hủy bỏ pkts Tất packet dự định cho mobilenode định tuyến trực tiếp địa dmux đến port dmux Port dmux điều khiển packet đến agent đích tương ứng Port 225 gắn kèm với định tuyến agen mobilenodes Các mobilenodes sử dụng đích mặc định (default-target) phân lớp (hay địa demux) Trong trường hợp đích khơng tìm thấy phân lớp (ngẫu nhiên xảy đích packet khơng phải mobilenode), pkts dùng để chi đích mặc định định tuyến agent Định tuyến agent gán hop vào packet gửi xuống lớp link Giao thức định tuyến thực thi thức C++ Tham khảo ~ns/dsdv ~ns/tcl/mobility/dsdv.tcl để có hiểu chi tiết q trình thực thi giao thức DSDV DSR Phần trình bày cách ngắn gọn chức giao thức định tuyến động Như nói trước đây, SRNode khác với MobileNode Entry_của SRNode đến trình định tuyến agent DSR, buộc tất packet nhận node truyền cho trình định tuyến agent Mơ hình cần thiết cho thơng tin định tuyến sau (trong tương lai) gói (packet) data, ngược lại khơng qua q trình định tuyến agent Agent DRS kiểm tra gói data cho thơng tin tuyến nguồn (source-route) Nó chuyển tiếp (forward) packet dựa thơng tin định tuyến.Tóm lại, khơng tìm thơng tin định tuyến packet, cung cấp tuyến đích, tuyến biết giữ lại packet gửi tuyến mà khơng u cầu phải biết đích Tóm lại, q trình u cầu định tuyến ln ln bắt đầu với gói data mà khơng cần đích nó, thường gửi broadcast đến tất lân cận Các Route-reply gửi trở node trung gian hay node đích, tìm thơng tin định tuyến cho đích Nó điều khiển tất packet đến port dmux Trong SRNode, port số 255 đến agent rỗng (null) packet sẵn sang xử lý agent định tuyến Xem thư mục ~ns/dsr ~ns/tcl/mobility/dsr.tcl để biết xem chi tiết TORA Tora giao thức định tuyến phân cấp dựa thuật tóan “link reversal” (liên kết ngược) Tại tách biệt TORA thực thi cho đích Khi node cần tuyến đến đích đưa gửi broadcast thơng điệp QUERY có địa đích cho tuyến u cầu Gói di chuyển qua mạng tìm đích hay node trung gian mà có tuyến đến đích Node nhận sau gửi broadcast gói UPDATE để ghi danh sách địa đích Khi node truyền qua mạng, node cập nhập giá trị cao giá trị lân cận (neighbour) từ giá trị mà nhận UPDATE Kết chuỗi link trực tiếp xuất phát từ câu hỏi truy vấn QUERY đích node Nếu node đưa đích khơng thể đến được, thiết lập giá trị cục lớn (maximum) cho đích Trong trường hợp, node khơng thể tìm thấy lân cận có giới hạn wrt đích này, cố gắng tìm tuyến (Incase the node cannot find any neighbour having finite height wrt this destination it attempts to find a new route) Trong trường hợp phân vùng mạng, node gửi broadcast thong điệp CLEAR để thiết lập lại tất tuyến gỡ bỏ tuyến không hợp lệ từ mạng TORA họat động IMEP (Internet MANET Encapsulation Protocol) cung cấp chế phân phát an tòan thông điệp định tuyến đưa giao thức định tuyến thay đổi link đến lân cận IMEP cố gắng kết hợp hai thông đệip IMEP TORA packet đơn (gọi khối) để giảm overhead Để trạng thái gửi trì danh sách node lân cận, IMEP gửi thông điệp BEACON trả lời node nghe thấy thông điệp trả lời HELLO Xem thư mục ns/tora ns/tcl/mobility/tora.tcl để biết rõ trình thực thi TORA NS AODV AODV giao thức kết hợp hai giao thức DSR DSDV Nó có sở khám phá tuyến (route-discovery) trì tuyến DSR sử dụng phương pháp định tuyến hopby-hop, số hướng dẫn DSDV Node muốn biết tuyến đưa đích tạo ROUTE REQUEST Route request chuyển tiếp node trung gian tạo đảo ngược tuyến cho từ đích Khi u cầu đến node với tuyến đích xác, tạo ROUTE REPLY gồm có số hop yêu cầu đến đích Tất node tham gia q trình chuyển tiếp reply đến đích tạo tuyến chuyển tiếp đến đích Trạng thái tạo từ node từ nguồn đến đích trạng thái hop-byhop tất tuyến thực định tuyến nguồn Xem ns/aodv ns/tcl/lib/ns-lib.tcl để biết chi tiết AODV 16.1.6 Hỗ trợ dò tìm (Trace Support) Hỗ trợ dị tìm cho trình mơ wireless (wireless) sử dụng đối tượng cmutrace Trong tương lai, mở rộng để kết hợp hỗ trợ dị tìm với điều khiển sẵn có NS, cung bao gồm hỗ trợ nam cho mô đun wireless Bây giờ, chúng tơi giải thích cách ngắn gọn đối tượng cmu-trace cách chúng sử dụng để dị tìm packet wireless Các đối tượng cmu-trace có dạng - CMUTrace/Drop, CMUTrace/Recv CMUTrace/Send Các dạng sử dụng để dị tìm packet bị drop, nhận gửi agent, tuyến, lóp mac, hay hàng đợi giao tiếp NS Các phương thức thủ tục sử dụng để thực thi cho hỗ trợ dị tìm wireless tìm thấy ~ns/trace.{cc,h} and ~ns/tcl/lib/ns-cmutrace.tcl Một đối tượng cmu-trace tạo lệnh sau: set sndT [cmu-trace Send "RTR" $self] tạo đối tượng dị tìm, sndT dạng CMUTrace/Send để tìm kiếm tất packet gửi ngịai router Các đối tượng sử dụng để tím kiếm packet MAC, agent (trong trình định tuyến hay trường hợp khác), router hay đối tượng NsObject khác Đối tương cmu-trace CMUTrace có nguồn gốc từ lớp sở Trace (See Chapter 23 for details on class Trace) Lớp CMUTrace định nghĩa sau: class CMUTrace : public Trace { public: CMUTrace(const char *s, char t); void recv(Packet *p, Handler *h); void recv(Packet *p, const char* why); private: int off_arp_; int off_mac_; int off_sr_; char tracename[MAX_ID_LEN + 1]; int tracetype; MobileNode *node_; int initialized() { return node_ && 1; } int command(int argc, const char*const* argv); void format(Packet *p, const char *why); void format_mac(Packet *p, const char *why, int offset); void format_ip(Packet *p, int offset); void format_arp(Packet *p, int offset); void format_dsr(Packet *p, int offset); void format_msg(Packet *p, int offset); void format_tcp(Packet *p, int offset); void format_rtp(Packet *p, int offset); }; Dạng trường (field) định nghĩa lớp Trace sử dụng để dạng khác dị tìm Đối với cmu-trace, định nghĩa s cho trình gử, r cho trình nhận D cho trình huỷ (drop) packet Dạng thứ tư f sử dụng để biểu thị trình chuyển tiếp packet (Khi node không tạo packet) Tương tự phương thức Trace::format(), CMUTrace::format() xác định rõ file định dạng tìm kiếm Phương thức biểu diễn sau: void CMUTrace::format(Packet* p, const char *why) { hdr_cmn *ch = HDR_CMN(p); int offset = 0; /* * Log the MAC Header */ format_mac(p, why, offset); offset = strlen(wrk_); switch(ch->ptype()) { case PT_MAC: break; case PT_ARP: format_arp(p, offset); break; default: format_ip(p, offset); offset = strlen(wrk_); switch(ch->ptype()) { case PT_DSR: format_dsr(p, offset); break; case PT_MESSAGE: case PT_UDP: format_msg(p, offset); break; case PT_TCP: case PT_ACK: format_tcp(p, offset); break; case PT_CBR: format_rtp(p, offset); break; } } } Hàm gọi chức định dạng khác phụ thuộc vào dạng paket tìm kiếm Tất trình tìm kiếm ghi vào đểm wrk_ Số đếm khỏang trống đệm (buffer) giữ lại đưa tùy theo chức tìm kiế Dạng xác định format_mac() sử dụng để tìm kiếm tất dạng pkt Các chức khác in thông tin thêm định nghĩa dạng packet #ifdef LOG_POSITION double x = 0.0, y = 0.0, z = 0.0; node_->getLoc(&x, &y, &z); #endif sprintf(wrk_ + offset, #ifdef LOG_POSITION "%c %.9f %d (%6.2f %6.2f) %3s %4s %d %s %d [%x %x %x %x] ", #else "%c %.9f _%d_ %3s %4s %d %s %d [%x %x %x %x] ", #endif op, // s, r, D or f Scheduler::instance().clock(), // time stamp src_, // the nodeid for this node #ifdef LOG_POSITION x, // x co-ord y, // y co-ord #endif tracename, // name of object type tracing why, // reason, if any ch->uid(), // identifier for this event packet_info.name(ch->ptype()), // packet type ch->size(), // size of cmn header mh->dh_duration, // expected time to send data ETHER_ADDR(mh->dh_da), // mac_destination address ETHER_ADDR(mh->dh_sa), // mac_sender address GET_ETHER_TYPE(mh->dh_body)); // type - arp or IP Nếu LOG_POSITION xác định tọa độ x y cho mobilenode in Q trình mơ tả trường khác tìm kiếm MAC đua thích Đối với trình thêm trường IP header vào IP packet mô tả Dưới mô tả vết IP: sprintf(wrk_ + offset, " - [%d:%d %d:%d %d %d] ", src, // IP src address ih->sport_, // src port number dst, // IP dest address ih->dport_, // dest port number ih->ttl_, // TTL value (ch->next_hop_ < 0) ? : ch->next_hop_); // next hopaddress, if any Một ví dụ vết packet tcp sau: r 160.093884945 _6_ RTR - tcp 1492 [a2 800] - [655 36:0 16777984:0 31 16777984] [1 0] Ở đây, thấy packet data TCP nhận node với id=6 UID pkt với cmn hdr size 1492 MAC miêu tả chi tiết IP pkt (ETHERTYPE_IP có giá trị 0x0800, ETHERTYPE_ARP 0x0806 ), mac-id node nhận Node gửi 4, thời gian gửi data pkt mong muốn qua kênh wireless a2 (số hexa: 160+2) Hơn nữa, IP tìm kiếm thơng tin địa đích src nguồn Địa đích src thông dịch địa sang dạng chuỗi 0.1.0 port Địa đích dest 1.0.3 với port Giá trị TTL 31 đích hop xa nguồn src Hơn nữa, định dạng TCP in thông tin tcp seqno =1 ackno =0 Xem định dạng khác mô tả ~ns//cmu-trace.cc packet darng DSR, UDP/MESSAGE, TCP/ACK and CBR Các dạng tìm kiếm khác sử dụng trình định tuyến agents (TORA DSR) để ghi lại kiện định tuyến "lúc khởi đầu (originating)" (thêm header SR vào packet) hay “chạy đến tuyến cuối nguồn src” vài vấn đề định tuyến với tuyến đích scr Các kiện tìm kiếm đặc biệt bắt đầu với “S” DSR “T” TORA tìm thấy ~ns/tora/tora.cc TORA ~ns/dsr/dsrgent.cc định tuyến DSR 16.1.7 Xét lại khuôn dạng cho vết tìm kiếm wireless ( Revised format for wireless traces) Trong trình nỗ lực kết hợp vết tìm kiếm wireless (wireless), sử dụng đối tượng cmu-trace, với trình tìm kiếm ns, thêm đối tượng dạng cải tiến vết tìm kiếm giới thiệu Nó duyệt lại vết tìm kiếm hỗ trợ lùi lại phù hợp với định dạng tìm kiếm cũ cho phép câu lệnh sau: $ns use-newtrace Lệnh gọi trước gọi lệnh $ns trace-all Lệnh use-newtrace thiết lập định dạng cho vết tìm kiếm wireless cách thiết lập biến mơ gọi newTraceFormat Hiện nay, vết tìm kiếm hỗ trợ mối biến trình mơ mở rộng đến phần lại ns tương lại Một ví dụ định dạng vết tìm kiếm biểu diễn bên dưới: s -t 0.267662078 -Hs -Hd -1 -Ni -Nx 5.00 -Ny 2.00 -Nz 0.00 -Ne -1.000000 -Nl RTR -Nw - -Ma -Md -Ms -Mt -Is 0.255 -Id -1.255 -It message -Il 32 -If -Ii -Iv 32 s -t 1.511681090 -Hs -Hd -1 -Ni -Nx 390.00 -Ny 385.00 -Nz 0.00 -Ne -1.000000 -Nl RTR -Nw - -Ma -Md -Ms -Mt -Is 1.255 -Id -1.255 -It message -Il 32 -If -Ii -Iv 32 s -t 10.000000000 -Hs -Hd -2 -Ni -Nx 5.00 -Ny 2.00 -Nz 0.00 -Ne -1.000000 -Nl AGT -Nw - -Ma -Md -Ms -Mt -Is 0.0 -Id 1.0 -It tcp -Il 1000 -If -Ii -Iv 32 -Pn tcp -Ps -Pa -Pf -Po r -t 10.000000000 -Hs -Hd -2 -Ni -Nx 5.00 -Ny 2.00 -Nz 0.00 -Ne -1.000000 -Nl RTR -Nw - -Ma -Md -Ms -Mt -Is 0.0 -Id 1.0 -It tcp -Il 1000 -If -Ii -Iv 32 -Pn tcp -Ps -Pa -Pf -Po r -t 100.004776054 -Hs -Hd -Ni -Nx 25.05 -Ny 20.05 -Nz 0.00 -Ne -1.000000 -Nl AGT -Nw - -Ma a2 -Md -Ms -Mt 800 -Is 0.0 -Id 1.0 -It tcp -Il 1020 -If -Ii 21 -Iv 32 -Pn tcp -Ps -Pa -Pf -Po s -t 100.004776054 -Hs -Hd -2 -Ni -Nx 25.05 -Ny 20.05 -Nz 0.00 -Ne -1.000000 -Nl AGT -Nw - -Ma -Md -Ms -Mt -Is 1.0 -Id 0.0 -It ack -Il 40 -If -Ii 22 -Iv 32 -Pn tcp -Ps -Pa -Pf -Po Giải thích định dạng vết tìm kiếm (new trace) Định dạng vết tìm kiếm new trace nói chi thành phần sau: Dạng kiện (Event type) Trong vết tìm kiếm trên, trường (như phần định dạng cũ) trình bày dạng đặt vào node bốn dạng sau s send r receive d drop f forward General tag Trường thứ hai bắt đầu với "-t" thời gian hay thời gian thiết lập chung: -t time -t * (global setting) Các thẻ thuộc tính node (Node property tags) Trường thuộc tính node node-id, mức độ tìm kiếm giống thực agent, router hay MAC Thẻ bắt đầu với "-N" trình bày đây-Ni: node id -Nx: tọa độ x node -Ny: tọa độ y node -Nz: tọa độ z node -Ne: mức lượng node -Nl: mức tìmkiếm, AGT, RTR, MAC -Nw: nguyên nhân kiện Các lý khác dẫn đến hủy packet đưa sau: "END" DROP_END_OF_SIMULATION "COL" DROP_MAC_COLLISION "DUP" DROP_MAC_DUPLICATE "ERR" DROP_MAC_PACKET_ERROR "RET" DROP_MAC_RETRY_COUNT_EXCEEDED "STA" DROP_MAC_INVALID_STATE "BSY" DROP_MAC_BUSY "NRTE" DROP_RTR_NO_ROUTE có nghĩa khơng có tuyến tồn "LOOP" DROP_RTR_ROUTE_LOOP có vịng lặp "TTL" DROP_RTR_TTL có nghĩ TTL khơng tìm "TOUT" DROP_RTR_QTIMEOUT packet hết hiệu lực "CBK" DROP_RTR_MAC_CALLBACK "IFQ" DROP_IFQ_QFULL khơng cịn chỗ đệm IFQ "ARP" DROP_IFQ_ARP_FULL hủy ARP "OUT" DROP_OUTSIDE_SUBNET hủy trạm sở tuyến nhận từ node bên ngòai domain Thơng tin Packet mức IP Các thẻ dùng cho trường bắt đầu với “-I” liệt kê đây: -Is: Địa nguồn số port nguồn scr -Id: Địa đích số port đích dest -It: Dạng packet -Il: Kích thứơc packet -If: id -Ii: id -Iv: Giá trị ttl Next hop info This field provides next hop info and the tag starts with a leading "-H" -Hs: id for this node -Hd: id for next hop towards the destination Packet info at MAC level This field gives MAC layer information and starts with a leading "-M" as shown below: -Ma: duration -Md: dst’s ethernet address -Ms: src’s ethernet address -Mt: ethernet type Thông tin Packet “Mức ứng dụng” (Application level) Thông tin packet mức ứng dụng gồm có dạng ứng dụng ARP, TCP, dạng giao thức định tuyến adhoc DSDV, DSR, AODV, … tìm thấy Trường bắt đầu với "-P" danh sách thẻ ứng dụng khác liệt kê đây: -P arp Giao thức phân giải địa Cụ thể ARP đưa thẻ sau đây: -Po: ARP Request/Reply -Pm: src mac address -Ps: src address -Pa: dst mac address -Pd: dst address -P dsr Phần giao thức định tuyến adhoc gọi định tuyến nguồn chủ động (Dynamic) Thông tin DSR trình bày thẻ sau đây: -Pn: Có node qua -Pq: Cờ yêu cầu trình định tuyến -Pi: Tuyến yêu cầu số -Pp: Cờ đáp lại trình định tuyến (Reply) -Pl: Chiều dài đáp lại -Pe: src srcrouting->dst nguồn qua định tuyến -Pw: Cờ báo lỗi -Pm: Số lỗi -Pc: Báo cáo đến ai? -Pb: lỗi link từ linka->linkb -P cbr Hằng số tốc độ bit Thơng tin ứng dụng CBR trình bày với thẻ sau: -Pi: Chỉ số -Pf: Thời gian để pkt chuyển tiếp -Po: số thời gian tùy chọn trình chuyển tiếp -P tcp Thông tin luồng TCP đưa thẻ sau: -Ps: seq number: số -Pa: ack number: số hồi đáp -Pf: thời gian để pkt chuyển tiếp -Po: Chỉ số tùy chọn chuyển tiếp Trường tiếp tục cải tiến thẻ thêm vào ứng dụng khác 16.1.8 Tạo node-movement traffic-connection cho wireless Thông thường topo lớn, họat động di chuyển node (node movement) lưu lượng kết nối (traffic connection) rõ file riêng Các file họat động lưu lượng tạo cách sử dụng họat động di chuyển kết nối CMU Hoạt động di chuyển MobileNode Một vài minh họa file họat động di chuyển tìm thấy ~ns/tcl/mobility/scene/scen-670x670-50-600-20-* Các file xác định topo có chiều dài 670 nghĩa với chiều dài 670m có 50 node di chuyền với tốc độ 20m/s thời gian chờ 600 node gán với vị trí ban đầu Các thơng tin lien qua đến số hop node cung cấp đối tượng “GOD” (XXX đâu thơng tin sử dụng??-câu trả lời dựa vào CMU) Mỗi node có tốc độ di chuyển trực tiếp Tham khảo thư mục ~ns/indep-utils/cmu-scen-gen/setdest/ Biên dịch file bên setdest bên tạo thực thi Thực thi setdest với đối số cách sau: /setdest -n -p -s -t -x -y > / Chú ý số để sử dụng cho node thay phiên CMU trước đây, để phù hợp với thực tế NS Tạo file mẫu lưu lượng (Generating traffic pattern files) Các ví dụ khn mẫu lưu lượng tìm thấy thư mục ~ns/tcl/mobility/scene/cbr-50-{10-4-512, 20-4-512} Các lưu lượng tạo đặt thư mục ~ns/indep-utils/cmu-scen-gen/ gọi cbrgen.tcl tcpgen.tcl Chúng sử dụng để tạo kết nôố CBR TCP theo thứ tự Để tạo kết nối CBR, thực thi ns cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections] [-rate rate] Để tạo kết nối, thực thi ns tcpgen.tcl [-nn nodes] [-seed seed] Bạn cần môt đường ống xuất file cbr-* hay tcp-* 16.2 Mở rộng mơ hình wireless CMU Như nói đến trước đây, mơ hình wireless CMU trước cho phép mơ mạng wireless LAN mạng ad-hoc Tuy nhiên, để sử dụng mơ hình wireless cho q trình mơ phỏng, sử dụng node wireless lẫn hữu tuyến (wire hay wireless) có để thêm phấn mở rộng đến mơ hình cmu Chúng ta gọi đặc tính wireless lẫn hữu tuyến (wired-cum-wireless) Cũng giống MobileIP SUN (thực thi mạng wireless) kết hợp mơ hình wireless cho phép mobileIP để chạy mobilenode wireless Hai phần sau mô tả hai mở rộng mơ hình wireless ns 16.2.1 Wireless với hữu tuyến (wired-cum-wireless scenarios) Các mobile trình bày hỗ trợ mạng đa hop ad-hop hay mạng wireless LAN Nhưng cần để mơ topo mạng wireless LAN kết nối với node hữu tuyến, hay cần để thực thi mobileIP node wireless này? Sự mở rộng làm cho mơhình wireless CMU cho phép thực thiện điều Vấn đề đối mặt với viễn cảnh wired-cum-wireless vấn đề định tuyến Trong ns, thông tin định tuyến tạo dựa kết nối topo, có nghĩa node kết nối đến khác thơng qua liên kết Các mobilenode khác khơng có khái niệm liên kết (link) Chúng định tuyến packet, topo wireless, sử dụng giao thức định tuyến chúng Vậy, làm thể để packet chuyển đổi hai dạng node? Một node gọi BaseStationNode tạo thực vai trò gateway miền (domain) hữu tuyến vô tuyến BaseStationNode chất phần lai phân cấp node1 (HierNode) MobileNode Node basestation (trạm sở) chịu trách nhiệm phân phát packet vào wireless domain Để đạt điều này, cần phân cấp định tuyến Mỗi wireless domain với base-station có miền địa Tất packet dự định trước đến node wireless tìm base-station gắn kèm với miền node wireless mà cuối điều khiển packet trđến đích (mobilenode) Vá mobilenode gửi packet, dự định đến wireless domain nó, đến node base-station Base-station biết cách chuyển tiếp packet đến đích (wire) Lược đồ BaseStationNode biểu diễn hình 16.3 Mobilenode wired-cum-wireless yêu cầu hỗ trợ phân cấp địa chỉ/định tuyến Vì vậy, MobileNode gần giống xác BaseStationNode SRNode, nhiên, đơn giản sở hữu địa phân cấp hier-address khơng u cầu địa demux khơng yêu cầu hỗ trợ phân cấp định tuyến Agent DSDV trình chuyển tiếp packet kiểm tra để biết đích dest đưa ngịai subnet Vì vậy, cố gắng chuyển tiếp packet đến node base-station Trong trường hợp khơng có đường đến base-station packet bị hủy (drop) Mặt khác, packet chuyển tiếp đến hop next_hop đến base-station Sau định tuyến đến mạng hữu tuyến (wire) phân lớp basestation Agent DSR, trình nhận pkt ngịai subnet nó, gửi u cầu tuyến route-query base-station trường hợp tuyến đến trạm basestation khơng tìm thấy Data pkt tạm thời bị giữ lại chờ hồi đáp định tuyến (route reply) từ base-station Khi nhận reply, packet có thơng tin định tuyến header gửi đến base-station Địa demux Base-station định tuyến xác đến mạng hữu tuyến Tập lệnh minh họa cho trình mơ wired-cum-wireless tìm thấy torng ~ns/tcl/ex/wired-cum-wireless-sim.tcl Các phương thức thực thi wired-cum-wireless torng ~ns/tcl/lib/ns-bsnode.tcl, ~ns/tcl/mobility/{com.tcl,dsr.tcl, dsdv.tcl}, ~ns/dsdv/dsdv {cc,h} and ~ns/dsr/dsragent.{cc,h} 16.2.2 MobileIP Q trình mở rộng vơ tuyến với hữu tuyến (wired-cum-wireless) mơ hình wireless chuẩn bị đường cho wireless MobileIP ns Mơ hình MobileIP Sun Microsystem dựa mơ hình hữu tuyến NS (bao gồm Node Link) khơng sử dụng hơ hình lưu động CMU Ở đây, trình bày ngắn gọn q trình thực thi MobileIP vơ tuyến (wireless) Chúng hy vọng Sun cung cấp chi phiên chi tiết tài liệu tương lai MobileIP gồm có Home-Agent (HA) Foreing-Agent (FA) có Mobile-Hosts (MH) lưu động HA va FA HA HA thực chất base-station node trình bày Trong MH Mobilenode sở trình bày 16.1.1 Các phương thức thủ tục để mở rộng MobileIP trình bày ~ns/mip.{cc,h}, ~ns/mip-reg.cc, ~ns/tcl/lib/ns-mip.tcl ~ns/tcl/lib/ns-wireless-mip.tcl Figure 16.3: Schematic of a baseStationNode Các node HA FA xác định MobileNode/MIPBS có q trình ghi nhận agent (registering agent) (regagent_) mà gửi cảnh báo (beacon) mobilenode, thiết lập đóng gói mở gói (encapsulator and decapsulator) required reply từ MH Node MH xác định MobileNode/MIPMH có regagent_ làm nhiệm vụ nhận hồi đáp cảnh báo gửi HA hay FA Hình 16.4 trình bày lược đồ node MobileNode/MIPBS node Node MobileNode/MIPMH đơn giản, khơng biết đến đóng gói mở gói (encapsulator or decapsulator) Đối với phiên MH, không phân cấp phân lớp dạng agent Ra Xem hình 16.2 để biết mơ hình SRNode Figure 16.4: Schematic of a Wireless MobileIP BaseStation Node Node MobileNode/MIPBS thông thường gửi broadcast cảnh báo hay thông điệp quảng bá đến MH Một điều khiển (solicitation) từ mobilenode tạo ad gửi trực tiếp đến request MH Địa base-station gửi cảnh bảo lắng nghe (heard) MH sử dụng COA (care-of-address) MH Vì vậy, MH di chuyển từ nơi tạo (native) đến vùng lân cận (foreign domain), COA bị thay đổi Q trình nhận reg_request (như reply cho ads) từ mobilehost, base-station kiểm tra để biết đến HA hay MH Nếu khơng, thiết lập trình encapsulation chuyển tiếp reg_request đến HA hay MH Trong tường hợp, base-station HA u cầu MH COA khơng thích hợp với nó, thiết lập đóng gói gửi reg-request-reply trở COA (địa FA) chuyển tiếp reg_request đến Vì vậy, bây giờ, tất packet hướng đến MH đến HA tạo thông qua trình đóng gói encapsulator với đóng gói IP pkthdr với IPinIP hdr, hướng tới COA thay đến MH Trình mở gói FA nhận gói này, gỡ bỏ gói gửi đến MH Nếu COA tương ứng với HA, gỡ bỏ gói mà thiết lập (khi mobilehost lang thang vào mạng lân cận) gửi reply trực tiếp cho MH Mobilehost gửi điều khiển khơng nghe thấy bất ký ads từ basestation.Quá trình nhận ad, thay đổi COA thành địa HA/FA nghe từ ad, reply lại cho COA với yêu cầu muốn đăng (reg-request) Q trình bắt đầu MH bên dải HA nhận tất pkt trực tiếp từ COA HA trường hợp Cuối MH di chuyển khỏi dải HA vào miền lân cận FA, COA MH thay đổi từ HA FA Lúc này, HA thiết lập encapsulator xuyên qua tất pkt hướng từ MH đến FA FA mở gói pkt điều khiển chúng MH Data từ MH hướng tới mơi trường hữu tuyến ln ln tìm đường đến COA Một tập lệnh minh họa mobileIP wireless tìm thấy ~ns/tcl/ex/wireless-mip-test.tcl Trình mơ gồm có MH di chuyển HA FA HA FA kết nối đến miền hữu tuyến mặt khác chúng kết nối đến miền vô tuyến Các luồng TCP thiết lập MA node hữu tuyến 16.3 Danh sách thay đổi trình kết hợp mã phiên cảu NS (2.1b5 hay cũ hơn) với phiên (2.1b8) Mơ hình CMU-wireless phát triển Monarch kết hợp NS từ 19981999, sau gọi phiên ns-2.1b5 Gần đây, nghe nói đến phiên DSR phát triển nhóm Monarh ns trình thực thi tạo danh sách thay đổi mà yêu cầu để tạo nên kết hợp Hy vọng danh sách hữu ích cho làm việc phiên cũ ns mà có có phiên ns-2.1b8 Danh sách sau thay đổi yêu cầu để kết hợp phiên cmu ns- 2.1b5 vào phiên ns-2.1b8 Mỗi thay đổi giải thích cách ngắn gọn Các phương thức để truy suất pkt hdrs thay đổi từ (hdr_sr *)p->access(off_sr) sang truy suất tĩnh xác định cho hdr hdr_sr::access(p) đây, lớp hdr_sr có phương thức tỉnh access() xác định inline static hdr_sr* access(const Packet* p) return (hdr_sr*)p->access(offset_); Tại sao: thay đổi tránh sử dụng bừa bãi Khi phương thức truy suất hdr thay đổi, không cần kết hợp giá trị hdr Điều thực trình thiết lập tcl linkage cho lớp hdr riêng: bind("off_SR_", &off_sr_); bind("off_ll_", &off_ll_); bind("off_mac_", &off_mac_); bind("off_ip_", &off_ip_); should be removed Sự liệt kê AF_ thay NS_AF_ enum: ns_af_enum NS_AF_NONE, NS_AF_ILINK, NS_AF_INET ; Tại sao: Điều tránh header chạm ns os Trường ip hdr (dst/src) địa sử dụng số nguyên xác định cấu trúc gọi ns_addr_t ns_addr_t có thành viên address_ port_ xác định kiểu int Lênh iph->src() đổi thành iph->saddr() & iph->sport(); dst_ = (IP_BROADCAST « 8) | RT_PORT should be replaced by dst_.addr_ = IP_BROADCAST; dst_.port_ = RT_PORT; Why: Phần mở rộng hỗ trợ 32 bit địa Thành viên addrs_ lớp hdr_sr có chức tách biệt q trình trả giá trị Vì vậy, cần gọi hsr.addrs() thay hsr.addrs why: addrs_ biến tách biệt truy suất chức chung addrs() Tất có đường chắn cách sử dụng thay "" Vì vậy, thay thành "cmu/dsr/dsragent.h" Dòng lệnh tcl: "ip-addr" đổi thành "addr" Các lệnh khác tcl "node", "port-dmux" "trace-target" thêm vào why: Một phần q trình hỗ trợ cho mobileIP trình mơ wired-cum-wireless Cần thay đổi địa dạng chuỗi thành dạng số nguyên int, sử dụng lệnh Address::instance().str2addr(argv[2]) thay atoi(argv[2]).0 why: Việc yêu cầu hỗ trợ phân cấp địa định tuyến hier-addressing/routing Mảng packet_names[] thay đổi thành packet_info.name() why: Để gỡ bỏ cụm #defines pkt, packet_t trình bày tất dạng packet ns Lớp p-info tạo mô tả mảng name_ thay mảng packet_names sử dụng trước Thiết lập rõ ràng pkt sang trạng thái DOWN trước gửi chúng đến LL why: biến direction_ hdr_cmn sử dụng Nó sử dụng lớp thấp LL, MAC, lớp vật lý nói chung để xác định trực tiếp luồng pkt Tất pkt đến đánh dấu UP kênh, mà đánhd dấu DOWN agent trước gửi chúng mạng lần Thay logtarget->buffer, gọi lệnh logtarget->pt_->buffer why: Sự thay đổi mang lại hỗ trợ cho vết kiện (eventtracing) Q trình dị tìm phân chia thành hai lọai, dị tìm packet dị tìm kiện Lớp Trace chất hỗ trợ dị tìm packet Tuy nhiên, thuộc tính q trình dị tìm có nguồn gốc từ lớp BaseTrace, pkt-tracing u cầu thơng dịch vài lớp thuộc tính Connector Vì vậy, pt_, đối tược dị tìm đưa chức dị tìm cần thiết đối tượng dị tìm Đối số sử dụng để giải thích pkt bị hũy bỏ số nguyên integer Bây đỗi thành số dạng char* Vì cần phải xác định lý khác hủy pkt định dạng dạng chuỗi Why: Cho phép mở rộng dễ thích nghi linkHead đổi thành dsrLinkHead why: tên clashed với linkHead sử dụng rộng rãi ns Mơ hình cmu trước sử dụng cờ incoming_ thêm vào tất pkt để tính tóan trực tiếp luồng pkt lớp thấp ll, mac, … Sau bị thay biến gọi direction_ thêm cmn_hdr, giá trị thiết lập UP, DOWN hay NONE Tất pkt tạo với giá trị DOWN theo mặc định why: Tất cờ sử dụng thực tiếp, vậy, cờ incoming_ thay cho direction_ 16.4 Lướt qua dòng lệnh Sau liệt kê dòng lệnh sử dụng trình mơ wireless: $ns_ node-config -addressingType -adhocRouting -llType -macType -propType -ifqType -ifqLen -phyType -antType -channelType -topoInstance -wiredRouting -mobileIP -energyModel -initialEnergy -rxPower -txPower -agentTrace -routerTrace -macTrace -movementTrace Dòng lệnh sử dụng để cấu hình mobilenode Đối với nhiều nội dung (info) lệnh (một phần cua API) $ns_ node Câu lệnh sử dụng để tạo mobilenode sau trình cấu hình node thực hiệnh dịng lệnh node-config Địa phân cấp sử dụng, địa phân cấp hier address node cần đưa hợp lý $node log-movement Lệnh trước sử dụng để đưa vào q trình di chuyển mobilenode thay $ns_ node-config -movementTrace create-god Dòng lệnh sử dụng để tạo trường hợp God Số mobilenode đưa đối số sử dụng God để tạo ma trận lưu trữ thông tin kết nối topo $topo load_flatgrid Lệnh khởi tạo khung cho đối tượng topography tọa độ x-y topo sử dụng để tạo kích thước cho khung Độ phân giải khung đưa Giá trị mặc định $topo load_demfile Để nhập vào đối tượng DEMFile topo Xem ns/dem.cc, để biết thêm chi tiết DEMFile $ns_ namtrace-all-wireless Câu lệnh sử dụng để khởi tạo tên tìm kiếm file để nhập vào node di chuyến để thấy nam Tên tìm kiếm file, tọa độc X Y topo wireless đưa đối số lệnh $ns_ nam-end-wireless Lệnh sử dụng để dừng thời gian mô đưa $ns_ initial_node_pos Lệnh xác định phần khởi tạo nam kích thước node nam Hàm gọi sau mơ hình mobile xác định $mobilenode random-motion Random-motion sử dụng để kích họat ngẫu nhiên trình di chuyển mobilenode, trường hợp đích ngẫu nhiên gán cho node khơng cho phép cho phép di chuyển ngẫu nhiên $mobilenode setdest Lệnh sử dụng để thiết lập đích cho mobilenode Mobile node bắt đầu di chuyển đến đích tọa độ với tốc độ m/s $mobilenode reset Lệnh sử dụng để thiết lập lại tất đối tượng node (các thành phần mạng LL, MAC, phy, …) Các thủ tục bên Sau danh sách thủ tục bên sử dụng mạng wireless: $mobilenode base-station Thủ tục sử dụng cho wired-cum-wireless Mobilenode cung cấp với thông tin base-stationnode cho domain Địa phân cấp wired-cumwireless sử dụng địa phân cấp $mobilenode log-target , đối tượng truy tìm thường gặp, sử dụng để đưa vào trình di chuyển mobilenode lượng sử dụng $mobilenode topography Lệnh sử dụng để cung cấp node với điều khiển đối tượng topo $mobilenode addif Mobilenode có nhiều giao diện mạng Dòng lệnh sử dụng để đưa điều khiển cho giao diện mạng đến node $mobilenode namattach Lệnh sử dụng để thêm vào tên dị tìm file đến mobilenode Tất tên dị tìm node sau ghi vào file namtrace file $mobilenode radius Bán kính biểu thị dải node Tất mobilenode giảm đường kính bán kính node tâm quan tâm đến lân cận Nội dung sử dụng gridkeeper $mobilenode start Dòng lệnh sử dụng trình bắt đầu di chuyển mobilenode kết thúc