网普技术论坛 网普科技  
» 游客:   网普主页 | 注册 | 登录 | 帮助
 

作者:
标题: ARP协议的工作原理 上一主题 | 下一主题
Kathy
网普版主




积分 27
发贴 7
注册 2005-11-7
状态 离线
#1  ARP协议的工作原理

ARP协议的工作原理
在以太网(Ethernet)中,一个网络设备要和另一个网络设备进行直接通信,除了知道目标设备的网络层逻辑地址(如IP地址)外,还要知道目标设备的第二层物理地址(MAC地址)。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

  当一个网络设备需要和另一个网络设备通信时,它首先把目标设备的IP地址与自己的子网掩码进行"与"操作,以判断目标设备与自己是否位于同一网段内。如果目标设备在同一网段内,并且源设备没有获得与目标IP地址相对应的MAC地址信息,则源设备以第二层广播的形式(目标MAC地址为全1)发送ARP请求报文,在ARP请求报文中包含了源设备与目标设备的IP地址。同一网段中的所有其他设备都可以收到并分析这个ARP请求报文,如果某设备发现报文中的目标IP地址与自己的IP地址相同,则它向源设备发回ARP响应报文,通过该报文使源设备获得目标设备的MAC地址信息。
如果目标设备与源设备不在同一网段,则源设备首先把IP分组发向自己的缺省网关(Default Gateway),由缺省网关对该分组进行转发。如果源设备没有关于缺省网关的MAC信息,则它同样通过ARP协议获取缺省网关的MAC地址信息。为了减少广播量,网络设备通过ARP表在缓存中保存IP与MAC地址的映射信息。在一次ARP的请求与响应过程中,通信双方都把对方的MAC地址与IP地址的对应关系保存在各自的ARP表中,以在后续的通信中使用。ARP表使用老化机制,删除在一段时间内没有使用过的IP与MAC地址的映射关系。
还有当传送过来的包要传向一个LAN的主机时,当它到达网关时,网关要求ARP程序找到物理主机或与IP地址相对应的MAC地址。ARP程序在缓存中寻找,如果找到地址,就提供此地址,以便让此包转换成相应的长度和格式,以传送到此主机。如果未找到,ARP程序就在网上广播一个特殊格式的消息,看哪个机器知道与这个IP地址相关的MAC地址。如果一台机器发现那是自己的IP地址,它就发送回应,这样就指出了相应的地址。ARP程序就更新自己的缓存然后发送此包到回应的MAC地址。因为不同协议的相应处理方法不同,所以有不同网络的地址解析请求。也有反向地址解析协议(RARP)供不知道IP地址的主机从ARP缓存中获得IP地址。
我们还是来通过实验更加深入直观地了解ARP协议的工作原理吧。我们假设有两台主机:A机的IP地址是192.168.0.1,MAC地址是52-54-ab-27-82-83 。
B机的IP地址是192.168.0.2,MAC地址是52-54-ab-27-82-84 。
当主机A想与主机B进行通讯时,A机只知道B机的IP地址是192.168.0.2,当数据包封装到MAC层时他如何知道B
的MAC地址呢,一般的OS中是这样做的,在OS的内核中保存一分MAC地址表,就是我们一中介始到的。用arp -a就可以看见这个表的内容了,例如:
C:\>arp -a

Interface: 192.168.0.X on Interface 0x1000002
Internet Address Physical Address Type
192.168.0.1 52-54-ab-27-82-83 dynamic


其中表内有IP和MAC地址的对应关系,当要过进行通讯时,系统先查看这个表中是否有相关的表项,如果有就直接使用,如果没有系统就会发出一个ARP请求包,这个包的目的地址为ffffffffffff的广播地址,他的作用就是询问局域网内IP地址为192.168.0.2的主机的MAC地址,就像是A在局域网中发信息找一个IP地址为192.168 .0.2的主机MAC地址,同样A机把自已的MAC地址告诉出去是52-54-ab-27-82-83 ,随后所有主机都会接收到这个包,但只有IP为192.168.0.2的B才会响应一个ARP应答包给主机A,B机会回信息给A机说他的MAC地址是52-54-ab-27-82-84 ,好这下主机A就知道B的MAC地址了,于时他就可以封包发送了,同时主机A将B的MAC地址放入ARP缓冲中,隔一定时间就将其删除,确保不断更新。

注意,在这个过程中,如果主机A在发送ARP请求时,假如该局域网内有一台主机C的IP和A相同,C就会得知有一台主机的IP地址同自已的IP地址相同,于时就蹦出一个IP冲突的对话筐。与ARP相对应的还有一个协议RARP:Reverse Address Resolution Protocol,反向地址解析协议,该协议主要用于工作站模型动态获取IP的过程中,作用是由MAC地址向服务器取回IP地址。

2005-11-14 07:39 PM
查看资料  发短消息   编辑帖子  引用回复 顶部
网普科技
网普管理员

网普科技人民公仆


积分 3080
发贴 2863
注册 2004-6-26
来自 网普科技
状态 离线
#2  

学习协议最好的方法是抓包



天理路上甚宽,稍游心,胸中便觉广大宏朗;
人欲路上甚窄,才寄迹,眼前俱是荆棘泥涂。



网普科技,优质美国主机服务!
美国Linux主机,美国虚拟主机
支持PHP+MYSQL+cPanel+EMAIL
为用户负责,拒绝反动、赌博及色情内容! QQ:126818

发送QQ消息
2005-11-15 06:58 PM
查看资料  访问主页  发短消息  QQ   编辑帖子  引用回复 顶部
茱莉娅
THE BODY SHOP美容顾问

茱莉娅美体小铺


积分 3080
发贴 2863
注册 2009-5-21
来自 茱莉娅美体小铺
状态 离线
#2  赞助商信息The body shop

茱莉娅美体小铺
茱莉娅美体小铺淘宝店
茱莉娅美体小铺


茱莉娅美体小铺淘宝店
2005-11-15 06:58 PM
查看资料  访问主页  发短消息  QQ   编辑帖子  引用回复 顶部


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转:  




Powered by Discuz! 2.5 © 2001-2005 Comsenz Technology Ltd.
Processed in 0.005643 second(s), 7 queries, Gzip enabled
------------------------------------------------------------------------------
本论坛属网普科技交流与技术支持论坛!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
美国主机, 美国虚拟主机, cPanel+PHP+Mysql+Ftp+Email+Zend+GD2+国际域名支持
技术支持 QQ: 126818 EMail & MSN: support[AT]netpu.net
[ 联系我们 ] - [ 网普科技 ]