WiFi研究分册二正常操作全流程信令交互分析.docx

上传人:b****6 文档编号:8703876 上传时间:2023-02-01 格式:DOCX 页数:79 大小:2.81MB
下载 相关 举报
WiFi研究分册二正常操作全流程信令交互分析.docx_第1页
第1页 / 共79页
WiFi研究分册二正常操作全流程信令交互分析.docx_第2页
第2页 / 共79页
WiFi研究分册二正常操作全流程信令交互分析.docx_第3页
第3页 / 共79页
WiFi研究分册二正常操作全流程信令交互分析.docx_第4页
第4页 / 共79页
WiFi研究分册二正常操作全流程信令交互分析.docx_第5页
第5页 / 共79页
点击查看更多>>
下载资源
资源描述

WiFi研究分册二正常操作全流程信令交互分析.docx

《WiFi研究分册二正常操作全流程信令交互分析.docx》由会员分享,可在线阅读,更多相关《WiFi研究分册二正常操作全流程信令交互分析.docx(79页珍藏版)》请在冰豆网上搜索。

WiFi研究分册二正常操作全流程信令交互分析.docx

WiFi研究分册二正常操作全流程信令交互分析

 

Wi-Fi研究分册二

正常操作全流程信令交互分析

Version1.0

 

江苏电信无线网络优化中心

目录

1.1扫描6

1.1.1相关参数6

1.1.2被动扫描7

1.Beacon的帧结构7

1.1.3主动扫描7

1.PorbeRequest的帧结构8

2.Proberesponse的帧结构8

1.1.4实际扫描过程8

1.2关联9

1.2.1身份验证(Authentication)9

1.AuthenticationRequest的帧结构10

2.Authenticationresponse的帧结构10

1.2.2关联(association)11

1.Associationrequest的帧结构11

2.Associationresponse的帧结构12

1.2.3DHCP的封装13

1.LLCheader的结构13

2.IPHeader的结构14

3.UDP的结构17

4.Bootp的结构17

5.DHCP的结构18

1.2.4DHCP的交互18

1.DHCPDiscover19

2.DHCPOffer21

3.DHCPRequest23

4.DHCPACK23

1.2.5ARP24

1.2.6NullDataFrame25

1.2.7关联总结26

1.2.8去关联26

1.Disassociation&Disauthenticaion27

1.3PPPoE认证27

1.3.1PPPoEDiscovery28

1.PPPoEActiveDiscoveryinitiation(PADI)31

2.PPPoEActiveDiscoveryOffer(PADO)31

3.PPPoEActiveDiscoveryRequest(PADR)32

4.PPPoEActiveDiscoverySession-confirmation(PADS)32

1.3.2PPPoESession--LinkControlProtocol(LCP)33

1.LCPConfigurationoptions35

Maximum-receive-unit(2bytes)35

Async-Control-Character-Map35

Authentication-Type(>=4bytes)35

MagicNumber36

Link-Quality-Monitoring36

Protocol-Field-Compression(2bits)36

Address-and-Control-Field-Compression(2bits)37

Additionaloptions:

FCS-Alternatives37

Additionaloptions:

Self-Describing-Padding37

Additionaloptions:

Callback37

Additionaloptions:

Compound-Frames37

2.Configurerequest37

BRSSTA37

STABras38

3.ConfigurateACK39

4.ConfigureReject39

5.Identification39

6.CompressionControlProtocol40

1.3.3PPPoEsession—ChallengeHandshakeAuthenticationProtocol(CHAP)41

1.Callenge&Response42

BRASTA42

STABRA42

2.Success&Failure43

1.3.4PPPoEsession—Radius43

RequestAuthenticator44

ResponseAuthenticator44

1.Accessrequest44

2.AccessAccept44

3.AccessReject45

4.AccessChallenge45

5.AccountingRequest45

6.AccountingResponse46

1.3.5PPPoEsession—InternetProtocolControlProtocol(IPCP)46

1.Configurerequest47

BrasSTA47

STABras47

2.ConfigureReject48

BrasSTA48

3.ConfigureNak48

BrasSTA48

4.ConfigureACK49

STABras49

BrasSTA49

1.3.6PPPoE下线50

1.Terminaterequest51

2.Terminateresponse51

3.PADT51

STABras51

BrasSTA52

4.Accountingrequest52

5.Accoutingresponse52

1.4Portal(WEB)认证53

1.4.1重定向53

1.DNS54

STANameServer54

NameServerSTA55

2.TCP56

STABras57

BrasSTA57

STABras58

STABras59

STABras59

BrasSTA59

3.HTTP60

STABras请求格式60

BrasSTA响应格式61

1.4.2打开Portal页面62

1.ClientHello63

2.Serverhello64

3.Servercertificate&serverhellodone64

4.ClientKeyexchange&ChangeCipherSpec&Clientfinish65

5.ChangeCipherSpec&Serverfinish65

6.Applicationdata66

1.4.3认证阶段67

STAPortal67

PortalBrasChallengeRequest68

BrasPortalChallengeResponse68

PortalBras认证请求68

BrasRadius68

RadiusBras69

BrasRadius69

RadiusBras69

BrasPortal认证响应70

PortalSTA70

1.4.4Portal下线70

STAPortal71

PortalBras71

BrasRadius71

RadiusBras72

BrasPortal72

PortalSTA72

1.5漫游切换73

漫游切换对于无线局域网来说是支持用户可以在无感知的情况下实现从一个接入点到另一个接入点的移动。

这一节我们就来研究一下wifi切换的实现的机制。

当STA由一个AP的BSS向另一个AP的BBS时,原AP的信号强度和信噪比都会下降,使他丢失连接并初始化一个切换,这个时候STA是不能和AP发生通信的,所以STA需要重新关联一个新的AP,这个过程和之前的扫描过程是一样的,在接受beacon帧的同时会根据信号强度产生一个AP列表,并根据这个列表进行reauthentication过程,reauthentication包括了authenticaiton和reassociation的两个过程。

73

1.5.1与目标AP的身份验证73

1.5.2于目标AP重关联73

Figure2.46重关联请求消息73

Figure2.47重关联请求响应74

1.5.3去身份鉴权消息75

和新的AP建立了连接以后,旧的AP会给sta发送deauthentication消息取消这两之间的连接75

 

中国电信的WiFi网络ChinaNet目前支持Portal接入,PPPoE接入和UIM卡接入三种方式,本文主要讨论的是前两种方式的接入过程,包括:

扫描,关联,认证,去关联,去认证,切换漫游等相关过程。

目前全国对于wifi的全信令流程仍然是一块空白。

江苏电信为摸清相关流程的具体涉及的信令及其相关参数的使用方法,模拟了一套从AP到BRAS的实验环境,并从空口,BRAS上行口和下行口分别进行报文抓取,下面让我们一起研究下相关的业务流程。

Figure1:

测试示意图

1.1扫描

1.1.1相关参数

在无线区域中,STA要加入任何一个网络之前需要进行一番识别的工作,也就是扫描。

在扫描的过程中需要用到几个参数,这些参数或者是用户指定的,有些是STA网卡的驱动程序里为这些参数提供默认值。

BSSType:

可以指定要搜索的网络属于independentadhoc、infrastructure或者同时搜寻

BSSID:

(individual或broadcast)

STA可以针对所要加入的特定网络进行扫描,或者扫描允许该工作站加入的所有网络。

在移动时将BSSID设为broadcast

SSID:

网络名称,如果STA打算找出所有的网络,应该将之设置为broadcastSSID

Scantype:

(active或passive)

主动是发送ProbeRequest

被动是聆听Beacon

Channellist:

802.11允许STA指定所要尝试的信道列表

Probedelay:

主动扫描时,为了避免工作站一直等不到ProbeRequest帧而设定的延时定时器。

MinChannelTime与MAXChannelTime

以TU为单位,指定扫描某个信道的最大和最小时间量。

Figure1.1:

设定首选网络

可以通过设定将中国电信的ChinaNet设定为首选网络,STA打开网络后就可以首先扫描ChinaNet网络。

1.1.2被动扫描

在被动扫描中,STA会根据ChannelList在所列的各个信道间切换,聆听Beacon帧。

收到的任何帧都会被暂时存储起来,并从这些帧中取出相关BSS的信息。

Beacon里带有为了让STA加入相应BSS的所需要的参数。

1.Beacon的帧结构

Figure1.2Beacon结构

Beacon帧帧主体里应该包含18个字段,包含了fixfield字段和informationelement。

图1.2里标绿的是我们中国电信WiFi网络的Beacon帧里实际带有的字段,红色是字段模型里没有而实际有的字段。

1.1.3主动扫描

在主动扫描中,STA在每个信道上发送ProbeRequest来请求特定网络的响应。

大概过程为

1)跳到某个信道,然后等帧指示或者等到ProbeDelay定时器的超时。

如果在这个信道收的到帧,说明有人使用,可以加以探测。

而ProbeDelay可以防止闲置的信道造成整个过程的停止。

2)利用DCF访问过程取得媒介使用权,送出ProbeRequest

3)至少等候MinChannelTime,如果medium不忙碌,表示没有网络存在,跳到下一个信道;如果在MinChannelTime很忙碌,就继续等待一段时间直到MaxChannelTime超时,然后处理任何的ProbeResponse。

ProbeRequest采用的BroadcastSSID,让该区域的所有WiFi网络加以回应。

所以单一的ProbeRequest导致多个ProbeResponse的现象很普遍。

1.PorbeRequest的帧结构

Figure1.3proberequest

标绿的是我们中国电信WiFi网络的ProbeRequest帧里实际带有的字段。

SSID设置为Broadcast表示允许网卡加入任意一个网络。

2.Proberesponse的帧结构

Figure1.4proberesponse

和Beacon里带的信息基本相同,Beacon里会多带一个TIM字段,用于节电模式

1.1.4实际扫描过程

在中国电信现网的WiFi网络中,主动扫描和被动扫描的过程是同时存在的。

在802.11网络中,广播和组播帧是不需要Acknowledgement的。

所以Beacon和ProbeRequest是不需要ACK的,但ProbeResponse是需要的,如图figure1.5所示。

具体选择加入哪一个BSS和现实有关,有时候甚至需要用户的接入。

属于同一个ESS的BSS允许采用本身所决定的方式。

通常网络用来决定加入那个网络的标准时功率电平(powerlevel)和信号强度(signalstrength)。

其实我们无法判断STA何时加入某一个BSS,因为这个过程是网卡的内部操作,还牵涉到调整内部参数配合所选的BSS要求的参数。

很重要的是定时同步过程。

不过扫描会产生一个扫描

Figure1.5主动和被动扫描过程

报告,STA可以利用这份报告来加入所发现的任何网络。

除了BSSID,SSID,BSSTYPE外,还有以下一些参数:

Beaconinterval,DTIMperiod,Timingparameter(Timestamp、offset),PHY\CF\IBSS参数,BSSBasicRateSet。

1.2关联

STA完成扫描后,根据获取的信息,经STA的网卡的内部机制判定后会选定一个BSS,之后便进入了关联阶段。

1.2.1身份验证(Authentication)

关联的第一步是进行身份验证。

不过,这种身份验证并不能提供真正的网络安全,因为既没有传递或验证任何加密密钥,也并未进行相互认证过程。

其实802.11的身份验证是一个单行道,网络要求STA必须通过身份验证,而网络无义务对STA提供自己的身份证明。

目前的身份验证有两种,开放式身份验证(open-systemauthentication)和共享密钥身份验证(shared-keyauthentication)。

目前中国电信在WiFi热点普遍使用的是第一种OPEN-SYSTEM的身份验证方式,下面我们就来介绍一下这个身份验证的过程。

Figure2.1:

开放式身份验证过程

如图2.1所示,开放式身份验证实际上是一个两次握手的过程,在我们实际抓包中,交互如下:

具体Authenticationrequest和Authenticationresponse里带有哪些信息,具有哪些作用我们来详细看一下:

1.AuthenticationRequest的帧结构

Figure2.2authenticaiton帧结构

由于是开放式身份验证,AuthenticationalgorithmNumber为0,sequencenumber=1表示request,而在这里由于是请求消息,这里的status位为保留位,而在ElementID为221的value里带着我们的challengetext信息。

2.Authenticationresponse的帧结构

Authenticationresponse的帧结构和Authenticationrequest的帧结构是一样的,都如图2.8所示。

而在这个帧里的statuscode反应了身份验证成功与否的结构。

到这里我们的身份验证阶段就完成了,接下来是我们的关联过程。

1.2.2关联(association)

和AP关联是为了得到完全的访问权,关联是一种记录保持过程,它让分布式系统能够记录每个STA的位置。

一旦完成了此过程,STA就可以通过分布式系统和整个网络相连,当然在运营商运营的网络里,还需要经过认证,计费等过程。

下面我们来看一下具体的关联过程是怎样的,如图2.1

Figure2.3关联过程

1.Associationrequest的帧结构

Figure2.4associationrequest的帧结构

从Capabilityinfo里我们可以看出,这个帧使用了shorttimeslot和shortpreamble。

ListenInterval定义了节电模式下,AP必须为STA缓存的时间。

Powercapability是STA告诉了网络它最大和最低传输功率。

2.Associationresponse的帧结构

Figure2.5associationresponse帧结构

在关联回应里,StatusCode反馈了关联是否成功,并反馈了网络支持的速率。

而AssociationID指示了它和AP的标识码。

1.2.3DHCP的封装

当Association的过程完成以后,STA会从DHCPServer的DHCP地址池中申请一个IP地址。

DHCP消息和之前的纯空口的Beacon,Probe以及Authentication和Association消息不同,它涉及到了城域网的设备,因此从DHCP的帧消息内除了802.11MACheader外,我们可以明显观察到LLCHeader,IPHeader,UDP以及DHCP信息的存在。

之前我们介绍过IEEE802的协议模型,我们根据抓包信息来看一下DHCP的整个封装过程。

802.11header之前已经介绍过了,下面我们从LLCheader开始介绍。

Figure2.6DHCP的封装结构

1.LLCheader的结构

中国电信WiFi的LLC封装采用的是RFC1042的IEFT封装,简称SNAP(Sub-networkaccessprotocol)结构如下:

Figure2.7

DSAP,SSAP:

标识的目的和源的接入点,默认值为0xAA

Control(command):

和高层数据链路协议及其衍生协议一样,此字段会被设定为0x03,代表未编号信息,是映射到IPDatagram所谓的尽力传递的范畴。

RCF1042的封装:

用0x000000标识,0x00F8表示的802.1H封装,有的时候称为隧道封装。

Typecode(Protocolcode):

在IP领域里,此字段不是代表IP本身的0x0800,就是代表ARP的0x0806。

2.IPHeader的结构

Figure2.8IPheader结构

Version:

版本字段指示的网络包头的形式(format),我们大部分运用到的IP包里的version为4.

version

description

0

reserved

1

 

2

 

3

 

4

InternetProtocol

5

STDatagramMode

6

SimpleInternetProtocol

SimpleInternetProtocolPlus

IPv6

7

thenextinternet

8

ThePInternetProtocol

9

TUBA

10~14

 

15

reserved

Table2.1

IHL:

Internetheaderlength,指出了数据的开头(beginningofthedata).需要注意一个正确的internetheader的最小长度为5.

Typeofservice(differentiatedservice):

这个字段是QoS想要的抽象参数指示,在一个网络里传输数据包的时候,这些参数用于导向真实服务参数的选择,实际上就是当一个数据包在一个网络系统传输的时候,去明确如何处理这个数据包。

有的网络提供服务优先权,为高优先权的传输提供优先服务。

这个优先权是通过三个参数的选择:

low-delay、high-reliability、high-throughput。

Figure2.9

Precedence优先级

description

000

Routine

001

Priority

010

Immediate

011

Flash

100

Flashoverride

101

Critic/ECP

110

Internetworkcontrol

111

Networkcontrol

Table2.2

 

value

description

low-delay

0

normaldelay

1

highdelay

high-throughput

0

normalthroughput

1

highthroughput

high-reliability

0

normalreliability

1

highreliability

last2bits

00

futureuse

 

Table2.3

这三个参数的设置会增加服务的开销,一个好表现的传输会导致几个坏的传输。

Totallength

Totallength是包含了internetheader和data在内的数据包(datagram)的长度。

他的最大长度是65535octets,这对大部分主机和网络都是不切实际的,所有的主机准备接受的是最大576octets的数据包。

Identification

是由发送者分配,用于聚合被分段的数据包。

FragmentFlag

Figure2.10分段指示

Bit0

保留,必须为0

DF

0=Mayfragment

1=Don’tfragment

MF

0=Lastfragment

1=Morefragment

Table2.4

FragmentOffset

该字段指示分段属于数据包的那一部分,用于重新组合。

单位8octets,第一个分段的fragmentoffset为0

TimetoLive

代表在网络系统里最大的逗留时间。

如果此位为0,则这个数据包必须被摧毁。

此位在进程中不断变化,以秒为单位。

Protocol

表示在网络数据包的数据部分用的下一个协议

HeaderChecksum

在包头内,网络包头进程中在被重计算和变化。

SourceAddress/DestinationAddress

目的和源IP地址

3.UDP的结构

Figure2.11UDP结构

Port68代表用户端口(bootpc),port69代表服务器端口(bootps)。

可以判断帧的传输方向。

4.Bootp的结构

Figure2.12bootp的结构

Option:

Optioncode或者messagetype,1代表bootprequest,2代表bootpresponse

HardwareAddressType:

1=10MbEthernet

HardwareAddressLength:

6for1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1