1.地址解析协议ARP:知道一个机器的IP地址,需要找到其相应的硬件地址;ARP协议的用途是为了从网络层使用的IP地址解析出在链路层使用的硬件地址;
2.由于是IP协议使用了ARP协议,因此通常就把ARP协议划归为网络层;
3.网络层使用的IP地址,但在实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址;
4.地址解析协议ARP解决IP地址和硬件地址的映射问题方法:
**在主机ARP高速缓存区中应存放一个从IP地址到硬件地址的映射表;
**当A主机要向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址;如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址;
**当A主机高速缓存是空的,或者B主机才入网,这种情况下,A主机就自动运行ARP,按照以下方式步骤找出主机B的硬件地址:
①ARP进程在本局域网上广播发送一个ARP请求分组:我的IP地址是.....,硬件地址是.....,我想知道IP地址.....的主机的硬件地址;
②在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组;
③主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下这个ARP请求协议,并向主机A发送ARP响应分组,并在这个响应分组中写入自己的硬件地址;虽然,ARP请求分组是广播发送的,但是ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址;
④主机A收到主机B的ARP响应后,就在其ARP高速缓存中写入主机B的IP地址和硬件地址的映射;
5.ARP高速缓存是非常有用的。如果不使用ARP高速缓存,那么任何一个主机只要进行一次通信,就必须在网络上用广播方式发送ARP请求分组,这就使得网络上的通信量大大增加;
6.ARP把保存在高速缓存中的每一个映射地址项目都设置生存时间,但凡超过生存时间就从高速缓存中删除掉;为了,避免设备更换硬件后,硬件地址发生变化,而不能进行正常通信‘
7.ARP是解决同一个局域网上的主机或路由器的IP地址或路由器的P地址和硬件地址的映射问题;如果所要找的主机和源主机不在同一个局域网上,就无法解析主机的硬件地址;
8.从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的;只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器通信,ARP协议就会自动地把这个IP地址解析为链路层所需要的硬件地址;
9.为什么不直接使用硬件地址进行通信,而要使用抽象的IP地址并调用ARP来寻址:
**由于全世界存在着各式各样的网络,它们使用不同的硬件地址,要使这些异构的网络进行通信就必须进行非常复杂的,硬件地址转换工作,因此由用户或主机来完成这项工作几乎是不可能的,统一IP地址就把这个问题解决了;