\documentclass[../public/实验报告模板]{subfiles}

\renewcommand{\mydate}{2023年11月17日}
\renewcommand{\mylabname}{简单网络管理协议（SNMP）}
\renewcommand{\mychapternum}{8}

\begin{document}
    \mytitle
    \begin{enumerate}
        \myitem{实验目的}{
            \item 掌握SNMP的报文格式
            \item 掌握SMI定义的规则
            \item 掌握MIB定义的结构
            \item 理解SNMP工作原理
        }
        \myitem{实验设备或环境}{
            \item 采用网络拓扑结构一
        }
        \myitem{实验原理}{
            \item SNMP简介
            \item SNMP报文格式
            \item SNMP管理器和代理
            \item SNMP管理构件
            \item 管理信息结构SMI
            \item 管理信息库MIB
            \item SNMP通信过程
        }
        \myitemx[label=练习\arabic*\ ]{实验步骤}{
            \item 获取代理服务器信息
            \item 设置代理服务器信息
            \item 代理服务器的事件报告
        }
        \myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
            \item 获取代理服务器信息
            
            \begin{table}[H]
                \centering
                \caption{实验结果}
                \begin{tabular}{cccc}
                \toprule
                 代理服务器信息 & OID & 返回值类型 & 返回值 \\
                 \midrule
                 操作系统类型（sysDescr） &   &   &   \\
                 网卡数（ifNumber） &   &   &   \\
                 物理地址（ifPhysAddress &   &   &   \\
                 IP默认TTL值（ipDefaultTTL） &   &   &   \\
                \bottomrule
                \end{tabular}
            \end{table}

            忘记截图了，也无法推测出该代理服务器的路由表。

            为加深对SMI（管理信息结构）的理解，现给出某一报文中SNMP协议的数据。

            302602010004067075626c6963a11902020a52020100020100300d300b06072b0601020101010500

            结合SNMP报文格式和SMI定义的规则，绘制出树形的结构图（用树来表现sequence和sequence of的关系）。

            这太复杂了，由于时间原因，就放弃了。

            udptable如下图所示：

            \begin{figure}[H]
                \centering
                \includegraphics[width=1\linewidth]{imgs/2023-12-31-20-03-46.png}
                \caption{udptable}
            \end{figure}

            通过察看代理服务器放到结果OID列表和主机D上捕获的SNMP报文类型，可以知道字典式排序在SNMP查询方式的中的意义是便于查找。

            代理服务器开放的端口为161，UDP服务名为SNMP代理服务。

            \item 设置代理服务器信息
            
            \begin{figure}[H]
                \centering
                \includegraphics[width=1\linewidth]{imgs/2023-12-31-20-11-45.png}
                \caption{主机C更改主机D的系统名称}
            \end{figure}
            \begin{figure}[H]
                \centering
                \includegraphics[width=1\linewidth]{imgs/2023-12-31-20-12-02.png}
                \caption{可以看到已经成功更改}
            \end{figure}
            \begin{figure}[H]
                \centering
                \includegraphics[width=1\linewidth]{imgs/2023-12-31-20-14-30.png}
                \caption{主机D捕获到的更改的报文}
            \end{figure}

            \item 代理服务器的事件报告
            
            \begin{figure}[H]
                \centering
                \includegraphics[width=1\linewidth]{imgs/2023-12-31-20-18-31.png}
                \caption{主机D修改配置后主机C就无法获取主机D的信息了}
            \end{figure}
            \begin{figure}[H]
                \centering
                \includegraphics[width=1\linewidth]{imgs/2023-12-31-20-23-34.png}
                \caption{发送了请求没有响应}
            \end{figure}
            \begin{figure}[H]
                \centering
                \includegraphics[width=1\linewidth]{imgs/2023-12-31-20-26-22.png}
                \caption{但是会收到陷阱报告}
            \end{figure}
            \begin{figure}[H]
                \centering
                \includegraphics[width=1\linewidth]{imgs/2023-12-31-20-29-21.png}
                \caption{主机D也能捕获到陷阱报告的数据}
            \end{figure}

            \thinkingquestion{
                \item SNMP使用UDP协议进行封装，分析为什么不使用TCP进行封装？
                
                应该是因为数据发送非常频繁，用TCP会导致负载过重；并且单个包丢失或错误不影响整体的管理。

                \item 为什么SNMP的管理进程使用探询掌握全网状态属于正常情况，而代理进程用陷阱向管理进程报告属于较少发生的异常情况？
                
                因为SNMP的管理进程一般会按周期持续主动向代理服务器探询全网情况，并且周期很短，这保证了SNMP能实时掌握最新的全网状态；所以代理进程只有在非常紧急的情况下才会用陷阱向管理进程报告，因此这属于较少发生的异常情况。

                \item 假设你是网络管理人员，你能否通过SNMP协议和以前所学的知识，实现网络拓扑发现？
                
                不能。
            }
        }
    \end{enumerate}
\end{document}