两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種地址解析協(xié)議緩存及其緩存方法

文檔序號(hào):7986371閱讀:335來(lái)源:國(guó)知局
一種地址解析協(xié)議緩存及其緩存方法
【專利摘要】本發(fā)明提供了一種ARP緩存,包括網(wǎng)絡(luò)接口模塊,用于將IP數(shù)據(jù)包發(fā)送至查找模塊進(jìn)行IP地址查找;在IP地址查找失敗后,將獲取的MAC地址發(fā)送至查找模塊;查找模塊,用于根據(jù)網(wǎng)絡(luò)接口模塊發(fā)送的IP數(shù)據(jù)包在ARP緩存模塊中查找IP地址,在IP地址查找失敗后,將網(wǎng)絡(luò)接口模塊發(fā)送的MAC地址存儲(chǔ)到ARP緩存模塊;ARP緩存模塊,用于提供IP地址給查找模塊進(jìn)行IP地址查找;在IP地址查找失敗后,將所述IP地址即時(shí)存儲(chǔ)到ARP緩存模塊中;本發(fā)明還同時(shí)公開(kāi)了一種ARP緩存方法,采用本發(fā)明,能夠在ARP緩存被填滿但沒(méi)有任何ARP表項(xiàng)達(dá)到老化時(shí)間時(shí),與非ARP高速緩存表中的其他主機(jī)通信。
【專利說(shuō)明】一種地址解析協(xié)議緩存及其緩存方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)中的地址解析協(xié)議(ARP,Address Resolution Protocol)緩存領(lǐng)域,尤其涉及一種ARP緩存及其緩存方法。
【背景技術(shù)】
[0002]ARP是在僅知道主機(jī)的因特網(wǎng)協(xié)議(IP,Internet Protocol)地址時(shí)確定其物理地址的一種協(xié)議,從IP地址到物理地址的映射有兩種方式:表格方式和非表格方式。ARP具體來(lái)說(shuō)就是,將網(wǎng)絡(luò)層地址解析為數(shù)據(jù)連接層的物理地址,即:將IP地址解析為介質(zhì)訪問(wèn)控制(MAC, MediaAccess Control)地址。
[0003]一般情況下,在眾多網(wǎng)絡(luò)協(xié)議和應(yīng)用中,發(fā)送端往往有一個(gè)以上的IP數(shù)據(jù)包要發(fā)送到同一個(gè)終點(diǎn),如果對(duì)發(fā)送到同一個(gè)主機(jī)或路由器的每一個(gè)數(shù)據(jù)包都使用ARP,那么效率是很低的。使用ARP高速緩存表可以解決這一問(wèn)題,通常情況下,當(dāng)主機(jī)或路由器通過(guò)ARP獲得某一遠(yuǎn)端IP地址和物理地址的對(duì)應(yīng)關(guān)系后,會(huì)將這個(gè)關(guān)系保存在本地的ARP高速緩存表中,以便于后續(xù)需要發(fā)往同一終點(diǎn)的IP數(shù)據(jù)包繼續(xù)使用。因此,在每臺(tái)安裝有傳輸控制協(xié)議 / 因特網(wǎng)互聯(lián)協(xié)議(TCP/IP, Transmission Control Protocol/Internet Protocol)協(xié)議棧的主機(jī)或路由器里都會(huì)有ARP高速緩存表。當(dāng)網(wǎng)絡(luò)層有IP數(shù)據(jù)包需要發(fā)送時(shí),會(huì)先查找這個(gè)ARP高速緩存表,找到要發(fā)送的目的主機(jī)或路由器的物理地址,若查找失敗,則會(huì)觸發(fā)ARP的執(zhí)行,通過(guò)ARP來(lái)動(dòng)態(tài)獲取目的主機(jī)或路由器的物理地址,并保存在ARP高速緩存表中。ARP高速緩存表提高數(shù)據(jù)傳輸?shù)男?,?jié)省了網(wǎng)絡(luò)流量。
[0004]一般情況下,ARP高速緩存表并不長(zhǎng)期的保存表中的各個(gè)表項(xiàng)。因?yàn)椋紫華RP高速緩存表的資源有限,其次為了防止ARP欺騙等非法攻擊也需要對(duì)ARP高速緩存表進(jìn)行超時(shí)處理。對(duì)ARP高速緩存表中的表項(xiàng)超時(shí)處理的過(guò)程稱為ARP老化。從伯克利系統(tǒng)演變而來(lái)的系統(tǒng)一般對(duì)完整的表項(xiàng)設(shè)置超時(shí)時(shí)間為20分鐘,而對(duì)不完整的表項(xiàng)設(shè)置超時(shí)時(shí)間為3分鐘,當(dāng)這些表項(xiàng)再次使用時(shí),一般都會(huì)將超時(shí)時(shí)間重新設(shè)為20分鐘。但是,在ARP高速緩存表被填滿之后,且沒(méi)有任何ARP表項(xiàng)達(dá)到老化時(shí)間之前,系統(tǒng)就無(wú)法和非ARP高速緩存表中的其他主機(jī)通信了。

【發(fā)明內(nèi)容】

[0005]有鑒于此,本發(fā)明的主要目的在于提供一種ARP緩存及其緩存方法,能夠在ARP緩存被填滿之后、且沒(méi)有任何ARP表項(xiàng)達(dá)到老化時(shí)間之前,與非ARP高速緩存表中的其他主機(jī)通信。
[0006]為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0007]本發(fā)明提供了一種ARP緩存,該緩存包括:網(wǎng)絡(luò)接口模塊、查找模塊、ARP緩存模塊;其中,
[0008]所述網(wǎng)絡(luò)接口模塊,用于將IP數(shù)據(jù)包發(fā)送至查找模塊進(jìn)行IP地址查找;在IP地址查找失敗后,將獲取的MAC地址發(fā)送至查找模塊;[0009]所述查找模塊,用于根據(jù)網(wǎng)絡(luò)接口模塊發(fā)送的IP數(shù)據(jù)包在ARP緩存模塊中查找IP地址,在IP地址查找失敗后,將網(wǎng)絡(luò)接口模塊發(fā)送的MAC地址存儲(chǔ)到ARP緩存模塊;
[0010]所述ARP緩存模塊,用于提供IP地址給查找模塊進(jìn)行IP地址查找;在IP地址查找失敗后,將所述IP地址即時(shí)存儲(chǔ)到ARP緩存模塊中。
[0011]上述方案中,所述網(wǎng)絡(luò)接口模塊,還用于在IP地址查找失敗后獲取MAC地址。
[0012]上述方案中,所述網(wǎng)絡(luò)接口模塊,還用于在IP地址查找成功后,接收ARP緩存模塊發(fā)來(lái)的含有MAC地址的IP數(shù)據(jù)包;
[0013]相應(yīng)的,所述查找模塊,還用于在IP地址查找成功后,將接收到的IP數(shù)據(jù)包存儲(chǔ)到ARP緩存模塊中;
[0014]所述ARP緩存模塊,還用于在IP地址查找成功后,將所述IP地址對(duì)應(yīng)的MAC地址復(fù)制于IP數(shù)據(jù)包的頭部,并將含有MAC地址的IP數(shù)據(jù)包發(fā)送至網(wǎng)絡(luò)接口模塊。
[0015]上述方案中,所述ARP緩存模塊,還用于在IP地址查找失敗后,存儲(chǔ)所述IP地址對(duì)應(yīng)的MAC地址;在IP地址查找成功后,存儲(chǔ)所述IP數(shù)據(jù)包。
[0016]上述方案中,所述ARP緩存進(jìn)一步包括:時(shí)間同步模塊,用于提供當(dāng)前同步時(shí)間給ARP緩存模塊。
[0017]上述方案中,所述ARP緩存模塊包括:IP地址存儲(chǔ)單元、MAC地址存儲(chǔ)單元、狀態(tài)存儲(chǔ)單元、IP數(shù)據(jù)包存儲(chǔ)單元、時(shí)間存儲(chǔ)單元;其中,
[0018]所述IP地址存儲(chǔ)單元,用于提供IP地址給查找模塊進(jìn)行IP地址查找,在IP地址查找失敗后,存儲(chǔ)被查找的IP地址;
[0019]所述MAC地址存儲(chǔ)單元,用于存儲(chǔ)IP地址對(duì)應(yīng)的MAC地址,并將所述MAC地址復(fù)制到IP數(shù)據(jù)包的頭部,將含有MAC地址的IP數(shù)據(jù)包發(fā)送至網(wǎng)絡(luò)接口模塊;
[0020]所述狀態(tài)存儲(chǔ)單元,用于存儲(chǔ)表項(xiàng)所處的狀態(tài);
[0021]所述IP數(shù)據(jù)包存儲(chǔ)單元,用于存儲(chǔ)IP數(shù)據(jù)包;
[0022]所述時(shí)間存儲(chǔ)單元,用于存儲(chǔ)IP地址存入的時(shí)間,并在MAC地址被使用時(shí),更新該時(shí)間為當(dāng)前時(shí)間。
[0023]本發(fā)明提供了一種ARP緩存方法,該方法包括:
[0024]將當(dāng)前IP數(shù)據(jù)包發(fā)送至ARP緩存中進(jìn)行IP地址查找;
[0025]在所述IP地址查找失敗后,將所述IP地址即時(shí)存入到ARP緩存中,并將獲取的所述IP地址對(duì)應(yīng)的MAC地址存入到ARP緩存中。
[0026]上述方案中,所述將所述IP地址即時(shí)存入ARP緩存中包括:
[0027]當(dāng)ARP緩存具有空閑狀態(tài)的表項(xiàng)時(shí),直接將所述IP地址存儲(chǔ)在表項(xiàng)中;
[0028]當(dāng)ARP緩存沒(méi)有空閑狀態(tài)的表項(xiàng)時(shí),清空時(shí)間字段最小的表項(xiàng),將所述IP地址存儲(chǔ)在表項(xiàng)中。
[0029]上述方案中,所述IP地址即時(shí)存入到ARP緩存之后,該方法還包括:獲取所述IP地址對(duì)應(yīng)的MAC地址。
[0030]上述方案中,所述獲取所述IP地址對(duì)應(yīng)的MAC地址包括:
[0031]廣播一個(gè)ARP請(qǐng)求報(bào)文至網(wǎng)絡(luò)層,所述ARP請(qǐng)求報(bào)文包含目的IP地址;
[0032]具有該目的IP地址的IP終端返回一個(gè)ARP響應(yīng)報(bào)文到ARP緩存中,所述ARP響應(yīng)報(bào)文包含目的IP地址對(duì)應(yīng)的MAC地址;[0033]ARP緩存接收所述ARP響應(yīng)報(bào)文。
[0034]本發(fā)明提供的ARP緩存及其緩存方法,與現(xiàn)有技術(shù)相比,在ARP緩存被填滿后,通過(guò)ARP緩存模塊將時(shí)間字段最小的表項(xiàng)清空,并將該表項(xiàng)的狀態(tài)字段設(shè)置為空閑狀態(tài),如此,新的目的IP地址可以即時(shí)被存入該表項(xiàng)中;并且,獲取新存入的IP地址對(duì)應(yīng)的MAC地址,將該MAC地址存入該表項(xiàng)中;如此,可以利用該ARP緩存中新存入的MAC地址,將IP數(shù)據(jù)包發(fā)送至目的IP終端。
【專利附圖】

【附圖說(shuō)明】
[0035]圖1為本發(fā)明ARP緩存組成結(jié)構(gòu)示意圖;
[0036]圖2為本發(fā)明ARP緩存實(shí)現(xiàn)其緩存方法的流程示意圖;
[0037]圖3為本發(fā)明實(shí)施例中利用ARP緩存進(jìn)行緩存的實(shí)現(xiàn)流程示意圖;
[0038]圖4為本發(fā)明ARP緩存狀態(tài)轉(zhuǎn)換圖。
【具體實(shí)施方式】
[0039]為了能夠更加詳盡地了解本發(fā)明的特點(diǎn)與技術(shù)內(nèi)容,下面結(jié)合附圖對(duì)本發(fā)明的實(shí)現(xiàn)進(jìn)行詳細(xì)闡述,所附附圖僅供參考說(shuō)明之用,并非用來(lái)限定本發(fā)明。
[0040]圖1為本發(fā)明ARP緩存組成結(jié)構(gòu)示意圖,如圖1所示,該ARP緩存包括:網(wǎng)絡(luò)接口模塊11、查找模塊12、ARP緩存模塊13 ;其中,
[0041]所述網(wǎng)絡(luò)接口模塊11,用于將IP數(shù)據(jù)包發(fā)送至查找模塊12進(jìn)行IP地址查找;在IP地址查找失敗后,將獲取的MAC地址發(fā)送至查找模塊12 ;
[0042]這里,所述IP數(shù)據(jù)包為本地終端發(fā)送到目的MAC地址的一組數(shù)據(jù),該IP數(shù)據(jù)包包括:目的IP地址、源IP地址、源MAC地址等;
[0043]進(jìn)一步的,所述網(wǎng)絡(luò)接口模塊11,還用于在IP地址查找成功后,接收ARP緩存模塊13發(fā)來(lái)的含有MAC地址的IP數(shù)據(jù)包;
[0044]進(jìn)一步的,所述網(wǎng)絡(luò)接口模塊11,還用于在IP地址查找失敗后,接收查找模塊12發(fā)送的IP地址查找失敗信息;
[0045]進(jìn)一步的,所述網(wǎng)絡(luò)接口模塊11,還用于在IP地址查找失敗后,獲取MAC地址;
[0046]具體的,IP地址查找失敗后,網(wǎng)絡(luò)接口模塊11廣播一個(gè)ARP請(qǐng)求報(bào)文至網(wǎng)絡(luò)層,所述ARP請(qǐng)求報(bào)文包含目的IP地址;相應(yīng)的,具有該目的IP地址的IP終端返回一個(gè)ARP響應(yīng)報(bào)文到網(wǎng)絡(luò)接口模塊11,所述ARP響應(yīng)報(bào)文包含目的IP地址對(duì)應(yīng)的MAC地址;網(wǎng)絡(luò)接口模塊11接收該ARP響應(yīng)報(bào)文,如此,網(wǎng)絡(luò)接口模塊11從ARP響應(yīng)報(bào)文中獲取MAC地址。
[0047]所述查找模塊12,用于接收網(wǎng)絡(luò)接口模塊11發(fā)送的IP數(shù)據(jù)包,并根據(jù)該IP數(shù)據(jù)包在ARP緩存模塊13中查找IP地址;在IP地址查找失敗后,將網(wǎng)絡(luò)接口模塊11發(fā)送的MAC地址存儲(chǔ)到ARP緩存模塊;
[0048]這里,所述在ARP緩存模塊13中查找的IP地址是:接收到的IP數(shù)據(jù)包的目的IP地址;相應(yīng)的,所述IP地址查找失敗是:ARP緩存模塊13中沒(méi)有查找到所接收IP數(shù)據(jù)包的目的IP地址;
[0049]進(jìn)一步的,所述查找模塊12,還用于在IP地址查找失敗后,發(fā)送IP地址查找失敗信息給網(wǎng)絡(luò)接口模塊11;[0050]所述ARP緩存模塊13,用于提供IP地址給查找模塊12進(jìn)行查找,在IP地址查找失敗后,將該IP地址即時(shí)存儲(chǔ)到ARP緩存模塊13中;
[0051]這里,所述將IP地址即時(shí)存儲(chǔ)到ARP緩存模塊13中有兩種情況,具體為:
[0052]當(dāng)ARP緩存模塊13具有空閑(FREE)狀態(tài)的表項(xiàng)時(shí),直接將該IP地址存儲(chǔ)在該表項(xiàng)中,并將狀態(tài)字段設(shè)置為待定(PENDING)狀態(tài);
[0053]當(dāng)ARP緩存模塊13沒(méi)有FREE狀態(tài)的表項(xiàng)時(shí),清空時(shí)間字段最小的表項(xiàng),并將該表項(xiàng)的狀態(tài)字段設(shè)置為FREE,將該IP地址存儲(chǔ)在該表項(xiàng)中,狀態(tài)字段設(shè)置為PENDING狀態(tài);
[0054]進(jìn)一步的,將時(shí)間字段與當(dāng)前時(shí)間的差值大于超時(shí)時(shí)間(Timeout)的表項(xiàng)全部清空,并將這些表項(xiàng)的狀態(tài)字段設(shè)置為FREE ;
[0055]這里,所述表項(xiàng)為一組記錄IP地址到MAC地址映射的數(shù)據(jù),包括:IP地址、MAC地址、狀態(tài)字段、時(shí)間字段、隊(duì)列號(hào)字段等;其中,
[0056]所述IP地址,用于記錄一個(gè)IP地址;
[0057]所述MAC地址,用于記錄所述IP地址對(duì)應(yīng)的一個(gè)MAC地址;
[0058]所述狀態(tài)字段,用于記錄所述IP地址、MAC地址的記錄情況;
[0059]所述時(shí)間字段,用于記錄所述IP地址被記錄的時(shí)間,并更新該時(shí)間為所述MAC地址被使用的時(shí)間;
[0060]所述隊(duì)列號(hào)字段,用于記錄存儲(chǔ)在所述IP地址之后的IP數(shù)據(jù)包;
[0061]進(jìn)一步的,所述狀態(tài)字段的內(nèi)容包括:FREE狀態(tài)、PENDING狀態(tài)、已存(RESOLVED)狀態(tài);
[0062]其中,F(xiàn)REE狀態(tài)對(duì)應(yīng)IP地址無(wú)記錄、MAC地址無(wú)記錄的情況;PENDING狀態(tài)記錄IP地址有記錄、MAC地址無(wú)記錄的情況;RES0LVED狀態(tài)記錄IP地址有記錄、MAC地址有記錄的情況;
[0063]相應(yīng)的,F(xiàn)REE狀態(tài)表示該表項(xiàng)可以給其它新的IP地址使用;PENDING狀態(tài)表示該表項(xiàng)處于等待記錄MAC地址;RES0LVED狀態(tài)表示該表項(xiàng)中的MAC地址可以被使用;
[0064]這里,所述時(shí)間字段具體為:當(dāng)一個(gè)新IP地址被存儲(chǔ)在FREE狀態(tài)的表項(xiàng)時(shí),將此刻的同步時(shí)間存儲(chǔ)在該表項(xiàng)的時(shí)間字段;當(dāng)該表項(xiàng)的IP地址對(duì)應(yīng)的MAC地址被使用時(shí),更新所存儲(chǔ)的時(shí)間字段為當(dāng)前同步時(shí)間;
[0065]相應(yīng)的,所述時(shí)間字段最小的表項(xiàng)是時(shí)間字段存儲(chǔ)最早的表項(xiàng);
[0066]這里,所述Timeout是已經(jīng)設(shè)定好的超時(shí)時(shí)間,一般為2_4分鐘;
[0067]所述ARP緩存模塊13,還用于在IP地址查找成功后,將該IP地址對(duì)應(yīng)的MAC地址復(fù)制于IP數(shù)據(jù)包的頭部,并將含有MAC地址的IP數(shù)據(jù)包發(fā)送至網(wǎng)絡(luò)接口模塊11。
[0068]這里,所述將MAC地址存儲(chǔ)到ARP緩存模塊13中具體為:將MAC地址存儲(chǔ)在已存有與其對(duì)應(yīng)IP地址的表項(xiàng)中;在MAC地址存儲(chǔ)后,將原來(lái)的PENDING狀態(tài)設(shè)置為RESOLVED狀態(tài);
[0069]進(jìn)一步的,在IP地址查找成功后,所述查找模塊12還用于將接收到的IP數(shù)據(jù)包存儲(chǔ)到ARP緩存模塊13中;
[0070]這里,所述將IP數(shù)據(jù)包存儲(chǔ)到緩存模塊13中具體為:將IP數(shù)據(jù)包存儲(chǔ)在已存有與其對(duì)應(yīng)IP地址的表項(xiàng)中;具體的,存儲(chǔ)在該表項(xiàng)中的隊(duì)列號(hào)之后;進(jìn)一步的,對(duì)于同一 IP地址的所有IP數(shù)據(jù)包依次存入該隊(duì)列號(hào)之后;[0071]進(jìn)一步的,存儲(chǔ)IP地址后,所述ARP緩存模塊13還用于存儲(chǔ)該IP地址對(duì)應(yīng)的MAC地址;
[0072]進(jìn)一步的,在IP地址查找成功后,所述ARP緩存模塊13還用于存儲(chǔ)IP數(shù)據(jù)包;
[0073]這里,用于存儲(chǔ)IP數(shù)據(jù)包的表項(xiàng)包括兩種狀態(tài):RES0LVED狀態(tài)、PENDING狀態(tài);
[0074]進(jìn)一步的,當(dāng)該表項(xiàng)為RESOLVED狀態(tài)時(shí),即該表項(xiàng)已存有MAC地址,將該MAC地址復(fù)制到隊(duì)列號(hào)之后的IP數(shù)據(jù)包頭部,并發(fā)送至網(wǎng)絡(luò)接口模塊11 ;當(dāng)該表項(xiàng)為PENDING狀態(tài)時(shí),即該表項(xiàng)未存有MAC地址,隊(duì)列號(hào)之后的IP數(shù)據(jù)包處于時(shí)刻等待發(fā)送狀態(tài),直到該表項(xiàng)存入MAC地址、變?yōu)镽ESOLVED狀態(tài)時(shí),才將MAC地址復(fù)制到隊(duì)列號(hào)之后的IP數(shù)據(jù)包頭部,并發(fā)送至網(wǎng)絡(luò)接口模塊11 ;
[0075]相應(yīng)的,網(wǎng)絡(luò)接口模塊11接收到含有MAC地址的IP數(shù)據(jù)包后,依據(jù)MAC地址,SP:目的MAC地址,將其發(fā)送到目的IP終端。
[0076]進(jìn)一步的,該ARP緩存還包括時(shí)間同步模塊14,用于提供當(dāng)前同步時(shí)間給ARP緩存模塊13 ;
[0077]具體的,所述時(shí)間同步模塊14提供當(dāng)前同步時(shí)間為:當(dāng)一個(gè)新IP地址被存儲(chǔ)在FREE狀態(tài)的表項(xiàng)時(shí),將此刻的同步時(shí)間存儲(chǔ)在該表項(xiàng)的時(shí)間字段;當(dāng)該表項(xiàng)的IP地址對(duì)應(yīng)的MAC地址被使用時(shí),更新所存儲(chǔ)的時(shí)間字段為當(dāng)前同步時(shí)間。
[0078]進(jìn)一步的,所述ARP緩存模塊13包括:IP地址存儲(chǔ)單元131、MAC地址存儲(chǔ)單元132、狀態(tài)存儲(chǔ)單元133、IP數(shù)據(jù)包存儲(chǔ)單元134、時(shí)間存儲(chǔ)單元135 ;其中,
[0079]所述IP地址存儲(chǔ)單元131對(duì)應(yīng)表項(xiàng)中的IP地址部分,用于提供IP地址給查找模塊12進(jìn)行IP地址查找;在IP地址查找失敗后,存儲(chǔ)被查找的IP地址;
[0080]這里,IP地址存儲(chǔ)單元131存儲(chǔ)該IP地址有兩種情況,具體為:
[0081 ] 當(dāng)ARP緩存模塊13具有FREE狀態(tài)的表項(xiàng)時(shí),直接將IP地址存儲(chǔ)到該表項(xiàng)中的IP地址存儲(chǔ)單元131,并將狀態(tài)字段設(shè)置為PENDING狀態(tài);
[0082]當(dāng)ARP緩存模塊13沒(méi)有FREE狀態(tài)的表項(xiàng)時(shí),清空時(shí)間字段最小的表項(xiàng),將該表項(xiàng)的狀態(tài)字段設(shè)置為FREE,并將IP地址存儲(chǔ)到該表項(xiàng)中的IP地址存儲(chǔ)單元131,狀態(tài)字段設(shè)置為PENDING狀態(tài);進(jìn)一步的,將時(shí)間字段與當(dāng)前時(shí)間的差值大于Timeout的表項(xiàng)全部清空,并將這些表項(xiàng)的狀態(tài)字段設(shè)置為FREE ;
[0083]所述MAC地址存儲(chǔ)單元132對(duì)應(yīng)表項(xiàng)中的MAC地址部分,用于存儲(chǔ)IP地址對(duì)應(yīng)的MAC地址,并將該MAC地址復(fù)制到IP數(shù)據(jù)包的頭部,將含有MAC地址的IP數(shù)據(jù)包發(fā)送至網(wǎng)絡(luò)接口模塊11 ;
[0084]這里,所述存儲(chǔ)IP地址對(duì)應(yīng)的MAC地址具體為:將MAC地址存儲(chǔ)到存有對(duì)應(yīng)IP地址表項(xiàng)的MAC地址存儲(chǔ)單元132 ;將原來(lái)的PENDING狀態(tài)設(shè)置為RESOLVED狀態(tài);
[0085]所述狀態(tài)存儲(chǔ)單元133對(duì)應(yīng)表項(xiàng)中的狀態(tài)字段,用于存儲(chǔ)表項(xiàng)所處的狀態(tài);
[0086]具體的,狀態(tài)存儲(chǔ)單元133所存儲(chǔ)的狀態(tài)包括:FREE、PENDING、RESOLVED ;
[0087]所述FREE狀態(tài),表示該表項(xiàng)中的IP地址存儲(chǔ)單元131和MAC地址存儲(chǔ)單元132為空閑狀態(tài),可以給其他新的IP地址和MAC地址使用;
[0088]所述PENDING狀態(tài),表示該表項(xiàng)中的IP地址存儲(chǔ)單元131存有IP地址,但MAC地址存儲(chǔ)單元132沒(méi)有存放MAC地址,處于時(shí)刻等待接收MAC地址狀態(tài);
[0089]所述RESOLVED狀態(tài),表示該表項(xiàng)中的IP地址存儲(chǔ)單元131和MAC地址存儲(chǔ)單元132分別存有IP地址和MAC地址,IP數(shù)據(jù)包可以利用該MAC地址進(jìn)行數(shù)據(jù)的傳輸;
[0090]所述IP數(shù)據(jù)包存儲(chǔ)單元134對(duì)應(yīng)表項(xiàng)中的隊(duì)列號(hào)字段,用于存儲(chǔ)IP數(shù)據(jù)包;
[0091]這里,所述存儲(chǔ)IP數(shù)據(jù)包具體為:將IP數(shù)據(jù)包存儲(chǔ)在存有對(duì)應(yīng)IP地址表項(xiàng)的IP數(shù)據(jù)包存儲(chǔ)單元134 ;進(jìn)一步的,對(duì)于同一 IP地址的所有IP數(shù)據(jù)包依次存入該IP數(shù)據(jù)包存儲(chǔ)單兀134后;
[0092]相應(yīng)的,所述MAC地址存儲(chǔ)單元132將MAC地址復(fù)制在IP數(shù)據(jù)包頭部具體為:當(dāng)狀態(tài)存儲(chǔ)單元133存儲(chǔ)RESOLVED狀態(tài)時(shí),即該表項(xiàng)已存有MAC地址,將該MAC地址復(fù)制到IP數(shù)據(jù)包存儲(chǔ)單元134中的IP數(shù)據(jù)包頭部,并發(fā)送至網(wǎng)絡(luò)接口模塊11 ;當(dāng)狀態(tài)存儲(chǔ)單元133存儲(chǔ)PENDING狀態(tài)時(shí),即該表項(xiàng)未存有MAC地址,IP數(shù)據(jù)包存儲(chǔ)單元134中的IP數(shù)據(jù)包處于時(shí)刻等待發(fā)送狀態(tài),直到MAC地址存儲(chǔ)單元132中存入MAC地址、進(jìn)而狀態(tài)存儲(chǔ)單元133存儲(chǔ)RESOLVED狀態(tài)時(shí),才將MAC地址復(fù)制到IP數(shù)據(jù)包存儲(chǔ)單元134中的IP數(shù)據(jù)包頭部,并發(fā)送至網(wǎng)絡(luò)接口模塊11 ;
[0093]所述時(shí)間存儲(chǔ)單元135對(duì)應(yīng)表項(xiàng)中的時(shí)間字段,用于存儲(chǔ)IP地址存入的時(shí)間,并在MAC地址被使用時(shí),更新該時(shí)間為當(dāng)前時(shí)間;
[0094]所述MAC地址被使用是:MAC地址存儲(chǔ)單元132將MAC地址復(fù)制在IP數(shù)據(jù)包頭部。
[0095]圖2為本發(fā)明ARP緩存實(shí)現(xiàn)其緩存方法的實(shí)現(xiàn)流程示意圖,如圖2所示,該方法包括步驟:
[0096]步驟201:將當(dāng)前IP數(shù)據(jù)包發(fā)送至ARP緩存中進(jìn)行IP地址查找;
[0097]這里,所述IP數(shù)據(jù)包為本地終端發(fā)送到目的MAC地址的一組數(shù)據(jù),該IP數(shù)據(jù)包包括:目的IP地址、源IP地址、源MAC地址等;
[0098]所述進(jìn)行IP地址查找是:查找IP數(shù)據(jù)包的目的IP地址。
[0099]步驟202:該IP地址查找失敗后,將該IP地址即時(shí)存入到ARP緩存中,并將獲取的該IP地址對(duì)應(yīng)的MAC地址存入到ARP緩存中;
[0100]這里,該IP地址是IP數(shù)據(jù)包的目的IP地址;
[0101]所述將該IP地址即時(shí)存入到ARP緩存中具體包括兩種情況,具體為:
[0102]當(dāng)ARP緩存具有FREE狀態(tài)的表項(xiàng)時(shí),直接將該IP地址存儲(chǔ)在該表項(xiàng)中,并將狀態(tài)字段設(shè)置為待定ENDING狀態(tài);
[0103]當(dāng)ARP緩存沒(méi)有FREE狀態(tài)的表項(xiàng)時(shí),清空時(shí)間字段最小的表項(xiàng),并將該表項(xiàng)的狀態(tài)字段設(shè)置為FREE,將該IP地址存儲(chǔ)在該表項(xiàng)中,狀態(tài)字段設(shè)置為PENDING狀態(tài);
[0104]進(jìn)一步的,將時(shí)間字段與當(dāng)前時(shí)間的差值大于Timeout的表項(xiàng)全部清空,并將這些表項(xiàng)的狀態(tài)字段設(shè)置為FREE ;
[0105]這里,所述表項(xiàng)為一組記錄IP地址到MAC地址映射的數(shù)據(jù),包括:IP地址、MAC地址、狀態(tài)字段、時(shí)間字段、隊(duì)列號(hào)字段等;其中,
[0106]所述IP地址,用于記錄一個(gè)IP地址;
[0107]所述MAC地址,用于記錄所述IP地址對(duì)應(yīng)的一個(gè)MAC地址;
[0108]所述狀態(tài)字段,用于記錄所述IP地址、MAC地址的記錄情況;
[0109]所述時(shí)間字段,用于記錄所述IP地址被記錄的時(shí)間,并更新該時(shí)間為所述MAC地址被使用的時(shí)間;
[0110]所述隊(duì)列號(hào)字段,用于記錄存儲(chǔ)在所述IP地址之后的IP數(shù)據(jù)包;[0111]進(jìn)一步的,所述狀態(tài)字段的內(nèi)容包括:FREE狀態(tài)、PENDING狀態(tài)、已存(RESOLVED)狀態(tài);
[0112]其中,F(xiàn)REE狀態(tài)對(duì)應(yīng)IP地址無(wú)記錄、MAC地址無(wú)記錄的情況;PENDING狀態(tài)記錄IP地址有記錄、MAC地址無(wú)記錄的情況;RES0LVED狀態(tài)記錄IP地址有記錄、MAC地址有記錄的情況;
[0113]相應(yīng)的,F(xiàn)REE狀態(tài)表示該表項(xiàng)可以給其它新的IP地址使用;PENDING狀態(tài)表示該表項(xiàng)處于等待記錄MAC地址;RES0LVED狀態(tài)表示該表項(xiàng)中的MAC地址可以被使用;
[0114]這里,所述時(shí)間字段具體為:當(dāng)一個(gè)新IP地址被存儲(chǔ)在FREE狀態(tài)的表項(xiàng)時(shí),將此刻的同步時(shí)間存儲(chǔ)在該表項(xiàng)的時(shí)間字段;當(dāng)該表項(xiàng)的IP地址對(duì)應(yīng)的MAC地址被使用時(shí),更新所存儲(chǔ)的時(shí)間字段為當(dāng)前同步時(shí)間;
[0115]相應(yīng)的,所述時(shí)間字段最小的表項(xiàng)是時(shí)間字段存儲(chǔ)最早的表項(xiàng);
[0116]這里,所述Timeout是已經(jīng)設(shè)定好的超時(shí)時(shí)間,一般為2_4分鐘。
[0117]進(jìn)一步的,當(dāng)所述IP地址即時(shí)存入到ARP緩存之后,該方法還包括:獲取該IP地址對(duì)應(yīng)的MAC地址;
[0118]具體的,ARP緩存廣播一個(gè)ARP請(qǐng)求報(bào)文至網(wǎng)絡(luò)層,所述ARP請(qǐng)求報(bào)文包含目的IP地址;相應(yīng)的,具有該目的IP地址的IP終端返回一個(gè)ARP響應(yīng)報(bào)文到ARP緩存,所述ARP響應(yīng)報(bào)文包含目的IP地址對(duì)應(yīng)的MAC地址;ARP緩存接收該ARP響應(yīng)報(bào)文,如此,ARP緩存從ARP響應(yīng)報(bào)文中獲取MAC地址。
[0119]該方法還包括:ARP緩存根據(jù)該IP地址對(duì)應(yīng)的MAC地址,將IP數(shù)據(jù)包發(fā)送至目的IP終端;
[0120]這里,所述該IP地址為目的IP地址;相應(yīng)的,將該目的IP地址對(duì)應(yīng)的MAC地址即目的MAC地址復(fù)制到隊(duì)列號(hào)之后的IP數(shù)據(jù)包頭部,依據(jù)該目的MAC地址,將IP數(shù)據(jù)包發(fā)送到目的IP終端。
[0121]圖3為本發(fā)明實(shí)施例中利用ARP緩存進(jìn)行緩存的實(shí)現(xiàn)流程示意圖,如圖3所示,該方法包括步驟:
[0122]步驟301:將當(dāng)前IP數(shù)據(jù)包發(fā)送至ARP緩存中進(jìn)行IP地址查找;
[0123]這里,所述IP數(shù)據(jù)包為本地終端發(fā)送到目的MAC地址的一組數(shù)據(jù),該IP數(shù)據(jù)包包括:目的IP地址、源IP地址、源MAC地址等;
[0124]所述進(jìn)行IP地址查找是:查找IP數(shù)據(jù)包的目的IP地址。
[0125]步驟302:判斷是否查找到該IP地址,若查找到該IP地址,說(shuō)明IP地址查找成功,則執(zhí)行步驟303 ;若未查找到該IP地址,說(shuō)明IP地址查找失敗,則執(zhí)行步驟305 ;
[0126]這里,該IP地址是IP數(shù)據(jù)包的目的IP地址。
[0127]步驟303:判斷ARP緩存中是否存有與該IP地址對(duì)應(yīng)的MAC地址,若存有該MAC地址,則執(zhí)行步驟304 ;若沒(méi)有存該MAC地址,則執(zhí)行步驟308 ;
[0128]本步驟前還包括:將IP數(shù)據(jù)包存儲(chǔ)到ARP緩存中;具體的,將IP數(shù)據(jù)包存儲(chǔ)在已存有與其對(duì)應(yīng)IP地址的表項(xiàng)中;
[0129]進(jìn)一步的,存儲(chǔ)在該表項(xiàng)中的隊(duì)列號(hào)之后,對(duì)于同一 IP地址的所有IP數(shù)據(jù)包依次存入該隊(duì)列號(hào)之后。
[0130]步驟304:利用該MAC地址發(fā)送IP數(shù)據(jù)包,結(jié)束當(dāng)前處理流程;[0131]具體的,將該MAC地址即目的MAC地址復(fù)制到隊(duì)列號(hào)之后的IP數(shù)據(jù)包頭部,依據(jù)該目的MAC地址,將IP數(shù)據(jù)包發(fā)送到目的IP終端。
[0132]步驟305:判斷ARP緩存中是否有FREE狀態(tài)的表項(xiàng),若無(wú)FREE狀態(tài)的表項(xiàng),則執(zhí)行步驟306 ;若有FREE狀態(tài)的表項(xiàng),則直接執(zhí)行步驟307 ;
[0133]這里,所述表項(xiàng)為一組記錄IP地址到MAC地址映射的數(shù)據(jù),包括:IP地址、MAC地址、狀態(tài)字段、時(shí)間字段、隊(duì)列號(hào)字段等;其中,
[0134]所述IP地址,用于記錄一個(gè)IP地址;
[0135]所述MAC地址,用于記錄所述IP地址對(duì)應(yīng)的一個(gè)MAC地址;
[0136]所述狀態(tài)字段,用于記錄所述IP地址、MAC地址的記錄情況;
[0137]所述時(shí)間字段,用于記錄所述IP地址被記錄的時(shí)間,及更新該時(shí)間為所述MAC地址被使用的時(shí)間;
[0138]所述隊(duì)列號(hào)字段,用于記錄存儲(chǔ)在所述IP地址之后的IP數(shù)據(jù)包;
[0139]進(jìn)一步的,所述狀態(tài)字段的內(nèi)容包括:FREE狀態(tài)、PENDING狀態(tài)、已存RESOLVED狀態(tài);
[0140]其中,F(xiàn)REE狀態(tài)對(duì)應(yīng)IP地址無(wú)記錄、MAC地址無(wú)記錄的情況;PENDING狀態(tài)記錄IP地址有記錄、MAC地址無(wú)記錄的情況;RES0LVED狀態(tài)記錄IP地址有記錄、MAC地址有記錄的情況;
[0141]相應(yīng)的,F(xiàn)REE狀態(tài)表示該表項(xiàng)可以給其它新的IP地址使用;PENDING狀態(tài)表示該表項(xiàng)處于等待記錄MAC地址;RES0LVED狀態(tài)表示該表項(xiàng)中的MAC地址可以被使用;
[0142]這里,所述時(shí)間字段具體為:當(dāng)一個(gè)新IP地址被存儲(chǔ)在FREE狀態(tài)的表項(xiàng)時(shí),將此刻的同步時(shí)間存儲(chǔ)在該表項(xiàng)的時(shí)間字段;當(dāng)該表項(xiàng)的IP地址對(duì)應(yīng)的MAC地址被使用時(shí),更新所存儲(chǔ)的時(shí)間字段為當(dāng)前同步時(shí)間;
[0143]相應(yīng)的,所述時(shí)間字段最小的表項(xiàng)是時(shí)間字段存儲(chǔ)最早的表項(xiàng);
[0144]這里,所述Timeout是已經(jīng)設(shè)定好的超時(shí)時(shí)間,一般為2_4分鐘。
[0145]步驟306:將時(shí)間字段最小的表項(xiàng)清空,并將該表項(xiàng)的狀態(tài)字段設(shè)置為FREE ;將時(shí)間字段與當(dāng)前時(shí)間的差值大于Timeout的表項(xiàng)全部清空,并將相應(yīng)表項(xiàng)的狀態(tài)字段設(shè)置為FREE。
[0146]步驟307:存儲(chǔ)被查找的IP地址,并更新時(shí)間字段為當(dāng)前同步時(shí)間;
[0147]相應(yīng)的,將該表項(xiàng)的狀態(tài)字段設(shè)置為PENDING。
[0148]步驟308:獲取該IP地址對(duì)應(yīng)的MAC地址,執(zhí)行步驟303 ;
[0149]所述獲取IP地址對(duì)應(yīng)的MAC地址具體包括:廣播一個(gè)ARP請(qǐng)求報(bào)文至網(wǎng)絡(luò)層,所述ARP請(qǐng)求報(bào)文包含目的IP地址;相應(yīng)的,具有該目的IP地址的IP終端返回一個(gè)ARP響應(yīng)報(bào)文到ARP緩存中,所述ARP響應(yīng)報(bào)文包含目的IP地址對(duì)應(yīng)的MAC地址;ARP緩存接收該ARP響應(yīng)報(bào)文,如此,ARP緩存從ARP響應(yīng)報(bào)文中獲取MAC地址。
[0150]圖4為本發(fā)明的ARP緩存狀態(tài)轉(zhuǎn)換圖,如圖4所示,ARP緩存狀態(tài)包括:FREE狀態(tài)41、PENDING 狀態(tài) 42、RESOLVED 狀態(tài) 43 ;其中,
[0151 ] FREE狀態(tài)41,對(duì)應(yīng)IP地址無(wú)記錄、MAC地址無(wú)記錄的情況;
[0152]PENDING狀態(tài)42,對(duì)應(yīng)IP地址有記錄、MAC地址無(wú)記錄的情況;
[0153]RESOLVED狀態(tài)43,對(duì)應(yīng)IP地址有記錄、MAC地址有記錄的情況;[0154]當(dāng)FREE狀態(tài)41的表項(xiàng)中記錄IP地址時(shí),該狀態(tài)轉(zhuǎn)變?yōu)镻ENDING狀態(tài)42 ;
[0155]當(dāng)PENDING狀態(tài)42的表項(xiàng)中記錄MAC地址時(shí),該狀態(tài)轉(zhuǎn)變?yōu)镽ESOLVED狀態(tài)43 ;
[0156]當(dāng)RESOLVED狀態(tài)43的表項(xiàng)中的時(shí)間字段與當(dāng)前時(shí)間的差值大于Timeout時(shí),該狀態(tài)轉(zhuǎn)變?yōu)镕REE狀態(tài)41 ;
[0157]當(dāng)PENDING狀態(tài)42的表項(xiàng)中的時(shí)間字段與當(dāng)前時(shí)間的差值大于Timeout時(shí),該狀態(tài)轉(zhuǎn)變?yōu)镕REE狀態(tài)41。
[0158]以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種ARP緩存,其特征在于,該緩存包括:網(wǎng)絡(luò)接口模塊、查找模塊、ARP緩存模塊;其中, 所述網(wǎng)絡(luò)接口模塊,用于將IP數(shù)據(jù)包發(fā)送至查找模塊進(jìn)行IP地址查找;在IP地址查找失敗后,將獲取的MAC地址發(fā)送至查找模塊; 所述查找模塊,用于根據(jù)網(wǎng)絡(luò)接口模塊發(fā)送的IP數(shù)據(jù)包在ARP緩存模塊中查找IP地址,在IP地址查找失敗后,將網(wǎng)絡(luò)接口模塊發(fā)送的MAC地址存儲(chǔ)到ARP緩存模塊; 所述ARP緩存模塊,用于提供IP地址給查找模塊進(jìn)行IP地址查找;在IP地址查找失敗后,將所述IP地址即時(shí)存儲(chǔ)到ARP緩存模塊中。
2.根據(jù)權(quán)利要求1所述的ARP緩存,其特征在于,所述網(wǎng)絡(luò)接口模塊,還用于在IP地址查找失敗后獲取MAC地址。
3.根據(jù)權(quán)利要求1或2所述的ARP緩存,其特征在于,所述網(wǎng)絡(luò)接口模塊,還用于在IP地址查找成功后,接收ARP緩存模塊發(fā)來(lái)的含有MAC地址的IP數(shù)據(jù)包; 相應(yīng)的,所述查找模塊,還用于在IP地址查找成功后,將接收到的IP數(shù)據(jù)包存儲(chǔ)到ARP緩存模塊中; 所述ARP緩存模塊,還用于在IP地址查找成功后,將所述IP地址對(duì)應(yīng)的MAC地址復(fù)制于IP數(shù)據(jù)包的頭部,并將含有MAC地址的IP數(shù)據(jù)包發(fā)送至網(wǎng)絡(luò)接口模塊。
4.根據(jù)權(quán)利要求1所述的ARP緩存,其特征在于,所述ARP緩存模塊,還用于在IP地址查找失敗后,存儲(chǔ)所述IP地址對(duì)應(yīng)的MAC地 址;在IP地址查找成功后,存儲(chǔ)所述IP數(shù)據(jù)包。
5.根據(jù)權(quán)利要求1、2或4所述的ARP緩存,其特征在于,所述ARP緩存進(jìn)一步包括:時(shí)間同步模塊,用于提供當(dāng)前同步時(shí)間給ARP緩存模塊。
6.根據(jù)權(quán)利要求3所述的ARP緩存,其特征在于,所述ARP緩存模塊包括:IP地址存儲(chǔ)單元、MAC地址存儲(chǔ)單元、狀態(tài)存儲(chǔ)單元、IP數(shù)據(jù)包存儲(chǔ)單元、時(shí)間存儲(chǔ)單元;其中, 所述IP地址存儲(chǔ)單元,用于提供IP地址給查找模塊進(jìn)行IP地址查找,在IP地址查找失敗后,存儲(chǔ)被查找的IP地址; 所述MAC地址存儲(chǔ)單元,用于存儲(chǔ)IP地址對(duì)應(yīng)的MAC地址,并將所述MAC地址復(fù)制到IP數(shù)據(jù)包的頭部,將含有MAC地址的IP數(shù)據(jù)包發(fā)送至網(wǎng)絡(luò)接口模塊; 所述狀態(tài)存儲(chǔ)單元,用于存儲(chǔ)表項(xiàng)所處的狀態(tài); 所述IP數(shù)據(jù)包存儲(chǔ)單元,用于存儲(chǔ)IP數(shù)據(jù)包; 所述時(shí)間存儲(chǔ)單元,用于存儲(chǔ)IP地址存入的時(shí)間,并在MAC地址被使用時(shí),更新該時(shí)間為當(dāng)前時(shí)間。
7.—種ARP緩存方法,其特征在于,該方法包括: 將當(dāng)前IP數(shù)據(jù)包發(fā)送至ARP緩存中進(jìn)行IP地址查找; 在所述IP地址查找失敗后,將所述IP地址即時(shí)存入到ARP緩存中,并將獲取的所述IP地址對(duì)應(yīng)的MAC地址存入到ARP緩存中。
8.根據(jù)權(quán)利要求7所述的ARP緩存方法,其特征在于,所述將所述IP地址即時(shí)存入ARP緩存中包括: 當(dāng)ARP緩存具有空閑狀態(tài)的表項(xiàng)時(shí),直接將所述IP地址存儲(chǔ)在表項(xiàng)中; 當(dāng)ARP緩存沒(méi)有空閑狀態(tài)的表項(xiàng)時(shí),清空時(shí)間字段最小的表項(xiàng),將所述IP地址存儲(chǔ)在表項(xiàng)中。
9.根據(jù)權(quán)利要求7或8所述的ARP緩存方法,其特征在于,所述IP地址即時(shí)存入到ARP緩存之后,該方法還包括:獲取所述IP地址對(duì)應(yīng)的MAC地址。
10.根據(jù)權(quán)利要求9所述的ARP緩存方法,其特征在于,所述獲取所述IP地址對(duì)應(yīng)的MAC地址包括: 廣播一個(gè)ARP請(qǐng)求報(bào)文至網(wǎng)絡(luò)層,所述ARP請(qǐng)求報(bào)文包含目的IP地址;具有該目的IP地址的IP終端返回一個(gè)ARP響應(yīng)報(bào)文到ARP緩存中,所述ARP響應(yīng)報(bào)文包含目的IP地址對(duì)應(yīng)的MAC地址; ARP緩存接收所述ARP響 應(yīng)報(bào)文。
【文檔編號(hào)】H04L29/06GK103856435SQ201210494749
【公開(kāi)日】2014年6月11日 申請(qǐng)日期:2012年11月28日 優(yōu)先權(quán)日:2012年11月28日
【發(fā)明者】馬勇軍 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
青龙| 海宁市| 碌曲县| 郎溪县| 桐城市| 华宁县| 教育| 易门县| 马鞍山市| 子洲县| 邮箱| 阿瓦提县| 华坪县| 东方市| 镇江市| 成安县| 普洱| 迁安市| 长岛县| 湘阴县| 德州市| 玉溪市| 旌德县| 日照市| 牡丹江市| 永清县| 西乡县| 德昌县| 庆安县| 深泽县| 旺苍县| 甘谷县| 都兰县| 上犹县| 财经| 长治市| 凤冈县| 民丰县| 平南县| 孝感市| 金坛市|