【技术实现步骤摘要】
一种P2P穿透方法、装置、系统及存储介质
本申请涉及网络通信
,更具体地说,涉及一种P2P穿透方法、装置、系统及一种计算机可读存储介质。
技术介绍
现有技术中,对于对称性NAT,路由器会根据目的地址的不同而映射到不同的地址和端口,只有当主机曾经给IP地址为X、端口号为P的外部主机发送过数据包时,来自IP地址为X、端口号为P的外部主机的数据包才能被对称性NAT路由器接收。对于端口受限型NAT,路由器会把所有来自相同内部IP地址和端口号的请求映射到相同的外部IP地址和端口(目的地址不同也会映射成相同的外部IP和地址),但是只有当内部主机曾经给IP地址为X、端口号为P的外部主机发送过数据包时,,来自IP地址为X、端口号为P的外部主机的数据包才能被端口受限型NAT路由器接收。由于上述特点,使得对称性NAT和端口受限型NAT较难实现P2P穿透。鉴于此,如何解决上述问题是本领域技术人员需要重点关注的。
技术实现思路
本专利技术的主要目的在于提供P2P穿透方法,旨在解决端口受限型NAT和对称型NAT的穿透较难实现的技术问题。为实现上述目的,本专利技术提供的P2P穿透方法,应用于位于端口受限型NAT下的第一终端,包括:向位于对称型NAT下的第二终端发送穿透请求;接收所述第二终端对所述穿透请求进行响应的请求响应包;其中,所述请求响应包中包含所述对称型NAT的端口映射规律和所述第二终端的初始IP地址和初始端口号,所述初始IP地址为所述第二终端向所述第一终端发送第一数据包之前最后一次发送行为映射的公网地址,所述初始端口号为所述最后一次发送行为映射的端口号;根据所述端口映射规律 ...
【技术保护点】
1.一种P2P穿透方法,其特征在于,应用于位于端口受限型NAT下的第一终端,所述方法包括:向位于对称型NAT下的第二终端发送穿透请求;接收所述第二终端对所述穿透请求进行响应的请求响应包;其中,所述请求响应包中包含所述对称型NAT的端口映射规律和所述第二终端的初始IP地址和初始端口号,所述初始IP地址为所述第二终端向所述第一终端发送第一数据包之前最后一次发送行为映射的公网地址,所述初始端口号为所述最后一次发送行为映射的端口号;根据所述端口映射规律、所述初始IP地址和所述初始端口号,确定端口号预测区间;通过所述端口号预测区间内所有端口号向所述第二终端发送第二数据包,直至收到响应消息;其中,所述响应消息为所述第二终端收到所述第二数据包后向所述第一终端发送的用于表示穿透成功的消息。
【技术特征摘要】
1.一种P2P穿透方法,其特征在于,应用于位于端口受限型NAT下的第一终端,所述方法包括:向位于对称型NAT下的第二终端发送穿透请求;接收所述第二终端对所述穿透请求进行响应的请求响应包;其中,所述请求响应包中包含所述对称型NAT的端口映射规律和所述第二终端的初始IP地址和初始端口号,所述初始IP地址为所述第二终端向所述第一终端发送第一数据包之前最后一次发送行为映射的公网地址,所述初始端口号为所述最后一次发送行为映射的端口号;根据所述端口映射规律、所述初始IP地址和所述初始端口号,确定端口号预测区间;通过所述端口号预测区间内所有端口号向所述第二终端发送第二数据包,直至收到响应消息;其中,所述响应消息为所述第二终端收到所述第二数据包后向所述第一终端发送的用于表示穿透成功的消息。2.如权利要求1所述的P2P穿透方法,其特征在于,所述向位于对称型NAT下的第二终端发送穿透请求,包括:向第一STUN服务器发送信息获取请求,以获取所述第二终端的ID号;利用所述ID号,通过所述第一STUN服务器向所述第二终端发送所述穿透请求。3.如权利要求2所述的P2P穿透方法,其特征在于,所述接收所述第二终端对所述穿透请求进行响应的请求响应包,包括:通过所述第一STUN服务器接收所述第二终端发送的对所述穿透请求进行响应的请求响应包。4.如权利要求1所述的P2P穿透方法,其特征在于,所述端口映射规律为所述第二终端向预设数量的不同目的地址发送第三数据包后根据第二STUN服务器返回的信息确定的端口映射规律。5.如权利要求1所述的P2P穿透方法,其特征在于,所述初始IP地址和所述初始端口号为所述第二终端向第二STUN服务器发送信息获取请求后接收到的所述第二STUN服务器返回的地址和端口号。6.如权利要求1所述的P2P穿透方法,其特征在于,所述第一数据包和所述第二数据包均为UDP数据包。7.如权利要求6所述的P2P穿透方法,其特征在于,还包括:监听发送所述第二数据包之后接收所述响应消息之前的等待时间;若所述等待时间大于预设时间阈值,则判定所述第二数据包丢失,并重新发送所述第二数据包。8.如权利要求1至7任一项所述的P2P穿透方法,其特征在于,所述根据所述端口映射规律、所述初始IP地址和所述初始端口号,确定端口号预测区间,包括:当所述端口映射规律为按照端口号递增的方式进行映射时,确定所有相邻端口号之间的端口增量;从所有所述端口增量中确定最小增量和最大增量,并基于区间公式,利用所述最小增量、所述最大增量、所述初始IP地址和所述初始端口号,确定所述端口号预测区间;其中,所...
【专利技术属性】
技术研发人员:鲁塔,
申请(专利权)人:深圳市网心科技有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。