CN113726901A - 一种基于ice的p2p通信方法及*** - Google Patents

一种基于ice的p2p通信方法及*** Download PDF

Info

Publication number
CN113726901A
CN113726901A CN202111028576.5A CN202111028576A CN113726901A CN 113726901 A CN113726901 A CN 113726901A CN 202111028576 A CN202111028576 A CN 202111028576A CN 113726901 A CN113726901 A CN 113726901A
Authority
CN
China
Prior art keywords
terminal
target
ice
transmission channel
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111028576.5A
Other languages
English (en)
Inventor
许孝东
王刚
马幸晖
王家宾
薛有义
罗国鸿
刘博�
何军辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi Shilian Technology Co ltd
Original Assignee
CENTURY DRAGON INFORMATION NETWORK CO LTD
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CENTURY DRAGON INFORMATION NETWORK CO LTD filed Critical CENTURY DRAGON INFORMATION NETWORK CO LTD
Priority to CN202111028576.5A priority Critical patent/CN113726901A/zh
Publication of CN113726901A publication Critical patent/CN113726901A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种基于ICE的P2P通信方法及***,包括第一终端、第二终端和服务器;服务器用于提供交互式联通建立ICE服务;第一终端与第二终端通过服务器建立ICE传输通道;若ICE传输通道的传输模式为中继模式,且两个终端分别处于端口受限锥型NAT网络、对称型NAT网络中,则两个终端基于预设的端口范围,在约定的时间内,互相发送UDP数据包,直到一终端成功接收到另一终端的目标UDP数据包;根据目标UDP数据包确定双方的目标端口号,进而建立P2P传输通道;将ICE传输通道切换为P2P传输通道,并通过P2P传输通道进行P2P通信。本申请使得处于不同局域网中的终端可以通过NAT接入公网,并实现P2P通信,较大限度地节省了服务器的中转开销,提高了带宽利用率。

Description

一种基于ICE的P2P通信方法及***
技术领域
本申请涉及P2P通信技术领域,更具体地说,是涉及一种基于ICE的P2P通信方法及***。
背景技术
上个世纪80年代,人们在设计IP地址时,估算再怎么发展也不会超过2的32次幂的终端设备接入互联网。此外,若地址长度设计太长,对当时设备的计算、存储及传输也会造成巨大的成本。于是,将IP地址设计为32位的长度。在相当长的一段时期内,32位的IP地址确实能够满足大部分的网络通信。
然而,随着互联网快速发展,逐渐发现32位的IP地址不够用,于是在网络中出现了网络地址转换技术(Network Address Translation,简称NAT)。NAT是一种在IP分组通过路由器或防火墙时,重写源IP地址和/或目的IP地址的技术,这种技术允许多台主机共享同一个公网地址,从而通过该公网地址接入网络,其主要目的就是为了缓解IPv4地址的枯竭所带来的问题。这种技术在普通的服务器/客户端模式下并不存在问题,因为请求总是由客户端发起,并且客户端也不需要维持长时间与服务器的连接。然而,NAT技术最大的问题在P2P(Peer to Peer)通信中不适用,即P2P模式下无法通过NAT实现地址的转换,从而实现P2P通信。
在视频监控领域,如果无法使用P2P通信,则流媒体数据只能通过服务器转发,而通过服务器转发需要消耗服务器大量的资源及带宽,大幅增加运营成本。为了降低服务器资源与带宽成本,提升流媒体数据的传输速率,因此需要解决在NAT协议下实现P2P通信的问题。
发明内容
有鉴于此,本申请提供了一种基于ICE的P2P通信方法及***,以实现NAT协议下终端之间的P2P通信。
为实现上述目的,本申请第一方面提供了基于ICE的P2P通信方法,包括:
通过端口受限锥型NAT网络接入公网;
与目标终端基于交互式联通建立技术ICE建立ICE传输通道,所述ICE传输通道的传输模式为中继模式,所述目标终端处于对称型NAT网络中;
基于预设的端口范围,在与目标终端约定的时间内,向目标终端发送UDP数据包,直到成功接收到目标终端的目标UDP数据包;
根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道;
将ICE传输通道切换为P2P传输通道,并通过P2P传输通道进行P2P通信。
优选地,所述基于预设的端口范围,在与目标终端约定的时间内,向目标终端发送UDP数据包的过程,包括:
根据预设的端口范围,随机生成N1个预测端口,其中,N1为根据所属的运营商以及网络类型而预先设定的值;
在所述与目标终端约定的时间内,以预设的周期遍历各预测端口,基于遍历到的预测端口,结合目标终端的公网IP,向目标终端发送UDP数据包,直到收到目标终端发来的第一UDP数据包时,停止遍历。
优选地,所述预设的周期为:T0/N1,其中,T0为所述与目标终端约定的时间的长度。
本申请第二方面提供了另一种基于ICE的P2P通信方法,包括:
通过对称型NAT网络接入公网;
与目标终端基于交互式联通建立技术ICE建立ICE传输通道,所述ICE传输通道的传输模式为中继模式,所述目标终端处于端口受限锥型NAT网络中;
在与目标终端约定的时间内,向目标终端发送UDP数据包,直到成功接收到目标终端的目标UDP数据包;
根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道;
将ICE传输通道切换为P2P传输通道,并通过P2P传输通道进行P2P通信。
优选地,在与目标终端约定的时间,向目标终端发送UDP数据包的过程,包括:
建立N2个套接字Socket,其中,N2为根据所属的运营商以及网络类型而预先设定的值;
在所述与目标终端约定的时间内,以预设的周期遍历各Socket,基于遍历到的Socket,结合目标终端的公网IP及端口,向目标终端发送UDP数据包,直到收到目标终端发来的第二UDP数据包时,停止遍历。
优选地,所述预设的周期为:T0/N2,其中,T0为所述与目标终端约定的时间的长度。
本申请第三方面提供了一种基于ICE的P2P通信***,包括处于端口受限锥型NAT网络中的第一终端、处于对称型NAT网络中的第二终端和服务器;
服务器用于为第一终端及第二终端提供交互式联通建立ICE服务;
第一终端与第二终端通过服务器建立ICE传输通道,所述ICE传输通道的传输模式为中继模式;
第一终端与第二终端基于预设的端口范围,在约定的时间内,互相发送UDP数据包,直到任一终端成功接收到另一终端的目标UDP数据包;
第一终端与第二终端根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道;
第一终端与第二终端将ICE传输通道切换为P2P传输通道,并通过P2P传输通道进行P2P通信。
优选地,第一终端与第二终端基于预设的端口范围,在约定的时间内,互相发送UDP数据包,直到任一终端成功接收到另一终端的目标UDP数据包的过程,包括:
第一终端根据预设的端口范围,随机生成N1个预测端口,其中,N1为根据第一终端所属的运营商以及网络类型而预先设定的值;
第二终端建立N2个套接字Socket,其中,N2为根据第二终端所属的运营商以及网络类型而预先设定的值;
在约定的时间内,第一终端以预设的周期遍历各预测端口,基于遍历到的预测端口,结合第二终端的公网IP,向第二终端发送UDP数据包,直到收到第二终端发来的UDP数据包时,停止遍历;
在所述约定的时间内,第二终端以预设的周期遍历各Socket,基于遍历到的Socket,结合第一终端的公网IP及端口,向第一终端发送UDP数据包,直到收到目标终端发来的UDP数据包时,停止遍历。
优选地,所述预设的端口范围在1024与65535之间。
优选地,所述网络类型包括WiFi、3G、4G、5G。
经由上述的技术方案可知,本申请第一终端与第二终端基于交互式联通建立技术ICE建立ICE传输通道。对于第一终端处于端口受限锥型NAT网络中,第二终端处于对称型NAT网络中的情况,ICE为其进行数据中转,使得第一终端与第二终端可以通过中继模式进行通信。对于这种情况,基于预设的端口范围,在约定的时间内,第一终端与第二终端互相发送UDP数据包,直到任一终端成功接收到另一终端的目标UDP数据包。然后根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道。最后第一终端与第二终端将ICE传输通道切换为P2P传输通道,并通过该P2P传输通道进行P2P通信。通过本申请的基于ICE的P2P通信***,使得处于不同局域网中的终端可以通过NAT接入公网,并实现P2P通信,较大限度地节省了服务器的中转开销,提高了带宽利用率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的基于ICE的P2P通信***的示意图;
图2为本申请实施例公开的基于ICE的P2P通信方法的示意图;
图3为本申请实施例公开的基于ICE的P2P通信装置的示意图;
图4为本申请实施例公开的另一个角度下的基于ICE的P2P通信方法的示意图;
图5为本申请实施例公开的另一个角度下的基于ICE的P2P通信装置的示意图;
图6示例了本申请实施例公开的ICE通道的建立流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有NAT网络存在4种类型,分别为全锥形(Full Cone NAT)、受限锥型(Restricted Cone NAT)、端口受限锥型(Port Restricted Cone NAT)和对称型(Symmetric NAT),而目前主流的用于支持P2P通信的ICE框架(Interactive ConnectivityEstablishment),不支持处于对称型的NAT网络下的P2P通信。因此如果想继续使用ICE框架,还需解决对称型NAT的P2P穿透问题。
本技术方案是在ICE框架基础上,通过采用智能碰撞算法实现端口预测,解决端口受限型NAT网络下的终端与对称型NAT网络下终端之间的P2P通信问题。
本申请实施例介绍的P2P通信方法可以应用于端口受限型NAT网络下的第一终端与对称型NAT网络下第二终端之间的P2P通信。请参阅图1,在网络架构上,可以划分为第一终端10、第二终端20及服务器30。其中,第一终端10及第二终端20可以是任何接入互联网的智能终端,包括计算机、手机、摄像头、麦克风等智能设备。
下面对本申请实施例提供的基于ICE的P2P通信方法进行描述。该方法是从第一终端10的角度,去描述本申请实施例的基于ICE进行P2P通信的具体过程。请参见图2,本申请实施例提供的基于ICE的P2P通信方法,可以包括:
步骤S110,通过端口受限锥型NAT网络接入公网。
具体地,第一终端10通过端口受限锥型NAT网络接入公网。
步骤S120,与目标终端建立ICE传输通道
具体地,第一终端10与第二终端20基于交互式联通建立技术ICE建立ICE传输通道。
其中,该ICE传输通道的传输模式为中继模式,且第二终端20处于对称型NAT网络中。
具体地,若ICE传输通道的传输模式为直连模式,意味着,服务器30成功为第一终端10与第二终端20打洞,第一终端10与第二终端20可以直接进行P2P通信。
若ICE传输通道的传输模式为中继模式,意味着,服务器30未能成功为第一终端10与第二终端20打洞,第一终端10与第二终端20通过服务器30的中继进行通信。
此时,需要判断第一终端10与第二终端20的NAT类型。若第一终端10处于端口受限锥型NAT网络中,第二终端20处于对称型NAT网络中,则可以开始两个终端之间的P2P穿透,建立两个终端之间的P2P连接。
步骤S130,基于预设的端口范围,在约定的时间内,向目标终端发送UDP(UserDatagram Protocol)数据包,直到成功接收到目标UDP数据包。
具体地,第一终端10基于预设的端口范围,在与第二终端20约定的时间内,向第二终端20发送UDP数据包,直到成功接收到第二终端20的目标UDP数据包。
该过程其实是端口试探的过程,在与第二终端20约定的时间内,通过向第二终端20发送UDP数据包,为第二终端20留下相应的洞。若第二终端20恰好在其中一个洞向第一终端10发送UDP数据包,则第一终端10能顺利接收到该UDP数据包,此时,停止端口试探。
步骤S140,根据目标UDP数据包确定双方的目标端口号,并建立P2P传输通道。
具体地,第一终端10根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道。
当第一终端10在步骤S130中成功收到第二终端20发来的目标UDP数据包后,意味着两个终端之间的链路被打开,能从该目标UDP数据包获取双方的目标端口号,通过双方的目标端口号信息以及双方的公网IP,可以建立P2P传输通道。
步骤S150,将ICE传输通道切换为P2P传输通道,并基于此进行P2P通信。
具体地,第一终端10将ICE传输通道切换为P2P传输通道,并通过P2P传输通道与第二终端20进行P2P通信。
当已经成功建立P2P传输通道后,则可以将两个终端之间的传输通道从ICE传输通道切换为P2P传输通道,使得两个终端之间的数据收发通过直连的方式进行传输,无需经过服务器的转发。
本申请第一终端10与第二终端20基于交互式联通建立技术ICE建立ICE传输通道。对于处在非对称型NAT网络中的第一终端10和第二终端20,ICE可以很高效地为其建立P2P通道,从而使得第一终端10与第二终端20可以以直连的方式进行通信。对于第一终端10处于端口受限锥型NAT网络中,第二终端20处于对称型NAT网络中的情况,ICE为其进行数据中转,使得第一终端10与第二终端20可以通过中继模式进行通信。对于这种情况,基于预设的端口范围,在约定的时间内,第一终端10与第二终端20互相发送UDP数据包,直到任一终端成功接收到另一终端的目标UDP数据包。然后根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道。最后第一终端10与第二终端20将ICE传输通道切换为P2P传输通道,并通过该P2P传输通道进行P2P通信。通过本申请的基于ICE的P2P通信***,使得处于不同局域网中的终端可以通过NAT接入公网,并实现P2P通信,较大限度地节省了服务器的中转开销,提高了带宽利用率。
在本申请的一些实施例中,上述步骤S140中,第一终端10基于预设的端口范围,在与第二终端20约定的时间内,向第二终端20发送UDP数据包的过程,可以包括:
S1,第一终端10根据预设的端口范围,随机生成N1个预测端口,其中,N1为根据第一终端10所属的运营商以及网络类型而预先设定的值;
S2,在与第二终端20约定的时间内,第一终端10以预设的周期遍历各预测端口,基于遍历到的预测端口,结合第二终端20的公网IP,向第二终端20发送UDP数据包,直到收到第二终端20发来的第一UDP数据包时,停止遍历。
在本申请的一些实施例中,上述S1中提及的预设的周期为:T0/N1,其中,T0为第一终端10与第二终端20约定的时间的长度。
例如,假设第一终端10与第二终端20约定的时间的长度为10秒,预测的端口数量为400个,则预设的周期为1/40秒。即,每1/40秒,往第二终端20发送一个UDP数据包,直到收到第二终端20发来的第一UDP数据包。当收到第二终端20发来的第一UDP数据包时,意味着端口碰撞成功,成功获得与第二终端20的通信端口。
下面对本申请实施例提供的基于ICE的P2P通信装置进行描述。下文描述的基于ICE的P2P通信装置与上文描述的基于ICE的P2P通信方法可相互对应参照。请参见图3,本申请实施例提供的ICE的P2P通信装置,可以包括:
NAT接入单元11,用于通过端口受限锥型NAT网络接入公网。
ICE通道建立单元12,用于与目标终端基于交互式联通建立技术ICE建立ICE传输通道,所述ICE传输通道的传输模式为中继模式,所述目标终端处于对称型NAT网络中。
穿透单元13,用于基于预设的端口范围,在与目标终端约定的时间内,向目标终端发送UDP数据包,直到成功接收到目标终端的目标UDP数据包;
P2P通道建立单元14,用于根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道;
通道切换单元15,将ICE传输通道切换为P2P传输通道,并通过P2P传输通道进行P2P通信。
下面从第二终端20的角度对本申请实施例提供的基于ICE的P2P通信方法进行描述。请参见图4,本申请实施例提供的基于ICE的P2P通信方法,可以包括:
步骤S210,通过对称型NAT网络接入公网。
具体地,第二终端20通过对称型NAT网络接入公网。
步骤S220,与目标终端建立ICE传输通道。
具体地,第二终端20与第一终端10基于交互式联通建立技术ICE建立ICE传输通道。
其中,该ICE传输通道的传输模式为中继模式,且第一终端10处于端口受限锥型NAT网络中。
步骤S230,基于预设的端口范围,在约定的时间内,向目标终端发送UDP数据包,直到成功接收到目标UDP数据包。
具体地,在与第一终端10约定的时间内,第二终端20向第一终端10发送UDP数据包,直到成功接收到第一终端10的目标UDP数据包。
该过程其实是端口试探的过程,在与第一终端10约定的时间内,通过向第一终端10发送UDP数据包,为第一终端10留下相应的洞。若第一终端10恰好在其中一个洞向第二终端20发送UDP数据包,则第二终端20能顺利接收到该UDP数据包,此时,停止端口试探。
步骤S240,根据目标UDP数据包确定双方的目标端口号,并建立P2P传输通道。
具体地,第二终端20根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道。
当第二终端20在步骤S230中成功收到第一终端10发来的目标UDP数据包后,意味着两个终端之间的链路被打开,能从该目标UDP数据包获取双方的目标端口号,通过双方的目标端口号信息以及双方的公网IP,可以建立P2P传输通道。
步骤S250,将ICE传输通道切换为P2P传输通道,并基于此进行P2P通信。
具体地,第二终端20将ICE传输通道切换为P2P传输通道,并通过P2P传输通道与第一终端10进行P2P通信。
当已经成功建立P2P传输通道后,则可以将两个终端之间的传输通道从ICE传输通道切换为P2P传输通道,使得两个终端之间的数据收发通过直连的方式进行传输,无需经过服务器的转发。
在本申请的一些实施例中,上述步骤S240在与第一终端10约定的时间,第二终端20向第一终端10发送UDP数据包的过程,可以包括:
S1,第二终端20建立N2个套接字Socket,其中,N2为根据第二终端20所属的运营商以及网络类型而预先设定的值。
S2,在所述与第一终端10约定的时间内,第二终端20以预设的周期遍历各Socket,基于遍历到的Socket,结合第一终端10的公网IP及端口,向第一终端10发送UDP数据包,直到收到第一终端10发来的第二UDP数据包时,停止遍历。
其中,第二终端20的Socket所绑定的本地端口,可以是***随机分配,也可以是预定义的端口。
在本申请的一些实施例中,上述S1中提及的预设的周期为:T0/N2,其中,T0为第二终端20与第一终端10约定的时间的长度。
例如,假设与第一终端10约定的时间的长度为12秒,所建立的Socket数量为200个,则预设的周期为12/200秒。即,每0.06秒,向第一终端10发送一个UDP数据包,直到收到第一终端10发来的第一UDP数据包。当收到第一终端10发来的第一UDP数据包时,意味着端口碰撞成功,成功获得与第一终端10的通信端口。
下面对本申请实施例提供的基于ICE的P2P通信装置进行描述。下文描述的基于ICE的P2P通信装置与上文描述的基于ICE的P2P通信方法可相互对应参照。请参见图5,本申请实施例提供的ICE的P2P通信装置,可以包括:
NAT接入单元21,用于通过对称型NAT网络接入公网;
ICE通道建立单元22,用于与目标终端基于交互式联通建立技术ICE建立ICE传输通道,所述ICE传输通道的传输模式为中继模式,所述目标终端处于端口受限锥型NAT网络中;
穿透单元23,用于在与目标终端约定的时间内,向目标终端发送UDP数据包,直到成功接收到目标终端的目标UDP数据包;
P2P通道建立单元24,用于根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道;
通道切换单元25,用于将ICE传输通道切换为P2P传输通道,并通过P2P传输通道进行P2P通信。
下面介绍本申请实施例提供的基于ICE的P2P通信***。本申请实施例的基于ICE的P2P通信***从***的角度介绍基于ICE的P2P通信方法。请参阅图1,本申请实施例提供的基于ICE的P2P通信***,可以包括第一终端10、第二终端20和服务器30。
服务器30用于为第一终端10及第二终端20提供交互式联通建立ICE服务。
其中,根据ICE技术框架,服务器30可以包括STUN服务及TURN服务。STUN服务可以用于判断客户端的NAT类型,以及,接受第一终端10及第二终端20的请求,并且把客户端的公网IP、端口封装到ICE候选地址Candidate中。TURN服务可以用于为客户端打洞,以及,为客户端提供消息转发。
第一终端10与第二终端20通过服务器30建立ICE传输通道,该ICE传输通道的传输模式为中继模式。
第一终端10与第二终端20基于预设的端口范围,在约定的时间内,互相发送UDP数据包,直到任一终端成功接收到另一终端的目标UDP数据包。
第一终端10与第二终端20根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道。
第一终端10与第二终端20将ICE传输通道切换为P2P传输通道,并通过P2P传输通道进行P2P通信。
在本申请的一些实施例中,请参阅图6,第一终端10与第二终端20通过服务器30建立ICE传输通道的过程,可以包括:
S1,收集本地的候选地址。
具体地,第一终端10收集本地的候选地址,并通过服务器30将所收集到的候选地址转发给第二终端20。
S2,交换候选地址。
具体地,第二终端20收到第一终端10的候选地址后,也开始收集本地的候选地址,并通过服务器30将这些候选地址转发给第二终端20。
此时,完成第一终端10与第二终端20的候选地址的交换。
S3,进行ICE协商。
具体地,第一终端10与第二终端20开始ICE协商,依次按主机地址、外网反射地址与中继地址三种候选地址类型组成的地址对,逐一执行连通性检测,并根据检测结果选取最优的地址对。
S4,建立ICE通道。
具体地,根据所选取的最优地址对,建立ICE传输通道。此时由于只有一条通道,第一终端10与第二终端20只能基于ICE通道进行数据传输。
当基于上述方法建立好ICE传输通道后,进一步获取第一终端10与第二终端20的连接关系,判断该连接关系是否为中继连接。当确定为中继连接后,判断第一终端10与第二终端20所在的NAT网络的类型。
若第一终端10处于端口受限锥型NAT网络中,第二终端20处于对称型NAT网络中,则开始两个终端之间的P2P穿透。其中,准备P2P穿透的两个终端只要一个处于端口受限锥型NAT网络中,另一个处于对称型NAT网络中即可。本文将终端的NAT条件定义为:第一终端10处于端口受限锥型NAT网络中,第二终端20处于对称型NAT网络中,仅仅是为方便描述。
在本申请的一些实施例中,第一终端10及第二终端20基于预设的端口范围,在约定的时间内,互相发送UDP数据包,直到任一终端成功接收到另一终端的目标UDP数据包的过程,可以包括:
S1,第一终端10根据预设的端口范围,随机生成N1个预测端口,其中,N1为根据第一终端10所属的运营商以及网络类型而预先设定的值。
S2,第二终端20建立N2个套接字Socket,其中,N2为根据第二终端20所属的运营商以及网络类型而预先设定的值。
S3,在约定的时间内,第一终端10以预设的周期遍历各预测端口,基于遍历到的预测端口,结合第二终端20的公网IP,向第二终端20发送UDP数据包,直到收到第二终端20发来的UDP数据包时,停止遍历。
S4,在所述约定的时间内,第二终端20以预设的周期遍历各Socket,基于遍历到的Socket,结合第一终端10的公网IP及端口,向第一终端10发送UDP数据包,直到收到目标终端发来的UDP数据包时,停止遍历。
在本申请的一些实施例中,预设的端口范围在1024与65535之间。
具体地,端口的取值范围是0~65535。一般地,范围在0~1023之间的端口已经分配给一些常用的程序,因此本申请将端口范围设置在1024~65535之间。
在本申请的一些实施例中,第一终端10及第二终端20的网络类型可以包括WiFi、3G、4G、5G。
在本申请的一些实施例中,第一终端10及第二终端20所属的运营商可以是网络服务的供应商,各个国家或地区会有当地的运营商。而不同的运营商对UDP数据包的地址攻击会有不同的定义及防范策略。在本申请实施例具体的实施过程中,可以根据不同的运营商策略来对P2P穿透中所采用的端口数量及发送时机进行限定。
综上所述:
本申请第一终端与第二终端基于交互式联通建立技术ICE建立ICE传输通道。对于处在非对称型NAT网络中的第一终端和第二终端,ICE可以很高效地为其建立P2P通道,从而使得第一终端与第二终端可以以直连的方式进行通信。对于第一终端处于端口受限锥型NAT网络中,第二终端处于对称型NAT网络中的情况,ICE为其进行数据中转,使得第一终端与第二终端可以通过中继模式进行通信。对于这种情况,基于预设的端口范围,在约定的时间内,第一终端与第二终端互相发送UDP数据包,直到任一终端成功接收到另一终端的目标UDP数据包。然后根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道。最后第一终端与第二终端将ICE传输通道切换为P2P传输通道,并通过该P2P传输通道进行P2P通信。通过本申请的基于ICE的P2P通信***,使得处于不同局域网中的终端可以通过NAT接入公网,并实现P2P通信,较大限度地节省了服务器的中转开销,提高了带宽利用率。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种基于ICE的P2P通信方法,其特征在于,包括:
通过端口受限锥型NAT网络接入公网;
与目标终端基于交互式联通建立技术ICE建立ICE传输通道,所述ICE传输通道的传输模式为中继模式,所述目标终端处于对称型NAT网络中;
基于预设的端口范围,在与目标终端约定的时间内,向目标终端发送UDP数据包,直到成功接收到目标终端的目标UDP数据包;
根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道;
将ICE传输通道切换为P2P传输通道,并通过P2P传输通道进行P2P通信。
2.根据权利要求1所述的方法,其特征在于,所述基于预设的端口范围,在与目标终端约定的时间内,向目标终端发送UDP数据包的过程,包括:
根据预设的端口范围,随机生成N1个预测端口,其中,N1为根据所属的运营商以及网络类型而预先设定的值;
在所述与目标终端约定的时间内,以预设的周期遍历各预测端口,基于遍历到的预测端口,结合目标终端的公网IP,向目标终端发送UDP数据包,直到收到目标终端发来的第一UDP数据包时,停止遍历。
3.根据权利要求2所述的方法,其特征在于,所述预设的周期为:T0/N1,其中,T0为所述与目标终端约定的时间的长度。
4.一种基于ICE的P2P通信方法,其特征在于,包括:
通过对称型NAT网络接入公网;
与目标终端基于交互式联通建立技术ICE建立ICE传输通道,所述ICE传输通道的传输模式为中继模式,所述目标终端处于端口受限锥型NAT网络中;
在与目标终端约定的时间内,向目标终端发送UDP数据包,直到成功接收到目标终端的目标UDP数据包;
根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道;
将ICE传输通道切换为P2P传输通道,并通过P2P传输通道进行P2P通信。
5.根据权利要求4所述的方法,其特征在于,在与目标终端约定的时间,向目标终端发送UDP数据包的过程,包括:
建立N2个套接字Socket,其中,N2为根据所属的运营商以及网络类型而预先设定的值;
在所述与目标终端约定的时间内,以预设的周期遍历各Socket,基于遍历到的Socket,结合目标终端的公网IP及端口,向目标终端发送UDP数据包,直到收到目标终端发来的第二UDP数据包时,停止遍历。
6.根据权利要求5所述的方法,其特征在于,所述预设的周期为:T0/N2,其中,T0为所述与目标终端约定的时间的长度。
7.一种基于ICE的P2P通信***,其特征在于,包括处于端口受限锥型NAT网络中的第一终端、处于对称型NAT网络中的第二终端和服务器;
服务器用于为第一终端及第二终端提供交互式联通建立ICE服务;
第一终端与第二终端通过服务器建立ICE传输通道,所述ICE传输通道的传输模式为中继模式;
第一终端与第二终端基于预设的端口范围,在约定的时间内,互相发送UDP数据包,直到任一终端成功接收到另一终端的目标UDP数据包;
第一终端与第二终端根据目标UDP数据包确定双方的目标端口号,并根据双方的公网IP及目标端口号建立P2P传输通道;
第一终端与第二终端将ICE传输通道切换为P2P传输通道,并通过P2P传输通道进行P2P通信。
8.根据权利要求7所述的***,其特征在于,第一终端与第二终端基于预设的端口范围,在约定的时间内,互相发送UDP数据包,直到任一终端成功接收到另一终端的目标UDP数据包的过程,包括:
第一终端根据预设的端口范围,随机生成N1个预测端口,其中,N1为根据第一终端所属的运营商以及网络类型而预先设定的值;
第二终端建立N2个套接字Socket,其中,N2为根据第二终端所属的运营商以及网络类型而预先设定的值;
在约定的时间内,第一终端以预设的周期遍历各预测端口,基于遍历到的预测端口,结合第二终端的公网IP,向第二终端发送UDP数据包,直到收到第二终端发来的UDP数据包时,停止遍历;
在所述约定的时间内,第二终端以预设的周期遍历各Socket,基于遍历到的Socket,结合第一终端的公网IP及端口,向第一终端发送UDP数据包,直到收到目标终端发来的UDP数据包时,停止遍历。
9.根据权利要求8所述的***,其特征在于,所述预设的端口范围在1024与65535之间。
10.根据权利要求8所述的***,其特征在于,所述网络类型包括WiFi、3G、4G、5G。
CN202111028576.5A 2021-09-02 2021-09-02 一种基于ice的p2p通信方法及*** Pending CN113726901A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111028576.5A CN113726901A (zh) 2021-09-02 2021-09-02 一种基于ice的p2p通信方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111028576.5A CN113726901A (zh) 2021-09-02 2021-09-02 一种基于ice的p2p通信方法及***

Publications (1)

Publication Number Publication Date
CN113726901A true CN113726901A (zh) 2021-11-30

Family

ID=78681219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111028576.5A Pending CN113726901A (zh) 2021-09-02 2021-09-02 一种基于ice的p2p通信方法及***

Country Status (1)

Country Link
CN (1) CN113726901A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363676A (zh) * 2022-01-06 2022-04-15 重庆紫光华山智安科技有限公司 视频流传输方法、装置、设备及介质
CN117176781A (zh) * 2023-11-01 2023-12-05 北京融为科技有限公司 点对点组网方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105827748A (zh) * 2016-05-12 2016-08-03 东莞市南星电子有限公司 一种基于ICE的SIP穿越Symmetric NAT设备的方法
CN107580082A (zh) * 2017-09-18 2018-01-12 北京奇艺世纪科技有限公司 一种对称型nat的穿透方法及装置
CN109600449A (zh) * 2018-12-24 2019-04-09 深圳市网心科技有限公司 一种p2p穿透方法、装置、***及存储介质
CN111314481A (zh) * 2020-02-27 2020-06-19 腾讯科技(深圳)有限公司 一种数据传输方法、装置、设备以及可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105827748A (zh) * 2016-05-12 2016-08-03 东莞市南星电子有限公司 一种基于ICE的SIP穿越Symmetric NAT设备的方法
CN107580082A (zh) * 2017-09-18 2018-01-12 北京奇艺世纪科技有限公司 一种对称型nat的穿透方法及装置
CN109600449A (zh) * 2018-12-24 2019-04-09 深圳市网心科技有限公司 一种p2p穿透方法、装置、***及存储介质
CN111314481A (zh) * 2020-02-27 2020-06-19 腾讯科技(深圳)有限公司 一种数据传输方法、装置、设备以及可读存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363676A (zh) * 2022-01-06 2022-04-15 重庆紫光华山智安科技有限公司 视频流传输方法、装置、设备及介质
CN117176781A (zh) * 2023-11-01 2023-12-05 北京融为科技有限公司 点对点组网方法及装置
CN117176781B (zh) * 2023-11-01 2024-03-26 北京融为科技有限公司 点对点组网方法及装置

Similar Documents

Publication Publication Date Title
US9402216B2 (en) Methods, media, and devices for moving a connection from one point of access to another point of access
US10097645B2 (en) Method and apparatus of performing peer-to-peer communication establishment and connection change-over
US9515995B2 (en) Method and apparatus for network address translation and firewall traversal
WO2020248963A1 (zh) 一种建立端到端网络连接的方法、装置及网络***
US20100088427A1 (en) Selective Routing of Data Transmission Between Clients
WO2009090953A1 (ja) 無線通信端末、方法、プログラム、記録媒体、および無線通信システム
CN113726901A (zh) 一种基于ice的p2p通信方法及***
US10367893B1 (en) Method and apparatus of performing peer-to-peer communication establishment
RU2373654C1 (ru) Способ установления однорангового соединения и предназначенная для этого система
WO2013040970A1 (zh) 中继节点选择方法及装置
US11503164B2 (en) Media interaction method in DECT network cluster
EP3044929B1 (en) A mobile-device based proxy for browser-originated procedures
WO2015131567A1 (zh) 一种IPv6地址管理方法、装置和终端
CN106161534B (zh) 发送、传递和获取能力的方法及装置
CN116708381B (zh) 跨网络的数据传输方法、装置和存储介质及电子设备
CN110691428A (zh) 一种心跳包的发送方法、装置、设备、存储介质
Ata et al. Architectural design of unified multiplex communications for one-time use of IP addresses
CN116647538B (zh) 一种能够访问不同内网服务的连接装置
WO2012075779A1 (zh) 一种保证移动节点服务质量的方法及***
Zhang et al. Research on multi-path network balancing method for cloud computing
KR20220149721A (ko) 네트워크 장치 역할 자가 적응 방법 및 장치
Hu et al. An autonomic interface selection mechanism for multi-interface host
CN117499375A (zh) 一种WebRTC通信选路方法、客户端、存储介质
CN117202410A (zh) 融合网络的数据通信方法、设备和存储介质
CN113973303A (zh) 基于数据包分析的移动终端设备接入控制网关的实现方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20211215

Address after: Room 1423, No. 1256 and 1258, Wanrong Road, Jing'an District, Shanghai 200040

Applicant after: Tianyi Digital Life Technology Co.,Ltd.

Address before: 1 / F and 2 / F, East Garden, Huatian International Plaza, 211 Longkou Middle Road, Tianhe District, Guangzhou, Guangdong 510000

Applicant before: Century Dragon Information Network Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240325

Address after: Unit 1, Building 1, China Telecom Zhejiang Innovation Park, No. 8 Xiqin Street, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province, 311100

Applicant after: Tianyi Shilian Technology Co.,Ltd.

Country or region after: China

Address before: Room 1423, No. 1256 and 1258, Wanrong Road, Jing'an District, Shanghai 200040

Applicant before: Tianyi Digital Life Technology Co.,Ltd.

Country or region before: China

TA01 Transfer of patent application right