无线局域网的地址解析方法及接入点
技术领域
本发明涉及WLAN(Wireless Local Area Network,无线局域网)领域,尤其涉及无线局域网的地址解析方法以及实施该方法的接入点。
背景技术
WLAN是20世纪90年代计算机与无线通信技术相结合的产物,它使用无线信道来接入网络,为通信的移动化、个人化和多媒体应用提供了潜在的手段,并成为宽带接入的有效手段之一。WLAN具有组网灵活、成本低、速率高的特点,在企业、教育等领域得到广泛应用。
WLAN的一种典型结构如图1所示,交换机将各个AP(Access Point,接入点)连接至有线网络,如图中的AP1、AP2和AP3,每个AP与位于其覆盖的BSS(Basic Service Set,基本服务区)中的STA(Station,无线终端)通过无线信道传输报文。作为无线收发设备,AP将从有线网络接收的数据转换为无线信号发送至STA,并将从STA接收的无线信号转换成数据转发到有线网络。
源STA在与目的STA通信前,需要先得知目的STA的MAC(MediaAccess Control,媒介接入控制)地址及与目的STA关联的AP的MAC地址。无线局域网可以采用具有AC(Access Controller,无线控制器)功能的交换机,也可以采用不具有AC功能的普通有线交换机。具有AC功能的交换机会在交换机上维护一张与其连接的各个AP以及关联到每个AP上的STA的列表,而普通的有线交换机则不支持这一功能。源STA解析目的STA地址的过程可能因交换机是否具有AC功能而不同。
中国专利CN1972230公开了一种无线局域网地址解析协议的广播方法,该方法用于采用具有AC功能交换机的无线局域网。该方法或者由具有AC功能的交换机直接响应(Address Resolution Protocol,地址解析 协议)所有源STA的ARP请求,或者由具有AC功能的交换机将ARP请求透传至与目的STA关联的AP。该方法需要以具有AC功能的交换机了解整个无线局域网的当前拓扑为基础才能实施,因此不适用于采用普通有线交换机的无线局域网。
现有技术中,对采用普通有线交换机的无线局域网,通常采用如下方式进行STA的地址解析:以图1所示的无线局域网为例,假定关联到AP1的STA1为源STA,关联到AP2的STA2为目的STA;STA1在与STA2通信前会向AP1发送ARP请求报文,询问与STA2的IP(InternetProtocol,网际协议)地址对应的MAC地址,该ARP请求报文为广播报文;由于无线局域网属于一个二层网络,该ARP请求报文从AP1广播到所有的其他AP,再由其他AP广播到与其关联的STA;STA2对该ARP请求进行响应,生成包括自己MAC地址的ARP响应报文,该ARP响应报文为单播报文;STA2发送的ARP响应报文通过AP2和AP1单播至STA1。
可见,每个STA发起的每次地址解析都会广播到整个无线局域网中其他所有的STA,当无线局域网中STA数量较多时,容易造成过多的广播报文,占用大量的无线资源。如果有恶意的ARP请求还会造成广播风暴,导致无线局域网的拥塞甚至瘫痪。
发明内容
针对上述现有技术的不足之处,本发明提供了一种无线局域网的地址解析方法以及一种无线局域网的接入点,以减少地址解析过程中的广播报文。
本发明所述无线局域网的地址解析方法包括:
保存当前本接入点AP的关联无线终端STA的网际协议IP地址和媒介接入控制MAC地址;
接收来自无线局域网中其他AP的用于地址解析的AP请求报文;
如果所述AP请求报文的目的STA为本AP的关联STA,以所述目的STA的MAC地址返回响应报文;所述目的STA为具有待解析IP地址的STA。
优选地,所述方法还包括:
接收与本AP关联的源STA发送的用于地址解析的STA请求报文;
如果所述STA请求报文的目的STA不是本AP的关联STA,按照所述STA请求报文生成AP请求报文,并发送至无线局域网中的其他AP;
接收其他AP的响应报文,并将其转发至所述源STA。
优选地,所述方法还包括:如果所述STA请求报文的目的STA是本AP的关联STA,以所述目的STA的MAC地址返回响应报文。
优选地,所述AP请求报文携带地址解析标识,以区别于STA请求报文。
优选地,所述地址解析标识为位于报文接收AP字段的预定组播地址。
优选地,所述AP请求报文中包括源STA的IP地址和MAC地址、以及源STA的关联AP的MAC地址;
所述方法还包括:将包括所述源STA的IP地址和MAC地址、以及源STA的关联AP的MAC地址表项保存在具有老化机制的主机表中。
优选地,在生成AP请求报文前,所述方法还包括:如果主机表中包括所述STA请求报文的目的STA的IP地址,则根据对应的表项返回响应报文。
优选地,所述方法还包括:本AP新增关联STA后,向其他AP发送所述STA的关联通告;
所述方法还包括:当收到其他AP的STA关联通告后,在主机表中增加或更新所述STA的表项。
优选地,所述STA请求报文为地址解析协议ARP请求报文,所述响应报文为ARP响应报文。
本发明还提供了一种无线局域网的地址解析方法,包括:
保存当前本AP的关联STA的IP地址和MAC地址;
接收与本AP关联的源STA发送的用于地址解析的STA请求报文;
如果所述STA请求报文的目的STA不是本AP的关联STA,按照所述STA请求报文生成AP请求报文,并发送至无线局域网中的其他AP;所述目的STA为具有待解析IP地址的STA;
接收其他AP的响应报文,并将其转发至所述源STA。
优选地,所述方法还包括:如果所述STA请求报文的目的STA是本AP的关联STA,以所述目的STA的MAC地址返回响应报文。
本发明公开了一种无线局域网的接入点,包括:
关联STA单元,用于保存当前本AP的关联STA的IP地址和MAC地址;
接收单元,用于接收报文,包括从无线局域网中其他AP接收用于地址解析的AP请求报文;
地址解析响应单元,用于当所述AP请求报文的目的STA为本AP的关联STA时,以所述目的STA的MAC地址返回响应报文;所述目的STA为具有待解析IP地址的STA。
优选地,所述接收单元接收的报文中还包括与本AP关联的源STA发送的用于地址解析的STA请求报文;
所述接入点还包括:
关联STA查找单元,用于当所述STA请求报文的目的STA是本AP的关联STA时,以所述目的STA的MAC地址返回响应报文;否则将所述STA请求报文输出至AP请求发送单元;
AP请求发送单元,用于按照所述STA请求报文生成携带AP请求报文,并将其发送至无线局域网中的其他AP;
响应转发单元,用于接收其他AP的响应报文,并将其转发至所述源STA。
优选地,所述AP请求报文中包括源STA的IP地址和MAC地址、以及源STA的关联AP的MAC地址;
所述接入点还包括:
主机表维护单元,用于将包括所述源STA的IP地址和MAC地址、以及源STA的关联AP的MAC地址的表项保存在主机表中,并对所述主机表进行老化。
优选地,所述接入点还包括主机表查找单元,串接在关联STA查找单元与AP请求发送单元之间,用于在接收关联STA查找单元输出的STA请求报文后,如果主机表中包括所述STA请求报文目的STA的IP地址, 则根据对应的表项返回响应报文;否则将所述STA请求报文输出至AP请求发送单元。
优选地,所述接入点还包括关联通告单元,用于在本AP新增关联STA后,向其他AP发送所述STA的关联通告;
所述接收单元接收的报文中还包括其他AP发送的STA关联通告;
所述主机表维护单元按照STA关联通告,在主机表中增加或更新所述STA的表项。
优选地,其特征在于,所述AP请求报文的接收端AP字段为设定组播地址。
本发明所提供的一种无线局域网的接入点,包括:
关联STA单元,用于保存当前本AP的关联STA的IP地址和MAC地址;
接收单元,用于接收报文,包括接收与本AP关联的源STA发送的用于地址解析的STA请求报文;
AP请求发送单元,用于当所述STA请求报文的目的STA不是本AP的关联STA时,按照所述STA请求报文生成AP请求报文,并将其发送至无线局域网中的其他AP;所述目的STA为具有待解析IP地址的STA;
响应转发单元,用于接收其他AP的响应报文,并将其转发至所述源STA。
优选地,所述接入点还包括关联STA查找单元,用于当所述STA请求报文的目的STA是本AP的关联STA时,以所述目的STA的MAC地址返回响应报文;否则将所述STA请求报文输出至AP请求发送单元。
本发明中,由各个AP保存其关联STA的IP地址与MAC地址的对应关系,在收到其他AP用于地址解析的AP请求报文,代替其关联STA进行响应。这样,STA的地址解析报文只会到达各个AP,而不会像现有技术中广播到其他所有的STA,大大减少了地址解析过程中的广播报文,节约了无线资源,并且能够降低恶意ARP请求造成广播风暴的机率;
进一步地,本发明中在AP上设置主机表,来学习AP请求报文中源STA的IP地址与MAC地址的对应关系、以及源STA的关联AP的MAC地址,在本AP关联STA请求解析的目的STA在主机表中时,可以由本 AP直接返回响应报文,从而进一步减少了地址解析过程中所需传输的报文。
附图说明
图1:现有技术和本发明中无线局域网的结构示例图;
图2:本发明所述地址解析方法实施例一的流程图;
图3:本发明所述无线局域网的结构示意图。
具体实施方式
现有技术中,当STA关联到AP时,AP上会记录该STA的MAC地址;当STA注销时,AP会删除记录中该STA的MAC地址。每个AP均维护着一张HASH(哈希)表,在其中记录着当前本AP的所有关联STA的MAC地址。
本发明中,可以令AP不仅记录其关联STA的MAC地址,同时也记录与该MAC地址对应的IP地址,即在AP上维护其所有关联STA的MAC地址与IP地址的对应关系。当收到来自其他AP的地址解析请求时,AP可以得知待解析的IP地址是否是本AP的关联STA的地址,如果是,可以由AP直接响应该地址解析请求而不必再向其关联STA转发地址解析请求;如果不是,AP也不需要向其关联STA转发该地址解析请求,因为即使转发也不会有STA响应。这样无论哪种情况都能大大减少地址解析过程中的广播报文。
需要说明的是,本发明不仅可以应用于采用不具有AC功能的普通交换机的无线局域网,也适用于采用具有AC功能的无线交换机的无线局域网。
本发明所述地址解析方法实施例一的流程可以如图2所示。
步骤S210:在无线局域网的各个AP上保存当前其关联STA的MAC地址与IP地址的对应关系。
AP可以从STA在关联过程中的注册报文中得知其MAC地址和IP地址的对应关系,并将这一对应关系保存起来,如保存在关联STA表中。当STA关机或者离开其关联AP的BSS时,会向AP发起注销流程,AP 将注销的STA的MAC地址与IP地址的对应关系从关联STA表中删除。
步骤S220:一个STA发起地址解析过程,将用于地址解析的STA请求报文发送到所关联的AP。
方便起见,本文中将发起地址解析请求的STA称之为源STA,将与源STA关联的AP称之为源AP,将具有待解析IP地址的STA称之为目的STA,将与目的STA关联的AP称之为目标AP。
源STA通常采用ARP协议发送STA请求报文,即向源AP发送ARP请求报文。
步骤S230:源AP判断STA请求报文的目的STA是否是本AP的关联STA,如果是,执行步骤S240;否则转步骤S250。
源AP在其关联STA表中查找是否包括STA请求报文的目的STA的IP地址,如果包括,则目的STA为本AP的关联STA,否则目的STA不是本AP的关联STA。
步骤S240:源AP按照所保存的目的STA的MAC地址向源STA返回响应报文,地址解析过程结束。
步骤S250:源AP按照该STA请求报文生成用于地址解析的AP请求报文,并将生成的AP请求报文发送至无线局域网中的其他AP。
AP请求报文中携带目的STA的IP地址,还有源STA的MAC地址和IP地址、以及源AP的MAC地址,以便返回的响应报文可以通过源AP到达源STA。
步骤S260:接收AP请求报文的AP判断目的STA是否是本AP的关联STA,如果是,则本AP为目的AP,执行步骤S270;否则对该AP请求报文不做处理。
接收AP请求报文的AP提取报文中目的STA的IP地址,在本AP的关联STA表中查找是否包括该IP地址,如果找到,则对应的STA为目的STA;如果未找到,则目的STA不是本AP的关联STA。
步骤S270:目的AP以目的STA的MAC地址生成响应报文,并向源STA返回该响应报文。
步骤S280:目的AP发送的响应报文到达源AP,由源AP将其转发至源STA,地址解析过程结束。
步骤S240和步骤S270中的响应报文包括目的STA的IP地址和MAC地址、以及目的AP的MAC地址,响应报文均可以采用ARP协议,即向源STA返回的响应报文可以是ARP响应报文。
上述步骤中,以源AP作为接收来自STA的地址解析请求的一方、目的AP作为响应地址解析请求的一方来对地址解析流程进行描述。本领域技术人员知道,目的AP往往也同时作为接收其关联STA的地址解析请求的一方、而源AP同样也可以同时作为响应地址解析请求的一方。也就是说,一个AP不仅会接收到来自其关联STA的STA请求报文,也会收到来自其他AP的AP请求报文。由于AP对STA请求报文和对AP请求报文所进行的处理不同,因此AP请求报文应当与STA请求报文具有不同的特征,以便AP对之进行区分。
本发明推荐在AP请求报文中携带地址解析标识,以区别于STA请求报文。由于AP一般都具有二层和三层报头的处理能力,可以在AP请求报文的二层或三层报头中添加一个字段或指定某个在AP请求报文中不需要使用的字段,当该字段的值为某个设定值时即表示该报文为AP请求报文。
现有技术中,无线网络中传输的报文具有表1所示的格式:
SMAC字段 |
DMAC字段 |
TA字段 |
RA字段 |
IP层报头 |
表1
其中,SMAC(Source MAC,源MAC地址)字段表示该发送该报文的STA的MAC地址,DMAC(Destination MAC,目的MAC地址)字段表示接收该报文的STA的MAC地址,TA(Transmit AP,发送端AP)字段表示发送该报文的AP的MAC地址,RA(Receive AP,接收端AP)字段表示接收该报文的AP的MAC地址。
由于AP请求报文会由源AP发送给无线局域网中其他所有的AP,因此可以利用RA字段来携带地址解析标识,这是本发明一种优选的实现方式。为了区别于其他无线局域网中传输的报文,可以采用预定的组播地址作为AP请求报文的RA字段。接收到地址解析请求报文的AP可以依据RA字段是否为该预定组播地址识别出AP请求报文。此时,地址 解析请求报文以组播的方式在各个AP之间传输。
可见,采用本实施例中的方法进行地址解析,整个地址解析过程最多相当于在AP之间进行了一次广播,而STA不会收到有关地址解析的广播报文,极大地降低了地址解析过程所需传输的报文数量,减少了对无线资源的占用;即使有恶意的ARP请求,也难以造成广播风暴。
本发明所述地址解析方法实施例二包括实施例一的所有步骤,此外,在实施例二中,在AP上设置具有老化机制的主机表,当AP接收到来自其他AP的AP请求报文(包括不做处理的AP请求报文)时,学习报文中源STA的MAC地址和IP地址、以及源AP的MAC地址,将其作为表项保存在主机表中,这样主机表中的每个表项都记录着一个STA的MAC地址和IP地址、以及其关联AP的MAC地址的对应关系。
在AP上设置主机表后,当源AP接收到与其关联的源STA发送的STA请求报文后,如果STA请求报文的目的STA不是源AP的关联STA,在步骤S250之前,源AP先查找主机表,如果某个表项中包括该STA请求报文的目的STA的IP地址,则目的STA的MAC地址就是该表项中STA的MAC地址,此时源AP可以采用该表项中STA的MAC地址、其关联AP的MAC地址生成响应报文,并发送给源STA;如果在主机表的所有表项中都未找到目的STA的MAC地址,则执行步骤S250,生成AP请求报文,向其他AP请求地址解析。
主机表的老化针对各个表项进行,当某个表项超过一定时间没有被访问时,会删除该表项。以图1所示的无线局域网为例,STA2从BSS2漫游到BSS3时,会由AP2重关联到AP3;如果在AP1主机表中保存有STA2的表项,则在该表项被老化之前,AP1的关联STA以STA2为目的STA的地址解析请求会得到STA2仍关联在AP2上的响应。为了避免这种情况,可以让AP有新的STA关联到其上时,向无线局域网中的其他AP发送该STA的关联通告;接收到关联通告的AP在自己的主机表中根据该STA的MAC地址或IP地址查找是否有该STA的表项,如果有则按照该STA当前关联的AP的MAC地址更新该表项;如果没有则将STA的IP地址和MAC地址、以及该STA当前关联的AP的MAC地址作为新的表项保存在主机表中。这样以该重关联STA为目的STA的地址 解析请求将由重关联后的AP进行回复,源STA可以获得正确的响应报文。
现有的AP一般都支持WDS(Wireless Distribution System,无线分布式系统)功能,WDS功能包括向无线局域网中的其他AP通告本AP的地址和其所有关联STA的MAC地址。本实施例中可以借助于WDS功能实现关联通告,令AP在新增关联STA时将该STA的MAC地址通知其他AP。
STA端通常也会维护一个具有老化机制的主机表,记录其他STA的MAC地址和IP地址、以及其关联AP的MAC地址。STA在发起地址解析请求前先在该主机表中查找目的STA的MAC地址。当其中记录的某个目的STA发生重关联时,在该目的STA的表项老化前,也会暂时得到与实际情况不符的目的AP地址。此时,可以由该源STA的上层应用程序来保证重新产生地址解析请求,由与目的STA重关联后的AP进行响应。
本实施例中,在AP上设置主机表可以进一步减少进行地址解析所需传输的报文数量。
本领域普通技术人员可以理解本发明可以借助计算机程序结合已知的硬件平台实现,基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机程序(或称软件产品)的形式体现出来,该计算机程序存储在一个存储介质中,包括若干指令用以使得一台管理设备(具备足够运行该计算机程序的硬件平台)执行本发明各个实施例所述的方法。
本发明所述无线局域网可以具有图3所示的结构,包括AP 300、AP400和STA500。其中,AP300作为源AP,包括接收单元301、关联STA单元304、AP请求发送单元307和响应转发单元309,还可以包括关联STA查找单元305、地址解析响应单元303、主机表维护单元308、主机表查找单元306和关联通告单元302;AP 400作为目的AP,包括接收单元401、关联STA单元404和地址解析响应单元403,还可以包括AP请求发送单元407、响应转发单元409、关联STA查找单元405、主机表维护单元408、主机表查找单元406和关联通告单元402;STA 500 作为源STA,关联至AP 300。
当STA 500希望与一个未知MAC地址的目的STA通信时,向其发送STA请求报文,请求地址解析。
AP 300的接收单元301负责接收报文,在收到STA 500的STA请求报文后,将其输出至关联STA查找单元305。AP 300的关联STA单元304维护并保存着当前AP 300的所有关联STA的IP地址和MAC地址。关联STA查找单元305提取该STA请求报文中目的STA的IP地址,在关联STA单元304中查找是否包括该IP地址,如果包括则目的STA为AP 300的关联STA,由关联STA查找单元305生成响应报文并发送至STA 500;如果没有找到,则关联STA查找单元305向AP请求发送单元307输出该STA请求报文。
AP请求发送单元307按照该STA请求报文生成AP请求报文,并发送至无线局域网中的其他AP,包括AP 400。AP请求报文与STA请求报文具有不同的格式,例如可以在AP请求报文的RA字段写入预定的组播地址,以使接收端AP将其区别于STA请求报文,此时地址解析请求报文以组播的方式在各个AP之间传输。
AP 400的接收单元401同样负责接收报文,在收到AP 300的AP请求报文后,将其输出至地址解析响应单元403。AP 400的关联STA单元404同样维护并保存着当前AP 400的所有关联STA的IP地址和MAC地址。地址解析响应单元403提取该AP请求报文中目的STA的IP地址,在关联STA单元404中查找是否包括该IP地址,如果包括则目的STA为AP 400的关联STA,由地址解析响应单元403生成响应报文并发送;如果没有找到,则目的STA不是AP 400的关联STA,地址解析响应单元403对该STA请求报文不做处理。
在图3所示的无线局域网中,作为目的AP的AP 400发送的响应报文由AP 300的接收单元301接收,接收单元301将其输出至响应转发单元309,由响应转发单元309将其发送至STA 500。
AP 300可以设置具有老化机制的主机表,来对AP请求报文中的源STA的IP地址和MAC地址、以及源STA的MAC地址进行学习,将包括三项的对应关系作为表项存储在主机表中。此时AP 300进一步包括主 机表维护单元308和主机表查找单元306。主机表维护单元308维护主机表并对表项进行老化。当关联STA查找单元305确定STA请求报文的目的STA不是AP 300的关联STA时,将STA请求报文输出至主机表查找单元306,主机表查找单元306提取STA请求报文中目的STA的IP地址,在主机表中查找是否有包括该IP地址的表项,如果找到则按照该表项中STA的MAC地址和其关联AP的MAC地址生成响应报文并发送至STA 500;如果未找到,则将该STA请求报文输出至AP请求发送单元307,向其他AP请求地址解析。
为了避免发生STA重关联后各AP主机表项与实际关联情况暂时不一致的问题,可以在AP 300中增加关联通告单元302。当有新的STA关联到AP 300时,由关联通告单元302向无线局域网中的其他AP发送新关联STA的关联通告,通知其他AP该STA的MAC地址和IP地址、以及本AP的MAC地址。AP 400的接收单元401收到该关联通告后,将其输出至主机表维护单元408。主机表维护单元408根据该STA的MAC地址或IP地址在主机表中查找是否有该STA的表项,如果有则将该表项中关联AP的MAC地址更新为AP 300的MAC地址;如果未找到,则增加该STA的表项。
本领域技术人员知道,AP 300和AP 400都可以既作为源STA,又作为目的STA,因此AP 300和AP 400可以具有同样的结构。
本发明中,由AP对地址解析请求报文进行响应,不会将地址解析请求广播到STA,从而减少了无线局域网中的广播报文,还可以限制恶意ARP请求报文对STA的攻击。应用本发明后,在AP中加入了其关联STA的三层信息,可以更方便地对STA进行控制和管理。
另外,在现有技术中,对采用不具有AC功能的交换机的无线局域网,各个AP通常定时广播其HASH表,以反应其关联STA的更新,这样每个AP上不得不维护一张能够容纳整个无线局域网中所有STA的表,对AP的性能和规格都有较高的要求。应用本发明后,在各个AP上只需维护本AP关联STA的列表、或者本AP关联STA的列表和主机表即可,同时不再需要各AP定时广播HASH表,不仅减少了无线局域网中的传输的广播报文,而且降低对AP的要求。
需要声明的是,上述发明内容及具体实施方式意在证明本发明所提供技术方案的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发明的精神和原理内,当可作各种修改、等同替换、或改进。本发明的保护范围以所附权利要求书为准。