IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 计算机网络实验二 Wireshark实验 -> 正文阅读

[系统运维]计算机网络实验二 Wireshark实验

Wireshark 实验

本部分按照数据链路层、网络层、传输层以及应用层进行分类,共有 10 个实验。需要使用协议分析软件?Wireshark?进行,请根据简介部分自行下载安装。

准备

请自行查找或使用如下参考资料,了解?Wireshark?的基本使用:

  • 选择对哪块网卡进行数据包捕获
  • 开始/停止捕获
  • 了解?Wireshark?主要窗口区域
  • 设置数据包的过滤
  • 跟踪数据流

🌏 参考

  1. Wireshark官方文档
  2. Wireshark抓包新手使用教程
  3. Troubleshooting with Wireshark
  4. The Official Wireshark Certified Network Analyst Study Guide
  5. Wireshark Network Security

数据链路层

实作一 熟悉 Ethernet 帧结构

使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。

?

??问题

你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。

答:原因:因为校验和会由网卡计算,这时wireshark抓到的本机发送的数据包的校验和都是错? ? ? ? ? ?误的,所以默认关闭了WireShark自己的校验。

实作二 了解子网内/外通信时的 MAC 地址

? ? 1.ping?你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可使用 icmp 关键字? ? ? ?进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?? ? ?这个 MAC 地址是谁的?

ping 192.168.43.95

?

??????????????

?

?MAC地址是主机的

?目的MAC:01:00:5e:7f:ff:fa

原MAC:dc:f5:05:0d:d7:a5

? ? ? ?2.然后?ping qige.io?(或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?

?

?

?

MAC地址是网关的

目的MAC:3a:7d:01:04:a4:53

源MAC:40:8b:9a:97:e3:67

? ? ? ? 3.再次?ping www.cqjtu.edu.cn?(或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址又是多少?这个 MAC 地址又是谁的?

?

?

MAC地址是网关的

目的MAC:00:74:9c:9f:40:13

源MAC:40:b8:9a:97:e3:67

??问题

通过以上的实验,你会发现:

  1. 访问本子网的计算机时,目的 MAC 就是该主机的
  2. 访问非本子网的计算机时,目的 MAC 是网关的

请问原因是什么?

答:网关是一个子网的出入口,当访问非子网的计算机时,需要通过网关才能访问外网;而访问本子网时,则不需要经过网关到外网。

实作三 掌握 ARP 解析过程

? ? ? ? ?1.为防止干扰,先使用?arp -d *?命令清空 arp 缓存

?

?

?

ping?你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。

?

?源MAC地址是我所ping的主机的物理地址
目的MAC地址是我的主机地址

? ? ? ? ?2.再次使用?arp -d *?命令清空 arp 缓存

?

然后?ping qige.io?(或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。

Who has 192.168.43.1?Tell 192.168.43.115

??问题

通过以上的实验,你应该会发现,

  1. ARP 请求都是使用广播方式发送的
  2. 如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的 IP, 那么 ARP 解析将得到网关的 MAC。

请问为什么?

答:ARP代理访问非子网IP时是通过路由器访问的,路由器再发出去,目标IP收到请求后,再通过路由器端口IP返回去,那么ARP解析将会得到网关的MAC。

网络层

实作一 熟悉 IP 包结构

使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段。

?

??问题

为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?

答:为了方便识别IP长度,节省识别所需要的时间。

实作二 IP 包的分段与重组

根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。

缺省的,ping?命令只会向对方发送 32 个字节的数据。我们可以使用?ping 202.202.240.16 -l 2000?命令指定要发送的数据长度。此时使用 Wireshark 抓包(用?ip.addr == 202.202.240.16?进行过滤),了解 IP 包如何进行分段,如:分段标志、偏移量以及每个包的大小等

?

?

?

??问题

分段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。那么 IPv6 中,如果路由器遇到了一个大数据包该怎么办?

答:可以直接丢弃该数据包。

实作三 考察 TTL 事件

在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。

在验证性实验部分我们使用了?tracert?命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。

请使用?tracert www.baidu.com?命令进行追踪,此时使用 Wireshark 抓包(用?icmp?过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理。

?

?

??问题

在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。如果你收到一个包,其 TTL 的值为 50,那么可以推断这个包从源点到你之间有多少跳?

答:至少50跳。

传输层

实作一 熟悉 TCP 和 UDP 段结构

  1. 用 Wireshark 任意抓包(可用 tcp 过滤),熟悉 TCP 段的结构,如:源端口、目的端口、序列号、确认号、各种标志位等字段。
  2. 用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等。

?

?

??问题

由上大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?

答:源端口就是指本地端口,目的端口就是远程端口,源端口就是本机程序用来发送数据的端口,目的端口就是对方主机用哪个端口接收,通过记录收发双方的端口,从而实现两者之间的通信。

实作二 分析 TCP 建立和释放连接

? ? ?1.打开浏览器访问 www.baidu.com 网站,用 Wireshark 抓包(可用 tcp 过滤后再使用加上?Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间使得能够捕获释放连接的包。

2.请在你捕获的包中找到三次握手建立连接的包,并说明为何它们是用于建立连接的,有什么特征。

?

”第一次握手”:IP地址为192.168.43.115的客户端发送序号Seq=0的报文给IP地址为183.232.231.172的服务器;

”第二次握手”:服务器收到该报文后,返回一个以[SYN,ACK]作为标志位的报文,服务器端序号Seq=0,确认号Ack=1,返回给客户端;

”第三次握手”:客户端收到服务器端返回的报文后,再向服务器端发送以[ACK]作为标志位,其中客户端序号Seq=1,确认号Ack=1的报文,再次发送给服务器。

3.请在你捕获的包中找到四次挥手释放连接的包,并说明为何它们是用于释放连接的,有什么特征。

?

??问题一

去掉?Follow TCP Stream,即不跟踪一个 TCP 流,你可能会看到访问?qige.io?时我们建立的连接有多个。请思考为什么会有多个连接?作用是什么?

答:访问网页是由多个连接组成的。每个连接传送完数据后就会断开。断开连接,由于页面已经被缓存下来,页面仍然存在。若要重新进行发送数据,就要再次进行连接。

作用:为了实现多个用户进行访问,减少通道使用。

??问题二

我们上面提到了释放连接需要四次挥手,有时你可能会抓到只有三次挥手。原因是什么?

应用层

应用层的协议非常的多,我们只对 DNS 和 HTTP 进行相关的分析。

实作一 了解 DNS 解析

1.先使用?ipconfig /flushdns?命令清除缓存,再使用?nslookup qige.io?命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。

清除缓存

使用?nslookup qige.io?命令进行解析

?

?

2.你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。

?

3.可了解一下 DNS 查询和应答的相关字段的含义

QR:查询/应答标志。0表示这是一个查询报文,1表示这是一个应答报文

opcode,定义查询和应答的类型。0表示标准查询,1表示反向查询(由IP地址获得主机域名),2表示请求服务器状态

AA,授权应答标志,仅由应答报文使用。1表示域名服务器是授权服务器

TC,截断标志,仅当DNS报文使用UDP服务时使用。因为UDP数据报有长度限制,所以过长的DNS报文将被截断。1表示DNS报文超过512字节,并被截断

RD,递归查询标志。1表示执行递归查询,即如果目标DNS服务器无法解析某个主机名,则它将向其他DNS服务器继续查询,如此递归,直到获得结果并把该结果返回给客户端。0表示执行迭代查询,即如果目标DNS服务器无法解析某个主机名,则它将自己知道的其他DNS服务器的IP地址返回给客户端,以供客户端参考

RA,允许递归标志。仅由应答报文使用,1表示DNS服务器支持递归查询

zero,这3位未用,必须设置为0
rcode,4位返回码,表示应答的状态。常用值有0(无错误)和3(域名不存在)

??问题

你可能会发现对同一个站点,我们发出的 DNS 解析请求不止一个,思考一下是什么原因?

答:DNS可以减少网站管理维护负载均衡服务器的麻烦,对于部署在服务器上的应用来说不需要进行任何的代码修改即可实现不同机器上的应用访问。

实作二 了解 HTTP 的请求和应答

1.打开浏览器访问 www.baidu.com 网站,用 Wireshark 抓包(可用http 过滤再加上?Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。

2.请在你捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。

GET命令:


Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。
Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。
Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中。
Content-Length:表示请求消息正文的长度。 Cookie:设置cookie,这是最重要的请求头信息之一
From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它。 Host:初始URL中的主机和端口。
If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304“Not Modified”应答。

3.请在你捕获的包中找到 HTTP 应答包,查看应答的代码是什么,如:200, 304, 404?等。并仔细了解应答的头部有哪些字段及其意义。

?200 OK 一切正常,对GET和POST请求的应答文档跟在后面。
201 Created 服务器已经创建了文档,Location头给出了它的URL。
204 No Content 没有新文档,浏览器应该继续显示原来的文档。
301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
302 Moved Temporatily 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。
400 Bad Request 请求出现语法错误。
401 Unauthorized 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。
403 Forbidden 资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。
404 Not Found 无法找到指定位置的资源。这也是一个常用的应答

? 建议:

HTTP 请求和应答的头部字段值得大家认真的学习,因为基于 Web 的编程中我们将会大量使用。如:将用户认证的令牌信息放到头部,或者把 cookie 放到头部等。

??问题

刷新一次 qige.io 网站的页面同时进行抓包,你会发现不少的?304?代码的应答,这是所请求的对象没有更改的意思,让浏览器使用本地缓存的内容即可。那么服务器为什么会回答?304?应答而不是常见的?200?应答?

答:200应答是要完全的将内容发送给客户端,而浏览器不是每一项都需要向服务器进行请求。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 14:27:52  更:2022-01-08 14:29:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:56:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码