WiFi认证—分析从连接WiFi到上网的全过程(一)

article/2025/8/26 18:05:52

WiFi认证—分析从连接WiFi到上网的全过程(一) - 墨天轮

1

聊一聊网络分析那些事

  在我们的业务当中,RPC为各个节点之间的交互提供了通信保障。节点间通信作为整个体系中至关重要的一环,对整体的业务具有不可忽视的影响;通信速率是影响业务直接因素,所以对节点之间的通信能有一个有力检测及分析方式非常重要。

此外,对通信业务进行分析可能并不仅仅针对网络通信的好坏。在分布式或者共享存储的条件下,业务处理性能的好坏也会直接在通信上有一个直观的反馈。通俗来讲,业务处理性能优秀,那么在网络条件良好的情况下,通信状态也会有较好的性能表现;反之,业务处理较慢,那么节点间的通信状况也不会满足我们的期待。

总的来说,对节点间的通信有针对性的检测和分析,有三个作用:一是分析当前测试环境的网络状态;二是分析各个节点的网络通信模块是否出现异常状况;三是从宏观上获得业务处理性能在通信上的直接反馈。基于此,本文将在这几个方面讲述如何使用WireShark
如何捕获及分析通信数据包。

2

本文的主要内容

本文的目的在于如何使用WireShark对网络环境和节点间通信状况进行检测与分析,故没有太多的关注与实际业务的耦合,着重点在于讲解WireShark的使用,让网络原理不再停留在概念和书本之上。

本文将使用一个简单的例子完成对网络通信流程、WireShark使用以及网络体系基本面貌的讲解。从连接至普通家用路由器开始,到浏览一个网页。分析期间发生了什么,什么设备工作了,运用了哪些路由协议,他的工作原理是什么,本文都会对其进行一一讲解。

在所有的实验环节当中,之所以选择使用无线WiFi作为讲解的第一步,主要的考虑是,单独的讲述由交换机作为网络中枢的有限局域网,大家可能都已经较为了解。使用无线WiFi来作为讲述的第一步,主要的目的就在于引入更多的元素。

3

涉及到的技术和协议原理

在普通家用路由器可以正常连接外网的时候,无线局域网内部的主机可以通过此路由器完成对外网访问,就浏览网页而言,这个过程做运行的协议,经过的设备将在后面部分分析。本章主要描述WiFi认证、DHCP等基础的网络协议。

3.1

WiFi认证过程

对于个人的 PC 来讲,我们所使用最多的就是所谓的“无线 WiFi”,这是一个目前运用广泛并且较为简单的概念。我们通过 AP(Access Point)接入点来接入网络。连接到家用路由器大致可以分为以下几个过程:

1)AP 发送 Beacon 广播管理帧(信标帧)
2)客户端向承载指定 SSID
 的 AP 发送 Probe Request(探测请求)帧
3)AP 接入点对客户端的 SSID 连接请求进行应答
4)客户端对目标 AP 请求进行身份认证
5)AP 对客户端的身份认证(Authentication)请求做出回应
6)客户端向 AP 发送连接(Association)请求
7)AP 对连接(Association)请求进行回应
8)数据交互
9)客户端向 AP 请求断开连接(Disassociation

3.2

DHCP(动态主机配置)

动态主机配置协议是一个局域网的网络协议。指的是由服务器控制一段 IP 地址范围,客户机登陆服务器就可以自动获得一个服务器分配的 IP 地址和子网掩码。由于普通的家用路由器已经默认开启了 DHCP 服务,则当客户机完成身份认证之后,该 DHCP 服务将会从 IP 地址池中动态分配一个 IP 地址给客户机。在租用期内,客户机可以通过该 IP 地址完成与其他主机的通信。一般的,DHCP协议规定的几种报文类型如下:

1)Discover(发现)报文 广播发送,客户端发送给DHCP服务器(用来发现有哪些服务器)
2)Offer(提供)报文: 用来响应Discover报文 包含了各种配置信息(服务器发送自己的详细信息给客户端,看它用不用)
3)Request(请求)报文: 客户端请求配置确认,或续借租期
4)ACK(确认)报文: 服务器对Request报文进行确认
5)NAK报文: 服务器对Request报文拒绝响应。
6)Release: 客户端要释放地址时用来通知服务器。传输层使用UDP协议,端口为 6768

3.3

其他相关的基础网络协议

普通家用路由器可以正常连接外网的时候,无线局域网内部的主机可以通过此路由器完成对外网访问,就浏览网页而言,这个过程运行的协议(包括ARP、DNS、TCP等),经过的设备将在后面部分分析。

4

测试步骤

1.用户 PC 开机并打开 WireShark,开始监听指定网卡的数据包
2.连接家用无线路由器
3.访问网址 www.msftconnecttest.com, 获取页面数据

5

抓包分析相关的网络协议

3.3

802.11 数据帧分析

802.11和WiFi技术并不是同一个概念。WiFi标准是802.11标准的一个子集,并且是WiFi联盟负责管理。但是这并不妨碍我们使用802.11协议来分析其通信过程。802.11的帧控制结构有很多,它被基本的区分为控制帧和管理帧,本文仅对连接AP的过程进行分析,所以仅涉及管理帧的分析。

由于实验环境中有很多的 Beacon 广播信号的干扰,为保证在众多的数据中快速找到客户机路由器的 Mac地址 连接的过程,是事先记录相关的 Mac 地址,其中:

路由器的 Mac 地址为:dc:f0:92:9c:f9:a0
客户机的 Mac 地址为:70:1c:e7:c3:65:a9

  • AP发送Beacon广播管理帧(信标帧)

因为AP发送的Beacon管理帧数据包是以Broadecast(广播)的形式发送数据,所以当含有无线网络适配器的设备将会在无线连接列表中显示该SSID。

值得注意的是,包数据中的Type/Subtype
字段说明了这个帧的类型为Beacon Frame, 并且Destination address
字段描述了这个请求的域为BroadcastSupported Rates
 指示了该协议下支持的速率。Duration
表明该帧和它的确认帧将会占用信道多长时间,其值用于网络分配向量(NAV)计算。

  • 客户端向承载指定SSID的AP发送Probe Request(探测请求)帧

当我们点击连接的时候,无线网卡就会发送一个探测请求帧,用来向AP请求连接。

可以注意到,Probe Request 用于主动扫描试图寻找网络,而不是听候网络宣告其本身的存在,此时的请求仍然使用广播的形式来探测指定SSID的AP是否存在,试图从该AP中获取所发现的所有 BSS 及其相关参数。

  • AP接入点对客户端的SSID连接请求进行应答

指定SSID的AP如果获知了Probe Request的内容,将会发送 Probe Response 回应对应的请求,并报告BSS相关的参数,这些参数决定了客户端能以何种方式及何种速率连接或通信。此时的响应使用的是单播的形式予以响应。

  • 客户端对目标AP请求身份认证

假设客户端已经获知Probe Response提供的信息,那么它将以单播的形式请求身份的认证,从下图中可以看到Authentication gorithm 的标识为 0 ,表示使用开放系统认证方式,此时的Authentication SEQ 字段为1,表示该帧属于认证过程中的第一帧。

  • AP 对客户端的身份认证(Authentication) 作出回应

和上一个帧一样,AP 收到客户端发起的认证请求时,将会以单播的形式回复一个Authentication SEQ 为2的Response。在这两个Authentication帧中,都有一个status code字段用于表示身份认证请求的结果,为0时表示成功。此外,两个Authentication帧都使用了开放系统身份认证(open-system authentication),它是 802.11 唯一要求必须具备的认证方式。

  • 客户端向AP发送连接(Association)请求

身份认证通过,这意味着连接到AP的准备工作已经完成,此时客户端可以向AP发送正式的连接请求。

此时该请求的Type/SubType已经变成Association Request
,802.11 wireless Lan management帧中的Capability Infomation字段描述了性能相关的信息。ESS/IBSS两位具有互斥关系,接入点会将ESS设置为1,而将IBSS字段设置为0,标识接入点属于基础结构型网络的一部分;IBSS中的工作站则会将ESS设置为0,而将IBSS设置为1。

  • AP对连接(Assocication)请求予以回应

AP 对客户端的连接请求(Association)予以回应,至此,WiFi 的连接认证交互就结束了之后就可以进行正常的数据交互了。之后的数据交互和客户端断开连接请求不再赘述。

6

小结

本文主要对从连接WiFi到上网的全过程中的相关协议进行了介绍,并通过WireShark抓包具体分析了其中的关键步骤。至此,整个过程就迈出了第一步。后面的章节将会具体描述终端连接到AP之后如何完成上网这一个过程。


http://chatgpt.dhexx.cn/article/GqoJ6WcM.shtml

相关文章

金蝶K3开发-工业单据显示物料图片

金蝶K3工业单据单据体实现当鼠标移动到物料代码字段区域时,自动显示对应分录的物料图片,鼠标移动到其他区域时,窗体会自动消失。

金蝶K3开发-基础资料插件开发

金蝶K3的基础资料是支持二次开发的,修改一下界面显示或者控制录入的数据是没有问题,调用官方接口即可轻松实现。 但如果你想扩展一些个性功能,如在客户基础资料上维护客户的联系人或者客户的收货信息等等,增加自定义字段显然不是个…

在金蝶开发中,根据id如何查找对应的bosType

先找到一个id,有两种方法,一种是应用于代码中,一种是在客户端查询 先说第一种代码实现: String bosType BOSUuid.read(modelId).getType().toString(); modelId是一个String类型的字符串 第二种,用客户端登录&#xf…

金蝶K3开发-工业单据自定义控件

工业单据金蝶本身提供了单据自定义,但功能有限。通过开发,单据头和单据体均可实现下拉框、复选框、多行显示文本框等自定义字段,这些是系统本身的自定义无法实现的。 单据头也可以增加自定义图标字段,显示如快递单号的条形码或者二…

金蝶开发中根据实体查找bostype,再根据bostype规则,生成对应的id

金蝶开发中根据实体查找bostype,再根据bostype规则,生成对应的id,适用于在dep建的表,需要自己手动写insert语句的,因为在金蝶开发中,fid是根据bostype来生成的,以下示例仅供参考 在客户端查找b…

金蝶EAS开发认证考试

金蝶BOS考试 https://wenku.baidu.com/view/81c8a65465ce050877321391.html WAFII 帮助系统 http://waf2.kingdee.com:6888/waf2help/ BOS考试题库 https://wenku.baidu.com/view/cc5e442c2af90242a895e557.html BOS模拟认证考试 https://wenku.baidu.com/view/bf383ebe1a37…

金蝶二次开发 的新手体会

金蝶二次开发 的新手体会 1.标识、字段名、绑定的实体属性分别是什么? 标识,必须全单据唯一,在插件中据此获取字段元数据; 字段名,是字段在数据库表格中的字段名称,在实体中唯一,插件据此&#…

金蝶EAS开发 第二弹:了解开发工具与基本使用(下)

承接上一篇:金蝶EAS开发 第一弹:了解开发工具与基本使用(上) ,我们继续! 3.3. client目录是客户端相关的:里面可以配置各种功能的UI: 3.3.1. UI配置文件: 3.3.2. UI配置页面: 配置页面大概分为这几个部分,红框部分为UI的整体布局概览,可以将右侧蓝框中各种各样的控件拖入其中…

金蝶云星空ERP附件上传接口开发思路

1️⃣ 需求描述:需要通过调用金蝶API接口实现指定单据的附件上传。本文以收料通知单为例,以Java代码示例进行讲解。 tips:阅读本文开始前,希望你是一名开发者同时阅读过: https://vip.kingdee.com/article/87232573931…

金蝶创建webservice接口和调用

注意:因为文件缺失webservice这部分是以3个功能来描述的 webservice金蝶有标准接口可以在金蝶社区找到文档,自己写一个webservice接口需要在金蝶bos设计开发工具matedata目录下新建一个功能。 注意:功能命名结尾要以Facade结尾 功能建完后再…

BOS金蝶云星空开发简单账表

一.BOS创建简单账表: 1.左键单击左上角文件->新建。 2.选择简单账表,输入名称,编号,点击确定,创建简单账表。 3.选择过滤条件框,输入名称,编号,点击确定。 二.Visual Studio…

金蝶插件开发理解

(1)金蝶软件 金蝶是一家从事企业管理,从事财务,供应链,仓库等等的软件公司 金蝶的软件可以分成两部分: 1,BOS模块,配置开发模块 2,前端界面模块 3,后端可以通过配置和写插件的形式开…

金蝶二开感受

小白感受篇 最近换工作,公司使用金蝶系统来作为公司的财务中台,因此与金蝶云星空结缘。 说说我的感受、以及对金蝶二开的理解。后面我应该也会不定时更新我对金蝶的看法以及新的感受。 在我没有真正接触金蝶前,我只知道有些比较知名的软件…

金蝶EAS开发 第一弹:了解开发工具与基本使用(上)

毕业前夕,我来到了一家物流公司实习,为本公司做系统.我被分配的是用金蝶做财务系统的二次开发,没有文档的帮助真的让我头皮发麻,还好同事很热心,一直在帮助我,不然要上手这玩意还真的很有难度.入职已经两个星期了,我觉得好记性不如烂笔头,今天开始我准备尽量将学到的知识记录下…

金蝶插件开发

1、报表开发 报表开发需要表头表体两个插件,表头继承AbstractReportFormPlugin类,表体继承AbstractReportListDataPlugin类,其中列表的数据需要显示,则主要靠的是AbstractReportListDataPlugin子类实现query(&#xf…

金蝶BOS开发入门

金蝶BOS开发入门 金蝶BOS开发工具介绍 解决方案相当于一个JAVA项目,而BOS开发工具是开发解决方案的技术平台。它可以新建一个解决方案,或者从本地或者远程导入一个已有的解决方案,具体操作后续会讲到。 界面介绍和简单使用 简单&#xff…

金蝶EAS开发笔记

1.界面介绍 1. 新建业务单位,若无需求,默认选用财务组织。 2. 在项目路径下的\metadata\com\kingdee\eas\custom\bill 可改单据名称。 3. 标准:默认先在用户自定义下面建立报表(rpt)、基础资料(basedata)和业务单据(bill),即在…

测试用例设计方法——因果图法

1.因果图  1.1考虑所有输入/输出条件的相互制约关系以及组合关系  1.2考虑输入条件之间的依赖关系;  1.3再根据分析的关系来转化为判定表的规则 2.条件与结果之间的关系  2.1恒等  2.2非(~)  2.3或(V)  2.4与 3…

实验4、黑盒测试:因果图法及测试用例设计

实验4、黑盒测试:因果图法及测试用例设计 一、实验目的 1、掌握因果图的概念。 2、掌握因果图测试用例设计法。 二、实验任务 以下三个任务、至少完成一个 1、某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一…

【测试入门】测试用例经典设计方法 —— 因果图法

01、因果图设计测试用例的步骤 1、分析需求 阅读需求文档,如果User Case很复杂,尽量将它分解成若干个简单的部分。这样做的好处是,不必在一次处理过程中考虑所有的原因。没有固定的流程说明究竟分解到何种程度才算简单,需要测试…