WDS 的两种实现方式
转自:http://blog.chinaunix.net/uid-26527046-id-3627627.html
WDS 的两种实现方式
WDS(Wireless Distribution System),无线分布式系统是指AP将BSS内的数据发往BSS外或者将BSS外数据收入BSS内。通过WDS,AP能够将BSS的范围进行扩展。
WDS链路的两端均为AP,如果把AP与BSS内的STATION之间的接口看做Access接口,那么可以把AP与其他AP之间的接口看做WDS接口。一个AP如果与多个外部的AP建立联系,则它就拥有多个WDS接口。
在Access链路上传输的数据帧只有3个地址域:DA,SA和BSSID。在WDS链路上传输的数据帧具有4个地址域:RA,TA,DS和SA。考虑AP内部的数据转发,总共有四种情况:
- 从Access接口进入,从Access接口发出。对于这种情况,进入AP的数据帧的DA就是本BSS内部其它STATION的地址,因此只需要在AP内桥接转发即可。
- 从Access接口进入,从WDS接口发出。不难看出,此时的关键是需要确定RA。RA其实就是对端AP的地址,因此它与WDS接口是对应的。所以,对于通过WDS转发的情况,关键是确定用那个WDS接口转发。
- 从WDS接口进入,从WDS接口发出。这种情况下虽然进入的数据帧有TA和RA,但仍然不能直接确定发出的数据帧的RA,即通过那个WDS接口发出。
- 从WDS接口进入,从Access接口发出。对于这种情况,AP能够根据进入数据帧的DA判断出该帧是发往本BSS内的STATION的,所以它能够根据本地维护的STATION表把数据帧传递到正确的Access链路上。
可见,关键的问题在于数据帧需要从WDS发出时,怎么确定RA,也就是怎么选择WDS接口的问题。有以下两种实现方法。
1. 二层桥接AP
一个数据帧进入AP后,究竟是通过Access接口发出还是通过WDS接口发出是根据DA来决定的。如果DA是本BSS中的某个STATION,则从Access口发出;否则说明这个数据帧发往其它BSS中的STATION的,因此需要由WDS口发出。
如果能够知道每个WDS接口的对端AP中的STATION列表,那么就可以根据DA来决定该数据帧应该通过哪个WDS接口发出,从而就能够确定RA。
这种AP要求STA在向AP发送数据时,必须准确地指定DA。对于本BSS中的其他STA,这个地址很容易获得;而如果是其他BSS中的DA,这个地址就比较难以得到。因此要求AP具备网桥功能,将同一IP子网中其他BSS中的STA的信息也传递到本BSS中。
按照802.11f,每个AP在STATION关联、离开后都会通知其他AP,因此理论上网络中的AP都可以获得所有其它AP的完整STATION列表,从而可以实现桥接转发。
此外,AP之间还应该能够转发APR请求、ARP响应等。
按照这种方式实现的AP为网桥AP。
网桥AP需要支持802.1D规定的特性,具备学习能力、STP等。
2. 三层路由AP
上面一种方法是从横向来考虑,如果从纵向来考虑,则可以采用路由的方法。一个数据帧进入AP后,如果能在本BSS内转发,则通过Access口发出;否则需要通过WDS接口发出,但选择哪个WDS接口由更上层的功能决定。
为每个WDS接口设定一个IP子网地址范围(A.B.C.D/M),每个进入的数据帧根据其IP地址来决定应该往哪个WDS接口发出。
按照这种方案实现的WDS转发是三层的路由转发,这种AP是路由AP。
这种AP并不要求STA在向AP发送数据时准确指定DA。尤其是当该数据要发往DS时,STA可能只知道对方IP地址,却不知道MAC地址。
以上两种方案各有优缺点。
桥接转发的好处是效率较高,直接在MAC层就可以转发了。其缺点是灵活性差,只能适用于小规模网络。为了实现比较完备的桥接功能,需要在AP中实现802.1d网桥,具备智能式学习能力和生成树算法STP。
另外,桥接只能保证链路层通,而不能保证网络层通。因此,如果是不同的网段相连,需要路由。
路由转发的好处是可以采用成熟高效的路由算法,而且灵活性高,适用于大规模网络。不过对于小规模网络,采用路由AP可能有些浪费。
WDS 的两种实现方式的更多相关文章
- Web APi之认证(Authentication)两种实现方式【二】(十三)
前言 上一节我们详细讲解了认证及其基本信息,这一节我们通过两种不同方式来实现认证,并且分析如何合理的利用这两种方式,文中涉及到的基础知识,请参看上一篇文中,就不再叙述废话. 序言 对于所谓的认证说到底 ...
- Android中BroadcastReceiver的两种注册方式(静态和动态)详解
今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来 ...
- Android中Fragment与Activity之间的交互(两种实现方式)
(未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...
- JavaScript 函数的两种声明方式
1.函数声明的方式 JavaScript声明函数有两种选择:函数声明法,表达式定义法. 函数声明法 function sum (num1 ,num2){ return num1+num2 } 表达式定 ...
- Redis两种持久化方式(RDB&AOF)
爬虫和转载请注明原文地址;博客园蜗牛:http://www.cnblogs.com/tdws/p/5754706.html Redis所需内存 超过可用内存怎么办 Redis修改数据多线程并发—Red ...
- struts2+spring的两种整合方式
也许有些人会因为学习了struts1,会以为struts2.struts1与spring的整合也是一样的,其实这两者相差甚远.下面就来讲解一下struts2与spring的整合两种方案.(部分转载,里 ...
- easyui datagride 两种查询方式
easyui datagride 两种查询方式function doReseach() { //$('#tt').datagrid('load', { // FixedCompany: $('.c_s ...
- 【Visual Lisp】两种出错处理方式
两种出错处理方式:一种是对出错函数进行重定义,一种是对错误进行捕捉处理. ;;============================================================= ...
- 两种include方式及filter中的dispatcher解析
两种include方式 我自己写了一个original.jsp,另外有一个includedPage.jsp,我想在original.jsp中把includedPage.jsp引进来有两种方式: 1.& ...
随机推荐
- 每日一九度之 题目1043:Day of Week
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7336 解决:2563 题目描述: We now use the Gregorian style of dating in Russia. ...
- hdu 1016 Prime Ring Problem(深度优先搜索)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- ZOJ 3861 - Valid Pattern Lock
3861 - Valid Pattern Lock Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & ...
- Django的第一个web程序及深入学习
本学习历程参照Practical Django Projects和http://djangobook.py3k.cn上翻译的内容进行 注:本例以本机加以说明: 根据Django的安装过程可知:在命令行 ...
- Hardwood Species 分类: POJ 树 2015-08-05 16:24 2人阅读 评论(0) 收藏
Hardwood Species Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 20619 Accepted: 8083 De ...
- 第十二届浙江省大学生程序设计大赛-Beauty of Array 分类: 比赛 2015-06-26 14:27 12人阅读 评论(0) 收藏
Beauty of Array Time Limit: 2 Seconds Memory Limit: 65536 KB Edward has an array A with N integers. ...
- jquery闭包的使用
<div id="divTest"> Test </div> <br /> <hr /> <div id="divT ...
- Poj(3686),最小权匹配,多重匹配,KM
题目链接 The Windy's | Time Limit: 5000MS | Memory Limit: 65536K | | Total Submissions: 4939 | Accepted: ...
- Repeater的Command操作
Repeater的Command操作 1.ItemCommand事件 :在Repeater中所有能触发事件的控件,都会来触发这一个事件 后台创建:在Page_Load中 Repeater1.ItemC ...
- spark1.4
spark1.4 Windows local调试环境搭建总结 1.scala版本 scala-2.10.4 官方推荐 scala-2.11.7[不推荐,非sbt项目.需要后加载] 2.spark版本 ...