实验一:Linux 虚拟网络环境和Wireshark 抓包软件
1、使用 modinfo.tun 命令验证 tun 模块是否安装
2、在 CentOS 中安装 EPEL 源和 Wireshark 软件
3、使用 ping 命令,进行两次网络连通性测试。
实验二:HTTP 协议探索和分析
1、启动Vmware、进入Wireshark 软件,选择连接互联网的网络接口,启动抓包。
2、从主机上启动浏览器访问 http://www.zzu.edu.cn,同时利用 Wireshark 软件抓包,保存抓包结果。
3、在 Wireshark 软件的显示过滤器中输入“http.host==www.zzu.edu.cn”,使Wireshark 仅显示 HTTP 协报文中包含首行部行“Host:www.zzu.edu.cn”的报文,Ip 地址为 202.196.64.48。
4、在 wireshark 的显示过滤器中输入“ip.addr==202.196.64.48”,使 wireshark
显示 Web 服务器参与的所有通信数据
5、在 wireshark 的显示过滤器中输入“http.set_cookie or http.cookie”,使 wireshark 显示包含 set_cookie 的 HTTP 响应和包含cookie的HTTP请求。
实验三:UDP 协议探索和分析
1、编辑脚本 script3.1、script3.2、script3.3,创建虚拟网络拓扑,关闭网卡offload功能,将运输层封装时需要的机选还给 CPU,并打开 Terminal 分别执行三个脚本。
2、打开两个终端窗口,分别模拟主机ns56A和主机ns57C;在主机ns57C上后台启动Wireshark,选择接口tap57C上启动抓包。
3、在主机 ns57C 的模拟终端中,在 4499 端口打开 UDP 服务程序;在主机 ns56A 的模拟终端中,打开 UDP 客户程序,并指定 UDP 服务程序的 IP 地址
和端口。
4、在主机 ns56A 的模拟终端中,输入任意一行字符,然后回车确认,将输入的字符发送给主机 ns57C,并且在主机 ns57C 的模拟终端中,输入任意一行字符,然后回车确认,将输入的字符发送给主机 ns56A。
5、在 Wireshark 中停止抓包,保存结果并分析本次 UDP 通信,理解 UDP 用户数据报格式
实验四:TCP 协议探索和连接管理分析
1、打开一个终端窗口,利用Linux命令bash将本窗口分别模拟成主机ns56A、ns57C的终端
2、在主机ns57C上创建个3500字节长度的文件备用,在主机ns57C上启动 Wireshark,在接口tap57C上启动抓包。
3、在主机ns57C的模拟终端中,在4499端口打开 TCP 服务,并开启Shell程
序
4、在主机 ns56A 的模拟终端中,打开 TCP 客户程序,并指定 TCP 服务程序的
IP 地址和端口。
5、在主机 ns56A 的模拟终端中,将该命令被发送到主机 ns57C 的 Shell 中,读取文件 3500.0,命令执行结果通过 TCP 连接发送回主机 ns56A。
6、文件传输完毕后,在主机 ns57C 和 ns56A 上,先后用“Ctrl+C”终止 TCP
通信。
实验五:TCP 可靠传输和重传分析
1、在 Linux 中,执行如下命令,修改 TCP 连接的接收缓存参数,减少 Linux 分
配的接收缓存,降低接收窗口值。
2、在 Linux 中,执行如下命令,关闭 SACK 选项,避免执行基于 SACK 的重传算法
3、执行如下 Linux 命令,在路由器 RA 中,用 iptables 设置规则,以 10%的概率丢弃目的地址为 192.168.57.254(ns57C)的IP数据报
4、打开一个终端窗口,利用Linux命令bash将本窗口分别模拟成主机ns56A、ns57C的终端
5、在主机 ns56A 的模拟终端中,执行如下命令,创建一个 100K 字节长度的文
件,命名为 100K.0;启动 Wireshark,在接口 tap56A 上启动抓包
6、在主机 ns57C 的模拟终端中,执行如下命令,在 4499 端口打开 TCP 服务,
并将输出重定向到文件 100K.1
7、在主机 ns56A 的模拟终端中,执行如下命令,打开 TCP 客户程序,指定 TCP
服务程序的 IP 地址和端口,并将输入重定向到文件 100K.0;文件 100K.0 发送完成后,ns56A 上的 nc 命令会主动释放 TCP 连接
8、在 Wireshark 中停止抓包,保存抓包结果文件并分析本次 TCP 通信,理解
TCP 超时重传机制和快重传机制
实验六:TCP 协议流量控制分析
1、在 Linux 中,执行如下命令,修改 TCP 连接的接收缓存参数,限制 Linux 分
配的接收缓存为 9032 字节。
2、打开一个终端窗口,利用Linux命令bash将本窗口分别模拟成主机ns56A、ns57C的终端
3、在主机 ns56A 的模拟终端中,执行如下命令,创建一个 100K 字节长度的文件,命名为
10K.0
4、在主机 ns57C 上启动 Wireshark,在接口 tap57C 上启动抓包
5、在主机 ns57C 的模拟终端中,执行如下命令,在 4499 端口打开 TCP 服务,nc 进程延迟操作 5 秒,并将输出重定向到文件 10K.1;在主机 ns56A 的模拟终端中,执行如下命令,打开 TCP 客户程序,指定 TCP 服务程序的 IP 地址和端口,并将输入重定向到文件 10K.0。
文件 10K.0 发送完成后,ns56A 上的 nc 命令会主动释放 TCP 连接。
实验七:IP 协议探索和 IP 分片分析
1、修改路由器 RA 和 RB 之间链路的 MTU 值为 1000 字节。
2、打开一个终端窗口,利用Linux命令bash将本窗口分别模拟成主机ns56A、ns57C的终端。
3、在路由器 RB 上两次启动 Wireshark,在接口 tapRB_56A 和接口 tapRB_RA 上启动抓包。
4、在主机 ns57C 的模拟终端中,执行如下命令,在 4499 端口打开 UDP 服务。
5、在主机 ns56A 的模拟终端中,执行如下命令,封装 1400 字节 UDP 数据,指定客户端口号 40321,从主机 ns56A 发往主机 ns57C 的 4499 端口。
6、在两个 Wireshark 窗口中停止抓包,保存抓包结果文件并分析本次通信,理解 IP 报文段格式,分析 IP 首部各字段含义。分析 IP 数据报在路由器 RB 上的分片过程。
实验八:ICMP 协议探索和分析
1、修改路由表、MTU 等参数,创造 ICMP 差错报告报文的产生条件
2、打开两个终端窗口,分别模拟主机 ns56A 和主机 ns57A。
3、在主机 nS56A 上启动 Wireshark,在接口 tap56A 上启动抓包。在主机 ns57A
上启动 Wireshark,在接口 tap57A 上启动抓包。
4、在主机 ns56A 和 ns57A 上,使用 nping 工具发送 UDP 用户数据报到其它
目的主机,利用步骤 4 的配置,得到多种 ICMP 差错报告报文。
5、在两个 Wireshark 窗口中停止抓包,保存抓包结果文件并分析截获的数据。
分析 ICMP 差错报告报文的常见种类,理解这几种 ICMP 差错报告报文产生的条件。
6、在主机 ns56A 的接口 tap56A 重新启动抓包。在主机 ns56A 上,利用 ping
命令测试到主机 ns57C 的连通性,捕获并分析 ICMP 回显请求和回显应答报文。