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

\renewcommand{\mydate}{2023年12月29日}
\renewcommand{\mylabname}{远程登录与文件传送协议（TELNET与FTP）}
\renewcommand{\mychapternum}{13}

\begin{document}
    \mytitle
    \begin{enumerate}
        \myitem{实验目的}{
            \item 掌握 TELNET 的工作过程
            \item 理解 TELNET 选项协商
            \item 掌握 FTP 的工作原理
            \item 掌握 FTP 的一些常用命令的使用方法及用途
        }
        \myitem{实验设备或环境}{
            \item 采用网络拓扑结构一
        }
        \myitem{实验原理}{
            \item 分时系统
            \item 本地登录与远程登录
            \item 网络虚拟终端
            \item TELNET简介
            \item NVT字符集
            \item TELNET选项协商
            \item FTP协议简介
            \item FTP连接、通信与传送
            \item FTP命令与响应
        }
        \myitemx[label=练习\arabic*\ ]{实验步骤}{
            \item 运行TELNET命令，捕获数据并分析
            \item TELNET选项协商的过程
            \item FTP的工作过程
            \item 使用TCP连接工具与服务器进行命令交互
        }
        \myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
            \item 运行TELNET命令，捕获数据并分析
            
            TELNET使用的TCP端口是23。

            客户端与服务器端进行选项协商的过程在练习2中有体现。

            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-02-45.png}
                \caption{可以捕获到用户名和密码}
            \end{figure}

            TELNET交互图为上图的会话分析的截图。

            TELNET是明文传输，因此可能存在网络监听，是不安全的。

            \item TELNET选项协商的过程
            
            写出步骤3中每个十六进制字符对应的NVT字符。

            FFFB18：WILL Terminal\_type， FFFB1F：WILL Negotiateaboutwindowsize \\
            FFFC20：WONT Terminalspeed， FFFC23：WONT Xdisplaylocation， FFFB27：WILL Newenvironment \\
            FFFD03：DO Suppressgo\_ahead \\
            FFFB01：WILL Echo； FFFE05：DONT Status； FFFC21：WONT Remoteflowcontrol \\

            步骤3中发送的每个数据各自的作用根据上述字符可以知道对应内容，服务器对其应答的内容如下：
            
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-15-30.png}
                \caption{服务器应答选项协商}
            \end{figure}

            \thinkingquestion{
                \item 远程登录TELNET的主要特点是什么？什么叫做虚拟终端NVT？
                
                主要特点是使用远程主机上的资源；网络虚拟终端NVT是让用户登录远程主机，并操作终端，就像在自己的主机上操作终端一样。
            }

            \item FTP的工作过程
            
            FTP使用的TCP端口有21（命令传输端口），20（主动模式服务器发出连接的端口）、更高的随机端口（被动模式服务端打开的端口，或者客户端发出连接使用的端口）。

            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-32-29.png}
                \caption{FTP用户名}
            \end{figure}
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-33-27.png}
                \caption{FTP密码}
            \end{figure}

            可以看到用户名和密码，FTP是不安全的。

            FTP的工作过程如上图的会话分析所示，控制连接和数据连接根据主动模式和被动模式有不同。

            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-36-00.png}
                \caption{数据连接}
            \end{figure}

            \thinkingquestion{
                \item 文件传送协议FTP的主要工作过程是怎样的？主进程和从属进程各起什么作用？
                
                主要工作过程是先由主进程开启控制连接传输命令，然后由从属进程开启数据连接传输文件。
            }

            \item 使用TCP连接工具与服务器进行命令交互
            
            USER group7\_3
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-39-58.png}
                \caption{服务器回复的信息}
            \end{figure}
            PASS group7\_3
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-40-50.png}
                \caption{服务器回复的信息}
            \end{figure}
            SYST
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-41-21.png}
                \caption{服务器回复的信息}
            \end{figure}
            PWD
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-41-44.png}
                \caption{服务器回复的信息}
            \end{figure}
            TYPE A
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-42-10.png}
                \caption{服务器回复的信息}
            \end{figure}
            PORT 172,16,0,73,10,10
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-42-37.png}
                \caption{服务器回复的信息}
            \end{figure}

            PORT 命令对端口信息是分成两个字节，当作两个8位整数传递；客户端使用的端口值为2570。

            PORT的格式为 PORT $x_1,x_2,x_3,x_4,x_5,x_6$，其中 $x_1,x_2,x_3,x_4$ 携带的是本机的 IP 地址，$x_5,x_6$ 为端口值，计算方法为 $x_5\times 256+x_6$，该命令的用途是告知服务器本机客户端使用的端口。

            这是FTP服务器是使用主动模式创建数据连接的，即客户端告知服务器自己开启的数据连接的端口，之后服务器从20端口主动连接客户端的这个端口。

            STOR group7\_3\\
            服务器回复的信息：150 Ok to send data.

            filedata
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-55-17.png}
                \caption{filedata}
            \end{figure}

            PASV
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-57-07.png}
                \caption{服务器回复的信息}
            \end{figure}
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-21-01-13.png}
                \caption{服务器回复的信息}
            \end{figure}
            该命令的用途是告知服务器使用被动模式。

            这里FTP服务器使用被动模式创建数据连接，即服务器告知客户端自己开启的数据连接的端口，之后客户端从随机端口连接服务器的这个端口。

            在服务器回复的信息中可知服务器端使用的端口为：$227\times 256+126=58238$。
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-20-55-49.png}
                \caption{服务器回复的信息}
            \end{figure}

            RETR group7\_3
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-21-02-12.png}
                \caption{服务器回复的信息}
            \end{figure}

            其内容是步骤（9）输入的信息。

            QUIT
            \begin{figure}[H]
                \includegraphics[width=1\linewidth]{imgs/2024-01-02-21-02-52.png}
                \caption{服务器回复的信息}
            \end{figure}

            会话交互图如前文的会话分析所示。

            \thinkingquestion{
                \item FTP的数据连接存在两种模式：主动模式和被动模式，说明各自的工作过程。如果服务器和客户端之间存在防火墙，使用哪种模式会引起一些麻烦？
                
                主动模式和被动模式各自的工作过程在前文已有提到，如果存在防火墙，一般防火墙会阻止未经许可的向客户端的传入连接，所以使用主动模式会引起一些麻烦。
            }
        }
    \end{enumerate}
\end{document}