ARP协议详解(2)--为什么ARP不可路由

时间:2024-05-20 17:00:15

上一节最后留了一个问题没有说明,就是关于ping不同网段的主机

这里涉及到了ARP本身的属性
我们都天天说,ARP是内网,不可路由,那么这个到底是什么意思呢?

我们来看看ARP包的内容吧
ARP协议详解(2)--为什么ARP不可路由Hardware:Ethernet,以太网,一种计算机局域网技术
其实通过这个就可以看出来,ARP只限于局域网也就是内网内,他无法路由
protocol:接口类型,0x0800表明这是IP协议
硬件地址长度:也就是我们的6位MAC地址
协议地址长度,就是我们4位IP地址
操作数:分为1,2,1是请求包,2是回复包
发送的硬件地址
发送的IP
目标硬件地址
目标IP

ARP协议本身就只是起到一个内网(局域网)寻址的作用,他解决的就是内网IP->MAC地址的对应问题,知道我们从外网或者内网产生的数据包到底要发送给谁),而一旦流入外网之后,如何寻址,那就是IP起到作用了
于是我们可以这样理解,一旦进入内网之后,起决定性作用的就是MAC地址,而一旦出了网关,决定性作用的就是IP

所以ARP被封装二层里面,保证了每个要出网关或者出了网关的数据包可以出的去,回得来
先看一个出战的数据包
ARP协议详解(2)--为什么ARP不可路由
在以太网类型里面,目标就是我们的网关MAC地址,来源就是我们的发送者,保证了我们出网的每一个请求可以正常发送到网关, 而在之后的IP()/ICMP()里面保留着我们原始的通讯内容,(就不涉及网关了),可以理解为一个基础的封装
那么我们的网关收到了这个数据包是怎么处理的呢?

由于网关自动开启了数据包转发的功能,这也是确保我们正常上网的第一步,由于二层ARP地址的保证,我们这次上网请求正确发送给了网关,网关一看这个数据包,欧,原来是一个要去另一个网段(也可以理解为出战)的数据包,他于是把这个数据包再转发给他可能的上一级或者是目标,而不是自己保留着(闷声发大财)

再来一个回站的数据包
ARP协议详解(2)--为什么ARP不可路由
目标MAC就是我们的发送者,源MAC就是我们敬业的网关
,后面就封装了一个正常的IP()/TCP()的请求
这个包也是网关转发的,不过网关转发的那个包跟这个包不是一个包…(我也不是网关,也不知道网关具体收了个什么包)不过确定的是网关在原来那个请求包上封装了ARP的内容,(外网机器才不会参合ARP)