ARP 协议工作原理(同网段及跨网段)

Posted 喜欢爱哭鬼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARP 协议工作原理(同网段及跨网段)相关的知识,希望对你有一定的参考价值。

目录

一、ARP简介

二、ARP的工作原理

三、ARP协议在同网段工作原理

 四、ARP协议在不同网段工作原理


一、ARP简介

ARP全称是“Address Resolution Protocol”(地址解析协议),ARP作用于以太网的环境之中,以太网环境之中数据的传输依赖的是MAC地址并不是我们所熟悉的IP地址,每个电脑都有一个IP地址记以及一个MAC地址(全球唯一),二者缺一不可,将我们所知道熟悉的IP地址转换为MAC地址就是ARO协议的工作

二、ARP的工作原理

 1.Host1发送数据前设备会先查找自己的ARP缓存表,如果有直接封装到帧里进行发送,如ARP缓存表没有对应IP地址的MAC信息,则会通过ARP进行获取

2.Host1会发送ARP Request报文来请求获取Host2的MAC地址(因为帧内没有目的MAC地址是不可以进行传输的,所以ARP报文内的目的MAC地址为全F)

3.因为ARP Request目的MAC地址为 FF-FF-FF-FF-FF-FF(广播数据帧),所以交换机收到后会直接对该帧进行泛洪(广播)操作,并且学习该IP的MAC地址以及端口号到交换机自己的MAC缓存表

4.所有主机都接受到该ARP Request报文后,都会检查该帧的目的IP地址与自身的IP地址是否匹配,不匹配就直接丢弃,Host发现与自己IP地址匹配,就会先把发送端的IP与MAC地址信息记录到自己的ARP缓存表之中,然后Host2就会发送ARP Reply报文(因为刚才进行了学习所以知道Host1的MAC地址,所以ARP Reply是单播数据帧)来进行响应

5.交换机收到单播数据帧以后,会对该帧进行转发操作,并且学习Host2的MAC地址和端口号到自己的MAC缓存表

6.Host1收到Host2的ARP Reply报文后会检查目的IP与自己IP地址字段是否相同,如果匹配就将回应报文的源IP地址与MAC地址学习到自己的ARP缓存表之中,然后就可以传输信息进行通信

总结

-----Host1查找自身缓存表

-----发送广播ARP Request报文

-----交换机对该广播帧直接执行泛洪操作并且进行学习

-----Host2查询到是在问询自己,先进行学习再进行回复

-----交换机进行转发该单播数据帧,并且学习MAC地址信息和端口号

-----Host1收到回复后进行学习到ARP缓存表中

三、ARP协议在同网段工作原理

 在同网段也就是在同一个局域网之中同一个广播域之中,以下统称为局域网,在局域网中,网络传输的实际是“帧”,帧里面有很重要的两个构成是源MAC地址与目的MAC地址,所以两台PC间想要通信就必须获取目的PC的MAC地址,但是我们一般都只是知道目的PC的IP地址(简单好记嘛),如何通过IP地址找到对应的MAC地址呢,这时候就是发挥ARP(地址解析协议)作用的时候,ARP协议可以通过目标设备的IP地址查询目标设备的MAC地址,然后对数据进行转发,以保证通信的顺利进行

-----Host1查找自身缓存表如没有发送广播ARP Request报文

-----交换机对该广播帧直接执行泛洪操作并且进行学习

-----Host2查询到是在问询自己,先进行学习再进行回复

-----交换机进行转发该单播数据帧,并且学习MAC地址信息和端口号

-----Host1收到回复后进行学习到ARP缓存表中

-----Host1将Host2的MAC地址封装到目的MAC地址,然后进行传输信息

-----交换机收到该单播信息帧后,将该帧解封装到第二层数据链路层(交换机是二层设备)获取目的MAC地址,在查询自身MAC缓存表进行转发操作

-----Host2收到该帧后进行解封装获取信息内容

 四、ARP协议在不同网段工作原理

目标:pc1(192.168.1.1)向pc3(192.168.2.1)跨网段通信,以下统称pc1为主机1  pc2为主机3

-----1. 主机1数据封装IP后继续向下封装,但是发现没有主机2的MAC地址,于是查询ARP,ARP缓存表里没有该IP的MAC地址信息,但是发现主机2IP不是本网段IP需要跨网段传输(跨网段传输借助IP),跨网段相当于要出本局域网的这个大门,所以需要找网关,查询ARP表,发现没有网关MAC地址信息

-----2.主机1先把要发送的信息放入缓存中,然后在本局域网内发送ARP Request报文请求网关的MAC地址

-----3.LSW1对该帧源mac和接口信息进行学习,然后对该广播报文进行泛洪操作

-----4.AR1收到广播数据包后,先将主机1的MAC信息学习到自己的MAC地址表中,然后对比该报文的目的IP是否为自己,AR1发现请求的正是自己的MAC地址,于是AR1回复一个ARP Reply报文(封装自己的IP地址为源IP地址,自己的MAC地址为源MAC地址),内容大概是“我是网关,我的MAC地址是xxxxxxxxxxxxxxxxxx”

-----5.LSW1进行学习网关MAC与端口信息,并进行转发

-----6.主机1收到AR1的回复报文后,将缓存的数据拿出,目的IP为主机3IP目的MAC为本网段网关的MAC地址(跨网段通信,目的MAC地址统一写本网段内网关的MAC地址,意思是帧交给网关就完事了,由网关进行下一步转发,就没主机的事了,目的MAC写网关即可),重新封装好后进行重新发送

-----7.在同网段内靠MAC地址进行传输,所以AR会收到这个数据包,但是AR发现这个数据包的目的IP地址并不是自己,所以就需要进行路由(查询一条前往的道路),从路由表查找通向192.168.2.0网段192.168.2.1的地址,AR准备从对应的网关(接口)进行发送,然乎查询MAC地址表,如果有就进行转发,没有的话就发送ARP Request报文进行问询主机3的地址

-----8.LSW2学习MAC地址和端口信息并泛洪该广播报文

-----9.主机3学习核对并回复一个ARP Reply报文

-----10.LSW2学习并转发该单播回复报文

-----11.AR收到回复后i,先学习然后将该数据包源IP与源MAC地址信息封装成AR自己的,目的IP以及目的MAC地址信息封装为主机3的相关信息,加上FCS,封装好后进行发送

-----12.LSW2查询并转发

-----13,主机3收到数据包进行解封装,看到数据载荷,发送过程完成

-----14,主机3收到信息后进行回复,不在同网段就回复给本网段网关,通过LSW2转发给AR1(不需要学习,MAC地址表有一定有效时间)

-----15,网关(AR)收到回复后将数据包里的目的MAC换成主机1的MAC,再通过LSW1转发到主机1的手中

注:有发送有回复,才是一个完整的传输过程,二者缺一不可

注意:

1.同网段通过MAC地址进行通信,跨网段(上网)通过IP地址进行通信

2.跨网段的转发过程是局域网传输(MAC)---路由(IP地址)---局域网传输(MAC)

3.跨网段传输目的MAC地址写网关的MAC地址,网关接收后将数据包中自己的MAC换成数据包里真正对应的MAC地址

4.ARP请求以广播发送,ARP Reply报文是单播回复的方式

5.路由器隔绝广播域,交换机隔绝冲突域

本文借鉴于(只是借鉴思想,文字全部手敲,不存在Ctrl+c/v)ARP协议在同网段及跨网段下的工作原理_SoldierJazz的专栏-CSDN博客_arp跨网段请求的过程

以上是关于ARP 协议工作原理(同网段及跨网段)的主要内容,如果未能解决你的问题,请参考以下文章

VS_TUN和VS_DR的arp问题

LVS负载均衡:VS_TUN和VS_DR的arp问题

网络协议

同网段和不同网段设备通信原理详解

主动信息收集

ARP地址解析详细流程