TcpIp詳解--ARP:地址解析協議

TcpIp詳解--ARP:地址解析協議


1.協議
不同的網絡,因為它們使用的硬件的不同,鏈路層的協議也就不一樣,但不管是以太網還是令牌環網或者其它網,它們通常都是用48位來標識主機地址(參見2-1所示的以太網幀格式).而在网絡層是使用32位來標識主机地址(參見圖3-1).
如果要發送數據,我們通過應用程序將32位的ip地址傳到鏈路層.鏈路層卻並不能根據這個ip地址來發送數據,它必須要知道目的端的硬件地址才能發送數據.ARP就負責將32位的ip地址和采用不同網絡技術的硬件地址之間提供動態映射.
注:點對點鏈路不使用arp,當設置這些鏈路時,必須告知內核鏈路每一端的ip地址.像以太網地址這樣的硬件地址並不涉及.

(圖4-1)

在以太網上解析ip地址時,arp請求和應答分組的格式如下圖(圖4-3).(事實上arp也可以用於其它類型的網絡,可以解析ip地址以外的地址.緊跟著幀類型字段的前四個字段指定了最後四個字段的類型和長度).

(圖4-3)

下面是對以太網幀格式的一些解析:
6字節目的地址:若為全1表示廣播地址.
2字節幀類型:表示後面數據的類型,對於arp請求或應答來說,該字段的值為0x0806.
硬件類型字段:表示硬件地址的類型.它的值為1表示以太网地址.
協議類型字段:表示要映射的協議地址類型.它的值若為0x0800表示ip地址(它的值与ip數据報的以太网數据幀中的類型字段的值相同,這是有意設計的,參見圖2-1).
1字節硬件地址長度:表示硬件地址的長度,單位為字節,對于以太网上ip地址的arp請求或應答,它的值為6.
1字節協議地址長度:表示協議地址的長度,單位為字節,對于以太网上ip地址的arp請求或應答,它的值為4.
2字節操作字段:表示四种操作類型的哪一個,ARP請求(值為1),ARP應答(值為2),RARP請求(值為3),RARP應答(值為4).
值得注意的是:以太網的數據幀報頭中和ARP請求數據幀中都有發送端的硬件地址(見圖4-3中第2個字段與倒數第2個字段).


2.運行過程
首先說明一個概念,在每台主机上都有一個ARP高速緩存.這個高速緩存存放了最近ip地址到硬件地址之間的映射記錄.高速緩存中每一項的生存時間一般為20分鐘,當這些表項再次使用時,會把超時值重設為20分鐘.我們可以用命令arp -a 來查看高速緩存中的內容.

一台主機發送通過廣播形式發送一個ARP請求,如果目的主机存在,那么當目的主机收到一份目的端為本機的ARP請求報文後,它就把硬件地址填進去,然後用兩個目的端地址分別替換兩個發送端地址,並把操作字段置為2,最後把它發送回去(不是廣播形式).

ARP代理:
如果ARP請求的目的主機在在另一個網絡,那麼就會由連接這兩個網絡的一個路由器來代理目的主機.

免費ARP:
指主機發送ARP查找自已的ip地址.通常發生在系統起動時進行接口配置的時候.它有兩個用途,1.檢查是否有其它主機的ip地址與本機相同,2.如果本機的網卡改動過,則可以通知高速緩存更新表項.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值