引言
當一臺主機將以太網數據幀發送到同一個局域網上的另一臺主機時,是根據48bit的以太網地址來確定目的接口的,設備驅動程序從不檢查IP數據報中的IP地址。
?
ARP為IP地址和硬件地址之間提供動態映射,說是動態的,因為這個過程是自動完成的。
?
RARP是被那些沒有磁盤驅動器的系統使用的,它需要系統管理員進行手動設置。
?
例子
用一個例子解釋ARP的運行過程
?
敲入命令ftp bsdi
1.?????ftp客戶端調用函數gethostbyname將主機名轉換為32bit的IP地址。這個函數在DNS中被稱為解析器。
2.?????ftp客戶端用得到的IP地址建立TCP鏈接。
3.?????TCP發送一個連接請求分段到遠端的主機,即用上述的IP地址發送IP數據報。
4.?????如果目的主機在本地網絡上,那么IP數據報可以直接發送到目的主機上;如果目的主機在一個遠程網絡上,那么就通過IP選路函數來確定位于本地網絡上的下一站路由器地址。
5.?????假定是一個以太網,那么發送端必須把32bit的IP地址變換成48bit的以太網地址。從邏輯Internet地址到對應的物理硬件地址需要進程翻譯,這就是ARP的功能。
6.?????ARP發送一份ARP請求的 以太網數據幀 給以太網上的每個主機,該過程稱為廣播。其中,ARP請求數據幀中包含目的主機的IP地址,即如果你是這個IP地址的擁有者,請回答你的硬件地址。
7.?????目的主機的ARP層識別出這份廣播是發送端在尋問它的硬件地址,于是發送一個ARP應答。
8.?????到ARP應答后,使ARP進行請求-應答交換的IP數據報現在就可以發送了。
9.?????發送IP數據報到目的地址。
?
每一個網絡接口都有一個48bit的硬件地址,在硬件層次上進行數據幀交換必須有正確的接口地址。但是知道主機的IP地址并不能發送一幀數據給主機。因為內核必須知道目的端的硬件地址才能發送數據,這也就是 ARP 的存在意義 。
?
SLIP和PPP(點對點)鏈路不使用ARP。當設置這些鏈路時,需要告訴內核鏈路每一端的IP地址而不需要涉及硬件地址。
?
ARP高速緩存
每個主機上都有一個ARP高速緩存,用于存放最近Internet地址到硬件地址的映射記錄。高速緩存中每一項的生存時間一般為20分鐘,起始時間從被創建時開始算起(生存時間在再次使用后,重新更新為20分鐘)。
?
ARP分組格式
ARP請求和應答幀格式
?
對比第二章中以太網分裝的幀格式發現,首部是一樣的,后面的ARP請求/響應字段就是數據段。
?
若以太網目的地址全1則是廣播地址。
?
在ARP請求/應答分組格式中有重復信息:在以太網首部和ARP請求/應答幀中都有發送端的硬件地址。
?
對一個ARP請求來說,除目的端的硬件地址外其他都要填上。當主機收到一份目的IP地址為本機的ARP請求后,它就把自己的硬件地址填進去,然后將填進去的目的端地址替換兩個發送端地址,將發送端地址替換目的地址,最后發送。
?
對不存在主機的ARP請求
若網絡號和子網號對應的網絡確實存在,但是主機號不存在,就會有多次ARP請求,大約75s后TCP連接請求才放棄。
?
注意:直到 ARP 應答返回時 ,TCP 報文段才可以被發送,因為這時才知道目的地的硬件地址。
ARP高速緩存超時設置
對完整的表項設置超時值為20min,對不完整的表項設置為3min。
?
ARP代理
如果ARP請求時從一個網絡的主機發往另一個網絡的和足跡,那么連接兩個網絡的路由器就可以回答這個ARP請求,該過程稱為 委托 ARP 或者 ARP 代理 。這樣可以欺騙發起ARP的發送端,認為路由器就是目的主機,而事實上目的主機在路由器的另一邊。
?
ARP代理也稱ARP混合和ARP出租,這些名字來源于ARP代理的其他用途:通過兩個物理網絡的路由器可以相互隱藏物理網絡,這種情況下兩個物理網絡之間可以使用想用的網絡號,只要把中間的路由器設置成ARP代理以響應一個網絡到另一個網絡的ARP請求。
?
免費ARP
免費ARP指主機發送ARP查找自己的IP地址。
免費ARP作用:
1.?????通過它來確定另一個主機是不是設定了相同的IP。若有ARP響應則說明有另外一個主機設定了相同的IP地址。
2.?????若發送免費ARP的主機正好改變了硬件地址(換網卡),那么免費ARP可以使其他主機高速緩存ARP中的舊的硬件地址進行更新。如果主機收到某個IP地址的ARP請求并且它已經在接收者的告訴緩存中,那么就要用ARP請求中的發送端的硬件地址對高速緩存中相應的內容進行更新。
?
一個例子:通過發送含有備份硬件地址和故障服務器的IP地址的免費ARP請求,使得備份服務器可以順利的接替故障服務器進行工作。這使得所有目的地為故障服務器的報文都被送到了備份服務器那里,客戶程序不必關心原來的額服務器是否出了故障。
?
?
RARP逆地址解析協議
引言
具有本地磁盤的系統引導時,一般從磁盤上的配置文件中讀取IP地址。但無盤機如X終端和無盤工作站則需要采用其他方式獲得IP地址。
?
無盤系統的RARP實現過程是從接口卡上讀取唯一的硬件地址,然后發送一份RARP請求(一幀在網絡上廣播的數據),請求某個主機響應該無盤系統的IP地址(在RARP應答中)。
?
RARP請求以廣播方式傳送,RARP應答以單播方式傳送。 RARP 的應答中包含發送端的 IP 地址,這樣發送端就知道了自己的 IP 地址 。 當無盤系統從 RARP 應答中收到它的 IP 地址后,它將發送 TFTP 請求來讀取引導映像 。
?
RARP服務器設計
提供一個ARP服務器很簡單,通常是TCP/IP在內核中實現的一部分。由于內核知道IP地址和硬件地址,因此當它收到一個詢問IP地址的ARP請求時,只需用相應的硬件地址來提供應答就可以了。
RARP服務器要為多個主機(網絡上所有的無盤系統)提供硬件地址到IP地址的映射。該映射包含在一個磁盤文件中。由于內核一般不讀取和分析磁盤文件,因此RARP服務器的功能就由用戶進程來提供而不是作為內核TCP/IP實現的一部分。
?
RARP請求是在硬件層進行廣播的,它不經過路由器轉發。通常在一個網絡上要提供多個RARP服務器,為了讓無盤系統在RARP服務器關機的狀態也能引導。
?
每個RARP服務器對每個RARP請求都要發送RARP應答。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
