TCP/IP协议之ARP与RARP

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/freestyle4568/article/details/50609267

链路层中工作的协议有两个非常重要:ARP协议与RARP协议。

一般我们不会与这个两个协议打交道,毕竟工作在链路层,但是了解这两个协议是十分必要的。

ARP协议称为地址解析协议。地址是指哪个地址?是ip地址,解析成什么?解析成mac地址。设想路由器收到一份数据报,要将该数据报转发给另一个路由,那么具体怎么转发呢?先要将路由表中要转发的路由ip拿出来,将它解析成mac地址,然后将数据报封装成以太网桢才行,传送到另一个路由中。如何解析就是arp做的事情了。

ARP协议的过程:

1.主机发送一份称为ARP请求的以太网桢给以太网上的每个主机(广播方式)。

2.目的主机收到arp请求后识别出这是发送端在寻问它的IP地址,于是发送一个arp应答。这个arp应答包含ip地址及对应的硬件地址。

3.主机收到应答以后得知目的主机的mac地址,然后发送ip数据报到目的主机。

ARP数据报的格式:















注意arp协议是工作在链路层的哦!!!

要发送ip数据报,必须知道发送目的主机(不是最终的目的主机)的mac地址才能发送,这样会不会很麻烦?是不是需要我们每次发送前都要进行arp请求呢!答案是不需要的。ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存。这个高速缓存中存放了最近ip地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为20分钟,起始时间从被创建时开始算起。

我们可以用arp命令来查看一下本机的arp高速缓存中的内容:












没有响应的ip地址为incomplete标记mac地址部分。

可以看到目前路由的mac地址。


RARP为逆地址解析协议,即将mac地址解析为ip地址。这个协议的实现过程要比arp协议复杂困难很多。

rarp协议是许多无盘系统在引导时用来获取ip地址的。rarp分组格式基本上与arp分组一致。一个rarp请求在网络上进行广播,它在分组中标明发送端的硬件地址,以请求相应的ip地址的响应。应答通常是单播传送。


猜你喜欢

转载自blog.csdn.net/freestyle4568/article/details/50609267