快捷搜索: 王者荣耀 脱发

【计算机网络】网络层实验:ARP协议和ICMP协议

ARP协议

背景知识

(1)什么是ARP

ARP,即地址解析协议。TCP/IP网络使用ARP实现IP地址到MAC地址的动态解析。由于IP地址只是一个逻辑地址,它实现了对互联网进行统一编址,但物理网络仍然是采用自身的物理地址(也称MAC地址)来唯一识别设备。因此,在物理网络中传输数据单元时,最终还是需要使用MAC地址来标识目标地址。

(2) ARP工作原理

拓扑图配置

实验过程

首先在清空arp的情况下,利用ping给192.168.1.2即PC1发送一个ICMP,此时PC0会首先广播一个ARP包,获知PC1的IP对应的MAC地址。之后再进行ICMP包的发送。 在已经拥有PC1的ARP缓存的情况下,PC0就可以通过交换机的交换表直接发送到PC1上。

查看PC0发送的第一个ARP查询包,ARP帧中封装的目的地址是全1的广播地址。 PC1发送的第一个ARP应答包,返回给PC0。

思考

(1) 任务一完成后,哪些PC的ARP缓存拥有PC0的MAC地址记录?哪些PC新添加了PC1的MAC地址记录? PC1的ARP缓存拥有了PC0的MAC地址。 PC0新添加了PC1的MAC地址记录。

(2) ARP缓存的作用是什么?缓存中记录的保存时间是否越长越好?请解释理由。 考虑到一个网络可能经常有设备动态加入或者撤出,并且设备也可能更改IP地址,因此,ARP协议将会删除过期未更新的ARP条目,具体时间因设备而异。如有些 Windows 系统的ARP有效时间为2min。ARP缓存可以提高工作效率。如果没有缓存,每当有数据帧进入网络时,ARP都必须不断请求地址转换,这样会延长通信延时,甚至造成网络拥塞。反之,保存时间过长也可能导致离开网络或者更改第3层地址的设备出错。 (3) 主机使用ARP能查询到其他网段的MAC地址吗?为什么? 不能,ARP协议只能访问同一个广播域下的主机,如果要查询其他网段,则需要交给网关解决。 (4) 在任务二的步骤3中,ARP被执行了几次? 2次,一次是查询包,一次是路由返回的应答包。

ICMP协议

背景知识

(1)什么是ICMP协议

ICMP是** “Internet Control Message Protocol”(Internet控制报文协议)**的缩写。它是TCP/IP协议族中的一个子协议,用于在IP主机、路由器之间传递网络通不通、主机是否可达、路由是否可用等控制消息。这些控制消息虽然并不传输用户数据,但对于保证TCP/IP协议的可靠运行是至关重要的。 IP协议只提供无连接的、尽力而为的数据报服务;TCP协议在IP基础上建立有连接的传输服务,解决了网络底层的数据报丢失、重复、延迟或乱序等问题,但仍无法解决因网络故障所导致的分组无法传输的问题。因此,ICMP提供了一种IP包无法传输的差错报告机制,可以帮助发送方了解为什么无法传递,网络发生了什么问题,以便解决网络故障问题。 ICMP协议报文使用IP数据报封装(IP分组的协议字段为1),ICMP报文类型包括有5种差错报告报文和4种询问报文。

(2)PING命令和Tracert命令

实验配置

实验过程

首先由PC0向PC1发送一条ICMP,表示ping通。 ping任意一个无法ping通的地址,路由器会丢弃数据包并返回一个错误报告。 在PDU Details可以观察到两个ICMP报文,一个是原先的回送请求报文,另一个为错误报告报文。

在PC0上运行tracert命令,每个节点均会测试三遍。 在PDU Details中可以观察到依次发送了TTL为1、2、3的ICMP包。

思考

(1) 在tracert命令中,为什么源主机对于每个TTL值都要重复进行多次探测? 重复检测,避免丢包。 (2) ICMP协议是否会给Internet带来安全隐患? ICMP作为网络层控制协议,可以对网络主机进行探寻,那么必然也会带来一定的隐患。

经验分享 程序员 微信小程序 职场和发展