数据发送方法及装置、建立P2P连接的方法及系统制造方法及图纸

技术编号:28046186 阅读:9 留言:0更新日期:2021-04-09 23:31
本申请提供数据发送方法、装置以及建立P2P连接的方法及系统,其中数据发送方法包括:S1:为n

【技术实现步骤摘要】
数据发送方法及装置、建立P2P连接的方法及系统
本申请涉及通信
,特别涉及一种数据发送方法。本申请同时涉及一种数据发送装置、一种建立P2P连接的方法及系统、一种计算设备、以及一种计算机可读存储介质。
技术介绍
NAT技术是一种把内部网络私有IP地址转换为外部网络公共IP地址的技术,它使得一定范围内的多台主机只利用一个公共IP地址连接到外网。NAT技术虽然在一定程度上解决了IPv4地址短缺的问题,却破坏了端到端(P2P)的网络通信,主要原因是NAT不允许外网主机主动访问内网主机。NAT类型分为4种:全锥形、受限锥型、端口受限型与对称型,共有10种组合,其中,端口受限型-对称型和对称型-对称型两种组合类型还没有很好的打洞解决方案。因为若有一方是对称型NAT,路由器会根据目的地址的不同而映射到不同的地址和端口,只有当主机曾经给外部主机(IP_x,Port_x)发送过数据包时,来自外部主机(IP_x,Port_x)的数据包才能被对称型NAT路由器接收。因此,需要提供端口受限型-对称型的一种打洞解决方案。
技术实现思路
有鉴于此,本申请实施例提供了一种数据发送方法。本申请同时涉及一种数据发送装置、一种建立P2P连接的方法及系统、一种计算设备以及一种计算机可读存储介质,以用较少的文件描述符解决现有技术中存在的端口受限型NAT与对称型NAT之间的打洞。根据本申请实施例的第一方面,提供了一种数据发送方法,应用于处于对称型NAT下的终端,包括:S1:为n1个第一访问请求数据包建立容纳m个文件描述符的队列,其中,2≤m<n1;S2:在所述队列中创建第i个文件描述符并通过所述第i个文件描述符发送第i个第一访问请求数据包,并对所述第i个文件描述符记录的源端口进行监控,其中,所述第i个文件描述符与所述第i个第一访问请求数据包具有相同的源端口,其中1≤i≤n1;S3:每间隔第一预设时间间隔t1,令i自增1,继续执行步骤S2,并且为每个源端口设置预设监听时间T,其中,每个文件描述符记录不同源端口,T=t1*m;S4:在m*j<i≤m*(j+1)的情况下,在所述队列中创建第i个文件描述符时,结束对第i-m个源端口的监听并销毁对应的文件描述符,直至监听到第一端口接收到响应数据包,停止对其他源端口的监听,其中,j≥1,所述第一端口为处于被监听状态的任意一个源端口。可选的,数据发送方法还包括:若在第n1个文件描述符记录的源端口的预设监听时间T结束时仍没有接收到响应数据包,则重新执行为n1个第一访问请求数据包建立容纳m个文件描述符的队列的步骤。可选的,数据发送方法还包括:通过所述第一端口发送第一待传输数据和/或接收第二待传输数据。可选的,所述直至监听到第一端口接收到响应数据包,停止对其他源端口的监听包括:在监听到第一端口接收到响应数据包的情况下,销毁其他源端口对应的文件描述符。可选的,在为n1个第一访问请求数据包建立容纳m个文件描述符的队列之前,还包括:向穿越辅助服务器发送信息获取请求;接收所述穿越辅助服务器发送的所述终端的地址信息和NAT类型;将所接收的地址信息和NAT类型发送至访问管理服务器;接收所述访问管理服务器反馈的待访问端的地址信息和NAT类型。可选的,所述通过所述第i个文件描述符发送第i个第一访问请求数据包之前,还包括:基于所接收的所述待访问端的地址信息以及所述第i个文件描述符对应的源端口,生成所述第i个第一访问请求数据包。根据本申请实施例的第二方面,提供了一种建立P2P连接的方法,包括:第一终端通过一个文件描述符以第二预设时间间隔t2发送n2个第二访问请求数据包,其中,所述第一终端处于端口受限型NAT下,所述n2个第二访问请求数据包中的目的IP地址相同且目的端口不同;与所述目的IP地址对应的处于对称型NAT下的第二终端执行以下操作:S1:为n1个第一访问请求数据包建立容纳m个文件描述符的队列,其中,2≤m<n1;S2:在所述队列中创建第i个文件描述符并通过所述第i个文件描述符发送第i个第一访问请求数据包,并对所述第i个文件描述符记录的源端口进行监控,其中,所述第i个文件描述符与所述第i个第一访问请求数据包具有相同的源端口,其中1≤i≤n1;S3:每间隔第一预设时间间隔t1,令i自增1,继续执行步骤S2,并且为每个源端口设置预设监听时间T,其中,每个文件描述符记录不同源端口,T=t1*m;S4:在m*j<i≤m*(j+1)的情况下,在所述队列中创建第i个文件描述符时,结束对第i-m个源端口的监听并销毁对应的文件描述符;在所述第一终端的源端口的t2*n2+t1*n1监听时间段内,所述端口受限型NAT监听到所述第一终端的源端口接收到来自所述第二终端的第一访问请求数据包的情况下,所述第一终端获得第一访问请求数据包中的地址信息,并且向获得的地址信息发送响应数据包;所述对称型NAT监听到所述第二终端的第一端口接收到响应数据包,停止对其他源端口的监听,其中,所述第一端口与所述获得的地址信息对应。可选的,建立P2P连接的方法还包括:若在第n1个文件描述符记录的源端口的预设监听时间T结束时仍没有接收到响应数据包,则在预设条件下重新执行第一终端通过一个文件描述符以第二预设时间间隔t2发送n2个第二访问请求数据包的步骤。可选的,在第一终端通过一个文件描述符以第二预设时间间隔t2发送n2个第二访问请求数据包之前,还包括:所述第一终端和所述第二终端分别向穿越辅助服务器发送信息获取请求;所述第一终端和所述第二终端分别接收所述穿越辅助服务器发送的各自的地址信息和NAT类型;所述第一终端和所述第二终端将所接收的各自的地址信息和NAT类型发送至访问管理服务器;所述第一终端接收所述访问管理服务器反馈的所述第二终端的地址信息和NAT类型,并且所述第二终端接收所述访问管理服务器反馈的所述第一终端的地址信息和NAT类型。可选的,在第一终端通过一个文件描述符以第二预设时间间隔t2发送n2个第二访问请求数据包之前,还包括:将第二终端的初始端口设置为随机数,并且为所述n2个第二访问请求数据包设置端口编号之间的间隔相同的目的端口;基于所接收的所述第二终端的地址信息中的IP地址、所设置的目的端口以及所述文件描述符对应的源端口,生成所述第二访问请求数据包。可选的,所述将第二终端的初始端口设置为随机数,并且为所述n2个第二访问请求数据包设置端口编号之间的间隔相同的目的端口,包括:将第二终端的初始端口设置为与n2相关的随机数与预设值之和;将每个第二访问请求数据包的目的端口与前一第二访问请求数据包的目的端口间隔设置为与所述预设值相关的固定值。可选的,在所述第一终端发送n2个第二访问请求数据包时,建立第一终端的地址信息与所述第二终端的地址信息之间的第一映射关系,在所述第二本文档来自技高网...

【技术保护点】
1.一种数据发送方法,应用于处于对称型NAT下的终端,其特征在于,包括:/nS1:为n

【技术特征摘要】
1.一种数据发送方法,应用于处于对称型NAT下的终端,其特征在于,包括:
S1:为n1个第一访问请求数据包建立容纳m个文件描述符的队列,其中,2≤m<n1;
S2:在所述队列中创建第i个文件描述符并通过所述第i个文件描述符发送第i个第一访问请求数据包,并对所述第i个文件描述符记录的源端口进行监控,其中,所述第i个文件描述符与所述第i个第一访问请求数据包具有相同的源端口,其中1≤i≤n1;
S3:每间隔第一预设时间间隔t1,令i自增1,继续执行步骤S2,并且为每个源端口设置预设监听时间T,其中,每个文件描述符记录不同源端口,T=t1*m;
S4:在m*j<i≤m*(j+1)的情况下,在所述队列中创建第i个文件描述符时,结束对第i-m个源端口的监听并销毁对应的文件描述符,直至监听到第一端口接收到响应数据包,停止对其他源端口的监听,其中,j≥1,所述第一端口为处于被监听状态的任意一个源端口。


2.根据权利要求1所述的数据发送方法,其特征在于,还包括:若在第n1个文件描述符记录的源端口的预设监听时间T结束时仍没有接收到响应数据包,则重新执行为n1个第一访问请求数据包建立容纳m个文件描述符的队列的步骤。


3.根据权利要求1所述的数据发送方法,其特征在于,还包括:通过所述第一端口发送第一待传输数据和/或接收第二待传输数据。


4.根据权利要求1所述的数据发送方法,其特征在于,所述直至监听到第一端口接收到响应数据包,停止对其他源端口的监听包括:
在监听到第一端口接收到响应数据包的情况下,销毁其他源端口对应的文件描述符。


5.根据权利要求1或2所述的数据发送方法,其特征在于,在为n1个第一访问请求数据包建立容纳m个文件描述符的队列之前,还包括:
向穿越辅助服务器发送信息获取请求;
接收所述穿越辅助服务器发送的所述终端的地址信息和NAT类型;
将所接收的地址信息和NAT类型发送至访问管理服务器;
接收所述访问管理服务器反馈的待访问端的地址信息和NAT类型。


6.根据权利要求5所述的数据发送方法,其特征在于,所述通过所述第i个文件描述符发送第i个第一访问请求数据包之前,还包括:
基于所接收的所述待访问端的地址信息以及所述第i个文件描述符对应的源端口,生成所述第i个第一访问请求数据包。


7.一种建立P2P连接的方法,其特征在于,包括:
第一终端通过一个文件描述符以第二预设时间间隔t2发送n2个第二访问请求数据包,其中,所述第一终端处于端口受限型NAT下,所述n2个第二访问请求数据包中的目的IP地址相同且目的端口不同;
与所述目的IP地址对应的处于对称型NAT下的第二终端执行以下操作:
S1:为n1个第一访问请求数据包建立容纳m个文件描述符的队列,其中,2≤m<n1;
S2:在所述队列中创建第i个文件描述符并通过所述第i个文件描述符发送第i个第一访问请求数据包,并对所述第i个文件描述符记录的源端口进行监控,其中,所述第i个文件描述符与所述第i个第一访问请求数据包具有相同的源端口,其中1≤i≤n1;
S3:每间隔第一预设时间间隔t1,令i自增1,继续执行步骤S2,并且为每个源端口设置预设监听时间T,其中,每个文件描述符记录不同源端口,T=t1*m;
S4:在m*j<i≤m*(j+1)的情况下,在所述队列中创建第i个文件描述符时,结束对第i-m个源端口的监听并销毁对应的文件描述符;
在所述第一终端的源端口的t2*n2+t1*n1监听时间段内,所述端口受限型NAT监听到所述第一终端的源端口接收到来自所述第二终端的第一访问请求数据包的情况下,所述第一终端获得第一访问请求数据包中的地址信息,并且向获得的地址信息发送响应数据包;
所述对称型NAT监听到所述第二终端的第一端口接收到响应数据包,停止对其他源端口的监听,其中,所述第一端口与所述获得的地址信息对应。


8.根据权利要求7所述的建立P2P连接的方法,其特征在于,还包括:
若在第n1个文件描述符记录的源端口的预设监听时间T结束时仍没有接收到响应数据包,则在预设条件下重新执行第一终端通过一个文件描述符以第二预设时间间隔t2发送n2个第二访问请求数据包的步骤。


9.根据权利要求7或8所述的建立P2P连接的方法,其特征在于,在第一终端通过一个文件描述符以第二预设时间间隔t2发送n2个第二访问请求数据包之前,还包括:
所述第一终端和所述第二终端分别向穿越辅助服务器发送信息获取请求;
所述第一终端和所述第二终端分别接收所述穿越辅助服务器发送的各自的地址信息和NAT类型;
所述第一终端和所述第二终端将所接收的各自的地址信息和NAT类型发送至访问管理服务器;
所述第一终端接收所述访问管理服务器反馈的所述第二终端的地址信息和NAT类型,并且所述第二终端接收所述访问管理服务器反馈的所述第一终端的地址信息和NAT类型。


10.根据权利要求9所述的建立P2P连接的方法,其特征在于,在第一终端通过一个文件描述符以第二预设时间间隔t2发送n2个第二访问请求数据包之前,还包括:<...

【专利技术属性】
技术研发人员:梁顺利郑翰超崔红磊王昊胡彪
申请(专利权)人:上海哔哩哔哩科技有限公司
类型:发明
国别省市:上海;31

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

1