[转帖]TCP/IP基础----为UNIX做准备(2)
发表于:2007-06-09来源:作者:点击数:
标签:
--------Sharewithyou! --------作者meaculpa 2、ARP 要在网络上通信,主机就必须知道对方主机的硬件地址(我们不是老遇到网卡 的物理地址嘛)。地址解析就是将主机IP地址映射为硬件地址的过程。地址解 析协议ARP用于获得在同一物理网络中的主机的硬件地址。
--------Share with you!
--------作者meaculpa
2、ARP
要在网络上通信,主机就必须知道对方主机的硬件地址(我们不是老遇到网卡
的物理地址嘛)。地址解析就是将主机IP地址映射为硬件地址的过程。地址解
析协议ARP用于获得在同一物理网络中的主机的硬件地址。
解释本地IP地址(要了解地址解析工作过程的朋友看好了)
主机IP地址解析为硬件地址:
(1)当一台主机要与别的主机通信时,初始化ARP请求。当该IP断定IP地址是
本地时,源主机在ARP缓存中查找目标主机的硬件地址。
(2)要是找不到映射的话,ARP建立一个请求,源主机IP地址和硬件地址会被
包括在请求中,该请求通过广播,使所有本地主机均能接收并处理。
(3)本地网上的每个主机都收到广播并寻找相符的IP地址。
(4)当目标主机断定请求中的IP地址与自己的相符时,直接发送一个ARP答复,
将自己的硬件地址传给源主机。以源主机的IP地址和硬件地址更新它的ARP
缓存。源主机收到回答后便建立起了通信。
解析远程IP地址
不同网络中的主机互相通信,ARP广播的是源主机的缺省网关。
目标IP地址是一个远程网络主机的话,ARP将广播一个路由器的地址。
(1)通信请求初始化时,得知目标IP地址为远程地址。源主机在本地路由表中
查找,若无,源主机认为是缺省网关的IP地址。在ARP缓存中查找符合该网关
记录的IP地址(硬件地址)。
(2)若没找到该网关的记录,ARP将广播请求网关地址而不是目标主机的地址。
路由器用自己的硬件地址响应源主机的ARP请求。源主机则将数据包送到路由
器以传送到目标主机的网络,最终达到目标主机。
(3)在路由器上,由IP决定目标IP地址是本地还是远程。如果是本地,路由器
用ARP(缓存或广播)获得硬件地址。如果是远程,路由器在其路由表中查找该
网关,然后运用ARP获得此网关的硬件地址。数据包被直接发送到下一个目标
主机。
(4)目标主机收到请求后,形成ICMP响应。因源主机在远程网上,将在本地路
由表中查找源主机网的网关。找到网关后,ARP即获取它的硬件地址。
(5)如果此网关的硬件地址不在ARP缓存中,通过ARP广播获得。一旦它获得
硬件地址,ICMP响应就送到路由器上,然后传到源主机。
ARP缓存
为减少广播量,ARP在缓存中保存地址映射以备用。ARP缓存保存有动态项
和静态项。动态项是自动添加和删除的,静态项则保留在CACHE中直到计算
机重新启动。
ARP缓存总是为本地子网保留硬件广播地址(0xffffffffffffh)作为一个永久项。
此项使主机能够接受ARP广播。当查看缓存时,该项不会显示。
每条ARP缓存记录的生命周期为10分钟,2分钟内未用则删除。缓存容量满时,
删除最老的记录。
加入静态(永久)记录
通过添加静态ARP项可减少ARP请求访问主机的次数。
ARP包的结构
ARP结构的字段如下:
硬件类型--使用的硬件(网络访问层)类型。
协议类型--解析过程中的协议使用以太类型的值。
硬件地址长度--硬件地址的字节长度,对于以太网和令牌环来说,其长度为6字节。
协议地址长度--协议地址字节的长度,IP的长度是4字节。
操作号--指定当前执行操作的字段。
发送者的硬件地址--发送者的硬件地址。
发送者的协议地址--发送者的协议地址。
目的站硬件地址--目标者的硬件地址。
目的站协议地址--目标者的协议地址。
原文转自:http://www.ltesting.net