数据包重定向的方法、系统及ap的制作方法

文档序号:9582275阅读:887来源:国知局
数据包重定向的方法、系统及ap的制作方法【
技术领域
】[0001]本发明属于无线通信
技术领域
,尤其涉及一种数据包重定向的方法、系统及AP。【
背景技术
】[0002]在商业wifi解决方案中,用户进行portal认证过程中,都会涉及到数据包重定向的问题。在无线用户进行portal认证未通过时,将原本访问互联网的http数据包重定向至无线访问节点(AccessPoint,AP),再由AP对该http数据包做出错误码为302的响应,该响应中包含portal服务器的IP地址,按照http协议规定,用户接下来会自动访问portal服务器。[0003]然而,在实现本发明过程中,发明人发现现有技术提供的数据包重定向的方法,是用iptables命令在应用层实现页面数据包重定向,当用户数比较多的时候,会出现页面数据包重定向缓慢的现象,导致用户体验不佳。【
发明内容】[0004]有鉴于此,本发明实施例提供一种数据包重定向的方法、系统及AP,以解决现有技术提供的数据包重定向的方法,当用户数比较多的时候,会出现页面数据包重定向缓慢的现象,导致用户体验不佳的问题。[0005]第一方面,提供一种数据包重定向的方法,所述方法包括:无线网卡驱动程序对上行数据包进行处理,修改上行http数据包的目的MAC为AP的MAC、目的端口为9000、目的IP为AP的IP;[0006]无线网卡驱动程序对下行数据包进行处理,修改下行http数据包的源MAC为上行http数据包中的原目的MAC、源端口为上行http数据包中的原目的端口、源IP为上行http数据包中的原目的IP。[0007]进一步地,在所述修改上行http数据包的目的MAC为AP的MAC、目的端口为9000、目的IP为AP的IP之前,所述方法还包括:[0008]无线网卡驱动程序接收到来自空口的STA数据包后,对所述STA数据包进行解析;[0009]无线网卡驱动程序根据解析结果判断无线用户是否通过portal认证,如果认证未通过,则判断所述STA数据包是否是白名单中的数据包。[0010]进一步地,在所述修改下行http数据包的源MAC为上行http数据包中的原目的MAC、源端口为上行http数据包中的原目的端口、源IP为上行http数据包中的原目的IP之前,所述方法还包括:[0011]无线网卡驱动程序对来自无线网卡的以太类型数据帧进行解析;[0012]无线网卡驱动程序根据解析结果判断无线用户是否通过portal认证,如果认证未通过,则判断所述以太类型数据帧是否是白名单中的数据包。[0013]进一步地,在无线网卡驱动的收包函数ieee80211_input中对上行数据包进行处理。[0014]进一步地,在无线网卡驱动的发包函数wlan_vap_send中对下行数据包进行处理。[0015]第二方面,提供一种AP,所述AP包括无线网卡驱动程序,所述无线网卡驱动程序包括上行数据包处理单元和下行数据包处理单元;[0016]所述上行数据包处理单元,用于对上行数据包进行处理;[0017]所述上行数据包处理单元包括:[0018]上行修改模块,用于修改上行http数据包的目的MAC为AP的MAC、目的端口为9000、目的IP为AP的IP;[0019]所述下行数据包处理单元,用于对下行数据包进行处理;[0020]所述下行数据包处理单元包括:[0021]下行修改模块,用于修改下行http数据包的源MAC为上行http数据包中的原目的MAC、源端口为上行http数据包中的原目的端口、源IP为上行http数据包中的原目的IP。[0022]进一步地,所述上行数据包处理单元还包括:[0023]上行解析模块,用于接收到来自空口的STA数据包后,对所述STA数据包进行解析;[0024]上行判断模块,用于根据解析结果判断无线用户是否通过portal认证,如果认证未通过,则判断所述STA数据包是否是白名单中的数据包。[0025]进一步地,所述下行数据包处理单元还包括:[0026]下行解析模块,用于对来自无线网卡的以太类型数据帧进行解析;[0027]下行判断模块,用于根据解析结果判断无线用户是否通过portal认证,如果认证未通过,则判断所述以太类型数据帧是否是白名单中的数据包。[0028]进一步地,所述上行数据包处理单元在无线网卡驱动的收包函数ieee80211_input中对上行数据包进行处理。[0029]进一步地,所述下行数据包处理单元在无线网卡驱动的发包函数wlan_vap_send中对下行数据包进行处理。[0030]第三方面,提供一种数据包重定向的系统,包括用户终端和portal服务器,所述系统还包括如第二方面所述的AP。[0031]在本发明实施例,数据包重定向的方法是在无线网卡的驱动程序中实现,因此是一种在驱动层实现数据包重定向的方法,相比现有的在应用层实现数据包重定向的方法,当用户数比较多的时候,不会出现页面数据包重定向缓慢的现象,效率上比现有的在应用层实现数据包重定向的方法有一定提高。【附图说明】[0032]图1是本发明数据包重定向的方法实施例的实现流程图;[0033]图2是本发明数据包重定向的方法实施例中,无线网卡驱动程序对上行数据包进行处理的实现流程图;[0034]图3是本发明数据包重定向的方法实施例中,无线网卡驱动程序对下行数据包进行处理的实现流程图;[0035]图4是本发明AP实施例的结构框图;[0036]图5是本发明数据包重定向的系统实施例的结构示意图。【具体实施方式】[0037]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。[0038]在本发明实施例中,无线网卡驱动程序对上行数据包进行处理,修改上行http数据包的目的MAC为AP的MAC、目的端口为9000、目的IP为AP的IP,使上行http数据包可以重定向到AP;无线网卡驱动程序对下行数据包进行处理,修改下行http数据包的源MAC为上行http数据包中的原目的MAC、源端口为上行http数据包中的原目的端口、源IP为上行http数据包中的原目的IP,用户就可以接收到重定向后的http数据包。[0039]以下结合具体实施例对本发明的实现进行详细描述:[0040]实施例一[0041]图1示出了本发明实施例一提供的数据包重定向的方法的实现流程,详述如下:[0042]在步骤S101中,无线网卡驱动程序对上行数据包进行处理,修改上行http数据包的目的MAC为AP的MAC、目的端口为9000、目的IP为AP的IP。[0043]在本发明实施例中,AP的无线网卡驱动程序的收包函数ieee80211_input接收到来自空口的STA数据包后,对所述STA数据包进行解析,根据解析结果判断无线用户是否通过portal认证,如果认证未通过,则判断所述STA数据包是否是白名单中的数据包,如果不是,则表示所述STA数据包是http数据包,修改所述http数据包的目的MAC为AP的MAC、目的端口为9000、目的IP为AP的IP,如此一来,所述http数据包可以重定向到AP。[0044]其中,白名单中的数据包包括地址解析协议(ARP,AddressResolut1nProtocol)数据包,动态主机分配协议(DHCP,DynamicHostConfigurat1nProtocol)数据包和域名系统(DNS,DomainNameSystem)数据包。[0045]其中,收包函数ieee80211_input在http数据包的以太头中修改http数据包的目的MAC为AP的MAC,在http数据包的TCP头中修改http数据包的目的端口为9000,在http数据包的IP头中修改http数据包的目的IP为AP的IP。[0046]具体的,无线网卡驱动程序对来自空口的STA数据包进行处理的流程如图2所示。在图2中,无线网卡驱动程序接收到来自空口的STA数据包后,先判断无线用户的portal认证是否通过,如果通过,则不进行后续处理,如果没有通过,则判断所述STA数据包是否是白名单中的数据包,如果是,则不进行后续处理,如果不是,则表示所述STA数据包是http数据包,可以在http数据包的以太头中修改http数据包的目的MAC为AP的MAC,在http数据包的TCP头中修改http数据包的目的端口为9000,在http数据包的IP头中修改http数据包的目的IP为AP的IP,并继续原有无线网卡驱动程序的收包流程。[0047]在步骤S102中,无线网卡驱动程序对下行数据包进行处理,修改下行http数据包的源MAC为上行http数据包中的原目的MAC、源端口为上行http数据包中的原目的端口、源IP为上行http数据包中的原目的IP。[0048]在本发明实施例中,AP的无线网卡驱动程序的发包函数wlan_vap_send对来自无线网卡的以太类型数据帧进行解析,根据解析结果判断无线用户是否通过portal认证,如果认证未通过,则判断所述以太类型数据帧是否是白名单中的数据包,如果不是,则表示所述以太类型数据帧是http数据包,修改所述http数据包的源MAC为上行数据包中的原目的MAC、源端口为上行数据包中的原目的端口、源IP为上行数据包中的原目的IP,如此一来,无线用户可以接收到重定向的http数据包。[0049]其中,原目的MAC、原目的端口和原目的IP是在对上行数据包处理的过程中,从上行http数据包中提取,并按无线用户保存记录下来相关信息。[0050]具体的,无线网卡驱动程序对以太类型数据帧进行处理的流程如图3所示。在图3中,无线网卡驱动程序接收到来自无线网卡的以太类型数据帧后,先判断无线用户的portal认证是否通过,如果通过,则不进行后续处理,如果没有通过,则判断所述以太类型数据帧是否是白名单中的数据包,如果是,则不进行后续处理,如果不是,则表示所述以太类型数据帧是http数据包,可以在http数据包的以太头中修改http数据包的源MAC为上行http数据包中的原目的MAC、源端口为上行http数据包中的原目的端口、源IP为上行http数据包中的原目的IP,并继续原有无线网卡驱动程序的发包流程,如此一来,无线用户可以接收到重定向的http数据包。[0051]本实施例,数据包重定向的方法是在无线网卡的驱动程序中实现,因此是一种在驱动层实现数据包重定向的方法,相比现有的在应用层实现数据包重定向的方法,当用户数比较多的时候,不会出现页面数据包重定向缓慢的现象,效率上比现有的在应用层实现数据包重定向的方法有一定提高。[0052]应理解,在本发明实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1