ARP协议工作原理

1.同一网段
首先,每台主机会在自己的ARP高速缓存区中建立一个ARP列表,以表示IP与MAC地址的映射。当源主机有数据报要发送到目标主机时,首先会在ARP中搜索对应的MAC地址。如果有则直接将数据报发送到对应MAC地址,如果没有则向本地网段广播一个ARP请求,内容包括源ip,源mac,目标ip。本地网段中的主机收到ARP请求后,对比自己的ip,不同则忽略这条请求。相同则将ARP请求的源ip与源mac写入自己的ARP列表中,若已存在,则进行覆盖,然后单播ARP相应数据报给源主机,内容是回应ARP请求的mac地址。源主机收到后将ip与mac映射写入自己的ARP列表中,并利用此信息进行数据传送。
2.不同网段
在查找ARP列表时,发现目标主机与源主机位于不同网段,需要使用默认网关进行转发。ARP发现默认网关,但是没有网关mac地址,需要先进行查询。主机将数据包先放到缓存中,然后发送ARP查询报文:封装自己的mac地址为源mac,目标mac地址写全F的广播地址,请求网关的mac地址。然后以广播方式发送出去。路由器收到广播数据包,首先将源mac添加到自己的mac地址表中。路由发现是请求自己的mac地址,然后路由回复一个ARP应答:封装自己的IP地址为源IP自己的mac地址为源mac,主机A的IP为目的IP主机A的mac为目的mac,发送一个单播应答。主机收到应答后,将网关mac地址对应目标主机ip(跨网关通信,其他网段IP地址的mac地址均为网关mac),然后将缓存中的数据包,封装网关mac地址进行发送;路由收到数据包,检查目的IP地址,发现不是给自己的,决定要进行路由,然后查询路由表,需要发往目标主机网段。路由准备从相应接口上发出去,然后查询mac地址表,发现没有主机B的映射。路由器发送arp请求查询主机B的mac地址(原理同上,主机B收到请求后首先会添加网关的mac地址,然后单播回复arp请求)。路由器收到主机B的mac地址后,将其添加到路由mac地址表中,然后将缓存中的数据2层帧头去掉,封装自己的mac地址为源mac,主机B的mac地址为目的mac(源和目的IP地址不变),加上二层帧头及校验,发送给主机B。主机B收到数据之后,进行处理,发送过程结束。如果主机B收到数据后进行回复,主机B会进行地址判断,不在同一网段,然后决定将数据发送给网关,主机B查询mac地址表获得网关mac地址,将数据封装后发送(arp地址解析的过程不再需要了,mac地址表条目有一定的有效时间),网关收到数据后直接查询mac表,将二层帧mac地址更改为A的mac发送出去。如此,主机A收到主机B的回复。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值