路由器 <二>
二、连接网络层与数据链路层
网络层下面是数据链路层,为了它们可以互通,需要“粘合”协议。ARP(地址解析协议)用于把网络层(3层)地址映射到数据链路层(2层)地址,RARP(反向地址解析协议)则反之。
虽然ARP的定义与网络层协议无关,但它通常用于解析IP地址;最常见的数据链路层是以太网。因此下面的ARP和RARP的例子基于IP和以太网,但要注重这些概念对其他协议也是一样的。
1、地址解析协议
网络层地址是由网络治理员定义的抽象映射,它不去关心下层是哪种数据链路层协议。然而,网络接口只能根据2层地址来互相通信,2层地址通过ARP从3层地址得到。
并不是发送每个数据包都需要进行ARP请求,回应被缓存在本地的ARP表中,这样就减少了网络中的ARP包。ARP的维护比较轻易,是一个比较简单的协议。
2、简介
假如接口A想给接口B发送数据,并且A只知道B的IP地址,它必须首先查找B的物理地址,它发送一个含有B的IP地址的ARP广播请求B的物理地址,接口B收到该广播后,向A回应其物理地址。
注重,虽然所有接口都收到了信息,但只有B回应该请求,这保证了回应的正确且避免了过期的信息。要注重的是,当A和B不在同一网段时,A只向下一跳的路由器发送ARP请求,而不是直接向B发送。
下图为接收到ARP分组后的处理,注重发送者的<IP address, hardware address>对被存到接收ARP请求的主机的本地ARP表中,一般A想与B通信时,B可能也需要与A通信