|  |  |  | @ -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分) 完成流量控制操作要求,结合上下分析报文窗口变化, | 
			
		
	
	
		
			
				
					|  |  |  | 
 |