NETGEAR拒绝连接请求_Wi-Fi极限谈2:最大连接数的“标准”答案

e8be887f0bcfe2e7f2d18e949e9904e5.png

序言

关于Wi-Fi路由最大能够连接多少个节点,也是Wi-Fi常常讨论的一个问题。这个答案也众说纷纭。本文就关注于一个Wi-Fi路由究竟能够连接多少个节点,给出“标准”中的答案。不过,“标准”的答案实际上是协议的上限,但是在现实场景中,是远远达不到该上限的,据我目前的了解,在实际上的路由产品中,目前最高的产品可能能带到100台左右的设备,但是也并不是跑纯的CSMA./CA的工作模式了,需要引入很多中心调度的设计。

Associate过程

802.11的路由和节点连接的时候,首先要进行关联操作。关联操作具体如下:

03aad537be3cfde6db3978e25469c426.png

上图是参考权威指南里面的图。在802.11的基础架构工作模式下(也就是家用路由器工作的模式),节点需要连接上AP,必然要经历Assocation的过程。这个过程包含两个部分。

1)节点需要向AP发送关联请求,Associateion Request。

d15e62455a86a7f331a393b30143ba0f.png
Associateion Request

Associateion Request的帧结构如上,这个是一个典型的管理帧。用户需要向指定AP进行关联(即指定SSID),并且需要跟AP告知一些自己的工作能力(Capability Info等),这是信息是节点有义务告知AP,AP会利用这一些信息完成该BSS内的配置,比如说是否要开启兼容模式(参考前802.11b/g兼容的文章)。并且AP还需要去判断,该节点是否能够关联到本BSS下,如果节点的速率不适配,或者其他的原因(比如说用户自定义做的限制),那么节点会被拒绝连接。

2)AP在接收到节点的关联请求后,需要反馈Associateion Response。

a4f501233324ceff55c663fc6fbc9316.png
Associateion Response

无论AP是允许节点加入到该BSS,还是拒绝,都需要反馈Associateion Response。成功还是失败会在Status Code里面标明。并且AP会反馈一些AP认同的参数给节点(Capability Info等),可以认为节点发送给AP的是希望的参数,但是最终节点能够采用什么参数,还是要看AP的反馈。

这里我们另外需要关注的就是Associateion ID。Associateion ID简称AID,这个是节点加入BSS后,AP给节点所取的一个别名。我们知道节点有MAC地址,即BSSID。但是在很多环境下,比如为每一个节点分配缓存,那么就需要设置一个索引index。这个index如果用BSSID来设置的话,那么会太长,而且比较复杂。所以AP需要为节点取一个别名。AID的序号是AP决定的,一般情况下默认从0开始,根据节点的关联顺序依次加一。

这里记录一点抓包记录

关联过程

fc9fb8c505ad46654d19d8f1ce92551f.png

Association Request

a61fd45ee33242af7548783b8901d2ad.png

Associate Response

37931bd6f06ce2a4cc4d9ec6cbcd6484.png

以上的内容我们需要知道,在Wi-Fi工作模式下,每一个节点都需要被分配一个AID,所以AID的数目上限实际上就是Wi-Fi路由的“标准”最大关联数。

Duration/ID(AID字段)

AID的限制实际上是出现在Duration/ID字段中,该field是一个复用的field,在一个标准的MAC层头部中都包含Duration字段。

4caec1ec3856f61d8c70cae652032cb0.png
标准MAC帧结构

Duration字段全称是Duration/ID字段,在协议中有三种用法:

11e9ff1c220cb317663c2e11d27d55c0.png
Duration/ID

用法1:用作NAV设置,其包含15位,所以大小是从0到2^15-1=32767。

用法2:用法2实际上也是NAV,被用作在CFP(即PCF)模式下。此时第15位会被设置为1。为什么要设置这样的NAV最大值(即最大值为32768),需要理解倒数第二位是一个标志位,如果设置为1,那么是标志的意义,所以在解析成NAV的时候,其不能够设置为1。这也是为什么Duration字段为什么是16位,但是最大值只有32768,是标志位的原因,不是有符号整形的原因。

用法3:当14位和15为被设置为1的时候,此时Duration/ID就被认为是AID字段。这种用法一般出现在PS-Poll帧中。

af64d6ea7970c503298be377e3d2e73b.png
PS-Poll

可以看到在PS-Poll帧中,该字段就直接会被解析成AID字段。工作机理可以参考前面写过的《802.11协议精读10:节能模式(PSM)》。

AID的数量限制

本节我们主要就关注一下AID的限制数目,对应前面说的,最大连接数的标准答案就是AID的最大数目。我们看一下协议中对于AID字段的解析:

802.11ac以前(包含802.11ac)的版本中,该字段解析如下:

1965e4393e026527fd0000486e14799a.png

我们可以看到,AID的范围是1-2007,虽然AID有14位,但是有很多高位是用作保留位不使用的。这里不适用主要是为了以后扩展功能。就好比我们知道,IP地址和MAC地址都有组播的区分的,所以AID将来也可能会有这样的功能,所以要设置保留位。

然后我们看下在802.11ax中(即Wi-Fi 6)中的字段解析:

fca778da195fffdc99ce0948f0dcb432.png

Wi-Fi 6的OFDMA接入过程中,Trigger帧里面为每一个RU分配接入节点也是通过AID参数完成的。由于Wi-Fi 6还支持OFDMA下的随机接入UORA,所以需要设置特殊的AID字段。所以协议中就设置了两个特殊的AID,即2045和2046,还有AID=0的时候赋予了新的意义。这里相关意义可以参考《Wi-Fi 6(802.11ax)解析17:UORA上行随机接入机制(UL-OFDMA)》。

前面描述的常用802.11标准下的AID范围,我们现在可以得出一个答案,就是标准802.11的场景下,最大理论连接数实际上限是2007

但是802.11还有一个“大连接”的版本802.11ah,802.11ah的设计目标和NB-IoT,5G下的mMTC(Massive Machine Type Communications)场景目标是一样的。都是支持大规模的节点数关联。所以我们还有必要关注下802.11ah(即Wi-Fi Hallow)的AID范围

15e4fd422aec4acd5ba2d9db866cfcc9.png

这里我们看出来,802.11ah将AID的范围从2007扩展到8191,但是这个范围不是用前面说的PS-Poll帧,而是S1G PS-Poll帧,S1G是sub-1G的意思。即802.11ah的场景下,最大连接数是8191。

结语

我们总结下前面的最大连接数,在802.11的主体标准中,“标准”最大的理论连接数是2007,不过在802.11ah这一个专门为大连接优化的协议中,最大理论连接数是8191

实际上这个数值还是非常大的,现实中我们目前不太可能发现一个路由能够挂2007个节点。实际上据我目前所了解到,单个AP最大连接数应该是可以做到100左右的,但是能够做到100左右的都不是像家用路由这样单纯的跑DCF(即CSMA/CA)的,单纯跑CSMA/CA的话能到30,40就已经非常不错了,跑到100左右的其实都是跑调度,类似PCF的一种TDMA工作模式。802.11协议其实是提供很多调度接口的,实际上每一次协议演进 时候,最大关联用户数实际上是不断增加的,所以其设置2007这个数字,确实需要设置大一些,确保协议还有发展空间。

另外,不仅仅在无线的Wi-Fi场景下有最大理论用户上限,实际上早期的支持CSMA/CD的repeaters也是由于协议有最大客户端数限制的,所以由于协议导致的极限并不是第一次出现,如下图即是在《Ethernet: The Definitive Guide》中所述(注:第416页):

932a159bedd5b211e2292889a0ba23e0.png

那么基于CSMA/CD的repeaters,最大用户数目是1024,该1024实际上是基于CSMA/CD的BEB最大回退10次所导致(第0~10次会指数增加回退窗口,第11~16次不增加),而若采用包交换的交换机,则没有这个限制。

本文为原创文章,如需转载须注明出处和原文链接。

b58b8e63e578457b68ec7050118a35d4.png

欢迎大家关注我们的微信公众号:无线技术大讲堂,请搜索公众号(must_wireless)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值