WLAN基础知识

0:H3C WLAN
一:用户接入过程

在station和AP建立连接之前,需要一系列的数据交换过程。station和AP之间的发现可以通过主动和被动的方式来发现对方。,在通过认证和关联两个过程后才能和AP 建立连接。

上面的通信过程可以分解为3个过程,
1:WLAN服务的发现,其中分为主动和被动WLAN服务发现。
主动指的是:station主动的发送 Probe Request(Probe Request 携带指定的SSID)此时客户端携带指定的SSID,只会单播发送探查请求帧(Probe Request)。相应的AP 接受到后回复请求。

被动指的是:station客户端通过侦听 AP 定期发送的Beacon 帧来发现网络。用户预先配有用于扫描的信道列表,在每个信道上监听信标被动扫描要求AP周期性发送Beacon帧。当用户需要节省电量时,可以使用被动扫描。

2:链路认证过程
为防止非法用户接入,首先需要在用户和AC/FAT AP 之间建立认证,认证机制包括两种。只有通过认证后才能进入关联阶段。链路认证过程包括:
开放系统认证(Open system authentication)
 即对station不进行认证,所有请求认证的客户端都会通过认证。开放系统认证包括两个步骤:第一步是请求认证,第二步是返回认证结果。

共享密钥认证(Shared key authentication)。
共享密钥认证需要客户端和设备端配置相同的共享密钥共享密钥认证的认证过程为:客户端先向设备发送认证请求,无线设备端会随机产生一个Challenge 包(即一个字符串)发送给客户端;客户端会将接收到字符串拷贝到新的消息中,用密钥加密后再发送给无线设备端;无线设备端接收到该消息后,用密钥将该消息解密,然后对解密后的字符串和最初给客户端的字符串进行比较。如果相同,则说明客户端拥有无线设备端相同的共享密钥,即通过了Shared Key认证;否则Shared Key 认证失败。


3:链路服务协商。
在完成了802.11的链路认证后,WLAN客户端会继续发起802.11链路服务协商,具体的协商通过Association报文或者Re-association报文实现。WLAN服务发现过程中,WLAN客户端已经获得了当前服务的配置和参数(WLAN设备端会在BeaconProbe Response报文中携带,例如接入认证算法以及加密密钥)。WLAN客户端在发起的Association或者Re-association请求时,会携带WLAN客户端自身的各种参数,以及根据服务配置选择的各种参数(主要包括支持的速率,支持的信道,支持的QoS的能力,以及选择的接入认证和加密算法)。如果用户想通过 AP 接入无线网络,用户必须同特定的AP 关联。当用户通过指定SSID 选择无线网络,并通过AP 认证后,就可以向AP 发送关联请求帧。AP 将用户信息添加到数据库,向用户回复关联响应。用户每次只可以关联到一个AP 上,并且关联总是由用户发起。WLAN客户端和WLAN服务设备端成功完成链路服务协商,表明两个设备成功建立了802.11链路。对于没有使能接入认证的服务,客户端已经可以问WLAN网络;如果WLAN服务使能了接入认证,则WLAN设备端会发起对客户端的接入认证。
二:CAPWAP
CAPWAP(Controlling and Provisioning of Wireless Access Point,无线接入点控制与供应)协议定义了AP与AC之间如何通信,为实现AP和AC之间的互通性提供一个通用封装和传输机制

CAPWAP 同时运行在AP 和AC 上,为WLAN 系统提供安全的AC 与AP 之间的通信。AP 与AC 之间的通信依照标准UDP 客户端/服务器端模型来建立。CAPWAP 提供数据隧道来封装发往AC 的数据包。这些数据包可以是802.11 协议的数据包。CAPWAP 还支持AC 的远程AP 配置、WLAN 管理和漫游管理。在 AC 上,CAPWAP 提供了AP 管理功能。AC 可以根据管理员提供的信息动态地配置AP。AC 和AP之间的通信使用的是UDP。故在通信的时候需要知道AC和AP的IP地址port信息。CAPWAP控制通道:由AC地址、WBS地址、AC控制端口、WBS控制端口及传输协议类型(UDP)定义的双向数据流通道.

目前,CAPWAP通信数据类型总体上可以分为两类:

l  CAPWAP控制隧道中传输的CAPWAP控制报文

l  CAPWAP数据隧道中传输的CAPWAP数据报文

目前CAPWAP功能的实现都是基于3层网络传输模式下,即所有的CAPWAP报文都被封装成UDP报文格式在IP网路中传输,而CAPWAP隧道就是由AC的接口IP地址和WTP的IP地址来维护的。





上面提到控制隧道和数据隧道,控制隧道用来AC来管理AP,如信道,功率的设置,AP状态的上报。就是普通的socket通信AP与AC之间,通信之间的消息格式就按照capwap来执行。

分布转发(或者本地转发)时,AC只和AP间建立控制通道,但不会建立数据隧道,用户数据由AP负责本地转发掉。此时AC其实可以理解成一个采用CAPWAP协议的AP网管服务器(不严谨的理解),AC只负责AP的配置管理。
分布转发,也称为AP本地转发,AC只和AP间建立控制通道,但不会建立数据隧道,用户数据由AP负责本地转发掉
在集中转发时,AP和AC会构建一个数据隧道。所有用户业务数据有数据隧道传送到AC处。
AC通过CAPWAP来控制AP,在集中转发模式下,STA的所有报文都由AP封装成CAPWAP报文后再由AC解封装后进行转发。即使是本地转发模式,AP依然由AC通过CAPWAP报文进行控制。

目前CAPWAP功能的实现主要是基于三层网络传输模式下,即所有的CAPWAP报文都被封装成UDP报文格式在IP网路中传输,而CAPWAP隧道也是由AC的接口IP地址和WTP的IP地址来维护的。因此保证CAPWAP隧道运行正常的前提是无线控制器的AC的IP地址与AP的IP地址之间路由可达。

AC通过CAPWAP来控制AP,在集中转发模式下,STA的所有报文都由AP封装成CAPWAP报文后再由AC解封装后进行转发。即使是本地转发模式,AP依然由AC通过CAPWAP报文进行控制。
3: AC AP,station之间的数据格式

有上面的图可以知道,在station和WT之间的数据为正常的802.11数据,其实当station的数据到达WTP时,WTP会将802.11数据转化为:ethernet的802.3的数据,并对此数据加上MAC+IP header+UDP header+CAPWAP header,通过socket建立的数据通过将此数据发送给AC,AC收到此数据包之后将CAPWAP header 去掉,去掉头之后的数据就是一个正常的802.3以太网数据帧。
下面来看一下帧结构:
802.3数据包格式



CAPWAP对原始的802.3数据包的封装
由上面的知识可以知道,在集中转发模式中,station的数据全部通过数据通道传递给了AC,CAPWAP隧道由AC的接口IP地址和WTP的IP地址来维护的。即在AC和WTP之间建立了一个基于UDP的socket来完成数据的交互。

由上面可以知道,原始的station的数据经过WTP传输到AC时,其数据包的大小至少会增大50字节( 14(802.3 header) + 20(ip header)+ 8(udp header) + 8(Capwap header) )。经过加头处理之后的UDP数据包需

要重新计算UDP头长度和UDP较验和。
由于普通的802.3的MTU的值为:1500.

经过加头处理之后的数据帧的大小如下:


看看为什么要进行数据包的分片处理:
有上面的可以知道一个以太网数据帧的MTU的最大值为:1500,一般MTU设置值为1500,就是基于MAC最大封包的考虑。一般的IP包的大小肯定超过1500byte,为了能在MAC帧中传输,必须将IP包进行分片,分成适合传输的MAC帧。即最大的IP数据包负荷(不包括IP头)为:1480.


ICMP数据包的格式如下:



使用ICMP包进行测试,因为IP头占用20byte,ICMP头占用8byte,所以ICMP包大小最大为1472byte


当我们在电脑上面ping xx.xx.xx.xx -t -l 1544的时候,会看到对书包进行拆包处理,应为此时是数据为:1500>1480,拆包之后的俩个数据包为:
第一包:

第二包:

有上面的可以知道,当应用层任何一个数据包大于最大的MTU(1500)时,经过协议栈处理之后都会进行拆包处理,上面的第一包是一个IP数据包,因为只有IP头的存在,一个IP头的长度为:20.故一个IP数据包对最多可以承载数据为:1500-20=1480.这个值可以从上面的第一包得出。



现在来说说capwap为什么要进行分片处理,以太网帧的最大值为:1514.前面可以知道这点,如果以此值1514将数据从驱动linux下面的 athr_gmac_net_ops.ndo_start_xmit= athr_gmac_hard_start, 发送的时候,能够正常被处理。

由于添加capwap的数据头之后数据包会增大50个字节,因此此时当数据包原始的数据包大于1464(1514-50)时,添加capwap头(50字节)之后,会大于1514,故数据不会被正确发送。故在以太网层,capwap是否需要进行分片的原始数据报的大小的分界线为:1464.




 






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值