利用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)打开捕获过滤器
在这里插入图片描述

(2)正在捕获抓包
在这里插入图片描述

(3)过滤掉 Packet List 中所有的 ARP 数据包(显示过滤器的使用)
在这里插入图片描述

2. 分析HTTP和DNS协议。
(1) 设置过滤条件HTTP,开始抓包
在这里插入图片描述

此时选取一条进行报文分析:
在这里插入图片描述
该包为请求包,下面条形框为它的响应包

请求报文的结构为
在这里插入图片描述
在这里插入图片描述

若是响应包,则其响应报文结构为
在这里插入图片描述

如下图
在这里插入图片描述

(2) 分析DNS

设置过滤条件DNS,开始抓包:
在这里插入图片描述

分析编号为73的请求包:
在这里插入图片描述

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

第一个是Transaction ID为标识字段,2字节,用于辨别DNS应答报文是哪个请求报文的响应:0x1b43
第二个是Flags标志字段,2字节,位数的含义如下:
在这里插入图片描述

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

分析响应包:
在这里插入图片描述

响应包多出了一个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命令,并解析其过程。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

观察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查询域名信息,简要分析。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图中报文查询名为:www.baidu.com,查询类型为:A(IPv4地址),查询类为:IN(Internet数据)。

(二) 传输层协议分析

1. TCP数据流的追踪。

在这里插入图片描述
在这里插入图片描述

2. TCP连接的建立与终止时序图
在这里插入图片描述
在这里插入图片描述

3. TCP报文分析。

客户端发起连接请求的报文 第一条报文
在这里插入图片描述

首先,客户端想服务器发起连接请求,通过 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

在这里插入图片描述

4. TCP 连接的重置。
在这里插入图片描述

四、实验总结

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

  • 26
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值