From c2b4eb336476236f387b2cd9f64829337917e758 Mon Sep 17 00:00:00 2001 From: Jeff Chen Date: Tue, 23 Feb 2021 21:11:29 +0800 Subject: [PATCH 1/6] 2-23 xmu sum update --- data/ch_wireshark/sec_arp.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/ch_wireshark/sec_arp.tex b/data/ch_wireshark/sec_arp.tex index fafc29e..1d43652 100644 --- a/data/ch_wireshark/sec_arp.tex +++ b/data/ch_wireshark/sec_arp.tex @@ -220,7 +220,7 @@ IP地址长度为4字节。每个字段的含义如下: \begin{figure}[!ht] \centering - \includegraphics[width=16cm]{wireshark-statistic} + \includegraphics[width=12cm]{wireshark-statistic} \caption{统计功能} \label{fig:c:wireshark_wireshark-statistic} \end{figure} From bab86865f88906444689525127515f60235f86c3 Mon Sep 17 00:00:00 2001 From: Jeff Chen Date: Tue, 23 Feb 2021 21:14:27 +0800 Subject: [PATCH 2/6] 2-23 xmu sum update --- data/ch_wireshark/sec_ip.tex | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/ch_wireshark/sec_ip.tex b/data/ch_wireshark/sec_ip.tex index 026d906..7fff86c 100644 --- a/data/ch_wireshark/sec_ip.tex +++ b/data/ch_wireshark/sec_ip.tex @@ -248,7 +248,7 @@ tracert命令(Linux)格式和常用参数如图\ref{fig:tracert-cmd}所示 \begin{figure}[!ht] \centering - \includegraphics[width=16cm]{wireshark-monitor} + \includegraphics[width=12cm]{wireshark-monitor} \caption{Wireshark监视器界面} \label{fig:c:wireshark_wireshark-monitor} \end{figure} @@ -258,7 +258,7 @@ tracert命令(Linux)格式和常用参数如图\ref{fig:tracert-cmd}所示 \begin{figure}[!ht] \centering - \includegraphics[width=16cm]{ip-view} + \includegraphics[width=12cm]{ip-view} \caption{查看IP数据报} \label{fig:c:wireshark_ip-view} \end{figure} @@ -268,7 +268,7 @@ tracert命令(Linux)格式和常用参数如图\ref{fig:tracert-cmd}所示 \begin{figure}[!ht] \centering - \includegraphics[width=16cm]{echo-request} + \includegraphics[width=12cm]{echo-request} \caption{Echo request示例} \label{fig:c:wireshark_echo-request} \end{figure} @@ -302,7 +302,7 @@ tracert命令(Linux)格式和常用参数如图\ref{fig:tracert-cmd}所示 \begin{figure}[!ht] \centering - \includegraphics[width=16cm]{wireshark-filter-setup} + \includegraphics[width=12cm]{wireshark-filter-setup} \caption{在Wireshark中设置过滤条件} \label{fig:c:wireshark_wireshark-filter-setup} \end{figure} From 6738b37ca0fa32f382750db293e670180f9fba17 Mon Sep 17 00:00:00 2001 From: Jeff Chen Date: Thu, 25 Feb 2021 14:12:18 +0800 Subject: [PATCH 3/6] 2-25 after Alpha --- data/ch_wireshark/sec_tcp.tex | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/data/ch_wireshark/sec_tcp.tex b/data/ch_wireshark/sec_tcp.tex index 8dfea35..5aa1910 100644 --- a/data/ch_wireshark/sec_tcp.tex +++ b/data/ch_wireshark/sec_tcp.tex @@ -24,7 +24,7 @@ TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、 (例如,尝试连接未存活的主机或未监听端口或客户端发送了第一个SYN连接请求而服务端无响应); 观察SYN洪泛影响;观察分析TCP通信过程中的各类异常报文(例如数据超时、乱序), 了解其触发机制与含义。 - \item 流量控制(进阶):运行一组TCP连接客户端/服务器程序(Python代码见附录), + \item 流量控制(进阶):运行一组TCP连接客户端/服务器程序(Python代码见节后附件), 制造收发不平衡场景,观察收发报文中通告窗口的变化,分析与窗口机制相关的类型报文, 了解滑动窗口工作原理。 \item 拥塞控制(进阶):改变带宽、时延、丢包率等网络参数,观察大文件传输过程, @@ -41,10 +41,10 @@ TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、 TCP协议基于“尽力而为”的网络层为应用层提供可靠的进程间通信服务, 具体地说是可靠的全双工的端对端字节流传输服务。 在TCP的协议传输单元中(TCP报文段,TCP Segment), -发送方和接收方使用字节序号(Sequence Number)明确收发的数据,并精确到字节单位; +收发双方以字节为单位使用序列号(Sequence Number)明确收发的数据, 使用ACK反馈(Acknowledgment)机制,实现端对端的可靠传输控制。 接下来,简要介绍TCP报文段的结构, -TCP的连接管理、差错控制、流量控制和拥塞控制的原理。 +TCP的连接管理、流量控制和拥塞控制等原理。 \paragraph{TCP报文段(Segment)}~{} \\ @@ -63,16 +63,16 @@ TCP 报文段结构如图\ref{fig:c:wireshark_TCP-structure}所示, \begin{enumerate} \item \textbf{源端口号(Source Port):}16位的源端口, - 与源IP地址一起标识发送该TCP 报文段的通信进程。端口号范围0\~65535。 + 与源IP地址一起标识发送该TCP 报文段的通信进程。端口号范围0-65535。 \item \textbf{目的端口号(Destionation Port):}16位目的端口, - 与目的IP地址一起标识接收该TCP 报文段的通信进程。端口号范围0\~65535。 - \item \textbf{序号(Sequence Number):}该TCP 报文段中第一个数据字节的序号,占4个字节。在TCP连接建立时,通常生成一个随机数作为字节序列号的初始值(ISN)。 + 与目的IP地址一起标识接收该TCP 报文段的通信进程。端口号范围0-65535。 + \item \textbf{序号(Sequence Number):}该TCP 报文段中第一个数据字节的序号,占4个字节。在TCP连接建立时,通常生成一个随机数作为字节序列号的初始值(ISN)。 \item \textbf{确认号(Acknowledgement Number):} 表示期望收到对方下一个报文段的字节序号,占4个字节。 \item \textbf{标志位(TCP Flags):} \begin{enumerate} - \item 确认ACK (Acknowledgement):置1表示确认号字段有效。 - \item 推送PSH (Push):置1表示该报文段优先级高, + \item 确认ACK(Acknowledgement):置1表示确认号字段有效。 + \item 推送PSH(Push):置1表示该报文段优先级高, 接收方 TCP 应该尽快推送给接收应用程序。 \item 复位RST(Reset):置1表示需要释放 TCP 连接并重新建立连接。 一般称携带 RST 标志的 TCP 报文段为「复位报文段」。 @@ -103,7 +103,7 @@ TCP 报文段结构如图\ref{fig:c:wireshark_TCP-structure}所示, \textbf{建立过程:}TCP是面向连接的,数据传输之前必须在双方之间建立一条连接, 并通过三次握手过程完成。 -其主要目的是,同步连接双方的序列号和确认号,并交换 TCP窗口大小等控制信息。 +其主要目的是,同步连接双方的序列号和确认号,并交换TCP窗口大小等控制信息。 一般地,客户端主动向服务器端发起连接请求,具体过程如下: \begin{enumerate} @@ -128,7 +128,7 @@ TCP 报文段结构如图\ref{fig:c:wireshark_TCP-structure}所示, 服务器端完成数据发送之后,也发出FIN=1的报文请求释放连接, 并进入 LAST-ACK状态,直至客户端返回确认(第四次挥手)才关闭TCP连接。 客户端收到服务器的FIN报文后,则进入TIME\_WAIT状态, -并等待 2MSL(最大存活时间- Maximum Segment Lifetime)时间之后,完全关闭TCP连接。 +并等待2MSL(最大存活时间- Maximum Segment Lifetime)时间之后,完全关闭TCP连接。 (注:释放连接也可由服务器端先发起) \paragraph{TCP流量控制}~{} @@ -138,7 +138,7 @@ TCP 报文段结构如图\ref{fig:c:wireshark_TCP-structure}所示, TCP利用滑动窗口(Sliding Window)机制实施流量控制, 其基本原理是用TCP报文段中的窗口大小字段来控制数据发送速率, 即发送方的发送窗口应小于接收方回应报文中的通告窗口值。 -为了提高信道利用率,TCP采用了连续ARQ (Automatic Repeat reQuest), +为了提高信道利用率,TCP采用了连续ARQ(Automatic Repeat reQuest), TCP两端都可以连续发出若干个分组然后等待确认, 也都设有发送/接收窗口和发送/接收缓存。 其中发送窗口可以用3个指针表示, @@ -200,8 +200,8 @@ BBR\footnote{\href{https://queue.acm.org/detail.cfm?id=3022184}{BBR: Congestion- \subsubsection{实验方法和手段} 使用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}所列。 常用的Linux操作系统命令还包括:echo、cat、sysctl、ping、ftp。 From 8433a8dbe07f7b75ff694ded9250644e88cf5153 Mon Sep 17 00:00:00 2001 From: Jeff Chen Date: Thu, 25 Feb 2021 14:23:31 +0800 Subject: [PATCH 4/6] 2-25 after Alpha --- data/ch_wireshark/sec_tcp.tex | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/data/ch_wireshark/sec_tcp.tex b/data/ch_wireshark/sec_tcp.tex index 5aa1910..76186dd 100644 --- a/data/ch_wireshark/sec_tcp.tex +++ b/data/ch_wireshark/sec_tcp.tex @@ -63,25 +63,25 @@ TCP 报文段结构如图\ref{fig:c:wireshark_TCP-structure}所示, \begin{enumerate} \item \textbf{源端口号(Source Port):}16位的源端口, - 与源IP地址一起标识发送该TCP 报文段的通信进程。端口号范围0-65535。 + 与源IP地址一起标识发送该TCP报文段的通信进程。端口号范围0-65535。 \item \textbf{目的端口号(Destionation Port):}16位目的端口, - 与目的IP地址一起标识接收该TCP 报文段的通信进程。端口号范围0-65535。 - \item \textbf{序号(Sequence Number):}该TCP 报文段中第一个数据字节的序号,占4个字节。在TCP连接建立时,通常生成一个随机数作为字节序列号的初始值(ISN)。 + 与目的IP地址一起标识接收该TCP报文段的通信进程。 + \item \textbf{序号(Sequence Number):}该TCP报文段中第一个数据字节的序号,占4个字节。在TCP连接建立时,通常生成一个随机数作为字节序列号的初始值(ISN)。 \item \textbf{确认号(Acknowledgement Number):} 表示期望收到对方下一个报文段的字节序号,占4个字节。 \item \textbf{标志位(TCP Flags):} \begin{enumerate} \item 确认ACK(Acknowledgement):置1表示确认号字段有效。 \item 推送PSH(Push):置1表示该报文段优先级高, - 接收方 TCP 应该尽快推送给接收应用程序。 - \item 复位RST(Reset):置1表示需要释放 TCP 连接并重新建立连接。 - 一般称携带 RST 标志的 TCP 报文段为「复位报文段」。 + 接收方TCP应尽快推送给接收应用程序。 + \item 复位RST(Reset):置1表示需要释放TCP连接并重新建立连接。 + 一般称带RST标志的TCP报文段为“复位报文段”。 \item 同步SYN(Synchronization):置1表示这是TCP请求连接报文段。 - 一般称携带 SYN 标志的 TCP 报文段为“同步报文段”。 + 一般称带SYN标志的TCP报文段为“同步报文段”。 \item 终止FIN(Finish):置l表示发送方的数据已经发送完毕, - 并要求释放 TCP 连接。 + 并要求释放TCP连接。 \end{enumerate} - \item \textbf{窗口大小(Window):}表示接收缓存大小,即暂时缓存接收的数据。 + \item \textbf{窗口大小(Window):}表示接收缓存大小。 最早TCP协议首部只设置了16位的窗口大小,允许的最大缓存大小不超过64KB; 而RFC1323打破此限定,设置了TCP窗口缩放因子(Window size scaling factor), 使窗口大小等于二者的乘积。 From 41a71362f82d7bcc55705bc1127f6ee70653aafd Mon Sep 17 00:00:00 2001 From: Jeff Chen Date: Thu, 25 Feb 2021 14:35:29 +0800 Subject: [PATCH 5/6] 2-25 after Alpha --- data/ch_wireshark/sec_tcp.tex | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/data/ch_wireshark/sec_tcp.tex b/data/ch_wireshark/sec_tcp.tex index 76186dd..10c1c8a 100644 --- a/data/ch_wireshark/sec_tcp.tex +++ b/data/ch_wireshark/sec_tcp.tex @@ -43,8 +43,6 @@ TCP协议基于“尽力而为”的网络层为应用层提供可靠的进程 在TCP的协议传输单元中(TCP报文段,TCP Segment), 收发双方以字节为单位使用序列号(Sequence Number)明确收发的数据, 使用ACK反馈(Acknowledgment)机制,实现端对端的可靠传输控制。 -接下来,简要介绍TCP报文段的结构, -TCP的连接管理、流量控制和拥塞控制等原理。 \paragraph{TCP报文段(Segment)}~{} \\ @@ -348,7 +346,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\%} - (将此行命令的add改为change即修改、del即删除此行规则)。 + (将此行命令的add改为change/del即修改/删除此规则)。 \item 下载服务器上的大文件:\texttt{wget 192.168.100.144/100M.file} \end{enumerate} From d6f154626629e3137ec1f841a99d67b750732653 Mon Sep 17 00:00:00 2001 From: Jeff Chen Date: Thu, 25 Feb 2021 17:43:11 +0800 Subject: [PATCH 6/6] 2-25 after Alpha --- data/ch_wireshark/preface.tex | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/data/ch_wireshark/preface.tex b/data/ch_wireshark/preface.tex index 4e66711..a961bf7 100644 --- a/data/ch_wireshark/preface.tex +++ b/data/ch_wireshark/preface.tex @@ -3,8 +3,9 @@ \chapter{网络抓包与协议分析} \label{chap:wireshark} -本单元实验要求学生能熟练使用Wireshark软件,捕捉、分析有线和无线网络数据包, -掌握以太网、802.11、ARP、IP、ICMP和TCP等重要协议传输单元结构, +本单元实验要求学生能熟练使用Wireshark软件, +捕捉和分析有线网络数据包,掌握以太网、ARP、IP、ICMP +和TCP等重要协议传输单元结构, 深入理解相关网络命令和重要协议算法的工作原理, 从而培养网络故障检测、网络性能改进和网络安全分析的能力。 % (备注:第二版将增补实验1.4: IEEE 802.11协议分析。) \ No newline at end of file