ARP協(xié)議原理及服務(wù)器
ARP(地址解析協(xié)議)是設(shè)備通過(guò)自己知道的IP地址來(lái)獲得自己不知道的物理地址的協(xié)議。假如一個(gè)設(shè)備不知道它自己的IP地址,但是知道自己的物理地址,網(wǎng)絡(luò)上的無(wú)盤工作站就是這種情況,設(shè)備知道的只是網(wǎng)絡(luò)接口卡上的物理地址。這種情況下應(yīng)該怎么辦呢?RARP(逆地址解析協(xié)議)正是針對(duì)這種情況的一種協(xié)議。RARP以與ARP相反的方式工作。RARP發(fā)出要反向解析的物理地址并希望返回其對(duì)應(yīng)的IP地址,應(yīng)答包括由能夠提供所需信息的RARP服務(wù)器發(fā)出的IP地址。雖然發(fā)送方發(fā)出的是廣播信息,RARP規(guī)定只有RARP服務(wù)器能產(chǎn)生應(yīng)答。許多網(wǎng)絡(luò)指定多個(gè)RARP服務(wù)器,這樣做既是為了平衡負(fù)載也是為了作為出現(xiàn)問(wèn)題時(shí)的備份。
發(fā)送主機(jī)發(fā)送一個(gè)本地的RARP廣播,在此廣播包中,聲明自己的MAC地址并且請(qǐng)求任何收到此請(qǐng)求的RARP服務(wù)器分配一個(gè)IP地址;
本地網(wǎng)段上的RARP服務(wù)器收到此請(qǐng)求后,檢查其RARP列表,查找該MAC地址對(duì)應(yīng)的IP地址;
如果存在,RARP服務(wù)器就給源主機(jī)發(fā)送一個(gè)響應(yīng)數(shù)據(jù)包并將此IP地址提供給對(duì)方主機(jī)使用;
如果不存在,RARP服務(wù)器對(duì)此不做任何的響應(yīng);
源主機(jī)收到從RARP服務(wù)器的響應(yīng)信息,就利用得到的IP地址進(jìn)行通訊;如果一直沒(méi)有收到RARP服務(wù)器的響應(yīng)信息,表示初始化失敗。
雖然RARP在概念上很簡(jiǎn)單,但是一個(gè)RARP服務(wù)器的設(shè)計(jì)與系統(tǒng)相關(guān)而且比較復(fù)雜。相反,提供一個(gè)ARP服務(wù)器很簡(jiǎn)單,通常是TCP/IP在內(nèi)核中實(shí)現(xiàn)的一部分。由于內(nèi)核知道IP地址和硬件地址,因此當(dāng)它收到一個(gè)詢問(wèn)IP地址的ARP請(qǐng)求時(shí),只需用相應(yīng)的硬件地址來(lái)提供應(yīng)答就可以了。作為用戶進(jìn)程的RARP服務(wù)器的復(fù)雜性在于:服務(wù)器一般要為多個(gè)主機(jī)(網(wǎng)絡(luò)上所有的無(wú)盤系統(tǒng))提供硬件地址到IP地址的映射。該映射包含在一個(gè)磁盤文件中(在Unix系統(tǒng)中一般位于/etc/ethers目錄中)。由于內(nèi)核一般不讀取和分析磁盤文件,因此RARP服務(wù)器的功能就由用戶進(jìn)程來(lái)提供,而不是作為內(nèi)核的TCP/IP實(shí)現(xiàn)的一部分。更為復(fù)雜的是,RARP請(qǐng)求是作為一個(gè)特殊類型的以太網(wǎng)數(shù)據(jù)幀來(lái)傳送的(幀類型字段值為0x8035)。這說(shuō)明RARP服務(wù)器必須能夠發(fā)送和接收這種類型的以太網(wǎng)數(shù)據(jù)幀。由于發(fā)送和接收這些數(shù)據(jù)幀與系統(tǒng)有關(guān),因此RARP服務(wù)器的實(shí)現(xiàn)是與系統(tǒng)捆綁在一起的。每個(gè)網(wǎng)絡(luò)有多個(gè)RARP服務(wù)器實(shí)現(xiàn)的一個(gè)復(fù)雜因素是RARP請(qǐng)求是在硬件層上進(jìn)行廣播的。這意味著它們不經(jīng)過(guò)路由器進(jìn)行轉(zhuǎn)發(fā)。為了讓無(wú)盤系統(tǒng)在RARP服務(wù)器關(guān)機(jī)的狀態(tài)下也能引導(dǎo),通常在一個(gè)網(wǎng)絡(luò)上(例如一根電纜)要提供多個(gè)RARP服務(wù)器。當(dāng)服務(wù)器的數(shù)目增加時(shí)(以提供冗余備份),網(wǎng)絡(luò)流量也隨之增加,因?yàn)槊總€(gè)服務(wù)器對(duì)每個(gè)RARP請(qǐng)求都要發(fā)送RARP應(yīng)答。發(fā)送RARP請(qǐng)求的無(wú)盤系統(tǒng)一般采用最先收到的RARP應(yīng)答。另外,還有一種可能發(fā)生的情況是每個(gè)RARP服務(wù)器同時(shí)應(yīng)答,這樣會(huì)增加以太網(wǎng)發(fā)生沖突的概率。