一种报文转发方法及装置
技术领域
本申请涉及技术领域,尤其涉及一种报文转发方法及装置。
背景技术
在由接入控制器(Access Control,AC)、接入点(Access Point,AP)以及站点(Station,STA)组成的无线局域网(Wireless Local Area Network,WLAN)中,AC和AP之间会建立用于通信的隧道,例如,隧道为无线接入点的控制和配置协议(CAPWAP)隧道,AP工作在集中转发模式下时,所有STA的数据报文均由AC进行处理或者转发。
不管是AC转发发往STA的数据报文,还是AP转发需要上送到AC的STA的数据报文,在转发时,均需要进行CAPWAP隧道封装,这样一来,在转发的数据报文的数量较多的情况下,会占用AC和/或AP较多的带宽资源。
发明内容
为克服相关技术中存在的问题,本申请提供了一种报文转发方法及装置。
根据本申请实施例的第一方面,提供一种报文转发方法,所述方法应用于无线接入设备,所述方法包括:
在需要通过自身与对端设备建立的隧道向所述对端设备转发待转发队列中的数据报文时,判断所述待转发队列中的当前待转发报文的有效载荷长度是否大于设定长度;
在判断结果为否时,将所述当前待转发报文的有效载荷添加到聚合载荷中,并将所述设定长度更新为所述设定长度与所述有效载荷长度的差值,将所述待转发队列中的下一个待转发报文作为当前待转发报文,返回执行判断所述待转发队列中的当前待转发报文的有效载荷长度是否大于设定长度的步骤,直到在判断结果为是时,根据当前的聚合载荷生成聚合报文,并对所述聚合报文进行隧道封装,通过所述隧道将封装后的报文转发给所述对端设备;
其中,当所述无线接入设备为AP时,所述对端设备为AC;当所述无线接入设备为AC时,所述对端设备为AP;
当所述待转发队列中的每个待转发报文均携带有隧道封装头时,该待转发报文的有效载荷长度为除去该待转发报文中的隧道封装头后的报文长度;
当所述待转发队列中的每个待转发报文均没有携带隧道封装头时,该待转发报文的有效载荷长度为该待转发报文的报文长度。
根据本申请实施例的第二方面,提供一种报文转发装置,所述方法应用于无线接入设备,所述方法包括:
判断模块,用于在需要通过自身与对端设备建立的隧道向所述对端设备转发待转发队列中的数据报文时,判断所述待转发队列中的当前待转发报文的有效载荷长度是否大于设定长度;
转发模块,用于在所述判断模块的判断结果为否时,将所述当前待转发报文的有效载荷添加到聚合载荷中,并将所述设定长度更新为所述设定长度与所述有效载荷长度的差值,将所述待转发队列中的下一个待转发报文作为当前待转发报文,返回执行判断所述待转发队列中的当前待转发报文的有效载荷长度是否大于设定长度的步骤,直到在判断结果为是时,根据当前的聚合载荷生成聚合报文,并对所述聚合报文进行隧道封装,通过所述隧道将封装后的报文转发给所述对端设备;
其中,当所述无线接入设备为AP时,所述对端设备为AC;当所述无线接入设备为AC时,所述对端设备为AP;
当所述待转发队列中的每个待转发报文均携带有隧道封装头时,该待转发报文的有效载荷长度为除去该待转发报文中的隧道封装头后的报文长度;
当所述待转发队列中的每个待转发报文均没有携带隧道封装头时,该待转发报文的有效载荷长度为该待转发报文的报文长度。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,在通过AP与AC之间的隧道转发报文时,AC和/或者AP可以先对需要转发的报文进行聚合处理,之后再进行隧道封装后转发出去,可以减少AC和/或AP的带宽资源的占用,并且提高了转发效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本申请的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种报文转发方法的流程示意图;
图2为本申请实施例提供的一种报文转发装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
接下来对本申请实施例进行详细说明。
本申请实施例提供了一种报文转发方法,该方法应用于无线接入设备,如图1所示,该方法可以包括如下步骤:
S11、在需要通过自身与对端设备建立的隧道向对端设备转发待转发队列中的数据报文时,判断待转发队列中的当前待转发报文的有效载荷长度是否大于设定长度;在判断结果为是时,执行步骤S12;在判断结果为否时,执行步骤S13。
S12、根据当前的聚合载荷生成聚合报文,并对聚合报文进行隧道封装,通过隧道将封装后的报文转发给对端设备。
S13、将当前待转发报文的有效载荷添加到聚合载荷中,并将设定长度更新为设定长度与有效载荷长度的差值,将待转发队列中的下一个待转发报文作为当前待转发报文,返回执行上述步骤S11,直到在判断结果为是时,执行上述步骤S12。
需要说明的是,在本申请实施例中,当无线接入设备为AP时,对端设备为AC,在这种情况下,对于AC需要通过隧道向AP转发数据报文时,AC可以执行上述报文转发方法,当然,也可以不执行上述报文转发方法。
当无线接入设备为AC时,对端设备为AP,在这种情况下,对于AP需要通过隧道向AC转发数据报文时,AP可以执行上述报文转发方法,当然,也可以不执行上述报文转发方法。
不管在哪种情况下,上述隧道可以为CAPWAP隧道,当然,还可以为其他隧道,在此不做具体限定。
具体地,在本申请实施例中,当待转发队列中的每个待转发报文均携带有隧道封装头时,该待转发报文的有效载荷长度为除去该待转发报文中的隧道封装头后的报文长度。
在这种情形下,待转发队列中的每个待转发报文,均是指无线接入设备对接收到的需要转发给对端设备的数据报文进行隧道封装后的报文。
即,无线接入设备在接收到需要转发给对端设备的数据报文时,对接收到的数据报文进行隧道封装,并将封装后的报文添加到针对该对端设备设置的待转发队列中。
在具体添加封装后的报文时,可以将一个封装后的报文添加到一个缓存区,也可以将多个封装后的报文添加到一个缓存区。
当待转发队列中的每个待转发报文均没有携带隧道封装头时,该待转发报文的有效载荷长度为该待转发报文的报文长度。
在这种情形下,在一个例子中,待转发队列中的每个待转发报文,均是指无线接入设备接收到的需要转发给对端设备的数据报文。
即,无线接入设备在接收到需要转发给对端设备的报文时,将接收到的报文添加到事先针对该对端设备设置的待转发队列中。
在另一个例子中,在无线接入设备为AP且对端设备为AC时,待转发队列中的每个待转发报文,均是指AP接收到的需要转发给AC且来源于同一STA的数据报文。
即,AP在接收到需要转发给AC且来源于同一STA的报文时,将接收到的报文添加到事先针对该对端设备设置的待转发队列中。
在无线接入设备为AC且对端设备为AP时,待转发队列中的每个待转发报文,均是指AC接收到的需要转发给AP且目的端均为同一STA的数据报文。
即,AC在接收到需要转发给AP且目的端均为同一STA的数据报文时,将接收到的报文添加到事先针对该对端设备设置的待转发队列中。
需要说明的是,在待转发队列中的每个待转发报文均没有携带隧道封装头的这种情形下,无线接入设备在将接收到的报文添加到相应的待转发队列时,可以将一个数据报文添加到一个缓存区,也可以将多个数据报文添加到一个缓存区。
具体地,无线接入设备在执行完上述步骤S13后,又执行上述步骤S12时,可以对当前的聚合载荷中的所有内容进行拼接,得到聚合报文;也可以根据当前的聚合载荷中的所有内容,按照事先设定的自定义格式生成聚合报文,在此不做具体限定。
下面结合具体实施例对上述报文转发方法进行详细说明。
以WLAN中的AP单侧执行报文转发方法为例,WLAN中的AP在接收到多个终端发送的数据报文时,将每个终端的数据报文添加到针对每个终端设置的待转发队列中,每个待转发队列中的一个数据报文占用一个缓存区。
该AP在需要通过CAPWAP隧道向AC转发某个待转发队列中的数据报文时,判断该待转发队列中的当前待转发报文的有效载荷长度是否大于设定长度(可根据WLAN组网的实际情况来设置)。
假设判断结果为否,则该AP将当前待转发报文的有效载荷添加到聚合载荷中,并将设定长度更新为设定长度与有效载荷长度的差值,将待转发队列中的下一个待转发报文作为当前待转发报文,返回执行判断该待转发队列中的当前待转发报文的有效载荷长度是否大于设定长度的步骤。
假设该AP返回执行上述步骤3次之后的判断结果为是,则该AP对当前的聚合载荷的全部内容进行拼接,得到聚合报文,并对聚合报文进行CAPWAP隧道封装,通过CAPWAP隧道将封装后的报文转发给该AC。
由以上技术方案可以看出,在本申请实施例中,在通过AP与AC之间的隧道转发报文时,AC和/或者AP可以先对需要转发的报文进行聚合处理,之后再进行隧道封装后转发出去,可以减少AC和/或AP的带宽资源的占用,并且提高了转发效率。
基于同一发明构思,本申请还提供了一种报文转发装置,所述装置应用于无线接入设备,其结构示意图如图2所示,具体包括:
判断模块21,用于在需要通过自身与对端设备建立的隧道向所述对端设备转发待转发队列中的数据报文时,判断所述待转发队列中的当前待转发报文的有效载荷长度是否大于设定长度;
转发模块22,用于在所述判断模块21的判断结果为否时,将所述当前待转发报文的有效载荷添加到聚合载荷中,并将所述设定长度更新为所述设定长度与所述有效载荷长度的差值,将所述待转发队列中的下一个待转发报文作为当前待转发报文,返回执行判断所述待转发队列中的当前待转发报文的有效载荷长度是否大于设定长度的步骤,直到在判断结果为是时,根据当前的聚合载荷生成聚合报文,并对所述聚合报文进行隧道封装,通过所述隧道将封装后的报文转发给所述对端设备;
其中,当所述无线接入设备为AP时,所述对端设备为AC;当所述无线接入设备为AC时,所述对端设备为AP;
当所述待转发队列中的每个待转发报文均携带有隧道封装头时,该待转发报文的有效载荷长度为除去该待转发报文中的隧道封装头后的报文长度;
当所述待转发队列中的每个待转发报文均没有携带隧道封装头时,该待转发报文的有效载荷长度为该待转发报文的报文长度。
优选地,所述装置还包括:
第一处理模块(图2中未示出),在接收到需要转发给所述对端设备的数据报文时,对接收到的数据报文进行隧道封装,并将封装后的报文添加到所述待转发队列中。
优选地,所述装置还包括:
第二处理模块(图2中未示出),用于在接收到需要转发给所述对端设备的数据报文时,将接收到的数据报文添加到所述待转发队列中。
优选地,所述装置还包括:
第三处理模块(图2中未示出),用于在所述无线接入设备为AP且所述对端设备为AC时,若接收到需要转发给所述对端设备且来源于同一站点STA的数据报文,则将接收到的数据报文添加到针对STA设置的待转发队列中;或者,
在所述无线接入设备为AC且所述对端设备为AP时,若接收到需要转发给AP且目的端均为同一STA的数据报文,则将接收到的数据报文添加到针对STA设置的待转发队列中。
优选地,所述隧道为CAPWAP隧道。
由以上技术方案可以看出,在本申请实施例中,在通过AP与AC之间的隧道转发报文时,AC和/或者AP可以先对需要转发的报文进行聚合处理,之后再进行隧道封装后转发出去,可以减少AC和/或AP的带宽资源的占用,并且提高了转发效率。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。