\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}