|
|
|
@ -9,7 +9,7 @@
|
|
|
|
|
TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、
|
|
|
|
|
可靠的、基于字节流的传输层通信协议。
|
|
|
|
|
本实验通过运用Wireshark对网络活动进行抓包分析,
|
|
|
|
|
让学生观察TCP协议报文,分析通信时序,帮助同学理解TCP的工作过程,
|
|
|
|
|
观察TCP协议报文,分析通信时序,理解TCP的工作过程,
|
|
|
|
|
掌握TCP工作原理与实现;
|
|
|
|
|
学会运用Wireshark分析TCP连接管理、流量控制和拥塞控制的过程,发现TCP的性能问题。
|
|
|
|
|
|
|
|
|
@ -243,17 +243,14 @@ BBR\footnote{\href{https://queue.acm.org/detail.cfm?id=3022184}{BBR: Congestion-
|
|
|
|
|
\label{subsec:c:wireshark:s:tcp_requirement}
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\item 硬件:每个学生一台物理实验机(8G以上内存,80G以上硬盘空间)。
|
|
|
|
|
\item 软件:物理机装Windows7/10、VMWare或VirtualBox;
|
|
|
|
|
两台 Ubuntu18虚拟机(每台2G内存、20G HD)。
|
|
|
|
|
每台Ubuntu虚机上预装wireshark、curl、vsftp、netwox、telnet、nmap和iperf3。
|
|
|
|
|
\item 环境准备:分别以Ubuntu 1\#机、Ubuntu2\#机作为TCP的客户端与服务端,
|
|
|
|
|
以下简称1\#机,2\#机;设置虚机网络连接为NAT模式,IPv4设置为DHCP。
|
|
|
|
|
启动两台实验虚机后,可使用ping进行连接性测试,
|
|
|
|
|
\item 硬件:处于同一局域网的两台PC机。
|
|
|
|
|
\item 软件:Ubuntu系统(18.04版),
|
|
|
|
|
预装wireshark、curl、vsftp、netwox、telnet、nmap和iperf3。
|
|
|
|
|
\item 环境准备:分别以PC1、PC2作为TCP的客户端与服务端;
|
|
|
|
|
启动两台实验机后,可使用ping进行连接性测试,
|
|
|
|
|
也可使用nmap扫一下对方打开的端口,
|
|
|
|
|
确保实验环境正常
|
|
|
|
|
(指导书中服务器的IP为192.168.100.144,指导书中命令若有用及此IP,
|
|
|
|
|
应替换为实际观察到的IP) 。
|
|
|
|
|
(指导书中PC2的IP为192.168.100.144,实验中应替换为实际的IP) 。
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
参考资料:
|
|
|
|
|
|
|
|
|
@ -416,19 +413,19 @@ BBR\footnote{\href{https://queue.acm.org/detail.cfm?id=3022184}{BBR: Congestion-
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\item TCP在不可靠的IP层上建立了可靠的端对端连接,
|
|
|
|
|
如何在不可靠的UDP上建立可靠的端对端传输系统呢?
|
|
|
|
|
如果要在不可靠的UDP上建立可靠的端对端传输系统,需要考虑哪些方面?
|
|
|
|
|
\item TCP连接建立过程中,存在哪些等待队列?
|
|
|
|
|
这些队列是否可能出现溢出状况,高并发TCP连接应用如何调优?
|
|
|
|
|
\item 本次实验观察了Linux环境下的TCP实现,在Windows、MacOS环境下,
|
|
|
|
|
这些队列是否可能出现溢出状况?该如何避免?
|
|
|
|
|
\item 本次实验观察了Linux环境下的TCP实现,在Windows、macOS环境下,
|
|
|
|
|
操作系统又是如何实现TCP的呢?
|
|
|
|
|
类似Linux TCP参数,在不同系统环境下如何查看或设置,
|
|
|
|
|
请尝试通过抓包其通信过程发现其实现异同。
|
|
|
|
|
\item TCP是封装单元为MSS,可是我们在抓包过程中常发现远大于此值的TCP包,
|
|
|
|
|
为什么TCP可以提交如此大的报文呢?
|
|
|
|
|
此类型的包远超出链路层的MTU,它是如何被处理的呢?请从两端同时抓包观察比对。
|
|
|
|
|
\item 在TCP状态机(图\ref{fig:c:wireshark_TCP-status-machine})中,
|
|
|
|
|
有些状态停留时间较长,易观察到,有些状态很短暂不易观察到。
|
|
|
|
|
试列出不易观察到的状态,并考虑观察到它们的可能方法。
|
|
|
|
|
\item TCP是封装单元为MSS,可是我们在抓包过程中常发现远大于此值的TCP包,
|
|
|
|
|
为什么TCP可以提交如此大的报文呢?
|
|
|
|
|
此类型的包远超出链路层的MTU,它是如何被处理的呢?请从两端同时抓包观察比对。
|
|
|
|
|
|
|
|
|
|
\begin{figure}[!ht]
|
|
|
|
|
\centering
|
|
|
|
@ -453,7 +450,7 @@ BBR\footnote{\href{https://queue.acm.org/detail.cfm?id=3022184}{BBR: Congestion-
|
|
|
|
|
\texttt{iptables -F}清空当前规则;
|
|
|
|
|
同样,使用\texttt{tc qdisc del dev eth0 root RULE}清除网卡eth0队列规则。
|
|
|
|
|
使用虚拟机的快照功能是更原始、更彻底的还原方式。
|
|
|
|
|
\item 批量网络扫描是威害网络行为,仅在实验室环境下进行试验学习,
|
|
|
|
|
\item 批量网络扫描是危害网络行为,仅在实验室环境下进行试验学习,
|
|
|
|
|
不得用于运营网络。
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
@ -463,7 +460,7 @@ BBR\footnote{\href{https://queue.acm.org/detail.cfm?id=3022184}{BBR: Congestion-
|
|
|
|
|
完成本次实验,并提交一份实验报告和一组Wireshark数据存储文件。
|
|
|
|
|
报告内容应当包括以下部分,相关的分析解释都对应有截图证明,并与数据存储文件吻合。
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\item (20分) 正确绘制出了三次握手报文与四次挥手报文(须结合抓得报文序号),
|
|
|
|
|
\item (20分) 正确绘制出了三次握手报文与四次挥手报文(须结合捕获的报文),
|
|
|
|
|
并正确标识出了各阶段TCP状态;
|
|
|
|
|
\item (20分) 观察传输异常现象,并进行分析;
|
|
|
|
|
\item (20分) 完成流量控制操作要求,结合上下分析报文窗口变化,
|
|
|
|
|