用于点对点通信的方法、系统、计算机存储介质及电子设备技术方案

技术编号:37602693 阅读:22 留言:0更新日期:2023-05-18 11:53
本申请提出了一种用于在通信用户之间进行点对点通信的方法,所述通信用户各自具有网络地址转换装置和内网主机,所述方法包括:获取通信用户的网络地址转换装置的NAT类型;基于所获取的通信用户的网络地址转换装置的NAT类型进行NAT打洞操作;判断打洞操作是否成功;在打洞操作成功的情况下进行通信操作,在打洞失败操作的情况下返回失败参数。本申请还提出了网络通信系统、计算机存储介质及电子设备。计算机存储介质及电子设备。计算机存储介质及电子设备。

【技术实现步骤摘要】
用于点对点通信的方法、系统、计算机存储介质及电子设备


[0001]本申请涉及点对点通信方法,更特别地,涉及在具有网络地址转换装置的通信用户之间进行点对点通信的方法、网络通信系统、计算机存储介质及电子设备。

技术介绍

[0002]点对点通信(P2P)因其延时低、效率高、服务器负担低等优点,越来越多地被应用在例如车辆的自动驾驶等多种场景中。而网络地址转换(NAT)技术虽然在一定程度上在解决IPv4地址、构建防火墙、保证网络安全方面都发挥了一定的作用。但其不允许外网主机访问内网主机,破坏了点对点的网络通信。因此,为了实现跨越网络地址转换装置的主机之间点对点通信,需要用到NAT打洞技术,或者称为NAT穿透技术。
[0003]在现有的NAT打洞技术中,uPnP/NAT

pmp方法需要路由器和客户端程序支持,才能主动注册端口映射,从而实现不同NAT内网主机之间的点对点通信。而在其他的打洞方法中,存在着比较高的打洞失败率。尤其是在通信双方的网络地址转换装置都是对称型的情况下或者在一个通信方具有对称型网络地址转换装置并且另一通信方具有端口限制锥形网络地址转换装置的情况下,打洞失败率较高。然而因为安全的原因,蜂窝网络和公共wifi的网络地址转换装置往往是对称型的,因而在一定程度上阻碍了点对点通信。
[0004]因此,需要对具有网络地址转换装置的通信用户之间的点对点通信方法进行改进。

技术实现思路

[0005]为了解决上文中提及的问题和缺陷,本申请提出用于点对点通信的方法和系统,其尤其是对于存在对称型网络地址转换装置的情况能够提高打洞成功率。
[0006]根据本申请的一方面,提出一种用于在通信用户之间进行点对点通信的方法,所述通信用户各自具有网络地址转换装置和内网主机,所述方法包括:
[0007]获取通信用户的网络地址转换装置的NAT类型;
[0008]基于所获取的通信用户的网络地址转换装置的NAT类型进行NAT打洞操作;
[0009]判断打洞操作是否成功;
[0010]在打洞操作成功的情况下进行通信操作,在打洞失败操作的情况下返回失败参数。
[0011]根据本申请的另一方面,提出一种用于在至少两个通信用户之间进行点对点通信的系统,包括:
[0012]至少两个通信用户,所述通信用户各自包括网络地址转换装置和至少一个内网主机;
[0013]至少一个服务器,
[0014]其特征在于,所述通信系统被设置成用于执行如上所述的方法。
[0015]根据本申请的又一方面,提出一种计算机可读存储介质,其上存储有计算机程序,
该计算机程序包括可执行指令,当该可执行指令被处理器执行时,实施如上所述的方法。
[0016]根据本申请的再一方面,提出一种电子设备,其包括处理器以及用于存储处理器的可执行指令的存储器,其中,处理器被配置为执行可执行指令以实施如上所述的方法。
[0017]根据本申请的方法,基于所获取的通信用户的网络地址转换装置的NAT类型进行NAT打洞操作,因此,能够针对性地对于不同的类型使用不同的打洞方法。因此,一方面节省了计算成本,另一方面提高了打洞成功率。尤其是在通信双方的网络地址转换装置都是对称型的情况下或者在一个通信方具有对称型网络地址转换装置并且另一通信方具有端口限制锥形网络地址转换装置的情况下,通过针对性地采用打洞尝试,可以在低计算成本的情况下实现很高的打洞成功率。
附图说明
[0018]通过参照附图详细描述其示例性实施例,本申请的上述和其它特征及优点将变得更加明显。
[0019]图1示出在两个通信用户之间进行点对点通信的示例性系统的框图。
[0020]图2示出根据本申请的一个实施例的用于点对点通信的方法的主例程的示意性流程图。
[0021]图3示出用于确定通信用户的NAT类型的子例程的示意性流程图。
[0022]图4示出用于实现NAT打洞的子例程的示意性流程图。
具体实施方式
[0023]现在将参考附图更全面地描述示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本申请的内容变得全面和完整,并将示例性实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。
[0024]此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、元件等。在其它情况下,不详细示出或描述公知结构、方法或者操作以避免模糊本申请的各个方面。
[0025]网络地址转换装置(NAT)是一种把内部网络(简称为内网)私有IP地址转换为外部网络(简称为外网)公共IP地址的装置,它使得一定范围内的多台主机只利用一个公共IP地址连接到外网,可以在很大程度上缓解了公网IP地址紧缺的问题,同时也能防止外网攻击保障内网安全。网络地址转换装置主要通过对数据包头的地址替换来完成内网主机访问外网服务器。当内网主机要访问外部网络时,网络地址转换装置把内网主机的IP地址和端口号转换成网络地址转换装置的外部IP地址和端口号,发送给外网服务器。数据返回时,再把目的IP地址和端口号的数据包替换为内网主机的IP地址和端口号,发给内网主机。
[0026]下面结合附图来介绍本申请的原理和示例性方案。图1以在两个通信用户之间进行点对点通信为例,示出根据本申请的示例性系统的框图。如图1所示,根据本申请的系统包括至少两个通信用户以及三个服务器,所述通信用户各自包括网络地址转换装置NAT1、
NAT2和至少一个内网主机C01、C02。可以设想的是,系统可以包括更多的通信用户,也可以包括更多或更少的服务器。而每个通信用户也可以包括更多的内网主机(未示出)。所述系统被设置成用于执行根据本申请的方法。
[0027]应当注意,尽管在上文详细描述中提及了用于点对点通信的方法的系统的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0028]如图1所示,以在第一通信用户与第二通信用户之间的点对点通信为例,来说明根据本申请的方法。其中,第一通信用户包括第一网络地址转换装置NAT1及第一内网主机C01,而第二通信用户包括第二网络地址转换装置NAT2及第二内网主机本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于在通信用户之间进行点对点通信的方法,所述通信用户各自具有网络地址转换装置和内网主机,所述方法包括:获取通信用户的网络地址转换装置的NAT类型;基于所获取的通信用户的网络地址转换装置的NAT类型进行NAT打洞操作;判断打洞操作是否成功;在打洞操作成功的情况下进行通信操作,在打洞失败操作的情况下返回失败参数。2.根据权利要求1所述的方法,其特征在于,获取通信用户的网络地址转换装置的NAT类型包括如下子步骤:确定通信用户的网络地址转换装置的NAT类型是对称式NAT还是锥形NAT;在通信用户的网络地址转换装置的NAT类型是锥形NAT的情况下,确定通信用户的网络地址转换装置的NAT类型是限制锥形NAT还是完全锥形NAT;在通信用户的网络地址转换装置的NAT类型是限制锥形NAT的情况下,确定通信用户的网络地址转换装置的NAT类型是IP限制锥形NAT还是端口限制锥形NAT。3.根据权利要求2所述的方法,其特征在于,确定通信用户的网络地址转换装置的NAT类型是对称式NAT还是锥形NAT包括:由被检测的通信用户的内网主机使用相同的端口分别连接两个不同的服务器;在这两个不同的服务器获取的端口不相同的情况下,被检测的通信用户的网络地址转换装置是对称型NAT;在这两个不同的服务器获取的端口相同的情况下,被检测的通信用户的网络地址转换装置是锥形NAT。4.根据权利要求2所述的方法,其特征在于,确定通信用户的网络地址转换装置的NAT类型是限制锥形NAT还是完全锥形NAT包括:由被检测的通信用户的内网主机以IP地址和端口向一个服务器发送消息,该服务器将该IP地址和端口发送给另一个服务器,该另一个服务器根据该IP地址和端口发送另一个消息给被检测的通信用户的内网主机;在被检测的通信用户的内网主机接收到该另一个消息的情况下,被检测的通信用户的网络地址转换装置是完全锥形NAT;在被检测的通信用户的内网主机没有接收到该另一个消息的情况下,被检测的通信用户的网络地址转换装置是限制性锥形NAT。5.根据权利要求2所述的方法,其特征在于,确定通信用户的网络地址转换装置的NAT类型是IP限制锥形NAT还是端口限制锥形NAT包括:由被检测的通信用户的内网主机以IP地址和端口向服务器的第一服务器端口发送消息,该服务器以不同于第一服务器端口的第二服务器端口根据该IP地址和端口发送另一个消息给被检测的通信用户的内网主机;在被检测的通信用户的内网主机接收到该另一个消息的情况下,被检测的通信用户的网络地址转换装置是IP限制锥形NAT;在被检测的通信用户的内网主机没有接收到该另一个消息的情况下,被检测的通信用户的网络地址转换装置是端口限制锥形NAT。6.根据权利要求1所述的方法,其特征在于,基于所获取的通信用户的网络地址转换装
置的NAT类型进行NAT打洞操作包括,将通信用户双方的网络地址转换装置NAT类型归属于以下三种组合分类之一:第一种组合分类,即,通信用户双方的网络地址转换装置均是对称型NAT;第二种组合分类,即,其中一个通信用户的网络地址转换装置是对称型NAT,并且另一个通信用户的网络地址转换装置是端口限制锥形NAT;第三种组合分类,该第三种组合分类包括通信用户双方的网络地址转换装置都不为对称型NAT的情况,以及包括其中一个通信用户的网络地址转换装置是对称型NAT、但另一个通信用户的网络地址转换装置不是对称型NAT或端口限制锥形NAT的情况。7.根据权利要求6所述的方法,其特征在于,基于通信用户双方的网络地址转换装置的NAT类型所归属的组合分类,进行打洞操作。8.根据权利要求6所述的方法,其特征在于,在通信用户双方的网络地址转换装置的NAT类型归属于第一种组合分类和第二种组合分类的情况下,打洞操作包括:进行多次打洞尝试,直到打洞成功或尝试次数超过次数阈值为止;在所述打洞尝试中对于包括对称型NAT的通信用户的网络地址转换装置为内网主机分配的端口进行预测。9.根据权利要求8所述的方法,其特征在于,基于生日攻击理论确定所述次数阈值。10.根据权利要求9所述的方法,其特征在于,所述次数阈值被设定为256次。11.根据权利要求8所述的方法,其特征在于,对于包括对称型NAT的通信用户的网络地址转换装置为内网主机分配的端口进行预测时不考虑被保留的端口。12.根据权利要求8所述的方法,其特征在于,对于包括对称型NAT的通信用户的网络地址转换装置为内网主机分配的端口进行预测包括:使用时间序列预测法、神经网络预测法或马尔科夫预测法。13.根据权利要求8所述的方法,其特征在于,对于包括对称型NAT的通信用户的网络地址转换装置为内网主机分配的端口进行预测包括:使用faceboook prophet预测模型。14.根据权利要求12或13所述的方法,其特征在于,对于包括对称型NAT的通信用户的网络地址转换装置为内网主机分配的端口进行预测包括:将待预测的网络地址转换装置分配过的端口作为历史数据集或添加到历史数据集中。15.根据权利要求8所述的方法,其特征在于,在通信用户双方的网络地址转换装置的NAT类型归属于第一种组合分类的情况下,打洞尝试包括:将任一通信用户的网络地址转换...

【专利技术属性】
技术研发人员:赵明
申请(专利权)人:大陆软件系统开发中心重庆有限公司
类型:发明
国别省市:

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

1