From 74121d07515772f39f5132d18ee6a8c65c6e89e0 Mon Sep 17 00:00:00 2001 From: Jeff Chen Date: Fri, 26 Feb 2021 10:54:20 +0800 Subject: [PATCH] 2-26 morning --- data/appendix/cheat_sheet.tex | 12 ++++++------ data/ch_wireshark/preface.tex | 8 ++++---- data/ch_wireshark/sec_arp.tex | 27 ++++++++++++++------------- data/ch_wireshark/sec_ip.tex | 18 +++++++++--------- data/ch_wireshark/sec_tcp.tex | 33 +++++++++++++++------------------ 5 files changed, 48 insertions(+), 50 deletions(-) diff --git a/data/appendix/cheat_sheet.tex b/data/appendix/cheat_sheet.tex index 0462b18..ec0a9fb 100644 --- a/data/appendix/cheat_sheet.tex +++ b/data/appendix/cheat_sheet.tex @@ -73,18 +73,18 @@ \multirow{3}{1.5cm}{\centering 网络抓包与协议分析} & Wireshark软件使用和ARP分析 & - \tabitem{掌握Wireshark的基本操作,使用捕获过滤器和显示过滤器,抓取和分析有线局域网的数据包。} \par - \tabitem{掌握以太网MAC帧的基本结构。} \par - \tabitem{掌握ARP协议的特点及工作过程。} + \tabitem{学习Wireshark的基本操作,掌握过滤器使用,抓取和分析数据包。} \par + \tabitem{熟悉以太网MAC帧的基本结构。} \par + \tabitem{掌握ARP协议的特点及工作原理。} & 2 & $\star$ \\ \cline{2-5} & IP和ICMP分析 & - \tabitem{熟练使用Wireshark软件,观察IP数据报的基本结构,分析数据报的分片过程;} \par - \tabitem{掌握基于ICMP协议的ping和traceroute命令及其工作过程。} + \tabitem{观察IP数据报的基本结构,理解数据报的分片过程;} \par + \tabitem{掌握基于ICMP协议的ping和traceroute命令及其工作原理。} & 2 & $\star\star$ \\ \cline{2-5} & TCP与拥塞控制 & - \tabitem{运用Wireshark观察分析TCP协议报文,分析通信时序,理解TCP的工作过程;} \par + \tabitem{观察TCP报文,分析通信时序,理解TCP的工作过程;} \par \tabitem{分析TCP连接管理、流量控制和拥塞控制的过程,能够分析TCP的性能问题。} & 4 & $\star\star\star$ \\ \hline diff --git a/data/ch_wireshark/preface.tex b/data/ch_wireshark/preface.tex index a961bf7..c392c66 100644 --- a/data/ch_wireshark/preface.tex +++ b/data/ch_wireshark/preface.tex @@ -3,9 +3,9 @@ \chapter{网络抓包与协议分析} \label{chap:wireshark} -本单元实验要求学生能熟练使用Wireshark软件, -捕捉和分析有线网络数据包,掌握以太网、ARP、IP、ICMP -和TCP等重要协议传输单元结构, +本单元实验要求学生能熟练使用网络抓包软件, +捕捉和分析网络数据包,掌握以太网、ARP、IP、ICMP +和TCP等重要协议传输单元的结构, 深入理解相关网络命令和重要协议算法的工作原理, -从而培养网络故障检测、网络性能改进和网络安全分析的能力。 +从而培养学生网络故障检测、网络性能改进和网络安全分析的能力。 % (备注:第二版将增补实验1.4: IEEE 802.11协议分析。) \ No newline at end of file diff --git a/data/ch_wireshark/sec_arp.tex b/data/ch_wireshark/sec_arp.tex index 433905e..e5d1828 100644 --- a/data/ch_wireshark/sec_arp.tex +++ b/data/ch_wireshark/sec_arp.tex @@ -1,29 +1,30 @@ %# -*- coding: utf-8-unix -*- -\section{Wireshark软件使用与ARP分析} +\section{Wireshark软件使用与ARP协议分析} \label{sec:c:wireshark:s:arp} \subsection{实验目的} \label{subsec:c:wireshark:s:arp_object} -本实验旨在让学生掌握Wireshark的基本操作,使用捕获过滤器和显示过滤器, -抓取和分析有线局域网的数据包;掌握以太网MAC帧的基本结构,掌握ARP协议的特点及工作过程。 +本实验旨在让学生掌握Wireshark的基本操作, +抓取和分析有线局域网的数据包; +掌握以太网MAC帧的基本结构, +掌握ARP协议的特点及工作过程。 \subsection{实验内容} \label{subsec:c:wireshark:s:arp_content} -练习使用Wireshark抓取相关有线局域网的数据包并进行分析。 +练习使用Wireshark抓取局域网的数据包并进行分析: \begin{enumerate} - \item \textbf{熟悉Wireshark界面、基本设置和使用方法:} - 熟悉菜单、工具栏和主窗口,根据自己需要设置Wireshark视图; - 学习使用捕获过滤器和显示过滤器;捕获有线局域网的数据包并保存 - \item \textbf{MAC地址:}了解MAC地址的组成,查看其OUI信息。 + \item \textbf{学习Wireshark基本操作:} + 重点掌握捕获过滤器和显示过滤器。 + \item \textbf{观察MAC地址:}了解MAC地址的组成,辨识MAC地址类型。 \item \textbf{分析以太网帧结构:}观察以太网帧的首部和尾部, - 了解数据封装成帧的过程,计算帧长度。 - \item \textbf{差错检测,FCS计算检验:}计算帧尾校验和, + 了解数据封装成帧的原理。 + \item \textbf{计算FCS检验:}计算帧尾校验和, 并用抓包数据文件进行验证。 - \item \textbf{ARP协议分析:}抓取ARP请求和应答报文,分析其工作过程。 + \item \textbf{分析ARP协议:}抓取ARP请求和应答报文,分析其工作过程。 \end{enumerate} \subsection{实验原理} @@ -123,8 +124,8 @@ IP地址长度为4字节。每个字段的含义如下: \label{subsec:c:wireshark:s:arp_requirement} \begin{itemize} - \item 装有Wireshark软件的PC机一台(Windows或Linux操作系统); - \item 处于局域网环境。Wireshark建议3.0及以上。 + \item PC机一台,连入局域网; + \item Wireshark软件,建议3.0以上。 \end{itemize} \subsection{实验步骤} diff --git a/data/ch_wireshark/sec_ip.tex b/data/ch_wireshark/sec_ip.tex index 7fff86c..486e655 100644 --- a/data/ch_wireshark/sec_ip.tex +++ b/data/ch_wireshark/sec_ip.tex @@ -8,8 +8,8 @@ IP和ICMP协议是TCP/IP协议簇中的网络层协议, 在网络寻址定位、数据分组转发和路由选择等任务中发挥了重要作用。 -本实验使学生能熟练使用Wireshark软件,观察IP数据报的基本结构, -分析数据报的分片;掌握基于ICMP协议的ping和traceroute命令及其工作过程。 +本实验要求熟练使用Wireshark软件,观察IP数据报的基本结构, +分析数据报的分片;掌握基于ICMP协议的ping和traceroute命令及其工作原理。 \subsection{实验内容} \label{subsec:c:wireshark:s:ip_content} @@ -39,7 +39,7 @@ IP和ICMP协议是TCP/IP协议簇中的网络层协议, 可实现大规模的异构网络互联互通,为主机提供无连接的、尽力而为的数据包传输服务。 在网际协议第4版(IPv4)中,IP数据报是一个可变长分组, 包括首部和数据两部分(如图\ref{c:wireshark_ip-structure})。 -首部由20~60字节组成,包含与路由选择和传输有关的重要信息,其各字段意义如下: +首部由20~60字节组成,包含与路由选择和传输有关的重要信息,其各字段意义如下: \begin{figure}[!ht] \centering @@ -220,7 +220,7 @@ tracert命令(Linux)格式和常用参数如图\ref{fig:tracert-cmd}所示 \subsection{实验条件} \label{subsec:c:wireshark:s:ip_requirement} -装有Wireshark软件的PC机一台(Linux或OS 操作系统);局域网环境。 +装有Wireshark软件的PC机一台,处于局域网环境。 参考资料: @@ -333,18 +333,18 @@ tracert命令(Linux)格式和常用参数如图\ref{fig:tracert-cmd}所示 在PC1向PC2发送数据的传输过程中, 以太网数据帧的首部字段和IP数据报的首部字段是怎样变化的? 如果有条件,请搭建实验平台进行实验,并使用Wireshark软件验证你的答案。 - \item 拒绝服务(Denial of Service,DoS)攻击,通过消耗目标主机设备的某种资源, + \item 拒绝服务(Denial of Service,DoS)攻击,DoS通过消耗目标主机设备的某种资源, 导致其网络服务不能被正常用户使用。 \begin{enumerate} \item IP数据报分片机制可能被攻击者利用来构建拒绝服务攻击。 - 试设计一种利用IP数据报分片机制发动DOS攻击的方法,并提出防御的思路。 - \item 请思考利用ICMP报文构建DOS攻击的可能性以及防御方法。 + 试设计一种利用IP数据报分片机制发动DoS攻击的方法,并提出防御的思路。 + \item 请思考利用ICMP报文构建DoS攻击的可能性以及防御方法。 \end{enumerate} \item 在实际操作中,Traceroute命令返回的某些条目以“*”号表示。 - 请思考有哪些原因可能导致这样的情况,该如何避免这样的情况。 + 请思考有哪些原因可能导致这样的情况。 \item 发送方要怎样决定IP数据报分组大小, 才能避免因为不同网络MTU不一致而引起分片呢? - \item 从客户端给服务器(其地址为\texttt{\#IP})发送三个ping命令, + \item 从PC1给PC2(其地址为\texttt{\#IP})发送三个ping命令, 请比较命令的结果,并用Wireshark软件进行观察分析。 \begin{enumerate} \item \texttt{ping \#IP -l 1472 -f -n 1} diff --git a/data/ch_wireshark/sec_tcp.tex b/data/ch_wireshark/sec_tcp.tex index 2233abf..65e5a7f 100644 --- a/data/ch_wireshark/sec_tcp.tex +++ b/data/ch_wireshark/sec_tcp.tex @@ -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分) 完成流量控制操作要求,结合上下分析报文窗口变化,