成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

AODV路由協(xié)議的路由緩存隊列詳解

網(wǎng)絡 網(wǎng)絡管理
對于AODV路由協(xié)議,我們今天來講述一下有關于他在NS2.27中的組件內(nèi)容。首先我們羅列了它的基本組件,之后對他的路由緩存隊列做了重點介紹。

AODV路由協(xié)議的使用往往在一些復雜的程序當中。那么我們?nèi)绾卫斫膺@些協(xié)議的使用和一些代碼函數(shù)的含義呢?下面我們就來闡述一下這方面的問題。首先了解一下在NS2.27中,AODV路由協(xié)議主要包括以下幾個組件:

1、協(xié)議實體

2、路由表

3、定時器

(1)廣播定時器

(2)周期Hello報文廣播定時器

(3)用于鄰居管理的定時器

(4)用于路由緩存的定時器

(5)用于本地修復的定時器

(6)緩存廣播ID的定時器

4、日志記錄器

5、路由緩存隊列

首先來看AODV路由協(xié)議從接收到一個分組開始的基本流程。

當協(xié)議接收到一個分組,即recv(Packet*, Handler*)函數(shù)被調(diào)用,函數(shù)根據(jù)分組類型調(diào)用不同的處理函數(shù)進行處理。

1、如果是協(xié)議分組,則將分組的ttl值減1,并調(diào)用recvAODV(Packet*)函數(shù)進行處理。recvAODV函數(shù)再根據(jù)分組的不同類型來調(diào)用不同的函數(shù)進行處理。

(1)如果接收到的是路由請求分組,則調(diào)用recvRequest(Packet*)函數(shù)進行處理。

如果該分組由節(jié)點自身產(chǎn)生或已經(jīng)接收過的,會被節(jié)點丟棄,并結束處理。

否則,節(jié)點將緩存該分組的序列號,并將該分組發(fā)送來的路徑添加到反向路由中,轉發(fā)相應分組。然后,節(jié)點根據(jù)該分組的目的地址進行判斷并調(diào)用不同函數(shù)進行處理。

如果節(jié)點自身即為目的節(jié)點,則調(diào)用sendReply(nsaddr_t, u_int32_t, nsaddr_t, u_int32_t, u_int32_t, double)函數(shù)進行響應。如果節(jié)點不是目的節(jié)點,但知道通往目的節(jié)點的路由,則調(diào)用sendReply函數(shù)進行響應,并在源和目的前驅列表中分別插入到源和目的的下一跳節(jié)點。否則,不能直接響應該請求,將跳數(shù)加1,并調(diào)用forward(AODV_rt_entry*, Packet*, double)函數(shù)轉發(fā)該分組。

在sendReply函數(shù)中,節(jié)點首先查找到達目的節(jié)點(即發(fā)送路由請求分組的節(jié)點)的路由,創(chuàng)建并填充分組,然后調(diào)用Scheduler::instance().schedule()函數(shù)來發(fā)送該分組。

(2)如果接收到的是路由響應分組,則調(diào)用recvReply(Packet*)函數(shù)進行處理。

節(jié)點首先查詢前往分組目的節(jié)點的路由,如果不存在則新增一條路由項。然后,節(jié)點更新到該目的節(jié)點的路由項,并發(fā)送所有相關分組。

如果節(jié)點為目的節(jié)點則更新路由發(fā)現(xiàn)延遲并發(fā)送所有相關的分組。如果節(jié)點不是目的節(jié)點,但知道通往目的節(jié)點的路由,則將跳數(shù)加1,調(diào)用forward函數(shù)轉發(fā)該分組,并修改響應的前驅列表。如果節(jié)點不是目的節(jié)點,也不知道通往目的節(jié)點的路由,則丟棄該分組。

(3)如果接收到的是路由錯誤分組,AODV路由協(xié)議則調(diào)用recvError(Packet*)函數(shù)進行處理。#p#

節(jié)點首先清除所有受到影響的路由項,丟棄所有受影響的分組。然后,如果前驅節(jié)點中存在會受該路由錯誤影響的分組,則調(diào)用sendError(Packet*, bool)函數(shù)轉發(fā)該分組。

sendError函數(shù)創(chuàng)建并填充分組,然后調(diào)用Scheduler::instance().schedule()函數(shù)來發(fā)送該分組。

(4)如果接收到的是Hello消息分組,則調(diào)用recvHello(Packet*)函數(shù)進行處理。

節(jié)點會將該鄰居的信息添加到鄰居列表中(或更新該鄰居的信息)。

2、如果是數(shù)據(jù)分組,則節(jié)點丟棄已經(jīng)發(fā)送過或者ttl為0的分組,并結束處理。如果分組是由上層協(xié)議產(chǎn)生的,則節(jié)點添加IP報頭。隨后,節(jié)點根據(jù)目的路由進行不同處理。

(1)如果目的節(jié)點路由未知,則調(diào)用rt_resolve(Packet*)函數(shù)進行路由解析和轉發(fā)。

如果目的節(jié)點路由在路由表中存在,則直接調(diào)用forward函數(shù)進行轉發(fā)。如果分組是由節(jié)點自身產(chǎn)生的,則將分組保存到緩沖隊列中,并調(diào)用 sendRequest(nsaddr_t)函數(shù)查詢目的路由。如果目的路由已知,但正在進行本地修復,則將分組保存到緩沖隊列中。否則,丟棄該分組,并調(diào)用sendError函數(shù)報錯。

(2)如果目的節(jié)點路由已知,則調(diào)用forward進行轉發(fā)。

節(jié)點丟棄ttl為0的分組,并根據(jù)分組類型決定下一步操作。

如果接收到的是數(shù)據(jù)分組,且自身為目的節(jié)點,則通過調(diào)用PortClassifier對象的recv(Packet*, Handle*)函數(shù)將分組交遞給高層協(xié)議,并結束處理。否則,節(jié)點設置分組屬性,并調(diào)用Scheduler::instance().schedule (Handler*, Event*, double)函數(shù)來發(fā)送分組。其中,Handler為基類中的屬性target_(會根據(jù)腳本中的設置指向相應的協(xié)議實體),Event為要發(fā)送的分組即可。

以上就是AODV路由協(xié)議在節(jié)點收到分組后的一個處理過程。接下來看看各個定時器所做的工作。

1、廣播定時器BroadcastTimer在到時后調(diào)用id_purge()函數(shù)刪除廣播項中已超時的項目,并通過調(diào)用Scheduler:: instance().schedule()函數(shù)來設置下次被調(diào)用的時間(Handler為this指針,Event為類屬性intr)。

2、周期Hello報文廣播定時器HelloTimer在到時后調(diào)用sendHello()函數(shù)向鄰居創(chuàng)建并發(fā)送Hello消息,并調(diào)用schedule()函數(shù)來設置下次被調(diào)用的時間。

3、鄰居管理定時器NeighborTimer在到時后調(diào)用nb_purge()函數(shù)來清除鄰居列表中已超時的鄰居項,并調(diào)用schedule()來設置下次被調(diào)用的時間。nb_purge會調(diào)用nt_delete(nsaddr_t)函數(shù)來清除超時的鄰居項,其又會調(diào)用 handle_link_failure(nsaddr_t)函數(shù)來處理由于鄰居節(jié)點被刪除而引起的路由變化。

4、路由緩存定時器RouteCacheTimer在到時后調(diào)用rt_purge()函數(shù)來清除路由表中已超時的路由項,并丟棄相關的分組,再調(diào)用schedule()來設置下次被調(diào)用的時間。

5、本地修復定時器LocalRepairTimer在調(diào)用后根據(jù)傳遞的分組的目的地址關閉相應的路由項。

6、緩存廣播ID定時器BroadcastID用來保存廣播分組的ID。

此外,AODV路由協(xié)議的路由表、日志記錄和隊列三個類就相對比較簡單了,都只實現(xiàn)了一些非常基本的功能,在此就不做介紹了

責任編輯:佟健 來源: IT實驗室
相關推薦

2010-06-19 13:24:02

AODV路由協(xié)議

2010-06-21 14:58:35

AODV路由協(xié)議

2010-06-18 15:09:08

AODV協(xié)議

2010-06-18 14:00:16

AODV路由協(xié)議

2010-06-24 16:44:29

AODV路由協(xié)議

2010-06-21 13:52:20

AODV路由協(xié)議

2010-06-21 13:07:14

2010-07-13 14:47:08

AODV路由協(xié)議

2010-06-18 15:56:01

AODV路由協(xié)議

2010-06-17 17:27:35

路由協(xié)議

2010-08-13 09:25:52

路由協(xié)議AODV

2010-08-13 09:39:48

OSPF協(xié)議

2010-06-18 14:24:47

AODV協(xié)議

2009-12-22 10:39:16

內(nèi)部路由協(xié)議

2011-04-15 10:01:39

2010-06-18 13:37:02

AODV協(xié)議

2013-08-12 09:47:41

RIP協(xié)議網(wǎng)絡協(xié)議

2009-12-14 17:49:44

路由選擇協(xié)議

2009-11-11 10:56:50

路由器協(xié)議

2010-06-10 13:28:43

路由信息協(xié)議RIP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 草草视频在线免费观看 | 中文字幕 国产精品 | 影音先锋中文字幕在线观看 | 蜜桃臀av一区二区三区 | 日韩精品一区二区三区中文字幕 | 久久久久国产一区二区三区四区 | 高清视频一区二区三区 | 先锋资源网站 | 视频一区二区在线观看 | 久久成人人人人精品欧 | 日日夜夜视频 | 日韩精品一区二区三区老鸭窝 | 天天操夜夜看 | 日本黄色大片免费看 | 日韩天堂av| 成人久久18免费网站麻豆 | 午夜精品一区 | 在线看免费的a | 国产精品久久久久久久久久久久冷 | 国产一级毛片视频 | 黄色一级大片视频 | 亚洲视频免费播放 | 国产精久久久久久久妇剪断 | 波多野结衣在线观看一区二区三区 | 成人片网址 | 人人干在线视频 | 欧美国产视频 | 日本在线网址 | 国产精品精品视频一区二区三区 | 日日综合 | 久久一级大片 | 久久久人成影片一区二区三区 | 成人免费精品 | 男女羞羞视频在线免费观看 | 国产成人精品亚洲日本在线观看 | 一区二区三区精品视频 | 亚洲精品欧美一区二区三区 | 久久久精品网站 | 欧美一区二区在线看 | 综合伊人 | 欧美极品在线播放 |