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

\renewcommand{\mydate}{2023年11月24日}
\renewcommand{\mylabname}{电子邮件协议（SMTP、POP3和IMAP）}
\renewcommand{\mychapternum}{14}

\begin{document}
    \mytitle
    \begin{enumerate}
        \myitem{实验目的}{
            \item 掌握邮件服务的工作原理
            \item 掌握SMTP、POP3、IMAP的工作过程
            \item 了解SMTP、POP3、IMAP协议的命令和使用方法
        }
        \myitem{实验设备或环境}{
            \item 采用网络拓扑结构一
        }
        \myitem{实验原理}{
            \item 电子邮件简介
            \item 电子邮件传输过程
            \item SMTP协议简介
            \item SMTP会话命令与响应
            \item SMTP运行过程
            \item POP3和IMAP简介
            \item POP3会话命令
            \item POP3运行过程
            \item IMAP会话命令
            \item IMAP运行过程
            \item POP3协议与IMAP协议的区别
        }
        \myitemx[label=练习\arabic*\ ]{实验步骤}{
            \item 使用Live Mail发送电子邮件
            \item 使用Live Mail接收电子邮件
            \item 使用TCP工具和SMTP命令实现邮件发送
            \item 使用TCP工具和POP3命令实现邮件接收
            \item 使用TCP工具和IMAP命令实现邮件接收
        }
        \myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
            \item 使用Live Mail发送电子邮件
            
            SMTP使用的TCP端口号是25。

            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-01-10-10-30.png}
                \caption{SMTP应该是能看到用户名和密码的，这里应该是之前登录过了所以没有}
            \end{figure}
            \begin{table}[H]
                \centering
                \caption{实验结果}
                \begin{tabularx}{\linewidth}{c|ccZZ}
                \toprule
                % 为什么这里用b才能有居中的效果呢？难道和tabularx有关？
                \multirow[b]{4}{*}{SMTP连接建立过程}   & 源IP & 目的IP & 报文摘要和参数 & 报文作用 \\
                   \midrule
                   & 172.16.0.253 & 172.16.0.73 & 220服务就绪 & 服务器告诉客户已准备好接收邮件 \\
                   & 172.16.0.73 & 172.16.0.253 & HELO cslabc39 & 把客户的域名通知服务器 \\
                   & 172.16.0.253 & 172.16.0.73 & 250请求命令完成 & 连接成功 \\
                   \toprule
                \multirow[b]{9}{*}{邮件传输过程}   & 源IP & 目的IP & 报文摘要和参数 & 报文作用 \\
                   \midrule
                   & 172.16.0.73 & 172.16.0.253 & MAIL FROM: <group7\_3@JServer.Netlab> & 介绍报文的发送者 \\
                   & 172.16.0.253 & 172.16.0.73 & 250请求命令完成 & 请求命令完成 \\
                   & 172.16.0.73 & 172.16.0.253 & RCPT TO: <group7\_3@JServer.Netlab> & 告知收件人的邮件地址 \\
                   & 172.16.0.253 & 172.16.0.73 & 250 请求命令完成 & 请求命令完成 \\
                   & 172.16.0.73 & 172.16.0.253 & DATA  & 告知即将开始发送邮件内容 \\
                   & 172.16.0.253 & 172.16.0.73 & 354 开始邮件输入 & 准备接收邮件报文 \\
                   & 172.16.0.73 & 172.16.0.253 & 发送报文，每行一CRLF（回车换行）结束，整个报文以仅有一个点的行结束 & 发送邮件内容 \\
                   & 172.16.0.253 & 172.16.0.73 & 250 OK & 接收邮件内容成功 \\
                \toprule
                \multirow[b]{3}{*}{SMTP连接释放过程}   & 源IP & 目的IP & 报文摘要和参数 & 报文作用 \\
                   \midrule
                   & 172.16.0.73 & 172.16.0.253 & QUIT & 退出 \\
                   & 172.16.0.253 & 172.16.0.73 & 221 服务关闭 & 服务关闭 \\
                \bottomrule
                \end{tabularx}
            \end{table}
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-01-10-52-02.png}
                \caption{MIME信息}
            \end{figure}
            可以观察到MIME信息为：
            MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="---=NextPart\_000\_0097\_01DA1EB0.298B18B0"

            这说明MIME的版本是1.0，内容有多个部分，并给出了内容的边界模式字符串。

            \item 使用Live Mail接收电子邮件
            
            \begin{enumerate}
                \item 使用POP3协议接受
                POP3使用的TCP端口是110。
                
                能看到用户名和密码。
                
                \begin{figure}[H]
                    \includegraphics[width=1\linewidth]{imgs/2024-01-01-11-06-00.png}
                    \caption{用户名的数据包}
                \end{figure}
                \begin{figure}[H]
                    \includegraphics[width=1\linewidth]{imgs/2024-01-01-11-06-29.png}
                    \caption{密码的数据包}
                \end{figure}

                POP3在每次收取时都会发送用户名和密码进行验证，而SMTP只需要验证一次。

                \begin{figure}[H]
                    \includegraphics[width=1\linewidth]{imgs/2024-01-01-11-09-26.png}
                    \caption{命令RETR的响应报文与发送的内容一致}
                \end{figure}

                \item 使用IMAP协议接收
                
                IMAP使用的TCP端口号是143。

                能看到用户名和密码。

                \begin{figure}[H]
                    \includegraphics[width=1\linewidth]{imgs/2024-01-01-11-11-41.png}
                    \caption{传输用户名和密码的数据包}
                \end{figure}

                IMAP的功能比POP3多，能直接操作服务器上的邮件而不需要先下载到本地。
            \end{enumerate}

            \item 使用TCP工具和SMTP命令实现邮件发送
            
            \begin{figure}[H]
                \centering
                \includegraphics[width=0.8\linewidth]{imgs/2024-01-01-11-14-37.png}
                \caption{TCP工具发送邮件建立连接}
            \end{figure}
            \begin{figure}[H]
                \centering
                \includegraphics[width=0.8\linewidth]{imgs/2024-01-01-11-15-13.png}
                \caption{TCP工具发送邮件发送内容}
            \end{figure}
            \begin{figure}[H]
                \centering
                \includegraphics[width=0.8\linewidth]{imgs/2024-01-01-11-16-17.png}
                \caption{TCP工具发送邮件断开连接}
            \end{figure}
            \begin{figure}[H]
                \centering
                \includegraphics[width=1\linewidth]{imgs/2024-01-01-11-17-24.png}
                \caption{会话分析的过程与练习一的过程相同}
            \end{figure}

            在编写邮件内容时，我们只是简单发送“myemail”字符串，能否尝试添加邮件内容首部的一些关键信息，如From、Subject、To等及有关MIME的信息。

            能。

            \item 使用TCP工具和POP3命令实现邮件接收
            
            \begin{figure}[H]
                \centering
                \includegraphics[width=0.8\linewidth]{imgs/2024-01-01-11-21-10.png}
                \caption{TCP工具接收邮件}
            \end{figure}
            \begin{figure}[H]
                \centering
                \includegraphics[width=0.8\linewidth]{imgs/2024-01-01-11-21-49.png}
                \caption{TCP工具接收邮件}
            \end{figure}
            \begin{figure}[H]
                \centering
                \includegraphics[width=0.8\linewidth]{imgs/2024-01-01-11-22-07.png}
                \caption{TCP工具接收邮件}
            \end{figure}
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-01-11-22-51.png}
                \caption{会话分析}
            \end{figure}

            \thinkingquestion{
                \item 电子邮件系统使用TCP协议传送邮件。为什么有时我们会遇到邮件发送失败的情况？为什么有时对方会收不到我们发送的邮件？
                
                可能发送时网络信号不好，突然断网了，导致发送失败。有时对方的邮件服务器将邮件错误地归类到了垃圾邮件中，导致对方收不到我们发送的邮件。

                \item 通过实验说明你的电子邮件在网络上传输是安全的吗？为什么？你认为实现邮件安全传输的最好的办法是什么？
                
                如果只是简单使用SMTP或POP3或IMAP，那就是不安全的。要确保安全，最好使用SSL/TLS加密，即在TCP上加一层使用非对称加密的公钥密码体系确保安全的SSL/TLS层。
            }

            \item 使用TCP工具和IMAP命令实现邮件接收
            
            \begin{figure}[H]
                \centering
                \includegraphics[width=0.8\linewidth]{imgs/2024-01-01-11-32-08.png}
                \caption{TCP工具IMAP协议接受邮件}
            \end{figure}
            \begin{figure}[H]
                \centering
                \includegraphics[width=0.8\linewidth]{imgs/2024-01-01-11-32-37.png}
                \caption{TCP工具IMAP协议接受邮件}
            \end{figure}
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-01-11-33-19.png}
                \caption{TCP工具IMAP协议会话分析}
            \end{figure}
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-01-11-34-02.png}
                \caption{TCP工具IMAP协议会话分析}
            \end{figure}
        }
    \end{enumerate}
\end{document}