%# -*- coding: utf-8-unix -*-

\chapter{速查手册}
\label{app:cheatsheet}

为了方便老师根据本学校的实际教学情况选择实验内容，
特将本指导书所收录全部实验的基本信息汇总于此，
供老师快速查阅。

\begin{itemize}
  \item \textbf{基本信息：} 
  表\ref{tab:a:csheet:basic}汇总了本指导书所收录实验的实验目的、
  难度与建议的课时安排等基本信息；

  \item \textbf{实验任务与要求：} 
  表\ref{tab:a:csheet:task-summary}汇总了本指导书所收录的实验的实验任务与要求；

  \item \textbf{考核方式：}  
  建议根据每次实验上交实验报告，上课实际操作、作品评价等内容综合进行形成性考核，
  通用的实验成绩形成性考核标准见表\ref{tab:a:csheet:criterion}，
  各实验如有特殊要求，还在正文中指出了各自的细节评分标准。
\end{itemize}

\begin{table}[!ht]
  \small
  \centering
  \caption{实验成绩形成性考核标准}
  \label{tab:a:csheet:criterion}
  \begin{tabular}{|m{2.5cm}<{\centering}|m{11cm}|} \hline
    \heiti 考核项目 & \multicolumn{1}{c|}{\heiti 评分标准} \\ \hline
    \multirow{5}{2.5cm}{\centering 实验速度\\  （20分）} 
    & 完成时间排名$\le$20\%获得20分；\\ \cline{2-2}
    & 20\%<完成时间排名$\le$40\%获得18分；\\ \cline{2-2}
    & 40\%<完成时间排名$\le$60\%获得16分；\\ \cline{2-2}
    & 60\%<完成时间排名$\le$80\%获得14分；\\ \cline{2-2}
    & 完成时间排名>80\%获得12分。 \\ \hline
    \multirow{4}{2.5cm}{\centering 实验完成情况\\（30分）} 
    & 熟练掌握实验所需的设备、器件和软件（5分）\\ \cline{2-2}
    & 掌握正确的实验方法（5分）\\ \cline{2-2}
    & 独立完成实验（10分）\\ \cline{2-2}
    & 根据实验结果提出实验改进措施并持续改进实验。（10分）\\ \hline
    \multirow{4}{2.5cm}{\centering 实验报告\\（50分）}	
    & 格式正确、规范。（10分）\\ \cline{2-2}
    & 完整记录实验过程。（10分）\\ \cline{2-2}
    & 在实验过程中运用所学的的理论知识发现问题并解决问题。（20分）\\ \cline{2-2}
    & 能够正确记录和分析实验结果。（10分）\\ \hline
  \end{tabular}
\end{table}

\newcommand*{\tabitem}[1]{\hangindent=1em\makebox[1em]{$\bullet$}#1}
\small
\begin{longtable}{|m{1.5cm}<{\centering}
                  |m{1.7cm}<{\centering}
                  |m{8.5cm}
                  |m{0.7cm}<{\centering}
                  |m{1.2cm}|} 
  \caption{\label{tab:a:csheet:basic}实验基本信息}\\

  \hline
  \heiti 单元 & \multicolumn{1}{c|}{\heiti 实验} &
  \multicolumn{1}{c|}{\heiti 目的} &
  \multicolumn{1}{c|}{\heiti 课时} &
  \multicolumn{1}{c|}{\heiti 难度} \\ \hline
  \endfirsthead
  \hline
  \heiti 单元 & \multicolumn{1}{c|}{\heiti 实验} &
  \multicolumn{1}{c|}{\heiti 目的} &
  \multicolumn{1}{c|}{\heiti 课时} &
  \multicolumn{1}{c|}{\heiti 难度} \\ \hline
  \endhead

  \multirow{3}{1.5cm}{\centering 网络抓包与协议分析} 
  & Wireshark软件使用和ARP分析 & 
  \tabitem{学习Wireshark的基本操作，掌握过滤器使用，抓取和分析数据包。} \par
  \tabitem{熟悉以太网MAC帧的基本结构。} \par
  \tabitem{掌握ARP协议的特点及工作原理。}
  & 2 & $\star$ \\ \cline{2-5}

  & IP和ICMP分析 & 
  \tabitem{观察IP数据报的基本结构，理解数据报的分片过程；} \par 
  \tabitem{掌握基于ICMP协议的ping和traceroute命令及其工作原理。}
  & 2 & $\star\star$ \\ \cline{2-5}

  & TCP与拥塞控制 & 
  \tabitem{观察TCP报文，分析通信时序，理解TCP的工作机制；} \par 
  \tabitem{分析TCP流量控制和拥塞控制的过程，学会排查TCP性能问题。}
  & 4 & $\star\star\star$ \\ \hline

  & 套接字基础与UDP通信 & 
  \tabitem{掌握Python中UDP套接字编程基础；} \par
  \tabitem{掌握使用UDP套接字发送和接收数据包，以及设置正确的套接字超时；} \par
  \tabitem{了解Ping应用程序及其在计算数据包丢失率等统计数据方面的有用性。}
  & 2 & $\star$ \\ \cline{2-5}

  基于套接字的网络程序设计
  & TCP通信与Web服务器 & 
  \tabitem{掌握Python中TCP套接字编程基础；} \par 
  \tabitem{理解HTTP报文格式；} \par 
  \tabitem{了解开发简单Web服务器的流程。}
  & 2 & $\star\star$ \\ \cline{2-5}

  & SMTP客户端实现 & 
  \tabitem{理解和掌握Python中TCP套接字编程基础；} \par 
  \tabitem{理解SMTP报文格式；} \par 
  \tabitem{了解开发简单应用程序的流程。}
  & 4 & $\star\star\star$ \\ \hline

  \multirow{2}{1.5cm}{\centering 组网基础}
  & 静态路由 & 
  \tabitem{掌握静态路由协议；} \par
  \tabitem{理解路由器工作原理；} \par
  \tabitem{掌握路由器相关的配置、检测操作。}
  & 2 & $\star$ \\ \cline{2-5}

  & 动态路由（RIP） & 
  \tabitem{理解动态路由协议RIP的工作原理；} \par 
  \tabitem{掌握采用动态路由协议RIP进行网络设计的基本原则和方法。}
  & 2 & $\star\star$ \\ \hline

  & 动态路由（OSPF） & 
  \tabitem{理解动态路由协议OSPF的工作原理；} \par 
  \tabitem{掌握采用动态路由协议OSPF进行网络设计的基本原则和方法。}
  & 2 & $\star\star\star$ \\ \hline

  \multirow{3}{1.5cm}{\centering 路由器实现} 
  & 二层交换机实现& 
  \tabitem{掌握二层以太网数据收发方法；} \par
  \tabitem{熟悉二层交换机的交换原理、分组处理流程和转发表的老化功能与处理方法。}
  & 3 & $\star\star$ \\ \cline{2-5}

  & 三层路由器实现 & 
  \tabitem{掌握二层以太网帧的数据结构、ARP协议和IP协议等，熟悉各协议的解析与封装过程；} \par 
  \tabitem{掌握路由器数据平面与控制平面的切分及工作处理流程的不同。}
  & 2 & $\star\star\star$ \\ \cline{2-5}

  & 三层路由器组网 & 
  \tabitem{掌握路由器控制平台的工作任务及工作原理，熟悉多种路由协议的工作原理及适应范围。} 
  & 2 & $\star\star$ \\ \hline

  \multirow{3}{1.5cm}{\centering 软件定义网络与网络测量} 
  & 基于OpenFlow的SDN交换机 & 
  \tabitem{了解SDN的概念及三层结构原理，掌握Open Flow协议格式、内容、工作流程及对应功能作用；} \par
  \tabitem{掌握SDN控制器北向API使用方法，可通过API编程获取和设置交换机数据。}
  & 3 & $\star\star\star\star$ \\ \cline{2-5}

  & 基于OpenFlow的拓扑测量 & 
  \tabitem{了解OpenFlow协议中PACKET\_IN和链路探测协议（LLDP）的工作原理和拓扑构建方法。}
  & 3 & $\star\star\star\star$ \\ \cline{2-5}

  & 纳秒级高精度硬件测量 & 
  \tabitem{掌握网络测试的常用方法，了解在测试过程中影响测量精度的原因及如何提高测量精度。} 
  & 3 & $\star\star\star\star$ \\ \hline
\end{longtable}

\begin{landscape}

\small
\begin{longtable}{|m{1.5cm}<{\centering}
                |m{2cm}<{\centering}
                |m{8cm}|m{9cm}|}
  \caption{\label{tab:a:csheet:task-summary}实验任务与要求汇总}\\

  \hline
  \heiti 单元 & \heiti 实验 &
  \multicolumn{1}{c|}{\heiti 任务} &
  \multicolumn{1}{c|}{\heiti 要求} \\ \hline
  \endfirsthead
  \hline
  \heiti 单元 & \heiti 实验 &
  \multicolumn{1}{c|}{\heiti 任务} &
  \multicolumn{1}{c|}{\heiti 要求} \\ \hline
  \endhead
  \endfoot
  \endlastfoot

  \multirow{3}{1.5cm}{\centering 网络抓包与协议分析} & 
  Wireshark软件使用和ARP分析 & 
  熟悉使用Wireshark主菜单、工具栏和主窗口；掌握捕获过滤器和显示过滤器；捕获有线局域网的数据包并保存；了解MAC地址组成；观察以太网帧的首部和尾部；抓取ARP请求和应答报文，分析其工作过程。 & 
  详见实验指导书。安装并学习使用Wireshark软件，现场检查操作正确性；按步骤进行以太网帧和ARP命令的实验；收集分析数据，回答思考题，并编写实验报告。\\ \cline{2-4}

  & IP和ICMP分析 &
  执行ping命令，观察IP数据报和ICMP询问报文的结构；改变ping命令的参数，观察IP数据报分片；执行Traceroute命令，观察ICMP差错报文的结构，并分析其工作原理。 &
  详见实验指导书，根据老师的安排确定实验内容；部署实验环境；按步骤进行实验；收集分析数据，回答思考题，并编写实验报告。\\ \cline{2-4}

  & TCP与拥塞控制 &
  观察正常TCP连接中三次握手与四次挥手报文，绘制出时序图，并标出双方TCP状态的变化；观察分析TCP通信过程中各类异常（连接建立过程的异常、SNY洪泛攻击、数据超时和乱序等）；运行基于TCP传输的Python程序，观察收发报文中通告窗口的变化，了解滑动窗口工作的原理；观察大文件传输过程，分析识别TCP的慢启动、拥塞避免、快速恢复等拥塞控制过程；运行iperf3进行网络性能测试，比较不同拥塞控制性能表现。 &
  详见实验指导书，根据老师的安排确定实验内容；部署实验环境；按步骤进行实验；收集分析数据，回答思考题，并编写实验报告。\\ \hline

  \multirow{3}{1.5cm}{基于套接字的网络程序设计} &
    
  套接字基础与UDP通信&
  使用Python编写一个简单的，非标准的基于UDP的ping程序，该程序能够发送简单的ping报文，接收从服务器往返的对应pong报文，并确定从该客户发送ping报文到接收pong报文为止的时延（往返时延RTT）。&
  根据实验指导书，参考服务器端代码，完成客户端代码，测试和分析实验结果。\\ \cline{2-4}

  & TCP通信与Web服务器 &
  使用Python开发一个一次能处理一个HTTP请求的Web服务器。&
  根据实验指导书，在提供的框架基础上完成客户端代码，测试和分析实验结果。\\ \cline{2-4}

  & SMTP客户端实现 &
  使用Python开发一个能够发送文本信息的简单的SMTP客户端。&
  根据实验指导书，在提供的框架基础上完成客户端代码，测试和分析实验结果。\\ \hline
  
  \multirow{3}{1.5cm}{组网基础} &
      
  静态路由&
  完成路由规划并在华为网络模拟器eNSP中完成IP地址和静态路由的配置，掌握采用静态路由进行网络设计的基本原则和方法，理解静态路由的工作原理。&
  根据实验指导书，完成实验环境的安装和配置，按步骤进行实验，观察和记录实验结果并编写实验报告。\\ \cline{2-4}

  & 动态路由（RIP） &
  完成路由规划并在华为网络模拟器eNSP中完成IP地址和RIP协议的配置，掌握采用动态路由协议RIP进行网络设计的基本原则和方法，理解动态路由协议RIP的工作原理。&
  根据实验指导书，完成实验环境的安装和配置，按步骤进行实验，观察和记录实验结果并编写实验报告。\\ \cline{2-4}

  & 动态路由（OSPF） &
  完成路由规划并在华为网络模拟器eNSP中完成IP地址和OSPF协议的配置，掌握采用动态路由协议OSPF进行网络设计的基本原则和方法，理解动态路由协议OSPF的工作原理。&
  根据实验指导书，完成实验环境的安装和配置，按步骤进行实验，观察和记录实验结果并编写实验报告。\\ \hline

  \multirow{3}{1.5cm}{路由器实现} &

  二层交换机实现&
  基于网络创新实验开发平台，使用C语言编程开发实现一个软件二层交换机系统原型；实现二层以太网分组交换功能；完成二层分组数据解析、MAC表学习与查找以及MAC表老化功能。&
  基于网络创新实验开发平台的参考示例程序完成；实现测试主机在多个设备端口间均能ping通；拔掉交换机端口网线1分钟后触发该端口MAC表项老化和删除功能；主机网线连接端口变化时，打印输出原来连接端口与新连接端口号信息。\\ \cline{2-4}

  & 三层路由器实现 &
  基于网络创新实验开发平台，使用C语言编程开发实现一个软件三层交换机系统原型，实现不同网段的分组通信功能；完成端口ARP协议交互功能；完成FIB表获取与查询功能；完成分组数据二层与三层的协议解析与封装功能。&
  基于网络创新实验开发平台的参考示例程序完成；分组数据仅需支持ARP与IPv4协议格式；不同端口内不同网段的主机均能相互ping通；FIB表内容从系统内核获取并能周期刷新；根据协议解析内容区分打印数据平面分组与控制平面分组数据流摘要信息，两种类型数据分开处理；区分打印ARP主动请求学习与被动响应的处理过程；在测试主机ping 8.8.8.8，观察路由器FIB查表的执行步骤，分析原因。\\ \cline{2-4}

  & 三层路由组网实现&
  在自研三层路由器原型系统上运行Quagga协议，并正确配置路由协议，使用两个以上路由器原型系统实现多网段互联互通。&
  正确安装Quagga运行环境，正确配置RIP与OSPF两种路由协议；单独运行一种路由协议能正确学习到远端网络路由转发表内容；各网段在不同路由协议使用情况下均能相互ping通；与不同的实验组同学组网验证；断开某个网段的连线，验证路由器FIB表的更新（原来存在的表项消失）。\\ \hline

  \multirow{3}{1.5cm}{软件定义网络与网络测量} &

  基于OpenFlow的SDN交换机&
  基于网络创新实验开发平台，使用C语言编程开发实现一个SDN交换机系统原型，实现SDN交换机的基本通信及配置管理功能；&
  参考OpenFlow~1.3协议格式，实现指定的消息；能利用PACKET\_IN报文上报端口输入的完整二层以太网数据；ACTION动作可只支持端口转发与丢弃；基于实验平台的硬件流表管理API接口将流表配置的OFPT\_FLOW\_MOD消息内容同步到硬件表项中。\\ \cline{2-4}

  & 基于OpenFlow的拓扑测量 &
  使用多个自研的SDN交换机组网互连，通过LLDP的链路探测协议完成全网拓扑的构建；编程展示网络拓扑信息图。&
  基于自研的SDN交换机原型实现；最少使用3台设备；SDN控制器建议使用Floodlight；区分打印交换机自身发出的LLDP协议分组和接收到其他交换机的LLDP分组，显示分组摘要信息；通过REST API接口获取SDN控制器的链路连接信息与设备信息；基于WEB网页编程展示网络拓扑图。变换不同网络连接结构，刷新验证WEB页面的拓扑图，要求与真实网络连接关系一致。3台设备中间使用一台普通交换机连接，再次验证拓扑图显示，分析原因。\\ \cline{2-4}

  & 纳秒级高精度硬件测量&
  基于网络创新实验开发平台，完成测量节点到服务器的RTT延时测量、网络带宽测量以及不同长度网线传输延时测量。&
  基于网络创新实验开发平台的测量工具与源码；测量服务器RTT延时的报文使用ping协议格式；测量网络带宽时，在网络内使用固定背景流量大于500M，测量分组的大小设置64与1500，计算测量带宽差异；测量1米与10米网线的传输延时，判断并分析二者的延时差别。\\ \hline

\end{longtable}

\end{landscape}