亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種網(wǎng)絡地址查找方法及裝置的制作方法

文檔序號:7906725閱讀:207來源:國知局
專利名稱:一種網(wǎng)絡地址查找方法及裝置的制作方法
技術(shù)領域
本發(fā)明實施例涉及通信技術(shù),尤其涉及一種網(wǎng)絡地址查找方法及裝置。
背景技術(shù)
通信領域中,路由器對報文進行轉(zhuǎn)發(fā)前,需要根據(jù)報文的目的地址在路由轉(zhuǎn)發(fā)表中查找與目的地址匹配的表項。從而確定該報文的下一跳地址。最長前綴匹配(the longest prefix match)是較為常用的查找方式。實現(xiàn)最長前綴長度匹配的多種方式中,使用三態(tài)內(nèi)容可尋址存儲器(Ternary Content Addressable Memory, TCAM)是一種常用方法。TCAM 的存儲單元除了 “0” 和 “ 1” 兩種狀態(tài),還有一種不關(guān)心(don’ t care)狀態(tài)。不關(guān)心狀態(tài)表明既可以為“0”也可以為 “1”。發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)存在以下技術(shù)問題將若干個網(wǎng)絡地址存儲在一個表中,當多個網(wǎng)絡地址的高位相同時,每個網(wǎng)絡地址的高位都需要占用一定的存儲空間,占用的存儲空間較多。

發(fā)明內(nèi)容
本發(fā)明實施例提供一種網(wǎng)絡地址查找方法和裝置,可以解決將若干個網(wǎng)絡地址存儲在一個表中,當多個網(wǎng)絡地址的高位相同時,每個網(wǎng)絡地址的高位都需要占用一定的存儲空間,占用的存儲空間較多的問題。一方面,本發(fā)明實施例提供的一種網(wǎng)絡地址查找方法,包括在高M表中查找第一高M表項,所述第一高M表項包含第一網(wǎng)絡地址的高M位地址,M為自然數(shù),所述第一網(wǎng)絡地址為X位,X為自然數(shù);如果在所述高M表中查找到所述第一高M表項,則判斷低N表中是否包含對應所述第一高M表項的子表,N為自然數(shù);如果所述低N表中包含所述子表,則在所述低N表中查找對應所述第一網(wǎng)絡地址的低N表項,所述低N表項包含所述第一網(wǎng)絡地址的低N位,X為M與N的和。另一方面,本發(fā)明實施例提供的一種網(wǎng)絡地址查找裝置,包括查找單元以及判斷單元;所述查找單元用于在高M表中查找第一高M表項,所述第一高M表項包含第一網(wǎng)絡地址的高M位地址,M為自然數(shù),所述第一網(wǎng)絡地址為X位,X為自然數(shù),根據(jù)所述判斷單元的判斷結(jié)果,如果低N表中包含對應所述第一高M表項的子表,則在所述低N表中查找對應所述第一網(wǎng)絡地址的低N表項,所述低N表項包含所述第一網(wǎng)絡地址的低N位,N為自然數(shù),X為M與N的和;所述判斷單元用于如果在所述高M表中查找到所述第一高M表項,則判斷所述低 N表中是否包含所述子表。本發(fā)明實施例提供的網(wǎng)絡地址查找方法及裝置,將若干個網(wǎng)絡地址的高位存儲在高M表中,將該若干個網(wǎng)絡地址的低位存儲在低N表中。當該若干個網(wǎng)絡地址中多個網(wǎng)絡地址的高位相同時,只需使用高M表的一個表項存儲該多個網(wǎng)絡地址的高位??梢姡ㄟ^本發(fā)明實施例提供的網(wǎng)絡地址查找方法及裝置,可以解決將若干個網(wǎng)絡地址存儲在一個表中,當多個網(wǎng)絡地址的高位相同時,每個網(wǎng)絡地址的高位都需要占用一定的存儲空間,占用的存儲空間較多的技術(shù)問題。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實施例提供的網(wǎng)絡地址查找方法流程圖;圖2是本發(fā)明實施例提供的網(wǎng)絡地址查找裝置示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。實施例一本發(fā)明實施例提供了一種網(wǎng)絡地址查找方法,可以用于需要進行網(wǎng)絡地址查找的場景中,例如網(wǎng)關(guān)對主機發(fā)出的地址解析協(xié)議(Address Resolution Protocol, ARP)請求進行相應響應時,需要查找主機的網(wǎng)絡地址。參見圖1,圖1是本發(fā)明實施例提供的網(wǎng)絡地址查找方法流程圖,該方法包括101 在高M表中查找第一高M表項,該第一高M表項包含第一網(wǎng)絡地址的高M位, M為自然數(shù),該第一網(wǎng)絡地址為X位,X為自然數(shù)。第一網(wǎng)絡地址可以是目的地址或者是源地址。第一網(wǎng)絡地址可以是對應特定協(xié)議的網(wǎng)絡地址。特定協(xié)議可以是網(wǎng)際協(xié)議(Internet Protocol, IP)或者媒體接入控制(Media Access Control,MAC)協(xié)議。當?shù)谝痪W(wǎng)絡地址是IP地址時,IP地址可以是網(wǎng)際協(xié)議版本 4 (Internet Protocol version 4, IPv4)地址,或者網(wǎng)際協(xié)議版本 6 (Internet Protocol version 6, IPv6)地址。當?shù)谝痪W(wǎng)絡地址是IPv4地址時,第一網(wǎng)絡地址為32位二進制數(shù)。 當?shù)谝痪W(wǎng)絡地址是IPv6地址時,第一網(wǎng)絡地址為1 位二進制數(shù)。第一網(wǎng)絡地址可以承載于網(wǎng)絡設備收到的報文中。例如網(wǎng)絡設備收到網(wǎng)際協(xié)議分組(Internet Protocol Packet, IP分組),該IP分組中包含了 IP地址。高M表可以存儲在網(wǎng)絡設備中,該網(wǎng)絡設備可以是路由器、交換機、防火墻或者負載均衡器。具體來說,高M表可以存儲在該網(wǎng)絡設備的內(nèi)存中。當該網(wǎng)絡設備中包含TCAM 時,高M表也可以存儲在該網(wǎng)絡設備的TCAM中。該高M表可以用于存儲X位網(wǎng)絡地址的高M 位。高M表可以包括一個表項或者多個表項。在特定場景下,利用高M表存儲X位網(wǎng)絡地址的高M位地址可以節(jié)省存儲空間。以IPv4的場景為例,路由器接收鄰居路由器發(fā)布的路由消息,獲得了進行報文轉(zhuǎn)發(fā)所需的路徑信息。路徑信息可以存儲在轉(zhuǎn)發(fā)信息庫O^orwarding Information Base, FIB)。FIB中的路徑信息可以包括若干個32位的目的IP地址。該若干個IP地址中多個目的IP地址的高16位可以是相同的。例如該多個目的IP地址的高16 位都是十進制192. 168。因此可以用高M表中的一個表項表示該多個目的IP地址的高16 位,從而節(jié)省該多個目的IP地址的存儲空間。高M表可以包括第一高M表項,該第一高M表項包含該第一網(wǎng)絡地址的高M位地址。以IPv6的場景為例,當?shù)谝痪W(wǎng)絡地址為1 位的IPv6地址時,高M表中可以包含該第一網(wǎng)絡地址的高64位。此時M的值為64。102 如果在該高M表中查找到該第一高M表項,則判斷低N表中是否包含對應該第一高M表項的子表,N為自然數(shù)。低N表用于存儲X位網(wǎng)絡地址的低N位。低N表可以包括多個表項。低N表可以包括對應該第一高M表項的子表。該子表為該低N表的一個子集。該子表可以包括1個或多個子表表項。子表表項包含高M位等于該第一網(wǎng)絡地址的高M位的X位網(wǎng)絡地址的低N 位。該子表可以包含該第一網(wǎng)絡地址的低N位,也可以不包含該第一網(wǎng)絡地址的低N位。在特定場景下,該低N表中可以不包含該子表。例如,路由器通過路由協(xié)議學習到第一網(wǎng)絡地址。該第一網(wǎng)絡地址為一個新的IPv6地址。當路由器的控制平面向路由器的數(shù)據(jù)平面下送該第一網(wǎng)絡地址時,可以只下送該第一網(wǎng)絡地址的高64位,即網(wǎng)段地址,不下送該第一網(wǎng)絡地址的低64位。通過上述場景形成的低N表中可以不包含對應該第一網(wǎng)絡地址的子表。103 如果該低N表中包含該子表,則在該低N表中查找對應該第一網(wǎng)絡地址的低 N表項,該低N表項包含該第一網(wǎng)絡地址的低N位,X為M與N的和。根據(jù)第一網(wǎng)絡地址的低N位地址,在低N表中查找低N表項。該低N表項包含該第一網(wǎng)絡地址的低N位。如果查找到低N表項,則表明第一網(wǎng)絡地址與高M表以及低N表發(fā)生匹配。上述查找第一網(wǎng)絡地址的技術(shù)方案可以應用于多種場景。例如,可以將高M表以及低N表作為網(wǎng)關(guān)的ARP緩存表對主機發(fā)出的ARP請求進行驗證。當?shù)谝痪W(wǎng)絡地址與高M 表以及低N表發(fā)生匹配時,表明源IP地址為第一網(wǎng)絡地址的報文通過網(wǎng)關(guān)的ARP緩存表的驗證。另外,可以將高M表以及低N表作為路由器的路由轉(zhuǎn)發(fā)表對路由器收到的報文進行轉(zhuǎn)發(fā)。當?shù)谝痪W(wǎng)絡地址與高M表以及低N表發(fā)生匹配時,表明路由器可以根據(jù)路由轉(zhuǎn)發(fā)表對目的地址為第一網(wǎng)絡地址的IP分組進行轉(zhuǎn)發(fā)。相對于現(xiàn)有技術(shù)將若干個X位網(wǎng)絡地址存儲在一個表中,本實施例將X位網(wǎng)絡地址的高M位以及低N位分別存儲在高M表以及低N表中。在高M表中,只需通過一個表項存儲X位網(wǎng)絡地址中高M位相同的多個網(wǎng)絡地址的高M位。這意味著高M表中可以沒有內(nèi)容重復的表項,減少了高M位相同的多個X位網(wǎng)絡地址所需的存儲空間。因此,本實施例提供的網(wǎng)絡地址查找方法解決了將若干個網(wǎng)絡地址存儲在一個表中,當多個網(wǎng)絡地址的高位相同時,每個網(wǎng)絡地址的高位都需要占用一定的存儲空間,占用的存儲空間較多的技術(shù)問題。另外,本實施例提供的網(wǎng)絡地址查找方法中,在低N表中查找第一網(wǎng)絡地址的低N 位前,對低N表中是否包含對應該第一高M表項的子表進行判斷,避免了當?shù)蚇表中沒有對應該第一高M表項的子表時,仍然在低N表中查找對應該第一網(wǎng)絡地址的低N表項。提高了查找效率。本實施例提供了一種查找網(wǎng)絡地址的方法,該查找方法通過查找高M表以及低N 表實現(xiàn)。下文提供了該查找方法的一種具體實現(xiàn)方式。為便于理解,下文先介紹高M表以及低N表的生成過程,然后介紹高M表以及低N表的查找過程第一部分高M表以及低N表的生成過程路由器的嵌入式操作系統(tǒng)初始化時,可以在內(nèi)存中分別為1 位的IPv6地址的高 64位、低64位以及高64位地址的索引分配一個存儲空間。以上三個存儲空間是彼此獨立的。路由器根據(jù)路由協(xié)議,學習到第一網(wǎng)絡地址,該第一網(wǎng)絡地址為1 位的IPv6 地址。路由器的CPU通過控制通道,例如周邊部件高速互連(Peripheral Component Interconnect Express, PCI-E)總線,將該網(wǎng)絡地址下發(fā)到查找引擎。查找引擎可以是一個芯片。查找引擎收到路由器學習到的第一網(wǎng)絡網(wǎng)絡地址,將該第一網(wǎng)絡地址的高64位添加到高M表中,形成第一高M表項。具體實現(xiàn)時,可以是查找引擎將該網(wǎng)絡地址的高64 位寫入到路由器的嵌入式操作系統(tǒng)初始化時為高64位分配的地址空間。查找引擎可以隨機生成該高64位地址的索引,并將該高64位地址的索引存儲到嵌入式操作系統(tǒng)初始化時為高64位地址的索引分配的存儲空間。高64位地址以及高64 位地址的索引是一一對應的。也就是說對于不同的高64位地址,高64位地址的索引是不同的。高64位地址的索引可以是Y個比特的二進制數(shù),Y為自然數(shù)。當查找引擎隨機生成該高64位地址的索引時,查找引擎可以生成該低高M表項的第一標志。第一標志用于表示低M表中是否包含對應該第一高M表項的子表。第一標志可以是一個比特的二進制數(shù)。例如可以用二進制0表示低M表中沒有包含對應該第一高M表項的子表;可以用二進制1表示低M表中包含對應該第一高M表項的子表。查找引擎將該第一網(wǎng)絡地址的高64位地址的索引以及該第一網(wǎng)絡地址的低64位添加到低M表中,形成低N表項。具體實現(xiàn)時,可以是查找引擎將該第一網(wǎng)絡地址的高64 位地址的索引以及該第一網(wǎng)絡地址的低64位地址寫入到路由器的嵌入式操作系統(tǒng)初始化時為低64位地址分配的地址空間。第二部分高M表以及低N表的查找過程路由器收到目的地址為第一網(wǎng)絡地址的報文,并將該報文送到網(wǎng)絡處理器 (Network Processor, NP) 0 NP對該報文進行解析后,提取出該報文的目的IP地址,即第一網(wǎng)絡地址。NP將該第一網(wǎng)絡地址的高1 位發(fā)送至查找引擎。查找引擎在高M表中查找該第一網(wǎng)絡地址的高64位。如果查找引擎在高M表中查找到包含該第一網(wǎng)絡地址的高64位地址的表項,即第一高M表項,查找引擎從路由器的內(nèi)存中讀出該高64位地址的索引,并將該高64位地址的索引發(fā)送至NP。當查找引擎讀出該高64位地址的索引時,查找引擎可以讀出該高64位地址的第一標志,并將該第一標志發(fā)送至NP。第一標志用于表示低M表中是否包含對應該第一高M 表項的子表。第一標志可以是一個比特的二進制數(shù)。例如用二進制0表示低64表中沒有包含對應該第一高64表項的子表;用二進制1表示低64表中包含對應該第一高64表項的子表。
當?shù)谝粯酥颈砻髟摳?4位地址有對應的低64位地址時,NP將該高64位地址的索引以及該第一網(wǎng)絡地址的低64位發(fā)送至查找引擎。查找引擎以該高64位地址的索引以及該第一網(wǎng)絡地址的低64位為鍵值(key),在低M表中查找是否存在與該key匹配的表項。 當標志位表明低M表中沒有包含對應該第一高M表項的子表時,NP不再發(fā)起查找。查找引擎以該高64位地址的索引以及該第一網(wǎng)絡地址的低64位地址為key,在低 64表中查找與該key匹配的表項,即低N表項。如果查找引擎在低M表中查找到該低N表項,查找引擎可以讀出該低64位地址的索引,并將該低64位地址的索引發(fā)送至NP。NP可以根據(jù)該低64位地址的索引,為路由器收到的目的地址為第一網(wǎng)絡地址的報文確定進行轉(zhuǎn)發(fā)的物理出接口??蛇x的,如果該低N表中不包含該子表,則不在該低N表中查找該低N表項??蛇x的,該判斷低N表中是否包含對應該第一高M表項的子表具體包括根據(jù)該第一高M表項的第一標志判斷該低N表中是否包含該子表。可選的,該在該低N表中查找對應第一網(wǎng)絡地址的低N表項具體包括以該第一高M表項的索引以及該第一網(wǎng)絡地址的低N位為key,在該低N表中查找該低N表項,該低N表項包含該第一高M表項的索引。可選的,該第一網(wǎng)絡地址的高M位地址和/或低N位地址以二叉樹的形式存儲于該高M表和/或該低N表中。實施例二 本發(fā)明實施例提供了一種網(wǎng)絡地址查找裝置,可以用于需要進行網(wǎng)絡地址查找的場景中,例如網(wǎng)關(guān)對主機發(fā)出的ARP請求進行相應響應時,需要查找主機的網(wǎng)絡地址。參見圖2,圖2是本發(fā)明實施例提供的網(wǎng)絡地址查找裝置示意圖,該裝置包括查找單元201以及判斷單元202 該查找單元201用于在高M表中查找第一高M表項,該第一高M表項包含第一網(wǎng)絡地址的高M位地址,M為自然數(shù),該第一網(wǎng)絡地址為X位,X為自然數(shù),根據(jù)該判斷單元的判斷結(jié)果,如果低N表中包含對應該第一高M表項的子表,則在該低N表中查找對應該第一網(wǎng)絡地址的低N表項,該低N表項包含該第一網(wǎng)絡地址的低N位,N為自然數(shù),X為M與N的和。第一網(wǎng)絡地址可以是目的地址或者是源地址。第一網(wǎng)絡地址可以是對應特定協(xié)議的網(wǎng)絡地址。特定協(xié)議可以是IP或者MAC協(xié)議。當?shù)谝痪W(wǎng)絡地址是IP地址時,IP地址可以是IPv4地址,或者IPv6地址。當?shù)谝痪W(wǎng)絡地址是IPv4地址時,第一網(wǎng)絡地址為32位二進制數(shù)。當?shù)谝痪W(wǎng)絡地址是IPv6地址時,第一網(wǎng)絡地址為1 位二進制數(shù)。第一網(wǎng)絡地址可以承載于網(wǎng)絡設備收到的報文中。例如網(wǎng)絡設備收到IP分組,該IP分組中包含了 IP地址。高M表可以存儲在網(wǎng)絡設備中,該網(wǎng)絡設備可以是路由器、交換機、防火墻或者負載均衡器。具體來說,高M表可以存儲在該網(wǎng)絡設備的內(nèi)存中。當該網(wǎng)絡設備中包含TCAM時,高M表也可以存儲在該網(wǎng)絡設備的TCAM中。該高M表可以用于存儲X位網(wǎng)絡地址的高 M位。高M表可以包括一個表項或者多個表項。在特定場景下,利用高M表存儲X位網(wǎng)絡地址的高M位地址可以節(jié)省存儲空間。以IPv4的場景為例,路由器通過接收鄰居路由器發(fā)布的路由消息,獲得了進行報文轉(zhuǎn)發(fā)所需的路徑信息。路徑信息可以存儲在FIB。FIB中的路徑信息可以包括若干個32位的目的IP地址。該若干個IP地址中多個目的IP地址的高 16位可以是相同的。例如該多個目的IP地址的高16位都是十進制192. 168。因此可以通過高M表中的一個表項表示該多個目的IP地址的高16位,從而節(jié)省該多個目的IP地址的存儲空間。高M表可以包括第一高M表項,該第一高M表項包含該第一網(wǎng)絡地址的高M位地址。以IPv6的場景為例,當?shù)谝痪W(wǎng)絡地址為1 位的IPv6地址時,高M表中可以包含該第一網(wǎng)絡地址的高64位。此時M的值為64。根據(jù)第一網(wǎng)絡地址的低N位地址,在低N表中查找低N表項。該低N表項包含該第一網(wǎng)絡地址的低N位。如果查找到低N表項,則表明第一網(wǎng)絡地址與高M表以及低N表發(fā)生匹配。該判斷單元202用于如果在該高M表中查找到該第一高M表項,則判斷該低N表中是否包含該子表。低N表用于存儲X位網(wǎng)絡地址的低N位。低N表可以包括多個表項。低N表可以包括對應該第一高M表項的子表。該子表為該低N表的一個子集。該子表可以包括1個或多個子表表項。子表表項包含高M位等于該第一網(wǎng)絡地址的高M位的X位網(wǎng)絡地址的低N 位。該子表可能包含該第一網(wǎng)絡地址的低N位,也可能不包含該第一網(wǎng)絡地址的低N位。在特定場景下,該低N表中可以不包含該子表。例如,路由器通過路由協(xié)議學習到第一網(wǎng)絡地址。該第一網(wǎng)絡地址為一個新的IPv6地址。當路由器的控制平面向路由器的數(shù)據(jù)平面下送該第一網(wǎng)絡地址時,可以只下送該第一網(wǎng)絡地址的高64位,即網(wǎng)段地址,不下送該第一網(wǎng)絡地址的低64位。通過上述場景形成的低N表中可以不包含對應該第一網(wǎng)絡地址的子表。上述查找第一網(wǎng)絡地址的技術(shù)方案可以應用于多種場景。例如,可以將高M表以及低N表作為網(wǎng)關(guān)的ARP緩存表對主機發(fā)出的ARP請求進行驗證。當?shù)谝痪W(wǎng)絡地址與高M 表以及低N表發(fā)生匹配時,表明源IP地址為第一網(wǎng)絡地址的報文通過網(wǎng)關(guān)的ARP緩存表的驗證。另外,可以將高M表以及低N表作為路由器的路由轉(zhuǎn)發(fā)表對路由器收到的報文進行轉(zhuǎn)發(fā)。當?shù)谝痪W(wǎng)絡地址與高M表以及低N表發(fā)生匹配時,表明路由器可以根據(jù)路由轉(zhuǎn)發(fā)表對目的地址為第一網(wǎng)絡地址的IP分組進行轉(zhuǎn)發(fā)。相對于現(xiàn)有技術(shù)將若干個X位網(wǎng)絡地址存儲在一個表中,本實施例將X位網(wǎng)絡地址的高M位以及低N位分別存儲在高M表以及低N表中。在高M表中,只需通過一個表項存儲X位網(wǎng)絡地址中高M位相同的多個網(wǎng)絡地址的高M位。這意味著高M表中可以沒有發(fā)生重復的表項,減少了高M位相同的多個X位網(wǎng)絡地址所需的存儲空間。因此,本實施例提供的網(wǎng)絡地址查找裝置解決了將若干個網(wǎng)絡地址存儲在一個表中,當多個網(wǎng)絡地址的高位相同時,每個網(wǎng)絡地址的高位都需要占用一定的存儲空間,占用的存儲空間較多的技術(shù)問題。另外,本實施例提供的網(wǎng)絡地址查找裝置中,在低N表中查找第一網(wǎng)絡地址的低N 位前,對低N表中是否包含對應該第一高M表項的子表進行判斷,避免了當?shù)蚇表中沒有對應該第一高M表項的子表時,仍然在低N表中查找對應該第一網(wǎng)絡地址的低N表項。提高了查找效率。本實施例提供了一種查找網(wǎng)絡地址的裝置,該查找裝置通過查找高M表以及低N 表實現(xiàn)。下文提供了該查找裝置的一種具體實現(xiàn)方式。為便于理解,下文先介紹高M表以及低N表的生成過程,然后介紹高M表以及低N表的查找過程第一部分高M表以及低N表的生成過程路由器的嵌入式操作系統(tǒng)初始化時,可以在內(nèi)存中分別為1 位的IPv6地址的高 64位、低64位以及高64位地址的索引分配一個存儲空間。以上三個存儲空間是彼此獨立的。路由器根據(jù)路由協(xié)議,學習到第一網(wǎng)絡地址,該第一網(wǎng)絡地址為1 位的IPv6地址。路由器的CPU通過控制通道,例如PCI-E總線,將該網(wǎng)絡地址下發(fā)到查找引擎。查找引擎可以是一個芯片。查找引擎收到路由器學習到的第一網(wǎng)絡網(wǎng)絡地址,將該第一網(wǎng)絡地址的高64位添加到高M表中,形成第一高M表項。具體實現(xiàn)時,可以是查找引擎將該網(wǎng)絡地址的高64 位寫入到路由器的嵌入式操作系統(tǒng)初始化時為高64位分配的地址空間。查找引擎可以隨機生成該高64位地址的索引,并將該高64位地址的索引存儲到嵌入式操作系統(tǒng)初始化時為高64位地址的索引分配的存儲空間。高64位地址以及高64 位地址的索引是一一對應的。也就是說對于不同的高64位地址,高64位地址的索引是不同的。高64位地址的索引可以是Y個比特的二進制數(shù),Y為自然數(shù)。當查找引擎隨機生成該高64位地址的索引時,查找引擎可以生成該低高M表項的第一標志。第一標志用于表示低M表中是否包含對應該第一高M表項的子表。第一標志可以是一個比特的二進制數(shù)。例如可以用二進制0表示低M表中沒有包含對應該第一高M表項的子表;可以用二進制1表示低M表中包含對應該第一高M表項的子表。查找引擎將該第一網(wǎng)絡地址的高64位地址的索引以及該第一網(wǎng)絡地址的低64位添加到低M表中,形成低N表項。具體實現(xiàn)時,可以是查找引擎將該第一網(wǎng)絡地址的高64 位地址的索引以及該第一網(wǎng)絡地址的低64位地址寫入到路由器的嵌入式操作系統(tǒng)初始化時為低64位地址分配的地址空間。第二部分高M表以及低N表的查找過程路由器收到目的地址為第一網(wǎng)絡地址的報文,并將該報文送到NP。NP對該報文進行解析后,提取出該報文的目的IP地址,即第一網(wǎng)絡地址。NP將該第一網(wǎng)絡地址的高1 位發(fā)送至查找引擎。查找引擎在高M表中查找該第一網(wǎng)絡地址的高64位。如果查找引擎在高M表中查找到包含該第一網(wǎng)絡地址的高64位地址的表項,即第一高M表項,查找引擎從路由器的內(nèi)存中讀出該高64位地址的索引,并將該高64位地址的索引發(fā)送至NP。當查找引擎讀出該高64位地址的索引時,查找引擎可以讀出該高64位地址的第一標志,并將該第一標志發(fā)送至NP。第一標志用于表示低M表中是否包含對應該第一高M 表項的子表。第一標志可以是一個比特的二進制數(shù)。例如用二進制0表示低64表中沒有包含對應該第一高64表項的子表;用二進制1表示低64表中包含對應該第一高64表項的子表。當?shù)谝粯酥颈砻髟摳?4位地址有對應的低64位地址時,NP將該高64位地址的索引以及該第一網(wǎng)絡地址的低64位發(fā)送至查找引擎。查找引擎以該高64位地址的索引以及該第一網(wǎng)絡地址的低64位為key,在低M表中查找是否存在與該key匹配的表項。當標志位表明低M表中沒有包含對應該第一高M表項的子表時,NP不再發(fā)起查找。查找引擎以該高64位地址的索引以及該第一網(wǎng)絡地址的低64位地址為key,在低 64表中查找與該key匹配的表項,即低N表項。如果查找引擎在低M表中查找到該低N表項,查找引擎可以讀出該低64位地址的索引,并將該低64位地址的索引發(fā)送至NP。NP可以根據(jù)該低64位地址的索引,為路由器收到的目的地址為第一網(wǎng)絡地址的報文確定進行轉(zhuǎn)發(fā)的物理出接口??蛇x的,該查找單元進一步用于,如果該低N表中不包含該子表,則不在該低N表中查找該低N表項。可選的,該判斷單元具體用于,根據(jù)該第一高M表項的第一標志判斷該低N表中是否包含該子表??蛇x的,該查找單元具體用于,以該第一高M表項的索引以及該第一網(wǎng)絡地址的低N位為 key,在該低N表中查找該低N表項,該低N表項包含該第一高M表項的索引。本領域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。最后應說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術(shù)人員應當理解其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種網(wǎng)絡地址查找方法,其特征在于在高M表中查找第一高M表項,所述第一高M表項包含第一網(wǎng)絡地址的高M位,M為自然數(shù),所述第一網(wǎng)絡地址為X位,X為自然數(shù);如果在所述高M表中查找到所述第一高M表項,則判斷低N表中是否包含對應所述第一高M表項的子表,N為自然數(shù);如果所述低N表中包含所述子表,則在所述低N表中查找對應所述第一網(wǎng)絡地址的低 N表項,所述低N表項包含所述第一網(wǎng)絡地址的低N位,X為M與N的和。
2.根據(jù)權(quán)利要求1所述方法,其特征在于如果所述低N表中不包含所述子表,則不查找所述低N表項。
3.根據(jù)權(quán)利要求1或2所述方法,其特征在于所述判斷低N表中是否包含對應所述第一高M表項的子表具體包括根據(jù)所述第一高M表項的第一標志判斷所述低N表中是否包含所述子表。
4.根據(jù)權(quán)利要求1至3任一權(quán)利要求所述方法,其特征在于所述在所述低N表中查找對應所述第一網(wǎng)絡地址的低N表項具體包括以所述第一高M表項的索引以及所述第一網(wǎng)絡地址的低N位為鍵值key,在所述低N表中查找所述低N表項,所述低N表項包含所述第一高M表項的索引。
5.根據(jù)權(quán)利要求1至4任一權(quán)利要求所述方法,其特征在于所述第一網(wǎng)絡地址的高M位和/或低N位以二叉樹的形式存儲于所述高M表和/或所述低N表中。
6.一種網(wǎng)絡地址查找裝置,其特征在于,包括查找單元以及判斷單元;所述查找單元用于在高M表中查找第一高M表項,所述第一高M表項包含第一網(wǎng)絡地址的高M位,M為自然數(shù),所述第一網(wǎng)絡地址為X位,X為自然數(shù),根據(jù)所述判斷單元的判斷結(jié)果,如果低N表中包含對應所述第一高M表項的子表,則在所述低N表中查找對應所述第一網(wǎng)絡地址的低N表項,所述低N表項包含所述第一網(wǎng)絡地址的低N位,N為自然數(shù),X為M 與N的和;所述判斷單元用于如果在所述高M表中查找到所述第一高M表項,則判斷所述低N表中是否包含所述子表。
7.根據(jù)權(quán)利要求6所述裝置,其特征在于所述查找單元進一步用于,如果所述低N表中不包含所述子表,則不查找所述低N表項。
8.根據(jù)權(quán)利要求6或7所述裝置,其特征在于所述判斷單元具體用于,根據(jù)所述第一高M表項的第一標志判斷所述低N表中是否包含所述子表。
9.根據(jù)權(quán)利要求6至8任一權(quán)利要求所述裝置,其特征在于所述查找單元具體用于,以所述第一高M表項的索引以及所述第一網(wǎng)絡地址的低N位為key,在所述低N表中查找所述低N表項,所述低N表項包含所述第一高M表項的索引。
全文摘要
本發(fā)明實施例提供了一種網(wǎng)絡地址查找方法,包括在高M表中查找第一高M表項,該第一高M表項包含第一網(wǎng)絡地址的高M位地址,M為自然數(shù),該第一網(wǎng)絡地址為X位,X為自然數(shù);如果在該高M表中查找到該第一高M表項,則判斷低N表中是否包含對應該第一高M表項的子表,N為自然數(shù);如果該低N表中包含該子表,則在該低N表中查找對應第一網(wǎng)絡地址的低N表項,該低N表項包含該第一網(wǎng)絡地址的低N位,X為M與N的和。此外,還提供了相應的裝置。通過本發(fā)明實施例提出的網(wǎng)絡地址查找方法及裝置,可以解決將若干個網(wǎng)絡地址存儲在一個表中,當多個網(wǎng)絡地址的高位相同時,每個網(wǎng)絡地址的高位都需要占用一定的存儲空間,占用的存儲空間較多的問題。
文檔編號H04L12/56GK102291472SQ20111026817
公開日2011年12月21日 申請日期2011年9月9日 優(yōu)先權(quán)日2011年9月9日
發(fā)明者李晚龍, 趙鶴軒, 魏芳 申請人:華為數(shù)字技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1