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

一種實現(xiàn)arp協(xié)議ip核的方法

文檔序號:7687381閱讀:257來源:國知局

專利名稱::一種實現(xiàn)arp協(xié)議ip核的方法
技術(shù)領(lǐng)域
:本發(fā)明屬于集成電路設(shè)計領(lǐng)域,特別涉及用以太網(wǎng)傳輸數(shù)據(jù)的系統(tǒng)芯片(SoC)設(shè)計,具體是一種實現(xiàn)ARP協(xié)議IP核的方法。
背景技術(shù)
:ARP是AddressResolutionProtocol的縮寫,即地址解析協(xié)議。對于網(wǎng)絡(luò)通信,IP地址只是主機在網(wǎng)絡(luò)層以上所使用的地址。若要將網(wǎng)絡(luò)層中的數(shù)據(jù)發(fā)送給網(wǎng)絡(luò)另一端的主機,還要將數(shù)據(jù)中的IP地址轉(zhuǎn)換為MAC地址后才能在網(wǎng)絡(luò)中傳輸。由于IP地址有32位,而局域網(wǎng)的硬件地址是48位,因此它們之間不存在簡單的映射關(guān)系。地址解析協(xié)議ARP就是用于解決這個問題。另外,集成電路工藝的不斷進步使得在一塊芯片中實現(xiàn)一個系統(tǒng)的方案成為可能。現(xiàn)代系統(tǒng)芯片(SoC)的設(shè)計瓶頸不再是制造能力的局限,而是芯片的設(shè)計和驗證能力跟不上的系統(tǒng)芯片所容納的邏輯門數(shù)的增長。因此,復(fù)用事先設(shè)計好的模塊,通過模塊集成的新的SoC設(shè)計方法被提出,并逐漸取代了原來專用集成電路(ASIC)的設(shè)計方法。這些事先設(shè)計的模塊就被稱為IP核(IntellectualProperty)。IP核必須事先驗證其功能的正確性,同時性能也要達到規(guī)定指標(biāo)。IP核的可復(fù)用性和可移植性也是衡量其設(shè)計好壞的一個重要標(biāo)準(zhǔn),一個通用的接口(Interface)是保證IP核可復(fù)用和和可移植的必要條件。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種能夠根據(jù)ARP標(biāo)準(zhǔn)協(xié)議(RFC826協(xié)議),實現(xiàn)ARP協(xié)議IP核的方法。本發(fā)明方法包括一、管理和查詢ARP緩存;二、接收ARP報文并根據(jù)接收到的報文類型做出響應(yīng)。ARP協(xié)議IP核與系統(tǒng)中的其它模塊的接口包括"wishbone總線"和"中斷"兩種方式。當(dāng)本IP核應(yīng)用系統(tǒng)中的單元以wishbone總線協(xié)議相互通信時,本IP核為從單元(slave),任何--次通信必須由系統(tǒng)中其它6A+站;,mn。+八^、;SP々5r+!士六生ll士匕A石ll士TD士左血4^+口,l、lTT、I么玄^;u'j工千乂u、11lasLc丄乂Ataxi—wi丁i工巾'j]日7;c^k十、丄丄'i《yi、/x/cyvi^ai'^xr;^習(xí)l中的主單元統(tǒng)稱為"主機"),而木IP核根據(jù)指令中的信息做出響應(yīng)。當(dāng)本IP核需要與系統(tǒng)中的主機通信時,將信息按一定格式進行編碼,并寫入中斷狀態(tài)寄存器中,同時置位中斷輸出。該中斷輸出用于通知主機讀取中斷狀態(tài)寄存器中的信息,并根據(jù)其中的信息做出相應(yīng)的處理。當(dāng)主機要發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包時,首先要確認報文的目的IP地址對應(yīng)的MAC地址是否已經(jīng)在本發(fā)明中的ARP緩存中。本發(fā)明管理和査詢ARP緩存的步驟包括1、主機通過Wishbone總線將查詢MAC-IP地址對的命令寫入寄存器中,該命令包括待查詢的IP地址和本次查詢的標(biāo)志符;提取命令中的這兩個信息,分別存入待查詢IP地址寄存器和待査詢IP地址的標(biāo)識符寄存器中,并產(chǎn)生開始查詢的使能信號;2、將IP査詢指針寄存器清零,使之指向ARP緩存的開始位置;3、若ARP緩存滿寄存器的值為1,則比較IP査詢指針寄存器中的值和ARP緩存的總深度,若前者的值大于后者,則轉(zhuǎn)到步驟7,即在ARP緩存中沒有找到主機請求的IP地址;若前者的值小于等于后者,則轉(zhuǎn)到步驟4;若ARP緩存滿寄存器的值為0,則比較IP査詢指針寄存器的值和ARP緩存邊界指針寄存器的值,若前者大于等于后者,則轉(zhuǎn)到步驟7,即在ARP緩存中沒有找到主機請求的IP地址;若前者小于后者,則轉(zhuǎn)到步驟4;4、以IP査詢指針寄存器的值為地址,讀取ARP緩存中IP地址隊列中的IP地址的低16位,將該值與待查詢IP地址寄存器的低16位比較,若兩者相同則轉(zhuǎn)步驟5;若兩者不相等,則將IP查詢指針寄存器的值加1,并更新到該寄存器中,然后轉(zhuǎn)到步驟3;5、以IP查詢指針寄存器的值為地址,讀取ARP緩存中IP地址隊列中的IP地址的高16位,將該值與待查詢IP地址寄存器的高16位比較,若兩者相同則轉(zhuǎn)歩驟6,即找到主機請求的IP地址;若兩者不相等,則將IP查詢指針寄存器的值加1,并更新到該寄存器中,然后轉(zhuǎn)到步驟3;6、將以IP查詢指針寄存器的值為基地址,從ARP緩存的MAC地址隊列中讀出MAC地址,并寫入到MAC緩存中;然后以中斷方式通知主機,表明在ARP緩存中找到了MAC-IP地址對應(yīng)關(guān)系,査詢結(jié)束。其中,在讀取ARP緩存中的MAC地址時,分三次、每次16位,從MAC地址的高位開始連續(xù)讀取,并將讀出的地址按順序?qū)懭隡AC緩存中。7、將待查詢IP地址寄存器的值寫入IP查詢緩存中,并啟動與待査詢IP地址標(biāo)志符對應(yīng)的查詢超時倒計數(shù)器,同時更新有效待查詢IP地址向量寄存器,將該寄存器中與待查詢IP地址標(biāo)志符對應(yīng)的位設(shè)為1,然后轉(zhuǎn)到歩驟8;其中,超時倒計數(shù)器初值為TO,計數(shù)的步長為l秒,計數(shù)的基準(zhǔn)由外部輸入。超時倒計數(shù)器用于完成ARP查詢超時功能,ARP查詢超時指當(dāng)以太網(wǎng)中的某一臺設(shè)備向該網(wǎng)絡(luò)廣播査詢另外一臺設(shè)備的物理地址時,在規(guī)定時間內(nèi)沒有收到待查詢設(shè)備的響應(yīng)。ARP査詢超時功能與ARP緩存查詢過程相互獨立。在IP查詢緩存中的每一個IP都有一個唯一的計時器與之相對應(yīng),當(dāng)計時器溢出時(倒計時器計時達0),在IP查詢緩存中與該計時器對應(yīng)的IP地址將被刪除,并將有效待査詢IP地址向量寄存器中與該IP地址對應(yīng)的位復(fù)位到0,同時通過中斷通知主機,表明待查詢的IP不存在于當(dāng)前網(wǎng)絡(luò)中。若在超時之前收到待查詢IP所對應(yīng)設(shè)備發(fā)送的ARP響應(yīng)報文,則停止超時計數(shù)器,將計時器復(fù)位,并通過中斷通知主機,表明找到待查詢IP的MAC地址,同時將MAC地址轉(zhuǎn)移到MAC緩存中。然后將有效待査詢IP地址向量寄存器中與該IP地址對應(yīng)的位復(fù)位到0。若未超時,則ARP查詢超時功能單元將繼續(xù)等待。8、按照ARP協(xié)議格式,將報文中的數(shù)據(jù)按照報文格式要求依次寫入發(fā)送緩沖區(qū),并以中斷方式通知主機,表示有一條ARP報文需要發(fā)送,査詢結(jié)束。本發(fā)明的另一個功能是接收ARP報文并對報文進行響應(yīng)。ARP報文包括其它設(shè)備發(fā)送的ARP請求報文和其它設(shè)備對本設(shè)備請求的響應(yīng)報文。報文接收和響應(yīng)的具體步驟包括1、主機通過wishbone接口將數(shù)據(jù)包寫入ARP報文接收緩存區(qū)中,同時接收報文并提取報文中的關(guān)鍵信息,并存入相應(yīng)的寄存器中,然后判斷報文的目的IP地址是否與本地的IP地址相同,若不相同則轉(zhuǎn)步驟8,若相同則轉(zhuǎn)步驟2;關(guān)鍵信息包括報文類型、目的IP地址、源IP地址和源MAC地址;2、根據(jù)報文類型寄存器的值判斷報文的類型,若報文為ARP響應(yīng)報文或是ARP請求報文,則轉(zhuǎn)歩驟3;若既不是ARP響應(yīng)報文也不是ARP請求報文則轉(zhuǎn)歩驟8;3、將源IP地址和源MAC地址寄存器屮的值分別存入ARP緩存中的IP地址隊列和MAC地址隊列,存入的位置為ARP緩存邊界指針寄存器所指定的位置。若ARP緩存邊界指針寄存器當(dāng)前指向ARP緩存的最后一個位置,則將ARP緩存滿寄存器設(shè)為1,同時將ARP緩存邊界指針寄存器復(fù)位到0;若ARP緩存邊界指針寄存器當(dāng)前不是指向ARP緩存的最后一個位置,則將ARP緩存邊界指針寄存器加1后,更新到該寄存器中。即本發(fā)明中ARP緩存按照先進先出的方式進行更新。另外,本發(fā)明還提供快速老化的命令。主機可用通過wishbone接口寫入快速老化的命令,本發(fā)明收到該命令后,復(fù)位ARP緩存邊界指針和ARP緩存滿這兩個寄存器,使ARP緩存回到初始狀態(tài)。4、根據(jù)報文類型寄存器的值判斷報文的類型,若為ARP請求報文則轉(zhuǎn)步驟IO,若為ARP響應(yīng)報文轉(zhuǎn)步驟5;5、將有效待查詢IP地址向量寄存器的值復(fù)制到當(dāng)前待查詢IP地址向量寄存器中;6、若當(dāng)前待査詢IP地址向量寄存器為0,即本地沒有有效的待査詢IP地址,結(jié)束報文接收和響應(yīng)的過程;若當(dāng)前待查詢IP地址向量寄存器不是0,則通過首1檢測器找到當(dāng)前待查詢IP地址向量首個1在向量中的位置,并將該位置的值存入當(dāng)前IP查詢緩存地址寄存器中。其中首1檢測器的輸入為二進制的當(dāng)前待查詢IP地址向量,輸出為該向量中首個l在向量中的位置;7、以當(dāng)前IP査詢緩存地址寄存器的值為地址,讀取IP査詢緩存中存儲的IP地址的低16位,將該值與源IP地址寄存器的低16位比較,若兩者不相等,則將當(dāng)前待查詢IP地址向量寄存器中首個1復(fù)位到0,并轉(zhuǎn)到步驟6;若從IP查詢緩存中讀取的值與源IP地址寄存器的低16位相等,則轉(zhuǎn)到步驟8;8、以當(dāng)前IP查詢緩存地址寄存器的值為地址,讀取IP查詢緩存中存儲的IP地址的高16位,將該值與源IP地址寄存器的高16位比較,若兩者不相等,則將當(dāng)前待查詢IP地址向量寄存器中首個1復(fù)位到0,并轉(zhuǎn)到步驟6;若從IP査詢緩存中讀取的值的高16位與源IP地址寄存器的高16位相等,則轉(zhuǎn)到歩驟9;9、停止IP查詢緩存中與當(dāng)前IP査詢緩存地址寄存器相對應(yīng)的計時器,將計時器復(fù)位,并將源MAC地址寄存器的值存入MAC緩存中,然后通過中斷方式通知主機,找到一條待査詢的MAC-IP地址對應(yīng)關(guān)系,結(jié)束報文接收和響應(yīng)的過程;10、若為ARP請求報文,將報文按照協(xié)議規(guī)定的格式寫入ARP發(fā)送緩沖區(qū)中,并用中斷方式通知主機,請求發(fā)送一條報文,結(jié)束報文接收和響應(yīng)的過程。本發(fā)明中的ARP協(xié)議IP核帶有Wishbone標(biāo)準(zhǔn)片內(nèi)總線接口,在系統(tǒng)集成過程中,很容易實現(xiàn)即插即用,具有良好的可移植性。同時,本發(fā)明集成了ARP協(xié)議所有功能,減輕了主機管理ARP協(xié)議相關(guān)信息的負擔(dān)。圖1本發(fā)明的內(nèi)部系統(tǒng)結(jié)構(gòu);圖2本發(fā)明中查詢ARP緩存的流程圖;圖3本發(fā)明中響應(yīng)ARP報文的流程圖。具體實施方式本發(fā)明的內(nèi)部結(jié)構(gòu)如圖l所示。下面結(jié)合
發(fā)明內(nèi)容中的操作步驟,描述本發(fā)明中各個部分的具體實現(xiàn)及其管理方法。Wishbone接口Wishbone接口部分負責(zé)控制命令或數(shù)據(jù)的寫入和讀出,在wishbone總線通信中,本發(fā)明處于Slave地位。在wishbone總線協(xié)議中,任何一次的通信都只能有Master單元發(fā)起,而Slave單元來響應(yīng),為了提供Slave單元控制的靈活性,在ARPIP核中加入中斷輸出信號,以便ARPIP核在作為Slave時仍能及時通知Master其工作狀態(tài)。Wishbone接口中還包含一個寄存器陣列,它用于將Master寫入的控制命令轉(zhuǎn)換為相應(yīng)的控制信號;該寄存器陣列同時記錄了ARPIP核的工作狀態(tài)和中斷狀態(tài)寄存器等信息,可以供Master查詢。圖2為查詢ARP緩存的流程圖,具體內(nèi)容是ARP緩存的結(jié)構(gòu)和邊界指針ARP緩存記錄了本地已經(jīng)存在的MAC-IP地址對。它由兩部分組成,一部分用于存儲IP地址(稱為IP地址隊列),另一部分用于儲存MAC地址(稱為MAC地址隊列),兩者成對存在,列表的這兩個部分被映射為兩個寄存器隊列(RegisterFile)。隊列中有個一個指針,稱為ARP緩存邊界指針,該指針指向有效地址的邊界。初始化時,指針指向隊列的開始位置,隨著新的MAC-IP地址隊存入寄存器隊列,該指針自動向下移動,直到指向隊列的最后一個位置,隨后該指針重新回到隊列的開始位置。ARP緩存還有一個ARP緩存滿寄存器,該寄存器用于表明ARP緩存是否己經(jīng)填滿。ARP緩存當(dāng)前狀態(tài)由ARP緩存邊界指針和ARP緩存滿這兩個寄存器一起來表征。在響應(yīng)主機查詢某一個IP地址請求的過程中,若ARP緩仔tzww,wu:r支糸口、j遼《王而/y、八nrt及i于i^、;7utrj兀y口—且;t'jiy、7u口、jt百/乇;々ARP緩存未滿,則一旦搜索的地址到達ARP緩存邊界指針?biāo)傅奈恢?,即表明搜索過程結(jié)束。ARP緩存的查詢方法ARP緩存陣列的寬度為16bit,隊列的深度可以根據(jù)實際應(yīng)用環(huán)境調(diào)整,在本發(fā)明的一個實施例中,ARP列表可以儲存64組MAC-IP地址對。當(dāng)有查詢MAC-IP地址對的請求時,本發(fā)明以待查找的IP地址為關(guān)鍵字,在IP地址寄存器隊列中順序査找該IP是否已在ARP緩存中。IP地址寄存器隊列的寬度為16bits,對于32bits的IP地址,儲存時,將IP地址的低16bit存入低地址中,高16比特存入高地址中。在搜索過程中,本發(fā)明首先取出IP寄存器隊列中的首個IP地址的低16bit與待查詢的IP低16bit比較,若兩者不相等,則直接檢測隊列中的下一個有效IP地址;若IP地址寄存器隊列中的IP地址的低16bit與待査詢的IP地址的低16bit相等,則繼續(xù)讀取IP地址隊列中的高16位,并與待査詢IP地址的高16位比較,若兩者相等,則說明在ARP緩存中找到待査詢的IP地址。若兩者不相同,則檢測隊列中的下一個有效IP地址。ARP緩存的更新方法ARP緩存采用先進先出方式進行更新。當(dāng)MAC和IP地址寄存器隊列存滿時,新的地址對將覆蓋第一個IP-MAC對,之后依次類推,即新的MAC-IP地址對總是存入ARP緩存邊界指針?biāo)傅奈恢?。另外,本發(fā)明為主機提供快速老化ARP列表的命令,當(dāng)主機寫入該命令時,本發(fā)明將通過復(fù)位ARP緩存邊界指針和ARP緩存滿這兩個寄存器來清空ARP列表。不定時的對ARP緩存進行快速老化可以使ARP列表最大程度上反映網(wǎng)絡(luò)中MAC-IP地址對應(yīng)情況??焖倮匣瘜φ麄€ARP緩存起作用,這使得在實現(xiàn)ARP緩存是不需要記錄每個MAC-IP的生存時間,降低了實現(xiàn)過程的復(fù)雜度和資源開銷。另外,不定時的快速老化ARP列表可以有效的控制ARP列表的有效長度,減少在ARP列表中查找某一IP地址的時間。IP査詢緩存的結(jié)構(gòu)和管理方法在接受到主機査詢某一IP地址的MAC地址是否存在的請求后,若檢索ARP緩存IP地址隊列中的所有有效項仍沒有找到待查詢的IP地址,本發(fā)明將待査詢IP地址寄存器的值寫入IP査詢緩存中。IP查詢緩存為SRAM結(jié)構(gòu),寬度為16bits。本發(fā)明要求主機在査詢IP地址時,為每一次査詢指定一個唯一的標(biāo)志符(ID)(存儲在待查詢IP地址的標(biāo)識符寄存器中),査詢結(jié)果也是和該ID捆綁。IP查詢緩存以該ID為基地址存儲待查詢的IP,同時啟動與該ID對應(yīng)的超時計數(shù)器,計數(shù)的間隔為1秒。與此同時,本發(fā)明更新有效待查詢IP地址向量寄存器,即將該寄存器中與待查詢IP地址標(biāo)志符對應(yīng)的位設(shè)為1。在本發(fā)明的實施例中,若在4秒內(nèi)從網(wǎng)絡(luò)中找到待查詢IP地址的MAC地址,則超時計數(shù)器自動停止并復(fù)位。當(dāng)計時超過4秒仍沒有收到與待查詢IP對應(yīng)的ARP響應(yīng)報文,則認為ARP査詢超時,本發(fā)明將清除在IP查詢緩存中的超時IP地址,并以IP地址所對應(yīng)的ID通知主機該IP地址在當(dāng)前網(wǎng)絡(luò)中不可達。同時,有效待查詢IP地址向量寄存器中與該IP地址對應(yīng)的位將被復(fù)位到0。IP査詢緩存的查詢方法當(dāng)收到指向本地的ARP響應(yīng)報文時,本發(fā)明首先判斷源IP地址是否是本地待査詢的IP地址。若在IP查詢緩存的有效IP地址中找到一個與源IP地址相同的IP地址,則說明源IP地址確實是本地要査找的IP地址。此時,將源MAC地址寄存到MAC緩存中。若未在IP查詢緩存中找到源IP地址,則不做處理,并直接返回。在査詢IP查詢緩存時,首先寄存有效待査詢IP地址向量寄存器的值到當(dāng)前待查詢IP地址向量寄存器。通過首1檢測器找到當(dāng)前待查詢IP地址向量首個1在向量中的位置,然后以該位置所對應(yīng)的值作為地址,讀取IP査詢緩存中的IP地址的低16bit,與源IP地址寄存器的低16位比較,若兩者不相等,則將當(dāng)前待査詢IP地址向量寄存器中首個1復(fù)位到0,然后以相同的方法檢査下一個有效的IP地址;若兩者的低16位相等,則繼續(xù)讀取IP查詢緩存中存儲的IP地址的高16位,將該值與源IP地址寄存器的高16位比較,若兩者不相等,則將當(dāng)前待查詢工P地址向量寄存器中首個1復(fù)位到0,然后查找下一個有效的IP地址;若兩者相等,則說明源IP地址確實是本地要査找的IP地址。圖3為響應(yīng)ARP報文的流程圖,具體內(nèi)容是接收ARP報文并處理本發(fā)明的另一個功能是接收ARP報文。ARP報文包括其它設(shè)備發(fā)送的ARP請求報文和其它設(shè)備對本地請求的響應(yīng)報文。接收報文時,首先判斷報文的目的工P地址是否與本地IP地址相同,若不是,則直接丟棄該報文;若目的IP地址為本地IP,而報文的類型既不是ARP請求報文也不是ARP響應(yīng)報文,則同樣丟棄該報文。若報文為ARP請求報文或ARP響應(yīng)報文中的一種,則將報文中的源MAC地址和源IP地址存入本地的ARP緩存中。若接收到的報文為指向本地的ARP響應(yīng)報文,則以源IP地址為關(guān)鍵字在IP查詢緩存中査找該IP是否是本地査找的IP地址。若源IP地址確實為本地待查詢的IP地址,則將源MAC地址寄存到MAC緩存中,并通過中斷通知主機找到一個待查詢的MAC-IP地址對。若接收到的報文為指向本地的ARP請求報文,則組織ARP響應(yīng)報文,將報文按照協(xié)議規(guī)定的格式寫入ARP發(fā)送緩沖區(qū)中,并用中斷通知主機,表明請求發(fā)送一條報文。本發(fā)明中的寄存器本發(fā)明所使用到的外部寄存器及其功能如表1所示。<table>tableseeoriginaldocumentpage12</column></row><table>表1對寄存器的操作如下當(dāng)主機要發(fā)送一條網(wǎng)絡(luò)報文時,首先將目的IP地址寫入本發(fā)明的寄存器中(CheckIPl和ChecklP2寄存器),然后寫入啟動查詢IP-MAC地址對是否存在的命令(PHYCheckCont寄存器)。當(dāng)本地收到一條ARP報文時,主機將收到的報文通過Wishbone接口寫入本發(fā)明中ARPFIFOReg寄存器中(其中,ARPStartEnd寄存器用于控制接接收到的數(shù)據(jù)報的寫入過程,ARPFIFOReg寄存器直接映射為ARP模塊的接收緩沖區(qū)和發(fā)送緩沖區(qū)),此時本發(fā)明啟動解碼功能,從報文中提取有用信息。當(dāng)本發(fā)明需要和其它模塊交互信息時,將信息按照預(yù)定的方式編碼并寫入中斷狀態(tài)寄存器中(ARPInt),同時置位中斷信號線。本發(fā)明中的內(nèi)部寄存器及其功能如表2所示。<table>tableseeoriginaldocumentpage13</column></row><table>表權(quán)利要求1、一種實現(xiàn)ARP協(xié)議IP核的方法,包括管理和查詢ARP緩存、接收ARP報文并根據(jù)接收到的報文類型做出響應(yīng),其特征在于管理和查詢ARP緩存的步驟包括a、主機通過Wishbone總線將查詢MAC-IP地址對的命令寫入寄存器中,該命令包括待查詢的IP地址和本次查詢的標(biāo)志符;提取命令中的這兩個信息,分別存入待查詢IP地址寄存器和待查詢IP地址的標(biāo)識符寄存器中,并產(chǎn)生開始查詢的使能信號;b、將IP查詢指針寄存器清零,使之指向ARP緩存的開始位置;c、若ARP緩存滿寄存器的值為1,則比較IP查詢指針寄存器中的值和ARP緩存的總深度,若前者的值大于后者,則轉(zhuǎn)到步驟g,即在ARP緩存中沒有找到主機請求的IP地址;若前者的值小于等于后者,則轉(zhuǎn)到步驟d;若ARP緩存滿寄存器的值為0,則比較IP查詢指針寄存器的值和ARP緩存邊界指針寄存器的值,若前者大于等于后者,則轉(zhuǎn)到步驟g,即在ARP緩存中沒有找到主機請求的IP地址;若前者小于后者,則轉(zhuǎn)到步驟d;d、以IP查詢指針寄存器的值為地址,讀取ARP緩存中IP地址隊列中的IP地址的低16位,將該值與待查詢IP地址寄存器的低16位比較,若兩者相同則轉(zhuǎn)步驟e;若兩者不相等,則將IP查詢指針寄存器的值加1,并更新到該寄存器中,然后轉(zhuǎn)到步驟c;e、以IP查詢指針寄存器的值為地址,讀取ARP緩存中IP地址隊列中的IP地址的高16位,將該值與待查詢IP地址寄存器的高16位比較,若兩者相同則轉(zhuǎn)步驟f,即找到主機請求的IP地址;若兩者不相等,則將IP查詢指針寄存器的值加1,并更新到該寄存器中,然后轉(zhuǎn)到步驟c;f、將以IP查詢指針寄存器的值為基地址,從ARP緩存的MAC地址隊列中讀出MAC地址,并寫入到MAC緩存中;然后以中斷方式通知主機,表明在ARP緩存中找到了MAC-IP地址對應(yīng)關(guān)系,查詢結(jié)束;g、將待查詢IP地址寄存器的值寫入IP查詢緩存中,并啟動與待查詢IP地址標(biāo)志符對應(yīng)的查詢超時倒計數(shù)器,同時更新有效待查詢IP地址向量寄存器,將該寄存器中與待查詢IP地址標(biāo)志符對應(yīng)的位設(shè)為1,然后轉(zhuǎn)到步驟h;其中,超時倒計數(shù)器初值為T0,計數(shù)的步長為1秒,計數(shù)的基準(zhǔn)由外部輸入;i、按照ARP協(xié)議格式,將報文中的數(shù)據(jù)按照報文格式要求依次寫入發(fā)送緩沖區(qū),并以中斷方式通知主機,表示有一條ARP報文需要發(fā)送,查詢結(jié)束;接收ARP報文并根據(jù)接收到的報文類型做出響應(yīng)的具體步驟包括j、主機通過wishbone接口將數(shù)據(jù)包寫入ARP報文接收緩存區(qū)中,同時接收報文并提取報文中的關(guān)鍵信息,并存入相應(yīng)的寄存器中,然后判斷報文的目的IP地址是否與本地的IP地址相同,若不相同則轉(zhuǎn)步驟q,若相同則轉(zhuǎn)步驟k;所述的關(guān)鍵信息包括報文類型、目的IP地址、源IP地址和源MAC地址;k、根據(jù)報文類型寄存器的值判斷報文的類型,若報文為ARP響應(yīng)報文或是ARP請求報文,則轉(zhuǎn)步驟1;若既不是ARP響應(yīng)報文也不是ARP請求報文則轉(zhuǎn)步驟q;l、將源IP地址和源MAC地址寄存器中的值分別存入ARP緩存中的IP地址隊列和MAC地址隊列,存入的位置為ARP緩存邊界指針寄存器所指定的位置;若ARP緩存邊界指針寄存器當(dāng)前指向ARP緩存的最后一個位置,則將ARP緩存滿寄存器設(shè)為1,同時將ARP緩存邊界指針寄存器復(fù)位到0;若ARP緩存邊界指針寄存器當(dāng)前不是指向ARP緩存的最后一個位置,則將ARP緩存邊界指針寄存器加1后,更新到該寄存器中;m、根據(jù)報文類型寄存器的值判斷報文的類型,若為ARP請求報文則轉(zhuǎn)步驟s,若為ARP響應(yīng)報文轉(zhuǎn)步驟n;n、將有效待查詢IP地址向量寄存器的值復(fù)制到當(dāng)前待查詢IP地址向量寄存器中;o、若當(dāng)前待查詢IP地址向量寄存器為0,即本地沒有有效的待查詢IP地址,結(jié)束報文接收和響應(yīng)的過程;若當(dāng)前待查詢IP地址向量寄存器不是0,則通過首1檢測器找到當(dāng)前待查詢IP地址向量首個1在向量中的位置,并將該位置的值存入當(dāng)前IP查詢緩存地址寄存器中;其中首1檢測器的輸入為二進制的當(dāng)前待查詢IP地址向量,輸出為該向量中首個1在向量中的位置;p、以當(dāng)前IP查詢緩存地址寄存器的值為地址,讀取IP查詢緩存中存儲的IP地址的低16位,將該值與源IP地址寄存器的低16位比較,若兩者不相等,則將當(dāng)前待查詢IP地址向量寄存器中首個1復(fù)位到0,并轉(zhuǎn)到步驟o;若從IP查詢緩存中讀取的值與源IP地址寄存器的低16位相等,則轉(zhuǎn)到步驟q;q、以當(dāng)前IP查詢緩存地址寄存器的值為地址,讀取IP查詢緩存中存儲的IP地址的高16位,將該值與源IP地址寄存器的高16位比較,若兩者不相等,則將當(dāng)前待查詢IP地址向量寄存器中首個1復(fù)位到0,并轉(zhuǎn)到步驟o;若從IP查詢緩存中讀取的值的高16位與源IP地址寄存器的高16位相等,則轉(zhuǎn)到步驟r;r、停止IP查詢緩存中與當(dāng)前IP查詢緩存地址寄存器相對應(yīng)的計時器,將計時器復(fù)位,并將源MAC地址寄存器的值存入MAC緩存中,然后通過中斷方式通知主機,找到一條待查詢的MAC-IP地址對應(yīng)關(guān)系,結(jié)束報文接收和響應(yīng)的過程;s、若為ARP請求報文,將報文按照協(xié)議規(guī)定的格式寫入ARP發(fā)送緩沖區(qū)中,并用中斷方式通知主機,請求發(fā)送一條報文,結(jié)束報文接收和響應(yīng)的過程。全文摘要本發(fā)明涉及一種實現(xiàn)的ARP協(xié)議IP核的實現(xiàn)方法。現(xiàn)有的ARP協(xié)議功能大多與操作系統(tǒng)綁定,不易于硬件集成。本發(fā)明實現(xiàn)的IP核為上層協(xié)議(或上層模塊)提供ARP協(xié)議中的IP地址與MAC地址映射關(guān)系的查詢、管理ARP表項、提供快速老化機制、發(fā)送ARP請求、自動回復(fù)其它主機的ARP請求、管理查詢超時。本發(fā)明中的ARP協(xié)議IP核帶有Wishbone標(biāo)準(zhǔn)片內(nèi)總線接口,在系統(tǒng)集成過程中,很容易實現(xiàn)即插即用,具有良好的可移植性。同時,本發(fā)明集成了ARP協(xié)議所有功能,減輕了主機管理ARP協(xié)議相關(guān)信息的負擔(dān)。文檔編號H04L12/56GK101237415SQ20081005986公開日2008年8月6日申請日期2008年2月22日優(yōu)先權(quán)日2008年2月22日發(fā)明者廉玉平,艷張,陳金龍,霍明旭,雁韓申請人:浙江大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1