计算机网络基础(四)---网络层-ARP协议与RARP协议

栏目: IT技术 · 发布时间: 5年前

内容简介:文章内容概览还是看在上一篇文章中提到的这张图,计算机A将数据跨设备传输给C。A发出目的地为C的IP数据报,查询路由表发现下一跳为E,A将IP数据报交给数据链路层,

文章内容概览

计算机网络基础(四)---网络层-ARP协议与RARP协议

还是看在上一篇文章中提到的这张图,计算机A将数据跨设备传输给C。A发出目的地为C的IP数据报,查询路由表发现下一跳为E,A将IP数据报交给数据链路层, 并告知目的MAC地址是E 。那么A是如何知道E的MAC地址的?这个是本文要介绍的

计算机网络基础(四)---网络层-ARP协议与RARP协议

ARP协议

ARP(Address Resolution Protocol)地址解析协议

作用:把网络层32位的IP转换成数据链路层48位的MAC地址,在这个过程中有一个很重要的表, ARP缓存表

该表的形式如下,也是一个映射:

计算机网络基础(四)---网络层-ARP协议与RARP协议

对于ARP缓存表的使用,有两种情况

  • ARP缓存表中 缓存IP地址和MAC地址的映射关系
  • ARP缓存表中 没有 缓存IP地址和MAC地址的映射关系

如果有缓存的情况,就像上篇文章中介绍的步骤一样,A可以 直接告诉 数据链路层,E的MAC地址。A会查询ARP缓存表,查看E的MAC地址是什么,然后告知数据链路层。

如果没有缓存的情况,ARP会 广播某一个IP的信息 ,收到这个广播的设备会回应一个包,表示我是不是这个IP地址。如果是,广播该IP地址的设备会记录对应设备的MAC地址

  • ARP缓存表是ARP协议和RARP协议运行的关键
  • ARP缓存表缓存了 IP地址到硬件地址之间的映射关系 (在网络层进行数据转发的时候,需要数据链路层和物理层,因此网络层在进行数据发送的时候,首先需要通过ARP协议,把IP地址转化为MAC地址,然后告诉数据链路层,这时,数据链路层才能进行数据帧的传输)
  • ARP缓存表中的记录并 不是永久有效的 ,有一定的期限(因为MAC地址是永久不变的,但是IP地址是会变化的)

可以使用 arp -a 这个命令来查看路由表中的内容

ARP协议的报文信息

ARP协议的报文信息是 直接封装到数据链路层的数据帧中

计算机网络基础(四)---网络层-ARP协议与RARP协议

最上边为数据链路层的数据帧格式,中间是ARP协议的报文信息,PAD是填充的内容

可能这里会有一个疑问,既然ARP协议是直接封装在数据链路层的数据帧中的,那 为什么ARP协议是属于网络层 ?主要是因为ARP协议使用到了 IP地址 ,所以它属于网络层的内容。所以ARP协议是数据链路层和网络层配合使用的一个协议

RARP协议

  • RARP (Reverse Address Resolution Protocol)逆地址解析协议
  • 就是和ARP协议做相反的工作,它是将48位的MAC地址转换为32位的IP地址

它的内容是和ARP协议非常类似的

计算机网络基础(四)---网络层-ARP协议与RARP协议

了解了ARP协议和RARP协议之后,就应该知道,在计算机A进行跨设备传输数据时,A并不是直接告诉数据链路层,目的MAC是E的,而是先查自身的缓存表之后,才知道的目的MAC地址的

在快速变化的技术中寻找不变,才是一个技术人的核心竞争力。知行合一,理论结合实践

计算机网络基础(四)---网络层-ARP协议与RARP协议

微信扫码关注站长公众号,和站长交流学习

计算机网络基础(四)---网络层-ARP协议与RARP协议

以上所述就是小编给大家介绍的《计算机网络基础(四)---网络层-ARP协议与RARP协议》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head First Python

Head First Python

Paul Barry / O'Reilly Media / 2010-11-30 / USD 49.99

Are you keen to add Python to your programming skills? Learn quickly and have some fun at the same time with Head First Python. This book takes you beyond typical how-to manuals with engaging images, ......一起来看看 《Head First Python》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具