ARP协议和路由器工作原理

简介: ARP协议和路由器工作原理

网络设备想要发送数据到另一台设备是,不仅要知道对方设备的IP地址,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送数据的那一台设备必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP协议来实现的。


85e1e8a421ac4c668a5752d00f208b49.png

数据的封装过程


PC1首先在应用层产生数据 data;


然后传输层在应用层的基础上封装TCP/UDP协议,产生数据段;


网络层在传输层的基础上封装IP 地址(源IP地址 192.168.1.1 和目的IP地址 192.168.2.1 | TCP | data);


数据链路层在网络层的基础上封装MAC地址(即:源MAC地址 AA 目的MAC地址 BB | 源IP地址 192.168.1.1 目的IP地址 192.168.2.1 | TCP | data);


物理层:将PDU()转换成比特流(bit)。


网络层中封装的封装的的源IP地址和数据链路层中的MAC并不是完全对应的关系,为避免记混,可以认为目的IP地址是数据最终要到达的地方的IP地址;目的MAC地址是下一站要到达的地方的MAC地址。


路由器的工作原理


PC1传来的数据到达路由器:


1:路由器会先查看自己的缓存表中是否存在PC1的相关信息;再对数据帧中的目的MAC地址进行解析,判断是否是本接口的MAC地址,如果不是就直接丢弃;如果是就进行解封装。


2:路由器查看数据中的目的IP地址,查看该IP地址是否和路由表中的信息相匹配,如果不匹配,就直接丢弃然后返回ICMP错误信息;如果匹配成功,就将数据路由到相对应的路由器的接口,再进行对帧头帧尾的封装。


3:检查ARP缓存表中是否存在下一跳的MAC地址,如果有就重新封装再进行转发;如果没有,就发送ARP请求广播报文请求获取下一跳的MAC地址,并记录到ARP缓存表中, 再重新封装数据帧发送出去。


ARP请求和响应:


ARP请求报文 (request)


PC1不知道PC2的MAC地址,因此要发送ARP广播请求报文。在数据链路层中产生ARP请求报文:


请求包中:


源MAC地址:AA      目的MAC地址:FF-FF-FF-FF-FF-FF(广播MAC地址,是为了让对方知道可以进行ARP请求在整个网络上传播,该网络所有的主机都能收到这个报文,网关将会阻止该报文发送到其他网络上。);


ARP协议中:源IP地址:192.168.1.1            目的IP地址:192.168.1.254(路由器的网关)  


                 源MAC地址 AA     目的MAC地址 00-00-00-00-00-00


ARP响应报文 (replay)


路由器收到PC1发送的请求报文后,检查到请求报文中的MAC地址和自身的地址相匹配,路由器会将ARP报文中的源MAC地址和源IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。ARP Reply报文通过单播传送。


ARP协议中:源MAC地址BB              目的MAC地址 AA


          源IP地址 192.168.1.254    目的IP地址 192.168.1.1


ARP代理


广播报文无法被路由器转发,那么目的主机就收不到发送数据的主机的ARP request报文,那目的主机也就无法应答,就需要在路由器上启用代理ARP功能。用ARP代理后,路由器收到这样的请求,会查找路由表,如果路由表中存在目的主机的路由表,路由器将会使用自己与发送数据主机的那个接口的MAC地址来回应这一ARP request。主机A收到ARP reply后,将以路由器跟发送数据的主机的那个接口的MAC地址作为目的MAC地址进行数据转发。则不同网络的网络设备在没有配置网关的情况下,也能够通过ARP代理实现相互通信。

相关文章
|
14天前
|
存储 缓存 网络协议
|
2月前
|
网络协议 Linux Android开发
计算机网络:MAC地址 & IP地址 & ARP协议
计算机网络:MAC地址 & IP地址 & ARP协议
56 7
|
24天前
|
存储 缓存 网络协议
ARP欺骗与攻击原理
ARP欺骗与攻击原理
27 0
|
2月前
|
网络协议 Linux 网络架构
arp协议 与网关
arp协议 与网关
|
2月前
|
存储 缓存 运维
基于 Wireshark 分析 ARP 协议
基于 Wireshark 分析 ARP 协议
|
2月前
|
存储 缓存 网络协议
CCNA 200-301系列:地址解析协议(ARP)
【4月更文挑战第21天】
29 0
|
2月前
|
缓存 网络协议 安全
【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
【1月更文挑战第27天】【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
|
2月前
|
存储 缓存 网络协议
dpdk课程学习之练习笔记二(arp, udp协议api测试)
dpdk课程学习之练习笔记二(arp, udp协议api测试)
96 0
|
2月前
|
缓存 网络协议 网络架构
【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)
【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)
43 1
|
2月前
|
存储 缓存 网络协议
ARP协议:地址解析协议
ARP协议:地址解析协议
65 0