迅维网

查看: 3557|回复: 14
打印 上一主题 下一主题

无线路由器的最大连接数是由什么决定的?

[复制链接]
跳转到指定楼层
1#
发表于 2018-3-6 10:48:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 �

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
希望有人能解答下除了钱之外的原因。。。 这个连接数是因为硬件就只支持这么多,还是因为为了保证性能而限制在这么多?

2#
发表于 2018-3-6 10:48:08 | 只看该作者 �
重新整理下,与最大连接数有关的内容包含,

  • 802.11协议规定,其中规定最大2007个节点,详见802.11的AID范围,
  • 802.11的协议性能,在初始802.11协议下,若节点数较多,比如50左右的节点数,从而会导致网络性能立刻降低,甚至无法工作,对于802.11n/ac之类的协议,该性能会有所改进,但是仍有极限
  • 路由器的设置,比如路由器存在默认的最大连接数设置,以及可以编辑的最大连接数,大于限制以外的节点不被关联,
  • 路由器的性能限制,比如路由器的内存限制/CPU的限制,比如NAT可能是一个受影响的内容,貌似一个NAT会话维护大约需要300 byte左右的缓存,可以从这个方面估算下一个路由最多能够支持多少NAT。
-----------------------------------------------------------------------------------------------------------------------------------------
PS:以下表述有个前提为,非硬件资源情况下,无线路由器的最大连接数,这里首先肯定是认同硬件资源对无线连接数的影响的,不过即使在硬件资源最佳的情况下也无法超过,单个无线接口也无法接入大量的设备,其原因就在于802.11协议的设计,不过这一块,协议也在不停的做改良,比如MU-MIMO机制之类,故因此,该回答主要是基于在硬件最佳的情况下,无线路由还是存在连接数量上限而言的。
额。。。这里的确最大连接数的定义不明确,我理解是一个路由下最多能支持多少个设备进行接入,同时题设中把钱的层面忽略的话,那么就考虑硬件能做多好就做多好,不会出现由于一些小内存之类出现的性能缺陷。假设仅仅单个AP(即单个路由)的话,从协议设计上而言,本身就限定了其最大连接数,比如下图是经典的bianchi模型中,有关性能的图
可以看到随着节点数增加,其吞吐量是快速下降的(由于这里是用1M的速率,所以也可以认为纵轴是代表的网络的效率)。故这里我们需要知道,随着人数越来越多,系统的总带宽会快速减少,其基本原因就在于冲突概率大。所以这里能够注意到,不仅仅是由于共享带宽,人越多,每一个人分的越少,同时,总的带宽也变少了,从而每一个人所分时更加的少,换言之,就是“三个和尚没水喝”。如果对CSMA/CA机制有所了解的话,若两个节点同时backoff到0,那么就会冲突,这个Backoff是随机在一个范围内选值的,在图中,就是在[0,W]范围内随机选值,若冲突后,需要进行重发,每一重发的时候,协议规定要扩大一倍这里的W,即BEB算法,而增大也不是无穷无尽的,协议规定比如,增大5次以后,第6次保持W不变,再发送一次,若再失败则丢包。在图中,重发的次数限制就对应的m。(PS:若采用RTS/CTS模式会好一些,其基本思想是采用短帧冲突代替长帧冲突,从而若发生冲突仅仅损失RTS帧,不会损失数据,总而在上图中RTS/CTS模式下,吞吐量下降要好些,不过在显示环境下,要在一起传输中启用RTS/CTS需要满足待传数据包的payload长度大于RTS threshold的)
所以,排除了路由器本身质量而言,协议本身就会限定接入节点个数的,故为了弥补这个缺点,比如MU-MIMO技术,都是扩展用户的增强型技术。故,即使硬件完美的情况下,无线网络最大接入节点数目还是有限制的。(实际上这里还没有加入讨论隐藏终端和暴露终端问题)
同时为什么吞吐量会影响节点接入的情况,大致解释是,由于AP和节点为了发送数据需要同时接入信道,即竞争的层面上,AP和节点是一样的,比如我节点需要接入信道发送一个关联请求给AP,AP给我反馈了我才可以发起认证,认证过了我才关联上AP,若在中间AP无法竞争到信道,反馈一直迟迟发不出来,那么我的关联或者认证就会出现超时错误,从而发生无法关联AP。
---------------------------------------------------------------------------------------------------------------------------------
分界线,实际上这里最大关联数目也是可以设置的,即通过人为强制设定最大连接的客户端数,如下图在DD-WRT中,不过主要
-------------------------------------------------------------------------------------------------------------------------------------------
再补充下,实际上早期的支持CSMA/CD的repeaters也是由于协议有最大客户端数限制的,所以由于协议导致的极限并不是第一次出现,如下图即是在《Ethernet: The Definitive Guide》中所述(注:第416页):
那么基于CSMA/CD的repeaters,最大用户数目是1024,该1024实际上是基于CSMA/CD的BEB最大回退10次所导致(第0~10次会指数增加回退窗口,第11~16次不增加),而若采用包交换的交换机,则没有这个限制。
------------------------------------------------------------------------------------------------------------------------------------------
@沈磊 一开始看到你贴的驱动里面,最大到2048,感觉好大。后来发现,貌似2000左右也有可能,不过可能应该更具体点到2007个节点。(PS:本文一开始讨论的是协议的性能限制,这里补充讨论下,协议中默认的一些配置,即不考虑性能的情况下的默认配置)。在协议中,最有关最大关联参数的应该是AID范围,即TIM字段中的AID。目前对AID的考证如下:

  • 在TIM中出现的AID的bitmap最大范围是512字节(bitmap中每一位都是关联到一个节点),即AID的范围最大是2008
  • TIM中的Partial Virtual Bitmap(即AID存放的地方)的大小不是定值,即有多少个节点,这里位数就有多少,不是保持512byte位定值。(PS:根据抓包结果总结,我家路由的bitmap仅仅有4个byte)
  • 在PS-Poll中也存在AID字段,具体是在duration字段中,其中AID是在14位(duration中的[0:13]),那么范围是0~16384,其中0-2007是使用,2008~16383是保留

回复 支持 反对

使用道具 举报

3#
发表于 2018-3-6 10:48:08 | 只看该作者 �
家用路由器的连接数主要是硬件性能决定的, 内存大的设备能处理的NAT/路由会话数量比较多。 另外, 无线性能会随着用户数量的增多而快速下降(共享带宽的原因)

回复 支持 反对

使用道具 举报

4#
发表于 2018-3-6 10:48:08 | 只看该作者 �
最大连接数目是由驱动决定的,比如OpenWRT下是2048,参考
static const struct ieee80211_iface_limit if_limits[] = {
        { .max = 2048,        .types = BIT(NL80211_IFTYPE_STATION) |
                                 BIT(NL80211_IFTYPE_WDS) },
        { .max = 8,        .types =
#ifdef CPTCFG_MAC80211_MESH
                                 BIT(NL80211_IFTYPE_MESH_POINT) |
#endif
                                 BIT(NL80211_IFTYPE_AP) },
        { .max = 1,        .types = BIT(NL80211_IFTYPE_P2P_CLIENT) |
                                 BIT(NL80211_IFTYPE_P2P_GO) },
        { .max = 1,        .types = BIT(NL80211_IFTYPE_ADHOC) },
};
具体含义解释参考http://lxr.free-electrons.com/source/include/net/cfg80211.h#L2843
但是实际上由于硬件性能和802.11协议的限制,有效的最大连接数目就很少了。

回复 支持 反对

使用道具 举报

5#
发表于 2018-3-6 10:48:08 | 只看该作者 �
价钱决定的,垃圾路由设备稍微多一点就不行了,即便是没有到最大连接数

回复 支持 反对

使用道具 举报

6#
发表于 2018-3-6 10:48:08 | 只看该作者 �
在路由器不做任何限制策略的情况下,主要取决于WiFi设备的硬件性能。

回复 支持 反对

使用道具 举报

7#
发表于 2018-3-6 10:48:08 | 只看该作者 �
⊙﹏⊙越看越觉得第一个回答如此的正确。。。

不过我不知道你的最大连接数指的是什么

回复 支持 反对

使用道具 举报

头像被屏蔽
8#
发表于 2018-3-6 10:48:08 | 只看该作者 �
回答中第一赞的感觉 太玄乎了。( `)连CSMA/CA都出来了。
路由器接入数目 题主可以近似的看成计算机的线程数目,如果路由器的性能越好,那么能够承载的介入数量也多。
然后再具体说说路由器的性能,路由器内置cpu和内存,你可以把一个双网卡的主机看作是一个路由器。
所以无线路由器的承载数目你可能得考虑一下这个路由器的cpu和内存条。
而且你路由器的NAT不吃你内存啊.

回复 支持 反对

使用道具 举报

9#
发表于 2018-3-6 10:48:08 | 只看该作者 �
一般情况下,软件会做限制,不会让你接入太多。否则会影响上网质量。
既然题主说最终谁来限制,那就是wifi芯片限制了。像broadcom的wifi芯片用的比较多的,默认是可以接入16个,但放开后也能接入32个。

回复 支持 反对

使用道具 举报

10#
发表于 2018-3-6 10:48:08 | 只看该作者 �
最大连接数应该是路由的 CPU 和 RAM 决定的吧?

我觉得便宜路由容易挂就是因为连接数一大 就挂了

回复 支持 反对

使用道具 举报

11#
发表于 2018-3-6 10:48:08 | 只看该作者 �
通常一个station下面128个

回复 支持 反对

使用道具 举报

12#
发表于 2018-3-6 10:48:08 | 只看该作者 �
是路由器代码中的无线驱动部分决定的,好一点的路由器的无线驱动在这方面都是有优化的

回复 支持 反对

使用道具 举报

13#
发表于 2018-3-6 10:48:08 | 只看该作者 �
有点高深,不过基本看明白,
如果家庭光纤50M都用同一个AP做无线连接,
只有一个终端时,独享50M高速公路,
假设有三个终端同时接入,那大概相当于共享30M快速路,
如果10个终端同时接入,那也许就相当于共享10M的城市道路了,
因为车多了,加塞变道的人多了,道路利用率降低了

那么,家用的普通无线路由器或者当作AP用时,一般能带起多少个终端,而不会明显地影响道路利用率呢??

回复 支持 反对

使用道具 举报

14#
发表于 2018-3-6 11:22:43 | 只看该作者 �
ip决定的      1到254  去掉路由器的地址   一共是253个

回复 支持 反对

使用道具 举报

15#
发表于 2018-3-14 11:04:05 | 只看该作者 �
跟硬件有关的  差的设备连接的人多了以后 会不稳定 甚至连接不上去  

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复