ARP协议

部署运行你感兴趣的模型镜像

目录

一 报头格式

二 ARP具体过程

三 ARP欺骗


一 报头格式

1. ARP作用

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

2. 报头字段

硬件类型(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表示广播,给处于同一个子网的所有主机发送数据包。

2. 当除了主机E(目的主机IP)的主机收到数据包,首先MAC桢解包分用,看到目的mac地址为全FFFFF,不知道是不是是自己的mac地址,所以不丢弃,再看桢类型,0806表示向上交给ARP协议,然后得到ARP报头,首先看ARP:op字段,发现为ARP请求,则比对目的IP地址和自己IP地址不一样,则丢弃(ARP层丢弃)。

3. 当主机E收到数据包,和上述步骤一样,发现目的IP地址和自己IP地址一样,则重新构建ARP应答,并填充字段:

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

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

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

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

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

8. 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和路由器之间通信的数据包。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值