利用Wireshark分析网络协议-计网实验

  • 一、实验目的
  • 二、实验任务
  • (一)应用层协议分析
  • (二)传输层协议分析
  • 三、实验内容(含解析)
  • (一) 应用层协议分析
  • (二) 传输层协议分析
  • 四、实验总结


一、实验目的

  1. 加强对计算机网络通信协议的理解,用理论知识解决实际问题。
  2. 学习Wireshark的基本操作,抓取和分析有线局域网的数据包,熟悉一些应用层命令和协议。
  3. 通过运用Wireshark对网络活动进行分析,观察TCP协议报文,分析通信时序,理解TCP的工作过程,掌握TCP工作原理与实现;学会运用Wireshark分析TCP连接管理、流量控制和拥塞控制的过程,发现TCP的性能问题。

二、实验任务

(一)应用层协议分析

  1. 学会使用Wireshark抓包软件,会使用过滤器。
  2. 学习Wireshark基本操作:重点掌握捕获过滤器和显示过滤器。分析HTTP和DNS协议。
  3. 测试curl命令,访问一个web页面。(选做)
  4. 利用telnet命令测试get命令,访问www.baidu.com。(选做)
  5. 利用telnet命令测试SMTP服务,解析其过程。(选做)
  6. 测试tracert命令,并解析其过程。
  7. 使用nslookup查询域名信息,简要分析。

(二)传输层协议分析

  1. TCP数据流的追踪。
  2. TCP连接的建立。
  3. TCP连接的终止。
  4. TCP 连接的重置。
  5. 两台实验机本地相互连接,在实验机中仿真不同的网络条件,观察TCP的各种控制现象。(选做)

三、实验内容(含解析)

(一) 应用层协议分析

1. 学会使用Wireshark抓包软件,会使用过滤器。

(1)打开捕获过滤器

wireshark分析ip冲突 使用wireshark分析ip协议_TCP

(2)正在捕获抓包

wireshark分析ip冲突 使用wireshark分析ip协议_测试工具_02

(3)过滤掉 Packet List 中所有的 ARP 数据包(显示过滤器的使用)

wireshark分析ip冲突 使用wireshark分析ip协议_wireshark分析ip冲突_03

2. 分析HTTP和DNS协议。

(1) 设置过滤条件HTTP,开始抓包

wireshark分析ip冲突 使用wireshark分析ip协议_TCP_04

此时选取一条进行报文分析:

wireshark分析ip冲突 使用wireshark分析ip协议_wireshark分析ip冲突_05


该包为请求包,下面条形框为它的响应包请求报文的结构为

wireshark分析ip冲突 使用wireshark分析ip协议_TCP_06


wireshark分析ip冲突 使用wireshark分析ip协议_wireshark_07

若是响应包,则其响应报文结构为

wireshark分析ip冲突 使用wireshark分析ip协议_测试工具_08

如下图

wireshark分析ip冲突 使用wireshark分析ip协议_wireshark分析ip冲突_09

(2) 分析DNS

设置过滤条件DNS,开始抓包:

wireshark分析ip冲突 使用wireshark分析ip协议_TCP_10

分析编号为73的请求包:

wireshark分析ip冲突 使用wireshark分析ip协议_wireshark分析ip冲突_11

可以发现DNS为应用层协议,下层传输层采用UDP,再下层网络层是IP协议,然后是数据链路层的以太网帧。

第一个是Transaction ID为标识字段,2字节,用于辨别DNS应答报文是哪个请求报文的响应:0x1b43

第二个是Flags标志字段,2字节,位数的含义如下:

wireshark分析ip冲突 使用wireshark分析ip协议_TCP_12

QR: 查询/响应,1为响应,0为查询:例子中为查询
Opcode: 查询或响应类型,这里0表示标准,1表示反向,2表示服务器状态请求
AA: 授权回答,在响应报文中有效
TC: 截断,1表示超过512字节并已被截断,0表示没有发生截断:例子中已被截断
RD: 是否希望得到递归回答
RA: 响应报文中为1表示得到递归响应:例子中未得到
zero: 全0保留字段
rcode: 返回码

Quetions(问题数),2字节,通常为1
Answer RRs(资源记录数), Authority RRs(授权资源记录数), Additional RRs(额外资源记录数)通常为0

字段Queries为查询或者响应的正文部分,分为Name Type Class
Name(查询名称):这里是ping后的参数,不定长度以0结束
Type(查询类型):2字节,这里是主机A记录
Class(类):2字节,IN表示Internet数据,通常为1

分析响应包:

wireshark分析ip冲突 使用wireshark分析ip协议_测试工具_13

响应包多出了一个Answers字段,同时Flags字段每一位都有定义。Flags中Answer RRs 为1说明对应的Answers字段中将会出现1项解析结果。
Answers字段可以看成一个List,集合中每项为一个资源记录,除了上面提到过的Name,Type,Class之外,还有Time to Live, Data length, Addr。
Time to Live(生存时间TTL):表示该资源记录的生命周期,从取出记录到抹掉记录缓存的时间,以秒为单位。合计289s。
Data length(资源数据长度):以字节为单位,这里的4表示IP地址的长度为4字节.也就是下面Addr字段的长度.
Addr(资源数据): 返回的IP地址,就是我们想要的结果.

3. 测试tracert命令,并解析其过程。

wireshark分析ip冲突 使用wireshark分析ip协议_网络协议_14


wireshark分析ip冲突 使用wireshark分析ip协议_wireshark分析ip冲突_15


wireshark分析ip冲突 使用wireshark分析ip协议_测试工具_16

观察ICMP数据包可得:
Type: 该字段有 1 个字节,表示特定类型的 ICMP 报文。
一台主机向一个节点发送一个类型字段值为8的ICMP报文,如果途中没有异常(如果没有被路由丢弃,目标不回应ICMP或者传输失败),则目标返回类型字段值为0的ICMP报文,说明这台主机存在。

Code: 该字段有 1 个字节,进一步细分 ICMP 的类型。如上图所示,Type 的值为 8,Code 的值为 0,表示回显请求。

Checksum: 该字段有 2 个字节,表示校验和。

Identifier: 该字段有 2 个字节,用于匹配 Request/Reply 的标识符。

Seq Num: 该字段有 2 个字节,用于匹配 Request/Reply 的序列号。

Data: 数据载荷。

粉色为Tracert发送的数据包,黑色为Tracert接受的数据包。TTL=5时,源地址收到了目的地址的ICMP回应答复(ICMP Echo Reply),说明源地址经过了5跳到达目的地址,与终端显示信息相符

4. 使用nslookup查询域名信息,简要分析。

wireshark分析ip冲突 使用wireshark分析ip协议_wireshark分析ip冲突_17


wireshark分析ip冲突 使用wireshark分析ip协议_wireshark_18


wireshark分析ip冲突 使用wireshark分析ip协议_测试工具_19


图中报文查询名为:www.baidu.com,查询类型为:A(IPv4地址),查询类为:IN(Internet数据)。

(二) 传输层协议分析

1. TCP数据流的追踪。

wireshark分析ip冲突 使用wireshark分析ip协议_测试工具_20


wireshark分析ip冲突 使用wireshark分析ip协议_TCP_21

2. TCP连接的建立与终止时序图

wireshark分析ip冲突 使用wireshark分析ip协议_测试工具_22


wireshark分析ip冲突 使用wireshark分析ip协议_wireshark分析ip冲突_23

3. TCP报文分析。

客户端发起连接请求的报文 第一条报文

wireshark分析ip冲突 使用wireshark分析ip协议_wireshark分析ip冲突_24

首先,客户端想服务器发起连接请求,通过 wireshark 抓包工具,可以清楚的解析出 TCP 报文首部的所有字段值:

Source Port: 来源端口,也就是浏览器发出请求连接的端口55294
Destination Port: 80,也就是默认 HTTP协议的响应端口80
Sequence number: 0,这个序号是 wireshark 做的相对当前 TCP 建立连接的序号,不是真实的序号
Sequence number (raw): 3283466062,这个序号才是真实的 TCP 报文首部的序号,也就是seq = 3283466062,接下来的请求只看这个的变化
Acknowledgment number: 0,确认号
Flags: 也就是控制位部分,可以看到此时的标志位是SYN是1;而确认连接控制位ACK是0

wireshark分析ip冲突 使用wireshark分析ip协议_wireshark_25

4. TCP 连接的重置。

wireshark分析ip冲突 使用wireshark分析ip协议_wireshark_26

四、实验总结

本次实验完成后对wireshark的使用更加熟悉,掌握抓包,过滤器等的使用方法。分析了传输层和应用层协议和报文。第二个实验TCP三次握手,四次挥手在分析报文的过程中加深了对TCP传输过程的了解。