一种基于TCP/IP协议改造的Wi-Fi信号扩展系统及方法
技术领域
本发明涉及到wireless信号扩展技术领域,具体涉及一种基于TCP/IP协议改造的wifi信号扩展系统及方法,其采用修改TCP/IP协议栈方法来达到改变网络数据报文流向的目的,使无线wifi信号更大范围的覆盖。
背景技术
随着网络信息技术的发展,人们的生活、学习、教育、娱乐等诸多活动越来越丰富、越来越便利,而wifi信号又使得人们可以使用移动终端,使得这些活动越加的便利,但受限于wifi信号信号覆盖范围小,穿墙能力差,以及现实生活中空间障碍物多的局限性,如家里比较大或者拐角比较多,有很多地方就会成为无线信号的“盲区”,导致wifi信号覆盖范围小,信号差,严重影响用户的使用体验性。在这种情况下提出wifi repeater方案,以实现wifi信号更大范围的覆盖,使用户的移动空间更加广泛。这种布网方案实现方式是在无线AP信号范围的边界部署一个repeater,使用repeater对无线wifi信号进行扩展,从而能够更大范围的进行无线信号的覆盖。
但是目前市面上repeater解决方案中需要在AP和Repeater上安装一个代理进程实现一个类似IP隧道的方法,但是这样就需要wlan ap和wlan repeater配套使用,wlanrepeater的兼容性不强,无法与其它厂家的wlan ap配套使用。
发明内容
针对背景技术存在的问题,本发明提供一种基于TCP/IP协议改造的wifi信号扩展系统及方法,通过在Repeater上对IP数据报文传输路径的改变来达到无线信号扩展的目的,而不需要在WLAN AP上进行任何功能扩展。此方案可以和市面常用的WLAN AP配套使用,兼容性强。
本发明提供wifi中继实现方法的一种新的思路。首先,将Repeater放置在WLAN AP信号范围的边界,使Repeater通过station模式连接上WLAN AP,Repeater成功连接上AP后会创建一个新的wifi信号源发送出一个和WLAN AP SSID一致,加密方式一致,密钥一致的信号出来,这样WLAN AP信号所覆盖不到的区域的wifi终端表现上可以获取WLAN AP发送出来的信号,其实,这个信号这是wifi repeater发送出来的信号。本发明的特征在于只在Repeater上进行功能扩展就能够实现wifi repeater功能,通过在Repeater上修改发送报文和接受发送的传输路径来实现wifi repeater功能。
本发明采用如下技术方案实现:
一种基于TCP/IP协议改造的wifi信号扩展系统,系统架构包括有三层,分别为网络接口层、网络协议层、应用层;所述网络接口层包括sta网络接口—Sta iface和AP网络接口—AP iface;所述网络协议层包括TCP/IP协议栈;所述应用层包括APP_Repeater;网络接口层与网络协议层双向连接,网络协议层与应用层双向连接,AP与Sta iface双向连接,PC与AP iface双向连接;
所述网络接口层,Sta iface用来连接Ap,构建物理通信通道;
所述网络协议层,在此层修改IP数据包传输方向;
所述应用层,实现的功能包括:
1)创建socket句柄,
2)接受网络协议栈上传上来的报文,
3)修改IP数据报文的源地址并建立wifi终端与目的地址的映射链表,
4)发送IP报文。
一种基于TCP/IP协议改造的wifi信号扩展方法:将repeater放置到AP信号边界区域,将wifi终端放置在AP信号覆盖区域外、repeater信号覆盖区域内。在repeater上扫描WLAN AP发送出来的信号,选择信号源,选择认证模式,输入密钥,使repeater成功连接AP;随后repeater会发送一个和WLAN AP SSID一样,认证模式一样,密钥一样的信号出来;远端的wifi终端连接上repeater发送出来的信号。
本发明通过在repeater上修改TCP/IP协议栈来改变IP报文的传送路径,当repeater协议栈接收到wifi终端要发送到外网的IP报文后,改变此IP报文的路径,在IP将此报文上传至上层应用APP_Repeater,APP_Repeater将此报文进行重新封装将此报文的源IP地址(wifi终端的IP地址)修改成STA iface网络接口的IP地址,目标地址不变动,同时将目标地址和wifi终端的IP地址做一个映射链 表STA_DST LIST保存到缓存中并做100ms超时删除处理动作;当外网数据返回时,repeater TCP/IP协议栈接受到返回的IP报文,改变此IP报文的路径,在IP协议栈将此IP报文上传至上层应用APP_Repeater,APP_Repeater截获IP报文并获取IP报文的源地址,然后在链表STA_DST LIST中查找此地址对应的wifi终端IP地址,最后APP_Repeater将此IP报文的目标IP地址修改成查询到wifi终端地址并通过APiface网络接口发送给wifi终端。
所述wifi终端发送报文给外网的具体步骤如下:
步骤1:启动进程APP_Repeater,创建2个socket句柄socket_s和socket_a,2个socket句柄分别对应repeater的sta网络接口和AP网络接口;
步骤2:新建一个缓存链表STA_DST LIST,用来存放wifi终端IP地址和要访问外网地址的映射表,超时时间为100ms,超过这个时间STA_DST LIST就将这条记录删除;
步骤3:Repeater网络协议栈截获wifi终端发送到外网的IP报文;
步骤4:修改网络协议栈截获到IP数据报文路径,路径目的点为进程APP_Repeater;
步骤5:进程APP_Repeater接收到IP报文;
步骤6:将IP报文源地址和目标地址形成一个1对映射保存到链表STA_DST LIST;
步骤7:将IP报文修改源地址为repeater sta网络接口的IP地址,使用socket_a发送报文;
步骤8:返回步骤3,截获新IP数据报文。
所述WLAN AP返还外网报文给wifi终端的具体步骤如下:
步骤1:启动进程APP_Repeater,创建2个socket句柄socket_s和socket_a,2个socket句柄分别对应repeater的sta网络接口和AP网络接口;
步骤2:新建一个缓存链表STA_DST LIST,用来存放wifi终端IP地址和要访问外网地址的映射表,超时时间为100ms,超过这个时间STA_DST LIST就将这条记录删除;
步骤3:网络协议栈截获WLAN AP返还给Repeater的IP数据报文;
步骤4:修改网络协议栈截获到IP数据报文路径,路径目的点为进程 APP_Repeater;
步骤5:进程APP_Repeater接收到IP报文;
步骤6:进程APP_Repeater在STA_DST LIST中查询接受到的IP报文源地址;
步骤7:源IP地址是否在STA_DST LIST中;
步骤8:如果不存在,丢弃报文,转步骤11;
步骤9:如果存在,转步骤10;
步骤10:进程APP_Repeater将IP报文的目的地址改成查询到的IP地址的映射地址,使用scoket_s发送,转步骤11;
步骤11:返回步骤3,截获新IP数据报文。
本发明解决了现有技术repeater设备兼容性不强,需要wlan ap和wlan repeater配套使用,wlan repeater的兼容性不强,无法与其它厂家的wlan ap配套使用,适用性差的问题。本发明所采用技术不需要在WLAN AP上进行任何功能扩展。此方案可以和市面常用的WLAN AP配套使用,兼容性强。
附图说明
图1为本发明的网络部署图;
图2为本发明的系统结构示意图;
图3为wifi终端发送报文给外网流程图;
图4为WLAN AP返还外网报文给wifi终端流程图。
Wifi:WIreless-Fidelity,无线保真、无线宽带;
Repeater:中继;
WLAN:无线局域网;
Sta:station,无线客户端,wifi终端;
AP:Wireless AccessPoint,无线访问接入点;
STA_DST LIST:用来存放wifi终端IP地址和要访问外网地址的映射表。
具体实施方式
参见图1,本发明在日常使用中最为常见的网络部署图,将repeater放置到 AP信号边界区域,将wifi终端放置在AP信号覆盖区域外、repeater信号覆盖区域内。在repeater上扫描WLAN AP发送出来的信号,选择信号源,选择认证模式,输入密钥,使repeater成功连接AP;随后repeater会发送一个和WLAN AP SSID一样,认证模式一样,密钥一样的信号出来;远端的wifi终端连接上repeater发送出来的信号。
参见图2,本发明的系统结构示意图,从图中可以发现本发明系统架构有三层,网络接口层:sta网络接口和AP网络接口;网络协议层:TCP/IP协议栈;应用层:APP_Repeater;
网络接口层
Sta iface用来连接WLAN Ap,构建物理通信通道;
网络协议层
TCP/IP协议栈,在此层修改IP数据包传输方向;
应用层
1)创建socket句柄;
2)接受网络协议栈上传上来的报文;
3)修改IP数据报文的源地址并建立wifi终端与目的地址的映射链表;
4)发送IP报文。
wifi终端发送报文给外网流程参见图3:
步骤1:启动进程APP_Repeater,创建2个socket句柄socket_s和socket_a,2个socket句柄分别对应repeater的sta网络接口和AP网络接口;
步骤2:新建一个缓存链表STA_DST LIST,用来存放wifi终端IP地址和要访问外网地址的映射表,超时时间为100ms,超过这个时间STA_DST LIST就将这条记录删除;
注:步骤1和步骤2只是在系统初始化的时候执行,后面不用再重复的执行;
步骤3:Repeater网络协议栈截获wifi终端发送到外网的IP报文;
步骤4:修改网络协议栈截获到IP数据报文路径,路径目的点为进程APP_Repeater;
步骤5:进程APP_Repeater接收到IP报文;
步骤6:将IP报文源地址和目标地址形成一个1对映射保存到链表STA_DST LIST;
步骤7:将IP报文修改源地址为repeater sta网络接口的IP地址,使用socket_a发送报文;
步骤8:返回步骤3,截获新IP数据报文。
WLAN AP返还外网报文给wifi终端流程参见图4:
步骤1:启动进程APP_Repeater,创建2个socket句柄socket_s和socket_a,2个socket句柄分别对应repeater的sta网络接口和AP网络接口;
步骤2:新建一个缓存链表STA_DST LIST,用来存放wifi终端IP地址和要访问外网地址的映射表,超时时间为100ms,超过这个时间STA_DST LIST就将这条记录删除;
注:步骤1和步骤2只是在系统初始化的时候执行,后面不用再重复的执行;
步骤3:网络协议栈截获WLAN AP返还给Repeater的IP数据报文;
步骤4:修改网络协议栈截获到IP数据报文路径,路径目的点为进程APP_Repeater;
步骤5:进程APP_Repeater接收到IP报文;
步骤6:进程APP_Repeater在STA_DST LIST中查询接受到的IP报文源地址;
步骤7:源IP地址是否在STA_DST LIST中;
步骤8:如果不存在,丢弃报文;
步骤9:如果存在,转步骤10;
步骤10:进程APP_Repeater将IP报文的目的地址改成查询到的IP地址的映射地址,使用scoket_s发送,转步骤11;
步骤11:返回步骤3,截获新IP数据报文。
以上对本发明实施例所提供的基于通过TCP/IP协议改造实现wifi信号扩展方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施例方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。