发明内容
本发明的目的在于提供一种在瘦AP中对集中转发的数据包的处理方法及系统,避免数据包经由TCP/IP协议栈在应用层和内核层之间的频繁切换,使数据包直接在内核层中进行处理,提高数据包的转发效率。
为实现上述目的,本发明的一方面提出了一种在瘦AP中对集中转发的数据包的处理方法,所述方法包括以下步骤:
接收来自无线网卡驱动模块的数据包;
判断所述数据包是否为以太型数据包;
当所述数据包是以太型数据包时,将所述数据包的以太头用802.3头替换,以及为该数据包添加Capwap头,使其成为Capwap数据包;
当所述数据包不是以太型数据包时,直接为该数据包添加Capwap头,使其成为Capwap数据包;
为所述Capwap数据包添加UDP头,使其成为UDP数据包;
为所述UDP数据包添加IP头,使其成为IP数据包;
为所述IP数据包添加以太头,使其成为以太型数据包;
判断所述以太型数据包的长度是否超过MTU,最大传输单元;
当所述以太型数据包的长度超过MTU时,将所述以太型数据包进行分片处理,以及将分片处理后的分片数据包发送至有线网卡驱动模块;
当所述以太型数据包的长度未超过MTU时,直接将所述以太型数据包发送至有线网卡驱动模块。
本发明的该方案的有益效果在于通过上述方法能够使数据包直接在瘦AP的内核中进行处理,避免数据包在应用层和内核层之间的频繁切换,提高数据包的转发效率。
优选的是,所述分片处理包括以下步骤:
将所述以太型数据包超出MTU的部分作为第二个发送的分片数据包;
为所述第二个发送的分片数据包依次添加Capwap头、UDP头、IP头和以太头。
优选的是,为所述第二个发送的分片数据包添加的Capwap头中包含分片信息。
本发明还提出了一种在瘦AP中对集中转发的数据包的处理系统,所述系统包括以下装置:
接收来自无线网卡驱动模块的数据包的装置;
判断所述数据包是否为以太型数据包的装置;
当所述数据包是以太型数据包时,将所述数据包的以太头用802.3头替换,以及为该数据包添加Capwap头,使其成为Capwap数据包的装置;
当所述数据包不是以太型数据包时,直接为该数据包添加Capwap头,使其成为Capwap数据包的装置;
为所述Capwap数据包添加UDP头,使其成为UDP数据包的装置;
为所述UDP数据包添加IP头,使其成为IP数据包的装置;
为所述IP数据包添加以太头,使其成为以太型数据包的装置;
判断所述以太型数据包的长度是否超过MTU,最大传输单元的装置;
当所述以太型数据包的长度超过MTU时,将所述以太型数据包进行分片处理,以及将分片处理后的分片数据包发送至有线网卡驱动模块的装置;
当所述以太型数据包的长度未超过MTU时,直接将所述以太型数据包发送至有线网卡驱动模块的装置。
优选的是,所述分片处理包括以下装置:
将所述以太型数据包超出MTU的部分作为第二个发送的分片数据包的装置;
为所述第二个发送的分片数据包依次添加Capwap头、UDP头、IP头和以太头的装置。
本发明的另一方面提出了一种在瘦AP中对集中转发的数据包的处理方法,所述方法包括以下步骤:
接收来自有线网卡驱动模块的以太型数据包;
判断所述数据包的以太头中类型字段值是否为0x0800;
当所述数据包的以太头中类型字段值是0x0800时,说明所述以太型数据包的负载是IP数据包,判断所述IP数据包的IP头中协议字段值是否为17;
当所述IP数据包的IP头中协议字段值是17时,说明所述IP数据包的负载是UDP数据包,判断所述UDP数据包的UDP头中UDP源端口号是否为5247;
当所述UDP数据包的UDP头中UDP源端口号是5247时,说明所述UDP数据包的负载是来自AC数据通道的Capwap数据包,由Capwap头中分片信息判断所述Capwap数据包是否进行过分片处理;
当所述Capwap数据包进行过分片处理,将所述分片的Capwap数据包进行重组处理,以及将重组后的Capwap数据包发送至无线网卡驱动模块;
当所述Capwap数据包未进行过分片处理,直接将所述Capwap数据包发送至无线网卡驱动模块。
本发明的该方案的有益效果在于通过上述方法能够使数据包直接在瘦AP的内核中进行处理,避免数据包在应用层和内核层之间的频繁切换,提高数据包的转发效率。
本发明还提出了一种在瘦AP中对集中转发的数据包的处理系统,所述系统包括以下装置:
接收来自有线网卡驱动模块的以太型数据包的装置;
判断所述数据包的以太头中类型字段值是否为0x0800的装置;
当所述数据包的以太头中类型字段值是0x0800时,说明所述以太型数据包的负载是IP数据包,判断所述IP数据包的IP头中协议字段值是否为17的装置;
当所述IP数据包的IP头中协议字段值是17时,说明所述IP数据包的负载是UDP数据包,判断所述UDP数据包的UDP头中UDP源端口号是否为5247的装置;
当所述UDP数据包的UDP头中UDP源端口号是5247时,说明所述UDP数据包的负载是来自AC数据通道的Capwap数据包,由Capwap头中分片信息判断所述Capwap数据包是否进行过分片处理的装置;
当所述Capwap数据包进行过分片处理,将所述分片的Capwap数据包进行重组处理,以及将重组后的Capwap数据包发送至无线网卡驱动模块的装置;
当所述Capwap数据包未进行过分片处理,直接将所述Capwap数据包发送至无线网卡驱动模块的装置。
此外本发明还提出一种包括上述两个系统的系统。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
如图1所示,依照本发明所涉及的装置包括无线设备10,瘦AP(集中管理式无线接入点)20以及AC(无线控制器)30。其中无线设备10可以是例如装有无线网卡的计算机或者具有WIFI模块的智能手机等,对于瘦AP20尤其涉及瘦AP内核201中的无线网卡驱动模块2011,数据隧道模块2012以及有线网卡驱动模块2013。无线设备10和无线控制器30通过瘦AP20通讯连接。
本发明是在瘦AP中对需要进行集中转发的数据包进行处理,具体完成上述处理过程的是数据隧道模块2012。该数据隧道模块2012可以是瘦AP内核201中的一段程序,可以单独的实现以下功能或实现以下功能的结合。
在具体的数据处理过程中,对上行数据的处理,即数据从无线设备10发送至无线控制器30的过程,首先无线网卡驱动模块2011接收来自无线设备10的数据包,进而将所述数据包发送至数据隧道模块2012。具体的数据隧道模块2012所执行的步骤如图2所示。
接收来自无线网卡驱动模块2011的数据包,如图2中S101所示;之后判断上述数据包是否为以太型数据包,如图2中S102所示;如果是,则将上述数据包的以太头用802.3头替换,即将以太型数据包变为有线数据包,如图2中S103所示;如果否,则接收到的来自无线网卡驱动模块2011的数据包为无线数据包,跳转到步骤S104;如图2所示,步骤S104即为上述有线数据包或者无线数据包添加Capwap头,使其变为Capwap数据包;进而为上述Capwap数据包添加UDP头,使其变为UDP数据包,如图2中S105所示;继续为上述UDP数据包添加IP头,使其变为IP数据包,如图2中S106所示;继续为上述IP数据包添加以太头,使其变为以太型数据包,如图2中S107所示;之后判断上述以太型数据包的长度是否超过MTU(最大传输单元),如图2中S108所示;如果是,则将上述以太型数据包进行分片处理,如图2中S109所示;进而将分片后的分片数据包发送至有线网卡驱动模块2013,如图2中S110所示;如果上述以太型数据包的长度没有超过MTU,则直接将上述以太型数据包发送至有线网卡驱动模块2013,如图2中S110所示。至此数据隧道模块2012完成了对数据包的处理,之后有线网卡驱动模块2013将处理后的数据包发送至无线控制器30。
由于所述依次添加Capwap头、UDP头、IP头和以太头的以太型数据包的最大长度要小于两倍的MTU,因此图2中的步骤S109将所述以太型数据包分成两片,具体的分片方法是:将所述以太型数据包超出MTU的部分作为第二个发送的分片数据包,为所述第二个发送的分片数据包依次添加Capwap头、UDP头、IP头和以太头,并且在所添加的Capwap头中包含分片信息,例如“分片ID”以及“偏移”等信息。
在具体的数据处理过程中,对下行数据的处理,即数据从无线控制器30发送至无线设备10的过程,首先有线网卡驱动模块2013接收来自无线控制器30的数据包,进而将所述数据包发送至数据隧道模块2012。具体的数据隧道模块2012所执行的步骤如图3所示。
接收来自有线网卡驱动模块2013的以太型数据包,如图3中S201所示;之后判断上述数据包的以太头中类型字段值是否为0x0800,如图3中S202所示;如果否,则返回步骤S201;如果是,则说明所述以太型数据包的负载是IP数据包,继续判断上述IP数据包的IP头中协议字段值是否为17,如图3中S203所示;如果否,则返回步骤S201;如果是,则说明所述IP数据包的负载是UDP数据包,继续判断上述UDP数据包的UDP头中UDP源端口号是否为5247,如图3中S204所示;如果否,则返回步骤S201;如果是,则说明所述UDP数据包的负载是来自AC数据通道的Capwap数据包,之后由Capwap头中分片信息判断所述Capwap数据包是否进行过分片处理,如图3中S205所示;如果是,则将上述分片的Capwap数据包进行重组处理,如图3中S206所示;进而将重组后的Capwap数据包发送至无线网卡驱动模块2011,如图3中S207所示;如果所述Capwap数据包没进行过分片处理,则直接将所述Capwap数据包发送至无线网卡驱动模块2011,如图3中S207所示。至此数据隧道模块2012完成了对数据包的处理,之后无线网卡驱动模块2011将处理后的数据包发送至无线设备10。
本发明所涉及的在瘦AP中对集中转发的数据包的处理方法能够避免数据包经由TCP/IP协议栈在应用层和内核层之间的频繁切换,使数据包直接在内核层中进行处理,提高了数据包的转发效率。