计算机网络(六)--ARP真的很简单

在使用IP协议发送网络分组时,除了需要知道目的主机的IP地址外,还需要知道其MAC地址,以完成数据链路层的数据封装。而在网络层协议中,IP协议处于中间位置,在其左下角的ARP协议便向IP协议提供查询MAC地址的服务。

一、ARP工作方式

1.请求本网段主机MAC地址(如1–>2/3)

当源主机向目的主机发送报文时,会先在自身的ARP缓存表中,查找是否有目的主机IP地址所对应的MAC地址。

若有,则直接使用,完成数据链路层封装。

若无,则在本网段内,发送一个ARP广播请求分组。分组中包括源主机IP、MAC地址,以及目的主机IP地址。

本网段内的所有主机都会收到这个分组,若其发现自身IP地址等于ARP请求分组中的目的主机IP地址,则向源主机返回一个ARP单播响应分组,告诉源主机自己的MAC地址。

源主机收到响应分组后,便知道了它所需要的MAC地址

上述过程,可以生活化地理解为:老师要找LBW同学,就在全班喊:LBW在哪儿啊?所有同学都听到了老师的呼喊,但只有LBW会回应:老师,我在第三排第二列。你可能不知道。。。

2.请求外网主机MAC地址(如1–>4/5)

当源主机向目的主机发送报文时,此时通过本网段的ARP请求分组已经是得不到响应了。

那么源主机会将ARP请求报文发送给默认网关(即通向外网的路由器端口),获得网关MAC地址后,将其封装进数据链路层的目的MAC地址中,并且发送IP报文。

IP报文到了路由器中,发现目的IP地址并不是该路由器,于是将MAC地址改成下一条路由器的MAC地址,转发出去。

假设经过一次或多次路由器间转发,IP报文现在到了目的主机所在的路由器处,该路由器首先使用一次APR协议,原理同1,找到目的主机的MAC地址,然后将其封装进IP数据报中,并发送给目的主机,这样一次数据传输就完成了。

二、ARP实践

1.查看本机ARP缓存表

在CMD中敲下

arp -a

命令,即可查看本机的ARP缓存表。缓存表中会存储已知的IP地址及其对应的MAC地址

2.修改ARP缓存表(Windows XP)

在CMD中敲下

arp -s IP地址 MAC地址

命令,即可修改ARP缓存表,相应的IP地址与MAC地址的映射会被修改。且由于该MAC地址是手动指定,表项类型会变成静态。

猜你喜欢

转载自blog.csdn.net/weixin_44580146/article/details/106897658