ARP协议

传输数据时为什么同时需要MAX地址和IP地址

在数据传输时,并不是直接从起始地址直接传到目标地址,这中间有很多中转站(交换机、路由器等)。每到达一个中转站,MAX帧中的源MAX地址改为当前设备(中转站)的MAX地址,目标MAX地址改为下一个设备(中转站或目的地)的MAX地址,而IP地址保持不变。

从主机A到主机B的通信过程:

结论:MAX地址决定数据下一次会发送到哪个中转站,IP地址决定最终目的地。

ARP协议(地址解析协议)的工作方式

当我们知道通讯目标的IP地址时,如何请求到对方的MAX地址呢?以广播的形式向网内所有主机讯问xxx.xxx.xxx.xxx IP的MAX地址是多少(ARP请求),其他主机收到请求后查看自己的IP是否是对方请求的IP,若IP相同则应答自己的MAX地址(ARP应答),若不相同则丢包。但是请求和应答并不是对应的,当有多个应答时,后到的应答会覆盖先到的应答

每台主机都维护一个ARP缓存表,可以用arp -a命令查看,arp -s指定静态地址,arp -d删除静态地址。

这种方式不够安全,其他主机可以通过ARP欺骗截获目标主机的信息。

例如:路由器广播192.168.0.11的MAX地址是多少时,目标主机A回复M1。此时,有其他主机B回应M2,路由器会将M1删除,设置目标MAX地址为M2。之后路由器会将所有流向A主机的数据流向主机B。B主机收到数据后,再将数据转发到主角A,防止主机A察觉。

P2P终结者、网络执法官都是通过ARP欺骗实现。ARP防火墙通过将第一个MAX地址记录并锁死,拒绝后续的MAX地址,并提示ARP欺骗,来起到防御的作用。

关于ARP欺骗详细操作请参考:https://blog.csdn.net/shanzhizi/article/details/9995391

ARP数据报格式

以太网首部:

字段                   长度(Byte)          默认值                 备注
接收方MAC       6                                                    广播时,为 ff-ff-ff-ff-ff-ff
发送方MAC       6        
Ethertype           2                                                   0x0806       0x0806是ARP帧的类型值

ARP包:

字段                     长度(Byte)         默认值              备注
硬件类型              2                       0x1             以太网类型值
上层协议类型       2                       0x0800          上层协议为IP协议
MAC地址长度      1                       0x6             以太网MAC地址长度为 6
IP地址长度          1                       0x4             IP地址长度为 4
操作码                 2                                        0x1表示ARP请求包,0x2表示应答包
发送方MAC          6        
发送方IP              4        
接收方MAC          6        
接收方IP              4        
填充数据              18                            因为物理帧最小长度为64字节,前面的42字节再加上4个CRC校验字节,还差18个字节

此段来自:https://blog.csdn.net/shanzhizi/article/details/9995489

RARP协议(逆向ARP)

知道MAX地址,通过广播请求自己的IP地址。

  1. 给主机发送一个本地的RARP广播,在此广播包中,声明自己的MAX地址并且请求任何收到此请求的RARP服务器分配一个IP地址;
  2. 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;
  3. 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;如果不存在,RARP服务器对此不做任何的响应;
  4. 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值