一种通过穿透nat实现p2p通信的方法、设备、服务器及系统的制作方法_3

文档序号:9846910阅读:来源:国知局
在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
[0126]其次,本发明利用示意图进行详细描述,在详述本发明实施例时,为便于说明,所述示意图只是实例,其在此不应限制本发明保护的范围。
[0127]为了解决【背景技术】中的技术问题穿透所有类型NAT及多级串联NAT设备,且不对设备和网络环境提出额外要求,同时解决低成本推广应用问题。本发明提供了一种通过穿透NAT实现P2P通信的方法、设备、服务器及系统。
[0128]下面结合附图和具体实施例对本发明的技术方案做进一步说明。
[0129]图2是本发明通过穿透NAT实现P2P通信的方法的一种实施例的流程示意图,适于无线接入设备侧,具体步骤如下:
[0130]步骤S201,无线接入设备检测NAT心跳周期;
[0131]具体地,所述无线接入设备检测NAT心跳周期,具体包括:
[0132]所述无线接入设备向所述服务器发送请求报文;
[0133]如果在财少内没有收到所述服务器的回应,则以N/2秒继续嗅探,连续嗅探预设次数,仍没有收到所述服务器的回应,则认为网络不可达;
[0134]如果延迟财少收到所述服务器的回应,则所述财少为心跳周期。
[0135]其中,这里,无线接入设备位于内网。
[0136]步骤S202,并按照所述NAT心跳周期向服务器上报TCP应用层信息,以便所述服务器根据所述TCP应用层信息更新关联终端的关联转发表;
[0137]具体地,所述关联终端包括主设备及至少一个关联设备,所述关联终端的关联转发表格式为:
[0138]{编号;
[0139]主设备标识,公网地址,网络类型,心跳周期;
[0140]第一关联设备标识,公网地址,网络类型,心跳周期;
[0141]……}0
[0142]其中,编号由服务器设定,另主设备标识及第一设备标识……为无线接入设备按心跳周期上报的报文中的物理地址;
[0143]其中,网络类型包括私网和公网,具体服务器将数据包源地址和TCP应用层信息中的网络地址进行比较,当相同时网络类型为公网,不同时网络类型为私网。
[0144]步骤S203,接收所述服务器的响应报文,所述响应报文携带所述关联终端的公网地址;
[0145]具体地,所述响应报文还携带网络类型。
[0146]步骤S204,向所述关联终端的公网地址发送请求报文;
[0147]具体地,所述关联终端包括:主设备标识及第一设备标识……。
[0148]步骤S205,并在检测没有收到回应时,通过中继模式或请求所述服务器通知所述关联终端按照所述心跳周期向自身发起心跳嗅探包穿透NAT,实现与所述关联终端进行P2P通信。
[0149]具体地,当检测没有收到回应时,则确认为网络拥塞或NAT是受限型或对称型;其中,中继模式是通过中继使无线接入设备与关联终端接通,即绕开NAT,使无线接入设备可以与关联设备直接进行P2P通信;其中,关联终端按心跳周期向无线接入终端发起心跳嗅探包,即通过心跳连续的方式打通NAT,使关联终端与无线接入设备进行P2P通信;
[0150]其中,无线接入设备在开始启动时,会向服务器请求关联终端的地址信息;并发起嗅探通信,记录连接时是否启用中继模式。
[0151]图3是本发明通过穿透NAT实现P2P通信的方法的另一种实施例的流程示意图,具体步骤如下:
[0152]步骤S301,无线接入设备检测NAT心跳周期;
[0153]具体地,如步骤S201所示。
[0154]步骤S302,并按照所述NAT心跳周期向服务器上报TCP应用层信息,以便所述服务器根据所述TCP应用层信息更新关联终端的关联转发表;
[0155]具体地,如步骤S202所示。
[0156]步骤S303,接收所述服务器的响应报文,所述响应报文携带所述关联终端的公网地址;
[0157]具体地,如步骤S203所示。
[0158]步骤S304,向所述关联终端的公网地址发送请求报文;
[0159]具体地,如步骤S204所示。
[0160]步骤S305,并在检测没有收到回应时,通过中继模式或请求所述服务器通知所述关联终端按照所述心跳周期向自身发起心跳嗅探包穿透NAT,实现与所述关联终端进行P2P通信;
[0161]具体地,如步骤S205所示。
[0162]步骤S306,在检测收到回应时,则直接与所述关联终端进行P2P通信。
[0163]具体地,当检测收到回应时,NAT是开放的或关联终端位于开放网络上,则无线接入设备与关联终端是可以直接进行通信。
[0164]图4是本发明通过穿透NAT实现P2P通信的方法中向所述关联终端的公网地址发送请求报文之前的进一步处理方法的流程示意图,具体步骤如下:
[0165]步骤S401,所述响应报文还携带所述关联终端的网络类型;
[0166]步骤S402,根据所述关联终端的网络类型确认所述关联终端在私网;
[0167]具体地,网络类型包括私网和公网。
[0168]步骤S403,根据所述关联终端的公网地址确认更新了所述关联终端的公网地址。
[0169]具体地,无线接入设备将收到的关联终端的公网地址与之前自身存储的关联终端的公网地址进行比较发现不同时,则认为关联终端的公网地址更新了。
[0170]图5是本发明通过穿透NAT实现P2P通信的方法的另一种实施例的流程示意图,适于服务器侧,具体步骤如下:
[0171 ]步骤S501,按照心跳周期接收无线接入设备上报的TCP应用层信息;
[0172]具体地,TCP应用层信息包括:设备状态、功能掩码、网络地址(IP地址)、物理地址等,采用jason格式。
[0173]步骤S502,根据所述TCP应用层信息更新关联终端的关联转发表;
[0174]具体地,服务器将数据包源地址和TCP应用层信息中的网络地址进行比较,当相同时为公网,不同时为私网。其中,数据包源地址就是最外层NAT映射地址,也是无线接入设备的公网地址;
[0175]其中,在根据所述TCP应用层信息更新关联终端的关联转发表之后,还可将所述关联终端的关联转发表的更新内容通知给所述关联终端。
[0176]步骤S503,并向所述无线接入设备发送响应报文,以便所述无线接入设备向所述关联终端的公网地址发送请求报文;
[0177]具体地,其中,所述响应报文携带所述关联终端的公网地址。
[0178]步骤S504,并在所述无线接入设备没有收到回应时,接收所述无线接入设备的请求报文后,通知所述关联终端按照所述心跳周期发起心跳嗅探包穿透NAT,便于所述无线接入设备与所述关联终端进行P2P通信。
[0179]具体地,服务器接收无线接入终端的请求后,按照该请求通知关联终端按照所述心跳周期发起心跳嗅探包穿透NAT。
[0180]图6是本发明通过穿透NAT实现P2P通信的方法中根据所述TCP应用层信息更新关联终端的关联转发表之前进一步处理方法的流程示意图,具体步骤如下:
[0181 ]步骤S601,接收所述TCP应用层报文信息;
[0182]具体地,其中,所述TCP应用层报文信息包括网络地址信息。
[0183]步骤S602,将预存的数据包源地址与所述网络地址信息进行比较确定网络类型;
[0184]具体地,当相同时则网络类型为公网,不同时则网络类型为私网。
[0185]步骤S603,所述数据包源地址为所述无线接入设备通过NAT映射后的公网地址。
[0186]具体地,数据包源地址为IP地址。
[0187]需要说明的是,通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明的部分或全部可借助软件并结合必需的通用硬件平台来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可包括其上存储有机器可执行指令的一个或多个机器可读介质,这些指令在由诸如计算机、计算机网络或其他电子设备等一个或多个机器执行时可使得该一个或多个机器根据本发明的实施例来执行操作。机器可读介质可包括,但不限于,软盘、光盘、CD-R0M(紧致盘-只读存储器)、磁光盘、ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦除可编程只读存储器)、EEPR0M(电可擦除可编程只读存储器)、磁卡或光卡、闪存、或适于存储机器可执行指令的其他类型的介质/机器可读介质。
[0188]本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等。
[0189]本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0190]图7是本发明通过穿透NAT实现P
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1