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.& ...
随机推荐
- mybatis中#{}和${}的区别
1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111&qu ...
- java实现map和object互转的三种方法
/** * 使用org.apache.commons.beanutils进行转换 */ class A { public static Object mapToObje ...
- poj1961 Period
我们考虑KMP算法中fail失配指针的意义. 对于一个模式串(Pattern),位置i对应的失配指针fail[i]是那个位置: 这个位置满足的条件是,子串[0, fail[i])是位置i(不含)的后缀 ...
- Poj(1274),二分图匹配
题目链接:http://poj.org/problem?id=1274 The Perfect Stall Time Limit: 1000MS Memory Limit: 10000K Tota ...
- c#存储过程
1. 只返回单一记录集的存储过程 SqlConnection sqlconn = new SqlConnection(conn); SqlCommand cmd = new SqlCo ...
- Configuration对象
Configuration对象 Hibernate的持久化操作离不开SessionFactory对象,使用该对象的openSession()方法可以打开Session对象.而SessionFactor ...
- BQ27510 电量计的校准 的 C语言实现
点击打开链接 根据TI官方MSP430平台移植修改过来的,在Omap37xx(wince)平台测试,理论上和平台无关,伸手党,赶紧复制粘贴代码吧.如果这篇文章帮助了你,给了好评也无妨. [cpp] v ...
- Create Stacked Canvas to Scroll Horizontal Tabular Data Blocks In Oracle Forms
In this tutorial you will learn to create horizontal scrollable tabular or detail data block by usin ...
- oracle数据库中提供的5种约束
约束作用:用来保持数据的完整性,防止无效数据进入到数据库中.oracle数据库中提供的5种约束,都是限定某个列或者列的组合的.1.主键约束(PRIMARY KEY):在一个表中能唯一的标识一行.主键可 ...
- [SAP ABAP开发技术总结]SD销售订单定价过程
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...