ARP协议

目录

[一 报头格式](#一 报头格式)

[二 ARP具体过程](#二 ARP具体过程)

[三 ARP欺骗](#三 ARP欺骗)


一 报头格式

  1. ARP作用

ARP协议工作在数据链路层,与MAC桢属于同层关系,网络传输自顶向下封报头,自底向上解包分用,而MAC地址每经过一个节点都会动态变化,所以每次向其他同一个子网的主机通信,必须知道目的主机的MAC地址封装MAC桢向下交付,到目的主机解包分用,所以ARP就是用来通过IP地址来获取MAC地址的。

  1. 报头字段

硬件类型(2字节):同一个子网的网络类型,如以太网,令牌环网等

协议类型(2字节):表示如IPv4,IPv6等类型转换成MAC地址

硬件地址长度:和前面硬件类型强相关,如以太网地址长度

协议地址长度:和前面协议类型强相关,如IPv4地址长度

op:表示为ARP请求还是ARP应答


前4个字段为固定字段


发送端以太网地址:发送端的MAC地址

发送端IP地址:发送端的IP地址

目的以太网地址:如果不知道,默认全FFFFFF/全0,表示缺省广播

目的IP地址:接收方IP地址

二 ARP具体过程

5个字段填充:

前5个字段为固定字段,填充源ip,mac地址,目的ip地址,目的mac地址缺省广播

ARP请求构建完成,向下封装MAC桢

这里默认收到mac桢进行解包,并且ARP前5个字段忽略不写,后面会用到。

当路由器准备封mac桢时,不知道目的主机的mac地址,则需要进行ARP请求获得mac地址,不仅是外网转发进来的时候,同一个局域网内通信/向外网通信某台主机也可能发起ARP请求/收到ARP应答,由op字段决定。

  1. MAC桢目的mac地址填的FFFFFFFFF表示广播,给处于同一个子网的所有主机发送数据包。
  1. 当除了主机E(目的主机IP)的主机收到数据包,首先MAC桢解包分用,看到目的mac地址为全FFFFF,不知道是不是是自己的mac地址,所以不丢弃,再看桢类型,0806表示向上交给ARP协议,然后得到ARP报头,首先看ARP:op字段,发现为ARP请求,则比对目的IP地址和自己IP地址不一样,则丢弃(ARP层丢弃)。
  1. 当主机E收到数据包,和上述步骤一样,发现目的IP地址和自己IP地址一样,则重新构建ARP应答,并填充字段:

构建完应答,在继续封装mac桢,mac桢就不再目的mac地址就不再填FFFFF,而是(1.1.1.1)macR。

  1. 和 " 2 " 进行同样的步骤,解包之后,看到目的mac地址不是广播地址,又不和自己主机mac地址一样,丢弃(mac桢层丢弃)。

  2. 当路由器收到数据包,解包之后发现和自己mac地址一样,发现桢类型为0806,交给上层ARP,拿到ARP报头,先看op字段,因为不知道是别人构建的应答还是请求,这次是应答,首先看目的mac地址和目的IP地址和路由器的mac地址和IP地址一样,确定报文是发给路由器,然后得到源macE的地址,自此通过ARP请求根据目的IP地址得到目的主机的mac地址,后续重新封装mac桢填入目的主机mac地址发送数据包。

  3. 当路由器拿到目的主机的MAC地址,除了发送数据包,还会在一定时间内缓存 "MAC地址>IP地址" 的映射,避免下次收到的数据包,发送重复的主机,从而重新构建ARP请求的开销。

  4. 通过 arp -a 命令查看ARP映射表

  1. RARP

ARP是通过IP地址转换成mac地址

RARP是通过mac地址转换成IP地址,知道了mac地址,在数据链路层->mac桢拿到就能直接识别是不是该主机的mac地址,在交付给RARP构建应答响应回去,所以就可以直接封装mac桢指定mac地址而不用进行广播了,和上述ARP演示几乎一模一样。

三 ARP欺骗

所谓的ARP欺骗,就是中间人通过某种手段拿到数据包并且双方通信的主机是感知不到的。

下面看看具体流程:

假设主机A和路由器已经通信过了,并且已经缓存对方的mac地址。

这时候来了个中间人M,并向主机A发送ARP应答,携带路由器的IP地址和主机M的mac地址,主机A查映射表,就会以为路由器更新过了mac,直接重新映射成 " IPR -> macM ",同样的发送大量的ARP应答给路由器,也会影响他的映射表。

后续主机A发送数据包给路由器,根据封装的mac桢,并且mac地址填的是主机M的,因为映射表已经变了,所以只有主机M能处理,然后向路由器发送数据包,如果不知道路由器的mac地址,重新ARP请求即可,因此主机M就能获取主机A和路由器之间通信的数据包。

相关推荐
firshman_start38 分钟前
第十六章,网络型攻击防范技术
网络
楠目2 小时前
OSPF综合性实验
网络
寒..2 小时前
OSPF综合实验
网络·智能路由器
猎人everest2 小时前
SPN技术介绍
网络·信息与通信
老六ip加速器2 小时前
在另一个省发布抖音作品,IP属地会随之变化吗?
网络·网络协议·tcp/ip
music&movie2 小时前
手写系列——transformer网络完成加法和字符转译任务
网络·人工智能·transformer
筏.k2 小时前
C++ asio网络编程(4)异步读写操作及注意事项
服务器·网络·c++
wanhengidc3 小时前
在线服务器具体是指什么?
运维·服务器·网络
small_white_robot3 小时前
OSCP备战-kioptrixvm3详细解法
网络·安全·web安全