CN117459747A - 一种数据传输方法以及装置 - Google Patents

一种数据传输方法以及装置 Download PDF

Info

Publication number
CN117459747A
CN117459747A CN202210848746.2A CN202210848746A CN117459747A CN 117459747 A CN117459747 A CN 117459747A CN 202210848746 A CN202210848746 A CN 202210848746A CN 117459747 A CN117459747 A CN 117459747A
Authority
CN
China
Prior art keywords
live
header
server
data
request
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
CN202210848746.2A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210848746.2A priority Critical patent/CN117459747A/zh
Publication of CN117459747A publication Critical patent/CN117459747A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开了一种数据传输方法,用于数据传输的准确性。本申请实施例方法包括:第一网络设备向服务器发送第一请求,第一请求用于获取直播数据。第一网络设备基于服务器发送的直播数据获得第一报文。第一网络设备向第二网络设备发送第一报文,第一报文包括报文头和直播数据,报文头包括用于指示直播数据的I帧位置的标识。

Description

一种数据传输方法以及装置
技术领域
本申请实施例涉及通信领域,尤其涉及一种数据传输方法以及装置。
背景技术
直播系统是一个典型的一对多的视频流分发过程,在这个过程中,直播客户端采集视频流编码后推送到直播服务器,直播服务器将视频流重新编码成不同码率的视频流分发到各个内容分发网络(content delivery network,CDN)节点,用户设备直接从最近的CDN节点获取视频流。CDN节点通过超文本传输协议(hypertext transfer protocol,HTTP)协议向多个用户设备分发视频流。
在目前基于HTTP协议组播架构下,CDN节点在向多个用户设备组播视频流,视频流中包含多个视频帧,其中I帧为可以独立解码的视频帧。P帧包含的内容是与前一帧图像的差值,需要依赖前面的帧才能解码。由于在CDN组播视频流的过程中,用户设备随时可以加入组播,但是用户设备加入组播后接收到的并非以I帧开始的数据,导致用户设备无法正确解码,降低数据传输的准确性。
发明内容
本申请实施例提供了一种数据传输方法以及装置,用于提升数据传输的准确性。
本申请实施例第一方面提供了一种数据传输方法,该方法可以由第一网络设备执行,也可以由第一网络设备的部件,例如第一网络设备的处理器、芯片或芯片系统等执行,还可以由能实现全部或部分第一网络设备功能的逻辑模块或软件实现。以第一网络设备执行为例,该数据传输方法包括:第一网络设备向服务器发送第一请求,第一请求用于获取直播数据,直播数据包括直播客户端上传至直播服务器的视频帧和音频帧。第一网络设备基于服务器发送的直播数据获得第一报文。第一网络设备向第二网络设备发送第一报文,第一报文包括报文头和直播数据,报文头包括用于指示直播数据的I帧位置的标识。第二网络设备根据报文头中携带的I帧位置信息向用户设备发送第一报文。
本申请实施例第一网络设备向第二网络设备发送的第一报文中的报文头中携带了直播数据的I帧位置信息,使得第二网络设备在第一报文传输的过程中无需解析直播数据就可以获取I帧的位置信息,从而用户设备接收到的直播数据为包含I帧的直播数据,保证了用户设备对直播数据的正常解码,提升了直播数据的传输准确性。
一种可能的实施方式中,报文头包括的网络层报文头,网络层报文头包括用于指示直播数据的I帧位置的标识。本申请实施例中直播数据的I帧位置信息可以携带在网络层的报文头,提升了方案的可实现性。
一种可能的实施方式中,报文头包括的传输层报文头,传输层报文头包括用于指示直播数据的I帧位置的标识。本申请实施例中直播数据的I帧位置信息可以携带在传输层的报文头,提升了方案的可实现性。
一种可能的实施方式中,网络层报文头包括感知应用的第六版互联网协议网络APN6报文头,APN6报文头中的APN字段包括用于指示直播数据的I帧位置的标识。
本申请实施例中APN6报文头中的APN字段能够携带直播数据的I帧位置信息,第一网络设备只需要解析到网络层就可以获取直播数据的I帧位置信息,从而减轻了网络设备的负担。
一种可能的实施方式中,传输层报文头包基于否定应答的可靠组播传输NORM协议报文头,NORM协议报文头中的NORM message字段包括用于指示直播数据的I帧位置的标识;或者,传输层报文头包括基于用户数据报协议的快速互联网连接QUIC报文头,QUIC报文头中的CONNECT-UDP字段包括用于指示直播数据的I帧位置的标识。
本申请实施例中第一网络设备可以使用基于NACK的可靠组播传输NORM协议分发直播数据流,从而提升组播数据传输的可靠性。第一网络设备还可以通过QUIC报文头中的CONNECT-UDP字段携带直播数据的I帧位置信息,使得I帧位置信息在加密的QUIC隧道中传输,不会泄露给其他不可信的网络节点,从而提升了直播数据传输的安全性。
一种可能的实施方式中,第一网络设备接收第二网络设备发送的第二请求,第二请求用于获取元数据头,元数据头用于携带直播数据的解码参数。第一网络设备向第二网络设备发送元数据头。
本申请实施例中第一网络设备基于第二请求向第二网络设备发送报文头,从而使得元数据头和直播数据分离传输,对于传输FLV格式的数据流时,中途接入的用户设备能够基于元数据头解码直播数据,从而能够支持FLV格式的直播数据传输,进一步提升了数据传输的准确性。
一种可能的实施方式中,第一请求还包括直播参数,直播参数用于确定提供直播数据的服务器,直播参数包括直播URL或直播源ID。
本申请实施例中第一网络设备基于第一请求中的直播参数确定要接入的直播服务器,提升了用户设备接入直播服务器的准确性。
一种可能的实施方式中,第一请求携带第一令牌,第一令牌用于进行接入服务器的鉴权,第一令牌与直播参数存在映射关系。
本申请实施例中基于第一令牌对接入服务器的第一网络设备进行鉴权,从而提升数据传输过程中安全性。
一种可能的实施方式中,第一网络设备基于直播参数和对应关系获取第一令牌,对应关系包括直播参数和第一令牌,第一请求还包括第一网络设备获取的第一令牌。第一令牌来自于用户设备,或者,第一令牌来自于组播管理服务器。具体的,第一网络设备能够基于用户设备的直播数据请求获取第一令牌,或者,第一网络设备基于组播管理服务器下发的配置消息获取第一令牌。
本申请实施例中第一网络设备能够基于用户设备的第一直播数据请求获取第一令牌,也可以基于组播管理服务器下发配置消息获取第一令牌,扩展了第一网络设备获取第一令牌的实现方式。
一种可能的实施方式中,第一网络设备为服务器代理设备,服务器为直播服务器,第二网络设备为用户代理设备。
本申请实施例中第一网络设备和第二网络设备可以应用于直播应用场景中的网络设备,进一步提升直播场景中数据传输的准确性。
一种可能的实施方式中,第一网络设备接收服务器发送的第二报文,第一网络设备解析第二报文中的直播数据,得到直播数据的I帧位置信息。第一网络设备在获得第一报文的过程中,根据得到I帧位置信息重新封装报文头,得到第一报文,该第一报文的报文头中携带I帧位置信息。
本申请实施例中第一网络设备可以解析直播服务器发送的第二报文中的直播数据,并根据直播数据中的I帧位置信息重新封装组播报文头,因此,对于直播服务器未在第二报文中标识I帧位置信息情况,第一网络设备也可以通过解析直播数据获取I帧位置信息并标记在报文头,从而用户设备接收到的直播数据为包含I帧的直播数据,保证了用户设备对直播数据的正常解码,提升了直播数据的传输准确性。
一种可能的实施方式中,第一网络设备向服务器发送直播数据请求过程中,第一网络设备向服务器发送第一令牌,第一令牌用于接入服务器的鉴权,第一令牌与第二令牌不同,第二令牌用于进行接入转组播服务的鉴权。
本申请实施例中将接入直播服务的鉴权和进行接入转组播服务的鉴权分离,从而提升直播系统的安全性。
一种可能的实施方式中,第一网络设备接收组播管理服务器发送的直播源ID。第一网络设备根据直播源ID向直播服务器请求直播数据,直播源ID与直播服务器的URL地址存在一对一或者多对一的映射关系。
本申请实施例中组播管理服务器能够为直播URL分配直播源ID,从而避免了直播URL地址的暴露,进一步,组播管理服务器可以将一个直播URL映射到多个直播源ID,从而避免网络服务的提供商获取接入直播URL的用户设备,保护应用的隐私和安全。
本申请实施例第二方面提供了一种数据传输方法,该方法可以由第二网络设备执行,也可以由第二网络设备的部件,例如第二网络设备的处理器、芯片或芯片系统等执行,还可以由能实现全部或部分第二网络设备功能的逻辑模块或软件实现。以第二网络设备执行为例,第二方面的数据传输方法包括:第二网络设备接收用户设备发送的第一直播数据请求,第一直播数据请求用于获取直播数据。第二网络设备接收第一网络设备发送的第一报文,第一报文包括报文头和直播数据,报文头包括用于指示直播数据的I帧位置的标识。第二网络设备基于直播数据的I帧位置的标识,向用户设备转发第一报文。
本申请实施例中第一报文中的报文头中携带了直播数据的I帧位置信息,使得第二网络设备在第一报文传输的过程中无需解析直播数据就可以获取I帧的位置信息,从而用户设备接收到的直播数据为包含I帧的直播数据,保证了用户设备对直播数据的正常解码,提升了直播数据的传输准确性。
一种可能的实施方式中,报文头包括的网络层报文头,网络层报文头包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,报文头包括的传输层报文头,传输层报文头包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,网络层报文头包括感知应用的第六版互联网协议网络APN6报文头,APN6报文头中的APN字段包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,传输层报文头包括基于否定应答的可靠组播传输NORM协议报文头,NORM协议报文头中的NORM message字段包括用于指示直播数据的I帧位置的标识;或者,传输层报文头包括基于用户数据报协议的快速互联网连接QUIC报文头,QUIC报文头中的CONNECT-UDP字段包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,第二网络设备向第一网络设备发送第二请求,第二请求用于获取元数据头,元数据头用于携带直播数据的解码参数。第二网络设备接收第一网络设备发送的元数据头。
一种可能的实施方式中,第一直播数据请求还包括第二令牌,第二网络设备基于直播参数和对应关系,获取第二令牌,第二令牌用于进行接入转组播服务的鉴权,对应关系包括第二令牌和由直播参数确定的组播组标识。第二网络设备基于获取的第二令牌和第一直播数据请求包括的第二令牌,进行接入转组播服务的鉴权。
一种可能的实施方式中,第二令牌为用户设备的IP地址。
本申请实施例中用户设备的IP地址也可以用于接入转组播服务的鉴权,从而避免了第二令牌的暴露,提升应用的安全性。
一种可能的实施方式中,第一直播数据请求包括直播参数,直播参数用于确定提供直播数据的服务器。
一种可能的实施方式中,第一网络设备为服务器代理设备,第二网络设备为用户代理设备。
本申请实施例第三方面提供了一种数据传输装置,包括收发单元和处理单元。其中,收发单元用于向服务器发送第一请求,第一请求用于获取直播数据。处理单元用于基于服务器发送的直播数据获得第一报文。收发单元还用于向第二网络设备发送第一报文,第一报文包括报文头和直播数据,报文头包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,报文头包括的网络层报文头,网络层报文头包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,报文头包括的传输层报文头,传输层报文头包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,网络层报文头包括感知应用的第六版互联网协议网络APN6报文,APN6报文头中的APN字段包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,传输层报文头包基于否定应答的可靠组播传输NORM协议报文头,NORM协议报文头中的NORM message字段包括用于指示直播数据的I帧位置的标识;或者,传输层报文头包括基于用户数据报协议的快速互联网连接QUIC报文头,QUIC报文头中的CONNECT-UDP字段包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,收发单元还用于接收第二网络设备发送的第二请求,第二请求用于获取元数据头,元数据用于携带直播数据的解码参数。收发单元还用于向第二网络设备发送元数据头。
一种可能的实施方式中,第一请求还包括直播参数,直播参数用于确定提供直播服务的服务器。
一种可能的实施方式中,第一请求携带第一令牌,第一令牌用于进行接入服务器的鉴权,第一令牌与直播参数存在映射关系。
一种可能的实施方式中,收发单元还用于基于直播参数和对应关系获取第一令牌,对应关系包括所述直播参数和所述第一令牌,第一请求还包括第一网络设备获取的第一令牌。第一令牌来自于用户设备,或者,第一令牌来自于组播管理服务器。
一种可能的实施方式中,第一网络设备为服务器代理设备,服务器为直播服务器,第二网络设备为用户代理设备。
本申请实施例第四方面提供了一种数据传输装置,包括收发单元和处理单元。其中,收发单元用于接收用户设备发送的第一直播数据请求,第一直播数据请求用于获取直播数据。收发单元还用于接收第一网络设备基于第一直播数据请求发送的第一报文,第一报文包括报文头和直播数据,报文头包括用于指示直播数据的I帧位置的标识。处理单元用于基于直播数据的I帧位置的标识,向用户设备转发第一报文。
一种可能的实施方式中,报文头包括的网络层报文头,所述网络层报文头包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,报文头包括的传输层报文头,所述传输层报文头包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,网络层报文头包括感知应用的第六版互联网协议网络APN6报文头,APN6报文头中的APN字段包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,传输层报文头包括基于否定应答的可靠组播传输NORM协议报文头,NORM协议报文头中的NORM message字段包括用于指示直播数据的I帧位置的标识;或者,传输层报文头包括基于用户数据报协议的快速互联网连接QUIC报文头,QUIC报文头中的CONNECT-UDP字段包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,收发单元还用于向第一网络设备发送第二请求,第二请求用于获取元数据头,元数据头用于携带直播数据的解码参数。收发单元还用于接收第一网络设备发送的元数据头。
一种可能的实施方式中,第一直播数据请求包括直播参数,直播参数用于确定提供直播数据的服务器。
一种可能的实施方式中,第一直播数据请求还包括第二令牌,收发单元还用于基于直播参数和对应关系,获取第二令牌,第二令牌用于进行接入转组播服务的鉴权,对应关系包括第二令牌和由直播参数确定的组播组标识。处理单元还用于基于获取的第二令牌和第一直播数据请求包括的第二令牌,进行接入转组播服务的鉴权。
一种可能的实施方式中,第二令牌为用户设备的IP地址。
一种可能的实施方式中,第一网络设备为服务器代理设备,第二网络设备为用户代理设备。
本申请实施例第五方面提供了一种服务器代理设备,包括处理器,处理器与存储器耦合,处理器用于存储指令,当指令被处理器执行时,以使得服务器代理设备执行上述第一方面或者第一方面任意一种可能的实施方式所述的方法。
本申请实施例第六方面提供了一种用户代理设备,包括处理器,处理器与存储器耦合,处理器用于存储指令,当指令被处理器执行时,以使得用户代理设备执行上述第二方面或者第二方面任意一种可能的实施方式所述的方法。
本申请实施例第七方面提供了一种计算机可读存储介质,其上存储有指令,指令被执行时,以使得计算机执行上述第一方面或第一方面任意一种可能的实施方式所述的方法,或者,以使得计算机执行上述第二方面或者第二方面任意一种可能的实施方式所述的方法。
本申请实施例第八方面提供了一种计算机程序产品,计算机程序产品中包括指令,其特征在于,指令被执行时,以使得计算机实现上述第一方面或第一方面任意一种可能的实施方式所述的方法,或者,以使得计算机实现上述第二方面或者第二方面任意一种可能的实施方式所述的方法。
本申请实施例第九方面提供了一种直播系统,直播系统包括用户设备、第一网络设备和第二网络设备和服务器,其中,第一网络设备用于执行上述第一方面或者第一方面任意一种可能的实施方式所述的方法,第二网络设备用于执行上述第二方面或者第二方面任意一种可能的实施方式所述的方法。
可以理解,上述提供的任一种数据传输装置、用户代理设备、服务器代理设备、直播系统、计算机可读介质或计算机程序产品等所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种直播系统架构示意图;
图2为本申请实施例提供的一种数据传输方法的流程示意图;
图3a为本申请实施例提供的另一种数据传输方法的流程示意图;
图3b为本申请实施例提供的报文APN字段的示意图;
图4为本申请实施例提供的另一种数据传输方法的流程示意图;
图5a为本申请实施例提供的另一种数据传输方法的流程示意图;
图5b为本申请实施例提供的一种直播数据格式示意图;
图6a为本申请实施例提供的另一种数据传输方法的流程示意图;
图6b为本申请实施例提供的另一中直播数据格式的示意图;
图7为本申请实施例提供的一种数据传输装置的示意图;
图8为本申请实施例提供的一种电子设备的示意图。
具体实施方式
本申请实施例提供了一种数据传输方法,用于提升数据传输的准确性。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
实时消息协议(real-time messaging protocol,RTMP)一种应用层的协议,可用于实时传递音视频媒体数据。RTMP基于传输层的TCP协议,通过与服务器端建立长连接来传递数据。在直播场景中,主播设备侧采集视频流后通过RTMP协议上传至直播服务器。
超文本传输协议(hypertext transfer protocol,HTTP)是一种用于用户端和服务器端之间数据传输协议。在直播场景中,直播服务器可以通过HTTP协议向用户设备分发直播视频流,HTTP分发协议可以分为HTTP-FLV和HLS。
基于超文本传输协议的动画视频传输协议(hypertext transfer protocol-flash video,HTTP-FLV)是一种常用的分发协议,其核心是利用HTTP协议来传输FLV格式的文件。在直播场景中,在直播服务器端将主播设备侧发送的视频帧和音频帧封装成FLV格式,然后通过HTTP协议传输给用户设备。
基于超文本传输协议的流媒体传输协议(HTTP live streaming,HLS)也是一种常用的分发协议,HLS的原理是将视频文件切分成不同的分片,每个分片可以独立解码播放,每个分片拥有单独的URL。用户设备首先向服务器请求一个播放列表文件,该播放列表文件中包含了每个分片的URL,然后用户设备通过HTTP协议请求逐个分片。服务器端无需为不同时刻加入的用户设备动态生成视频流,只需要下发最新的播放列表文件。
基于否定应答的可靠组播传输(NACK-oriented reliable multicast,NORM)协议是一种可靠组播传输协议,NORM协议的核心是接收端通过NACK的形式返回丢包的信息给组播的源发送端,发送端在组播隧道中重新发送丢失的数据包。
感知应用的第六版互联网协议网络(application-aware IPv6 networking,APN6)是通过在IPv6业务报文的IPv6扩展头中携带应用信息,使得数据包在进入网络后,网络能够根据应用信息直接感知到应用及其需求,从而为应用提供精细化的网络资源分配、传输路径调度和SLA服务质量保证。APN6网络中的应用信息包括但不限于SLA等级、应用ID、用户ID、流ID、地址前缀、功能ID、备选参数等。
下面结合附图介绍本申请实施例提供的数据方法以及装置。
请参阅图1,图1为本申请实施例提供的一种直播系统的系统架构示意图。如图1所示,直播系统100包括用户设备101、用户代理设备102、服务器代理设备103、直播服务器104、直播鉴权服务器105、组播管理服务器106和组播接入调度服务器107。其中,用户设备101、直播服务器104和直播鉴权服务器105属于商业服务提供商(commercial serviceprovider,CSP)侧的设备。用户代理设备102、服务器代理设备103、组播管理服务器106和组播接入调度服务器107属于互联网服务提供商(internet service provider)侧的设备。
下面结合图1所述的直播系统,具体介绍直播系统100中各个部分的功能。
用户设备101包括用户侧提供直播视频的终端设备。用户设备101用于接收来自直播服务器104的直播数据流,比如,直播数据流可以是连续发送的组播报文。不支持组播协议的用户设备101则可接收用户代理设备102发送的基于组播报文获取的单播报文。用户设备101可以是手机、电脑、平板电脑或虚拟现实(virtual reality,VR)眼镜等终端设备。
用户代理设备102与服务器代理设备104之间可通过组播域进行通信,该组播域可支持的组播协议可以是位索引显式复制(bit index explicit replication,BIER)、基于第六版互联网协议的组播源路由(multicast source routing over internet protocolversion 6,MSRv6)等,在此不再逐一举例说明。
用户代理设备102用于转发来自服务器代理设备103的组播数据报文给用户设备101之外,还可用于将服务器代理设备104发送的组播数据报文转为单播数据报文。用户代理设备102接收到的组播数据报文的报文头包括的源地址为组播源地址,可以用S表示;用户代理设备102接收到的组播数据报文的报文头包括的目的地址为组播组地址,可以用G表示。
用户代理设备102将组播数据报文的报文头包括的目的地址由组播组地址改为用户设备101的地址,以获得单播数据报文。用户代理设备102将单播数据报文发送至用户设备101。具有组播转单播功能的用户代理设备102可以是宽带接入服务器(broadbandremote access server,BRAS)、家用路由器或机顶盒。其中,组播组地址作为组播组标识(identifier,ID)的一种具体的实现方式,即组播数据报文的报文头包括的目的地址为组播组ID,具体可以是组播组地址,根据组播域所采用的具体的组播协议还可以是其它表现形式的组播组ID,本申请实施例对此不进行逐一举例说明以及限定。用户代理设备102可基于来自用户设备101的第二令牌和来自组播管理服务器106的第二令牌进行接入转组播服务的鉴权。
服务器代理设备103用于将直播服务器104发送的单播数据报文转换为组播数据报文。服务器代理设备103将来自直播服务器104的单播数据报文的报文头包括的目的地址由服务器代理设备的地址改为组播组地址,可以用G表示,以获得组播数据报文。服务器代理设备103基于组播组地址,将获取的组播数据报文通过组播域转发至一个或多个用户代理设备,该一个或多个用户代理设备包括图1所示的用户代理设备102。服务器代理设备103可以是网络侧边缘(provider edge,PE)设备。
直播服务器104用于接收直播客户端上传的直播数据,并向服务器代理设备103发送直播数据流,该直播数据流为连续发送的单播数据报文。该直播数据流包括元数据头和视频帧。元数据头用于对视频帧进行解码。直播服务器例如直播转码服务器或者多级内容分发网络(content delivery network,CDN)节点。
直播鉴权服务器105用于对用户设备101进行接入直播鉴权服务器105的鉴权。直播鉴权服务器105还用于生成第一令牌(token1),并向直播服务器105发送该第一令牌,使得直播服务器105基于该第一令牌进行接入直播服务器的鉴权。其中,第一令牌可以是字符串、随机数等用于进行鉴权的参数或者标识。
组播管理服务器106用于管理直播流和组播组之间的映射关系。具体的,组播管理服务器106用于分配直播参数与组播组标识之间的映射关系,直播参数包括直播URL和直播源ID。组播管理服务器106还用于生成第二令牌(token2),第二令牌用于进行接入转组播服务的鉴权。组播管理服务器106可以是控制器或者其他控制装置。
组播接入调度服务器107用于为用户设备101调度接入组播服务的用户代理设备102。具体的,组播接入调度服务器107中保存有用户代理设备域名和用户代理设备的IP地址之间的对应关系。组播接入调度服务器107基于用户设备101发送的用户代理设备的域名,查询对应关系得到用户代理设备102的IP地址。组播接入调度服务器107向用户设备101向返回用户代理设备102的IP地址。
在一个直播场景中,用户设备101被允许接入直播服务,服务器代理设备103将直播服务器104发送的单播数据报文转成组播数据报文在组播隧道(组播域中用于传输组播数据报文的隧道)中发送。支持组播转单播功能的用户代理设备102作为组播数据报文的接收者将组播数据报文转成单播数据报文,发送单播数据报文至用户设备101。若用户设备101支持组播,则用户代理设备102可直接转发组播数据报文给组播组ID对应的用户设备101。
下面结合图2具体介绍本申请实施例提供的数据传输方法。请参阅图2,图2为本申请实施例中一种数据传输方法的流程示意图。图2实施例涉及部分步骤会在图3a至图6a,本申请实施例提供的数据传输方法包括但不限于以下步骤:
201.用户设备向用户代理设备发送第一直播数据请求。
举例说明,用户设备向用户代理设备发送的第一直播数据请求包括直播参数、用户设备的IP地址和用户代理设备的IP地址。用户设备的IP地址为第一直播数据请求的源地址,用户代理设备的IP地址为第一直播数据请求的目的地址。第一直播数据请求用于请求获取直播数据。
其中,直播参数用于确定提供直播数据的直播源,比如直播参数可以是直播URL、直播源ID和用户代理设备URL中的一个或多个,具体不做限定。直播URL为直播服务器的URL地址。
可选地,第一直播数据请求还包括第二令牌。其中,第二令牌可以是字符串、随机数、地址或其它能够实现鉴权认证的参数或字符。第二令牌用于进行接入转组播服务的鉴权。在一些可能实现中,用户代理设备也可以基于用户设备的IP地址进行接入转组播服务的鉴权,即用户设备的IP地址作为第二令牌的一种具体实现。
本申请实施例提供的方法在201之前,还包括以下步骤:用户设备向直播鉴权服务器发送直播接入请求,直播接入请求包括直播间标识和用户设备IP地址,直播间标识例如用户设备访问的直播间名称或编号。直播鉴权服务器存储有直播间标识与直播URL的对应关系,因此,直播鉴权服务器可根据直播间标识确定用户设备请求访问的直播URL。
组播管理服务器生成与直播URL对应的第二令牌。直播鉴权服务器根据直播URL确定用户代理设备的域名。直播鉴权服务器向用户设备发送第二令牌和用户代理设备的域名。
组播管理服务器在接收到来自直播鉴权服务器的直播URL之后,为直播URL分配组播组ID,以获得对应关系,该对应关系包括直播URL和组播组ID之间的映射关系。组播管理服务器向用户代理设备和服务器代理设备分别发送上述对应关系。
用户设备在获取了用户代理设备的域名之后,向组播接入调度服务器发送用户代理设备的域名,以获取用户代理设备的IP地址。组播接入调度服务器基于用户设备发送的用户代理设备的域名,获取与用户代理设备的IP地址。组播接入调度服务器向用户设备发送用户代理设备的IP地址。
上述201之前的还包括的步骤在图3a至图6a所对应的实施例中具体介绍,此处不再赘述。
202.用户代理设备对用户设备进行接入转组播服务的鉴权。
其中,202属于可选步骤。在一种可能的实现方式中,为了提高安全性,用户代理设备在202确定允许用户设备接入转组播服务之后执行203。在另一种可能的实现方式中,用户代理设备可在接收到来自用户设备的第一直播数据请求后直接执行203。当第一直播数据请求中包含第二令牌时,用户代理设备根据第二令牌判断是否允许用户设备接入转组播服务。若第一直播数据请求中包含的第二令牌与组播管理服务器下发的第二令牌相同,则用户代理设备允许用户设备接入转组播服务。本申请实施例中接入转组播服务是指用户代理设备允许向用户设备发送来自直播服务器的数据流。
用户设备接入转组播服务后,用户代理设备向服务代理设备发送协议无关组播(protocol independent multicast,PIM)加入消息(PIM Join消息),该消息包括用户代理设备请求加入的组播组的信息。该组播组即为根据第一直播数据请求中的直播参数和来自组播管理服务器的对应关系,确定的组播组ID对应的组播组。组播组的信息具体可以是组播组ID。服务器代理设备根据PIM Join消息生成组播转发表项,组播转发表项用于指示服务器代理设备对组播流量的转发。转发表包括组播组ID与下一跳的IP地址的映射关系。
在一种可能的实施方式中,第二令牌包括用户设备的IP地址,用户代理设备基于用户设备的IP地址进行接入转组播服务的鉴权。
用户代理设备接收第一直播数据请求之后,若用户代理设备通过接入转组播服务的鉴权,则用户代理设备将该第一直播数据请求对应的用户设备IP地址加入待回复消息列表。
203.用户代理设备向服务器代理设备发送第二直播数据请求。
在一种可能的实施方式中,当用户设备为首次访问直播参数所对应的直播服务器时,用户代理设备基于第一直播数据请求生成第二直播数据请求,向服务器代理设备发送第二直播数据请求。
具体的,用户代理设备接收到第一数据直播请求之后,用户代理设备根据预先配置的转发表确定出用户代理设备IP对应的服务器代理设备IP地址。用户代理设备将第一直播数据请求中的目的地址由用户代理设备的IP地址替换为服务器代理设备的IP地址,向服务器代理设备发送第二直播数据请求。
在另一种可能的实现方式中,用户代理设备如果已经缓存第一直播数据请求所要请求获取的直播数据,从而用户代理设备可以直接响应用户设备发送的第一直播数据请求,无需向服务器代理设备发送第二直播数据请求。
需要说明的是,步骤203在图3a、图4所示的实施例中用户设备首次请求直播数据时为必选步骤,在图5a和图6a所示的实施例中无需执行。
204.用户代理设备向服务器代理设备发送第二请求。
用户代理设备向服务器代理设备发送第二请求,第二请求用于获取元数据头,元数据头携带直播数据的解码参数。由于服务器在发送直播数据过程中,直播数据会被拆分为多个报文发送,对于FLV格式的直播数据,直播数据拆分后的多个报文并非所有的报文都携带元数据头,因此,用户代理设备需要向服务器代理设备发送第二请求获取元数据头。
本申请实施例中步骤204为可选步骤,在一种可能的实施方式中,对于HLS格式的直播数据,直播数据会被拆分为多组报文发送,其中每组报文中包含元数据头,因此,用户代理设备不需要向服务器代理设备发送第二请求获取元数据头。
本申请实施例中FLV格式直播数据和HLS格式直播数据的具体格式在后续图5a和图6a所示的实施例中进行介绍,此处不再赘述。需要说明的是,步骤204在图3a、图4和图5a所示的实施例中为必选步骤,在图6a所示的实施例中无需执行。此外,在图3a和图4所示的实施例中步骤204在步骤201之前执行,在图5a所示的示例中,步骤204在步骤201之后执行。
205.服务器代理设备向直播服务器发送第一请求。
服务器代理设备向直播服务器发送第一请求,该第一请求用于获取直播数据,第一请求包括直播参数,直播参数用于确定提供直播数据的服务器。该第一请求携带第一令牌,第一令牌用于进行接入直播服务器的鉴权,第一令牌与直播参数存在映射关系。
需要说明的是,在一些实施例中,第一令牌可以在第一直播数据请求中携带,例如图3a和图4所示的实施例。在另一些实施例中,第一令牌来自于组播管理服务器下发的对应关系,例如图5a和图6a所示的实施例。
直播服务器接收第一请求之后,直播服务器根据第一令牌对服务器代理设备进行接入直播服务器的鉴权,若第一请求中携带的第一令牌与直播服务器中的第一令牌一致,则直播服务器允许服务器代理设备接入直播服务器。
一种可能的实施方式中,服务器代理设备在接收到第二直播数据请求之后,基于第二直播数据请求携带的直播参数,确定提供直播数据的直播服务器,比如将第二直播数据请求中的目的地址由服务器代理设备的IP地址替换为直播服务器的地址,以获得第一请求。服务器代理设备向直播服务器发送第一请求。
另一种可能的实施方式中,服务器代理设备在接收到组播服务器发送的直播参数与组播组ID的对应关系之后,服务器代理设备直接向直播服务器发送第一请求。在该实施方式中,步骤205与步骤201的执行顺序不做限定。
此外,服务器代理设备可保存组播组ID和直播参数的对应关系,以便收到来自直播服务器的地址,可根据由直播服务器的地址确定的直播参数和上述对应关系,获取组播组ID,进而利用组播组ID将直播数据发送到相应的用户设备。
206.直播服务器向服务器代理设备发送第二报文。
直播服务器接收到第一请求之后,直播服务器向服务器代理设备发送第二报文,第二报文包括应用层的直播数据以及元数据,增加HTTP封装,传输层封装,网络层封装,该直播数据为第一请求所请求获取的直播数据。其中,HTTP封装是指将直播数据和元数据添加一个HTTP层的Header,形成HTTP层的字节流,传输层封装和网络层封装是指将HTTP层的字节流切分成不同的包,逐包添加传输层头,网络层头。
一种可能的实施方式中,直播服务器在生成第二报文的过程中,将直播数据的I帧位置标识标记在第二报文的网络层报文头,或者传输层报文头,使得服务器代理设备接收到第二报文之后只需要解析网络层报文头或者传输层报文头就可以获取直播数据的I帧位置信息。
另一种可能的实施方式中,直播服务器在生成第二报文的过程中未在报文头中标记直播数据的I帧位置信息,服务器代理设备接收到第二报文之后只需要解析直播数据才能获取直播数据的I帧位置信息。
207.服务器代理设备对第二报文处理之后,得到第一报文。
服务器代理设备接收直播服务器发送的第二报文之后,对第二报文进行处理,得到第一报文。具体的,服务器代理设备解析第二报文的源地址,得到直播服务器的参数,并根据直播参数查询服务器代理设备所保存的直播参数与组播组ID的对应关系,得到直播参数对应的组播组ID。服务器代理设备将第二报文中目的地址由服务器代理设备的IP地址替换为组播组ID,获得第一报文。
其中,第一报文包括报文头和直播数据,报文头携带直播数据的I帧位置的标识。报文头包括网络层报文头和传输层报文头,网络层报文头包括APN6报文头,传输层报文头包括NORM协议报文头和QUIC报文头。
本申请实施例中网络层报文头可以携带直播数据的I帧位置的标识,传输层报文头也可以携带直播数据的I帧位置的标识。例如,在网络层报文头携带I帧位置信息实施例中,APN6报文头中的APN字段携带直播数据的I帧位置信息。在传输层报文头携带I帧位置信息实施例中,NORM协议报文头中的NORM message字段携带直播数据的I帧位置信息,或者,QUIC报文头中的CONNECT-UDP字段携带直播数据的I帧位置信息。
208.服务器代理设备以组播方式向组播组中的用户代理设备发送第一报文。
服务器代理设备接收到直播服务器发送的第一报文之后,通过组播方式向组播组中的用户代理设备发送第一报文。具体的,第一报文的源地址为服务器代理设备的IP地址,目的地址为组播组ID。由于在一个组播域中,组播组ID与用户代理设备IP地址存在映射关系,因此,服务器代理设备基于与该映射关系确定组播组ID对应的用户代理设备地址,并向组播组中的用户代理设备发送第一报文。
209.用户代理设备基于I帧位置信息向用户设备发送第三报文。
用户代理设备接收到服务器代理设备发送的第一报文之后,对第一报文进行处理,得到第三报文。具体的,用户代理设备接收到第一报文之后,根据待回复的请求消息列表确定出第一直播数据请求对应的用户设备IP地址,将第一报文中的目的地址由组播组ID替换为用户设备的IP地址,得到第三报文。该待回复请求消息列表中包括第一直播数据请求对应的用户设备IP地址。
需要说明的是,由于第一报文的报文头中携带直播数据的I帧位置的标识,因此,用户代理设备能够基于I帧位置的标识别出直播数据中包含I帧的第一报文,并得到第三报文。用户代理设备向用户设备发送第三报文,以使得用户设备接收到的第三报文中的直播数据是包含I帧的数据。
从上述实施例可知,本申请实施例中服务器代理设备向用户代理设备发送的报文的过程中,报文头中携带了直播数据的I帧位置信息,使得用户代理设备在无需解析直播数据就可以获取I帧的位置信息,从而用户设备接收到的直播数据为包含I帧的直播数据,保证了用户设备对直播数据的正常解码,提升了直播数据的传输准确性。
本申请实施例中网络层报文头和传输层报文头都可以携带直播数据的I帧位置信息,下面分别对上述两种情况所对应的实施例进行介绍。
1、网络层报文头携带直播数据的I帧位置信息。
请参阅图3a,图3a为本申请实施例提供的一种网络层报文头携带I帧位置信息的数据传输方法的流程示意图。在图3a所示的示例中,数据传输方法包括但不限于以下步骤:
301.用户设备向直播鉴权服务器发送直播接入请求。
用户设备向直播鉴权服务器发送直播接入请求,该直播接入请求包括用户设备请求接入的直播间标识、用户名和密码、和用户设备的IP地址,直播间标识例如用户设备要访问的直播间名称或者编号。
直播鉴权服务器收到用户设备发送的直播请求之后,根据直播接入请求确定出用户设备请求访问的直播URL,并对用户设备进行接入鉴权。例如,直播鉴权服务器根据用户设备的IP地址、用户名和密码判断用户设备是否合法,以及直播鉴权服务器根据用户设备IP地址确定该用户设备是否有权限访问所请求的直播URL地址。
302.直播鉴权服务器向组播管理服务器发送直播URL和用户设备的IP地址。
用户设备通过步骤301中的直播鉴权之后,直播鉴权服务器向组播管理服务器发送用户设备的IP地址以及直播URL。
可选的,直播鉴权服务器还能够根据直播URL和第一密钥(key)生成第一令牌,第一令牌用于进行接入直播服务器的鉴权。需要说明的是,直播服务器也能够根据第一密钥计算得到第一令牌,并基于该第一令牌和接收到第一请求中携带第一令牌的进行接入直播服务器的鉴权。
组播管理服务器接收到直播URL之后,组播管理服务器基于直播URL分配直播源ID和组播组ID。直播源ID用于标识直播URL,其形式可以是数字,也可以是字符,具体不做限定。具体的,当用户设备所要接入的直播URL地址不存在对应的组播组,则组播管理服务器需要为该直播URL地址分配直播源ID和组播组ID。如果用户设备所要接入的直播URL地址存在对应的组播组,则不需要为用户设备所要接入的直播URL地址申请新的组播组ID,组播管理服务器基于该直播URL地址获取与其对应的组播组ID以及直播源ID。由于用户设备的IP地址与该用户设备要请求直播URL存在对应关系,因此,用户设备的IP地址、直播URL、直播源ID和组播组ID都存在对应关系。
组播管理服务器接收到直播URL之后,组播管理服务器还能够基于直播URL确定出用户设备所要接入的用户代理设备域名,并向直播鉴权服务器发送直播URL对应的用户代理设备域名。
本申请实施例中出于隐藏直播URL地址的接入用户设备数的目的,直播鉴权服务器可以将一个直播URL映射至多个直播源代号,组播管理服务器为直播源代号分配直播源ID(即步骤302中直播鉴权服务器向组播管理服务器发送的也可以是直播URL对应的直播源代号),这样对于用户代理设备和服务器代理设备来说,由于用户代理设备和服务器代理设备无法机解析携带在应用层的直播URL,用户代理设备和服务器代理设备都无法基于接入直播源ID的用户设备数量获取接入直播URL的用户设备数量,对于组播管理服务器而言,由于直播鉴权服务器向组播管理服务器发送的是直播源代号,因此,对于组播管理服务器隐藏直播URL。
303.组播管理服务器向直播鉴权服务器发送用户设备要访问的直播URL地址所对应的直播源ID。
组播管理服务器向直播鉴权服务器发送步骤302中确定出的直播源ID,该直播源ID为用户设备要访问的直播URL地址所对应的直播源ID,当直播URL地址对应多个直播源ID时,组播管理服务器向直播鉴权服务器发送多个直播源ID中的任意一个直播源ID。
304.直播鉴权服务器向用户设备发送直播URL、直播源ID和用户代理服务器的域名。
直播鉴权服务器接收到组播管理服务器分配的直播源ID之后,向用户设备发送直播URL和直播源ID。直播鉴权服务器还可以向用户设备发送用户代理设备的域名,该用户代理设备的域名为步骤302中组播管理服务器根据直播URL确定的用户代理设备域名。
可选的,直播鉴权服务器还能够向用户设备发送第一令牌和第二令牌,该第一令牌为步骤302中直播鉴权服务器生成的第一令牌,第二令牌为用户代理设备的IP地址。
305.组播管理服务器向用户代理设备发送直播源ID、用户设备IP地址和组播组ID的对应关系。
组播管理服务器基于用户设备所要接入的直播URL地址分配得到直播源ID和对应的组播组ID之后,组播管理服务器向用户代理设备发送直播源ID、用户设备IP地址和组播组ID的对应关系,其中,用户设备IP地址为步骤302中的直播鉴权服务器发送的用户设备的IP地址。
需要说明的是,本实施例第二令牌为用户设备的IP地址,用户代理设备接收组播管理服务器下发的对应关系包含用户设备IP地址,即用户代理设备也接收了组播管理服务器下发的第二令牌,组播管理服务器可以直接根据用户设备IP地址和组播组ID的对应关系进行接入转组播服务的鉴权。
用户代理设备接收到组播管理服务器发送的上述对应关系之后,用户代理设备保存上述对应关系,因此,用户代理设备中保存了用户设备IP地址与直播源ID对应关系,以及直播源ID与组播组ID的对应关系。上述两种对应的关系可以分别存储至两个映射表中,也可以存储在同一个映射表,具体不做限定。
306.组播管理服务器向服务器代理设备发送直播源ID和组播组ID的对应关系。
组播管理服务器基于用户设备所要接入的直播URL地址分配得到直播源ID和对应的组播组ID之后,组播管理服务器向服务器代理设备发送直播源ID和组播组ID的对应关系。
服务器代理设备接收到组播管理服务器发送的直播源ID与组播组ID的对应关系之后,服务器代理设备保存上述对应关系。
在一种可能的实施方式中,组播管理服务器也可以向服务器代理设备发送直播服务器的IP地址和直播源ID的对应关系,或者直播服务器域名和直播源ID的对应关系。以上为组播管理服务器向服务器代理设备动态下发的该对应关系的方式,需要说明的,该对应关系也可以预先配置在服务器代理设备。
本申请实施例步骤303、步骤305和步骤306的执行时序不做限定。
307.用户设备向组播接入调度服务器发送用户代理设备的域名。
用户设备接收到直播鉴权服务器发送的用户代理设备域之后,用户设备向组播接入调度服务器发送域名解析请求,该域名解析请求包括用户代理设备的域名。
308.组播接入调度服务器向用户设备发送用户代理设备的域名对应的用户代理设备的IP地址。
组播接入调度服务器接收到用户设备发送的用户代理设备的域名之后,对该域名进行DNS解析,得到域名对应用户代理设备的IP地址,组播接入调度服务器向用户设备发送该用户代理设备的IP地址。
309.用户设备向直播服务器发送第二请求。
用户设备向直播服务器发送第二请求,第二请求用于获取元数据头,元数据头用于携带直播数据的解码参数。第二请求还用于请求传输层报文头和超文本传输协议HTTP层报文头。
其中,传输层报文头包括QUIC会话参数和加密密钥。HTTP层报文头包括HTTP配置头(settings header)、HTTP推流响应(push promise)和HTTP报文头(headers)。元数据头包括m3u8描述文件、FLV头或视频编码的元数据头(metadata header)。
310.用户设备向用户代理设备发送第一直播数据请求。
用户设备向用户代理设备发送第一直播数据请求,该第一直播数据请求包括用户设备要请求接入的直播源ID、用户设备IP地址和用户代理设备的IP地址。第一直播数据请求的源地址为用户设备的IP地址,目的地址为用户代理设备的IP地址。其中,直播源ID、用户设备IP地址和用户代理设备的IP地址携带在第一直播数据的请求网络层。例如,第一直播数据请求的网络层报文头的APN字段携带直播源ID。
本申请实施例中第一直播数据请求包括直播URL,其中,直播URL携带在第一直播数据请求的应用层。由于用户代理设备接收到第一直播数据请求之后只需解析网络层的内容,因此,用户代理设备并不感知应用层携带的直播URL,也无法获知该直播URL接入的用户设备数量。
可选的,第一直播数据请求还包括第一令牌,第一令牌用于进行接入直播服务器的鉴权。
可选地,第一直播数据请求还包括第二令牌。其中,第二令牌可以是字符串、随机数、地址或其它能够实现鉴权认证的参数或字符。直播URL为直播服务器的URL地址。第二令牌用于进行接入转组播服务的鉴权。用户代理设备也可以基于用户设备的IP地址进行接入转组播服务的鉴权,即用户设备的IP地址作为第二令牌的一种具体实现。用户设备接入转组播服务后,用户代理设备向服务代理设备发送PIM Join消息,该消息用于用户代理设备请求加入组播组。用户代理设备加入组播组的过程已经在图2所示实施例中步骤202的中介绍,此处不再赘述。
311.用户代理设备向服务器代理设备发送第二直播数据请求。
用户代理设备接收到用户设备发送的第一直播数据请求之后,向服务器代理设备发送第二直播数据请求,该第二直播数据请求包括直播源ID和直播URL,其中直播源ID携带在网络层,直播URL携带在应用层。可选的,第二直播数据请求还包括第一令牌。
具体的,用户代理设备接收到第一数据直播请求之后,用户代理设备根据预先配置的转发表确定出服务器代理设备的IP地址,并将第一直播数据请求中的目的地址由用户代理设备的IP地址替换为服务器代理设备的IP地址,向服务器代理设备发送第二直播数据请求。服务器代理设备的IP地址为第二直播数据请求的目的地址,用户代理设备的IP地址为第二直播数据请求的源地址。
可选的,用户代理设备在接收到第一直播数据请求之后,根据第二令牌进行接入转组播服务的鉴权。例如,第二令牌用户设备IP地址,用户代理设备在第一对应关系表中查询用户设备IP地址,该第一对应关系表中包括组播管理服务器所下发的直播源ID、用户设备IP地址和组播组ID的对应关系。
如果用户代理设备能够在第一对应关系表中查询到用户设备的IP地址,则用户代理设备允许该用户设备加入对应的组播组,并将该用户设备发送第一直播数据请求对应的用户设备IP地址加入待回复消息列表,以使得用户代理设备接收到第一报文后,在待回复消息列表中查询该用户设备。
需要说明的是,步骤311为可选步骤,当该用户设备为第一次请求访问该直播源ID时,用户代理设备根据第一直播请求向服务器代理设备发送第二直播数据请求,并且将用户设备接入转组播服务。当该用户设备已经请求访问过该直播源ID时,则说明该用户设备已经接入转组播服务,用户代理设备无需向服务器代理设备发送该第二直播数据请求。
312.服务器代理设备向直播服务器发送第一请求。
服务器代理设备向直播服务器发送第一请求,第一请求包括用户设备要访问的直播源ID和直播URL。可选的,第一请求还包括第一令牌。其中,直播服务器的IP地址为第一请求的目的地址,服务器代理设备IP地址作为第一请求的源地址。
一种可能的实施方式中,服务器代理设备接收到第二直播数据请求之后,在服务器代理设备保存的第二对应关系表中查询第二直播数据请求中携带的直播源ID,第二对应关系表包括组播管理服务器发送的直播源ID和组播组ID的对应关系。如果服务器代理设备能够在第二对应关系表中查询到直播源ID,则服务器代理设备允许为该直播源ID提供组播服务。服务器代理设备允许为直播源ID提供组播服务后,服务器代理设备进一步确定该直播源ID对应直播流是否存在组播流,即服务器代理设备判断用户代理设备是否为首次访问该直播源ID。
当用户代理设备为首次访问该直播源ID时,则服务器代理设备向直播服务器发送第一请求。当用户代理设备已经请求访问过该直播源ID时,则服务器代理设备无需向直播服务器转发直播数据请求。
需要说明的是,服务器代理设备中预先配置直播服务器的IP地址,或者,组播管理服务器在步骤306中发送直播源ID和直播服务器的IP地址的转发关系,因此,服务器代理设备能够根据直播源ID确定直播服务器的IP地址。由于预先配置的时候直播源ID还未生成,因此,所有的直播源ID配置相同的直播服务器IP地址。
313.直播服务器向服务器代理设备发送第二报文。
直播服务器接收到第一请求之后,识别第一请求中的直播URL,向服务器代理设备发送第二报文,第二报文包括报文头和直播数据。具体的,直播服务器为直播数据封装元数据头、传输层报文头和网络层报文头,得到第二报文。直播服务器向服务器代理设备发送第二报文。
其中,直播服务器在封装网络层报文头时,在第二报文的网络层标记直播数据的I帧位置标识以及直播源ID。
314.服务器代理设备以组播方式向组播组中的用户代理设备发送第一报文。
服务器代理设备接收直播服务器发送第二报文之后,服务器代理设备解析第二报文的网络层得到直播源ID,并根据该直播源ID查询第二对应关系表,确定组播组ID。服务器代理设备将第二报文的目的地址由服务器代理设备的IP地址替换为组播组ID,源地址替换为服务器代理设备的IP地址,从而生成第一报文,以组播方式组播组中的用户代理设备发送第一报文。
请参阅表1a,表1a为组播隧道中传输的第一报文的APN6报文头格式示意表。在表1a所示的示例中,网络层报文头例如“IP header”,其中包含APN字段,APN字段携带直播源ID等应用信息。传输层报文头例如“UDP header”。
表1a
请参阅图3b,图3b为本申请实施例提供的一种第一报文的APN字段的示意图。在图3b所示的示例中,APN字段中第一位“F”为标志位,该标志位在直播服务器到用户设备的下行数据流中用于指示I帧的位置信息。例如,第一报文中APN字段的标志位置1表示该第一报文的直播数据包含I帧的数据,置0则表示该第一报文中直播数据不是包含I帧的数据。
需要说明的是,该标志位在用户设备到用直播服务器的上行数据流中用于指示加入或者退出直播的信息。例如,在第一直播数据请求中,第一直播请求中APN字段的标识位置1表示该第一直播数据请求为请求加入直播流的报文,置0则表示该第一直播数据请求为请求退出直播流的报文。
在图3b所示的示例中,APN字段中还包含直播源ID信息。例如,直播服务器将第一请求中的直播源ID复制到APN6报文头的APN字段。可以理解的是,APN6报文头中还可以携带应用信息,应用信息例如视频帧的优先级信息,服务器代理设备根据应用信息进行网络服务质量QOS保障。
315.用户代理设备向用户设备发送第三报文。
用户代理设备接收服务器代理设备发送的第一报文之后,对第一报文进行处理得到第三报文。具体的,用户代理设备接收到第一报文之后,根据待回复请求消息列表确定出第一直播数据请求对应的用户设备IP地址,将第一报文中的目的地址由组播组ID替换为用户设备的IP地址,源地址替换为用户代理设备的IP地址,得到第三报文。用户代理设备向用户设备发送该第三报文。
需要说明的是,由于第一报文的报文头中携带直播数据的I帧位置的标识,因此,用户代理设备能够基于I帧位置的标识别出直播数据为包含I帧的第一报文,并得到第三报文。用户代理设备向用户设备发送第三报文,以使得用户设备接收到的第三报文中的直播数据是包含I帧的数据。
以上实施例为用户设备请求加入直播的流程。可以理解的是,在直播退出流程中,用户设备也可以向用户代理设备发出直播退出请求,该直播退出请求用于请求关闭直播流对应的HTTP连接,直播退出请求的APN字段的首位置0表明该数据包为请求关闭该直播流的数据包。用户代理设备接收到该直播退出请求之后,将直播退出请求的目的地址更改为服务器代理设备的地址,转发到服务器代理设备,并将该用户设备IP从所属于的待回复请求消息列表中移除,如果移除之后该列表为空,则说明用户代理设备无需再接收该组播组的直播流,执行退出该组播组的操作。服务器代理设备收到直播退出请求之后,将该直播退出请求的目的地址更改为直播服务器的地址,转发到直播服务器。
请参阅表1b,表1b为上述实施例中的直播鉴权服务器、组播管理服务器、服务器代理设备和用户代理设备需要维护的内容表格。例如,在表1b的示例中,直播鉴权服务器需要维护用户设备IP地址以及用户要访问直播URL与直播源ID的对应关系。
表1b
从上述实施例可知,本申请实施例中APN6报文头中的APN字段能够携带直播数据的I帧位置信息,服务器代理设备只需要解析到网络层就可以获取直播数据的I帧位置信息,从而减轻了网络设备的负担。
2、传输层报文头携带直播数据的I帧位置信息。
请参阅图4,图4为本申请实施例提供的一种传输层QUIC报文头携带I帧位置信息的数据传输方法流程示意图。在图4所示的示例中,该数据传输方法包括但不限于以下步骤:
401.用户设备向直播鉴权服务器发送直播接入请求。
本申请实施例步骤401与上述实施例中步骤301中所执行的方法类似,具体不再赘述。
402.直播鉴权服务器向组播管理服务器发送直播URL。
用户设备通过直播鉴权之后,直播鉴权服务器向组播管理服务器发送直播URL。
可选的,直播鉴权服务器还能够根据直播URL和第一密钥生成第一令牌,第一令牌用于进行接入直播服务器的鉴权。需要说明的是,直播服务器也能够根据第一密钥计算得到第一令牌,并基于该第一令牌和接收到直播数据请求中携带第一令牌的进行接入直播服务器的鉴权。
组播管理服务器接收到直播URL之后,组播管理服务器基于直播URL分配组播组ID,其形式可以是数字,也可以是字符,具体不做限定。具体的,当用户设备所要接入的直播URL地址没有申请过组播组,则组播管理服务器需要为该直播URL地址分配组播组ID。如果用户设备所要接入的直播URL地址已经分配过组播组,则不需要为用户设备所要接入的直播URL地址申请新的组播组ID,组播管理服务器基于该直播URL地址确定出已经分配的组播组ID。
组播管理服务器接收到直播URL之后,组播管理服务器还能够基于直播URL确定出用户设备所要接入的用户代理设备域名,并向直播鉴权服务器发送直播URL对应的用户代理设备域名。
可选的,组播管理服务器在接收到直播URL之后,组播管理服务器还能够基于直播URL生成第二令牌。具体的,组播管理服务器根据直播URL和第二密钥计算得到第二令牌,该第二令牌用于进行接入转组播服务鉴权。组播管理服务器生成第二令牌之后,通过直播鉴权服务器将第二令牌发送至用户设备。
403.直播鉴权服务器向用户设备发送直播URL和用户代理服务器的域名。
直播鉴权服务器获取直播URL和用户代理设备域名之后,向用户设备发送用户代理设备发送直播URL和用户代理设备域名。直播鉴权服务器能够从本地获取用户代理设备域名,可以从组播管理服务器获取用户代理设备域名,具体不做限定。
一种可能的实施方式中,直播鉴权服务器接收到组播管理服务器发送的直播URL对应的用户代理设备域名之后,向用户设备发送用户代理设备的域名。
可选的,直播鉴权服务器向用户设备发送步骤402中生成的直播URL对应的第一令牌。
可选的,直播鉴权服务器接收到组播管理服务器发送的第二令牌之后,直播鉴权服务器向用户设备发送第二令牌token2。其中,第一令牌用于进行接入直播服务器的鉴权,第二令牌用于进行接入转组播服务的鉴权,第一令牌和第二令牌为不同的令牌。
404.组播管理服务器向用户代理设备发送直播URL和组播组ID的对应关系。
组播管理服务器基于用户设备所要接入的直播URL地址分配得到组播组ID之后,组播管理服务器向用户代理设备发送直播URL和组播组ID的对应关系。用户代理设备接收到直播URL和组播组ID的对应关系之后,保存该对应关系,得到第一对应关系表。
可选的,组播管理服务器向用户代理设备发送第二令牌。
需要说明的是,当直播URL和用户代理设备URL存在固定的映射关系时,组播管理服务器也可以向用户代理设备发送用户代理设备URL和组播组ID的对应关系,步骤404中不做限定。
405.组播管理服务器向服务器代理设备发送直播URL和组播组ID的对应关系。
组播管理服务器基于用户设备所要接入的直播URL地址分配得到组播组ID之后,组播管理服务器向服务器代理设备发送直播URL和组播组ID的对应关系。服务器代理设备接收到直播URL和组播组ID的对应关系之后,保存该对应关系,得到第二对应关系表。
本申请实施例中步骤403、步骤404和步骤405的执行时序不做限定。
406.用户设备向组播接入调度服务器发送用户代理设备的域名。
407.组播接入调度服务器向用户设备发送用户代理设备的域名对应的用户代理设备的IP地址。
408.用户设备向直播服务器发送第二请求。
本申请实施例步骤406至步骤408与上述实施例中步骤307至步骤309中所执行的步骤类似,具体不再赘述。
409.用户设备向用户代理设备发送第一UDP代理请求(UDP proxy request)。
用户设备向用户代理设备发送第一UDP代理请求,该第一UDP代理请求包括用户代理设备URL地址和用户设备IP地址。可选的,第一UDP代理请求还包括第二令牌。
需要说明的,用户设备能够基于用户代理设备的域名、直播URL和第二令牌得到用户代理设URL。例如,在一个示例中,用户代理设备URL的形式如下:
https://clientproxy.com:4443/.well-known/masque/udp/{?src_URL,token2}
其中,“.well-known/masque/udp/”字段用于标记请求的类型为UDP代理请求,该UDP代理请求用于请求建立QUIC隧道。
请参阅表2a,表2a为本实施例UDP代理请求的报文头格式的示意。其中HTTP connect-UDP是在draft-ietf-masque-connect-udp中定义的HTTP请求方法。该请求的参数携带上述用户代理设备URL。
表2a
IP header UDP header QUIC header HTTP connect-UDP
410.用户代理设备向服务器代理设备发送第二UDP代理请求。
用户代理设备接收到用户设备发送的第一UDP代理请求之后,向服务器代理设备发送第二UDP代理请求,该第二UDP代理请求包括直播URL。例如,在一个示例中,第二直播数据请求的URL形式如下:
http://serverproxy.com:4443/.well-known/masque/udp/{?src_URL}
其中,“.well-known/masque/udp”字段用于标记该请求的类型为UDP代理请求,该UDP代理请求用于请求建立QUIC隧道。第二UDP代理请求报文头格式与表2a相同。
可选的,用户代理设备接收到用户设备发送的第一UDP代理请求之后,用户代理设备基于第一UDP代理请求中携带的第二令牌进行接入转组播服务的鉴权。具体的,若用户设备发送的第二令牌与组播管理服务器下发的第二令牌相同,则该用户代理设备允许接入转组播服务。用户代理设备接入转组播服务后,用户代理设备将第一UDP代理请求对应的用户设备IP地址加入到待回复请求列表中。
需要说明的是,当用户设备接入转组播服务后,用户代理设备向服务代理设备发送PIM Join消息,该消息用于用户代理设备请求加入组播组。用户代理设备加入组播组的过程已经在图2所示实施例中步骤202的中介绍,此处不再赘述。
需要说明的是,若用户代理设备检测到该用户设备为首次对该直播URL进行访问的用户设备,则用户代理设备向服务器代理设备发送第二UDP代理请求。若用户代理设备检测到该用户设备并非对该直播URL首次访问的用户设备,即用户代理设备已经在组播组,则用户代理设备无需向服务器代理设备发送第二直播数据请求。
411.服务器代理设备向直播服务器发送第三UDP代理请求。
服务器代理设备向直播服务器发送第三UDP代理请求,第三UDP代理请求包括用户设备要访问的直播URL。其中,直播服务器的IP地址为第三UDP代理请求的目的地址,服务器代理设备IP地址作为第三UDP代理请求的源地址。
一种可能的实施方式中,服务器代理设备接收到用户代理设备发送的第二UDP代理请求之后,服务器代理设备在服务器代理设备保存的第二对应关系表中查询第二UDP代理请求中携带直播URL,若第二对应关系表中存在该直播URL,则服务器代理设备允许为该直播URL提供组播服务。
服务器代理设备检测该直播URL对应的直播流是否已经存在组播流,即服务器代理设备判断用户代理设备是否为首次请求访问该直播URL的用户代理设备,若用户代理设备为首次访问该直播URL的用户代理设备,则服务器代理设备向直播服务器发送第三UDP代理请求。用户设备与直播服务器建立QUIC连接之后,服务器代理向用户代理设备回复HTTPconnect OK消息,用户代理设备回复用户设备HTTP connect OK消息,这样,用户设备就知道到直播服务器的QUIC代理已经建立完成。
412.用户设备向直播服务器发送第三直播数据请求。
经过步骤409至步骤411,用户设备与直播服务器建立QUIC连接之后,用户代理设备和服务器代理设备都保存了各自的QUIC连接五元组与直播URL的映射关系,因此,用户代理设备和服务器代理设备都能基于直播URL进行直播数据请求数据的转发。
用户设备基于QUIC连接向直播服务器发送第三直播数据请求,第三直播数据请求用于向直播服务器请求直播数据,第三直播数据请求包括用户设备要访问的直播URL。
其中,第三直播数据请求的报文头格式与上述表2a中的报文头格式相同。
需要说明的是,用户设备向直播服务器发送第三直播数据请求的包括了用户设备向用户代理设备发送第一直播数据请求、用户代理设备向服务器代理设备发送第二直播数据请求以及服务器代理设备向直播发送第一请求的三个步骤。
下面具体介绍第一直播数据请求、第二直播数据请求和第一请求的发送过程。
用户设备与直播服务器建立QUIC连接之后,用户设备向用户代理设备发送第一直播数据请求,第一直播数据请求中携带直播URL(携带在“HTTP connect-UDP”字段),用户代理设备基于第一直播数据请求中携带的直播URL和上述映射关系可以确定要转发的目的地址,得到第二直播数据请求。同样的,服务器代理设备接收到用户代理设备发送的第二直播数据请求之后,基于第一直播数据请求中携带的直播URL和上述映射关系可以确定要转发的目的地址,得到第一请求,向直播服务器发送第一请求。
可选的,该第三直播数据请求携带第一令牌,直播服务器基于第一令牌对进行接入直播服务的鉴权。具体的,若第三直播数据请求中携带的第一令牌与直播服务器存储的第一令牌一致,则允许用户设备接入直播服务器。
413.直播服务器向服务器代理设备发送二报文。
直播服务器向服务器代理设备发送第二报文,第二报文包括报文头和直播数据。具体的,直播服务器为直播数据封装传输层报文头和网络层报文头,得到第二报文,直播服务器向服务器代理设备发送第二报文。
其中,直播服务器在封装传输层报文头时,在第二报文的传输层的CONNECT-UDP字段标记直播数据的I帧位置标识。
414.服务器代理设备以组播方式向组播组中的用户代理设备发送第一报文。
服务器代理设备接收到直播服务器发送的第二报文之后,服务器代理设备解析第二报文,得到第二报文的五元组信息,五元组信息包括源IP地址、源端口和目的IP地址、目的端口和传输协议,服务器代理设备根据五元组信息得到直播URL,并根据直播URL查询第二对应关系表得到组播组ID。服务器代理设备将第二报文的目的地址替换为组播组ID,源地址替换为服务器代理设备的IP,得到第一报文,服务器代理设备以组播方式向组播组中用户代理设备发送第一报文。
具体的,服务器代理设备接收到第二报文后,解析第二报文的QUIC头,得到QUIC报文的载荷(即CONNECT-UDP Payload with Boundary),将携带有I帧位置信息的QUIC报文的载荷封装传输层报文头(例如UDP header)、网络层报文头和组播报文头,并通过组播隧道发送至用户代理设备。
请参阅表2b,表2b为本申请实施例提供的一种第一报文的报文头的格式示意表。在表2b所示的报文头示例中,第一报文的“CONNECT-UDP Payload with Boundary”字段携带直播数据的I帧位置信息。例如,若第一报文的直播数据是包含I帧的数据,则第一报文的传输层报文头中CONNECT-UDP字段的“Boundary start”位置1,否则置0。
表2b
其中,表2b中“CONNECT-UDP Payload with Boundary”的格式如下:
CONNECT-UDP Payload with Boundary{
Reserved(7),
Boundary Start(1),
UDP Payload(..),}
415.用户代理设备向用户设备发送第三报文。
用户代理设备接收服务器代理设备发送的第一报文之后,对第一报文进处理得到第三报文。具体的,用户代理设备接收到第一报文之后,根据待回复的请求列表确定出第一直播数据请求对应的用户设备IP地址,将第一报文中的目的地址由组播组ID替换为用户设备的IP地址,得到第三报文的目的地址,源地址替换为用户代理设备的IP的地址。
需要说明的是,由于第一报文的报文头中携带直播数据的I帧位置的标识,因此,用户代理设备能够基于I帧位置的标识别出直播数据为包含I帧的第一报文,解析第一报文得到直播数据,将直播数据封装到用户设备到用户代理设备到用户代理设备的外层QUIC隧道中得到第三报文。例如,用户代理设备从第一报文的QUIC报文头中“Boundary Start”位为1的数据包开始接收第一报文,并生成第三报文。用户代理设备向用户设备发送该第三报文。
用户设备接收到第三报文之后,如果用户设备检测出数据丢包,则利用HTTPrange-request向直播服务器发送丢包修复请求。
以上为用户设备请求加入直播的流程。本实施例中的直播退出流程与上述图3a所示实施例中直播退出流程类似,具体不再赘述。
请参阅表2c,表2c为上述实施例中的组播管理服务器、服务器代理设备和用户代理设备需要维护的内容表格。例如,在表2c的示例中,组播管理服务器和服务器代理设备需要维护直播URL与组播组ID的对应关系。
表2c
从上述实施例可知,本申请实施例中QUIC报文头中的CONNECT-UDP字段携带直播数据的I帧位置信息,使得I帧位置信息在加密的QUIC隧道中传输,不会泄露给其他不可信的网络节点,从而提升了直播数据传输的安全性。
请参阅图5a,图5a为本申请实施例提供的一种基于HTTP-FLV轻量级CDN数据传输方法的流程示意图。在图5a所示的示例中,该数据传输方法包括但不限于以下步骤:
501.用户设备向直播鉴权服务器发送直播接入请求。
本申请实施例步骤501与上述实施例中步骤301中所执行的方法类似,具体不再赘述。
502.直播鉴权服务器向组播管理服务器发送直播URL。
本申请实施例步骤502与上述实施例中步骤402中所执行的方法类似,具体不再赘述。
503.组播管理服务器向直播鉴权服务器发送用户代理设备URL。
组播管理服务器根据直播URL确定用户设备要接入的用户代理设备的URL,并向直播鉴权服务器发送用户代理设备URL。
504.直播鉴权服务器向用户设备发送用户代理设备URL。
直播鉴权服务器向用户设备发送用户代理设备URL。可选的,直播鉴权服务器还向用户设备发送第二令牌和用户代理设备的域名。
505.组播管理服务器向用户代理设备发送用户代理设备URL用户设备IP地址和组播组ID的对应关系。
组播管理服务器接收到步骤502中直播鉴权服务器发送的直播URL之后,根据直播URL确定对应的用户代理设备URL,并分配用户代理设备URL对应的组播组ID。组播管理服务器分配得到组播组ID之后,组播管理服务器向用户代理设备发送用户代理设备URL、用户设备IP地址和组播组ID的对应关系。其中,用户设备IP地址为步骤502中的直播鉴权服务器发送的用户设备IP地址。
用户代理设备接收到用户代理设备URL、用户设备IP地址和组播组ID的对应关系之后,保存该对应关系得到第一对应关系表。
可选的,组播管理服务器还可以向用户代理设备发送第二令牌。
506.组播管理服务器向服务器代理设备发送直播URL和组播组ID的对应关系。
组播管理服务器基于用户设备所要接入的直播URL地址分配得到组播组ID之后,组播管理服务器向服务器代理设备发送直播URL和组播组ID的对应关系。服务器代理设备接收到直播URL与组播组ID的对应关系之后,保存该对应关系得到第二对应关系表。
可选的,组播管理服务器还可以向服务器代理设备发送直播URL对应的第一令牌,该第一令牌为组播管理服务发送的第一令牌。
本申请实施例中步骤503、步骤505和步骤506的执行时序不做限定。
507.用户设备向组播接入调度服务器发送用户代理设备的域名。
508.组播接入调度服务器向用户设备发送用户代理设备的域名对应的用户代理设备的IP地址。
本申请实施例步骤507至步骤508与上述实施例中步骤307至步骤308中所执行的步骤类似,具体不再赘述。
509.用户设备向用户代理设备发送第一直播数据请求。
用户设备向用户代理设备发第一送直播数据请求,该第一直播数据请求包括用户请求接入的用户代理设备URL。可选的,第一直播数据请求还包括第二令牌。
本申请实施例步骤509中用户代理设备进行接入转组播服务鉴权的过程与上述图4所示的实施例中进行接入转组播服务鉴权的过程类似,具体不再赘述。
用户设备接入转组播服务后,用户代理设备向服务代理设备发送协议无关组播(protocol independent multicast,PIM)加入消息(PIM Join消息),该消息包括用户代理设备请求加入的组播组,该组播组即为根据第一直播数据请求中的直播参数和来自组播管理服务器的对应关系,确定的组播组ID对应的组播组。服务器代理设备根据PIM Join消息生成组播转发表项,组播转发表项用于指示服务器代理设备对组播流量的转发。转发表包括组播组ID与下一跳的IP地址的映射关系。
需要说明是,上述PIM Join消息还用于触发服务器代理设备向直播服务器发送第一请求,第一请求用于向直播服务器请求直播数据。
510.用户代理设备向服务器代理设备发送第二请求。
用户设备向直播服务器发送第二请求,第二请求用于获取元数据头,元数据头用于携带直播数据的解码参数。第二请求还用于请求超文本传输协议HTTP层报文头。其中,元数据头包括FLV header和metadata TAG,HTTP层报文头包括HTTP header。
511.服务器代理设备向直播服务器发送第一请求。
服务器代理设备接收到用户代理设备发送的PIM Join消息之后,服务器代理设备向直播服务器发送第一请求,该第一请求用于请求直播URL对应的直播数据流。
可选的,第一请求中还可以携带第一令牌。具体的,组播管理服务器向服务器代理设备发送直播URL与组播组ID的对应关系时携带了直播URL对应的第一令牌,因此,服务器代理设备可以获取第一令牌,并在第一请求中携带第一令牌。
本实施例中步骤511在步骤506之后,步骤511与步骤507至步骤510之间的时序不做限定。
512.直播服务器向服务器代理设备发送第二报文。
直播服务器向服务器代理设备发送第二报文,第二报文包括报文头和直播数据。具体的,直播服务器为直播数据封装元数据头、传输层报文头和网络层报文头,得到第二报文,直播服务器向服务器代理设备发送第二报文。
513.服务器代理设备以组播方式向组播组中的用户代理设备发送第一报文。
服务器代理设备接收到直播服务器发送的第二报文之后,服务器代理设备解析第二报文,得到直播URL,并根据该直播URL查询第二对应关系表得到组播组ID。该组播组ID为第一报文的目的地址。
可选的,服务器代理设备接收到第二报文后,还可以解析第二报文得到HTTPheader、FLV header和Metadata TAG并存储在服务器代理设备。
需要说明的是,对于FLV格式的直播数据,服务器代理设备接收到第二报文之后,服务器代理设备需要解析第二报文中的直播数据,并根据直播数据的I帧位置为直播数据封装报文头,得到第一报文,并以组播方式向组播组中的用户代理设备发送第一报文。
请参阅表3a,表3a为服务器代理设备对第二报文解析之后得到的直播数据的示意表,在表3a的示例中,以FLV格式的直播数据为例,服务器代理设备解析得到直播数据之后,从最近的I帧之前的“Previous Tag size”开始封装报文头,得到第一报文。
表3a
Previous Tag size I帧 P帧 Previous Tag size
本申请实施中服务器代理设备在封装第一报文的过程中,通过NORM协议报文头报中的“NORM message”携带I帧的位置信息。
请参阅表3b,表3b为本申请实施例提供的一种第一报文的报文头格式示意表。在表3b所示的报文头示例中,第一报文传输层的“NORM message”字段携带直播数据的I帧位置信息。例如,当第一报文的直播数据是包含I帧的数据时,第一报文的NORM协议报文头中的“payload_msg_start”位=I帧起始位置在本数据包内的偏移量+1,”payload_len”置非零,否则”payload_len”置0。
表3b
组播header IP header UDP header NORM message
请参阅图5b,图5b为本申请实施实施例提供的一种FLV格式的直播数据示意图。在图5b所示的示例中,第一报文中包括报文头和直播数据。报文头中的元数据头例如,FLVheader、Metadata TAG。其中,FLV header指示该FLV文件中是否包含视频、音频等元数据。直播数据包括视频帧和音频帧,其中,视频帧包括I帧、P帧和B帧。I帧包含完整的压缩图像,可以独立解码。P帧包含的内容是与前一帧图像的差值,需要依赖前面的帧才能解码。B帧则包含其与前一帧以及后一帧图像的差值,需要依赖前后的帧才能完成解码。
在图5b的示例中,FLV格式的直播数据为一个长视频帧流,用户设备需要从I帧起始的视频帧才能解码播放,因此,服务器代理设备在发送第一报文之前,需要通过第一报文的传输层的“NORM message”字段携带直播数据的I帧位置信息,从而向用户代理设备指示接收第一报文的时机。
514.用户代理设备向用户设备发送第三报文。
用户代理设备接收服务器代理设备发送的第一报文之后,对第一报文进处理得到第三报文。具体的,用户代理设备接收到第一报文之后,根据待回复的请求列表确定出第一直播数据请求对应的用户设备IP地址,将第一报文中的目的地址由组播组ID替换为用户设备的IP地址,得到第三报文的目的地址,源地址修改为用户代理设备的IP地址。
由于第一报文的报文头中携带直播数据的I帧位置的标识,因此,用户代理设备能够基于I帧位置的标识别出直播数据为以包含I帧的第一报文,用户代理设备解析第一报文得到直播数据,并对直播数据重新封装报文头,得到第三报文。例如,用户代理设备从第一报文的“payload_len”非0的数据包开始接收第一报文,并生成第三报文。用户代理设备向用户设备发送该第三报文。需要说明的是,用户设备生成第三报文的过程中,需要将基于步骤510中获取的元数据头对直播数据进行封装得到第三报文。
以上为用户设备请求加入直播的流程。本实施例中的直播退出流程与上述图3a所示实施例中直播退出流程类似,具体不再赘述。
请参阅表3b,表3b为上述实施例中的直播鉴权服务器、组播管理服务器、服务器代理设备和用户代理设备需要维护的内容表格。例如,在表3b的示例中,直播鉴权服务器需要维护用户要访问直播URL与用户代理设备ID的对应关系。
表3b
从以上实施例中可知,本申请实施例中服务器代理设备使用基于NACK的可靠组播传输NORM协议分发直播数据流,从而提升组播数据传输的可靠性。并且,对于传输FLV格式的数据流时,报文头和直播数据分离传输,使得中途接入的用户设备能够基于报文头解码直播数据,从而支持了FLV格式的直播数据传输。
请参阅图6a,图6a为本申请实施例提供的另一种基于HLS轻量级CDN数据传输方法的流程示意图。在图6a所示的示例中,该数据传输方法包括但不限于以下步骤:
601.用户设备向直播鉴权服务器发送直播接入请求。
602.直播鉴权服务器向组播管理服务器发送直播URL。
603.组播管理服务器向直播鉴权服务器发送用户代理设备的IP地址。
604.直播鉴权服务器向用户设备发送用户代理设备URL、第二令牌token2和用户代理服务器的域名。
605.组播管理服务器向用户代理设备发送用户代理设备URL、组播组ID和第二令牌token2。
606.组播管理服务器向服务器代理设备发送直播URL、组播组ID和第一令牌token1。
本申请实施例中步骤603、步骤605和步骤606的执行时序不做限定。
607.用户设备向组播接入调度服务器发送用户代理设备的域名。
608.组播接入调度服务器向用户设备发送用户代理设备的域名对应的用户代理设备的IP地址。
本申请实施例步骤601至步骤608与上述实施例中步骤501至步骤508中所执行的步骤类似,具体不再赘述。
609.用户设备向用户代理设备发送第一直播数据请求。
用户设备向用户代理设备发送第一直播数据请求,该第一直播数据请求包括用户请求接入的用户代理设备URL。可选的,第一直播数据请求还包括第二令牌。
本申请实施例步骤609中用户代理设备进行接入转组播服务鉴权的过程与上述图4所示的实施例中进行接入转组播服务鉴权的过程类似,具体不再赘述。
用户设备接入转组播服务后,用户代理设备向服务代理设备发送协议无关组播(protocol independent multicast,PIM)加入消息(PIM Join消息),该消息包括用户代理设备请求加入的组播组,该组播组即为根据第一直播数据请求中的直播参数和来自组播管理服务器的对应关系,确定的组播组ID对应的组播组。服务器代理设备根据PIM Join消息生成组播转发表项,组播转发表项用于指示服务器代理设备对组播流量的转发。转发表包括组播组ID与下一跳的IP地址的映射关系。
需要说明是,上述PIM Join消息还用于触发服务器代理设备向直播服务器发送第一请求,第一请求用于向直播服务器请求直播数据。
用户代理设备接收到用户设备发送的第一直播数据请求之后,用户代理设备根据第一直播数据请求中的用户代理设备URL,生成直播数据对应的索引文件,索引文件例如m3u8文件。用户代理设备向用户设备发送索引文件,用户设备获取索引文件后,根据索引文件获取缓存在用户代理设备的直播数据。
610.服务器代理设备向直播服务器发送第一请求。
服务器代理设备接收到用户代理设备发送的PIM Join消息之后,服务器代理设备向直播服务器发送第一请求,第一请求包括直播URL。该第一请求用于请求直播URL对应的直播数据流。
可选的,第一请求还包括第一令牌。具体的,组播管理服务器向服务器代理设备发送直播URL与组播组ID的对应关系时携带了直播URL对应的第一令牌,因此,服务器代理设备可以获取第一令牌,并在第一请求中携带第一令牌。
本申请实施例步骤610中直播服务器进行接入直播服务器鉴权的过程与上述图4所示的实施例中进行接入直播服务器的鉴权过程类似,具体不再赘述。
直播服务器接收第一请求后,直播服务器根据第一请求中的直播URL,生成直播数据对应的索引文件,索引文件例如m3u8文件。直播服务器向服务器代理设备发送索引文件,服务器代理设备获取索引文件后,根据索引文件从直播服务器获取第一请求对应的直播数据。
本实施例中步骤610在步骤606之后,步骤610与步骤607至步骤609之间的时序不做限定。
611.直播服务器向服务器代理设备发送第二报文。
直播服务器接收到步骤610中的索引文件之后,直播服务器向服务器代理设备发送第二报文,第二报文包括报文头和直播数据。具体的,直播服务器为直播数据封装元数据头、传输层报文头和网络层报文头,得到第二报文,直播服务器向服务器代理设备发送第二报文。
612.服务器代理设备以组播方式向用户代理设备发送第一报文。
服务器代理设备接收到直播服务器发送的第二报文之后,服务器代理设备解析第二报文,得到直播URL,并根据该直播URL查询第二对应关系表得到组播组ID。该组播组ID为第一报文的目的地址。
需要说明的是,对于HLS协议下的直播数据,服务器代理设备接收到第二报文后,由于HLS协议下每个HTTP报文头承载直播数据分片的第一个帧都是I帧,因此,服务器代理设备只需要解析第二报文的HTTP header就可以确定直播数据的I帧位置。
本实施例中第一报文的报文头的格式与上述实施例表3中报文头的格式类似,具体不再赘述。
请参阅图6b,图6b为本申请实施例提供的一种第一报文的直播数据示意图。在图6b所示的示例中,在流媒体传输协议HLS协议下,直播数据切分成不同的分片,每个分片中都包含解码需要的视频元数据头(Video metadata header),每个分片可以独立解码播放,并且,每个分片的起始帧为I帧。
在图6b所示的示例中,直播服务器将每个分片封装报文头,分片的I帧边界和第一报文的边界重合,因此,服务器代理设备收到第一报文之后无需解析直播数据,只需要解析HTTP层报文头就可以确定I帧位置信息。
613.用户代理设备向用户设备发送第三报文。
用户代理设备接收服务器代理设备发送的第一报文之后,对第一报文进处理得到第三报文。具体的,用户代理设备接收到第一报文之后,解析第一报文得到直播数据,并存储直播数据,生成直播数据对应的索引文件。用户代理设备向待回复的请求列表中第一直播数据请求对应的用户设备发送该索引文件。当用户设备基于索引文件请求直播数据时,用户代理设备对索引文件对应的直播数据封装报文头,得到第三报文。用户代理设备向用户设备发送第三报文。
需要说明的是,由于第一报文的报文头中HTTP header能够指示直播数据的I帧位置,因此,用户代理设备能够基于HTTP header识别出直播数据为包含I帧的第一报文,用户代理设备解析并保存第一报文中的直播数据,生成直播数据对应的索引文件。
以上为用户设备请求加入直播的流程。本实施例中的直播退出流程与上述图3a所示实施例中直播退出流程类似,具体不再赘述。
请参阅表4,表4为上述图6a实施例中的直播鉴权服务器、组播管理服务器、服务器代理设备和用户代理设备需要维护的内容表格。例如,在表4的示例中,直播鉴权服务器需要维护用户要访问直播URL与用户代理设备ID的对应关系。
表4
从以上实施例中可知,本申请实施例中服务器代理设备使用基于NACK的可靠组播传输NORM协议分发直播数据流,从而提升组播数据传输的可靠性。
在本申请一些其他实施例中,本申请实施例提供的直播系统可以直接用于基于网页网页即时通信WebRTC的直播,由于WebRTC使用实时传输协议(real-time transportprotocol,RTP)数据包来发送音视频流,RTP数据包中包含了帧的信息,服务器代理设备和用户代理设备可以直接做网络层的单组播地址转换,用户设备可以识别出I帧对应的RTP数据包从而完成播放。
上面介绍了本申请实施例提供的数据传输方法,下面结合附图介绍本申请实施例涉及的相关装置。
请参阅图7,图7为本申请实施例提供的一种数据传输装置的结构示意图。该装置用于实现上述各实施例中服务器代理设备或者用户代理设备所执行的各个步骤,如图7所示,该数据传输装置700包括收发单元701和处理单元702。
在本申请的一个实施例中,数据传输装置700用于实现上述方法实施例中服务器代理设备所执行的方法。
当数据传输装置700实现上述方法实施例中服务器代理设备所执行的方法时,收发单元701用于向服务器发送来自用户设备的第一请求,第一请求用于获取直播数据。处理单元702用于基于服务器发送的直播数据获得第一报文。收发单元701还用于向第二网络设备发送第一报文,第一报文包括报文头和直播数据,报文头包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,报文头包括的网络层报文头,所述网络层报文头包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,报文头包括的传输层报文头,所述传输层报文头包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,网络层报文头包括感知应用的第六版互联网协议网络APN6报文,APN6报文头中的APN字段包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,传输层报文头包基于否定应答的可靠组播传输NORM协议报文头,NORM协议报文头中的NORM message字段包括用于指示直播数据的I帧位置的标识;或者,传输层报文头包括基于用户数据报协议的快速互联网连接QUIC报文头,QUIC报文头中的CONNECT-UDP字段包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,收发单元701还用于接收第二网络设备发送的第二请求,第二请求用于元数据头,元数据头用于携带所述直播数据的解码参数。收发单元701还用于向第二网络设备发送元数据头。
一种可能的实施方式中,第一请求还包括直播参数,直播参数用于确定提供直播服务的服务器。
一种可能的实施方式中,第一请求携带第一令牌,第一令牌用于进行接入服务器的鉴权,第一令牌与直播参数存在映射关系。
一种可能的实施方式中,收发单元701还用于基于直播参数和对应关系获取第一令牌,对应关系包括直播参数和第一令牌,第一请求还包括第一网络设备获取的第一令牌。一种可能的实施方式中,第一网络设备为服务器代理设备,服务器为直播服务器,第二网络设备为用户代理设备。
在本申请的另一个实施例中,数据传输装置700用于实现上述方法实施例中用户代理设备所执行的方法。
当数据传输装置700用于实现上述方法实施例中用户代理设备所执行的方法时,收发单元701用于接收用户设备发送的第一直播数据请求,第一直播数据请求用于获取直播数据。收发单元701还用于接收第一网络设备基于第一直播数据请求发送的第一报文,第一报文包括报文头和直播数据,报文头包括用于指示直播数据的I帧位置的标识。处理单元702用于基于直播数据的I帧位置的标识,向用户设备转发第一报文。
一种可能的实施方式中,报文头包括的网络层报文头,网络层报文头包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,报文头包括的传输层报文头,传输层报文头包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,网络层报文头包括感知应用的第六版互联网协议网络APN6报文,APN6报文头中的APN字段包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,传输层报文头包括基于否定应答的可靠组播传输NORM协议报文头,NORM协议报文头中的NORM message字段包括用于指示直播数据的I帧位置的标识;或者,传输层报文头包括基于用户数据报协议的快速互联网连接QUIC报文头,QUIC报文头中的CONNECT-UDP字段包括用于指示直播数据的I帧位置的标识。
一种可能的实施方式中,收发单元701还用于向第一网络设备发送第二请求,第二请求用于获取元数据头,元数据头用于携带直播数据的解码参数。收发单元701还用于接收第一网络设备发送的元数据头。
一种可能的实施方式中,第一直播数据请求包括直播参数,直播参数用于确定提供直播数据的服务器。
一种可能的实施方式中,第一直播数据请求还包括第二令牌,收发单元701还用于基于直播参数和对应关系,获取第二令牌,第二令牌用于进行接入转组播服务的鉴权,对应关系包括第二令牌和由直播参数确定的组播组标识。处理单元702还用于基于获取的第二令牌和第一直播数据请求包括的第二令牌,进行接入转组播服务的鉴权。
一种可能的实施方式中,第二令牌为用户设备的IP地址。
一种可能的实施方式中,第一请求包括直播参数,直播参数用于确定提供直播数据的服务器。
一种可能的实施方式中,第一网络设备为服务器代理设备,第二网络设备为用户代理设备。
应理解以上装置中单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件又可以成为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。
值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明本申请并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明本申请所必须的。
本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本发明本申请的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明本申请所必须的。
请参阅图8,图8为本申请实施例提供的一种数据传输设备示意图。如图8所示,该数据传输设备800包括:处理器810、存储器820和接口830,处理器810、存储器820与接口830通过总线(图中未标注)耦合。存储器820存储有指令,当存储器820中的执行指令被执行时,数据传输设备800执行上述方法实施例中服务器代理设备或用户代理设备所执行的方法。
数据传输设备800可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA),或这些集成电路形式中至少两种的组合。再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
处理器810可以是中央处理单元(central processing unit,CPU),还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
存储器820可以包括只读存储器和随机存取存储器,并向处理器810提供指令和数据。存储器820还可以包括非易失性随机存取存储器。例如,存储器820可设置多个分区,每个区域分别用于存储不同软件模块的私钥。
存储器820可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
总线除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。总线可以是快捷外围部件互连标准(peripheral component interconnect express,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线可以分为地址总线、数据总线、控制总线等。
在本申请的另一个实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,设备执行上述方法实施例中服务器代理设备或用户代理设备所执行的方法。
在本申请的另一个实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中。当设备的处理器执行该计算机执行指令时,设备执行上述方法实施例中服务器代理设备或用户代理设备所执行的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (40)

1.一种数据传输方法,其特征在于,包括:
第一网络设备向服务器发送第一请求,所述第一请求用于获取直播数据;
所述第一网络设备基于所述服务器发送的直播数据获得第一报文;
所述第一网络设备向第二网络设备发送所述第一报文,所述第一报文包括报文头和所述直播数据,所述报文头包括用于指示所述直播数据的I帧位置的标识。
2.根据权利要求1所述的方法,其特征在于,所述报文头包括网络层报文头,所述网络层报文头包括所述用于指示所述直播数据的I帧位置的标识。
3.根据权利要求1所述的方法,其特征在于,所述报文头包括传输层报文头,所述传输层报文头包括所述用于指示所述直播数据的I帧位置的标识。
4.根据权利要求2所述的方法,其特征在于,所述网络层报文头包括感知应用的第六版互联网协议网络APN6报文头,所述APN6报文头中的APN字段包括所述用于指示所述直播数据的I帧位置的标识。
5.根据权利要求3所述的方法,其特征在于,所述传输层报文头包基于否定应答的可靠组播传输NORM协议报文头,所述NORM协议报文头中的NORM message字段包括所述用于指示所述直播数据的I帧位置的标识;
或者,所述传输层报文头包括基于用户数据报协议的快速互联网连接QUIC报文头,所述QUIC报文头中的CONNECT-UDP字段包括所述用于指示所述直播数据的I帧位置的标识。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
所述第一网络设备接收所述第二网络设备发送的第二请求,所述第二请求用于获取元数据头,所述元数据头用于携带所述直播数据的解码参数;
所述第一网络设备向所述第二网络设备发送所述元数据头。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述第一请求包括直播参数,所述直播参数用于确定提供所述直播数据的服务器。
8.根据权利要求7所述的方法,其特征在于,所述第一请求携带第一令牌,所述第一令牌用于进行接入所述服务器的鉴权。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一网络设备基于所述直播参数和对应关系获取所述第一令牌,所述对应关系包括所述直播参数和所述第一令牌,所述第一请求还包括所述第一网络设备获取的所述第一令牌。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述第一网络设备为服务器代理设备,所述服务器为直播服务器,所述第二网络设备为用户代理设备。
11.一种数据传输方法,其特征在于,包括:
第二网络设备接收用户设备发送的第一直播数据请求,所述第一直播数据请求用于获取直播数据;
所述第二网络设备接收第一网络设备基于所述第一直播数据请求发送的第一报文,所述第一报文包括报文头和所述直播数据,所述报文头包括用于指示所述直播数据的I帧位置的标识;
所述第二网络设备基于所述直播数据的I帧位置的标识,向用户设备转发所述第一报文。
12.根据权利要求11所述的方法,其特征在于,所述报文头包括网络层报文头,所述网络层报文头包括所述用于指示所述直播数据的I帧位置的标识。
13.根据权利要求11所述的方法,其特征在于,所述报文头包括传输层报文头,所述传输层报文头包括所述用于指示所述直播数据的I帧位置的标识。
14.根据权利要求12所述的方法,其特征在于,所述网络层报文头包括感知应用的第六版互联网协议网络APN6报文头,所述APN6报文头中的APN字段包括所述用于指示所述直播数据的I帧位置的标识。
15.根据权利要求13所述的方法,其特征在于,所述传输层报文头包括基于否定应答的可靠组播传输NORM协议报文头,所述NORM协议报文头中的NORM message字段包括所述用于指示所述直播数据的I帧位置的标识;
或者,所述传输层报文头包括基于用户数据报协议的快速互联网连接QUIC报文头,所述QUIC报文头中的CONNECT-UDP字段包括所述用于指示所述直播数据的I帧位置的标识。
16.根据权利要求11至15任一项所述的方法,其特征在于,所述方法还包括:
所述第二网络设备向所述第一网络设备发送第二请求,所述第二请求用于获取元数据头,所述元数据头用于携带所述直播数据的解码参数;
所述第二网络设备接收所述第一网络设备发送的所述元数据头。
17.根据权利要求11至16任一项所述的方法,其特征在于,所述第一直播数据请求包括直播参数,所述直播参数用于确定提供所述直播数据的服务器。
18.根据权利要求17所述的方法,其特征在于,第一直播数据请求还包括第二令牌,所述方法还包括:
所述第二网络设备基于所述直播参数和对应关系,获取第二令牌,所述第二令牌用于进行接入转组播服务的鉴权,所述对应关系包括所述第二令牌和由直播参数确定的组播组标识;
所述第二网络设备基于获取的所述第二令牌和所述第一直播数据请求包括的第二令牌,进行接入转组播服务的鉴权。
19.根据权利要求18所述的方法,其特征在于,所述第二令牌为所述用户设备的IP地址。
20.根据权利要求11至19任一项所述的方法,其特征在于,所述第一网络设备为服务器代理设备,所述第二网络设备为用户代理设备。
21.一种数据传输装置,其特征在于,包括:
收发单元,用于向服务器发送第一请求,所述第一请求用于获取直播数据;
处理单元,用于基于所述服务器发送的直播数据获得第一报文;
所述收发单元还用于向第二网络设备发送所述第一报文,所述第一报文包括报文头和所述直播数据,所述报文头包括用于指示所述直播数据的I帧位置的标识。
22.根据权利要求21所述的装置,其特征在于,所述报文头包括的网络层报文头,所述网络层报文头包括所述用于指示所述直播数据的I帧位置的标识。
23.根据权利要求21所述的装置,其特征在于,所述报文头包括的传输层报文头,所述传输层报文头包括所述用于指示所述直播数据的I帧位置的标识。
24.根据权利要求22所述的装置,其特征在于,所述网络层报文头包括感知应用的第六版互联网协议网络APN6报文头,所述APN6报文头中的APN字段包括所述用于指示所述直播数据的I帧位置的标识。
25.根据权利要求23所述的装置,其特征在于,所述传输层报文头包基于否定应答的可靠组播传输NORM协议报文头,所述NORM协议报文头中的NORM message字段包括所述用于指示所述直播数据的I帧位置的标识;
或者,所述传输层报文头包括基于用户数据报协议的快速互联网连接QUIC报文头,所述QUIC报文头中的CONNECT-UDP字段包括所述用于指示所述直播数据的I帧位置的标识。
26.根据权利要求21至25任一项所述的装置,其特征在于,所述收发单元还用于接收所述第二网络设备发送的第二请求,所述第二请求用于获取元数据头,所述元数据头用于携带所述直播数据的解码参数;
所述收发单元还用于向所述第二网络设备发送所述元数据头。
27.根据权利要求21至26任一项所述的装置,其特征在于,所述第一请求包括直播参数,所述直播参数用于确定提供所述直播数据的服务器。
28.根据权利要求27所述的装置,其特征在于,所述第一请求携带第一令牌,所述第一令牌用于进行接入所述服务器的鉴权,所述第一令牌与所述直播参数存在映射关系。
29.根据权利要求27所述的装置,其特征在于,所述收发单元还用于基于所述直播参数和对应关系获取所述第一令牌,所述对应关系包括所述直播参数和所述第一令牌,所述第一请求还包括所述第一网络设备获取的所述第一令牌。
30.根据权利要求21至29任一项所述的装置,其特征在于,所述第一网络设备为服务器代理设备,所述服务器为直播服务器,所述第二网络设备为用户代理设备。
31.一种数据传输装置,其特征在于,包括:
收发单元,用于接收用户设备发送的第一直播数据请求,所述第一直播数据请求用于获取直播数据;
所述收发单元还用于接收第一网络设备基于所述第一直播数据请求发送的第一报文,所述第一报文包括报文头和所述直播数据,所述报文头包括用于指示所述直播数据的I帧位置的标识;
处理单元,用于基于所述直播数据的I帧位置的标识,向用户设备转发所述第一报文。
32.根据权利要求31所述的装置,其特征在于,所述报文头包括的网络层报文头,所述网络层报文头包括所述用于指示所述直播数据的I帧位置的标识。
33.根据权利要求31所述的装置,其特征在于,所述报文头包括的传输层报文头,所述传输层报文头包括所述用于指示所述直播数据的I帧位置的标识。
34.根据权利要求32所述的装置,其特征在于,所述网络层报文头包括感知应用的第六版互联网协议网络APN6报文头,所述APN6报文头中的APN字段包括所述用于指示所述直播数据的I帧位置的标识。
35.根据权利要求33所述的装置,其特征在于,所述传输层报文头包括基于否定应答的可靠组播传输NORM协议报文头,所述NORM协议报文头中的NORM message字段包括所述用于指示所述直播数据的I帧位置的标识;
或者,所述传输层报文头包括基于用户数据报协议的快速互联网连接QUIC报文头,所述QUIC报文头中的CONNECT-UDP字段包括所述用于指示所述直播数据的I帧位置的标识。
36.根据权利要求31至35任一项所述的装置,其特征在于,所述收发单元还用于向所述第一网络设备发送第二请求,所述第二请求用于获取元数据头,所述元数据头用于携带所述直播数据的解码参数;
所述收发单元还用于接收所述第一网络设备发送的所述元数据头。
37.根据权利要求31至36任一项所述的装置,其特征在于,所述第一直播数据请求包括直播参数,所述直播参数用于确定提供所述直播数据的服务器。
38.根据权利要求37所述的装置,其特征在于,第一直播数据请求还包括第二令牌,所述收发单元还用于基于所述直播参数和对应关系,获取第二令牌,所述第二令牌用于进行接入转组播服务的鉴权,所述对应关系包括所述第二令牌和由直播参数确定的组播组标识;
所述处理单元还用于基于获取的所述第二令牌和所述第一直播数据请求包括的第二令牌,进行接入转组播服务的鉴权。
39.根据权利要求38所述的装置,其特征在于,所述第二令牌为所述用户设备的IP地址。
40.根据权利要求31至39任一所述的装置,其特征在于,所述第一网络设备为服务器代理设备,所述第二网络设备为用户代理设备。
CN202210848746.2A 2022-07-19 2022-07-19 一种数据传输方法以及装置 Pending CN117459747A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210848746.2A CN117459747A (zh) 2022-07-19 2022-07-19 一种数据传输方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210848746.2A CN117459747A (zh) 2022-07-19 2022-07-19 一种数据传输方法以及装置

Publications (1)

Publication Number Publication Date
CN117459747A true CN117459747A (zh) 2024-01-26

Family

ID=89586173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210848746.2A Pending CN117459747A (zh) 2022-07-19 2022-07-19 一种数据传输方法以及装置

Country Status (1)

Country Link
CN (1) CN117459747A (zh)

Similar Documents

Publication Publication Date Title
US9537902B2 (en) Enabling devices without native broadcast capability to access and/or receive broadcast data in an efficient manner
CN107948762B (zh) 直播视频的传输方法、装置和系统
CN113287283B (zh) 用于视听直播内容递送的方法和系统
WO2016180029A1 (zh) 直播媒体数据的方法、设备和系统
WO2019033920A1 (zh) 网络侧对远端用户设备的识别和控制方法以及设备
BR112015031512B1 (pt) Mediar entrega de conteúdo via um ou mais serviços
US8724630B2 (en) Method and system for implementing network intercommunication
CN110771116B (zh) 一种加密数据流的识别方法、设备、存储介质及系统
CN110445723B (zh) 一种网络数据调度方法及边缘节点
CN107615731B (zh) 一种组播时延诊断方法及装置
EP3413533B1 (en) Data transmission method and system
US11343786B2 (en) Method for broadcast gateway signaling using cloud network and apparatus for the same
KR20170097548A (ko) 이종 네트워크상에서의 컨텐츠 전송 방법 및 이를 위한 장치
JP6511624B2 (ja) マルチメディア共有方法、登録方法、サーバー及びプロキシサーバー
EP4060964B1 (en) Method and apparatus for processing multicast signal
CN106817629B (zh) 一种媒体信息传输方法、装置及系统
KR102162851B1 (ko) 인기 있는 라이브 방송 비디오를 결정하는 방법 및 디바이스
CN108965428A (zh) 直播数据的传输方法、装置、电子设备、系统
RU2621961C2 (ru) Шлюз и соответствующие ему способ, компьютерная программа и носитель информации
KR20170096033A (ko) 암호화된 세션의 조정된 패킷 전달
WO2008154884A1 (fr) Procédé, système et dispositif d'accès au service pour un fournisseur de service de télévision par protocole internet contracté sans attribution
US20230379516A1 (en) Method and apparatus for processing multicast signal
KR20140089035A (ko) 콘텐츠 서버와 정보 중심 네트워크 서버 간의 연동을 위한 가상 파일 시스템 및 이의 동작 방법
CN117459747A (zh) 一种数据传输方法以及装置
CN109040199A (zh) 一种分发资源数据的方法、系统及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication