深圳大学-计算机网络实验-数据包抓取与分析

实验目的

学习安装、使用协议分析软件,掌握基本的数据报抓取、 过滤和分析方法,能分析HTTP、TCP、ICMP等协议。

实验环境

·使用具有Internet连接的Windows操作系统
·抓包软件Wireshark

实验内容

1. 下载并安装Wireshark

Wireshark是世界上最广泛使用的网络协议分析器。
从官网https://www.wireshark.org/下载并安装Wireshark.
1.1 运行Wireshark, 初始界面如下图所示. 从接口列表中选择要捕获的接口, 双击开始捕获. 下面以捕获以太网为例.
在这里插入图片描述

1.2 进入Wireshark主界面, 开始捕获分组,如下图:
在这里插入图片描述
在这里插入图片描述
1.3 使用过滤器
(1) 协议过滤
以过滤HTTP协议为例,如图,在过滤器中输入”http”并回车, 观察到分组列表栏中的条目的Protocol都为http
在这里插入图片描述
(2) IP地址过滤
① 打开Wireshark捕获分组
② 如图, 在cmd中ping百度的网址, 得到其IP地址39.156.66.10
在这里插入图片描述
③ 在wireshark中过滤目的地址为39.156.66.10的分组
在这里插入图片描述
(3) 模式过滤
过滤分组列表栏中的http请求方法为POST的分组,如图:
在这里插入图片描述
(4) 端口过滤
过滤分组列表兰中tcp端口号为80的分组,如图:
在这里插入图片描述

2. 抓包与分析HTTP协议

2.1 打开Wireshark捕获分组, 在过滤器中输入”http”以过滤http协议的分组.
2.2 打开浏览器, 输入一个以前未访问过的网址, 如”https://butian.com/”, 访问的网址需以前未访问过是为了防止浏览器直接调用缓存。
2.3 观察到分组列表栏中出现HTTP协议的分组,如图:
在这里插入图片描述
2.4 逐个查看分组详情栏, 检查哪些条目是浏览网页产生的分组。如下图,分析可知前两个分组是浏览网页产生的, 可从分组列表栏中得知此次浏览网页的源IP地址和目的地IP地址, 从分组详情栏得知此次浏览网页的用户名和主机名。
在这里插入图片描述

3. 分析TCP协议

3.1 分析2.4中的分组的TCP协议信息。在分组详情栏中得知本次TCP连接的源端口号、目的端口号、序列号、确认号、报头长度、标志位、窗口大小、校验和、数据,如图:
在这里插入图片描述
3.2 追踪上述分组的TCP流。如图, 右键该条目, 追踪流-TCP流.
在这里插入图片描述
3.3 如图, 找到Info中带有[SYN]、[SYN, ACK]、[ACK]的三个分组, 发现它们在HTTP GET请求之前, 它们是TCP建立的分组。
原理: ①TCP建立在HTTP GET请求前; ②TCP建立连接时会设置标志位SYN。
在这里插入图片描述

4. 分析TCP三次握手

在这里插入图片描述
4.1 TCP第一次握手(SYN), 在分组详情栏中得知序号3833233892, 且Flags中的Syn位置1。
在这里插入图片描述
4.2 TCP第二次握手(SYNACK), 在分组详情栏中得知序号、确认、ACK位置1、SYN位置1,观察到确认号 = SYN序号 + 1。
在这里插入图片描述
4.3 TCP第三次握手(ACK), 在分组详情栏中得知确认号、ACK位置1、SYN位置0,观察到确认号 = SYNACK序号 + 1。
在这里插入图片描述

5. 分析ICMP协议

5.1 打开Wireshark捕获分组, 在过滤器中输入”icmp”以过滤icmp协议的分组,icmp协议是ping命令使用的协议。
5.2 如下图, 在cmd中ping百度的网址。
在这里插入图片描述
5.3 在分组列表栏中观察到4次ping的请求和回复,如图所示:
在这里插入图片描述

实验结果

实验结果以及分析,结论在实验步骤中已有阐述。
下面对TCP连接部分进行补充:
在这里插入图片描述
(1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=x,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
(3)第三次握手:Client收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=y+1,并将该数据包发送给Server,Server检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

简单来说,就是:
  1、建立连接时,客户端发送SYN包(SYN=i)到服务器,并进入到SYN-SEND状态,等待服务器确认;
  2、服务器收到SYN包,必须确认客户的SYN(ack=i+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器进入SYN-RECV状态;
  3、客户端收到服务器的SYN+ACK包,向服务器发送确认报ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手,客户端与服务器开始传送数据。

查阅相关资料,了解到TCP在建立三次握手的时候存在着风险。
在三次握手过程中,Server发送SYN-ACK之后,收到Client的ACK之前的TCP连接称为半连接(half-open connect),此时Server处于SYN_RCVD状态,当收到ACK后,Server转入ESTABLISHED状态。SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server回复确认包,并等待Client的确认,由于源地址是不存在的,因此,Server需要不断重发直至超时,这些伪造的SYN包将产时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络堵塞甚至系统瘫痪。这种攻击叫作SYN攻击,是一种典型的DDOS攻击。

实验小结

通过本次实验,我学会了以下内容:

  1. Wireshark的基本操作
  2. 查看分组的具体信息
  3. 利用Wireshark进行抓包和分析HTTP协议
  4. 分析TCP三次握手的过程和原理
  5. 了解了ping指令使用的ICMP协议过程
    这次实验让我对Wireshark的使用和网络协议有了更深入的了解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值