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代理实现相互通信。

相关文章
|
20天前
|
网络协议 安全 NoSQL
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
|
1月前
|
缓存 网络协议 Linux
Python渗透测试之ARP毒化和协议应用
Python渗透测试之ARP毒化和协议应用
|
3月前
|
网络协议 网络架构
看完,保你秒懂“ARP中间人攻击”原理
看完,保你秒懂“ARP中间人攻击”原理
|
3月前
|
网络协议 安全 网络安全
ARP协议详解及其工作原理
【8月更文挑战第31天】
115 0
|
3月前
|
存储 缓存 监控
|
3月前
|
网络协议 网络架构
动图 | 6张图让你秒懂“ARP中间人攻击”原理,堪称史诗级解释!
动图 | 6张图让你秒懂“ARP中间人攻击”原理,堪称史诗级解释!
143 0
|
6月前
|
缓存 网络协议 网络架构
【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)
【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)
130 1
|
3月前
|
网络协议
用户态协议栈04-定时arp-table的实现
用户态协议栈04-定时arp-table的实现
|
3月前
|
缓存 网络协议
用户态协议栈02-arp reply实现
用户态协议栈02-arp reply实现
|
3月前
|
存储 缓存 网络协议
MAC协议原理与ARP协议
总结一下,MAC协议是控制同一网络媒介上多个设备的数据访问的规范,而ARP是解决局域网络中的IP地址到MAC地址的转换问题,以确保IP包能在本地网络上传输到正确的设备。尽管这两种协议服务于网络通信中的不同层面,但它们都是网络正常操作的基本要素,保证了数据能从一个设备准确无误地传递到另一个设备。
45 0