鄰居的識別方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及通信技術(shù),尤其涉及一種鄰居的識別方法及裝置。
【背景技術(shù)】
[0002]開放最短路由優(yōu)先協(xié)議(Open Shortest Path Firs,簡稱0SPF)是一個基于狀態(tài)算法的路由協(xié)議。OSPF支持多拓撲,多拓撲是指將一個物理拓撲劃分成的多個邏輯拓撲,這些邏輯拓撲可能是交叉或者重疊的。多拓撲路由(Multi Topology Routing,簡稱MTR)屬于智能路由的范疇,不同的數(shù)據(jù)流可以被劃歸至不同的邏輯拓撲,這樣可以為實施轉(zhuǎn)發(fā)策略提供一個有效的手段。
[0003]在OSPF支持的多拓撲中,本端路由器和對端路由器在物理拓撲上是鄰居,然而,在該物理拓撲下的邏輯拓撲中,鄰居的數(shù)據(jù)結(jié)構(gòu)中沒有拓撲信息,若本端路由器使能到某個邏輯拓撲,則會認為本端路由器在該邏輯拓撲上有鄰居,然而,上述對端路由器可能沒有使能到該邏輯拓撲,即本端路由器到對端路由器是不可達的,這樣必然造成部分情況下的流量丟失。因此,急需針對多拓撲提供一種有效的識別鄰居的方法,從而避免流量丟失的情況發(fā)生。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本申請?zhí)峁┮环N鄰居的識別方法及裝置。
[0005]具體地,本申請是通過如下技術(shù)方案實現(xiàn)的:
[0006]根據(jù)本發(fā)明實施例的第一方面,提供一種鄰居的識別方法,所述方法應(yīng)用于多拓撲中的任一路由器上,所述方法包括:
[0007]接收對端路由器發(fā)送的擴展hello報文,所述擴展hello報文中攜帶所述對端路由器支持的拓撲信息,根據(jù)所述對端路由器支持的拓撲信息確定所述對端路由器支持的一個或多個邏輯拓撲;
[0008]若所述對端路由器支持的邏輯拓撲中存在與本端路由器支持的邏輯拓撲相同的邏輯拓撲,則確定所述對端路由器在所述相同的邏輯拓撲上是本端路由器的鄰居。
[0009]根據(jù)本發(fā)明實施例的第二方面,提供一種鄰居的識別裝置,所述裝置應(yīng)用于多拓撲中的任一路由器上,所述裝置包括:
[0010]接收確定模塊,用于接收對端路由器發(fā)送的擴展hello報文,所述擴展hello報文中攜帶所述對端路由器支持的拓撲信息,根據(jù)所述對端路由器支持的拓撲信息確定所述對端路由器支持的一個或多個邏輯拓撲;
[0011]鄰居確定模塊,用于若所述對端路由器支持的邏輯拓撲中存在與本端路由器支持的邏輯拓撲相同的邏輯拓撲,則確定所述對端路由器在所述相同的邏輯拓撲上是本端路由器的鄰居。
[0012]在本申請實施例中,接收對端路由器發(fā)送的擴展hello報文,由于擴展hello報文中攜帶對端路由器支持的拓撲信息,故可以根據(jù)擴展hello報文確定對端路由器支持的邏輯拓撲,然后在對端路由器支持的邏輯拓撲中存在與本端路由器支持的邏輯拓撲相同的邏輯拓撲時,可以確定對端路由器在相同的邏輯拓撲上是本端路由器的鄰居,由此可以有效地識別鄰居,進而可以避免流量丟失的情況發(fā)生。
【附圖說明】
[0013]圖1a是本申請一示例性實施例示出的一種鄰居的識別方法的流程圖;
[0014]圖1b是本申請一示例性實施例示出的一種LLS數(shù)據(jù)格式的示意圖;
[0015]圖1c是本申請一示例性實施例示出的一種LLS TLV數(shù)據(jù)格式的示意圖;
[0016]圖2是本申請一示例性實施例示出的另一種鄰居的識別方法的流程圖;
[0017]圖3是本申請一示例性實施例示出的一種鄰居的識別方法的應(yīng)用場景圖;
[0018]圖4是本申請一示例性實施例示出的又一種鄰居的識別方法的流程圖;
[0019]圖5是本申請一示例性實施例示出的再一種鄰居的識別方法的流程圖;
[0020]圖6是本申請鄰居的識別裝置所在路由器的一種硬件結(jié)構(gòu)圖;
[0021]圖7是本申請一示例性實施例示出的一種鄰居的識別裝置的框圖;
[0022]圖8是本申請一示例性實施例示出的另一種鄰居的識別裝置的框圖。
【具體實施方式】
[0023]這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。
[0024]在本申請使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項目的任何或所有可能組合。
[0025]應(yīng)當(dāng)理解,盡管在本申請可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”。
[0026]在本申請實施例中,位于多拓撲中的每個路由器均可以接收對端路由器發(fā)送的擴展hello報文,并根據(jù)擴展hello報文中攜帶的對端路由器支持的拓撲信息,來獲得自己的鄰居信息,然后可以基于自己的鄰居信息避免丟棄流量的情況發(fā)生。
[0027]下面結(jié)合具體實施例對本申請的實現(xiàn)過程進行詳細描述。
[0028]圖1a是本申請一示例性實施例示出的一種鄰居的識別方法的流程圖,該實施例可應(yīng)用于多拓撲中的任一路由器上,如圖1a所示,該鄰居的識別方法包括:
[0029]步驟S101,接收對端路由器發(fā)送的擴展hello報文,擴展hello報文中攜帶對端路由器支持的拓撲信息,根據(jù)對端路由器支持的拓撲信息確定對端路由器支持的一個或多個邏輯拓撲。
[0030]在該實施例中,針對多拓撲中的任一路由器而言,本端路由器可接收對端路由器發(fā)送的擴展hello報文,其中,擴展hello報文中攜帶對應(yīng)對端路由器支持的拓撲信息,以用于發(fā)現(xiàn)鄰居關(guān)系。
[0031]其中,可以在hello報文的本地鏈路信令(Link-local Signaling,LLS)字段內(nèi)添加一種新的類型長度值(TLV),用以描述路由器支持的拓撲信息,如果該路由器支持多個邏輯拓撲,則需要在LLS字段添加多個TLV,LLS數(shù)據(jù)格式可如圖1b所示,每個LLS TLV數(shù)據(jù)格式可如圖1c所示,其中,類型(Type)字段填充的是一個TLV標(biāo)識(ID),值(Value)字段可填充任意長度和任意類型的數(shù)據(jù),例如邏輯拓撲對應(yīng)的拓撲ID,長度(Length)字段填充的是Value字段的長度。
[0032]需要說明的是,本發(fā)明實施例中所述的對端路由器與本端路由器在物理拓撲上直接相連。本端路由器接收對端路由器通過與本端路由器直接相連的接口發(fā)送的擴展hello報文,其中攜帶該接口支持的拓撲信息。如圖3所示的拓撲中,RTA分別與RTB、RTC在物理拓撲(實線所示的拓撲)上直接相連,RTA的接口 al未使能到虛線所示的邏輯拓撲、接口a2使能到了該邏輯拓撲,則RTA通過接口 al向RTB發(fā)送的擴展hello報文攜帶的拓撲信息中不包含該虛線所示的邏輯拓撲的信息,RTA通過接口 a2向RTC發(fā)送的擴展hello報文攜帶的拓撲信息中包含該虛線所示的邏輯拓撲的信息。
[0033]步驟S102,若對端路由器支持的邏輯拓撲中存在與本端路由器支持的邏輯拓撲相同的邏輯拓撲,則確定對端路由器在相同的邏輯拓撲上是本端路由器的鄰居。
[0034]在該實施例中,可以將對端路由器支持的邏輯拓撲與本端路由器支持的邏輯拓撲進行比較,若二者存在相同的邏輯拓撲,則對端路由器在相同的邏輯拓撲上是本端路由器的鄰居。
[0035]例如,假設(shè)本端路由器為路由器1,一個對端路由器為路由器2,路由器I獲得路由器2的擴展hello報文后,從路由器2的擴展hello報文中解析出路由器2支持的邏輯拓撲為拓撲1、拓撲2和拓撲4,而路由器I支持的邏輯拓撲為拓撲1、拓撲3和拓撲4,則路由器2在拓撲I和拓撲4上均為路由器I的鄰居。
[0036]上述鄰居的識別方法實施例,接收對端路由器發(fā)送的擴展hello報文,由于擴展hello報文中攜帶對端路由器支持的拓撲信息,故可以根據(jù)擴展hello報文確定對端路由器支持的邏輯拓撲,然后在對端路由器支持的邏輯拓撲中存在與本端路由器支持的邏輯拓撲相同的邏輯拓撲時,可以確定對端路由器在相同的邏輯拓撲上是本端路由器的鄰居,由此可以有效地識別鄰居,進而可以避免流量丟失的情況發(fā)生。
[0037]圖2是本申請一示例性實施例示出的另一種鄰居的識別方法的流程圖,