專利名稱:同時(shí)支持路由查找、ip包分類、arp查找的方法及查找系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
同時(shí)支持路由查找、IP包分類、ARP查找的方法及查找系統(tǒng)屬于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及路由技術(shù)領(lǐng)域中的IPv4與IPv6查找系統(tǒng)。
路由查找、IP包分類和ARP表分類是三個(gè)獨(dú)立的功能,并且處在路由器的不同層次上,在以往的技術(shù)中,通過(guò)三個(gè)獨(dú)立的模塊實(shí)現(xiàn),這樣整個(gè)路由器系統(tǒng)的復(fù)雜性很高。另外,在以往的技術(shù)中查找速率不高,尤其是IP包分類技術(shù),一般都采用軟件算法來(lái)實(shí)現(xiàn),由于IP包分類的復(fù)雜度相當(dāng)高,不能達(dá)到很高的速率。
本發(fā)明所提出的方法的特征在于1.它依次含有以下步驟(1)接收以下信息并緩存IP包頭信息、TCP(傳輸控制協(xié)議)包頭信息或者UDP(用戶數(shù)據(jù)報(bào))包頭信息;接收ARP(地址解析協(xié)議)查找的IP地址,刷新路由表和分類規(guī)則庫(kù)的消息,刷新ARP表的以太網(wǎng)地址和IP地址對(duì)并緩存;(2)使查找系統(tǒng)內(nèi)部定時(shí)產(chǎn)生一個(gè)ARP表老化的消息;(3)對(duì)接收到的消息和上述ARP表老化的消息做以下的組合處理(3.1)把刷新路由表和分類規(guī)則庫(kù)的消息,上述ARP表老化的消息各自分解為特定格式的微指令消息并緩存;(3.2)按下述具體情況分別執(zhí)行不同的操作步驟當(dāng)在查找系統(tǒng)內(nèi)部定時(shí)設(shè)置的信號(hào)處于有效狀態(tài),并且有特定格式微指令消息存在時(shí),便選中該特定格式微指令消息對(duì)應(yīng)查找系統(tǒng)中的三態(tài)內(nèi)容可尋址存儲(chǔ)器(TCAM),并通過(guò)TCAM對(duì)同步靜態(tài)存儲(chǔ)器(SSRAM)做讀寫(xiě)操作;當(dāng)存在數(shù)據(jù)包包頭信息(包括IP包頭信息、TCP包頭信息、UDP包頭信息)時(shí),選中數(shù)據(jù)包包頭信息通過(guò)TCAM和SSRAM做路由查找、IP包分類的查找操作;當(dāng)存在用于進(jìn)行ARP查找的IP地址時(shí),便選中ARP查找的IP地址通過(guò)TCAM和SSRAM做ARP查找操作;當(dāng)存在用來(lái)刷新ARP表的外來(lái)以太網(wǎng)地址和IP地址對(duì)時(shí),便選中用于刷新ARP表的以太網(wǎng)地址和IP地址對(duì)通過(guò)TCAM和SSRAM進(jìn)行刷新ARP表的查找操作。
(4)對(duì)外發(fā)送路由查找、IP包分類和ARP查找的結(jié)果;2.所述的特定格式微指令消息是以下兩種中的任何一種從路由表和分類規(guī)則庫(kù)刷新接口收到的刷新命令分解成的刷新微指令;根據(jù)產(chǎn)生ARP老化請(qǐng)求計(jì)數(shù)電路發(fā)出的請(qǐng)求信息和ARP刷新控制電路發(fā)出的請(qǐng)求信息生成的ARP老化和ARP刷新微指令。
本發(fā)明所提出的查找系統(tǒng)的特征在于它含有控制電路模塊,和該控制電路模塊雙向連接的TCAM,以及輸入端和TCAM輸出端相連接且和該控制電路模塊雙向連接的SSRAM;其中控制電路模塊含有輸入端分別和數(shù)據(jù)包包頭接收接口、ARP查找接收接口、ARP刷新接口相連用來(lái)調(diào)度的操作選擇電路,輸入端接路由表和分類規(guī)則庫(kù)刷新接口而輸出端和上述操作選擇電路相連以便把接收到的刷新命令分解成微指令的指令分解電路,用于向上述指令分解電路輸出ARP老化請(qǐng)求信號(hào)的ARP老化請(qǐng)求計(jì)數(shù)電路,輸入端與操作選擇電路相連而輸出端與指令分解電路相連的ARP刷新控制電路,輸入端和操作選擇電路輸出端相連而輸出端和TCAM輸入端相連的TCAM控制電路,和SSRAM輸入/輸出連接及TCAM輸出端相連而輸出端與操作選擇電路相連的查找數(shù)據(jù)接收電路,輸入端分別與上述查找數(shù)據(jù)接收電路、操作選擇電路相連而輸出端分別與ARP刷新控制電路、路由查找和'包分類結(jié)果發(fā)送接口、ARP查找結(jié)果發(fā)送接口相連的查找數(shù)據(jù)處理電路。
試用證明本發(fā)明降低了路由器系統(tǒng)的復(fù)雜度,同時(shí)又可使系統(tǒng)根據(jù)需要靈活配置上述的功能。
圖2.查找系統(tǒng)的電路原理框圖。
圖3.控制電路模塊的原理框圖及其外接電路和各種接口的連接框圖。
圖4.網(wǎng)絡(luò)數(shù)據(jù)包的多層封裝格式。
查找系統(tǒng)對(duì)外提供的接口包括1.數(shù)據(jù)包包頭接收接口(1-1)接收數(shù)據(jù)包包頭信息,這是進(jìn)行路由查找和IP包分類的依據(jù);
2.ARP查找接收接口(1-2)接收IP地址,這是進(jìn)行ARP查找的依據(jù);3.路由表和分類規(guī)則庫(kù)刷新接口(1-3)接收路由表和分類規(guī)則庫(kù)的刷新命令;4.ARP刷新接口(1-4)接收ARP表的刷新信息;5.路由查找和IP包分類結(jié)果發(fā)送接口(1-5)發(fā)送路由查找和IP包分類的結(jié)果;6.ARP查找結(jié)果發(fā)送接口(1-6)發(fā)送ARP查找的結(jié)果。
圖2是查找系統(tǒng)的電路原理框圖,它由以下的三個(gè)部分組成1.控制電路模塊(2-1)它由可編程器件實(shí)現(xiàn),主要提供查找系統(tǒng)的對(duì)外接口,并控制系統(tǒng)中其它模塊的工作。它是系統(tǒng)的控制中心。
2.TCAM(2-2)它是內(nèi)容可尋址存儲(chǔ)器,在系統(tǒng)中存放路由表、分類規(guī)則庫(kù)和ARP表的一部分?jǐn)?shù)據(jù),該部分主要是查找決策的依據(jù)。
3.SSRAM(2-3)它配合TCAM(2-2)使用,用來(lái)存放路由表、分類規(guī)則庫(kù)和ARP表的另外一部分?jǐn)?shù)據(jù),該部分是查找的結(jié)果。
這三部分的連接關(guān)系是控制電路模塊(2-1)與TCAM(2-2)相聯(lián),控制TCAM(2-2)的讀寫(xiě)和查找操作,TCAM(2-2)與SSRAM(2-3)相連,控制電路模塊(2-1)通過(guò)TCAM(2-2)控制SSRAM(2-3)的讀寫(xiě)操作,SSRAM(2-3)的數(shù)據(jù)線直接與控制電路模塊(2-1)相連。
路由查找、IP包分類以及ARP查找都是查找過(guò)程。圖4是網(wǎng)絡(luò)數(shù)據(jù)包的多層封裝格式以及以太網(wǎng)頭部、IP頭部和傳輸層頭部(以TCP協(xié)議為例)的格式。ARP查找是鏈路層的查找過(guò)程,在這個(gè)過(guò)程中,通過(guò)IP地址在ARP表中查找得到以太網(wǎng)幀的目的以太網(wǎng)地址;路由查找是根據(jù)IP包的目的IP地址查找路由表,得到IP包的轉(zhuǎn)發(fā)信息,包括下一跳的地址,轉(zhuǎn)發(fā)端口等;IP包分類是路由器的擴(kuò)展功能,它可以根據(jù)IP頭部、傳輸層頭部(如TCP頭部、UDP頭部等)甚至更高層協(xié)議的數(shù)據(jù)(常用的數(shù)據(jù)有IP頭部的目的IP地址、源IP地址、TOS、協(xié)議,TCP或者UDP的目的端口和源端口等)來(lái)查找分類規(guī)則庫(kù),得到對(duì)此數(shù)據(jù)包的特定處理依據(jù)(如實(shí)現(xiàn)對(duì)數(shù)據(jù)包的過(guò)濾,或設(shè)定此數(shù)據(jù)包的優(yōu)先級(jí)等)。
查找系統(tǒng)中的處理過(guò)程包括路由查找、IP包分類、ARP查找、路由表刷新、分類規(guī)則庫(kù)刷新、ARP表刷新、ARP表老化。
路由查找控制電路模塊(2-1)通過(guò)IP包頭接收接口(1-1)接收目的IP地址,然后將目的IP地址作為關(guān)鍵字送給TCAM(2-2)進(jìn)行查找,TCAM(2-2)在路由表中進(jìn)行查找,根據(jù)查找的結(jié)果控制SSRAM(2-3),從SSRAM(2-3)中讀出路由查找結(jié)果,送到控制電路模塊(2-1),控制電路模塊(2-1)通過(guò)路由查找和IP包分類結(jié)果發(fā)送接口(1-5)將路由查找結(jié)果發(fā)送出去。
IP包分類控制電路模塊(2-1)通過(guò)IP包頭接收接口(1-1)接收指定的包頭字段(由查找系統(tǒng)的使用者指定,可以是包頭字段和傳輸層字段),然后將這些IP包頭字段作為關(guān)鍵字送給TCAM(2-2)進(jìn)行查找,TCAM(2-2)在分類規(guī)則庫(kù)中進(jìn)行查找,根據(jù)查找的結(jié)果控制SSRAM(2-3),從SSRAM(2-3)中讀出IP包分類結(jié)果,送到控制電路模塊(2-1),控制電路模塊(2-1)經(jīng)過(guò)路由查找和IP包分類結(jié)果發(fā)送接口(1-5)將IP包分類結(jié)果發(fā)送出去。
ARP查找控制電路模塊(2-1)通過(guò)ARP查找接收接口(1-2)接收IP地址,然后將IP地址作為關(guān)鍵字送給TCAM(2-2)進(jìn)行查找,TCAM(2-2)在其ARP表中進(jìn)行查找,根據(jù)查找的結(jié)果控制SSRAM(2-3),從SSRAM(2-3)中讀出ARP查找的結(jié)果,送到控制電路模塊(2-1),控制電路模塊(2-1)經(jīng)過(guò)ARP查找結(jié)果發(fā)送接口(1-6)將ARP查找結(jié)果發(fā)送出去。
路由表刷新控制電路模塊(2-1)通過(guò)路由表和分類規(guī)則庫(kù)刷新接口(1-3)接收路由刷新命令,然后刷新TCAM(2-2)和SSRAM(2-3)中相應(yīng)的路由表項(xiàng)。
分類規(guī)則庫(kù)刷新控制電路模塊(2-1)通過(guò)路由表和分類規(guī)則庫(kù)刷新接口(1-3)接收分類規(guī)則刷新命令,然后刷新TCAM(2-2)和SSRAM(2-3)中相應(yīng)的分類規(guī)則庫(kù)表項(xiàng)。
ARP表刷新控制電路模塊(2-1)通過(guò)ARP刷新接口(1-4)接收ARP刷新命令(是以太網(wǎng)、IP地址對(duì)),然后以IP地址為關(guān)鍵字送給TCAM(2-2),TCAM(2-2)在ARP表中進(jìn)行查找,根據(jù)查找的結(jié)果控制SSRAM(2-3),從SSRAM(2-3)中讀出ARP查找的結(jié)果,送到控制電路模塊(2-1),控制電路模塊(2-1)根據(jù)查找的結(jié)果刷新TCAM(2-2)和SSRAM(2-3)中相應(yīng)的ARP表項(xiàng)。
ARP表老化控制電路模塊(2-1)內(nèi)部有一個(gè)定時(shí)器,定時(shí)發(fā)出命令,使控制電路模塊(2-1)從TCAM(2-2)中讀出一個(gè)ARP表項(xiàng),將ARP表項(xiàng)的生存時(shí)間減一,再將減一后的結(jié)果寫(xiě)到TCAM(2-2)中。如果生存時(shí)間變?yōu)榱悖瑒t控制TCAM(2-2)刪除該表項(xiàng)。
本發(fā)明的控制電路模塊(2-1)是系統(tǒng)的控制中心,圖3是控制電路模塊(2-1)原理框圖及具體外接電路和各種接口的連接框圖,它可以用現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或?qū)S眉呻娐?ASIC)實(shí)現(xiàn)。系統(tǒng)所有的外部接口都通過(guò)控制模塊提供??刂颇K內(nèi)部由操作選擇電路(3-1)、指令分解電路(3-2)、TCAM控制電路(3-3)、查找數(shù)據(jù)接收電路(3-4)、查找數(shù)據(jù)處理電路(3-5)、ARP刷新控制電路(3-6)、ARP老化請(qǐng)求計(jì)數(shù)電路(3-7)共7個(gè)模塊組成。對(duì)于路由表和分類規(guī)則庫(kù)的刷新,指令分解電路(3-2)將從路由表和分類規(guī)則庫(kù)刷新接口(1-3)接收到的刷新命令分解成微指令,指令分解模塊還根據(jù)ARP老化請(qǐng)求計(jì)數(shù)電路(3-7)的請(qǐng)求以及ARP刷新控制電路(3-6)的請(qǐng)求生成ARP老化和ARP刷新的微指令。操作選擇電路(3-1)根據(jù)指令分解電路(3-2)分解的微指令、IP包頭接收接口(1-1)接收的包頭信息、ARP查找接收接口(1-2)接收的IP地址、ARP刷新接口(1-4)接收的以太網(wǎng)地址和IP地址對(duì)的情況選擇一種操作,其中微指令為讀寫(xiě)操作,后三者為查找操作,三種查找操作可以流水進(jìn)行。操作選擇電路(3-1)選擇了操作以后,通知TCAM控制電路(3-3),TCAM控制電路(3-3)實(shí)現(xiàn)相應(yīng)的時(shí)序來(lái)訪問(wèn)TCAM(2-2)和SSRAM(2-3)。對(duì)于讀操作和查找操作,都有結(jié)果從TCAM(2-2)或SSRAM(2-3)返回到查找數(shù)據(jù)接收電路(3-4)。如果為讀操作,查找數(shù)據(jù)接收電路(3-4)將讀出的結(jié)果送到操作選擇電路(3-1),為執(zhí)行其它微指令提供參數(shù);如果為查找操作,查找數(shù)據(jù)接收電路(3-4)將查找結(jié)果送到查找數(shù)據(jù)處理電路(3-5)。對(duì)于查找操作,如果為IP包分類或路由查找,查找數(shù)據(jù)處理電路(3-5)將IP包分類結(jié)果或者路由查找結(jié)果通過(guò)路由查找和IP包分類結(jié)果發(fā)送接口(1-5)發(fā)送出去;如果為ARP查找,查找數(shù)據(jù)處理電路(3-5)將ARP查找結(jié)果通過(guò)ARP查找結(jié)果發(fā)送接口(1-6)發(fā)送出去;如果為ARP刷新時(shí)進(jìn)行的查找操作,查找數(shù)據(jù)處理電路(3-5)通知ARP刷新控制電路(3-6)。ARP刷新控制電路(3-6)還接收操作選擇電路(3-1)的控制,向指令分解電路(3-2)發(fā)出請(qǐng)求,要求指令分解模塊生成微指令完成ARP刷新的操作。
指令分解電路(3-2)分解指令的方法是刷新命令包括添加、刪除、讀取、移動(dòng)路由和分類規(guī)則等多條命令,各種命令的參數(shù),長(zhǎng)度和格式不一致,通過(guò)指令分解電路(3-2)將這些命令分解成多個(gè)長(zhǎng)度和格式固定的微指令,并緩存這些微指令,這些微指令完成對(duì)TCAM(2-2)和SSRAM(2-3)的讀寫(xiě)操作。另外,ARP老化和ARP更新也要對(duì)TCAM(2-2)和SSRAM(2-3)進(jìn)行讀寫(xiě)訪問(wèn),這些讀寫(xiě)操作以微指令的形式完成即讓指令分解電路(3-2)根據(jù)ARP老化和刷新的請(qǐng)求生成并緩存微指令,這些微指令與由路由和分類規(guī)則刷新命令分解出的微指令格式一致,由操作選擇電路(3-1)統(tǒng)一調(diào)度處理。
操作選擇電路調(diào)度的方法是操作選擇電路(3-1)內(nèi)部定時(shí)將一個(gè)信號(hào)(Signal)設(shè)置為有效,當(dāng)操作選擇電路(3-1)檢查到TCAM控制模塊(3-2)空閑時(shí),如果Signal有效且有微指令,那么選擇微指令執(zhí)行處理,并將Signal設(shè)為無(wú)效;否則如果有從IP包頭接收接口(1-1)接收的包頭信息,那么進(jìn)行路由查找和IP包分類;否則如果有從ARP查找接收接口(1-2)接收的IP地址,那么進(jìn)行ARP查找;否則如果有從ARP刷新接口(1-4)接收的以太網(wǎng)地址和IP地址對(duì),那么進(jìn)行ARP刷新時(shí)的查找操作。
權(quán)利要求
1.同時(shí)支持路由查找、IP包分類、ARP查找的方法,其特征在于它依次含有以下步驟(1)接收以下數(shù)據(jù)包頭信息并緩存IP包頭信息、TCP(傳輸控制協(xié)議)包頭信息或者UDP(用戶數(shù)據(jù)報(bào))包頭信息;接收ARP(地址解析協(xié)議)查找的IP地址,刷新路由表和分類規(guī)則庫(kù)的消息,刷新ARP表的以太網(wǎng)地址和IP地址對(duì)并緩存;(2)使查找系統(tǒng)內(nèi)部定時(shí)產(chǎn)生一個(gè)ARP表老化的消息;(3)對(duì)接收到的消息和上述ARP表老化的消息做以下的組合處理(3.1)把刷新路由表和分類規(guī)則庫(kù)的消息,上述ARP表老化的消息各自分解為特定格式的微指令消息并緩存;(3.2)按下述具體情況分別執(zhí)行不同的操作步驟當(dāng)在查找系統(tǒng)內(nèi)部定時(shí)設(shè)置的信號(hào)處于有效狀態(tài),并且有特定格式微指令消息存在時(shí),便選中該特定格式微指令消息對(duì)應(yīng)查找系統(tǒng)中的三態(tài)內(nèi)容可尋址存儲(chǔ)器(TCAM),并通過(guò)TCAM對(duì)同步靜態(tài)存儲(chǔ)器(SSRAM)做讀寫(xiě)操作;當(dāng)存在數(shù)據(jù)包包頭信息(包括IP包頭信息、TCP包頭信息、UDP包頭信息)時(shí),選中數(shù)據(jù)包包頭信息通過(guò)TCAM和SSRAM做路由查找、IP包分類的查找操作;當(dāng)存在用于進(jìn)行ARP查找的IP地址時(shí),便選中ARP查找的IP地址通過(guò)TCAM和SSRAM做ARP查找操作;當(dāng)存在用來(lái)刷新ARP表的外來(lái)以太網(wǎng)地址和IP地址對(duì)時(shí),便選中用于刷新ARP表的以太網(wǎng)地址和IP地址對(duì)通過(guò)TCAM和SSRAM做刷新ARP表的查找操作。(4)對(duì)外發(fā)送路由查找、IP包分類和ARP查找的結(jié)果;
2.如權(quán)利要求1所述的同時(shí)支持路由查找、IP包分類、ARP查找的方法,其特征在于所述的特定格式微指令消息是以下兩種中的任何一種從路由表和分類規(guī)則庫(kù)刷新接口收到的刷新命令分解成的刷新微指令;根據(jù)產(chǎn)生ARP老化請(qǐng)求計(jì)數(shù)電路發(fā)出的請(qǐng)求信息和ARP刷新控制電路發(fā)出的請(qǐng)求信息產(chǎn)生的ARP老化和ARP刷新微指令。
3.根據(jù)權(quán)利要求1所述的同時(shí)支持路由查找、IP包分類、ARP查找的方法而提出的系統(tǒng),其特征在于它含有控制電路模塊,和該控制電路模塊雙向連接的TCAM,以及輸入端和TCAM輸出端相連接且和該控制電路模塊雙向連接的SSRAM;其中控制電路模塊含有輸入端分別和數(shù)據(jù)包包頭接收接口、ARP查找接收接口、ARP刷新接口相連用來(lái)調(diào)度的操作選擇電路,輸入端接路由表和分類規(guī)則庫(kù)刷新接口而輸出端和上述操作選擇電路相連以便把接收到的刷新命令分解成微指令的指令分解電路,用于向上述指令分解電路輸出ARP表老化請(qǐng)求信號(hào)的ARP老化請(qǐng)求計(jì)數(shù)電路,輸入端與操作選擇電路相連而輸出端與指令分解電路相連的ARP刷新控制電路,輸入端和操作選擇電路輸出端相連而輸出端和TCAM輸入端相連的TCAM控制電路,和SSRAM輸入/輸出連接及TCAM輸出端相連而輸出端與操作選擇電路相連的查找數(shù)據(jù)接收電路,輸入端分別與上述查找數(shù)據(jù)接收電路、操作選擇電路相連而輸出端分別與ARP刷新控制電路、路由查找和IP包分類結(jié)果發(fā)送接口、ARP查找結(jié)果發(fā)送接口相連的查找數(shù)據(jù)處理電路。
全文摘要
同時(shí)支持路由查找、IP包分類、ARP查找的方法及查找系統(tǒng)屬于互聯(lián)網(wǎng)路由技術(shù)領(lǐng)域,其方法的特征在于它能采用以下的操作完成路由查找、IP包分類、ARP查找三種不同功能及其任意的組合功能用一個(gè)定時(shí)信號(hào)來(lái)周期性地控制執(zhí)行路由表和分類規(guī)則庫(kù)的外來(lái)刷新指令和系統(tǒng)內(nèi)部的ARP老化刷新指令;另外,根據(jù)數(shù)據(jù)包包頭信息執(zhí)行路由查找和IP包分類指令,根據(jù)用于進(jìn)行ARP查找的IP地址執(zhí)行ARP查找指令,根據(jù)外來(lái)的用于刷新ARP表的以太網(wǎng)地址和IP地址完成ARP表刷新指令。它降低了路由器系統(tǒng)的復(fù)雜性,同時(shí)使系統(tǒng)的功能配置更靈活。
文檔編號(hào)H04Q3/00GK1426207SQ0310060
公開(kāi)日2003年6月25日 申請(qǐng)日期2003年1月17日 優(yōu)先權(quán)日2003年1月17日
發(fā)明者劉斌, 戴智偉 申請(qǐng)人:清華大學(xué)