大家回顾一下以太网数据包的格式
图4-1以太网包
那么有个问题,比如想要发送报文内容为你好,到ip为192.168.1.2的电脑,那么怎样知道对应的mac为多少?这个时候就是arp协议来从ip地址获取对应的mac
这个是arp请求格式,这里说明一下,arp协议也属于以太网数据包,现在来一个个分析每个格式
1、 以太网目的地址:因为不知道对端的以太网目的地址,所以这里填写全ff
2、 源地址,填写发送端的以太网mac地址
3、 帧类型:大家记得如果为IP报文应该填写0800,这里为arp协议,那么应该填写0806
4、 硬件类型:如果是以太网这里就填写1,其他的先不用考虑,因为硬件类型大多数都是以太网
5、 协议类型:如果是IP协议就填写0800,其他的不用考虑
6、 硬件地址长度:MAC的长度为6所以填写6
7、 协议地址长度:ip长度为4这里填写4
8、 Op:op为1表示arp请求,op2为2为应答(这里晚点会在实例里面讲解请求与应答具体概念)
9、 发送端以太网地址:发包主机的mac地址
10、 发送端ip地址:发包主机的ip地址
11、目的以太网地址:arp请求的时候填写全0,应答的时候填写真实的mac地址
12、目的IP地址:请求哪个IP 的mac就填写哪个IP
这个时候就是arp地址协议了,让我们来看一下arp地址协议怎样工作的
图4-3arp请求与应答
从这个图里面通过arp请求与应答主机就双方就知道对方的mac以及ip地址了,这里只发送了一次请求为什么双方都知道?因为在arp请求的时候里面有发送者的ip以及mac这样接受者可以进行学习。
图4-4arp应答
讲了arp之后再来讲一个arp代理以及免费arp
免费arp:
免费arp的作用:
1、如果有一台主机进入网络,假设他配置的ip地址为192.168.1.2,那么如果网络上面已经有一台与他配置一样的主机那么就会导致ip配置冲突,怎样知道网络有没有IP配置与他配置为一样的主机?这个时候就可以用免费arp
2、如果一台电脑的mac地址改变,这个时候也可以发送免费arp通知其他主机他真实的mac地址
来看一下免费arp与之前的arp报文有什么区别与联系。
图4-5arp请求与免费arp联系与区别
图4-6arp代理组网
大家看到这个组网,hosta在以太网a里面,host x在以太网b里面,
以太网a属于192.168.1.0网段,以太网b属于192.168.2.0网段,
这个时候hosta想知道hostx的mc地址,
图4-7arp请求
发送这样的arp请求,这个时候只能在以太网a传播,因为到了路由器,他不会传送到以太网b里面,路由器启动arp代理就会给应答,把对应port a的mac地址回答给host a
来看一下hosta 的arp请求hostx的具体数据报文
图4-8arp请求与arp代理应答
在hosta拿到mac地址之后,传送的报文就可以传到路由器,然后路由器识别数据包的目的mac在进行转发数据包了
有问题可以留言,多谢