CN110730203A - 一种p2p通信方法及装置 - Google Patents
一种p2p通信方法及装置 Download PDFInfo
- Publication number
- CN110730203A CN110730203A CN201910833233.2A CN201910833233A CN110730203A CN 110730203 A CN110730203 A CN 110730203A CN 201910833233 A CN201910833233 A CN 201910833233A CN 110730203 A CN110730203 A CN 110730203A
- Authority
- CN
- China
- Prior art keywords
- terminal
- data packet
- type
- packets
- audio
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种P2P通信方法及装置,涉及通信技术领域,实现高效以及节约资源的P2P通信。具体方案为:第一终端通过P2P打洞的方式,建立与第二终端间的一条P2P通道;其中,该P2P通道用于直连传输一种或多种业务的不同类型的业务数据包;第一终端通过P2P通道,向第二终端发送第一数据包,第一数据包包括第一类型标识,第一类型标识用于指示第一数据包的类型。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种点对点(peer-to-peer,P2P)通信方法及装置。
背景技术
随着移动互联网的快速发展,终端支持业务越来越多,运营商的网络带宽也逐渐提升以应对终端传输更多的业务数据。终端间的业务数据交互是终端业务中的一大方面,随着即时通信业务的快速发展,音视频通话这一终端间的业务数据交互,已经是人们日常生活交流的主要方式。
终端之间交互业务数据的方式,目前有通过专有云网络服务器转发、通过P2P直连通道方式转发,由于P2P直连方式通过互联网(Internet)进行转发,网络侧无需承担转发成本的优势,使得其广泛应用。
当部署于两个局域网中的终端需进行P2P通信时,需先在防火墙打洞以建立P2P直连通道。若终端进行具有多种类型业务数据的业务时,需要在两个终端间建立多个通道(通道数量与业务类型的数量相同),即在防火墙之间打洞多次,以使用不同的P2P通道发送不同类型的业务数据。例如音视频业务时,终端间交互的业务数据包括音频实时传输协议(real-time transport protocol,RTP)类型的数据、音频实时传输协议(real-timetransport control protocol,RTCP)类型的数据、视频RTP类型的数据、视频RTCP类型的数据。
终端进行具有多种类型业务数据的业务时,如何实现高效以及节约资源的P2P通信,成为亟待解决的问题。
发明内容
本申请提供一种P2P通信方法及装置,实现高效以及节约资源的P2P通信。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种P2P通信方法,该方法可以包括:第一终端通过P2P打洞的方式,建立与第二终端间的一条P2P通道;其中,该P2P通道用于直连传输一种或多种业务的不同类型的业务数据包;第一终端通过P2P通道,向第二终端发送第一数据包,第一数据包包括第一类型标识,第一类型标识用于指示第一数据包的类型。
通过本申请提供的P2P通信方法,在数据包中通过类型标识指示不同业务的不同类型的业务数据包,以实现通过一条P2P通道直连传输一种或多种业务的不同类型的业务数据包。这样一来,P2P通信的终端之间仅需要打洞一次,就可以实现直连传输一种或多种业务的不同类型的业务数据包,提高了P2P通信的效率,也节约了资源。
其中,第一终端可以向第二终端通过建立的一条P2P通道,向第二终端发送一个或多个第一数据包,每个第一数据包包括用于指示自身类型的类型标识,第一终端向第二终端发送的一个或多个第一数据包形成第一终端向第二终端发送的数据流。
结合第一方面,在一种可能的实现方式中,本申请提供的P2P通信方法还可以包括:第一终端通过P2P通道从第二终端接收第二数据包,第二数据包包括第二类型标识,第二类型标识用于指示第二数据包的类型。
同样的,第一终端通过建立的一条P2P通道,可以从第二终端接收一个或多个第二数据包,每个第二数据包包括用于指示自身类型的类型标识,第一终端从第二终端接收的一个或多个第二数据包形成第二终端向第一终端发送的数据流。
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,上述第一类型标识或者第二类型标识可以位于数据包中应用协议头之前。
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,上述第一类型标识或者第二类型标识可以位于数据包中传输协议和应用协议之前。
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一类型标识或者第二类型标识为1个字段。
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一数据包或者第二数据包为音视频业务的数据包;第一数据包或者第二数据包的类型包括下述类型中的一种或多种:音频RTP类型、音频RTCP类型、视频RTP类型、视频RTCP类型。以实现音视频场景中高效以及节约资源的P2P通信。
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,本申请提供的P2P通信方法可以应用于音视频通话过程,相应的,第一终端通过建立的一条P2P通道,向第二终端发送第一数据包,具体可以实现为:第一终端通过该P2P通道,向第二终端发送数据流,该数据流包括N个第一数据包,N大于或等于1,第一数据包为下述任一类型的数据包:音频RTP数据包、音频RTCP数据包、视频RTP数据包、视频RTCP数据包。
第二方面,本申请提供一种P2P通信装置,该装置可以是终端,也可以是终端中的装置或者芯片系统,或者是能够和终端匹配使用的装置。该P2P通信装置可以实现上述各方面或者各可能的设计中所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。如:该P2P通信装置可以包括:建立单元及发送单元。
其中,建立单元,用于通过P2P打洞的方式,建立与第二终端间的一条P2P通道;其中,该P2P通道用于直连传输一种或多种业务的不同类型的业务数据包。
发送单元,用于通过建立单元建立的一条P2P通道,向第二终端发送第一数据包,第一数据包包括第一类型标识,第一类型标识用于指示第一数据包的类型。
需要说明的是,第二方面提供的P2P通信装置,用于执行上述第一方面提供的P2P通信方法,具体实现可以参考上述第一方面的具体实现。
第三方面,本申请提供一种终端,该终端可以包括:处理器,存储器;处理器,存储器耦合,存储器可用于存储计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被终端执行时,使得终端执行如第一方面或任一种可能的实现方式面所述的P2P通信方法。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质可以包括:计算机软件指令;当计算机软件指令在终端中运行时,使得该终端执行如第一方面或第一方面的可能实现方式中任一项所述的P2P通信方法。
第五方面,本申请提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行如权利要求第一方面或任一种可能的实现方式中任一项所述的P2P通信方法。
第六方面,本申请提供一种芯片系统,该芯片系统应用于终端;终端包括接口电路和处理器;接口电路和处理器通过线路互联;接口电路用于从终端的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行该计算机指令时,芯片系统执行如第一方面或任一种可能的实现方式中任一项所述的P2P通信方法。
第七方面,本申请提供一种P2P通信系统,包括第一终端及第二终端,第一终端及第二终端执行如第一方面或第一方面的可能实现方式中任一项所述的P2P通信方法。
应当理解的是,本申请中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
图1为终端之间交互业务数据的两种实现方式的示意图;
图2为本申请实施例提供的一种通信系统的架构示意图;
图3为本申请实施例提供的一种通信装置的结构示意图;
图4为本申请实施例提供的一种P2P通信方法的流程示意图;
图5为本申请实施例提供的一种数据包的结构示意图;
图6为本申请实施例提供的另一种数据包的结构示意图;
图7为本申请实施例提供的另一种P2P通信方法的流程示意图;
图8为本申请实施例提供的一种音视频通信的系统架构的示意图;
图9为本申请实施例提供的一种音视频报文映射关系的示意图;
图10为本申请实施例提供的一种P2P通信装置的结构示意图;
图11为本申请实施例提供的另一种P2P通信装置的结构示意图。
具体实施方式
本申请说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
图1示意了终端之间交互业务数据的两种实现方式。如图1所示,终端之间可以采用方式1,通过专有云网络服务器转发实现业务数据交互,终端之间也可以采用方式2,通过穿过防火墙的P2P直连通道访问互联网(internet)实现业务数据交互,以减轻服务器压力。
通过P2P直连通道转发实现业务数据交互的基础,是终端间建立穿过防火墙的P2P通信通道,也称之为P2P打洞。当前,终端间进行P2P打洞建立穿过防火墙的P2P通信通道时,终端通过服务器交换网络地址转换(network address translation,NAT)信息,然后终端之间进行交互完成NAT设备打洞。例如,一种终端间进行P2P打洞建立P2P通信通道的过程可以包括如下步骤:
步骤1、双方都通过用户数据包协议(user datagram protocol,UDP)与服务器通讯。
网关默认就做了外网网络协议(internet protocol,IP)和端口号与内网IP与端口号的映射,服务器无需知道客户的真正内网IP。
步骤2、终端A通过服务器获取终端B的外网地址与端口。
步骤3、终端A向终端B的外网IP地址与端口发送消息。
在步骤3的发送中,终端B的网关会拒收这条消息,因为它的映射中并没有这条规则。但是终端A的网关会增加一条允许规则,允许接收从终端B发送过来的消息。
步骤4、服务器要求终端B发送一个消息到终端A的外网IP地址与端口号。
步骤5、终端B向终端A的外网IP地址与端口号发送一条消息。
这时,终端B的网关会增加一条允许规则,允许接收从终端A发送过来的消息。由于步骤3中终端A的网关已经增加了允许接收从终端B发送过来的消息的规则,此时终端A就可以接收到终端B的消息。
由于终端A的网关与终端B的网关都增加了允许规则,终端A与终端B都可以向对方的外网IP地址和端口号发送消息,这样就实现了终端A和终端B的互通消息。
需要说明的是,上述终端间进行P2P打洞建立P2P通信通道的过程为示例性描述,并不是具体限定。在实际应用中,终端间进行P2P打洞建立P2P通信通道的过程可以参照规范RFC3489。
当前,业务数据中通过端口号与P2P通道实现关联进行传输,若传输不同类型的业务数据则需要建立多条P2P通道,不同类型的业务数据通过不同端口号关联到不同的P2P通道进行传输,那么则需要在防火墙之间打洞多次,打洞时间长且浪费资源。
基于此,本申请提供了一种P2P通信方法,其基本原理是:在业务数据报文中通过扩展字段指示报文类型,终端之间可以通过一条P2P通道传输不同类型的业务数据,只需要打洞一次,提高了效率且节约了资源。
本申请提供的P2P通信方法,可以应用于图2示意的通信系统中。如图2所示,该通信系统包括终端201、网关202以及服务器203。
其中,终端201通过各自连接的网关202与其他终端201交互,终端201之间可以通过打洞方式建立P2P直连通道(图2中虚线所示),然后通过P2P直连通道进行直接交互。网关202中可以部署防火墙(图中未示出)。
需要说明的是,图2仅是示意了一种通信系统的架构,在实际应用中,本申请方案应用的通信系统的规模可以根据实际配置,本申请实施例对此不进行具体限定。
需要说明的是,本申请附图中各个网元的实际产品形态可以根据实际需求配置,附图中只是举例示意了各个网元的类型,并不是对此的具体限定。
示例性的,图2示意的通信系统,可应用于音视频通话过程中传输音视频数据中。除此之外,图2示意的通信系统还可部署在其他场景中实现业务数据的传输。
图2示意的通信系统可以为第三代(3rd generation,3G)、第四代(4thgeneration,4G)、第五代(5th generation,5G)移动通信及以后的通信系统,不予限制。
终端201也可以称为用户设备(user equipment,UE)或者终端设备(terminal)。终端201可以包括但不限于手机(mobile phone)、平板电脑或带无线收发功能的电脑、智能设备等等。
下面结合附图,对本申请的实施例进行具体阐述。
一方面,本申请实施例提供一种P2P通信装置,用于执行本申请提供的P2P通信方法,该P2P通信装置可以部署于图2所示的通信系统中的终端201中,或者,该P2P通信装置可以部署于图2所示的通信系统中的终端201。图3示出的是与本申请各实施例相关的一种P2P通信装置30。如图3所示,P2P通信装置30可以包括处理器301、存储器302以及收发器303。
下面结合图3对P2P通信装置30的各个构成部件进行具体的介绍:
其中,存储器302可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者上述种类的存储器的组合,用于存储可实现本申请方法的程序代码、配置文件或其他内容。
处理器301是P2P通信装置30的控制中心,可以是一个中央处理器(centralprocessing unit,CPU),也可以是特定集成电路(application specific integratedcircuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。
收发器303用于与其他设备之间通信以及数据传输。
具体的,处理器301通过运行或执行存储在存储器302内的软件程序和/或模块,以及调用存储在存储器302内的数据,执行如下功能:
通过P2P打洞的方式,建立与第二终端间的一条P2P通道;其中,该P2P通道用于直连传输一种或多种业务的不同类型的业务数据包;通过P2P通道,向第二终端发送第一数据包,第一数据包包括第一类型标识,第一类型标识用于指示第一数据包的类型。
需要说明的是,图3示意的P2P通信装置30的架构只是一种示例,并不是具体限定。例如,P2P通信装置30可以为终端或其他电子设备,本申请实施例对于P2P通信装置30的实际产品形态不进行具体限定。
再一方面,本申请实施例提供一种P2P通信方法,如图4所示,该方法可以包括:
S401、第一终端通过P2P打洞的方式,建立与第二终端间的一条P2P通道。
其中,S401中建立的这一条P2P通道用于直连传输一种或多种业务的不同类型的业务数据包。等价的,S401中建立的这一条P2P通道,用于直连传输第一终端与第二终端间采用P2P直连方式传输的所有类型的业务数据包。
需要说明的是,不同类型的业务数据包,可以属于同一种业务,也可以属于不同种业务,本申请实施例对此不进行具体限定。
还需要说明的是,第一终端与第二终端是进行P2P直连通信的通信双方,任意两个进行P2P直连通信的通信双方都可以称为本文所称第一终端与第二终端。
具体的,S401中第一终端建立P2P通道的方式,可以参照前述终端间进行P2P打洞建立P2P通信通道的过程,此处不再进行赘述。
进一步的,当S401中第一终端与第二终端建立了该P2P通道后,当第一终端与第二终端间执行S402进行直连通信,完成业务数据包的传输交互。
S402、第一终端通过建立的P2P通道,向第二终端发送第一数据包,第一数据包包括第一类型标识。
其中,第一类型标识用于指示第一数据包的类型。本申请实施例对于业务数据包的类型不进行具体限定。
具体的,在S402中,第一终端可以向第二终端通过建立的一条P2P通道,向第二终端发送一个或多个第一数据包,每个第一数据包包括用于指示自身类型的类型标识,第一终端向第二终端发送的一个或多个第一数据包形成第一终端向第二终端发送的数据流。
例如,当本申请实施例提供的P2P通信方法应用于音视频传输场景中时,第一数据包可以为音视频业务的数据包。此时,第一数据包的类型可以包括下述类型中的一种或多种:音频RTP类型、音频RTCP类型、视频RTP类型、视频RTCP类型;相应的,第一数据包可以为下述类型数据包中的一种或多种:音频实时传输协议RTP数据包、音频实时传输控制协议RTCP数据包、视频RTP数据包、视频RTCP数据包。
具体的,本申请提供的P2P通信方法可以应用于音视频通话过程,S402中第一终端通过建立的一条P2P通道,向第二终端发送第一数据包,具体可以实现为:第一终端通过该P2P通道,向第二终端发送数据流,该数据流包括N个第一数据包,N大于或等于1,第一数据包为下述任一类型的数据包:音频RTP数据包、音频RTCP数据包、视频RTP数据包、视频RTCP数据包。
具体的,本申请实施例对于用于指示数据包的类型的类型标识的具体形式以及内容不进行具体限定,在实际应用中可以根据实际需求配置。例如,用于指示数据包的类型的类型标识(例如第一类型标识)可以为显式的类型的名称,或者也可以为隐式的与数据包类型对应的阿拉伯数字,或者其他。
具体的,用于指示数据包的类型的类型标识的占用的字段长度可以根据实际需求配置,本申请实施例不进行具体限定。例如,可以配置类型标识(例如第一类型标识)为1个字段。
具体的,用于指示数据包的类型的类型标识在数据包中的具体位置,可以根据实际需求配置,本申请实施例不进行具体限定。
例如,可以配置类型标识(例如第一类型标识)位于数据包中应用协议头之前。
例如,可以配置类型标识(例如第一类型标识)位于数据包中传输协议与应用协议头之间。图5示意了一种数据包的结构,如图5所示,类型标识位于数据包中传输协议(图5中示意为UDP头)与应用协议之间。
示例性的,在音视频传输场景中,将阿拉伯数字1-4指示数据包的类型的类型标识,分别指示音频RTP类型、音频RTCP类型、视频RTP类型、视频RTCP类型。
例如,第一终端发送的视频RTP数据包时,该数据包的类型标识为3,该数据包的结构如图6所示。
需要说明的是,第一数据包为第一终端向第二终端发送的任一种数据包,并不构成限定。在S402中,第一终端可以采用S401中建立的P2P通道,向第二终端发送多种类型的数据包,不同类型的数据包中的类型标识不同,每一类数据包中的类型标识用于指示所属数据包的类型。第一终端通过一个P2P通道向第二终端发送的多种类型的数据包构成第一终端向第二终端发送的一条数据流。
通过本申请提供的P2P通信方法,在数据包中通过类型标识指示不同类型的业务数据包,以实现通过一条P2P通道直连传输一种或多种业务的不同类型的业务数据包。这样一来,P2P通信的终端之间仅需要打洞一次,就可以实现直连传输一种或多种业务的不同类型的业务数据包,提高了P2P通信的效率,也节约了资源。
进一步的,第一终端向第二终端发送数据包之后,还可以接收第二终端发送的数据包,如图7所示,本申请实施例提供的P2P通信方法还可以包括S403。
S403、第一终端通过P2P通道从第二终端接收第二数据包,第二数据包包括第二类型标识。
其中,第二类型标识用于指示第二数据包的类型。
对于类型标识已经在S402中进行了详细说明,此处不再进行赘述。第二类型标识与第一类型标识的形式相似,只是用于指示不同类型的数据包而已。
具体的,在S403中,第一终端通过建立的一条P2P通道,可以从第二终端接收一个或多个第二数据包,每个第二数据包包括用于指示自身类型的类型标识,第一终端通过建立的一条P2P通道从第二终端接收的一个或多个第二数据包,形成第二终端向第一终端发送的一条数据流。
需要说明的是,第二数据包为第一终端从第二终端接收的任一种数据包,并不构成限定。在S403中,第一终端可以采用S401中建立的P2P通道,从第二终端接收多种类型的数据包,不同类型的数据包中的类型标识不同,每一类数据包中的类型标识用于指示所属数据包的类型。
具体的,本申请提供的P2P通信方法可以应用于音视频通话过程,S403中第一终端通过建立的一条P2P通道,从第二终端接收第二数据包,具体可以实现为:第一终端通过该P2P通道,从第二终端接收数据流,该数据流包括M个第二数据包,M大于或等于1,第二数据包为下述任一类型的数据包:音频RTP数据包、音频RTCP数据包、视频RTP数据包、视频RTCP数据包。
下面以一个音视频通信过程中传输业务报文为例,举例说明本申请描述的P2P通信方法。在该示例中,音视频通信的系统架构如图8所示,该架构中包括手机A和手机B以及终端各自连接的网关,网关上部署了防火墙。
现有技术的交互流程中通过端口来区分不同流,而本申请方案中可以使用一个端口通过类型(Type)字段来区分不同流,两者的映射关系如图9所示。
现有技术中的音视频报文如图9中的(a)所示,音视频报文中通过端口号区分不同流,例如通过端口5600指示音频RTP报文,通过端口5601指示视频RTCP报文,通过端口5602指示视频RTP报文,通过端口5603指示视频RTCP报文,这样一来,终端进行音视频通信则至少需要打洞4次建立4条P2P通道,然后通过建立的4条P2P通道传输4条数据流。
本申请的方案中的音视频报文如图9中的(b)所示,音视频报文中通过类型字段区分不同流,仅需要采用一个端口5600。例如,类型字段为1指示音频RTP报文,类型字段为2指示视频RTCP报文,类型字段为3指示视频RTP报文,类型字段为4指示视频RTCP报文,这样一来,终端进行音视频通信只需要打洞1次建立1条P2P通道,然后通过建立的1条P2P通道传输一条数据流,该数据流中包括了音频RTP数据包、音频RTCP数据包、视频RTP数据包以及视频RTCP数据包,将现有技术的4条数据流合并为1条数据流。
在音视频通信过程中,本申请方案的具体过程如下:
步骤a、手机A和手机B在防火墙上进行打洞,可以仅打洞一次,建立一条P2P通道。
该P2P通道如图8中虚线所示。
步骤b、手机A通过P2P通道向手机B发送业务报文,报文中携带类型标识字段指示报文的类型。
例如,设置类型标识Type为1代表音频RTP报文,Type为3代表视频RTP报文,业务报文就可以通过一条P2P通道,穿越对应的防火墙发送到手机B。
步骤b中,手机A通过一条P2P通道向手机B发送业务报文的数据流,该数据流中包括音频RTP报文及视频RTP报文,音频RTP报文中携带的类型标识为1,视频RTP报文中写道的类型标识为3,该数据流的内容可以如图8中手机A与连接的网关间虚线上示意的数据流。
步骤c、手机B在收到手机A的业务报文后,对媒体流进行统计,向手机A发送统计数据报文,报文中携带类型标识字段指示报文的类型。
例如,设置类型标识Type为2代表音频RTCP报文,Type为4代表视频RTCP报文,统计信息都通过一条P2P通道,穿越对应的防火墙反馈给手机A。
步骤c中,手机B通过一条P2P通道向手机A发送统计数据报文的数据流,该数据流中包括音频RTCP报文及视频RTCP报文,音频RTCP报文中携带的类型标识为2,视频RTCP报文中写道的类型标识为4。该数据流的内容可以如图8中手机B与连接的网关间虚线上示意的数据流。
反之亦然,手机B向手机A发送业务报文以及手机A向手机B反馈业务报文的RTCP流,该过程与步骤b和步骤c相同,不再赘述。
这样一来,在整个音视频通信过程中,手机A通过一条P2P通道向手机B发送了一条数据流,该数据流包括音频RTP数据包、音频RTCP数据包、视频RTP数据包以及视频RTCP数据包,每个数据包中包括指示自身类型的类型标识。同样,手机B也通过这一条P2P通道向手机A发送了一条数据流,该数据流包括音频RTP数据包、音频RTCP数据包、视频RTP数据包以及视频RTCP数据包,每个数据包中包括指示自身类型的类型标识,该过程将现有技术中的多条数据流合并为了本申请方案中的一条数据流,这一条数据流中的数据包按照通信中的发送顺序排列。应理解,手机A与手机B进行音视频通信过程中发送和接收数据流所采用的P2P通道是同一条通道,即上述步骤a中建立的P2P通道。
上述主要从终端间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对终端进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,如图10所示为本申请实施例提供的一种P2P通信装置100,用于实现上述方法中第一终端的功能。该P2P通信装置100可以是终端,也可以是终端中的装置,也可以是能够和终端匹配使用的装置。其中,该P2P通信装置100可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。如图10所示,P2P通信装置100可以包括:建立单元1001及发送单元1002。建立单元1001用于执行图4或图7中的S401,发送单元1002用于执行图4或图7中的S402。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
进一步的,如图10所示,P2P通信装置100还可以包括接收单元1003,用于执行图7中的S403。
在采用集成划分各个功能模块的情况下,如图11所示为本申请实施例提供的一种P2P通信装置110,用于实现上述方法中第一终端的功能。该P2P通信装置110可以是终端,也可以是终端中的装置,也可以是能够和终端匹配使用的装置。其中,该P2P通信装置110可以为芯片系统。P2P通信装置110包括至少一个处理模块1101及通信模块1102。示例性地,处理模块1101可以用于执行图4或图7中的过程S401;处理模块1101可以通过通信模块1102用于执行图4或图7中的过程S402及S403。具体参见方法示例中的详细描述,此处不做赘述。
P2P通信装置110还可以包括至少一个存储模块1103,用于存储程序指令和/或数据。存储模块1103和处理模块1101耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理模块1101可能和存储模块1102协同操作。处理模块1101可能执行存储模块1102中存储的程序指令。所述至少一个存储模块中的至少一个可以包括于处理模块中。
当处理模块1101为处理器,通信模块1102为收发器,存储模块1103为存储器,本申请实施例图11所涉及的P2P通信装置110可以为图3所示的通信装置30。
如前述,本申请实施例提供的P2P通信装置100或P2P通信装置110可以用于实施上述本申请各实施例实现的方法中第一终端的功能,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请各实施例。
本申请另一些实施例还提供一种计算机可读存储介质,该计算机可读存储介质可包括计算机软件指令,当该计算机软件指令在电子设备上运行时,使得该电子设备执行上述图4或图7所示实施例中第一终端执行的各个步骤。
本申请另一些实施例还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述图4或图7所示实施例中第一终端执行的各个步骤。
本申请另一些实施例还提供一种芯片系统,该芯片系统可以应用于终端。该芯片系统包括接口电路和处理器;接口电路和处理器通过线路互联;接口电路用于从终端的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行该计算机指令时,芯片系统执行如上述图4或图7所示实施例中第一终端执行的各个步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (15)
1.一种点对点P2P通信方法,其特征在于,包括:
第一终端通过P2P打洞的方式,建立与第二终端间的一条P2P通道;其中,所述P2P通道用于直连传输一种或多种业务的不同类型的业务数据包;
所述第一终端通过所述P2P通道,向所述第二终端发送第一数据包,所述第一数据包包括第一类型标识,所述第一类型标识用于指示所述第一数据包的类型。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一终端通过所述P2P通道从所述第二终端接收第二数据包,所述第二数据包包括第二类型标识,所述第二类型标识用于指示所述第二数据包的类型。
3.根据权利要求2所述的方法,其特征在于,所述第一类型标识或者所述第二类型标识位于数据包中应用协议头之前。
4.根据权利要求2或3所述的方法,其特征在于,所述第一类型标识或者所述第二类型标识为1个字段。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述第一数据包或者所述第二数据包为音视频业务的数据包;所述第一数据包或者所述第二数据包的类型包括下述类型中的一种或多种:音频实时传输协议RTP类型、音频实时传输控制协议RTCP类型、视频RTP类型、视频RTCP类型。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法应用于音视频通话过程,所述第一终端通过所述P2P通道,向所述第二终端发送第一数据包,包括:
所述第一终端通过所述P2P通道,向所述第二终端发送数据流,所述数据流包括N个第一数据包,所述N大于或等于1,所述第一数据包为下述任一类型的数据包:音频RTP数据包、音频RTCP数据包、视频RTP数据包、视频RTCP数据包。
7.一种点对点P2P通信装置,其特征在于,包括:
建立单元,用于通过P2P打洞的方式,建立与第二终端间的一条P2P通道;其中,所述P2P通道用于直连传输一种或多种业务的不同类型的业务数据包;
发送单元,用于通过所述建立单元建立的所述P2P通道,向所述第二终端发送第一数据包,所述第一数据包包括第一类型标识,所述第一类型标识用于指示所述第一数据包的类型。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
接收单元,用于通过所述建立单元建立的所述P2P通道从所述第二终端接收第二数据包,所述第二数据包包括第二类型标识,所述第二类型标识用于指示所述第二数据包的类型。
9.根据权利要求8所述的装置,其特征在于,所述第一类型标识或者所述第二类型标识位于数据包中应用协议头之前。
10.根据权利要求8或9所述的装置,其特征在于,所述第一类型标识或者所述第二类型标识为1个字段。
11.根据权利要求8-10任一项所述的装置,其特征在于,所述第一数据包或者所述第二数据包为音视频业务的数据包;所述第一数据包或者所述第二数据包的类型包括下述类型中的一种或多种:音频实时传输协议RTP类型、音频实时传输控制协议RTCP类型、视频RTP类型、视频RTCP类型。
12.根据权利要求7-11任一项所述的装置,其特征在于,所述装置部署于音视频通话中的发送端设备或接收端设备,所述发送单元具体用于:
通过所述P2P通道,向所述第二终端发送数据流,所述数据流包括第一数据包,所述N大于或等于1,所述第一数据包包括下述类型的数据中的一个或多个:音频RTP数据包、音频RTCP数据包、视频RTP数据包、视频RTCP数据包。
13.一种终端,其特征在于,所述终端包括:处理器,存储器;所述处理器和所述存储器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述终端执行时,使得所述终端执行如权利要求1至6中任一项所述的点对点P2P通信方法。
14.一种计算机可读存储介质,其特征在于,包括:计算机软件指令;
当所述计算机软件指令在终端中运行时,使得所述终端执行如权利要求1至6中任一项所述的点对点P2P通信方法。
15.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1至6中任一项所述的点对点P2P通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910833233.2A CN110730203A (zh) | 2019-09-04 | 2019-09-04 | 一种p2p通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910833233.2A CN110730203A (zh) | 2019-09-04 | 2019-09-04 | 一种p2p通信方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110730203A true CN110730203A (zh) | 2020-01-24 |
Family
ID=69218930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910833233.2A Pending CN110730203A (zh) | 2019-09-04 | 2019-09-04 | 一种p2p通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110730203A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021184225A1 (zh) * | 2020-03-17 | 2021-09-23 | 华为技术有限公司 | 一种通信方法及装置 |
CN113573341A (zh) * | 2021-09-23 | 2021-10-29 | 成都极米科技股份有限公司 | 协商业务与链路映射配置的方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083576A (zh) * | 2006-05-29 | 2007-12-05 | 腾讯科技(深圳)有限公司 | 一种基于点对点的数据传输方法及系统 |
CN102739815A (zh) * | 2011-06-03 | 2012-10-17 | 北京天地互连信息技术有限公司 | 减小视频会议系统网络地址转换穿越的系统时延的方法 |
CN103795819A (zh) * | 2014-01-27 | 2014-05-14 | 杭州顺浪信息技术有限公司 | P2p应用中基于nat的终端间的数据传输方法 |
CN105187567A (zh) * | 2015-06-24 | 2015-12-23 | 东莞市南星电子有限公司 | 一种基于sip和ice的音视频通信方法 |
CN106210092A (zh) * | 2016-07-19 | 2016-12-07 | 天彩电子(深圳)有限公司 | 一种融合upnp及stun的p2p穿越方法及其系统 |
CN107124478A (zh) * | 2017-04-14 | 2017-09-01 | 上海小蚁科技有限公司 | 网络通信方法、装置及服务器 |
CN108306986A (zh) * | 2018-03-28 | 2018-07-20 | 北京大米科技有限公司 | 多类型媒体数据网络地址转换穿越方法、终端及系统 |
CN109495599A (zh) * | 2018-11-16 | 2019-03-19 | 深圳市网心科技有限公司 | 数据传输方法和系统、电子装置及计算机可读存储介质 |
-
2019
- 2019-09-04 CN CN201910833233.2A patent/CN110730203A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083576A (zh) * | 2006-05-29 | 2007-12-05 | 腾讯科技(深圳)有限公司 | 一种基于点对点的数据传输方法及系统 |
CN102739815A (zh) * | 2011-06-03 | 2012-10-17 | 北京天地互连信息技术有限公司 | 减小视频会议系统网络地址转换穿越的系统时延的方法 |
CN103795819A (zh) * | 2014-01-27 | 2014-05-14 | 杭州顺浪信息技术有限公司 | P2p应用中基于nat的终端间的数据传输方法 |
CN105187567A (zh) * | 2015-06-24 | 2015-12-23 | 东莞市南星电子有限公司 | 一种基于sip和ice的音视频通信方法 |
CN106210092A (zh) * | 2016-07-19 | 2016-12-07 | 天彩电子(深圳)有限公司 | 一种融合upnp及stun的p2p穿越方法及其系统 |
CN107124478A (zh) * | 2017-04-14 | 2017-09-01 | 上海小蚁科技有限公司 | 网络通信方法、装置及服务器 |
CN108306986A (zh) * | 2018-03-28 | 2018-07-20 | 北京大米科技有限公司 | 多类型媒体数据网络地址转换穿越方法、终端及系统 |
CN109495599A (zh) * | 2018-11-16 | 2019-03-19 | 深圳市网心科技有限公司 | 数据传输方法和系统、电子装置及计算机可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021184225A1 (zh) * | 2020-03-17 | 2021-09-23 | 华为技术有限公司 | 一种通信方法及装置 |
CN113573341A (zh) * | 2021-09-23 | 2021-10-29 | 成都极米科技股份有限公司 | 协商业务与链路映射配置的方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8265050B2 (en) | System and method for sharing a payload among mobile devices in a wireless network | |
US20140323110A1 (en) | Multipoint communication device and method of performing switching from multipoint communication to point-to-point communication | |
EP3534574B1 (en) | Techniques for policy management of multi-connectivity network protocols | |
US9332094B2 (en) | Communication system and method | |
JP7479450B2 (ja) | Natトラバーサル方法、装置及びシステム | |
TWI717619B (zh) | 用於避免封包分割之方法及其裝置 | |
CN109417548B (zh) | 封装媒体流量在基于数据报的传输层上的高效传输 | |
CN110730203A (zh) | 一种p2p通信方法及装置 | |
KR101567136B1 (ko) | 다자간 통화 단말 및 상기 단말에서의 다자간 통화 전환 방법 | |
CN109818901B (zh) | 报文头压缩机制确定方法、设备及系统 | |
WO2016119269A1 (zh) | 一种业务流数据包的处理方法及装置 | |
JP4911222B2 (ja) | 通信システム、通信システムにおける通信方法、及び中継装置 | |
CN112514490B (zh) | 无线通信的方法和设备 | |
WO2023071656A1 (zh) | 信息传输方法及装置 | |
CN104105222A (zh) | 建立通信 | |
CN102282886B (zh) | 一种实现语音业务的方法、移动终端、装置和系统 | |
EP4195784A1 (en) | Wireless communication method and device | |
WO2017177438A1 (zh) | 一种控制信息的传输方法及装置 | |
CN113794715A (zh) | 一种虚拟点对点网络数据发送、接收、应答方法及其系统 | |
Lu et al. | Performance study on SNMP and SIP over SCTP in wireless sensor networks | |
WO2023273756A1 (zh) | 一种数据传输方法和相关设备 | |
WO2022027341A1 (zh) | 无线通信方法和终端设备 | |
CN111918365B (zh) | 一种物联网的配网方法、装置、系统及存储介质 | |
WO2023155739A1 (zh) | 数据传输的方法、网络设备和用户设备 | |
CN116896544B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200124 |
|
RJ01 | Rejection of invention patent application after publication |