WDS的原理
WDS的原理
WDS 即 Wireless Distribution System,是无线网络部署延展系统的简称,指用多个无线网络相互联结的方式构成一个整体的无线网络。简单地说,WDS就是利用两个(或以上)无线宽带路由器/AP通过相互连接的方式将无线信号向更深远的范围延伸。利用WDS技术,AP之间可以舍弃传统的有线网络进行互联,每个AP可以作主设备、中继设备和远端设备。
WDS 技术和其他无线扩展技术相比,一个显著的特点就是在各个AP之间传输数据时,保留了客户端的MAC地址,而且客户端的数据传输只牵扯到了MAC地址,跟IP地址无关。WDS也可以被看作Repeater模式,因为WDS可以满足在桥接的同时又可以连接客户端;Repeater 并不一定是WDS。
WDS 网络建立过程
- DUT1 WDS连接DUT2,首先DUT1会扫描周围的无线信号,寻找匹配的无线BSSID。
- 找到匹配的BSSID,即发送鉴权请求(Authentication)。
- DUT2回应告知鉴权认证已通过。
- DUT1发起关联请求(Association Request)。
- DUT回复关联回应(Association Response)告知关联成功,WDS连接成功。
WDS 工作原理
从模式上讲,WDS具有三种工作模式,分别是自学习模式、中继模式和桥接模式。
自学习模式属于被动模式,也就是说它能自动识别并接受来自其他AP的WDS连接,但其本身不会主动连接周围的WDS AP。所以这种WDS模式只能用于主接入点路由器或AP上,只能用于被扩展的主AP上,而不能用于通过WDS扩展其它AP。
中继模式是功能最全的WDS模式,在此模式下,AP既可以通过WDS实现无线网络范围的扩展,同时也具有AP的功能,接受无线终端的连接。
桥接模式和有线网络中的网桥很像,它从一端接收数据包,并把它转手转发到另一端。WDS的桥接模式除了不再同时具有AP功能之外,其它和中继模式基本相同,所以在WDS桥接模式下,AP不再接受无线网络终端的连接,你也搜索不到它的存在。
从角色来分,WDS网络中成员又可以分为主设备(Main),中继设备(Rely)和远端设备(Remote)。
具有Internet连接或者局域网络出口的设备通常被作为主设备,通过以太网线接入主干网;处于网络中间用来中继信号的设备为中继设备;无线WDS网络边缘提供无线接入并将数据向主设备转发的设备为远端基站。
示例1
如下图所示,Station 1和Station 2通过WDS方式建立连接,PC 1连接Station 1,PC 2连接Station 2,其中Station 2上配置WDS连接前端Station 1。Station 1处于自学习模式,接收Station 2的WDS请求,被扩展。Station 2处于中继模式,连接Station 1,并提供自身的无线供客户端连接。但这是一个完全对称可逆的拓扑,即PC1和PC2在整个网络中是对等的,不存在主和辅的关系。下面就以PC1向PC2发包为例介绍数据包的传输过程和MAC头部的变化。
1、PC1 to Station1
PC 1并不知道整个网络的拓扑,也不需要知道,它只需要了解它所连接的station和想要通信的目的主机的MAC,PC 1完全忽略了Station 2的存在。此时,输入DS位置1,输出DS位置0,三个MAC地址分别是Station 1、PC 1、PC 2。Station 1是下一跳的MAC地址,也是接收站点的SSID MAC;PC 1是源MAC,也是发送方的MAC;PC 2是目的MAC。
2、station1 to station2
无线四地址传输是只存在于Station与Station之间的,所以此过程中无线帧也是四地址结构。输入和输出DS位都置1,四个MAC地址依次是:Station 2、Station 1、PC 2、PC 1。Station 2和Station 1分别是接收方和发送方的MAC,处于三号位的PC 2仍然是目的MAC,最后是源MAC PC 1。
3、station2 to pc2
Station 2 to PC 2是一个简单的基站到客户端的过程,输入DS位置0,输出DS位置1。此时MAC依次是PC 2、Station 2、PC 1。PC 2是目的地址,也是下一跳MAC地址;Station 2是发送方的MAC地址,也是其SSID的MAC;PC 1是源MAC地址。
MAC 地址1 | MAC 地址2 | MAC 地址3 | MAC 地址4 | 输入DS | 输出DS | |
PC1 to station1 | station1 | pc1 | pc2 | 1 | 0 | |
station1 to station2 | station2 | station1 | pc2 | pc1 | 1 | 1 |
station2 to PC2 | pc2 | stiation2 | pc1 | 0 | 1 |
示例2
三个Station通过WDS互联,Station 2 WDS Station 1,Station 3 WDS Station 2。其中Station 1是主设备,处于自学习模式;Station 2是中继设备,属于中继模式,也是桥接模式;Station 3是远端设备,处于中继模式。
在PC2上ping PC1,ping包要被转发四次才能到达PC1,如下图2-4所示。PC2回复的Ping Reply包同样需要经过四个相反的过程才能到达PC1。如下图所示:
MAC头部的变化情况:
MAC地址1 | MAC地址2 | MAC地址3 | MAC地址4 | 输入DS | 输出DS | Direction | |
PC2->station3 | station3 | PC2 | PC1 | 1 | 0 | -> | |
station3->station2 | station2 | station3 | PC1 | PC2 | 1 | 1 | -> |
station2->station1 | station1 | station2 | PC1 | PC2 | 1 | 1 | -> |
station1->PC1 | PC1 | station1 | PC2 | 0 | 1 | -> | |
PC1->station1 | station1 | PC1 | PC2 | 1 | 0 | <- | |
station1->station2 | station2 | station1 | PC2 | PC1 | 1 | 1 | <- |
station2->station3 | station3 | station2 | PC2 | PC1 | <- | ||
station3->PC2 | PC2 | station3 | PC1 | <- |
WDS安全机制
WDS的原理的更多相关文章
- WDS无线桥接
因为放假回家,长时间不在家,家里也没什么人,所以也就没有网可以用.为了两个月办宽带又不值得,太过浪费了.于是就只能蹭网用了.当然,要和邻居打个招呼或者你能搞定密码的情况下不打招呼(嘿嘿...).但是有 ...
- 房间WIFI信号不好怎么办?——无线路由桥接(WDS)
背景 1.无线路由在客厅,房间的WIFI信号很差,只有1-2格,虽说是100M的网速,但是从客厅到房间要经过3道墙!电脑的无线接收功能一般都很一般,网速不好理所当然. 2.弄一根网线从客厅连接起来很傻 ...
- 图解 Webpack 4.x 热更新原理
图解 Webpack 4.x 热更新原理 Webpack HMR ️ module.hot & module.hot.accept if (module.hot) { module.hot.a ...
- ARP-NAT(MAC Address Translation)的原理
本文部分图片来自: http://wiki.deliberant.com/faq/wireless-bridge-routing-arpnat/ https://wiki.openwrt.org/do ...
- 轻松理解webpack热更新原理
一.前言 - webpack热更新 Hot Module Replacement,简称HMR,无需完全刷新整个页面的同时,更新模块.HMR的好处,在日常开发工作中体会颇深:节省宝贵的开发时间.提升开发 ...
- 奇异值分解(SVD)原理与在降维中的应用
奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域.是 ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- 线性判别分析LDA原理总结
在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结.这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结. ...
- [原] KVM 虚拟化原理探究(1)— overview
KVM 虚拟化原理探究- overview 标签(空格分隔): KVM 写在前面的话 本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验.同时希望借此系列博客,能够对KVM底层 ...
随机推荐
- javascript 中==和===的区别
对于JavaScript中比较运算符,可能大家用的比较多的是“==”.对于“===”很多人可能很陌生.=== 表示恒等,首先比较两边的变量数据类型是否相等,其次比较两边的变量的数值是否相等:= ...
- cocos2dx资源和脚本加密quick-lua3.3final
一.资源加密 版本号:Quick-Cocos2d-x 3.3 Final 调试工具:xCode 工程创建的时候选择的拷贝源码. 项目结构如图: 这个功能七月大神在很早之前就已经实现了,但是在3.3版本 ...
- android 代码整体回退
repo forall -c 'HAHA=`git log --before="3 days" -1 --pretty=format:"%H"`;git res ...
- 《python核心编程》读书笔记--第16章 网络编程
在进行网络编程之前,先对网络以及互联网协议做一个了解. 推荐阮一峰的博客:(感谢) http://www.ruanyifeng.com/blog/2012/05/internet_protocol_s ...
- C#字符串题目
老师给小学生门布置了一些作业,让它们按照一个模版写一些字符串交上来,同学们把作业交上来了,问题来了,这么多的作业老师批改不过来,现在请你帮老师写一个程序,帮助老师确定各个字符串是否合格.首先老师有一个 ...
- 【MySQL】MySQL复制表结构、表数据
平常,复制.备份表,一般都直接操作IDE完成.但有时,一些初始化数据的脚本,在操作数据前,最好备份下操作表的结构.数据,不至于出错了被置于为难的境地. 所以复制表结构.表数据的语句就派上用场. > ...
- Spring源码之SimpleAliasRegistry解读(一)
Spring源码之SimpleAliasRegistry解读(一) 阅读spring源码中org.springframework.core.SimpleAliasRegistry类时发现该类主要是使用 ...
- ruby学习总结04
1.类和实例的关系 使用[实例.class]查看某个对象属于哪个类 使用[实例.instance_of(类名)]判断该实例是否属于某个类 使用[实例.instance_methods]查看类的所有实例 ...
- iOS内存管理编程指南
iOS 内存管理 目录[-] 一:基本原则 二:成员变量的内存管理 三:容器对象与内存管理 四:稀缺资源的管理 五:AutoRelease 六:其他注意事项 iOS下内存管理的基本思想就是引用计数,通 ...
- Python操作文件、文件夹、字符串
Python 字符串操作 去空格及特殊符号 s.strip().lstrip().rstrip(',') 复制字符串 #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sSt ...