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

文档序号:9846910阅读:来源:国知局
2P通信的无线接入设备的一种实施例的结构示意图,无线接入设备700包括第一检测模块701、上报模块702、第一接收模块703、第一发送模块704、第二检测模块705和第一通信模块706,
[0191 ]第一检测模块701,用于检测NAT心跳周期;
[0192]具体地,第一检测模块701检测NAT心跳周期,具体包括:
[0193]第一检测模块70向所述服务器发送请求报文;如果在N秒内没有收到所述服务器的回应,则以N/2秒继续嗅探,连续嗅探预设次数,仍没有收到所述服务器的回应,则认为网络不可达;如果延迟财少收到所述服务器的回应,则所述财少为心跳周期。
[0194]上报模块702,用于按照第一检测模块701检测的NAT心跳周期向服务器上报TCP应用层信息,以便所述服务器根据所述TCP应用层信息更新关联终端的关联转发表;
[0195]具体地,所述关联终端包括主设备及至少一个关联设备,所述关联终端的关联转发表格式为:
[0196]{编号;
[0197]主设备标识,公网地址,网络类型,心跳周期;
[0198]第一关联设备标识,公网地址,网络类型,心跳周期;
[0199]……}0
[0200]其中,编号由服务器设定,另主设备标识及第一设备标识……为第一检测模块按心跳周期上报的报文中的物理地址;
[0201 ] 其中,网络类型包括私网和公网,具体服务器将数据包源地址和TCP应用层信息中的网络地址进行比较,当相同时网络类型为公网,不同时网络类型为私网。
[0202]第一接收模块703,用于接收所述服务器的响应报文,所述响应报文携带所述关联终端的公网地址;
[0203]具体地,所述响应报文还携带网络类型。
[0204]第一发送模块704,用于向所述关联终端的公网地址发送请求报文;
[0205]具体地,所述关联终端包括:主设备标识及第一设备标识……。
[0206]第二检测模块705,检测是否收到回应;
[0207]第一通信模块706,用于当所述第二检测模块705检测没有收到回应时,通过中继模式或请求所述服务器通知所述关联终端按照所述心跳周期向自身发起心跳嗅探包穿透NAT,实现与所述关联终端进行P2P通信。
[0208]具体地,当检测没有收到回应时,则确认为网络拥塞或NAT是受限型或对称型;其中,中继模式是通过中继使无线接入设备与关联终端接通,即绕开NAT,使无线接入设备可以与关联设备直接进行P2P通信;其中,关联终端按心跳周期向无线接入终端发起心跳嗅探包,即通过心跳连续的方式打通NAT,使关联终端与无线接入设备进行P2P通信。
[0209]图8是本发明通过穿透NAT实现P2P通信的无线接入设备的另一种实施例的结构示意图,无线接入设备700包括第一检测模块701、上报模块702、第一接收模块703、第一发送模块704、第二检测模块705、第一通信模块706和第二通信模块707,其中,第一检测模块701、上报模块702、第一接收模块703、第一发送模块704、第二检测模块705和第一通信模块706具体如图7所示,
[0210]第二通信模块707,用于当第二检测模块705检测收到回应时,直接与所述关联终端进行P2P通信。
[0211]具体地,当检测收到回应时,NAT是开放的或关联终端位于开放网络上,则无线接入设备与关联终端是可以直接进行通信。
[0212]图9是本发明通过穿透NAT实现P2P通信的无线接入设备的另一种实施例的结构示意图,无线接入设备700包括第一检测模块701、上报模块702、第一接收模块703、第一发送模块704、第二检测模块705、第一通信模块706、第一确认模块708和第二确认模块709,其中,第一检测模块701、上报模块702、第一接收模块703、第一发送模块704、第二检测模块705和第一通信模块706具体如图7所示,
[0213]第一确认模块708,用于第一发送模块704向所述关联终端的公网地址发送请求报文之前,根据所述关联终端的网络类型确认所述关联终端在私网;其中,所述响应报文还携带所述关联终端的网络类型;
[0214]具体地,网络类型包括私网和公网。
[0215]第二确认模块709,用于根据所述关联终端的公网地址确认更新了所述关联终端的公网地址。
[0216]具体地,具体地,无线接入设备将收到的关联终端的公网地址与之前自身存储的关联终端的公网地址进行比较发现不同时,则认为关联终端的公网地址更新了。
[0217]图10是本发明通过穿透NAT实现P2P通信的无线接入设备中第一检测模块的一种实施例的结构示意图,第一检测模块701包括请求子模块7011和检测子模块7012,
[0218]请求子模7011,用于向所述服务器发送请求报文;
[0219]检测子模块7012,用于如果在财少内没有收到所述服务器的回应,则以N/2秒继续嗅探,连续嗅探预设次数,仍没有收到所述服务器的回应,则认为网络不可达;如果延迟N秒收到所述服务器的回应,则所述财少为心跳周期。
[0220]图11是本发明通过穿透NAT实现P2P通信的服务器的一种实施例的结构示意图,月艮务器1100包括第二接收模块1101、更新模块1102、第二发送模块1103和接收通知模块1104,
[0221]第二接收模块1101,用于按照心跳周期接收无线接入设备上报的TCP应用层信息;
[0222]具体地,TCP应用层信息包括:设备状态、功能掩码、网络地址(IP地址)、物理地址等。
[0223]更新模块1102,用于根据所述TCP应用层信息更新关联终端的关联转发表;
[0224]具体地,服务器将数据包源地址和TCP应用层信息中的网络地址进行比较,当相同时为公网,不同时为私网。其中,数据包源地址就是最外层NAT映射地址,也是无线接入设备的公网地址。
[0225]第二发送模块1103,用于向所述无线接入设备发送响应报文,以便所述无线接入设备向所述关联终端的公网地址发送请求报文;其中,所述响应报文携带所述关联终端的公网地址;
[0226]具体地,其中,所述响应报文携带所述关联终端的公网地址。
[0227]接收通知模块1104,用于在所述无线接入设备没有收到回应时,接收所述无线接入设备的请求通知报文后,通知所述关联终端按照所述心跳周期发起心跳嗅探包穿透NAT,便于所述无线接入设备与所述关联终端进行P2P通信。
[0228]具体地,接收通知模块1104接收无线接入终端的请求后,按照该请求通知关联终端按照所述心跳周期发起心跳嗅探包穿透NAT。
[0229]图12是本发明通过穿透NAT实现P2P通信的服务器的另一种实施例的结构示意图,服务器1100包括第二接收模块1101、更新模块1102、第二发送模块1103、接收通知模块1104、第三接收模块1105和比较确定模块1106,其中,第二接收模块1101、更新模块1102、第二发送模块1103和接收通知模块1104具体如图11所示,
[0230]第三接收模块1105,用于在更新模块1102根据所述TCP应用层信息更新关联终端的关联转发表之前,接收所述TCP应用层报文信息;其中,所述TCP应用层报文信息包括网络地址信息;
[0231 ]具体地,其中,所述TCP应用层报文信息包括网络地址信息。
[0232]比较确定模块1106,用于将预存的数据包源地址与所述网络地址信息进行比较确定网络类型;其中,所述数据包源地址为所述无线接入设备通过NAT映射后的公网地址。
[0233]具体地,当相同时则网络类型为公网,不同时则网络类型为私网。
[0234]图13是本发明通过穿透NAT实现P2P通信的服务器的另一种实施例的结构示意图,服务器1100包括第二接收模块1101、更新模块1102、第二发送模块1103、接收通知模块1104和通知模块1107,其中,第二接收模块1101、更新模块1102、第二发送模块1103和接收通知模块1104具体如图11所示,
[0235]通知模块1107,用于更新模块1102根据所述TCP应用层信息更新关联终端的关联转发表之后,将所述关联终端的关联转发表的更新内容通知给所述关联终端。
[0236]图14是本发明通过穿透NAT实现P2P通信的系统的一种实施例的结构示意图,系统1300包括无线接入设备600和服务器1000,其中,无线接入设备600位于内网,且可以为路由器或网关等。
[0237]无线接入设备600,用于检测NAT心跳周期;按照NAT心跳周期向服务器1100上报TCP应用层信息,以便服务器1100根据所述TCP应用层信息更新关联终端的关联转发表;同时,接收服务器1100的响应报文,所述响应报文携带所述关联终端的公网地址;并向所述关联终端的公网地址发送请求报文,检测是否收到回应;当检测没有收到回应时,通过中继模式或请求服务器1100通知所述关联终端按照所述心跳周期向自身发起心跳嗅探包穿透NAT,实现与所述关联终端进行P2P通信;当所述检测收到回应时,直接与所述关联终端进行P2P通信。
[0238]其中,无线接入设备600检测NAT心跳周期具体包括:向服务器1100发送请求报文,如果在财少内没有收到服务器1100的回应,则以N/2秒继续嗅探,连续嗅探预设次数,仍没有收到服务器1100的回应,则认为网络不可达;如果延迟N秒收到服务器1100的回应,则所述N秒为心跳周期。
[0
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1