\documentclass[../public/实验报告模板]{subfiles} \renewcommand{\mydate}{2023年12月1日} \renewcommand{\mylabname}{地址解析协议(ARP)} \renewcommand{\mychapternum}{2} \begin{document} \mytitle \begin{enumerate} \myitem{实验目的}{ \item 掌握ARP协议的报文格式 \item 掌握ARP协议的工作原理 \item 理解ARP高速缓存的作用 \item 掌握ARP请求和应答的实现方法 \item 掌握ARP缓存表的维护过程 } \myitem{实验设备或环境}{ \item 采用网络拓扑结构二 } \myitem{实验原理}{ \item 物理地址与逻辑地址 \item ARP协议简介 \item ARP报文格式 \item ARP封装 \item ARP的运行过程 \item 代理ARP \item 协议栈实现代码解析 \item 各模块推荐流程 } \myitemx[label=练习\arabic*\ ]{实验步骤}{ \item 领略真实的ARP(同一子网) \item 编辑并发送ARP报文(同一子网) \item 跨路由器地址解析(不同子网) \item 发送arp请求,处理输入的arp数据包功能的实现 } \myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{ \item 领略真实的ARP(同一子网) \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{imgs/2024-01-01-13-37-01.png} \caption{主机C的ARP高速缓存} \end{figure} \begin{figure}[H] \centering \includegraphics[width=0.8\linewidth]{imgs/2024-01-01-13-41-56.png} \caption{主机B的高速缓存} \end{figure} ARP高速缓存表由接口、Internet地址、物理地址、类型组成。 ARP协议的报文交互过程和ARP高速缓存表的更新过程是主机先广播发送ARP请求报文,目标主机收到后向请求方单播发送ARP应答报文,主机收到后更新ARP高速缓存表。 \item 编辑并发送ARP报文(同一子网) 主机B、E收到了ARP请求包,主机F给出了ARP响应包。 主机A、C、D没有收到ARP请求包,因为主机A、C、D与ARP请求发出者主机E不在一个子网。 \item 跨路由器地址解析(不同子网) 单一ARP请求报文不呢个跨越子网进行地址解析,因为它是数据链路层协议,只在一个子网内有效。 ARP地址解析在跨越子网的通信中起到了联通不同子网的作用。 \thinkingquestion{ \item 哪些主机收到了ARP请求包?哪台主机给出了ARP响应包? 主机B、C、D、E、F都收到了ARP请求包。主机F给出了ARP响应包,主机B收到后又转发了这个ARP响应包。 \item 比较ARP协议在同网段内解析和跨网段的解析有何异同点? 相同之处是ARP协议在同网段和跨网段解析在正确配置时都能解析成功,区别在于ARP协议在同网段内解析不需要路由器开启静态路由服务,而跨网段解析需要路由器开启静态路由服务。 \item ARP数据包的长度是固定的吗?试加以解释。 不是,ARP可以用于不同的硬件类型和协议类型,不同的硬件类型(比如以太网、无线局域网)可能有不同长度的硬件地址,不同的协议类型(比如IPv4、IPv6)可能有不同长度的逻辑地址。 \item 试解释为什么ARP高速缓存每存入一个项目就要设置10-20分钟的超时计时器。这个时间设置得太大或太小会出现什么问题? 因为设备的硬件地址和逻辑地址之间的关联可能会变化,比如DHCP租约到期后更换IP地址,或者某个设备离开网络了,因此需要超时计时器,在超时后重新发送ARP报文。 这个时间设置得太大会出现不能及时检测到网络变化的情况,设置得太小会导致频繁发送ARP广播请求消耗资源。 \item 至少举出两种不需要发送ARP请求数据包的情况。 当目的IP与MAC的对应关系在ARP高速缓存中已经查找到了,就不需要发送ARP请求数据包了;当目的IP与主机自己的IP不在同一个网段,这时需要将数据包发给网关,如果网关的IP与MAC的对应关系在ARP高速缓存中已经查找到了,就不需要发送ARP请求数据包了。 } } \end{enumerate} \end{document}