内容简介:文章内容概览还是看在上一篇文章中提到的这张图,计算机A将数据跨设备传输给C。A发出目的地为C的IP数据报,查询路由表发现下一跳为E,A将IP数据报交给数据链路层,
文章内容概览
还是看在上一篇文章中提到的这张图,计算机A将数据跨设备传输给C。A发出目的地为C的IP数据报,查询路由表发现下一跳为E,A将IP数据报交给数据链路层, 并告知目的MAC地址是E 。那么A是如何知道E的MAC地址的?这个是本文要介绍的
ARP协议
ARP(Address Resolution Protocol)地址解析协议
作用:把网络层32位的IP转换成数据链路层48位的MAC地址,在这个过程中有一个很重要的表, ARP缓存表
该表的形式如下,也是一个映射:
对于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协议的报文信息,PAD是填充的内容
可能这里会有一个疑问,既然ARP协议是直接封装在数据链路层的数据帧中的,那 为什么ARP协议是属于网络层 ?主要是因为ARP协议使用到了 IP地址 ,所以它属于网络层的内容。所以ARP协议是数据链路层和网络层配合使用的一个协议
RARP协议
- RARP (Reverse Address Resolution Protocol)逆地址解析协议
- 就是和ARP协议做相反的工作,它是将48位的MAC地址转换为32位的IP地址
它的内容是和ARP协议非常类似的
了解了ARP协议和RARP协议之后,就应该知道,在计算机A进行跨设备传输数据时,A并不是直接告诉数据链路层,目的MAC是E的,而是先查自身的缓存表之后,才知道的目的MAC地址的
在快速变化的技术中寻找不变,才是一个技术人的核心竞争力。知行合一,理论结合实践
微信扫码关注站长公众号,和站长交流学习
以上所述就是小编给大家介绍的《计算机网络基础(四)---网络层-ARP协议与RARP协议》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C Primer Plus(第6版)中文版
普拉达 (Stephen Prata) / 姜佑 / 人民邮电出版社 / 2016-4-1 / CNY 89.00
《C Primer Plus(第6版)中文版》详细讲解了C语言的基本概念和编程技巧。 《C Primer Plus(第6版)中文版》共17章。第1、2章介绍了C语言编程的预备知识。第3~15章详细讲解了C语言的相关知识,包括数据类型、格式化输入/输出、运算符、表达式、语句、循环、字符输入和输出、函数、数组和指针、字符和字符串函数、内存管理、文件输入输出、结构、位操作等。第16章、17章介绍C......一起来看看 《C Primer Plus(第6版)中文版》 这本书的介绍吧!