计算机网络抓包实验记录和总结

计算机网络抓包实验记录和总结


实验准备:


引言

作为学习计算机网络的学生,了解网络数据包的组成,通过对网络上传输的数据进行抓取,可以对其进行分析,对于软件的Debug很大的帮助。当然也可以通过抓取用户发送的涉及用户名和密码的数据包来获取用户的密码,这样的知识可以启发我们更多的兴趣:

(1)网络通讯的真实内容。

(2)网络故障分析。

(3)程序网络接口分析。

(4)木马通讯数据内容。

实验概述:

我们的计算机通过向网络上传和从网络下载一些数据包来实现数据在网络中的传播。通常这些数据包会由发出或者接受的软件自行处理,普通用户并不过问,这些数据包一般也不会一直保存在用户的计算机上。

这次实验中,我先对于实验资料内容进行学习,初步了解了实验的要求和步骤后,发现这次的材料不仅是包含许多生词的全英文文档,而且涉及的抓包软件版本非常旧,无法立刻上手,所以我做了一下工作:

  • 先下载要用的软件,确定当前版本;
  • 查阅英文字典,确定实验要求文档具体内容和思路;
  • 寻找辅助教程,确保自己可以按照实验教程思路,使用新版本软件完成实验

在实验中,我观察到这次实验是一个循序渐进的探索过程,从尝试抓包,获取数据包,再到确定数据包后对其内容结构的分析和阅读,所以我一步一步按照实验要求,及时记录自己的实验过程,并且对每一步的步骤和思路做简要总结,在其中,我也遇到一些问题:

  • 新版本软件在win10系统中会频繁停止抓包,所以我尝试这个方法后只能做到每次打开抓包一次的操作;
  • 实验要求抓包同学的数据,我为了不侵犯他人隐私,最后抓包了我的和主机ip地址不同的vm虚拟机的数据,并且成功解读;
  • 自我探索内容涉及后面课程的http协议和分层的一些知识,我提前做了一些预习工作,并且查询一定资料后,完成了这项任务,可以算作一个加分项

最后,这次实验在软件应用层面,让我了解了许多计算机网络数据传输的细节,让我对各种数据和它们绑定的协议,结构有了更深入的了解。


实验步骤:

步骤一-捕获数据包

在这里插入图片描述

  1. 操作:运行软件,使用过滤器“tcp port 80”,检查“enable network name resolution”;浏览网页,进行抓包,大部分应该是绿色;
  2. 原理:这个过滤器将只记录标准的网络流量,检查选项将有助于识别这些数据包是否属于你的计算机交互的信息;

步骤二-观察数据包

在这里插入图片描述

  1. 操作:浏览数据包,以及字段层和字节层
  2. 原理:Wireshark将让我们选择一个数据包(从顶部面板),并查看其协议层,它的协议层,从头字段(在中间面板)和组成数据包的字节(在底部面板)两方面来看;

步骤三-理解数据包

  1. 操作:
    我选择的抓包数据:
    在这里插入图片描述
    我对这个数据包一些结构和内容的理解:
名称内容
源端口号56086
目的端口号80
序号0
确认号0
报头长度32bytes
标志位0x002
窗口64240
校验和0xccca
  1. 原理:
    在这里插入图片描述

步骤四-查看他人数据包-通过我的虚拟机

  1. 操作:“capture packets in promiscuous mode”

我虚拟机ip:
在这里插入图片描述

数据包信息:
在这里插入图片描述

  1. 原理:通过对抓包信息可以确定,这个数据包是通过我的vm虚拟机进行信息交互,访问教学网站课堂派(ketangpai.com),协议为TLSv1.2

步骤五-自我兴趣探索->IPv6

我想要在数据包上了解其内容层次与我们课程内容的联系,试图用我上课所学到的知识解释和理解我自己实践中的捕获数据信息。

操作原理:
在这里插入图片描述
我的捕获:
IPv6协议数据包
在这里插入图片描述

内容分析:
(1)Frame: 物理层的数据帧概况
(2)Ethernet II: 数据链路层以太网帧头部信息
(3)Internet Protocol Version 6: 互联网层IP包头部信息
(4)Data:数据信息
样例中没有包含的:
Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议

通过这样的层次观察可以发现

在这里插入图片描述
在数据报报文中:
在这里插入图片描述

解释:
下一个首部:用来指明报头后接的第4层的报文头部的类型
跳数限制:定义了一个报文的生命周期,代替IPv4报文头中的TTL
源地址:该报文的来源IP地址
目的地址:该报文的目的IP地址

在这里插入图片描述


知识拓展

在这里插入图片描述
理解:

TCP三次握手连接建立过程:客户端发送一个SYN=1,ACK=0标志的数据包给服务端,请求进行连接,这是第一次握手;服务端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让客户端发送一个确认数据包,这是第二次握手;服务端发送一个SYN=0,ACK=1的数据包给客户端端,告诉它连接已被确认,这就是第三次握手。TCP连接建立,开始通讯。

总结收获:

实验让我以应用角度了解了计算机网络各层次运作的一些细节,对于课本上的知识有了更多更深的理解,更通过自己的兴趣自主探索了IPv6报文的许多知识,了解了许多计算机网络数据传输的细节,让我对各种数据和它们绑定的协议,结构有了更深入的了解。