CN103249107B - 一种提高无线热点ap吞吐量的方法 - Google Patents
一种提高无线热点ap吞吐量的方法 Download PDFInfo
- Publication number
- CN103249107B CN103249107B CN201310187143.3A CN201310187143A CN103249107B CN 103249107 B CN103249107 B CN 103249107B CN 201310187143 A CN201310187143 A CN 201310187143A CN 103249107 B CN103249107 B CN 103249107B
- Authority
- CN
- China
- Prior art keywords
- skb
- function
- head
- capwap
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及无线通讯领域,尤其涉及一种提高无线热点AP吞吐量的方法,包括以下步骤:在系统启动时创建一个用于处理capwap隧道数据报文封装与解封装虚的拟隧道设备;在数据包skb进入Linux内核netif_receive_skb()函数时,调用隧道报文处理函数cut_skb_tunnel_head()判断skb是否为capwap隧道报文,如果是,则将数据包交由虚拟隧道设备进行处理,如果不是,则不进行处理;虚拟隧道设备对capwap报文的封装与解封装,然后将处理后的skb交由二层桥设备处理。本发明的作用是:仅仅在协议栈二层进行相关处理,有效缩短了处理周期,进而提高了吞吐量。
Description
技术领域
本发明涉及无线通讯领域,尤其涉及一种提高无线热点AP吞吐量的方法。
背景技术
随着无线技术的发展和成熟,人们对无线产品的应用越来越广泛。在机场、商场、咖啡厅、书店、学校等等场所都有无线热点的覆盖。因为大功率无线热点AP有着覆盖范围广、传输速率高等特点,因此当前热点的覆盖大多数都由大功率无线热点AP来完成。以上提到的场所,往往会部署几十、甚至几百个无线热点AP来完成无线热点的完全覆盖。但AP数量大给管理带来的很大的困难,为此出现了AP+AC的部署方式,由AC集中管理所有的无线热点AP。
AP与AC间的交互采用CAPWAP协议,AC可以实现对AP参数的下发、网络参数的采集,也可以实现对无线用户的接入控制、认证、计费。
无线热点AP是种二层网络设备,主要用于有线广域网与无线局域网的桥接。当前大功率无线热点AP处理无线报文存在两种处理方式,分别为:本地转发方式和集中转发方式。
本地转发方式,AP决定是否允许无线用户的接入,并将收到的无线数据报文转换成有线报文,再发送给AP的上行链路。但这种方式不利于对无线用户的集中管理。
集中转发方式,要求AP将对用户接入控制的报文转发给AC处理,并将无线用户的业务数据通过隧道方式统一发给AC处理。AP须具有将有线数据封装为隧道格式与将无线数据报文封装为隧道格式的能力。因此种方式利于对AP、对无线用户的集中管理,组网方式灵活等特点,现网环境多采用此种方式。但是在AP使用集中转发方式时,Linux内核中原有隧道处理是接收对方发送的隧道数据报文(udp报文),在udp接收流程中,判断是隧道报文,然后将将隧道报文的隧道头等信息剥离,再对udp负载中的报文进行处理。由此可见,原有隧道处理报文的接收流程处理很长,要经历一次完整的协议栈处理,而其他的业务数据仅在二层就可以处理完毕。处理流程长,处理时间自然长,延时长,吞吐量下降。
发明内容
本发明的目的在于提供一种提高无线热点AP吞吐量的方法,解决了现有的无线热点不能集中管理,并且处理流程和处理时间长,延时长,吞吐量下降的问题。
为解决上述问题,本发明所采取的技术方案是:
一种提高无线热点AP吞吐量的方法,包括以下步骤:
步骤一,在系统启动时创建一个用于处理capwap隧道数据报文封装与解封装虚的拟隧道设备;
步骤二,在数据包skb进入Linux内核netif_receive_skb()函数时,调用隧道报文处理函数cut_skb_tunnel_head()判断skb是否为capwap隧道报文,如果是,则将数据包交由虚拟隧道设备进行处理,如果不是,则不进行处理;
步骤三,虚拟隧道设备对capwap报文的封装与解封装,然后将处理后的skb交由二层桥设备处理。
更进一步的技术方案是,步骤二中,cut_skb_tunnel_head()函数处理方法是:
通过eth_hdr()函数获取到skb中包含的以太头eth,比较以太头协议类型(eth->h_proto)是否等于TH_P_IP,是则通过pskb_may_pull()函数将skb->data指针偏移sizeof(struct iphdr)大小,通过iph=(struct iphdr*)skb->data获取到ip头,否则直接返回到netif_receive_skb()函数,进行正常的协议栈处理流程;
比较iph->protocol是否等于PROTO_UDP,是则通过pskb_may_pull()函数偏移iph->ihl*4+sizeof(struct udphdr)大小,通过udph=(struct udphdr*)(skb->data+iphlen)获取udp头,否则直接返回到netif_receive_skb()函数,进行正常的协议栈处理流程;
比较udph->dest是否等于5248(udp隧道端口号),是则将skb->dev指向虚拟隧道设备,数据包交由虚拟隧道设备进行处理,否则直接返回到netif_receive_skb()函数,进行正常的协议栈处理流程。
采用上述技术方案所产生的有益效果在于:仅仅在协议栈二层进行相关处理,有效缩短了处理周期,进而提高了吞吐量。
附图说明
图1是本发明一种提高无线热点AP吞吐量的方法中判断skb是否为capwap隧道报文的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明一种提高无线热点AP吞吐量的方法一个实施例:一种提高无线热点AP吞吐量的方法,包括以下步骤:
步骤一,在系统启动时创建一个用于处理capwap隧道数据报文封装与解封装虚的拟隧道设备;
步骤二,在数据包skb进入Linux内核netif_receive_skb()函数时,调用隧道报文处理函数cut_skb_tunnel_head()判断skb是否为capwap隧道报文,如果是,则将数据包交由虚拟隧道设备进行处理,如果不是,则不进行处理;
步骤三,虚拟隧道设备对capwap报文的封装与解封装,然后将处理后的skb交由二层桥设备处理。
根据本发明一种提高无线热点AP吞吐量的方法的另一个实施例,步骤二中,cut_skb_tunnel_head()函数处理方法是:
通过eth_hdr()函数获取到skb中包含的以太头eth,比较以太头协议类型(eth->h_proto)是否等于TH_P_IP,是则通过pskb_may_pull()函数将skb->data指针偏移sizeof(struct iphdr)大小,通过iph=(struct iphdr*)skb->data获取到ip头,否则直接返回到netif_receive_skb()函数,进行正常的协议栈处理流程;
比较iph->protocol是否等于PROTO_UDP,是则通过pskb_may_pull()函数偏移iph->ihl*4+sizeof(struct udphdr)大小,通过udph=(struct udphdr*)(skb->data+iphlen)获取udp头,否则直接返回到netif_receive_skb()函数,进行正常的协议栈处理流程;
比较udph->dest是否等于5248(udp隧道端口号),是则将skb->dev指向虚拟隧道设备,数据包交由虚拟隧道设备进行处理,否则直接返回到netif_receive_skb()函数,进行正常的协议栈处理流程。
一种判断skb是否为capwap隧道报文的方法,包括以下步骤:
-判断集中转发模式是否开启,是则继续执行下一步,否则直接返回;
-判断以太头中协议类型是否为TH_P_IP,是则获取ip头,否则直接返回;
-判断获取到的ip头中协议类型是否为PROTO_UDP,是则获取udp头,否则直接返回;
-判断获取到的udp头的目的端口是否为capwap隧道端口5248,是则将skb->dev指向虚拟隧道设备,数据包交由虚拟隧道设备进行处理。否则直接返回。
术语解释:
AP:Access Point,接入点
AC:AP Control,接入点控制器
CAPWAP:Control And Provisioning of Wireless Access Points Protocol,无线接入点控制访问协议。
Claims (1)
1.一种提高无线热点AP吞吐量的方法,其特征在于包括以下步骤:
步骤一,在系统启动时创建一个用于处理capwap隧道数据报文封装与解封装虚拟隧道设备;
步骤二,在数据包skb进入Linux内核netif_receive_skb()函数时,调用隧道报文处理函数cut_skb_tunnel_head()判断skb是否为capwap隧道报文,判断skb是否为capwap隧道报文的方法如下:
a、判断集中转发模式是否开启,是则继续执行下一步,否则直接返回;
b、判断以太头中协议类型是否为TH_P_IP,是则获取ip头,否则直接返回;
c、判断获取到的ip头中协议类型是否为PROTO_UDP,是则获取udp头,否则直接返回;
d、判断获取到的udp头的目的端口是否为capwap隧道端口5248,是则将skb->dev指向虚拟隧道设备,数据包交由虚拟隧道设备进行处理,否则直接返回;
如果是,则将数据包交由虚拟隧道设备进行处理,如果不是,则不进行处理,cut_skb_tunnel_head()函数处理方法是:
a、通过eth_hdr()函数获取到skb中包含的以太头eth,比较以太头协议类型(eth->h_proto)是否等于TH_P_IP,是则通过pskb_may_pull()函数将skb->data指针偏移sizeof(struct iphdr)大小,通过iph=(struct iphdr*)skb->data获取到ip头,否则直接返回到netif_receive_skb()函数,进行正常的协议栈处理流程;
b、比较iph->protocol是否等于PROTO_UDP,是则通过pskb_may_pull()函数偏移iph->ihl*4+sizeof(struct udphdr)大小,通过udph=(struct udphdr*)(skb->data+iphlen)获取udp头,否则直接返回到netif_receive_skb()函数,进行正常的协议栈处理流程;
c、比较udph->dest是否等于5248(udp隧道端口号),是则将skb->dev指向虚拟隧道设备,数据包交由虚拟隧道设备进行处理,否则直接返回到netif_receive_skb()函数,进行正常的协议栈处理流程;
步骤三,虚拟隧道设备对capwap报文的封装与解封装,然后将处理后的skb交由二层桥设备处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310187143.3A CN103249107B (zh) | 2013-05-21 | 2013-05-21 | 一种提高无线热点ap吞吐量的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310187143.3A CN103249107B (zh) | 2013-05-21 | 2013-05-21 | 一种提高无线热点ap吞吐量的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103249107A CN103249107A (zh) | 2013-08-14 |
CN103249107B true CN103249107B (zh) | 2015-10-07 |
Family
ID=48928268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310187143.3A Active CN103249107B (zh) | 2013-05-21 | 2013-05-21 | 一种提高无线热点ap吞吐量的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103249107B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103442015B (zh) * | 2013-09-04 | 2016-07-06 | 南京华讯方舟通信设备有限公司 | 一种基于linux虚拟网卡的在无线网络控制器上对capwap隧道数据的处理方法及系统 |
CN104469843B (zh) * | 2014-11-17 | 2018-11-06 | 京信通信系统(中国)有限公司 | 一种capwap数据的处理方法和装置 |
CN106059885B (zh) * | 2016-06-15 | 2019-06-11 | 京信通信系统(中国)有限公司 | 无线控制器对capwap报文的处理方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547850A (zh) * | 2012-02-22 | 2012-07-04 | 深圳市共进电子股份有限公司 | 一种capwap隧道的实现方法 |
CN102780633A (zh) * | 2012-08-08 | 2012-11-14 | 北京傲天动联技术有限公司 | 一种基于capwap协议进行数据传输的装置和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101640621B (zh) * | 2008-08-01 | 2012-09-19 | 上海贝尔阿尔卡特股份有限公司 | 一种在集中式无线网络中实现数据传输的方法和装置 |
-
2013
- 2013-05-21 CN CN201310187143.3A patent/CN103249107B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547850A (zh) * | 2012-02-22 | 2012-07-04 | 深圳市共进电子股份有限公司 | 一种capwap隧道的实现方法 |
CN102780633A (zh) * | 2012-08-08 | 2012-11-14 | 北京傲天动联技术有限公司 | 一种基于capwap协议进行数据传输的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103249107A (zh) | 2013-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ahmadi | 5G NR: Architecture, technology, implementation, and operation of 3GPP new radio standards | |
US10939267B1 (en) | Apparatus and method for a unified slice manager | |
EP3622745B1 (en) | Protocol data unit session splitting function and signalling | |
CN105230068B (zh) | 数据传输方法及设备 | |
EP3804458A1 (en) | Vehicle-to-everything session and service continuity in automotive edge computing systems | |
WO2016112640A1 (zh) | 基于sdn的wlan分层组网系统及方法 | |
CN102868647B (zh) | 一种基于Linux网络内核的数据处理方法和装置 | |
CN110049512A (zh) | 一种前传网络数据处理装置及方法 | |
CN108029037A (zh) | Ip层的双连接和载波聚合 | |
US10645009B2 (en) | Method and apparatus for programmable buffers in mobile networks | |
CN104365170B (zh) | 用于管理wan网络装置的标识符的方法和设备 | |
WO2012149400A3 (en) | Trusted wlan connectivity to 3gpp evolved packet core | |
CN107734571A (zh) | 一种数据传输通道的处理方法及设备 | |
CN103249107B (zh) | 一种提高无线热点ap吞吐量的方法 | |
CN104685959B (zh) | 具有统一接口的无源无线电链路控制实体 | |
CN103731935A (zh) | 基于wifi的空间网络通信方法 | |
CN105376131B (zh) | 一种组播迁移方法和网络设备 | |
CN104982062B (zh) | 传输数据的方法、装置和系统 | |
CN103763676B (zh) | Ap与ac间的通信方法和设备 | |
CN103795627A (zh) | 三层本地转发方法和设备 | |
CN103607662A (zh) | 一种智能电视设备中的通信协议控制方法和装置 | |
CN105959223B (zh) | 一种报文转发方法及装置 | |
CN107409335A (zh) | 通信装置、通信系统和控制方法 | |
CN103260219B (zh) | 一种移动通信网络系统和方法 | |
Guo et al. | Implementation of C-RAN architecture with CU/DU split on a flexible SDR testbed |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |