của thuật toán ZRP bằng NS-2
Hoạt động của thành phần định tuyến nội vùng IARP
Kết quả mô phỏng thu được cho thấy tại thời điểm ban đầu các trạm làm việc được chương trình mô phỏng thiết lập. Thông tin trong vùng định tuyến chưa được các trạm làm việc thu thập (Danh sách các trạm làm việc lân cận Neighbor Table và danh sách các liên kết trong mạng Link Table đều chưa có dữ liệu).
Starting Simulation... num_nodes is set 5
_ 0_ [0.000000] | Node 0 was created. ! Neighbor Table: empty ! LinkTable: empty ! Routes empty Periph[]
_ 1_ [0.000000] | Node 1 was created. ! Neighbor Table: empty ! LinkTable: empty ! Routes empty Periph[]
_ 2_ [0.000000] | Node 2 was created. ! Neighbor Table: empty ! LinkTable: empty ! Routes empty Periph[]
_ 3_ [0.000000] | Node 3 was created. ! Neighbor Table: empty ! LinkTable: empty ! Routes empty Periph[]
_ 4_ [0.000000] | Node 4 was created. ! Neighbor Table: empty ! LinkTable: empty ! Routes empty Periph[]
Chương trình mô phỏng thiết đặt kích thước vùng định tuyến của các trạm làm việc với bán kính r=2.
_ 0_ [0.000000] | Radius change from 3 to 2 ! Neighbor Table: empty ! LinkTable: empty ! Routes empty Periph[]
_ 1_ [0.000000] | Radius change from 3 to 2 ! Neighbor Table: empty ! LinkTable: empty ! Routes empty Periph[]
_ 2_ [0.000000] | Radius change from 3 to 2 ! Neighbor Table: empty ! LinkTable: empty ! Routes empty Periph[]
_ 3_ [0.000000] | Radius change from 3 to 2 ! Neighbor Table: empty ! LinkTable: empty ! Routes empty Periph[]
_ 4_ [0.000000] | Radius change from 3 to 2 ! Neighbor Table: empty ! LinkTable: empty ! Routes empty Periph[]
Các trạm làm việc sau đó phát hiện được các trạm lân cận và cập nhật thông tin định tuyến. Tại thời điểm 0,24s trạm làm việc 4 đã đưa vào bảng định tuyến thông tin về đường đi tới trạm 3 (Routes[3 4])
_ 3_ [0.243029] | Node 3 received a beacon from Node 4 (seq no. 1) | Node 3 sent ack to Node 4 (seq no. 1). ! Neighbor Table: empty ! LinkTable: empty ! Routes empty Periph[]
_ 4_ [0.247397] | Node 4 received an ack (seq no. 1) from Node 3. | Node 4 added new neighbor Node 3, will expire at 15.247397 sec, lastack timer will expire at 2.247397 sec.| Node 4 sent update (seq no. 2) about new neighbor Node 3. ! Neighbor Table: 3 ! LinkTable: 3=4 ! Routes [3 4 ] Periph[]
Tại thời điểm 6,38s các trạm làm việc có đủ thông tin định tuyến tới các trạm làm việc khác trong vùng định tuyến. Trạm làm việc 3 nhận biết hai trạm lân cận 2 và 4 (Neighbor Table: 2 4 ), biết được cấu trúc vùng định tuyến có 1 kết nối với 0 và 2, 3 kết nối với 2 và 4 (LinkTable: 1=2 0=1 2=3 4=3 ). Do kích thước vùng định tuyến là 2, bảng định tuyến của nó lưu giữđường đi tới các trạm cách xa không quá 2 bước nhảy 4, 2 và 1 (Routes [4 3 ] [2 3 ] [1 2 3 ] ). Trạm làm việc ngoại biên cũng được xác định (Periph[1 ]).
_ 1_ [6.323520] | Node 1 sent a beacon (seq no. 5). | Node 1 started an ack-timer to expire at
8.323520 sec. | radius is 2 ! Neighbor Table: 2 0 ! LinkTable: 2=1 0=1 3=2 4=3 ! Routes [0 1 ] [2 1 ] [3 2 1 ] Periph[3 ] [3 2 1 ] Periph[3 ]
_ 2_ [6.388128] | Node 2 received a beacon from Node 3 (seq no. 5) | Node 2 sent ack to Node 3 (seq no. 5). ! Neighbor Table: 1 3 ! LinkTable: 1=2 0=1 3=2 4=3 ! Routes [3 2 ] [1 2 ] [4 3 2 ] [0 1 2 ] Periph[0 4 ]
_ 4_ [6.388128] | Node 4 received a beacon from Node 3 (seq no. 5) | Node 4 sent ack to Node 3 (seq no. 5). ! Neighbor Table: 3 ! LinkTable: 1=0 1=2 3=2 3=4 ! Routes [3 4 ] [2 3 4 ] Periph[2 ] _ 3_ [6.389602] | Node 3 received an ack (seq no. 5) from Node 2. | Node 3 updated neighbor table, changed neighbor Node 2 expiry from 16.173664 to 21.389602 sec and lastack timer expiry from 1.173663 to 8.389602. ! Neighbor Table: 2 4 ! LinkTable: 1=2 0=1 2=3 4=3 ! Routes [4 3 ] [2 3 ] [1 2 3 ] Periph[1 ]
Ta cũng nhận thấy hoạt động của chức năng phát hiện các trạm làm việc lân cận NDP tại thời điểm 6.32s và 6.38s với các gói tin beacon (gói tin “hello”) được gửi và nhận giữa các trạm làm việc.
Như vậy thành phần IARP của chương trình mô phỏng làm việc (dựa trên chức năng phát hiện các trạm làm việc lân cận NDP) đúng như mong đợi.
Hoạt động của thành phần định tuyến liên vùng IERP và thành phần truy vấn ngoại biên BRP
Do tại thời điểm 10s, trạm 0 cần truyền dữ liệu với trạm 4 nằm ngoài vùng định tuyến của nó, việc tìm đường tới trạm 4 được kích hoạt theo yêu cầu. Dữ liệu cho thấy tại thời điểm 10s, trạm 0 gửi truy vấn ngoại biên tới trạm 2 thông qua trạm 1 (Bordercast to [2 - route 0 1 2 (nexthop=1) ])
_ 0_ [10.000] | Got non-ZRP packet type 4 from upper layer seq no. 4 (daddr=4 dport=0) ! Neighbor Table: 1 ! LinkTable: 3=4 1=2 3=2 1=0 ! Routes [1 0 ] [2 1 0 ] Periph[2 ]
| New ierpcache entry: qid=1 expiry=15.000 (daddr=4)
_ 1_ [10.001414] | Got an ierp_request, origin of request is 0, queryid is 1. Last bordercaster was 0. Last hop was 0.| I am a relay node. Route list [0 1 2 ]| Sending to next hop 2, next bordercaster is 2.
| QD - Calculated Route Table of bordercaster 0: [1 0 ] [2 1 0 ] | QD - added [0 1 ] to covered list.
| QD - Next bordercaster [2] added to covered list. | Covered list for query=1 origin=0 [2 1 0 ]
_ 2_ [10.003333] | Got an ierp_request, origin of request is 0, queryid is 1. Last bordercaster was 0. Last hop was 1.
| ierpdest (4) is in my zone, sending IERP Reply with accumulated route
Thời điểm 10,0014s, trạm 1 nhận được gói tin yêu cầu định tuyến với tư cách là trạm chuyển tiếp (I am a relay node). Trạm 1 tiếp tục gửi cho trạm 2. Tại thời điểm 10,0033s, trạm 2 nhận được gói tin yêu cầu định tuyến và kiểm tra thấy trạm 4 thuộc vùng định tuyến của nó nên gửi lại gói tin trả lời định tuyến.
Như vậy thành phần truy vấn định tuyến liên vùng IERP và thành phần truy vấn ngoại biên BRP cũng đã hoạt động như dựđoán.