一种移动终端通过手机上网的方法及系统的制作方法

文档序号:7887122阅读:212来源:国知局

专利名称::一种移动终端通过手机上网的方法及系统的制作方法
技术领域
:本发明涉及移动通信领域,尤其涉及的是一种移动终端通过手机上网的方法及系统。
背景技术
:现在手机上网已经成为了大众生活的一部分,人们可以通过手机浏览新闻,在线收听音乐或者观看视频等等,然而对于一些没有开通网络服务的手机来说,因为网络流量的影响而不能上网,而一部手机亦不能通过其他手机联网操作,并且现行的电脑通过手机上网都是通过PC拨号的形式,此时需要再PC上安装相应的拨号软件,PC拨号的时候手机将无法进行网络连接。因此,现有技术还有待于改进和发展。
发明内容本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种移动终端通过手机上网的方法,使带有WIFI功能的移动终端实现NAT功能,通过一部联网手机实现同时上网。本发明解决技术问题所采用的技术方案如下一种移动终端通过手机上网的方法,其中,包括步骤A、在联网手机预先建立一个用于标记网络地址映射关系的连接管理哈希表,所述连接管理哈希表中的哈希值等于移动终端的源地址、协议类型、源端口和目的端口的二进制之和取模表长;B、移动终端通过WIFI与一联网手机建立点对点的通信连接,并向所述联网手机发送连接目的服务器的数据包;C、所述联网手机在网络层提取移动终端发送的数据包中的元素组,并将所述元素组保存在一元组结构中,所述元素组包括数据包的源地址、源端口、协议类型、目的地址及目的端□;D、所述联网手机对所述元素组进行源地址NAT处理,将数据包的源地址转换为手机拨号上网的IP地址,并分配一拨号上网的端口;E、所述联网手机根据处理后的元素组信息,连接到目的服务器进行通信。所述的方法,其中,所述步骤C和D之间还包括所述联网手机根据所述元素组查找连接管理哈希表,判断所述连接管理哈希表中是否存在所述移动终端和目的服务器的连接结构,如果在所述连接管理哈希表中不存在此连接结构,则定义所述数据包为第一数据包,并在哈希表中建立一个新的连接结构。所述的方法,其中,所述联网手机根据所述元素组查找连接管理哈希表,判断所述连接管理哈希表中是否存在所述移动终端和目的服务器的连接结构时,如果在所述连接管理哈希表中存在该连接结构,则提取所述连接结构表示的连接管理信息,并监测当前网络是否要进行FTP扩展的监测,更新当前的连接管理状态,并对数据包进行NAT处理,实现移动终端和目的服务器的通信。所述的方法,其中,所述步骤D还进一步包括如下步骤将经过源地址NAT处理后的元素组以元组结构的形式保存在所述连接管理哈希表中。所述的方法,其中,若所述元素组中的协议为FTP协议,则根据所述新的连接结构判断所述数据包是否是其他FTP控制链的数据连接,如果是则对数据包中的元素组进行目的地址NAT处理。所述的方法,其中,所述目的服务器在向移动终端发送返回数据包时,首先将返回数据包发送给所述联网手机,所述联网手机对所述返回数据包中的元素组进行提取,并查找连接管理哈希表找到相应的元组结构,根据所述元组结构修改返回数据包,并将修改后的返回数据包发送给移动终端。一种移动终端通过手机上网的系统,其中,包括移动终端、及联网手机,移动终端通过WIFI与一联网手机建立点对点的通信连接,并向所述联网手机发送连接目的服务器的数据包;所述联网手机用于在网络层提取移动终端发送的数据包中的元素组,并将所述元素组保存在一元组结构中;所述元素组包括数据包的源地址、源端口、协议类型、目的地址及目的端口;并对所述元素组进行源地址NAT处理,将数据包的源地址转换为手机拨号上网的IP地址,并分配一拨号上网的端口;以及根据处理后的元素组信息,连接到目的服务器进行通信;所述目的服务器用于与所述移动终端和所述联网手机进行通信;所述联网手机包括哈希表建立管理模块,用于预先建立一个用于标记网络地址映射关系的连接管理哈希表,所述连接管理哈希表中的哈希值等于移动终端的源地址、协议类型、源端口和目的端口的二进制之和取模表长。所述移动终端通过手机上网的系统,其中,所述联网手机还用于根据所述元素组查找连接管理哈希表,判断所述连接管理哈希表中是否存在所述移动终端和目的服务器的连接结构,如果在所述连接管理哈希表中不存在此连接结构,则定义所述数据包为第一数据包,并在哈希表中建立一个新的连接结构。所述移动终端通过手机上网的系统,其中,所述联网手机还用于如果在所述连接管理哈希表中存在所述连接结构,则提取所述连接结构表示的连接管理信息,并监测当前网络是否要进行FTP扩展的监测,更新当前的连接管理状态,并对数据包进行NAT处理,实现移动终端和目的服务器的通信。本发明所提供的移动终端通过手机上网的方法及系统,由于采用NAT技术,达到了通过一手机作为网关,另一台带有WIFI的手机或者电脑通过网关手机上网的功能,又由于两台设备使用同一个IP地址进行上网,所有网络流量都产生于网关手机,不会对其他设备带来任何流浪费用,而且本发明通过动态创建的形式对数据包构造哈希表,大大加快了数据包的查找速度,加快了处理速度。图1是本发明的移动终端通过手机上网的方法流程图。图2是本发明以FTP连接为例的网络结构示意图。图3是本发明的移动终端通过手机上网方法中哈希表的构造示意图。图4是本发明的移动终端通过手机上网的系统结构示意图。具体实施例方式为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明的主要思想是将移动终端通过WIFI无线连接方式与上网手机连接,上网手机作为网关路由使用,利用TCP/IP协议工作原理,在数据包到达上网手机的网络层时,对数据包中的包括源地址、源端口、协议、目的地址及目的端口的元素信息进行处理,动态创建一个哈希表用于网络连接的查找,并对数据包进行NAT处理,使移动终端通过上网手机的外网IP地址实现与上网手机同时上网的功能。NAT(NetworkAddressTranslation)网络地址转换是把IP数据报文的一个地址转换为另外一个地址,让多个IP地址共享一个IP地址进行连接。本发明提供了一种移动终端通过手机上网的方法,如图1所示,包括步骤步骤S100、在联网手机预先建立一个用于标记网络地址映射关系的连接管理哈希表,所述连接管理哈希表中的哈希值等于移动终端的源地址、协议类型、源端口和目的端口的二进制之和对表长取模,在本实施例中是对移动终端的源地址、协议类型、源端口和目的端口的二进制先求和,再根据哈希表的表长进行取模操作,哈希值即等于取模后的值步骤S200、移动终端通过WIFI与一联网手机建立点对点的通信连接,并向所述联网手机发送连接目的服务器的数据包。步骤S300、所述联网手机在网络层提取移动终端发送的数据包中的元素组,并将所述元素组保存在一元组结构中;所述元素组包括数据包的源地址、源端口、协议类型、目的地址及目的端口。步骤S400、所述联网手机对所述元素组进行源地址NAT处理,将数据包的源地址转换为手机拨号上网的IP地址,并分配一拨号上网的端口。其中,将经过源地址NAT处理后的元素组以元组结构的形式保存在所述连接管理哈希表中。步骤S500、所述联网手机根据处理后的元素组信息,连接到目的服务器进行通信。其中,在步骤S300和步骤S400之间还包括,所述联网手机根据所述元素组查找连接管理哈希表,判断所述连接管理哈希表中是否存在所述移动终端和目的服务器的连接结构,如果在所述连接管理哈希表中不存在此连接结构,则定义所述数据包为第一数据包,并在哈希表中建立一个新的连接结构;而如果在所述连接管理哈希表中存在所述连接结构,则提取所述连接结构表示的连接管理信息,并监测当前网络是否要进行FTP扩展的监测,更新当前的连接管理状态,并对数据包进行NAT处理,实现移动终端和目的服务器的通信。进一步地,若所述元素组中的协议为FTP协议,则根据所述新的连接结构判断所述数据包是否是其他FTP控制链的数据连接,如果是则对数据包中的元素组进行目的地址6NAT处理。在所述移动终端与目的服务器建立通信连接后,所述目的服务器在向移动终端发送返回数据包时,首先将返回数据包发送给所述联网手机,所述联网手机对所述返回数据包中的元素组进行提取,并查找连接管理哈希表找到相应的元组结构,根据所述元组结构修改返回数据包,并将修改后的返回数据包发送给移动终端。结合上述本发明的方法,下面以FTP连接为例,对整个联网实现过程进行具体的分析,如图2所示的联网构造示意图。首先,定义上网手机A拨号上网的IP地址为117.136.12.201,WIFI网卡的IP地址为192.168.0.1,FTP服务器的地址为202.96.1.5,如果另一将上网手机A作为网关的IP地址为192.168.0.2的手机B需要访问IP地址为202.96.1.5的服务器,定义源端口为2345,目的端口为21,那么,当此数据包通过手机点对点网络连接从手机B发向手机A,当到达手机A的网络层时,手机A提取当前数据包的元素组,组成一个新的tuple元组结构,那么这个tuple元组结构的IP组成为tuple,strcip=192.168.0.2tuple.strport_id=2345tuple,dstip=202.96.1.5tuple,dstport=21tuple,proto=tcp。在此处通过此元素组的内容去查找连接管理哈希表中当前存在的连接管理,根据上述IP组成,无法找到相应的连接,那么首先为该数据包分配一个未经使用的连接管理表的索引,并查找这个连接是否是其他连接的扩展链。因为无法找到扩展链的信息,所以不需要进行目的地址NAT(DNAT)处理,而由于该数据包是从WIFI口发送来的,对数据包做源地址NAT(SNAT)处理,将源地址192.168.0.2转换为手机A的拨号上网地址117.136.12.201,并为该数据包分配一个传输端口7890,那么此包发送到网络应该是117.136.12.201:7890-—202.96.1.5:21,此时,回应方向的tuple元组结构应该是reply_tuple.strip=202.96.1.5reply_tuple.strport_id=21reply_tuple.dstip=117.136.12.201reply_tuple.dstport=7890.Reply_tuple.proto=tcp。之后,将2个tuple元组结构存入到连接管理哈希表中,并修改此数据包内容,把数据包改为117.136.12.201:7890——-202.96.1.5:21。定义第二个数据包(202.96.1.5:21-—117.136.12.201:7890syn+ack)也即是FTP服务器向手机B发送数据包,FTP服务器首先将该数据包发送给上网手机A,上网手机A在收到此数据包后提取其中的元素组,组成一个新的tuple元组结构,表示为tuple,strcip=202.96.1.5tuple.strport_id=21tuple,dstip=117.136.12.201tuple,dstport=7890tuple,proto=tcp。上网手机A根据该tuple元组结构查找连接管理哈希表,可以找到与之相对应的tuple元组结构,再检测里面是否含有连接内容,而在该元组结构中没有连接内容,则根据根据前面的NAT信息修改此数据包为202.96.1.5:21—192.168.0.22345,并将该数据包发送给手机B,然后更新该连接的内容。进一步地,如果用户要从FTP服务器下载文件,FTP服务器会给用户发送一段内容,比如说227EnteringPassiveMode(202,96,4,1,5,89)。则在流程中处理如下上述第二个数据包(202.96.1.5:21-—117.136.12.201:7890syn+ack)由FTP服务器发送给上网手机A,上网手机A收到该数据包后提取其中的元素组,并构造一tuple元组结构,表示如下tuple,strcip=202.96.1.5tuple.strport_id=21tuple,dstip=117.136.12.201tuple,dstport=7890tuple,proto=tcp上网手机A根据该tuple元组结构查找连接管理哈希表,能够找到相应的tuple元组结构,并检测到当前数据包是应答方向的数据包,并且当前连接是FTP有扩展链的连接,那么匹配字符串227和PROT字段,提取出新的连接的IP地址和端口,此处提取出来的元组结构为New_tuple.dstip=202.96.1.5New_tuple.port=5*256+89=1369New_tuple.srcip=192.168.0.2New_tuple.proto=tcp。从扩展链结构表中提取一个空闲的连接分配给此条连接,并把2条连接关联起来。进一步地,又一数据包从手机B发送给FTP服务器,表示为192.168.0.2:8989——^202.96.1.5:1369,则上网手机A收到该数据包后提取其中的元素组,并构造一tuple元组结构,表示如下tuple,strcip=192.168.0.2tuple.strport_id=8989tuple,dstip=202.96.1.5tuple,dstport=1369tuple,proto=tcp。在此处通过此元素组的内容去查找连接管理哈希表中当前存在的连接管理,由于无法找到相应的连接,则为此分配一个未经使用的连接管理表的index索引,并检查此连接是否是其他连接的扩展链,这里根据此元素组查找扩展链时,因为前面已经把信息加入到扩展连接管理哈希表中,所以能够找到此连接是其他连接的扩展链,然后把这条连接跟前面的由FTP服务器向手机B传输下载数据包时建立的连接绑定,由于此连接为扩展链条,读取主链表的NAT信息,如果连接是PORT类型,则得到DNAT的信息,因为该连接是227类型,所以根据主链表的信息不需要做DNAT处理,此时检测到此数据包是从WIFI口发上来的,则进行SNAT处理,并再次读取主链表的信息,得到主链表的NAT信息,并替换此连接的信息,并根据端口是否使用调整一个新的端口,而后续处理与第一数据包的处理相同。进一步地,下面对本发明中的连接管理哈希表的建立及连接管理过程做具体的分析。头部哈希表(hash表)构造typedef—packedunionhash_table{Struct{U32mutex:10;U32next:22;};U32value;}u_hash_table;哈希表的大小为MAX_CONNTRACK,Hash值=(发起方的源IP+发起方的源IP协议+源端口+目的端口)%表的条目数(即表长),协议是ICMP协议时,目的端口采用协议类型和代码来取值。该连接管理信息的hash表为空列,结果为u_ip_COrmtraCk_tuple,称之为节点链表,其大小为MAX_C0NNTRAC*2。如3图所示的哈希表构造图,头节点为一个hash表,存放u_ip_COrmtraCk_tuple的为一个大数组结构,大小为hash表的2倍。当有数据包来的时候,首先分配一个空的u_ip_COrmtraCk_tuple空间,然后把头hash表的响应值的next指向u_ip_c0rmtrack_tuple数组的当前位置。并把回应方向的u_ip_conntrack_tuple放置在原始方向的位置加上MAX_C0NNTRACK后的位置,把回应方向的HASH头节点的next指针指向此节点;当有回应方向的数据过来时候,根据头hash的next就能找到这个回应节点并且通过回应节点减去MAX_C0NNTRACK就能找到原始节点,得到需要转换的NAT信息。通过头hash的next就能得到next=节点的hash值,那么这个数据包就是原始方向的数据包,如果头hash的next的存放位置的hash值跟next不相同,那么这个数据包就是回应方向的数据包。本发明采用哈希表的方式,动态添加节点,可以大大减少冲突链的查找,有别于传统的双向链表实现的一个一个查找的实现,极大地提高了处理速度。基于上述本发明提供的移动终端通过手机上网的方法,本发明还提供了一种移动终端通过手机上网的系统,其系统结构示意图如图4所示,包括移动终端41、及联网手机42和目的服务器43;移动终端41通过WIFI与联网手机42建立点对点的通信连接,并向所述联网手机42发送连接目的服务器43的数据包;所述联网手机42用于在网络层提取移动终端41发送的数据包中的元素组,并将所述元素组保存在一元组结构中;所述元素组包括数据包的源地址、源端口、协议类型、目的地址及目的端口;并对所述元素组进行源地址NAT处理,将数据包的源地址转换为手机拨号上网的IP地址,并分配一拨号上网的端口;以及根据处理后的元素组信息,连接到目的服务器43进行通信。所述联网手机42还包括哈希表建立管理模块421,用于预先建立一个用于标记网络地址映射关系的连接管理哈希表,所述连接管理哈希表中的哈希值等于移动终端的源地址、协议类型、源端口和目的端口的二进制之和。所述目的服务器43用于与所述移动终端41和所述联网手机42进行通信。其中,所述联网手机42还用于根据所述元素组查找连接管理哈希表,判断所述连接管理哈希表中是否存在所述移动终端和目的服务器的连接结构,如果在所述连接管理哈希表中不存在此连接结构,则定义所述数据包为第一数据包,并在哈希表中建立一个新的连接结构。所述联网手机42还用于如果在所述连接管理哈希表中存在所述连接结构,则提取所述连接结构表示的连接管理信息,并监测当前网络是否要进行FTP扩展的监测,更新当前的连接管理状态,并对数据包进行NAT处理,实现移动终端41和目的服务器43的通fn°本发明所提供的移动终端通过手机上网的方法及系统,将移动终端通过WIFI无线连接方式与上网手机连接,上网手机作为网关路由使用,利用TCP/IP协议工作原理,在数据包到达上网手机的网络层时,对数据包中的包括源地址、源端口、协议、目的地址及目的端口的元素信息进行处理,动态创建一个哈希表用于网络连接的查找,并对数据包进行NAT处理,使移动终端通过上网手机的外网IP地址实现与上网手机同时上网的功能,由于两台设备使用同一个IP地址进行上网,所有网络流量都产生于网关手机,不会对其他设备带来任何流浪费用,而且本发明通过动态创建的形式对数据包构造哈希表,大大加快了数据包的查找速度,加快了处理速度。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。权利要求1.一种移动终端通过手机上网的方法,其特征在于,包括步骤A、在联网手机预先建立一个用于标记网络地址映射关系的连接管理哈希表,所述连接管理哈希表中的哈希值等于移动终端的源地址、协议类型、源端口和目的端口的二进制之和取模表长;B、移动终端通过WIFI与一联网手机建立点对点的通信连接,并向所述联网手机发送连接目的服务器的数据包;C、所述联网手机在网络层提取移动终端发送的数据包中的元素组,并将所述元素组保存在一元组结构中,所述元素组包括数据包的源地址、源端口、协议类型、目的地址及目的端□;D、所述联网手机对所述元素组进行源地址NAT处理,将数据包的源地址转换为手机拨号上网的IP地址,并分配一拨号上网的端口;E、所述联网手机根据处理后的元素组信息,连接到目的服务器进行通信。2.根据权利要求1所述的方法,其特征在于,所述步骤C和D之间还包括所述联网手机根据所述元素组查找连接管理哈希表,判断所述连接管理哈希表中是否存在所述移动终端和目的服务器的连接结构,如果在所述连接管理哈希表中不存在此连接结构,则定义所述数据包为第一数据包,并在哈希表中建立一个新的连接结构。3.根据权利要求2所述的方法,其特征在于,所述联网手机根据所述元素组查找连接管理哈希表,判断所述连接管理哈希表中是否存在所述移动终端和目的服务器的连接结构时,如果在所述连接管理哈希表中存在该连接结构,则提取所述连接结构表示的连接管理信息,并监测当前网络是否要进行FTP扩展的监测,更新当前的连接管理状态,并对数据包进行NAT处理,实现移动终端和目的服务器的通信。4.根据权利要求1所述的方法,其特征在于,所述步骤D还进一步包括如下步骤将经过源地址NAT处理后的元素组以元组结构的形式保存在所述连接管理哈希表中。5.根据权利要求3所述的方法,其特征在于,若所述元素组中的协议为FTP协议,则根据所述新的连接结构判断所述数据包是否是其他FTP控制链的数据连接,如果是则对数据包中的元素组进行目的地址NAT处理。6.根据权利要求1所述的方法,其特征在于,所述目的服务器在向移动终端发送返回数据包时,首先将返回数据包发送给所述联网手机,所述联网手机对所述返回数据包中的元素组进行提取,并查找连接管理哈希表找到相应的元组结构,根据所述元组结构修改返回数据包,并将修改后的返回数据包发送给移动终端。7.一种移动终端通过手机上网的系统,其特征在于,包括移动终端、及联网手机,移动终端通过WIFI与一联网手机建立点对点的通信连接,并向所述联网手机发送连接目的服务器的数据包;所述联网手机用于在网络层提取移动终端发送的数据包中的元素组,并将所述元素组保存在一元组结构中;所述元素组包括数据包的源地址、源端口、协议类型、目的地址及目的端口;并对所述元素组进行源地址NAT处理,将数据包的源地址转换为手机拨号上网的IP地址,并分配一拨号上网的端口;以及根据处理后的元素组信息,连接到目的服务器进行通信;所述目的服务器用于与所述移动终端和所述联网手机进行通信;所述联网手机包括哈希表建立管理模块,用于预先建立一个用于标记网络地址映射关系的连接管理哈希表,所述连接管理哈希表中的哈希值等于移动终端的源地址、协议类型、源端口和目的端口的二进制之和取模表长。8.根据权利要求7所述移动终端通过手机上网的系统,其特征在于,所述联网手机还用于根据所述元素组查找连接管理哈希表,判断所述连接管理哈希表中是否存在所述移动终端和目的服务器的连接结构,如果在所述连接管理哈希表中不存在此连接结构,则定义所述数据包为第一数据包,并在哈希表中建立一个新的连接结构。9.根据权利要求8所述移动终端通过手机上网的系统,其特征在于,所述联网手机还用于如果在所述连接管理哈希表中存在所述连接结构,则提取所述连接结构表示的连接管理信息,并监测当前网络是否要进行FTP扩展的监测,更新当前的连接管理状态,并对数据包进行NAT处理,实现移动终端和目的服务器的通信。全文摘要本发明公开了一种移动终端通过手机上网的方法,将移动终端通过WIFI无线连接方式与上网手机连接,上网手机作为网关路由使用,利用TCP/IP协议工作原理,在数据包到达上网手机的网络层时,对数据包中的包括源地址、源端口、协议、目的地址及目的端口的元素信息进行处理,动态创建一个哈希表用于网络连接的查找,并对数据包进行NAT处理,使移动终端通过上网手机的外网IP地址实现与上网手机同时上网的功能,由于两台设备使用同一个IP地址进行上网,所有网络流量都产生于网关手机,不会对其他设备带来任何流浪费用,而且本发明通过动态创建的形式对数据包构造哈希表,大大加快了数据包的查找速度,加快了处理速度。文档编号H04L29/12GK102438331SQ20121000879公开日2012年5月2日申请日期2012年1月12日优先权日2012年1月12日发明者周丹申请人:惠州Tcl移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1