專利名稱:一種鄰居發(fā)現(xiàn)的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,具體地講涉及到一種鄰居發(fā)現(xiàn)的實(shí)現(xiàn)方法。
背景技術(shù):
鄰居發(fā)現(xiàn)協(xié)議(Neighbor Discover,ND)是下一代IPV6(Internet ProtocolVersion 6)網(wǎng)絡(luò)提出的一種新的查找IP地址對(duì)應(yīng)的鏈路層地址的協(xié)議,它主要用在地址解析的過(guò)程中。
地址解析是由鄰居的非組播地址得到其鏈路層地址的過(guò)程,且只用于本鏈路內(nèi)的IP地址。當(dāng)本鏈路范圍內(nèi)節(jié)點(diǎn)有單播報(bào)文要發(fā)送給鄰居但不知道其鏈路層地址時(shí),就啟動(dòng)地址解析過(guò)程。
地址解析過(guò)程的基本原理如下對(duì)于接口支持組播的節(jié)點(diǎn),該節(jié)點(diǎn)首先在鄰居緩存里創(chuàng)建一個(gè)表項(xiàng),然后向該地址對(duì)應(yīng)的受限組播組發(fā)送包含鏈路層地址選項(xiàng)的鄰居通告請(qǐng)求(Neighbor Solicitation,NS)報(bào)文;當(dāng)有節(jié)點(diǎn)收到該鄰居通告請(qǐng)求報(bào)文,向該節(jié)點(diǎn)回應(yīng)鄰居通告(Neighbor Advertisement,,NA)報(bào)文。如果沒(méi)有收到任何鄰居發(fā)出的鄰居通告報(bào)文則地址解析失敗,該節(jié)點(diǎn)的IP層會(huì)產(chǎn)生一個(gè)因特網(wǎng)信息控制協(xié)議(Internet Control Message Protocol,ICMP)不可達(dá)消息給應(yīng)用層。收到鄰居通告請(qǐng)求報(bào)文的節(jié)點(diǎn)如果源IP地址不是未分配地址則進(jìn)行學(xué)習(xí)創(chuàng)建或更新鄰居緩存的表項(xiàng)。
另一方面,目前的寬帶城域網(wǎng)的接入網(wǎng)部分,一般是由用戶終端、接入層匯接設(shè)備和匯聚層的寬帶接入服務(wù)器(Broadband Remote Access Server,BRAS)或路由器設(shè)備等三個(gè)層次的設(shè)備組成的層狀拓?fù)浣Y(jié)構(gòu)。為了電信運(yùn)營(yíng)的需要,一般不同的用戶終端,例如圖1中的PC1和PC2,通過(guò)虛擬局域網(wǎng)(Virtual Local Area Network,VLAN)、永久虛連接(Permanent VirtualConnection,PVC)等進(jìn)行隔離,杜絕用戶間不經(jīng)過(guò)匯聚層設(shè)備直接通信。另外,一般寬帶城域網(wǎng)中的接入層匯集設(shè)備,例如IP數(shù)字用戶環(huán)路接入復(fù)接設(shè)備(Digital Subscriber Line Access Multiplexer,DSLAM),對(duì)沒(méi)有VLAN的用戶之間也是隔離的,不允許用戶之間的報(bào)文不通過(guò)匯聚層設(shè)備直接進(jìn)行二層互連,也即不同用戶間的報(bào)文必須通過(guò)三層設(shè)備的處理才能實(shí)現(xiàn)互連。
這樣,如圖1所示,當(dāng)匯聚層的BRAS或路由器設(shè)備在一個(gè)子接口下同時(shí)接入多個(gè)VLAN、PVC等虛擬鏈路或者直接接入多個(gè)無(wú)法實(shí)現(xiàn)二層廣播的接入設(shè)備時(shí),對(duì)于同一個(gè)子接口下的多個(gè)VLAN、PVC下的接入設(shè)備共用一個(gè)連續(xù)的IP地址網(wǎng)段的情況,因?yàn)樵撟咏涌谙碌逆溌范际菬o(wú)法二層互通的,所以就無(wú)法相互學(xué)習(xí)到鏈路層地址,因此當(dāng)該子接口下的兩個(gè)用戶終端之間要實(shí)現(xiàn)通信時(shí),就無(wú)法實(shí)現(xiàn)了。所以,其實(shí)寬帶城域網(wǎng)的接入網(wǎng)部分就是一個(gè)非廣播多點(diǎn)接入(Non Broadcast Multi Access,NBMA)的網(wǎng)絡(luò)。
由于鄰居發(fā)現(xiàn)協(xié)議僅在用戶本鏈路使用并且通過(guò)組播方式廣播到整個(gè)鏈路中,但圖1描述的寬帶城域網(wǎng)的接入網(wǎng)是NBMA網(wǎng)絡(luò),無(wú)法將組播報(bào)文廣播給其他用戶,因此需要BRAS設(shè)備或路由器提供鄰居發(fā)現(xiàn)代理(ND Proxy)功能,即BRAS設(shè)備或路由器作為代理為用戶轉(zhuǎn)發(fā)ND報(bào)文從而讓NBMA網(wǎng)絡(luò)中的用戶能夠?qū)W習(xí)到被路由器代理的鏈路層地址,最終實(shí)現(xiàn)兩者的互通。
在現(xiàn)有技術(shù)中,路由器首先從NBMA網(wǎng)絡(luò)接入接口的鏈路接收NS、NA報(bào)文,通過(guò)修改報(bào)文的媒體介質(zhì)訪問(wèn)控制(Media Access Control,MAC)地址等處理實(shí)現(xiàn)路由器代理該主機(jī),然后向該接口的其他鏈路廣播NS報(bào)文或某條鏈路轉(zhuǎn)發(fā)NA報(bào)文,從而實(shí)現(xiàn)不同鏈路中的多播的ND報(bào)文互通,解決上述NBMA網(wǎng)絡(luò)中用戶之間互通的問(wèn)題。
由于在現(xiàn)有技術(shù)中,硬件只是接收并識(shí)別ND報(bào)文,鄰居發(fā)現(xiàn)協(xié)議和鄰居發(fā)現(xiàn)代理都是由軟件部分來(lái)完成,如圖2所示,這帶來(lái)了以下問(wèn)題1.當(dāng)BRAS設(shè)備或路由器在接入大量用戶的情況下,鄰居發(fā)現(xiàn)協(xié)議和鄰居發(fā)現(xiàn)代理功能要提供多鏈路間的報(bào)文復(fù)制,容易讓軟件造成瓶頸,影響設(shè)備的穩(wěn)定運(yùn)行;2.當(dāng)BRAS設(shè)備或路由器采用流控等方式減少交給軟件處理的報(bào)文時(shí),容易使得用戶報(bào)文丟失。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問(wèn)題是提出一種鄰居發(fā)現(xiàn)的實(shí)現(xiàn)方法,用于在路由器接入非廣播多點(diǎn)接入網(wǎng)絡(luò)時(shí)實(shí)現(xiàn)終端設(shè)備間的互相通信情況下,解決軟件實(shí)現(xiàn)鄰居發(fā)現(xiàn)處理所導(dǎo)致的運(yùn)行性能問(wèn)題,以及對(duì)送交軟件處理的鄰居發(fā)現(xiàn)協(xié)議報(bào)文進(jìn)行流控所導(dǎo)致用戶正常報(bào)文被丟失的問(wèn)題。
為解決上述問(wèn)題,本發(fā)明提出了一種在路由器接入非廣播多點(diǎn)接入網(wǎng)絡(luò)時(shí)實(shí)現(xiàn)終端設(shè)備間的互相通信情況下鄰居發(fā)現(xiàn)的實(shí)現(xiàn)方法,包括以下步驟a)在路由表主機(jī)路由中預(yù)設(shè)對(duì)應(yīng)鄰居節(jié)點(diǎn)的鄰居狀態(tài)信息的接口索引;b)接收鄰居發(fā)現(xiàn)報(bào)文;c)根據(jù)鄰居發(fā)現(xiàn)報(bào)文的源IP地址和目的IP地址在路由表中查找該源IP地址和目的IP地址分別對(duì)應(yīng)的接口索引,并根據(jù)接口索引得到分別對(duì)應(yīng)于源IP地址的鄰居狀態(tài)和對(duì)應(yīng)于目的IP地址的鄰居狀態(tài);d)根據(jù)鄰居發(fā)現(xiàn)報(bào)文的源IP地址和目的IP地址以及對(duì)應(yīng)于源IP地址的鄰居狀態(tài)和對(duì)應(yīng)于目的IP地址的鄰居狀態(tài),對(duì)所接收到的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行鄰居發(fā)現(xiàn)處理。
其中,步驟d)進(jìn)一步包括步驟判斷所接收的鄰居發(fā)現(xiàn)報(bào)文的源IP地址和目的IP地址是否滿足條件源IP地址是未分配IP地址或者目的IP地址所對(duì)應(yīng)的接口索引是路由器本身或者本地鏈路地址,如果是,則對(duì)所接收的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行本地鄰居發(fā)現(xiàn)處理,否則,對(duì)所接收的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行鄰居發(fā)現(xiàn)代理處理。
其中,所述的本地鄰居發(fā)現(xiàn)處理包括以下步驟d11)、判斷所述的鄰居發(fā)現(xiàn)報(bào)文的源IP地址是否是未分配地址,如果是,執(zhí)行步驟d12),否則,執(zhí)行步驟d13);d12)、對(duì)所接收的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行重復(fù)地址檢測(cè)處理,并更新鄰居節(jié)點(diǎn)的狀態(tài),結(jié)束本地鄰居發(fā)現(xiàn)處理;d13)、判斷源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)是否存在,如果是,執(zhí)行步驟d14),否則,執(zhí)行步驟d15);d14)、如果所接收的鄰居發(fā)現(xiàn)報(bào)文是鄰居通告報(bào)文,則更新源IP地址所對(duì)應(yīng)鄰居節(jié)點(diǎn)的鏈路狀態(tài),如果所接收的鄰居發(fā)現(xiàn)報(bào)文是鄰居通告請(qǐng)求報(bào)文而且具有不同介質(zhì)訪問(wèn)控制地址,則回應(yīng)鄰居通告報(bào)文,否則丟棄報(bào)文,并結(jié)束本地鄰居發(fā)現(xiàn)處理;d15)、確認(rèn)收到該報(bào)文的鏈路是本接口上的鏈路后創(chuàng)建源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)的鄰居狀態(tài),否則丟棄報(bào)文。
所述的鄰居發(fā)現(xiàn)代理處理則包括以下步驟d21)、判斷所述的鄰居發(fā)現(xiàn)報(bào)文的源IP地址所對(duì)應(yīng)的鄰居節(jié)點(diǎn)是否存在,如果是,執(zhí)行步驟d22),否則,執(zhí)行步驟d27);d22)、判斷所述的鄰居發(fā)現(xiàn)報(bào)文的目的IP地址所對(duì)應(yīng)的鄰居節(jié)點(diǎn)是否存在,如果是,執(zhí)行步驟d23),否則,執(zhí)行步驟d24);d23)、如果所接收的鄰居發(fā)現(xiàn)報(bào)文是鄰居通告請(qǐng)求報(bào)文,則代理目的IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)向源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)發(fā)送鄰居通告報(bào)文,如果所接收的鄰居發(fā)現(xiàn)報(bào)文是鄰居通告報(bào)文,則代理源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)向目的IP地址所對(duì)應(yīng)的鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)鄰居通告報(bào)文,并結(jié)束鄰居發(fā)現(xiàn)代理處理;d24)、判斷所述的鄰居發(fā)現(xiàn)報(bào)文是否是鄰居通告請(qǐng)求報(bào)文,如果是,則執(zhí)行步驟d25),否則執(zhí)行步驟d26);d25)、代理源IP地址所對(duì)應(yīng)的鄰居節(jié)點(diǎn)在本鏈路內(nèi)廣播該鄰居通告請(qǐng)求報(bào)文,結(jié)束鄰居發(fā)現(xiàn)代理處理;d26)、如果所接收的鄰居發(fā)現(xiàn)報(bào)文是鄰居通告報(bào)文,則確認(rèn)收到該報(bào)文的鏈路是本接口上的鏈路后更新更新該鏈路節(jié)點(diǎn)對(duì)應(yīng)的鏈路狀態(tài),否則丟棄報(bào)文,并結(jié)束鄰居發(fā)現(xiàn)代理處理;d27)、確認(rèn)收到該報(bào)文的鏈路是本接口上的鏈路后創(chuàng)建源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)的鄰居狀態(tài),否則丟棄報(bào)文。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)1.本發(fā)明的鄰居發(fā)現(xiàn)和鄰居發(fā)現(xiàn)代理均可由硬件處理,這樣讓設(shè)備軟件從低“受益”鏈路層地址映射的繁重工作中解脫出來(lái),處理更為重要的工作,避免了軟件因處理大量的ND報(bào)文而導(dǎo)致的性能不足,更利于業(yè)務(wù)的處理;2.本發(fā)明同時(shí)也避免了軟件的流控導(dǎo)致接入設(shè)備的正常業(yè)務(wù)報(bào)文被丟失的問(wèn)題。
圖1是寬帶城域網(wǎng)路由器接入NBMA網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖2是現(xiàn)有技術(shù)方案原理示意圖;圖3是本發(fā)明實(shí)現(xiàn)鄰居發(fā)現(xiàn)代理原理示意圖;
圖4是發(fā)明涉及的數(shù)據(jù)結(jié)構(gòu)示意圖;圖5是本發(fā)明方案主要流程圖;圖6是本發(fā)明本地鄰居發(fā)現(xiàn)處理流程圖;圖7是本發(fā)明鄰居發(fā)現(xiàn)代理處理流程圖。
具體實(shí)施例方式
下面根據(jù)附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例作出詳細(xì)的說(shuō)明。
如圖3所述,本發(fā)明鄰居發(fā)現(xiàn)代理的實(shí)現(xiàn)方法主要包括以下幾個(gè)步驟步驟1、在路由表主機(jī)路由中預(yù)設(shè)對(duì)應(yīng)著IP地址所對(duì)應(yīng)的鄰居狀態(tài)信息的接口索引;步驟2、接收鄰居發(fā)現(xiàn)報(bào)文;步驟3、根據(jù)鄰居發(fā)現(xiàn)報(bào)文的源IP地址和目的IP地址在路由表中查找所述的源IP地址和目的IP地址分別對(duì)應(yīng)的接口索引,并根據(jù)接口索引得到對(duì)應(yīng)于源IP地址的鄰居狀態(tài)和對(duì)應(yīng)于目的IP地址的鄰居狀態(tài);步驟4、根據(jù)鄰居發(fā)現(xiàn)報(bào)文的源IP地址和目的IP地址以及對(duì)應(yīng)于源IP地址的鄰居狀態(tài)和對(duì)應(yīng)于目的IP地址的鄰居狀態(tài),對(duì)所接收到的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行鄰居發(fā)現(xiàn)處理。
下面對(duì)以上步驟作具體描述首先,如圖4所示,本發(fā)明設(shè)計(jì)如下的數(shù)據(jù)結(jié)構(gòu),在現(xiàn)有的路由表中增加主機(jī)路由所在的接口索引,通過(guò)該接口索引可以找到該接口所對(duì)應(yīng)的接口IP地址、所有的鄰居狀態(tài)信息和所有接入的鏈路信息(例如具體的接入VLAN ID列表等)。這些數(shù)據(jù)結(jié)構(gòu)保存在硬件中,但其中的鄰居狀態(tài)信息由于涉及到路由信息的更新,為了保證整個(gè)系統(tǒng)的路由信息有效同步,鄰居狀態(tài)的處理以及鄰居節(jié)點(diǎn)的維護(hù)這些步驟由軟件來(lái)處理。
同時(shí),路由器接入NBMA網(wǎng)絡(luò)的接口硬件自動(dòng)加入到該接口所涉及的所有組播組中。
如圖5所示,當(dāng)路由器接收到來(lái)自于NBMA網(wǎng)絡(luò)的報(bào)文時(shí),接口硬件識(shí)別出有效的鄰居發(fā)現(xiàn)報(bào)文(包括NS報(bào)文和NA報(bào)文),并取出報(bào)文的源IP地址和目的IP地址信息,并根據(jù)鄰居報(bào)文的IP地址信息作如下處理根據(jù)源IP地址和目的IP地址分別查找路由表中對(duì)應(yīng)的接口索引,并根據(jù)源IP地址和目的IP地址所對(duì)應(yīng)的接口索引分別查找對(duì)應(yīng)于源IP地址的鄰居狀態(tài)和對(duì)應(yīng)于目的IP地址的鄰居狀態(tài)。
根據(jù)報(bào)文的源IP地址和目的IP地址判斷,如果源IP地址為未分配地址或者目的IP地址對(duì)應(yīng)的接口索引是路由器本身或本地鏈路的地址則對(duì)報(bào)文進(jìn)行本地鄰居發(fā)現(xiàn)處理,否則對(duì)報(bào)文進(jìn)行鄰居發(fā)現(xiàn)代理處理。
具體的,本地鄰居發(fā)現(xiàn)處理包括以下步驟11)判斷報(bào)文的源IP地址是否是“未分配地址”即全0地址,如果是,那么該報(bào)文是重復(fù)地址檢測(cè)(Duplicated Address Detect,DAD)報(bào)文,執(zhí)行以下步驟12),否則,執(zhí)行以下步驟13)。
12)根據(jù)目的IP地址對(duì)應(yīng)的鄰居狀態(tài)判斷目的IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)是否存在。如果該鄰居節(jié)點(diǎn)不存在,那么進(jìn)行重復(fù)地址檢測(cè)的地址為不重疊的IP地址,并確認(rèn)收到該報(bào)文的鏈路是否是本接口上的鏈路,如果是,通知軟件創(chuàng)建相應(yīng)的鄰居狀態(tài),否則丟棄報(bào)文;如果該鄰居節(jié)點(diǎn)存在,則判斷報(bào)文的MAC地址是否跟本接口的MAC地址不同,如果是,那么代理已存在的鄰居節(jié)點(diǎn)回應(yīng)NA報(bào)文,否則直接丟棄報(bào)文并更新鄰居狀態(tài),結(jié)束本地鄰居處理。
13)判斷源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)是否存在,如果存在,執(zhí)行步驟14),否則執(zhí)行步驟15)。
14)判斷所接收?qǐng)?bào)文的類型,如果是NA報(bào)文,那么直接通知軟件刷新鄰居狀態(tài),如果是NS報(bào)文,判斷報(bào)文的MAC地址是否跟本接口的MAC地址不同,如果是,則回應(yīng)NA報(bào)文,否則直接丟棄報(bào)文,結(jié)束本地鄰居處理。
15)判斷收到該報(bào)文的鏈路是否是本接口上的鏈路,如果是,通知軟件創(chuàng)建相應(yīng)的鄰居狀態(tài),否則丟棄報(bào)文。
鄰居發(fā)現(xiàn)代理處理包括以下步驟21)判斷源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)是否存在,如果是,執(zhí)行步驟22),否則,執(zhí)行步驟25)。
22)判斷目的IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)是否存在,如果是,執(zhí)行步驟23),否則執(zhí)行步驟24)。
23)判斷所接收?qǐng)?bào)文的類型,如果是是NS報(bào)文,那么代理目的IP地址對(duì)應(yīng)鄰居節(jié)點(diǎn)向源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)直接回應(yīng)NA報(bào)文,如果是NA報(bào)文,那么代理源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)向目的IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)NA報(bào)文,同時(shí)報(bào)文中的源MAC地址改為路由器接口MAC地址,結(jié)束鄰居代理處理。
24)判斷所接收?qǐng)?bào)文類型,如果是NS報(bào)文且允許NS廣播,則代理源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)向該接口所在的鏈路廣播該報(bào)文,并將報(bào)文的源MAC地址改為路由器的接口MAC地址,如果是是NA報(bào)文,那么確認(rèn)收到該報(bào)文的鏈路是否是本接口上的鏈路,如果是,通知軟件創(chuàng)建相應(yīng)的鄰居狀態(tài),否則丟棄報(bào)文,結(jié)束鄰居代理處理。
25)判斷收到該報(bào)文的鏈路是否是本接口上的鏈路,如果是,通知軟件創(chuàng)建相應(yīng)的鄰居狀態(tài),否則丟棄報(bào)文。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種鄰居發(fā)現(xiàn)的實(shí)現(xiàn)方法,其特征在于,包括步驟a)在路由表主機(jī)路由中預(yù)設(shè)對(duì)應(yīng)鄰居節(jié)點(diǎn)的鄰居狀態(tài)信息的接口索引;b)路由器接收鄰居發(fā)現(xiàn)報(bào)文;c)路由器根據(jù)鄰居發(fā)現(xiàn)報(bào)文的源IP地址和目的IP地址在路由表中查找該源IP地址和目的IP地址分別對(duì)應(yīng)的接口索引,并根據(jù)接口索引得到分別對(duì)應(yīng)于源IP地址的鄰居狀態(tài)和對(duì)應(yīng)于目的IP地址的鄰居狀態(tài);d)路由器根據(jù)鄰居發(fā)現(xiàn)報(bào)文的源IP地址和目的IP地址以及對(duì)應(yīng)于源IP地址的鄰居狀態(tài)和對(duì)應(yīng)于目的IP地址的鄰居狀態(tài),對(duì)所接收到的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行鄰居發(fā)現(xiàn)處理。
2.如權(quán)利要求1所述的鄰居發(fā)現(xiàn)的實(shí)現(xiàn)方法,其特征在于,步驟d)中進(jìn)行鄰居發(fā)現(xiàn)處理包括步驟判斷所接收的鄰居發(fā)現(xiàn)報(bào)文的源IP地址和目的IP地址是否滿足條件源IP地址是未分配IP地址或者目的IP地址所對(duì)應(yīng)的接口索引是路由器本身或者本地鏈路地址,如果是,則對(duì)所接收的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行本地鄰居發(fā)現(xiàn)處理,否則,對(duì)所接收的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行鄰居發(fā)現(xiàn)代理處理。
3.如權(quán)利要求2所述的鄰居發(fā)現(xiàn)的實(shí)現(xiàn)方法,其特征在于,所述的本地鄰居發(fā)現(xiàn)處理包括以下步驟d11)判斷所述的鄰居發(fā)現(xiàn)報(bào)文的源IP地址是否是未分配地址,如果是,執(zhí)行步驟d12),否則,執(zhí)行步驟d13);d12)對(duì)所接收的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行重復(fù)地址檢測(cè)處理,并更新鄰居節(jié)點(diǎn)的狀態(tài),結(jié)束本地鄰居發(fā)現(xiàn)處理;d13)判斷源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)是否存在,如果是,執(zhí)行步驟d14),否則,執(zhí)行步驟d15);d14)如果所接收的鄰居發(fā)現(xiàn)報(bào)文是鄰居通告報(bào)文,則更新源IP地址所對(duì)應(yīng)鄰居節(jié)點(diǎn)的鏈路狀態(tài),如果所接收的鄰居發(fā)現(xiàn)報(bào)文是鄰居通告請(qǐng)求報(bào)文且具有不同介質(zhì)訪問(wèn)控制地址,則回應(yīng)鄰居通告報(bào)文,否則丟棄報(bào)文,并結(jié)束本地鄰居發(fā)現(xiàn)處理;d15)確認(rèn)收到該報(bào)文的鏈路是本接口上的鏈路后創(chuàng)建源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)的鄰居狀態(tài),否則丟棄報(bào)文。
4.如權(quán)利要求2或3所述的鄰居發(fā)現(xiàn)的實(shí)現(xiàn)方法,其特征在于,所述的鄰居發(fā)現(xiàn)代理處理包括以下步驟d21)判斷所述的鄰居發(fā)現(xiàn)報(bào)文的源IP地址所對(duì)應(yīng)的鄰居節(jié)點(diǎn)是否存在,如果是,執(zhí)行步驟d22),否則,執(zhí)行步驟d27);d22)判斷所述的鄰居發(fā)現(xiàn)報(bào)文的目的IP地址所對(duì)應(yīng)的鄰居節(jié)點(diǎn)是否存在,如果是,執(zhí)行步驟d23),否則,執(zhí)行步驟d24);d23)如果所接收的鄰居發(fā)現(xiàn)報(bào)文是鄰居通告請(qǐng)求報(bào)文,則代理目的IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)向源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)發(fā)送鄰居通告報(bào)文,如果所接收的鄰居發(fā)現(xiàn)報(bào)文是鄰居通告報(bào)文,則代理源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)向目的IP地址所對(duì)應(yīng)的鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā)鄰居通告報(bào)文,并結(jié)束鄰居發(fā)現(xiàn)代理處理;d24)判斷所述的鄰居發(fā)現(xiàn)報(bào)文是否是鄰居通告請(qǐng)求報(bào)文,如果是,則執(zhí)行步驟d25),否則執(zhí)行步驟d26);d25)代理源IP地址所對(duì)應(yīng)的鄰居節(jié)點(diǎn)在本鏈路內(nèi)廣播該鄰居通告請(qǐng)求報(bào)文,結(jié)束鄰居發(fā)現(xiàn)代理處理;d26)如果所接收的鄰居發(fā)現(xiàn)報(bào)文是鄰居通告報(bào)文,則確認(rèn)收到該報(bào)文的鏈路是本接口上的鏈路后更新更新該鏈路節(jié)點(diǎn)對(duì)應(yīng)的鏈路狀態(tài),否則丟棄報(bào)文,并結(jié)束鄰居發(fā)現(xiàn)代理處理;d27)確認(rèn)收到該報(bào)文的鏈路是本接口上的鏈路后創(chuàng)建源IP地址對(duì)應(yīng)的鄰居節(jié)點(diǎn)的鄰居狀態(tài),否則丟棄報(bào)文。
全文摘要
本發(fā)明公開(kāi)了一種鄰居發(fā)現(xiàn)的實(shí)現(xiàn)方法,用于在路由器接入非廣播多點(diǎn)接入網(wǎng)絡(luò)時(shí)實(shí)現(xiàn)終端設(shè)備間的互相通信,主要包括以下步驟在路由表主機(jī)路由中預(yù)設(shè)對(duì)應(yīng)鄰居狀態(tài)的接口索引;接收鄰居發(fā)現(xiàn)報(bào)文;根據(jù)鄰居發(fā)現(xiàn)報(bào)文的源IP地址和目的IP地址在路由表中查找它們分別對(duì)應(yīng)的接口索引,并根據(jù)接口索引得到它們分別對(duì)應(yīng)的鄰居狀態(tài);根據(jù)鄰居發(fā)現(xiàn)報(bào)文的源IP地址和目的IP地址以及它們分別對(duì)應(yīng)的鄰居狀態(tài),對(duì)所接收到的鄰居發(fā)現(xiàn)報(bào)文進(jìn)行鄰居發(fā)現(xiàn)處理。采用本發(fā)明,避免了現(xiàn)有技術(shù)中軟件因處理大量的鄰居發(fā)現(xiàn)協(xié)議報(bào)文而導(dǎo)致的性能不足以及因軟件的流控導(dǎo)致接入設(shè)備的正常業(yè)務(wù)報(bào)文被丟失問(wèn)題,提高了設(shè)備的業(yè)務(wù)處理能力。
文檔編號(hào)H04L12/56GK1859304SQ20061003354
公開(kāi)日2006年11月8日 申請(qǐng)日期2006年2月13日 優(yōu)先權(quán)日2006年2月13日
發(fā)明者歐陽(yáng)偉龍 申請(qǐng)人:華為技術(shù)有限公司