ARP协议

来源:互联网 发布:mac 贴膜 涂层脱落 编辑:程序博客网 时间:2024/06/18 11:23

1.什么是ARP协议

ARP(Address Resolution Protocol,地址解析协议)是获取物理地址的一个TCP/IP协议。某节点的IP地址的ARP请求被广播到网络上后,这个节点会收到确认其物理地址(MAC地址)的应答,这样的数据包才能被传送出去。RARP(逆向ARP)经常在无盘工作站上使用,以获得它的逻辑IP地址。

2.为什么要有ARP协议?

我们在实际应用中经常遇到这样的问题,已知一个主机或路由的IP地址,但在数据通过物理链路传输过程中,MAC帧必须包含目的主机或路由的MAC地址,于是,我们需要找到目的主机或路由的MAC地址;地址解析协议ARP就是用来解决这个问题。

所以,ARP协议的用途就是为了从网络层使用的IP地址解析出在数据链路层的硬件地址

3.ARP协议是如何工作的?
每个主机都设有一个ARP高速缓存,里面是局域网上的个主机和路由的IP地址到硬件地址的映射表,当主机A要想本局域网上的某个主机B发送IP数据报时,就首先要在ARP高速缓存中查找B的MAC地址,若找到,把MAC地址写入MAC帧中,通过局域网将该帧发送给主机B;若此时ARP缓冲中没有B的MAC地址,则执行下面的步骤:

  • A主机在本局域网上广播了一个ARP请求分组,主要内容:“我的IP地址是209.0.0.5(例如主机A的IP),硬件地址是00-00-C0-15-AD-18,我想知道IP地址为209.0.0.6(主机B的IP)的主机的硬件地址”
  • 在本局域网上的所有主机运行的ARP进程都要收到ARP请求分组;
  • 局域网上各主机和路由在链路层都对该ARP分组进行捉获,但传送到IP层时,只有主机B的IP地址与ARP请求分组中要查询的IP地址一致,B主机收下这个ARP分组并发送ARP响应分组,并在这个响应分组中写上B主机自己的MAC地址;
    响应分组内容为“我是209.0.0.6, 我的硬件地址是08-00-2B-00-EE-0A”,这个分组是从一个原地址发送到目的地址的普通广播,不会被别的主机捉获;

  • 主机A收到B的ARP响应后,在其ARP高速缓存中写入主机B 的IP地址到硬件地址的映设;

    4.ARP的数据报格式

    这里写图片描述

5.分组网测试PING,检测两主机间的连通性
我们现在编写一个脚本,测试自己主机局域网上连通的主机
通过ifconfig命令查看本主机的IP地址与子网掩码,两者按位与,得到本地子网号,得到子网好为192.168.74.0
这里写图片描述

编写脚本
这里写图片描述

运行结果:捉获到IP为192.168.74.129的主机

这里写图片描述

原创粉丝点击