xiuweikang的专栏

ARP:地址解析协议和RARP:逆地址解析协议:

ARP:

在链路层封装的首部存在目的硬件地址,但是我们只知道IP地址,,而以太网驱动程序需要知道目的端的硬件地址才能发送数据,而ARP协议可以得到IP地址与目的硬件地址的映射。

ARP协议的工作流程:

键入命令ftp 主机名的过程:

(1)通过解析器(DNS系统)得到主机名对应的IP地址

(2)FTP客户端请求TCP建立IP连接

(3)经TCP发送连接请求到远端主机(以后会提到)

(4)经过IP层封装

(5)图中的目的端与原主机在同一个子网下,,如果不在一个子网下则要通过IP选路来确定下一站路由地址,并让其转发数据报。

(此时ARP得到的目的硬件地址是路由器的硬件地址)

(6)在该子网下广播ARP请求。

(7)同一个子网下的主机都会收到该请求,并接收,与自己的IP地址比较,如果是发送给自己的则在向原主机发送一份ARP应答,里面包含自己的硬件地址,是单播的。如果和自己IP地址不同则丢弃。

(8)源主机收到ARP应答,知道了目的硬件地址

(9)链路层封装IP数据报,进行发送

注意:在点对点链路中因为没有类型字段所有是没有ARP协议的

ARP高速缓存:

我们通过ARP协议得到的硬件地址和IP地址的映射保存在ARP高速缓存中,生存时间为20分钟

我们可以通过ARP –a得到

ARP分组格式:

硬件类型:代表硬件地址的类型,1为以太网

协议类型:指出是ARP请求 ARP应答RARP请求 RARP应答中的哪一个 因为在以太网首部中的帧类型只能判断是ARP还是RARP,无法判断是请求还是应答

硬件地址长度和协议地址长度分别代表后面的以太网地址长度和IP地址长度。

ARPA举例:

我用telnet远程登录到另一台主机,并用wireshark抓包。

Windows下用到的接口

另一台主机

先arp -a看是否有缓存

接着我们telnet 192.168.1.104远程登录

登录成功. 我们看wireshark

通过以上截图 我们可以清楚的看到整个arp的过程,和书上的一模一样。

这是在同一个子网下的,不在同一个子网,则根据路由选路 硬件地址为到目的主机的相应路由器的硬件地址

免费ARP

主机通过广播免费arp来告诉其他收到此arp请求主机 更新该主机的mac地址,以防当该主机换网卡的时候导致硬件地址变更 却收不到其他主机发来的信息。(对方主机可能存在arp缓存)

RARP:逆地址解析协议

逆地址解析协议用做无盘机获取ip地址。由于路由器无法转发rarp协议,所有在每个子网下必须存在一个rarp服务器,来相应rarp请求。因此还有另一种BOOTP协议也可以用做相同的功能,留作后面介绍

既有美妙的风景,也会有称不上景、只有风的地方。

xiuweikang的专栏

相关文章:

你感兴趣的文章:

标签云: