一种基于UPnP协议的NAT穿透方法及系统技术方案

技术编号:13779532 阅读:37 留言:0更新日期:2016-10-04 12:26
本发明专利技术提供一种基于UPnP协议的NAT穿透方法及系统,涉及网络通信技术领域。该方法包括:当终端启动UPnP服务时,在局域网内搜索支持UPnP协议的网关设备;监听应用程序发送的添加端口映射请求,并根据监听到的添加端口映射请求在网关设备上添加端口映射;将添加成功的端口映射信息上传至P2P云服务器,以便其他网络应用从所述P2P云服务器获取所述端口映射信息,实现与应用程序的数据通信。本发明专利技术能够通过UPnP服务自动在网关设备上添加端口映射,不需要用户手动配置,也不需要借助第三方代理辅助进行NAT穿透,并且能够优化家庭网络P2P的穿透率,提高了用户的体验感。

【技术实现步骤摘要】

本专利技术属于网络通信
,尤其涉及一种基于UPnP(Universal Plug and Play,即插即用)协议的NAT(NetworkAddressTranslation,网络地址转换)穿透方法及系统。
技术介绍
随着计算机性能的不断提高和网络技术的不断发展,客户机-服务器通信模式在国际互联网中的统治地位已被打破,P2P(peer-to-peer,点对点)通信模式被越来越多的网络应用所使用,在P2P通信模式中,主机之间可以直接通信以实现资源共享和信息交换,这为用户之间的沟通和交流提供了更大的便利。P2P也称为对等连接或对等网络,在这种网络中,所有通信节点的地位都是平等的,每个节点都扮演着客户机和服务器的双重角色,节点之间通过直接通信实现文件信息、处理器预算能力以及存储空间等资源的共享。然而,在目前的Ipv4网络环境中,由于网络地址匮乏而广泛存在的NAT设备使得处于不同内部私有网络中的主机难以进行直接通信,这在很大程度上限制了P2P的应用和发展。NAT是一种把内部网络私有IP地址转换成外部网络公共IP地址的技术,它使得一个机构内的多台主机可以共享Internet连接,以一个或者少数几个公网IP地址连接到Internet。NAT的存在给处于不同内网的主机之间进行通信带来了障碍。NAT穿透技术就是通过采用一定的技术措施而使得处于不同内网的主机间可以实现互联网技术。因此,位于不同内网的主机之间要实现P2P通信必须要在一定程度上解决NAT穿透的问题,否则系统将无法正常工作。目前,大部分家庭网络中的P2P均不能很好的实现NAT穿透,这是由于
>大部分家庭网络均采用对称型NAT设备,导致P2P必须借助第三方代理辅助进行NAT穿透或者要求用户在对称型NAT设备上为特定的服务添加端口映射,这两种实现NAT穿透的缺陷在于:P2P传输的数据在经过第三方代理转发时增加了数据包的延迟和丢包的可能性,同时也增大了系统部署的开销;在对称型NAT设备上为特定的服务添加端口映射,需要用户手动配置对称型NAT设备,要求用户懂得一定的专业知识,并且操作非常不便。因此,如何在家庭网络的对称型NAT设备中实现良好的NAT穿透已成为各P2P应用服务运行商亟需解决的问题。
技术实现思路
本专利技术实施例的目的在于提供一种基于UPnP协议的NAT穿透方法及系统,旨在解决现有技术中P2P应用无法在家庭网络的对称型NAT设备中实现良好的NAT穿透的问题。本专利技术实施例是这样实现的,一种基于UPnP协议的NAT穿透方法,包括:当终端启动UPnP服务时,在局域网内搜索支持UPnP协议的网关设备;监听应用程序发送的添加端口映射请求,并根据监听到的所述添加端口映射请求在所述网关设备上添加端口映射;将添加成功的端口映射信息上传至P2P云服务器,以便其他网络应用从所述P2P云服务器获取所述端口映射信息,实现与所述应用程序的数据通信。在本专利技术实施例所述的基于UPNP协议的NAT穿透方法中,所述监听应用程序发送的添加端口映射请求,并根据所述添加端口映射请求在所述网关设备上添加端口映射具体包括:通过Aidl接口或者Intent监听应用程序发送的添加端口映射请求,所述添加端口映射请求至少包括内部端口、内部IP地址和协议类型;判断监听到的添加端口映射请求的数据格式和数据类型是否符合预定义的数据格式和数据类型;若符合,则将所述添加端口映射请求添加至链表中并标记为待处理添加端口映射请求;读取所述链表中的待处理添加端口映射请求,并根据所述待处理添加端口映射请求在网关设备上添加端口映射。在本专利技术实施例所述的基于UPnP协议的NAT穿透方法中,读取所述链表中的待处理添加端口映射请求,并根据所述待处理添加端口映射请求在网关设备上添加端口映射具体包括:获取所述网关设备的拨号类型;判断所述网关设备的UPnP服务是否正常;若所述网关设备的UPnP服务正常,则读取所述链表中的待处理添加端口映射请求;根据所述待处理添加端口映射请求和所述网关设备的拨号类型在所述网关设备上添加端口映射;接收所述网关设备返回的添加端口映射是否成功的提示信息,根据所述提示信息执行相应的操作。在本专利技术实施例所述的基于UPnP协议的NAT穿透方法中,所述根据所述待处理添加端口映射请求和所述网关设备的拨号类型在所述网关设备上添加端口映射具体包括:根据所述待处理添加端口映射请求和所述网关设备的拨号类型获取所述网关设备上已添加的端口映射规则,并将所述已添加的端口映射规则用hash数组保存;根据所述待处理添加端口映射请求查询所述hash数组中是否存在相同的端口映射规则,所述待处理添加端口映射请求至少包括内部端口、内部IP地址和协议类型;若存在相同的端口映射规则,则获取所述端口映射规则中与所述内部端口对应的外部端口,以完成在所述网关设备上添加端口映射;若不存在相同的端口映射规则,则判断所述待处理添加端口映射请求是否指定了外部端口;若指定了外部端口,则直接向所述网关设备发送添加端口映射的请求,所述请求包括内部IP地址、内部端口、外部端口、协议类型以及生效时间,使所述网关设备根据所述请求自动添加端口映射;若未指定外部端口,则设置外部端口为所述hash数组中当前最大外部端口值加1,并向所述网关设备发送添加端口映射的请求,使所述网关设备根据所述请求自动添加端口映射。在本专利技术实施例所述的基于UPnP协议的NAT穿透方法中,所述接收所述网关设备返回的添加端口映射是否成功的提示信息,根据所述提示信息执行相应的操作具体包括:若接收到所述网关设备返回的添加端口映射成功的提示信息,则将所述链表中的待处理添加端口映射请求标记为已添加成功,并将添加成功的端口映射信息上传至P2P云服务器;若接收到所述网关设备返回的添加端口映射失败的提示信息,则将所述链表中的待处理添加端口映射请求标记为添加失败。本专利技术实施例的另一目的在于提供一种基于UPnP协议的NAT穿透系统,包括:网关设备搜索模块,用于在终端启动UPnP服务时,在局域网内搜索支持UPNP协议的网关设备;端口映射处理模块,用于监听应用程序发送的添加端口映射请求,并根据监听到的所述添加端口映射请求在所述网关设备上添加端口映射;上传模块,用于将添加成功的端口映射信息上传至P2P云服务器,以便其他网络应用从所述P2P云服务器获取所述端口映射信息,实现与所述应用程序的数据通信。在本专利技术实施例所述的基于UPnP协议的NAT穿透系统中,所述端口映射
处理模块具体包括:监听单元,用于通过Aidl接口或者Intent监听应用程序发送的添加端口映射请求,所述添加端口映射请求至少包括内部端口、内部IP地址和协议类型;判断单元,用于判断监听到的添加端口映射请求的数据格式和数据类型是否符合预定义的数据格式和数据类型;链表处理单元,用于若符合,则将所述添加端口映射请求添加至链表中并标记为待处理添加端口映射请求;端口映射处理单元,用于读取所述链表中的待处理添加端口映射请求,并根据所述待处理添加端口映射请求在网关设备上添加端口映射。在本专利技术实施例所述的基于UPnP协议的NAT穿透系统中,所述端口映射处理单元具体包括:拨号类型获取子单元,用于获取所述网关设备的拨号类型;UPnP服务判断子单元,用于判断所述网关本文档来自技高网...

【技术保护点】
一种基于UPnP协议的NAT穿透方法,其特征在于,包括:当终端启动UPnP服务时,在局域网内搜索支持UPnP协议的网关设备;监听应用程序发送的添加端口映射请求,并根据监听到的所述添加端口映射请求在所述网关设备上添加端口映射;将添加成功的端口映射信息上传至P2P云服务器,以便其他网络应用从所述P2P云服务器获取所述端口映射信息,实现与所述应用程序的数据通信。

【技术特征摘要】
1.一种基于UPnP协议的NAT穿透方法,其特征在于,包括:当终端启动UPnP服务时,在局域网内搜索支持UPnP协议的网关设备;监听应用程序发送的添加端口映射请求,并根据监听到的所述添加端口映射请求在所述网关设备上添加端口映射;将添加成功的端口映射信息上传至P2P云服务器,以便其他网络应用从所述P2P云服务器获取所述端口映射信息,实现与所述应用程序的数据通信。2.如权利要求1所述的基于UPnP协议的NAT穿透方法,其特征在于,所述监听应用程序发送的添加端口映射请求,并根据所述添加端口映射请求在所述网关设备上添加端口映射具体包括:通过Aidl接口或者Intent监听应用程序发送的添加端口映射请求,所述添加端口映射请求至少包括内部端口、内部IP地址和协议类型;判断监听到的添加端口映射请求的数据格式和数据类型是否符合预定义的数据格式和数据类型;若符合,则将所述添加端口映射请求添加至链表中并标记为待处理添加端口映射请求;读取所述链表中的待处理添加端口映射请求,并根据所述待处理添加端口映射请求在网关设备上添加端口映射。3.如权利要求2所述的基于UPNP协议的NAT穿透方法,其特征在于,所述读取所述链表中的待处理添加端口映射请求,并根据所述待处理添加端口映射请求在网关设备上添加端口映射具体包括:获取所述网关设备的拨号类型;判断所述网关设备的UPnP服务是否正常;若所述网关设备的UPnP服务正常,则读取所述链表中的待处理添加端口映射请求;根据所述待处理添加端口映射请求和所述网关设备的拨号类型在所述网关
\t设备上添加端口映射;接收所述网关设备返回的添加端口映射是否成功的提示信息,根据所述提示信息执行相应的操作。4.如权利要求3所述的基于UPnP协议的NAT穿透方法,其特征在于,所述根据所述待处理添加端口映射请求和所述网关设备的拨号类型在所述网关设备上添加端口映射具体包括:根据所述待处理添加端口映射请求和所述网关设备的拨号类型获取所述网关设备上已添加的端口映射规则,并将所述已添加的端口映射规则用hash数组保存;根据所述待处理添加端口映射请求查询所述hash数组中是否存在相同的端口映射规则,所述待处理添加端口映射请求至少包括内部端口、内部IP地址和协议类型;若存在相同的端口映射规则,则获取所述端口映射规则中与所述内部端口对应的外部端口,以完成在所述网关设备上添加端口映射;若不存在相同的端口映射规则,则判断所述待处理添加端口映射请求是否指定了外部端口;若指定了外部端口,则直接向所述网关设备发送添加端口映射的请求,所述请求包括内部IP地址、内部端口、外部端口、协议类型以及生效时间,使所述网关设备根据所述请求自动添加端口映射;若未指定外部端口,则设置外部端口为所述hash数组中当前最大外部端口值加1,并向所述网关设备发送添加端口映射的请求,使所述网关设备根据所述请求自动添加端口映射。5.如权利要求3所述的基于UPnP协议的NAT穿透方法,其特征在于,所述接收所述网关设备返回的添加端口映射是否成功的提示信息,根据所述提示信息执行相应的操作具体包括:若接收到所述网关设备返回的添加端口映射成功的提示信息,则将所述链
\t表中的待处理添加端口映射请求标记为已添加成功,并将添加成功的端口映射信息上传至P2P云服务器;若接收到所述网关设备返回的添加端口映射失败的提示信息,则将所述链表中的待处理添加端...

【专利技术属性】
技术研发人员:董阳民
申请(专利权)人:TCL集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1