用于分布式路由表查找的技術(shù)的制作方法
【專利說明】用于分布式路由表查找的技術(shù)
[0001] 背景
[0002] 現(xiàn)代計(jì)算設(shè)備正在變成個(gè)人、商務(wù)以及社交用途的非常普遍的工具。這樣,許多現(xiàn) 代計(jì)算設(shè)備能夠連接到各種數(shù)據(jù)網(wǎng)絡(luò),包括互聯(lián)網(wǎng)和公司內(nèi)聯(lián)網(wǎng),以便通過這種網(wǎng)絡(luò)檢索 并接收數(shù)據(jù)通信。經(jīng)常,連接到一個(gè)網(wǎng)絡(luò)的計(jì)算設(shè)備需要與在不同網(wǎng)絡(luò)上連接的計(jì)算設(shè)備 通信。
[0003] 路由器是在兩個(gè)或更多個(gè)網(wǎng)絡(luò)之間轉(zhuǎn)發(fā)數(shù)據(jù)通信的設(shè)備。為了這樣做,路由器通 常包括用于確定傳入網(wǎng)絡(luò)分組所應(yīng)當(dāng)轉(zhuǎn)發(fā)到的具體網(wǎng)絡(luò)的路由表。傳統(tǒng)的核心路由器是被 配置成用于支持全部在線速運(yùn)行的上百個(gè)外部端口以及具有上百萬個(gè)條目的路由表的專 用硬件設(shè)備。然而,這種核心路由器經(jīng)常是昂貴的并且通常要求使用專有硬件組件。另外, 與其他類型的路由器(諸如例如基于軟件的路由器)相比,基于硬件的路由器經(jīng)常包括更 少的功能并且更難以配置和更新。
[0004] 軟件路由器或路由器集群是被配置成用于一起操作以便在兩個(gè)或更多個(gè)網(wǎng)絡(luò)或 其他端點(diǎn)之間路由網(wǎng)絡(luò)分組的一組互連計(jì)算節(jié)點(diǎn)(例如,現(xiàn)成服務(wù)器、桌上計(jì)算機(jī)等等)。 為了以這種方式操作,軟件路由器的每個(gè)計(jì)算節(jié)點(diǎn)通常必須保持整個(gè)路由表的副本。這樣, 隨著連接到軟件路由器的網(wǎng)絡(luò)數(shù)量增長,路由表的數(shù)量也隨之增長。結(jié)果是,路由表變得更 大,執(zhí)行路由表查找需要越多時(shí)間和計(jì)算資源(例如,存儲器、存儲設(shè)備、處理循環(huán)等等)。
[0005] 附圖簡要描述
[0006] 通過舉例而非通過限制在附圖中示出在此描述的概念。為了說明簡單和清晰,圖 中所示元素?zé)o需按比例繪制。當(dāng)認(rèn)為合適時(shí),已經(jīng)在附圖中重復(fù)參照標(biāo)號以便表明相應(yīng)的 或類似的元素。
[0007] 圖1是用于經(jīng)由包括多個(gè)計(jì)算節(jié)點(diǎn)的分布式路由器的分布式路由表查找的系統(tǒng) 的至少一個(gè)實(shí)施例的簡化框圖;
[0008] 圖2是圖1的系統(tǒng)的分布式路由器的計(jì)算節(jié)點(diǎn)的至少一個(gè)實(shí)施例的簡化框圖;
[0009] 圖3是圖1的系統(tǒng)的分布式路由器的計(jì)算節(jié)點(diǎn)的環(huán)境的至少一個(gè)實(shí)施例的簡化框 圖;
[0010] 圖4是圖1的系統(tǒng)的分布式路由器的入口計(jì)算節(jié)點(diǎn)確定中間計(jì)算節(jié)點(diǎn)所使用的流 過濾器表的說明性實(shí)施例;
[0011] 圖5是圖1的系統(tǒng)的分布式路由器的入口計(jì)算節(jié)點(diǎn)可執(zhí)行的用于分布式路由表查 找的方法的至少一個(gè)實(shí)施例的簡化流程圖;
[0012] 圖6是圖1的系統(tǒng)的分布式路由器的中間計(jì)算節(jié)點(diǎn)可執(zhí)行的用于分布式路由表查 找的方法的至少一個(gè)實(shí)施例的簡化流程圖;
[0013] 圖7是經(jīng)由分布式路由器的入口計(jì)算節(jié)點(diǎn)的所接收到的網(wǎng)絡(luò)分組的直接路由的 系統(tǒng)的說明性實(shí)施例;以及
[0014] 圖8是圖7的系統(tǒng)的分布式路由器的入口計(jì)算節(jié)點(diǎn)可執(zhí)行的用于所接收到的網(wǎng)絡(luò) 分組的直接路由的方法的至少一個(gè)實(shí)施例的簡化流程圖。
[0015] 附圖詳細(xì)描述
[0016] 盡管本公開的概念可受到各種修改和替代形式,已經(jīng)通過舉例在附圖中示出并且 將在此詳細(xì)地描述其特定實(shí)施例。然而,應(yīng)當(dāng)理解的是不旨在將本公開的概念限制為所公 開的具體形式,而是相反,本發(fā)明涵蓋與本公開和所附權(quán)利要求書一致的所有修改、等效方 案和替代方案。
[0017] 在說明書中對" 一個(gè)實(shí)施例"、"實(shí)施例"、"說明性實(shí)施例"等等的引用表明所描述 的實(shí)施例可包括具體的特征、結(jié)構(gòu)或特性,但是每個(gè)實(shí)施例可無需包括該具體的特征、結(jié)構(gòu) 或特性。而且,這種短語無需指代相同的實(shí)施例。而且,當(dāng)結(jié)合實(shí)施例描述具體的特征、結(jié) 構(gòu)或特性時(shí),認(rèn)為其在本領(lǐng)域普通技術(shù)人員結(jié)合顯式地或未顯式地描述的其他實(shí)施例實(shí)施 這種特征、結(jié)構(gòu)或特性的知識范圍內(nèi)。此外,應(yīng)當(dāng)認(rèn)識到列表中包括的"A、B和C中的至少 一個(gè)"形式的項(xiàng)目可意味著㈧;(B) ; (C) ; (A和B) ; (A和C) ; (B和C);或者(A、B和C)。 類似地,以"A、B、或C中的至少一個(gè)"的形式列出的項(xiàng)目可指㈧;(B) ; (C) ;(A和B) ;(A和 C) ;(B 和 C);或(A、B 和 C)。
[0018] 在某些情況下,可在硬件、固件、軟件、或其任何組合中實(shí)現(xiàn)所公開的實(shí)施例。所公 開的實(shí)施例還可被實(shí)現(xiàn)為由一個(gè)或多個(gè)瞬態(tài)或非瞬態(tài)機(jī)器可讀(例如計(jì)算機(jī)可讀)存儲介 質(zhì)攜帶或存儲在其上的指令,這些指令可由一個(gè)或多個(gè)處理器讀取并執(zhí)行。機(jī)器可讀存儲 介質(zhì)可被實(shí)施為任何用于存儲或傳輸機(jī)器可讀形式的信息的存儲設(shè)備、機(jī)構(gòu)、或其他物理 結(jié)構(gòu)(例如,易失性或非易失性存儲器、介質(zhì)盤、或其他介質(zhì)設(shè)備)。
[0019] 在附圖中,可用特定安排和/或排序示出某些結(jié)構(gòu)或方法特征。然而,應(yīng)當(dāng)認(rèn)識到 可不要求這種特定安排和/或排序。而是,在某些實(shí)施例中,可用與說明性附圖中示出的不 同的方式和/或順序安排這種特征。此外,具體附圖中包括結(jié)構(gòu)或方法特征不意味著暗示 在所有實(shí)施例中要求這種特征以及在某些實(shí)施例中可不包括這種特征或者這種特征可與 其他特征組合。
[0020] 現(xiàn)在參照圖1和圖2,在說明性實(shí)施例中,用于經(jīng)由分布式路由器102(例如,集群 路由器)的多個(gè)計(jì)算節(jié)點(diǎn)110的分布式路由表查找的系統(tǒng)100。每個(gè)計(jì)算節(jié)點(diǎn)110可通信 地耦合到任何數(shù)量的不同網(wǎng)絡(luò)和/或子網(wǎng)。這樣,任何計(jì)算節(jié)點(diǎn)Iio可接收源自一個(gè)網(wǎng)絡(luò) 的網(wǎng)絡(luò)分組,并且可基于分布式路由器102的路由表將網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)到不同的網(wǎng)絡(luò)。在某 些實(shí)施例中,在該多個(gè)計(jì)算節(jié)點(diǎn)110之間劃分根據(jù)分布式路由器102的路由表來路由網(wǎng)絡(luò) 分組的責(zé)任。也就是,分布式路由器102的每個(gè)計(jì)算節(jié)點(diǎn)110可負(fù)責(zé)查找分布式路由器102 的全局路由表222的網(wǎng)絡(luò)路由條目的不同部分(見圖2)。
[0021] 在說明性實(shí)施例中,分布式路由器102包括"入口(ingress) "計(jì)算節(jié)點(diǎn)112、"反彈 (bounce)" 或"中間(intermediate)" 計(jì)算節(jié)點(diǎn) 114 以及"出口(egress)"計(jì)算節(jié)點(diǎn) 116 〇 當(dāng)然,在某些實(shí)施例中,系統(tǒng)100的分布式路由器102還可包括一個(gè)或多個(gè)其他計(jì)算節(jié)點(diǎn) 11〇(例如,計(jì)算節(jié)點(diǎn)118)。在使用時(shí),分布式路由器102的入口計(jì)算節(jié)點(diǎn)112從位于分布 式路由器102外部的源計(jì)算設(shè)備(例如,網(wǎng)絡(luò)交換機(jī)、網(wǎng)絡(luò)路由器、發(fā)源計(jì)算設(shè)備等等)接 收網(wǎng)絡(luò)分組104。應(yīng)當(dāng)認(rèn)識到在圖1中說明性地示出的任何其他計(jì)算節(jié)點(diǎn)110可以替代地 從源計(jì)算設(shè)備接收網(wǎng)絡(luò)分組104。這樣,接收網(wǎng)絡(luò)分組的具體計(jì)算節(jié)點(diǎn)110可被指定為"入 口"計(jì)算節(jié)點(diǎn)112并且在以下描述中被如此稱呼。
[0022] 當(dāng)接收到網(wǎng)絡(luò)分組104時(shí),入口計(jì)算節(jié)點(diǎn)112確定負(fù)責(zé)確定將所接收到的網(wǎng)絡(luò)分 組104路由到哪兒的反彈計(jì)算節(jié)點(diǎn)114。也就是,入口計(jì)算節(jié)點(diǎn)112確定其他計(jì)算節(jié)點(diǎn)110 中的哪一個(gè)應(yīng)當(dāng)執(zhí)行針對具體分組的路由表查找。為了這樣做,在某些實(shí)施例中,入口計(jì)算 節(jié)點(diǎn)112基于所接收到的網(wǎng)絡(luò)分組104的目的地互聯(lián)網(wǎng)協(xié)議(IP)地址生成散列密鑰。在 某些實(shí)施例中,該散列密鑰可被實(shí)現(xiàn)為目的地IP地址的二進(jìn)制表示的兩個(gè)最低有效位(例 如,"00"、"01"、"10"或"11")。將所生成的散列密鑰與一個(gè)或多個(gè)流過濾器224相比較 (見圖2),該流過濾器包括從在分布式路由器102的路由表222中維護(hù)的網(wǎng)絡(luò)路由條目的 二進(jìn)制表示的兩個(gè)最低有效位生成的相應(yīng)索引散列密鑰(例如,"〇〇"、"〇1"、"1〇"或"11")。 每個(gè)索引散列密鑰與分布式路由器102的不同計(jì)算節(jié)點(diǎn)110 (例如,反彈節(jié)點(diǎn))相對應(yīng)。這 樣,入口計(jì)算節(jié)點(diǎn)112確定具體的反彈計(jì)算節(jié)點(diǎn)114,基于該反彈計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)110與 同從目的地IP地址生成的散列密鑰匹配的索引散列密鑰相關(guān)聯(lián)。入口計(jì)算節(jié)點(diǎn)112然后 將所接收到的網(wǎng)絡(luò)分組104轉(zhuǎn)發(fā)到所確定的反彈計(jì)算節(jié)點(diǎn)114而不執(zhí)行路由表查找。應(yīng)當(dāng) 認(rèn)識到,在說明性實(shí)施例中,盡管入口計(jì)算節(jié)點(diǎn)112基于所接收到的網(wǎng)絡(luò)分組104的目的地 IP地址生成散列密鑰,入口計(jì)算節(jié)點(diǎn)112可基于來自所接收到的網(wǎng)絡(luò)分組104的任何其他 類型的信息和/或信息組合生成該散列密鑰。例如,在其他實(shí)施例中,由入口計(jì)算節(jié)點(diǎn)112 生成的散列密鑰可被實(shí)現(xiàn)為所接收到的網(wǎng)絡(luò)分組104的5元組(目的地IP地址、目的地端 口號、源IP地址、源端口號以及協(xié)議)的全部或一部分。
[0023] 當(dāng)接收到網(wǎng)絡(luò)分組104時(shí),反彈計(jì)算節(jié)點(diǎn)114基于目的地IP地址確定將網(wǎng)絡(luò)分組 104路由到哪兒。為了這樣做,反彈計(jì)算節(jié)點(diǎn)114從存儲在反彈計(jì)算節(jié)點(diǎn)114的高速緩存存 儲器216中的轉(zhuǎn)發(fā)表218查找相應(yīng)的網(wǎng)絡(luò)路由條目(見圖2)。如以下更詳細(xì)討論的,反彈 計(jì)算節(jié)點(diǎn)114的轉(zhuǎn)發(fā)表218包括從分布式路由器102的路由表222獲得的網(wǎng)絡(luò)路由條目集 合(例如,子集、部分等等)。在反彈計(jì)算節(jié)點(diǎn)114的轉(zhuǎn)發(fā)表218中維護(hù)的網(wǎng)絡(luò)路由條目集 合不同于存儲在其他計(jì)算節(jié)點(diǎn)110的轉(zhuǎn)發(fā)表218內(nèi)的其他網(wǎng)絡(luò)路由條目集合(例如,子集、 部分等等)。反彈計(jì)算節(jié)點(diǎn)114確定負(fù)責(zé)網(wǎng)絡(luò)分組104從分布式路由器102的離開的具體 出口計(jì)算節(jié)點(diǎn)116。出口計(jì)算節(jié)點(diǎn)116然后將網(wǎng)絡(luò)分組104傳輸出分布式路由器102。應(yīng) 當(dāng)認(rèn)識到,僅在負(fù)責(zé)路由表222的不同部分的反彈計(jì)算節(jié)點(diǎn)114上執(zhí)行昂貴的查找操作,可 保留各個(gè)計(jì)算節(jié)點(diǎn)110 (或者分布式路由器102整體)的資源(例如,存儲器、存儲設(shè)備、處 理循環(huán)等等)和/或可減少等待時(shí)間。也就是,通過不在分布式路由器102中接收網(wǎng)絡(luò)分 組104的每個(gè)計(jì)算節(jié)點(diǎn)110 (例如,入口計(jì)算節(jié)點(diǎn)112、反彈計(jì)算節(jié)點(diǎn)114以及出口計(jì)算節(jié)點(diǎn) 116)上執(zhí)行查找操作,可改善分布式路由器102的整體性能。
[0024] 分布式路由器102 (例如,集群路由器)可被實(shí)現(xiàn)為一致用于執(zhí)行在此描述的功能 的一組單獨(dú)計(jì)算節(jié)點(diǎn)110。如圖1中說明性所示,分布式路由器102可包括根據(jù)全連接網(wǎng) 格聯(lián)網(wǎng)拓?fù)渫ㄐ诺赜H合到彼此的多個(gè)計(jì)算節(jié)點(diǎn)110。然而,應(yīng)當(dāng)認(rèn)識到,每個(gè)計(jì)算節(jié)點(diǎn)110 可根據(jù)任何其他聯(lián)網(wǎng)拓?fù)渫ㄐ诺伛詈系狡渌?jì)算節(jié)點(diǎn)110。例如,每個(gè)計(jì)算節(jié)點(diǎn)110可尤 其根據(jù)交換網(wǎng)絡(luò)拓?fù)洹los網(wǎng)絡(luò)拓?fù)?、總線網(wǎng)絡(luò)拓?fù)?、星型網(wǎng)絡(luò)拓?fù)洹h(huán)形網(wǎng)絡(luò)拓?fù)浜?或 其任何組合通信地親合到其他計(jì)算節(jié)點(diǎn)110。分布式路由器102的每個(gè)計(jì)算節(jié)點(diǎn)110可被 配置成用于基于從位于分布式路由器102外部的計(jì)算設(shè)備接收網(wǎng)絡(luò)分組104的具體計(jì)算節(jié) 點(diǎn)11〇(例如,入口計(jì)算節(jié)點(diǎn)112)、負(fù)責(zé)確定將所接收到的網(wǎng)絡(luò)分組104路由到哪兒的具體 計(jì)算節(jié)點(diǎn)110 (例如,反彈計(jì)算節(jié)點(diǎn)114)、以及被確定用于使網(wǎng)絡(luò)分組104從分布式路由器 102離開的具體計(jì)算節(jié)點(diǎn)110 (例如,出口計(jì)算節(jié)點(diǎn)116)執(zhí)行分布式路由器102的路由操作 的任何部分(例如,進(jìn)入操作、路由操作、離開操作等等)。
[0025] 分布式路由器102可維護(hù)全局路由表,該全局路由表包括從在分布式路由器102 的計(jì)算節(jié)點(diǎn)110和位于分布式路由器102外部的其他計(jì)算設(shè)備(例如,網(wǎng)絡(luò)交換機(jī)、網(wǎng)絡(luò)路 由器、發(fā)源計(jì)算設(shè)備等等)之間的當(dāng)前和/或歷史網(wǎng)絡(luò)通信和/或連接獲得的多個(gè)網(wǎng)絡(luò)路 由條目。如下所述,在某些實(shí)施例中,全局路由表的副本可存儲在每個(gè)計(jì)算節(jié)點(diǎn)110的存儲 器內(nèi)(例如,說明性地在圖2中示出的存儲器220內(nèi)的路由表222)。應(yīng)當(dāng)認(rèn)識到隨著網(wǎng)絡(luò) 連接和/或計(jì)算節(jié)點(diǎn)110被添加到分布式路由器102,分布式路由器102的路由表的尺寸 增加。結(jié)果是,計(jì)算節(jié)點(diǎn)110用于使用路由表222執(zhí)行路由表查找所需的時(shí)間量和資源量 (例如,存儲器、存儲設(shè)備、處理器循環(huán)等等)也增加。然而,如以下更詳細(xì)描述的,分布式路 由器102的每個(gè)計(jì)算節(jié)點(diǎn)110被配置成用于負(fù)責(zé)僅路由與全局路由表222的不同集合(例 如,子集或部分)相對應(yīng)的網(wǎng)絡(luò)分組104。這樣,分布式路由器102的每個(gè)計(jì)算節(jié)點(diǎn)110可 在處理器高速緩存存儲器內(nèi)的單獨(dú)轉(zhuǎn)發(fā)表中維護(hù)路由表222的一部分(例如,在圖2中說 明性示出的轉(zhuǎn)發(fā)表218和高速緩存存儲器216)。每個(gè)計(jì)算節(jié)點(diǎn)110的每個(gè)轉(zhuǎn)發(fā)表218包 括從分布式路由器102的路由表222獲得的不同網(wǎng)絡(luò)路由條目集合(例如,子集或部分)。 應(yīng)當(dāng)認(rèn)識到盡管說明性實(shí)施例的路由表218被描述為存儲在每個(gè)計(jì)算節(jié)點(diǎn)110的高速緩存 存儲器216內(nèi)的單獨(dú)轉(zhuǎn)發(fā)表218,其他實(shí)施例的轉(zhuǎn)發(fā)表218可不被結(jié)構(gòu)化為或制定為表格。 例如,在某些實(shí)施例中,每個(gè)計(jì)算節(jié)點(diǎn)110的轉(zhuǎn)發(fā)表218可被實(shí)現(xiàn)為被加載到高速緩存存儲 器216中用于后續(xù)檢索的單獨(dú)網(wǎng)絡(luò)路由條目的集合或群組。
[0026] 計(jì)算節(jié)點(diǎn)110可被實(shí)現(xiàn)為或以其他方式包括能夠執(zhí)行在此描述的功能的任何類 型的計(jì)算設(shè)備,包括但不限于服務(wù)器計(jì)算機(jī)、聯(lián)網(wǎng)設(shè)備、機(jī)架計(jì)算架構(gòu)組件、桌上計(jì)算機(jī)、膝 上計(jì)算設(shè)備、智能電器、消費(fèi)者電子設(shè)備、移動計(jì)算設(shè)備、移動電話、智能電話、平板計(jì)算設(shè) 備、個(gè)人數(shù)字助理、可穿戴計(jì)算設(shè)備和/或其他類型的計(jì)算設(shè)備。如圖2中說明性示出的, 計(jì)算節(jié)點(diǎn)包括處理器212、存儲器220、輸入輸出(I/O)子系統(tǒng)226、通信電路230以及數(shù)據(jù) 存儲設(shè)備228。當(dāng)然,計(jì)算節(jié)點(diǎn)110可包括其他或附加組件,諸如通常在計(jì)算機(jī)中找到的那 些(例如,各種輸入/輸出設(shè)備)。此外,在某些實(shí)施例中,說明性組件中的一個(gè)或多個(gè)可被 結(jié)合到另一個(gè)組件中或者以其他方式形成其一部分。例如,在某些實(shí)施例中,存儲器220或 其部分可被結(jié)合到處理器212中。
[00