上传计算机网络的全部实验报告。

图片暂时不需要。
This commit is contained in:
423A35C7 2024-09-23 22:03:37 +08:00
parent 5906ac1efc
commit 5cab26ef0b
12 changed files with 1459 additions and 0 deletions

View File

@ -0,0 +1,96 @@
\documentclass[../public/实验报告模板]{subfiles}
\renewcommand{\mydate}{2023年11月10日}
\renewcommand{\mylabname}{域名系统DNS}
\renewcommand{\mychapternum}{10}
\begin{document}
\mytitle
\begin{enumerate}
\myitem{实验目的}{
\item 掌握DNS的报文格式
\item 掌握DNS的工作原理
\item 掌握DNS域名空间的分类
\item 理解DNS高速缓存的作用
}
\myitem{实验设备或环境}{
\item 采用网络拓扑结构一
}
\myitem{实验原理}{
\item 域名空间
\item DNS协议简介
\item DNS的域名分类
\item DNS报文格式
\item 正向解析与反向解析
\item 递归解析与迭代解析
\item 高速缓存
\item 压缩
\item DNS封装
}
\myitemx[label=练习\arabic*\ ]{实验步骤}{
\item Internet域名空间的分类
\item DNS正向查询
\item DNS反向查询
\item DNS的应用及高速缓存
}
\myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
\item Internet域名空间的分类
\begin{enumerate}
\item 类属域
“ www.python.org ”对应的IPv4地址是151.101.76.223IPv6地址是2a04:4e42:1a::223。
“ www.python.org ”域名的顶级域名的含义是“orgnization”非盈利机构。
\item 国家域
“ www.jl.gov.cn ”对应的IPv4地址是180.97.168.75IPv6地址是240e:978:303::fe。
“ www.jl.gov.cn ”域名的顶级域名的含义是“China”中国二级域名的含义是“government”政府机构三级域名的含义是“JiLin”吉林省。
\item 反向域
172.16.0.253 对应的域名是 JServer.NetLab 。
反向域的顶级域名是 arpa ,二级域名是 in-addr 。
\end{enumerate}
\thinkingquestion{
\item Internet的域名结构是怎样的它与目前电话网的号码结构有何异同之处
Internet的域名空间是树状结构域名从下往上读取。目前电话网的号码结构可以分成三段即1XX-XXXX-XXXX其中前3位是网络识别号各个运营商有不同的号段第4-7位是地区码由运营商分配第8-11位是顺序码由运营商随机发放供用户挑选。
因此域名结构和电话号码结构都是树状结构,区别在于域名是从下往上读取,而电话号码是从上往下读取。
}
\item DNS正向查询
在响应报文中提取对方主机的IP地址为172.16.0.217。
\thinkingquestion{
\item 域名的IP地址是否只有一个
不一定,可以有多个。
\item 域名服务协议的主要功能是什么?域名服务协议中的根服务器和授权服务器有何区别?授权服务器和管辖区有何关系?
域名服务协议的主要功能是把IP地址映射为域名或把域名映射为IP地址。根服务器用于查询顶级域名服务器的地址授权服务器用于查询某个具体域名对应的地址。授权服务器都有自己的管辖区。
}
\item DNS反向查询
在响应报文中提取主机A的域名地址为 host73.NetLab 。
\item DNS的应用及高速缓存
\includegraphics[width=1\linewidth]{imgs/2023-12-31-19-17-13.png}
在使用域名完成的通信中DNS协议起到了将域名转化为IP地址以便于网络层转发包的作用。
DNS高速缓存用来加速解析过程。
此次访问过程的报文交互图包括ICMP协议如下
\includexopp[2]{10.4.1}
}
\end{enumerate}
\end{document}

View File

@ -0,0 +1,136 @@
\documentclass[../public/实验报告模板]{subfiles}
\renewcommand{\mydate}{2023年11月17日}
\renewcommand{\mylabname}{超文本传输协议HTTP}
\renewcommand{\mychapternum}{12}
\begin{document}
\mytitle
\begin{enumerate}
\myitem{实验目的}{
\item 掌握HTTP的报文格式
\item 掌握HTTP的工作原理
\item 掌握HTTP常用方法
}
\myitem{实验设备或环境}{
\item 采用网络拓扑结构一
}
\myitem{实验原理}{
\item 体系结构
\item 万维网文档
\item HTTP协议简介
\item HTTP报文格式
\item HTTP方法
\item HTTP状态码
\item 持久与非持久连接
\item HTTP代理服务器
}
\myitemx[label=练习\arabic*\ ]{实验步骤}{
\item 页面访问
\item 页面提交
\item 获取页面信息
\item 较复杂的页面访问
}
\myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
\item 页面访问
本练习使用HTTP协议的GET方法这种方法的作用是从服务器请求一个文档。
\begin{table}[H]
\centering
\caption{实验结果}
\begin{tabular}{c|c}
\toprule
主机名 & 172.16.0.253 \\
URL & http://172.16.0.253/experiment \\
服务器类型 & Apache/2.2.3 (CentOS) \\
传输文本类型 & text/html \\
访问时间 & Fri, 17 Nov 2023 00:41:58 GMT \\
\bottomrule
\end{tabular}
\end{table}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-20-51-39.png}
\caption{HTTP请求的会话分析即报文交互图}
\end{figure}
TCP协议是传输层协议HTTP是应用层协议HTTP 1和2是基于TCP的但HTTP 3 是基于UDP的。
\thinkingquestion{
\item 一个主页是否只有一个连接?
如果使用持久连接的话,一个主页只有一个连接;否则就不一定。
}
\item 页面提交
本练习的提交过程使用了HTTP协议的POST方法这种方法的作用是从客户向服务器发送一些信息。
此次通信分访问post.html页面提交用户名和密码两个阶段。
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-08-23.png}
\caption{先GET post.html}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-09-08.png}
\caption{同时会附带GET favicon.ico获取图标}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-09-37.png}
\caption{点击确定后向res.html POST用户名和密码}
\end{figure}
可以注意到每次请求都重新建立TCP连接了因此此服务器实现的HTTP/1.1不正确因为HTTP/1.1应默认为持久连接。
\item 获取页面信息
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-14-23.png}
\caption{发送请求}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-14-58.png}
\caption{会话分析}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-15-16.png}
\caption{服务器返回了400 Bad Request}
\end{figure}
\thinkingquestion{
\item 同时打开多个浏览器窗口并访问一个WEB站点的不同页面时系统是根据什么把返回的页面正确地显示到相应窗口的
多个浏览器窗口访问同一个WEB站点的不同页面时每个窗口都会建立一个TCP连接这些连接有不同的源端口号系统根据源端口号把返回的页面正确地显示到相应窗口。
}
\item 较复杂的页面访问
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-19-06.png}
\caption{先查询DNS}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-19-53.png}
\caption{再请求第一个页面,可以看到响应过大被分段了}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-21-41.png}
\caption{还请求了图片,响应过大仍然被分段}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-22-20.png}
\caption{也能观察到TCP的累积确认机制}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2023-12-31-21-23-03.png}
\caption{当然有的资源可能404 Not Found}
\end{figure}
\thinkingquestion{
\item 为什么HTTP不保持与客户端的TCP连接
(标准回答)先问是不是,再问为什么。
使用持久连接时HTTP会保持与客户端的TCP连接使用非持久连接时HTTP不保持与客户端的TCP连接。HTTP/1.1以下默认非持久连接HTTP/1.1开始默认持久连接。而本次实验环境实现的HTTP不规范因此导致HTTP不保持与客户端的TCP连接。
}
}
\end{enumerate}
\end{document}

View File

@ -0,0 +1,192 @@
\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字符。
FFFB18WILL Terminal\_type FFFB1FWILL Negotiateaboutwindowsize \\
FFFC20WONT Terminalspeed FFFC23WONT Xdisplaylocation FFFB27WILL Newenvironment \\
FFFD03DO Suppressgo\_ahead \\
FFFB01WILL Echo FFFE05DONT Status FFFC21WONT 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}

View File

@ -0,0 +1,205 @@
\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}

View File

@ -0,0 +1,91 @@
\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}

View File

@ -0,0 +1,156 @@
\documentclass[../public/实验报告模板]{subfiles}
\renewcommand{\mydate}{2023年12月8日}
\renewcommand{\mylabname}{网际协议IP}
\renewcommand{\mychapternum}{3}
\begin{document}
\mytitle
\begin{enumerate}
\myitem{实验目的}{
\item 掌握IP数据报的报文格式
\item 掌握IP校验和计算方法
\item 掌握子网掩码和路由转发
\item 理解特殊IP地址的含义
\item 理解IP分片过程
\item 理解协议栈对IP协议的处理方法
\item 理解IP路由表作用以及IP路由表的管理
}
\myitem{实验设备或环境}{
\item 采用网络拓扑结构二
}
\myitem{实验原理}{
\item IP协议简介
\item IP地址及其表示方法
\item 特殊的IP地址
\item 子网划分
\item IP报文格式
\item IP封装
\item IP数据报分片
\item IP数据报校验和
\item 交付与转发
\item 路由选择
\item 协议栈实现代码解析
\item 各模块推荐流程
}
\myitemx[label=练习\arabic*\ ]{实验步骤}{
\item 编辑并发送IP数据报
\item 特殊的IP地址
\item IP数据报分片
\item 子网掩码的作用
\item IP数据报的接收与发送
\item IP路由表管理的设计与实现
}
\myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
\item 编辑并发送IP数据报
IP在计算校验和时包括首部的内容。
第一步中主机A所编辑的报文经过主机B到达主机E后报文数据发生了变化源MAC变成了主机B的右侧接口的MAC生存时间从128变为了127发生变化是因为经过了主机B的转发。
生存时间改为1后主机B能捕获到主机A所发送的报文但主机E不能捕获到。因为主机A将报文间接交付给主机B后主机B将生存时间减一发现生存时间为0于是丢弃此报文并向A发送ICMP差错报文表示目的不可达。
\thinkingquestion{
\item 说明IP地址与硬件地址的区别为什么要使用这两种不同的地址
IP地址用来标识设备在整个网络中的位置硬件地址用来标识设备在一个网段内的位置。使用这两种不同的地址是因为既要避免广播范围过大又要让一个设备能够和全球的其他设备收发报文。
}
\item 特殊的IP地址
\begin{enumerate}
\item 受限广播地址
\begin{table}[H]
\centering
\caption{实验结果}
\begin{tabular}{cc}
\toprule
& 主机号 \\
\midrule
收到主机A发送的IP数据报 & B、C、D \\
未收到主机A发送的IP数据报 & E、F \\
\bottomrule
\end{tabular}
\end{table}
受限广播地址的作用是用来发送给子网内的所有主机的。
\item 环回地址
主机F没有收到主机E发送的目的地址为127.0.0.1的IP数据报因为目的地址为127.0.0.1表示环回地址,只有发送的主机自己能收到。
\end{enumerate}
\thinkingquestion{
\item 受限广播地址的作用范围?
当前子网。
\item 受限广播地址和直接广播地址的区别?
受限广播地址只能用于本地网络,直接广播地址可以被路由器转发从而用于更大范围的网络。
\item 路由器转发受限广播吗?
不转发。
}
\item IP数据报分片
\begin{table}[H]
\centering
\caption{实验结果}
\begin{tabular}{c|ccc}
\toprule
字段名称 & 分片序号1 & 分片序号2 & 分片序号3 \\
\midrule
“标识”字段值 & 869 & 869 & * \\
“还有分片”字段值 & 1 & 0 & * \\
“分片偏移量”字段值 & 0 & 97 & * \\
传输的数据量 & 776 & 224 & * \\
\bottomrule
\end{tabular}
\end{table}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-01-19-00-41.png}
\caption{IP数据报分片}
\end{figure}
\thinkingquestion{
\item Ping的数据部分为3000字节回显请求报文为何被分为3片而不是2片
因为MTU是包括IP头部的假设IP头部为20字节那么第一片只能装1480个字节的数据第二片也是只能装1480个字节的数据因此需第三片来装剩下的40个字节的数据。
\item 数据部分长度为多少时报文正好被分为2片
以太网的MTU默认为1500IP头部一般为20字节那么一片的数据字段最多为1480字节所以数据部分长度为$1480\times 2=2960$时报文正好被分为2片。
\item 不同协议的MTU的范围从296到65535使用大的MTU有什么好处使用小的MTU有什么好处
使用大的MTU可以添加更少的帧首部信息减少冗余。使用小的MTU可以减少信道持续占用的时间更利于共享广播信道。
}
\item 子网掩码的作用
\begin{table}[H]
\centering
\caption{实验结果}
\begin{tabular}{cc}
\toprule
& 是否ping通 \\
\midrule
主机A---主机B &\\
主机C---主机D &\\
主机E---主机F &\\
\bottomrule
\end{tabular}
\end{table}
当两主机的子网掩码不同时按照发送方的子网掩码来看如果这两个主机在同一个子网掩码代表的网络中那么就能ping通或者主机ping的是网关的时候也可以ping通目的IP不在本地网络里就会发送到网关
\thinkingquestion{
\item IP数据报中的首部校验和并不检验数据报中的数据这样做的最大好处是什么缺点是什么
最大好处是避免每经过一个路由器都要重复校验相同的数据;缺点是可能无法发现数据报中的数据错误。
}
}
\end{enumerate}
\end{document}

View File

@ -0,0 +1,98 @@
\documentclass[../public/实验报告模板]{subfiles}
\renewcommand{\mydate}{2023年12月8日}
\renewcommand{\mylabname}{Internet控制报文协议ICMP}
\renewcommand{\mychapternum}{4}
\begin{document}
\mytitle
\begin{enumerate}
\myitem{实验目的}{
\item 掌握ICMP协议的报文格式
\item 理解不同类型ICMP报文的具体意义
\item 了解常见的网络故障
}
\myitem{实验设备或环境}{
\item 采用网络拓扑结构二
}
\myitem{实验原理}{
\item ICMP简介
\item ICMP报文格式
\item ICMP封装
\item ICMP报文类型
\item ICMP查询报文
\item ICMP差错报文
\item ICMP校验和
}
\myitemx[label=练习\arabic*\ ]{实验步骤}{
\item 运行Ping命令
\item ICMP查询报文
\item ICMP差错报文
}
\myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
\item 运行Ping命令
捕获的报文对应的“类型”字段是0ICMP回显应答“代码”字段是0。
报文中的类型、标识号、序列号字段保证了回显请求报文和回显应答报文的一一对应。
\item ICMP查询报文
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-01-20-27-37.png}
\caption{时间戳请求}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-01-20-27-06.png}
\caption{时间戳应答}
\end{figure}
\begin{table}[H]
\centering
\caption{实验结果}
\begin{tabular}{cc|cc}
\toprule
\multicolumn{2}{c}{时间戳请求报文}\vline& \multicolumn{2}{c}{时间戳应答报文}\\
ICMP字段名 & 字段值 & ICMP字段名 & 字段值 \\
\midrule
类型 & 13 & 类型 & 14 \\
标识号 & 0 & 标识号 & 0 \\
序列号 & 0 & 序列号 & 0 \\
发起时间戳 & 0 & 发起时间戳 & 0 \\
接收时间戳 & 0 & 接收时间戳 & 1347310080 \\
传送时间戳 & 0 & 传送时间戳 & 1347310080 \\
\bottomrule
\end{tabular}
\end{table}
\thinkingquestion{
\item 能否根据时间戳计算出当前的时间?
能。
\item 使用时间戳得到的时间比从系统得到的时间有什么好处?
使用时间戳请求得到的时间是和目标主机一致的,当系统的时间出错时可以据此校准。
}
\item ICMP差错报文
捕获到的是主机不可达报文。
\thinkingquestion{
\item 为什么要设置TTL字段
防止一个报文在网络中无限制地转发下去。
\item 为什么要限制由由失效的 ICMP 差错报文再产生一个 ICMP 报文?
防止ICMP报文不断在网络中发送占用资源。
\item 什么样的 ICMP 报文是由路由器发送出的?什么样的 ICMP 报文是由目的主机发送出的?
当主机向外部发送报文但出现差错时路由器会向主机发出ICMP差错报文当主机向目的主机发送ICMP回显请求时目的主机会发送出回显应答报文。
\item 主机 A 向主机 B 发送数据报,主机 B 从未收到该数据报,而主机 A 也从未收到出问题的通知,试给出可能发生情况的 2 种不同解释。
可能是主机A向主机B发出的数据包发到错误的链路上丢失了或者在链路中的某个地方出现差错返回ICMP差错报文但ICMP差错报文丢失或被丢弃了。
}
}
\end{enumerate}
\end{document}

View File

@ -0,0 +1,97 @@
\documentclass[../public/实验报告模板]{subfiles}
\renewcommand{\mydate}{2023年12月15日}
\renewcommand{\mylabname}{用户数据报协议UDP}
\renewcommand{\mychapternum}{5}
\begin{document}
\mytitle
\begin{enumerate}
\myitem{实验目的}{
\item 掌握 UDP 协议的报文格式
\item 掌握 UDP 协议校验和的计算方法
\item 理解 UDP 协议的优缺点
\item 理解协议栈对 UDP 协议的处理方法
\item 理解 UDP 上层接口应满足的条件
}
\myitem{实验设备或环境}{
\item 采用网络拓扑结构一
}
\myitem{实验原理}{
\item 进程到进程的通信
\item 面向连接的服务与面向无连接的服务
\item UDP协议简介
\item UDP报文格式
\item UDP封装
\item UDP校验和
\item UDP应用
\item 协议栈实现代码解析
\item 各模块推荐流程
}
\myitemx[label=练习\arabic*\ ]{实验步骤}{
\item 编辑并发送 UDP 数据报
\item UDP 单播通信
\item UDP 广播通信
\item UDP 数据报发送与接收
\item UDP 报文的上层投递的设计与实现
}
\myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
\item 编辑并发送 UDP 数据报
UDP在计算校验和时包括伪首部、UDP首部以及从应用层来的数据。
\thinkingquestion{
\item 为什么UDP协议的“校验和”要包含伪首部
确保此数据包确实是发送给自己的并且确保这个数据包是属于UDP。
\item 比较UDP和IP的不可靠程度
UDP和IP都是不可靠的协议IP只验证首部因此数据字段出现问题了也无法知道而UDP会验证数据字段因此IP比UDP更不可靠。
}
\item UDP单播通信
主机C上的“UDP工具”能够接收到主机A发送的UDP报文。
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-19-04-14.png}
\caption{主机C接收到主机A的UDP报文}
\end{figure}
UDP不是基于连接的协议此特性的优点是能更快发送数据缺点是可能不够安全。
UDP报文交互中没有确认报文此特性的优点是占用资源更少信道利用率更高缺点是发送包可能不知道有数据包出错了。
主机E上的UDP通信程序接收到此数据包UDP可以使用0作为校验和即代表不校验。
\item UDP广播通信
主机B、C、D、E、F都能接收到主机A发送的UDP报文。
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-19-08-50.png}
\caption{接收到的报文}
\end{figure}
主机A发送的报文的目的MAC地址和目的IP地址都表示广播。
\thinkingquestion{
\item 如果将目的 MAC 地址从广播地址换成某一个主机的 MAC 地址,是
否所有的主机还会受到这种报文?
否。
\item 如果将目的 MAC 地址设置成广播地址,目的 IP 设置成某一主机的
IP 地址,结果怎样?
同一网段内的主机都能收到报文但IP地址不是目的IP的主机解封装到IP层的时候会发现目的IP与自己的IP不一样从而丢弃报文。
\item 在可靠性不是最重要的情况下UDP 可能是一个好的传输协议,试给
出这种特定情况的一些示例。
例如流媒体传输或DNS、SNMP等应用层协议。
}
}
\end{enumerate}
\end{document}

View File

@ -0,0 +1,89 @@
\documentclass[../public/实验报告模板]{subfiles}
\renewcommand{\mydate}{2023年12月15日}
\renewcommand{\mylabname}{传输控制协议TCP}
\renewcommand{\mychapternum}{6}
\begin{document}
\mytitle
\begin{enumerate}
\myitem{实验目的}{
\item 掌握 TCP 协议的报文格式
\item 掌握 TCP 连接的建立和释放过程
\item 掌握 TCP 数据传输中编号与确认的过程
\item 掌握 TCP 协议校验和的计算方法
\item 理解 TCP 重传机制
}
\myitem{实验设备或环境}{
\item 采用网络拓扑结构一
}
\myitem{实验原理}{
\item TCP协议简介
\item TCP报文格式
\item TCP封装
\item TCP校验和
\item TCP连接建立与释放
\item 流量控制
\item 差错控制
}
\myitemx[label=练习\arabic*\ ]{实验步骤}{
\item 察看TCP连接的建立和释放
}
\myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
\item 察看TCP连接的建立和释放
\begin{table}[H]
\centering
\caption{实验结果}
\begin{tabular}{cccc}
\toprule
字段名称 & 报文1 & 报文2 & 报文3 \\
\midrule
序列号 & 23308859 & 4100194079 & 263308860 \\
确认号 & 0 & 263308860 & 4100194080 \\
ACK & 0 & 1 & 1 \\
SYN & 1 & 1 & 0 \\
\bottomrule
\end{tabular}
\end{table}
TCP 连接建立时前两个报文的首部都有一个“最大字段长度”字段它的值是1460作用是防止报文被分片。根据IEEE 802.3 协议规定的以太网最大帧长度MTU为1500字节而TCP头部一般为20字节IP头部一般也为20字节所以这里的最大字段长度为$1500-20-20=1460$
\begin{table}[H]
\centering
\caption{实验结果}
\begin{tabular}{ccccc}
\toprule
字段名称 & 报文4 & 报文5 & 报文6 & 报文7 \\
\midrule
序列号 & 263308860 & 4100194080 & 263308861 & * \\
确认号 & 4100194080 & 263308861 & 4100194081 & * \\
ACK & 1 & 1 & 1 & * \\
FIN & 1 & 1 & 0 & * \\
\bottomrule
\end{tabular}
\end{table}
这里只有三个报文是因为报文5把FIN和ACK合并了而且报文4的ACK也为1猜测可能也是捎带确认的原因。
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-21-24-05.png}
\caption{握手与挥手}
\end{figure}
结合步骤 3、5 所填的表,理解 TCP 的三次握手建立连接和四次握手的释放连接过程,理解序号、确认号等字段在 TCP 可靠连接中所起的作用。
三次握手过程为SYN、ACK+SYNACK四次挥手过程为FIN、ACK、FIN、ACK。序号、确认号在TCP可靠连接中用于确保分组正确以及不乱序。
\thinkingquestion{
\item 为什么在 TCP 连接中需要 3 次握手,如不这样做可能会出现什么情况?
假设A与B建立连接如果只有2次握手那么B不知道A接收报文的功能是否正常也就是B的SYN发出去后A不一定收到可能由于被防火墙拦截了或超时了等原因但此时B已经认为建立连接了使用三次握手就可以避免这种情况让B确认连接能够建立。
\item 解释TCP协议的释放过程
假设A与B建立连接A发送FIN数据包B发送ACK确认B发送FIN数据包A发送ACK确认。
}
}
\end{enumerate}
\end{document}

View File

@ -0,0 +1,129 @@
\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查询方式的中的意义是便于查找。
代理服务器开放的端口为161UDP服务名为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}

View File

@ -0,0 +1,64 @@
\documentclass[../public/实验报告模板]{subfiles}
\renewcommand{\mydate}{2023年11月10日}
\renewcommand{\mylabname}{动态主机配置协议DHCP}
\renewcommand{\mychapternum}{9}
\begin{document}
\mytitle
\begin{enumerate}
\myitem{实验目的}{
\item 掌握DHCP的报文格式
\item 掌握DHCP的工作原理
}
\myitem{实验设备或环境}{
\item 采用网络拓扑结构一
}
\myitem{实验原理}{
\item DHCP简介
\item DHCP报文格式
\item 静态地址分配与动态地址分配
\item 状态转换
\item DHCP运行过程
}
\myitemx[label=练习\arabic*\ ]{实验步骤}{
\item 使用DHCP获取IP地址
\item 模拟重新登录
}
\myitemx[label=练习\arabic*\ , itemsep=1em]{实验结果总结}{
\item 使用DHCP获取IP地址
\begin{table}[H]
\centering
\caption{实验结果}
\begin{tabular}{cccccc}
\toprule
报文序号 & 操作码的值 & DHCP消息类型的值 & \parbox{5em}{租借时间的值(若有)} & 源IP地址 & 目的IP地址 \\
\midrule
0 & 1请求 & 7DHCP发行 & & 172.16.0.217 & 172.16.0.253 \\
1 & 1请求 & 1DHCP探测 & & 0.0.0.0 & 255.255.255.255 \\
2 & 2应答 & 2DHCP提供 & & 172.16.0.253 & 172.16.0.217 \\
3 & 1请求 & 3DHCP请求 & & 0.0.0.0 & 255.255.255.255 \\
4 & 2应答 & 5DHCP确认 & & 172.16.0.253 & 172.16.0.217 \\
5 & 1请求 & 8DHCP通知 & & 172.16.0.217 & 255.255.255.255 \\
6 & 1请求 & 8DHCP通知 & & 172.16.0.217 & 255.255.255.255 \\
\bottomrule
\end{tabular}
\end{table}
各报文中字段“操作码”、“DHCP消息类型”的值分别是多少该请求报文的作用是什么
字段中的值在上表中该请求报文的作用是动态获取IP。
\item 模拟重新登录
\thinkingquestion{
\item DHCP协议适合于什么情况下使用请举例说明。
DHCP主要用于大型网络环境和配置IP比较困难的地址。例如在家用无线局域网环境中让用户手动配置IP地址比较麻烦所以可以使用DHCP自动配置。
\item DHCP协议为何使用67、68两个熟知端口进行UDP通信
便于使新连接到网络中的设备发送DHCP报文。
}
}
\end{enumerate}
\end{document}

View File

@ -0,0 +1,106 @@
\documentclass[../public/实验报告模板]{subfiles}
\renewcommand{\mydate}{2023年12月22日}
\renewcommand{\mylabname}{IPv6基础}
\renewcommand{\mychapternum}{0}
\begin{document}
\mytitle
\begin{enumerate}
\myitem{实验目的}{
\item 了解华为 eNSP 网络仿真平台的使用方法;
\item 了解华为 VRP 操作系统的基本功能;
\item 了解和掌握通过 CLI 界面对华为网络设备进行 IPv6 基本配置(静态 IPv6 地址配置、无状态地址自动配置、DHCPv6 部署于配置);
\item 了解几个 ICMPv6 的应用ping、tracert 和 path MTU 发现)的工作原理;
\item 了解 NDP 的基本功能(无状态地址自动配置、地址解析和 DAD
}
\myitem{实验设备或环境}{
\item PC 机一台,运行华为 eNSP 仿真软件
\item 以每人为小组独立完成实验
}
\myitem{实验原理}{
\item 华为 eNSP 仿真平台简介
\item 华为 VRP 简介
\item 华为设备的常用配置视图
\item 华为网络设备的配置保存
\item 华为 VRP 的基本配置命令
\item 使用 eNSP 完成第一个实验
\item IPv6 地址配置实验
\item ICMPv6 与 NDP 实验
}
\myitemx[itemsep=1em]{实验步骤和结果总结}{
\item 使用 eNSP 完成第一个实验
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-21-42-03.png}
\caption{能够ping通}
\end{figure}
\item IPv6 地址配置实验
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-21-44-27.png}
\caption{配置正确能够ping通}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-21-44-50.png}
\caption{ipconfig正确}
\end{figure}
\thinkingquestion{
\item IPv6 无状态地址自动配置与 DHCPv6 地址自动配置的区别是?
无状态地址自动配置不需要独立的地址分配服务器但是可管理性差DHCPv6地址自动配置需要DHCPv6服务器客户端也需支持DHCPv6但是便于管理。
\item 在本实验中,我们使用路由器作为 IPv6 无状态地址自动配置的客户端,它依据什么规
范生成的 IPv6 接口 ID 并在获取 IPv6 地址前缀后最终形成单播地址?这个规范具体的
操作过程是什么?
IEEE EUI-64规范。具体操作过程是在48位的MAC地址对半劈开然后插入“FFFE”再把左数第7位取反这就形成了IPv6接口标识。之后在前面加上64位的IPv6地址前缀形成单播地址。
}
\item ICMPv6 与 NDP 实验
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-21-46-51.png}
\caption{RA报文内容}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-21-47-23.png}
\caption{RS和RA报文内容}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-21-47-59.png}
\caption{NS和NA报文内容}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-21-48-59.png}
\caption{ping报文内容}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-21-49-41.png}
\caption{Tracert报文内容}
\end{figure}
\begin{figure}[H]
\includegraphics[width=1\linewidth]{imgs/2024-01-02-21-50-29.png}
\caption{MTU分片}
\end{figure}
\thinkingquestion{
\item 当我们在路由器的 IPv6 接口上执行 undo ipv6 nd ra halt 命令后,该接口将周期性地发送
RA 报文,这些报文的目的 IPv6 地址是?该报文的载荷有什么内容?
目的IPv6地址是 FF02::1用来发给链路上的所有节点。该报文的载荷有路由器的接口MAC地址以及IPv6地址前缀。
\item 当一台设备的接口获得 IPv6 地址后,设备立即启动 DAD 过程并在接口上发送一个 NS
报文用于检测该地址是否已被使用,这个 NS 报文的目的 IPv6 地址是什么?这个地址
是如何形成的?
这个NS报文的目的IPv6地址是待检测地址对应的被请求节点组播地址这个地址是由固定前缀FF02::1:FF00:0/104和对应IPv6地址的最后24bit组成。
\item IPv6 报文头部中的“Hop Limit”字段有什么用途
用于限制RA报文能够经过的最大跳数。
}
}
\end{enumerate}
\end{document}