摘要:互聯(lián)網(wǎng)技術(shù)ARP高速緩存器中對(duì)應(yīng)硬件地址:主機(jī)A收到主機(jī)B的ARP響應(yīng)分組后,就在其ARP高速緩存器中寫人主機(jī)B的IP地址和對(duì)應(yīng)的硬件地址。
主機(jī)A收到主機(jī)B的ARP響應(yīng)分組后,就在其ARP高速緩存器中寫人主機(jī)B的IP地址和對(duì)應(yīng)的硬件地址。
在主機(jī)A廣播ARP請(qǐng)求分組之后,很可能不久主機(jī)B為了向主機(jī)A傳送數(shù)據(jù),也要廣播ARP請(qǐng)求分組。為了減小網(wǎng)絡(luò)的開銷,主機(jī)A在發(fā)送其ARP請(qǐng)求分組時(shí),就將主機(jī)A自己的這一地址映射關(guān)系傳送給其他主機(jī)(包括B),并寫人這些主機(jī)的ARP高速緩存器中。此后,在主機(jī)B向主機(jī)A發(fā)送數(shù)據(jù)分組之前就不再需要廣播ARP請(qǐng)求分組了。
網(wǎng)絡(luò)在經(jīng)過一段時(shí)間的運(yùn)行之后,在每個(gè)主機(jī)的地址映射表中,就會(huì)有連接到網(wǎng)絡(luò)上的所有主機(jī)及路由器的地址映射表項(xiàng)。而且,在以后的工作過程中映射表的內(nèi)容還可以不斷更新??梢夾RP髙速緩存器非常有用。如果不使用ARP高速緩存器建立地址映射表,那么任何一個(gè)主機(jī)每進(jìn)行一次數(shù)據(jù)通信,都必須在網(wǎng)絡(luò)上用廣播方式發(fā)送ARP請(qǐng)求分組,這就使網(wǎng)絡(luò)上的通信流量大大增加。ARP將已經(jīng)得到的地址映射表項(xiàng)保存在高速緩存器中,這樣就使得該主機(jī)下次再和具有同樣目的地址的主機(jī)通信時(shí),可以直接從高速緩存器中找到所需的硬件地址而不必再用廣播方式發(fā)送ARP請(qǐng)求分組了。
ARP將保存在高速緩存器中的每一個(gè)映射地址項(xiàng)目都設(shè)置生存時(shí)間(例如,10分鐘~20分鐘)。凡超過生存時(shí)間的表項(xiàng)就從髙速緩存器中刪除掉。設(shè)置這種地址映射表項(xiàng)的生存時(shí)間是很重要的。設(shè)想有一種情況。主機(jī)A和B通信。主機(jī)A的ARP高速緩存器里保存有 主機(jī)B的物理地址。但主機(jī)B的網(wǎng)卡突然壞了,主機(jī)B立即更換了一塊,因此主機(jī)B的硬件地址就改變了。主機(jī)A還要和土機(jī)B繼續(xù)通信。主機(jī)A在其ARP高速緩存器中査找到主機(jī)B原先的硬件地址,并使用該硬件地址向主機(jī)B發(fā)送數(shù)據(jù)幀。但主機(jī)B原先的硬件地址已經(jīng)失效了,因此主機(jī)A無法找到主機(jī)B。但是過了一段時(shí)間,主機(jī)A的ARP高速緩存器中已經(jīng)刪除了主機(jī)B原先的硬件地址(因?yàn)樗纳鏁r(shí)間到了),于是主機(jī)A重新廣播發(fā)送ARP請(qǐng)求分組,又可以找到主機(jī)B。
這里需要指出,ARP是解決同一個(gè)局域網(wǎng)上的主機(jī)或路由器的IP地址和硬件地址的映射問題。如果所要找的主機(jī)和源主機(jī)不在同一個(gè)局域網(wǎng)上,例如,圖7-11所示的主機(jī)H,和H2,那么主機(jī)H,就無法解析出主機(jī)H2的硬件地址,實(shí)際上主機(jī)H,也不需要知道遠(yuǎn)程主機(jī)H2的硬件地址。其理由請(qǐng)讀者自己思考。
這里我們還要指出,這種從IP地址到硬件地址的解析是自動(dòng)進(jìn)行的,主機(jī)的用戶對(duì)這種地址解析過程是不知道的。只要主機(jī)或路由器要和本網(wǎng)絡(luò)上的另一個(gè)已知IP地址的主機(jī)或路由器進(jìn)行通信,ARP就會(huì)自動(dòng)地將該IP地址解析為鏈路層所需要的硬件地址。
有的讀者可能會(huì)產(chǎn)生這樣的問題:既然在網(wǎng)絡(luò)的鏈路上傳送的幀最終是按照硬件地址找到目的主機(jī)的,那么為什么不直接使用硬件地址進(jìn)行通信,而是要使用抽象的IP地址并調(diào)用ARP來尋找出相應(yīng)的硬件地址呢?
這個(gè)問題必須弄淸楚。
由于全世界存在著各式各樣的網(wǎng)絡(luò),它們使用不同的硬件地址。要使這些異構(gòu)網(wǎng)絡(luò)能夠互相通信就必須進(jìn)行非常復(fù)雜的硬件地址轉(zhuǎn)換工作,這幾乎是不可能的事。但統(tǒng)一的IP地址把這個(gè)復(fù)雜問題解決了。連接到互聯(lián)網(wǎng)的主機(jī)都擁有統(tǒng)一的IP地址,它們之間的通信像連接在同一個(gè)網(wǎng)絡(luò)上那樣簡(jiǎn)單方便,因?yàn)檎{(diào)用ARP來尋找某個(gè)路由器或主機(jī)的硬件地址都是由計(jì)算機(jī)軟件自動(dòng)進(jìn)行的,對(duì)用戶來說是看不見這種調(diào)用過程的。
設(shè)想有兩個(gè)主機(jī)可以直接使用硬件地址進(jìn)行通信(具體實(shí)現(xiàn)方法暫不必管)。再假定其兩個(gè)主機(jī)的網(wǎng)卡都同時(shí)壞了,然后又都更換了一塊,因此它們的硬件地址也都改變了。這時(shí),這兩個(gè)主機(jī)怎樣能夠知道對(duì)方的硬件地址呢?顯然很難。但丨P地址獨(dú)立于主機(jī)或路由器的硬件地址,硬件地址的改變不會(huì)影響使用IP主機(jī)間的通信。
因此,在虛擬的IP網(wǎng)絡(luò)上用統(tǒng)一的IP地址進(jìn)行通信給廣大計(jì)箅機(jī)用戶帶來很大的方便。
在進(jìn)行地址轉(zhuǎn)換時(shí),有時(shí)還要用到逆地址解析協(xié)議(RARP)。逆地址解析協(xié)議(RARP)使只知道自己硬件地址的主機(jī)能夠知道其丨P地址。這種主機(jī)往往是無盤工作站。這種無盤工作站一般只要運(yùn)行其ROM中的文件傳送代碼,就可用下行裝載方法從局域網(wǎng)上其他主機(jī)得到所需的操作系統(tǒng)和TCP/IP通信軟件,但這些軟件中并沒有1P地址。無盤工作站要運(yùn)行ROM中的RARP來獲得其IP地址。RARP的工作過程大致如下。
為了使RARP能T作,在局域網(wǎng)上至少有一個(gè)主機(jī)要充當(dāng)RAPR服務(wù)器,無盤工作站先向局域網(wǎng)發(fā)出RARP請(qǐng)求分組(在格式上與ARP請(qǐng)求分組相似),并在此分組中給出自己的硬件地址。
RARP服務(wù)器有一個(gè)事先做好的從無盤工作站的硬件地址到IP地址的映射表,當(dāng)收到RARP請(qǐng)求分組后,RARP服務(wù)器就從這映射表查出該無盤工作站的IP地址。然后寫人RARP響應(yīng)分組,發(fā)回給無盤工作站。無盤工作站用此方法獲得自己的IP地址。
ARP和RARP都已經(jīng)成為互聯(lián)網(wǎng)標(biāo)準(zhǔn)協(xié)議,其RFC文檔分別為[RFC-826]和[RFC903]。
返回目錄:
編輯推薦
通信專業(yè)實(shí)務(wù)考試終端與業(yè)務(wù)教程匯總
通信工程師備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題