Merge branch 'wireshark' into 'master'

第一单元 Wireshark更新

preface,TCP 几处小修正。

See merge request !6
tmp/2387f5b0b63e5e559086632dd5280c76/head
夏竟 4 years ago
commit c2f424b82e

@ -3,8 +3,9 @@
\chapter{网络抓包与协议分析} \chapter{网络抓包与协议分析}
\label{chap:wireshark} \label{chap:wireshark}
本单元实验要求学生能熟练使用Wireshark软件捕捉、分析有线和无线网络数据包 本单元实验要求学生能熟练使用Wireshark软件
掌握以太网、802.11、ARP、IP、ICMP和TCP等重要协议传输单元结构 捕捉和分析有线网络数据包掌握以太网、ARP、IP、ICMP
和TCP等重要协议传输单元结构
深入理解相关网络命令和重要协议算法的工作原理, 深入理解相关网络命令和重要协议算法的工作原理,
从而培养网络故障检测、网络性能改进和网络安全分析的能力。 从而培养网络故障检测、网络性能改进和网络安全分析的能力。
% (备注第二版将增补实验1.4: IEEE 802.11协议分析。) % (备注第二版将增补实验1.4: IEEE 802.11协议分析。)

@ -220,7 +220,7 @@ IP地址长度为4字节。每个字段的含义如下
\begin{figure}[!ht] \begin{figure}[!ht]
\centering \centering
\includegraphics[width=16cm]{wireshark-statistic} \includegraphics[width=12cm]{wireshark-statistic}
\caption{统计功能} \caption{统计功能}
\label{fig:c:wireshark_wireshark-statistic} \label{fig:c:wireshark_wireshark-statistic}
\end{figure} \end{figure}

@ -248,7 +248,7 @@ tracert命令Linux格式和常用参数如图\ref{fig:tracert-cmd}所示
\begin{figure}[!ht] \begin{figure}[!ht]
\centering \centering
\includegraphics[width=16cm]{wireshark-monitor} \includegraphics[width=12cm]{wireshark-monitor}
\caption{Wireshark监视器界面} \caption{Wireshark监视器界面}
\label{fig:c:wireshark_wireshark-monitor} \label{fig:c:wireshark_wireshark-monitor}
\end{figure} \end{figure}
@ -258,7 +258,7 @@ tracert命令Linux格式和常用参数如图\ref{fig:tracert-cmd}所示
\begin{figure}[!ht] \begin{figure}[!ht]
\centering \centering
\includegraphics[width=16cm]{ip-view} \includegraphics[width=12cm]{ip-view}
\caption{查看IP数据报} \caption{查看IP数据报}
\label{fig:c:wireshark_ip-view} \label{fig:c:wireshark_ip-view}
\end{figure} \end{figure}
@ -268,7 +268,7 @@ tracert命令Linux格式和常用参数如图\ref{fig:tracert-cmd}所示
\begin{figure}[!ht] \begin{figure}[!ht]
\centering \centering
\includegraphics[width=16cm]{echo-request} \includegraphics[width=12cm]{echo-request}
\caption{Echo request示例} \caption{Echo request示例}
\label{fig:c:wireshark_echo-request} \label{fig:c:wireshark_echo-request}
\end{figure} \end{figure}
@ -302,7 +302,7 @@ tracert命令Linux格式和常用参数如图\ref{fig:tracert-cmd}所示
\begin{figure}[!ht] \begin{figure}[!ht]
\centering \centering
\includegraphics[width=16cm]{wireshark-filter-setup} \includegraphics[width=12cm]{wireshark-filter-setup}
\caption{在Wireshark中设置过滤条件} \caption{在Wireshark中设置过滤条件}
\label{fig:c:wireshark_wireshark-filter-setup} \label{fig:c:wireshark_wireshark-filter-setup}
\end{figure} \end{figure}

@ -24,7 +24,7 @@ TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、
(例如尝试连接未存活的主机或未监听端口或客户端发送了第一个SYN连接请求而服务端无响应) (例如尝试连接未存活的主机或未监听端口或客户端发送了第一个SYN连接请求而服务端无响应)
观察SYN洪泛影响观察分析TCP通信过程中的各类异常报文(例如数据超时、乱序) 观察SYN洪泛影响观察分析TCP通信过程中的各类异常报文(例如数据超时、乱序)
了解其触发机制与含义。 了解其触发机制与含义。
\item 流量控制(进阶)运行一组TCP连接客户端/服务器程序(Python代码见附录) \item 流量控制(进阶)运行一组TCP连接客户端/服务器程序(Python代码见节后附件)
制造收发不平衡场景,观察收发报文中通告窗口的变化,分析与窗口机制相关的类型报文, 制造收发不平衡场景,观察收发报文中通告窗口的变化,分析与窗口机制相关的类型报文,
了解滑动窗口工作原理。 了解滑动窗口工作原理。
\item 拥塞控制(进阶):改变带宽、时延、丢包率等网络参数,观察大文件传输过程, \item 拥塞控制(进阶):改变带宽、时延、丢包率等网络参数,观察大文件传输过程,
@ -41,10 +41,8 @@ TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、
TCP协议基于“尽力而为”的网络层为应用层提供可靠的进程间通信服务 TCP协议基于“尽力而为”的网络层为应用层提供可靠的进程间通信服务
具体地说是可靠的全双工的端对端字节流传输服务。 具体地说是可靠的全双工的端对端字节流传输服务。
在TCP的协议传输单元中(TCP报文段TCP Segment) 在TCP的协议传输单元中(TCP报文段TCP Segment)
发送方和接收方使用字节序号(Sequence Number)明确收发的数据,并精确到字节单位; 收发双方以字节为单位使用序列号(Sequence Number)明确收发的数据,
使用ACK反馈(Acknowledgment)机制,实现端对端的可靠传输控制。 使用ACK反馈(Acknowledgment)机制,实现端对端的可靠传输控制。
接下来简要介绍TCP报文段的结构
TCP的连接管理、差错控制、流量控制和拥塞控制的原理。
\paragraph{TCP报文段(Segment)}~{} \paragraph{TCP报文段(Segment)}~{}
\\ \\
@ -85,25 +83,25 @@ TCP 报文段结构如图\ref{fig:c:wireshark_TCP-structure}所示,
\begin{enumerate} \begin{enumerate}
\item \textbf{源端口号(Source Port)}16位的源端口 \item \textbf{源端口号(Source Port)}16位的源端口
与源IP地址一起标识发送该TCP 报文段的通信进程。端口号范围0\~65535。 与源IP地址一起标识发送该TCP报文段的通信进程。端口号范围0-65535。
\item \textbf{目的端口号(Destionation Port)}16位目的端口 \item \textbf{目的端口号(Destionation Port)}16位目的端口
与目的IP地址一起标识接收该TCP 报文段的通信进程。端口号范围0\~65535。 与目的IP地址一起标识接收该TCP报文段的通信进程。
\item \textbf{序号(Sequence Number)}该TCP 报文段中第一个数据字节的序号占4个字节。在TCP连接建立时通常生成一个随机数作为字节序列号的初始值ISN \item \textbf{序号(Sequence Number)}该TCP报文段中第一个数据字节的序号占4个字节。在TCP连接建立时通常生成一个随机数作为字节序列号的初始值(ISN)
\item \textbf{确认号(Acknowledgement Number)} \item \textbf{确认号(Acknowledgement Number)}
表示期望收到对方下一个报文段的字节序号占4个字节。 表示期望收到对方下一个报文段的字节序号占4个字节。
\item \textbf{标志位(TCP Flags)} \item \textbf{标志位(TCP Flags)}
\begin{enumerate} \begin{enumerate}
\item 确认ACK(Acknowledgement)置1表示确认号字段有效。 \item 确认ACK(Acknowledgement)置1表示确认号字段有效。
\item 推送PSH(Push)置1表示该报文段优先级高 \item 推送PSH(Push)置1表示该报文段优先级高
接收方 TCP 尽快推送给接收应用程序。 接收方TCP应尽快推送给接收应用程序。
\item 复位RST(Reset)置1表示需要释放TCP连接并重新建立连接。 \item 复位RST(Reset)置1表示需要释放TCP连接并重新建立连接。
一般称携带 RST 标志的 TCP 报文段为「复位报文段」 一般称带RST标志的TCP报文段为“复位报文段”
\item 同步SYN(Synchronization)置1表示这是TCP请求连接报文段。 \item 同步SYN(Synchronization)置1表示这是TCP请求连接报文段。
一般称 SYN 标志的 TCP 报文段为“同步报文段”。 一般称带SYN标志的TCP报文段为“同步报文段”。
\item 终止FIN(Finish)置l表示发送方的数据已经发送完毕 \item 终止FIN(Finish)置l表示发送方的数据已经发送完毕
并要求释放TCP连接。 并要求释放TCP连接。
\end{enumerate} \end{enumerate}
\item \textbf{窗口大小(Window)}表示接收缓存大小,即暂时缓存接收的数据 \item \textbf{窗口大小(Window)}表示接收缓存大小。
最早TCP协议首部只设置了16位的窗口大小允许的最大缓存大小不超过64KB 最早TCP协议首部只设置了16位的窗口大小允许的最大缓存大小不超过64KB
而RFC1323打破此限定设置了TCP窗口缩放因子(Window size scaling factor) 而RFC1323打破此限定设置了TCP窗口缩放因子(Window size scaling factor)
使窗口大小等于二者的乘积。 使窗口大小等于二者的乘积。
@ -222,8 +220,8 @@ BBR\footnote{\href{https://queue.acm.org/detail.cfm?id=3022184}{BBR: Congestion-
\subsubsection{实验方法和手段} \subsubsection{实验方法和手段}
使用VMWare软件配置两台本地虚拟机本地相互连接(如图\ref{fig:c:wireshark_TCP-topo})。 使用VMWare软件配置两台本地虚拟机本地相互连接(如图\ref{fig:c:wireshark_TCP-topo})。
在VMWare中的虚拟机设置->网络适配器->高级中虚拟机的网卡传入/传出带宽、 通过“虚拟机设置->硬件->网络适配器->高级”(如图\ref{fig:c:wireshark_VM-advance-setup}
传输速率、时延等,用来仿真不同的网络条件(如图\ref{fig:c:wireshark_VM-advance-setup} 设置虚拟机的网卡传入/传出带宽、数据包丢失率、延迟等,仿真不同的网络条件
本实验需要使用的命令和工具,如表\ref{tab:c:wireshark_tools-command}所列。 本实验需要使用的命令和工具,如表\ref{tab:c:wireshark_tools-command}所列。
常用的Linux操作系统命令还包括echo、cat、sysctl、ping、ftp。 常用的Linux操作系统命令还包括echo、cat、sysctl、ping、ftp。
@ -370,7 +368,7 @@ BBR\footnote{\href{https://queue.acm.org/detail.cfm?id=3022184}{BBR: Congestion-
\texttt{tc qdisc add dev ens33 root netem delay 70ms 10ms 30\% duplicate 1\% reorder 5\% 10\% corrupt 0.1\%} \texttt{tc qdisc add dev ens33 root netem delay 70ms 10ms 30\% duplicate 1\% reorder 5\% 10\% corrupt 0.1\%}
(将此行命令的add改为change即修改、del即删除此行规则)。 (将此行命令的add改为change/del即修改/删除此规则)。
\item 下载服务器上的大文件:\texttt{wget 192.168.100.144/100M.file} \item 下载服务器上的大文件:\texttt{wget 192.168.100.144/100M.file}
\end{enumerate} \end{enumerate}

Loading…
Cancel
Save