CN112969090A - 一种http请求传输方法及设备 - Google Patents
一种http请求传输方法及设备 Download PDFInfo
- Publication number
- CN112969090A CN112969090A CN202110183638.3A CN202110183638A CN112969090A CN 112969090 A CN112969090 A CN 112969090A CN 202110183638 A CN202110183638 A CN 202110183638A CN 112969090 A CN112969090 A CN 112969090A
- Authority
- CN
- China
- Prior art keywords
- data
- cdn server
- byte range
- electronic device
- http 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2665—Gathering content from different sources, e.g. Internet and satellite
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4126—The peripheral being portable, e.g. PDAs or mobile phones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4346—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream involving stuffing data, e.g. packets or bytes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network
- H04N21/43637—Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44016—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6131—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a mobile phone network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6581—Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Abstract
本申请公开了一种HTTP请求传输方法及设备,涉及电子设备领域。解决了将原始HTTP请求划分为多个HTTP请求从不同CDN服务器拉取数据,可能会由于拉取数据不一致,导致最后拼接的数据无效的问题。在电子设备需要从多个CDN服务器下载数据时,可为不同CDN服务器分配的byte Range设计重合区间,意味着重合区间的数据电子设备会从不同CDN服务器都进行下载,这部分数据用于进行从不同CDN服务器拉取数据的数据一致性的校验。电子设备可在确定从不同CDN服务器拉取的数据一致时,进行数据合并以获得最终所需数据。
Description
技术领域
本申请涉及电子设备领域,尤其涉及一种超文本传输协议(hypertext transferprotocol,HTTP)请求传输方法及设备。
背景技术
随着电子技术的不断发展,如手机,平板电脑等电子设备允许无线保真(wirelessfidelity,Wi-Fi)和蜂窝双网的同时使用,以提升通信体验。例如,用户在使用手机观看视频时,同时使用Wi-Fi网络和蜂窝网,可提供更大的聚合带宽,使得视频下载速率更高、卡顿更少、更流畅。
为了能够实现Wi-Fi网络和蜂窝网的同时使用,业界提出了多路径超文本传输协议(multipath hypertext transfer protocol,MPHTTP)技术。在MPHTTP技术中,对于应用程序(application,APP)发起的原始HTTP请求,电子设备可根据该原始HTTP请求中携带的字节范围(byte Range),将该原始HTTP请求分为多个(如两个)HTTP请求后,分别通过Wi-Fi网络和蜂窝网发送给对应内容分发网络(content distribution network,CDN)服务器,以从CDN服务器拉取相应数据,达到提供更大聚合带宽的目的。
一般的,不同网络中提供内容访问的CDN服务器不同。如果针对划分的多个HTTP请求,电子设备从同一个CDN服务器拉取数据,则可能会由于跨网访问导致下载速度非常慢甚至不能访问的问题。因此,为了让用户能够获得最佳的业务体验,针对划分的多个HTTP请求,电子设备通常会从不同的CDN服务器拉取数据。例如,如图1所示,以原始HTTP请求的byte Range为1-200,蜂窝网中提供内容访问的CDN服务器为CDN 1,Wi-Fi网络中提供内容访问的CDN服务器为CDN 2为例。电子设备可将原始HTTP请求划分为两个HTTP请求,分别为:HTTP请求1,携带的byte Range为1-100;HTTP请求2,携带的byte Range为101-200。电子设备通过蜂窝网向CDN 1发送HTTP请求1,用于从CDN1拉取byte Range为1-100的数据,通过Wi-Fi网络向CDN 2发送HTTP请求2,用于从CDN 2拉取byte Range为101-200的数据。之后,电子设备将分别从CDN 1和CDN 2获得的数据进行拼接,便可获得原始HTTP请求所请求拉取的数据。
但是,将原始HTTP请求划分为多个HTTP请求,从不同CDN服务器拉取数据,可能会存在拉取数据不一致的问题,导致最后拼接的数据无效。
发明内容
本申请实施例提供一种HTTP请求传输方法及设备,解决了将原始HTTP请求划分为多个HTTP请求从不同CDN服务器拉取数据,可能会由于拉取数据不一致,导致最后拼接的数据无效的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请实施例提供一种HTTP请求传输方法,该方法可以应用于电子设备,该方法可以包括:电子设备根据需请求数据的byte Range,为第一CDN服务器分配第一byte Range,为第二CDN服务器分配第二byte Range,第一byte Range和第二byte Range存在重合区间;电子设备根据第一byte Range向第一CDN服务器发送第一HTTP请求,根据第二byte Range向第二CDN服务器发送第二HTTP请求;其中,第一HTTP请求至少用于从第一CDN服务器下载第一数据,第二HTTP请求至少用于从第二CDN服务器下载第二数据,第一数据和第二数据为byte Range为重合区间的数据,用于校验从第一CDN服务器和第二CDN服务器下载数据的一致性。
采用该技术方案,在电子设备需要从多个CDN服务器下载数据时,为不同CDN服务器分配的byte Range设计重合区间,意味着重合区间的数据电子设备会从不同CDN服务器都进行下载,这部分数据可用于进行从不同CDN服务器拉取数据的数据一致性的校验。之后,电子设备可以在确定从不同CDN服务器拉取的数据一致时,进行数据合并以获得最终所需数据。这样,采用MPHTTP技术,不仅可以获得更大聚合带宽,同时可确保数据合并的有效性,保证了业务的正常运行。
在一种可能的实现方式中,第一byte Range标识的所请求数据的截止字节,大于第二byte Range标识的所请求数据的开始字节。也就是说,第二byte Range的编号较小的字节与第一byte Range的编号较大的字节部分重合。
在另一种可能的实现方式中,上述电子设备根据需请求数据的byte Range,为第一内容分发网络CDN服务器分配第一byte Range,为第二CDN服务器分配第二byte Range,可以包括:电子设备根据需请求数据的byte Range,为第一CDN服务器分配第三byteRange,为第二CDN服务器分配第四byte Range;其中,第三byte Range和第四byte Range不存在重合区间,且第三byte Range和第四byte Range的交集为需请求数据的byte Range;电子设备根据预定义的初始值对第三byte Range标识的所请求数据的截止字节进行调整,以获得第一byte Range,并将第四byte Range作为第二byte Range。这样,通过为不同CDN服务器先分配对应的byte Range,以便于分配的byte Range能够满足特定的性能需求,如下载数据的速率最佳,又如使得不同CDN服务器之间的性能能够均衡。
在另一种可能的实现方式中,该方法还可以包括:电子设备从第一CDN服务器接收第一数据,从第二CDN服务器接收第二数据;电子设备根据第一数据和第二数据,对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验。
在另一种可能的实现方式中,在上述电子设备根据第一数据和第二数据,对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验之前,该方法还可以包括:电子设备获取第一数据和第二数据中填充数据的比例;上述电子设备根据第一数据和第二数据,对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验,可以包括:电子设备在确定填充数据的比例的小于阈值时,根据第一数据和第二数据,对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验。在进行数据一致性校验之前,先确认进行比对的数据中填充数据的占比,在占比满足一定条件时,才利用这些数据进行一致性校验,确保了数据一致性校验的准确性。
在另一种可能的实现方式中,该方法还可以包括:电子设备在确定填充数据的比例大于阈值时,对第一byte Range标识的所请求数据的截止字节进行调整,增加第一byteRange和第二byte Range的重合区间,至少用于从第一CDN服务器下载第三数据,从第二CDN服务器下载第四数据;当电子设备确定第三数据和第四数据中填充数据的比例小于阈值时,根据第三数据和第四数据,对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验;当电子设备确定第三数据和第四数据中填充数据的比例大于阈值,则继续增加第一byte Range和第二byte Range的重合区间,直到从第一CDN服务器和第二CDN服务器下载的byte Range相同的数据的填充数据比例小于阈值,用于对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验。这样,在确定进行比对的数据中填充数据的占比大于阈值时,通过增加重合区域的大小,以便可获得其他数据来进行数据一致性校验。
在另一种可能的实现方式中,第一HTTP请求包括资源描述符和第一byte Range;或,第一HTTP请求包括资源描述符和需请求数据的byte Range;或第一HTTP请求包括资源描述符。第二HTTP请求包括资源描述符和第二byte Range;其中,资源描述符用于描述需请求数据。
在另一种可能的实现方式中,当第一HTTP请求包括资源描述符和需请求数据的byte Range;或第一HTTP请求包括资源描述符时,该方法还可以包括:在电子设备校验得到从第一CDN服务器和第二CDN服务器下载数据一致时,电子设备向第一CDN服务器发送重置报文,将从第一CDN服务器和第二CDN服务器下载的数据进行拼接,以获得需请求数据;在电子设备校验得到从第一CDN服务器和第二CDN服务器下载数据不一致时,电子设备向第二CDN服务器发送重置报文,由第一CDN服务器处下载需请求数据;其中,重置报文用于指示停止向电子设备返回数据。
在另一种可能的实现方式中,当第一HTTP请求包括资源描述符和第一byte Rang时,该方法还可以包括:在电子设备校验得到从第一CDN服务器和第二CDN服务器下载数据一致时,电子设备将从第一CDN服务器和第二CDN服务器下载的数据进行拼接,以获得需请求数据;在电子设备校验得到从第一CDN服务器和第二CDN服务器下载数据不一致时,电子设备向第一CDN服务器发送第三HTTP请求,向第二CDN服务器发送重置报文,第三HTTP请求用于请求下载需请求数据中除第一byte Rang所标识的数据,重置报文用于指示停止向电子设备返回数据。
在校验从第一CDN服务器和第二CDN服务器下载数据一致时,可将从第一CDN服务器下载的数据进行拼接使用。在检验从第一CDN服务器和第二CDN服务器下载的数据不一致时,表明将从第一CDN服务器下载的数据与从第二CDN服务器下载的数据进行拼接会出现拼接数据无效的现象。电子设备可由第一CDN服务器处下载需请求数据,而不使用第二CDN服务器返回的数据。
在另一种可能的实现方式中,电子设备向第一CDN服务器发送第一HTTP请求,包括:电子设备通过第一网络向第一CDN服务器发送第一HTTP请求;向第二CDN服务器发送第二HTTP请求,包括:电子设备通过第二网络向第二CDN服务器发送第二HTTP请求;其中,第一网络与第二网络不同。
在另一种可能的实现方式中,第一网络为蜂窝网,第二网络为Wi-Fi网络。
在另一种可能的实现方式中,电子设备根据第一数据和第二数据,对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验,可以包括:电子设备采用二进制比对的方式对第一数据和第二数据进行对比;在第一数据和第二数据的二进制对比一致时,确定从第一CDN服务器和第二CDN服务器下载数据一致,在第一数据和第二数据的二进制比对不一致时,确定从第一CDN服务器和第二CDN服务器下载数据不一致。
第二方面,本申请实施例提供一种电子设备,该电子设备可以包括:处理器、存储器和通信接口,存储器和通信接口与处理器耦合,通信接口用于与其他设备通信,其他设备包括第一CDN服务器和第二CDN服务器,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被电子设备执行时,使得电子设备执行如第一方面或第一方面的可能的实现方式中任一所述的HTTP请求传输方法。
第三方面,本申请实施例提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在电子设备中运行时,使得电子设备执行如权利要求第一方面或第一方面的可能的实现方式中任一所述的HTTP请求传输方法。
第四方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面或第一方面的可能的实现方式中任一所述的HTTP请求传输方法。
第五方面,本申请实施例提供一种装置,该装置具有实现上述各方面的方法中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,例如,分配单元或模块,发送单元或模块,接收单元或模块,获取单元或模块等。
第六方面,本申请实施例提供一种HTTP请求传输系统,该系统至少包括电子设备,第一CDN服务器和第二CDN服务器;其中,电子设备用于:根据需请求数据的byte Range,为第一CDN服务器分配第一byte Range,为第二CDN服务器分配第二byte Range,第一byteRange和第二byte Range存在重合区间,根据所述第一byte Range向第一CDN服务器发送第一HTTP请求,根据第二byte Range向第二CDN服务器发送第二HTTP请求;其中,第一HTTP请求至少用于从第一CDN服务器下载第一数据,第二HTTP请求至少用于从第二CDN服务器下载第二数据,第一数据和第二数据为byte Range为所述重合区间的数据,用于校验从第一CDN服务器和第二CDN服务器下载数据的一致性。第一CDN服务器用于,接收来自电子设备的第一HTTP请求,向电子设备返回数据,该数据至少包括第一数据。第二CDN服务器用于,接收来自电子设备的第二HTTP请求,向电子设备返回数据,该数据至少包括第二数据。
在一种可能的实现方式中,第一CDN服务器可以是位于第一网络的CDN服务器,第二CDN服务器可以是位于第二网络的服务器。第一网络和第二网络不同。如第一网络为蜂窝网,第二网络为Wi-Fi网络。
应当理解的是,本申请中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
图1为现有技术提供的一种HTTP请求的传输示意图;
图2为本申请实施例提供的一种系统架构的简化示意图;
图3为本申请实施例提供的一种电子设备的组成示意图;
图4为本申请实施例提供的一种HTTP请求传输方法的流程示意图。
具体实施方式
以下,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
目前,业界提出了MPHTTP技术,用于实现多网,如Wi-Fi网络和蜂窝网的同时使用,以提升通信体验。MPHTTP技术是通过将APP发起的原始HTTP请求按照其携带的byte Range划分为多个HTTP请求后,分别通过Wi-Fi网络和蜂窝网发送给对应CDN服务器,以从CDN服务器拉取相应数据,达到提供更大聚合带宽的目的。
通常情况下,不同网络中提供内容访问的CDN服务器不同。如果针对划分的多个HTTP请求,电子设备都从同一个CDN服务器拉取数据,则可能会由于跨网访问导致下载速度非常慢甚至不能访问的问题。示例性的,结合图1所示示例,如果电子设备将HTTP请求2通过Wi-Fi网络发送给了CDN 1,则可能会由于跨网访问导致相应数据下载速度非常慢甚至不能访问对应CDN服务器的问题。例如,结合表1所示的测试数据,可以看到的是,对于爱奇艺而言,如果通过Wi-Fi网络从Wi-Fi网络的CDN服务器下载数据,则数据的下载速度可达到10MB/s,而如果通过Wi-Fi网络从其他网络,如长期演进(long term evolution,LTE)网络的CDN服务器下载数据,则下载速度为0,即无法访问CDN服务器。哔哩哔哩也存在相同现象。对于腾讯而言,如果通过Wi-Fi网络从Wi-Fi网络的CDN服务器下载数据,则数据的下载速度可达到8MB/s,而如果通过Wi-Fi网络从LTE网络的CDN服务器下载数据,则下载速度为0.6MB/s,下载速度非常慢。优酷也存在相同现象。
表1
因此,为了让用户能够获得最佳的业务体验,电子设备划分得到的多个HTTP请求会用作从被传送网络中对应的CDN服务器拉取数据,即不同的HTTP请求用于从不同的CDN服务器拉取数据。例如图1所示的示例,HTTP请求1用于从CDN 1拉取数据,HTTP请求2用于从CDN 2拉取数据。之后,电子设备将从不同CDN服务器拉取的数据进行拼接后,便可获得原始HTTP请求所请求拉取的数据。
但是,如果电子设备使用划分得到的多个HTTP请求,从不同的CDN服务器拉取数据,则可能会存在拉取的数据不一致的现象,这会导致最后拼接得到的数据无效。例如,结合图1所示的示例,从CDN 1拉取byte Range为1-100的数据,从CDN 2拉取byte Range为101-200的数据。当电子设备需要将这些数据拼接在一起时,可能会由于CDN服务器升级的不一致性,导致数据拼接后无效,使得业务无法正常运行,如用户无法正常观看视频。尤其在CDN服务器出现域名服务器(domain name system,DNS)劫持非常多的环境下,数据拼接后无效的可能性更大。
因此,在电子设备使用MPHTTP技术时,有必要对从多个CDN服务器拉取数据的一致性进行校验,以确保业务的正常运行。
通常,对于很多视频业务,电子设备在向CDN服务器发送对应HTTP请求之后,会向CDN服务器请求该HTTP请求所请求数据的描述信息清单(manifest)文件。描述信息manifest文件中包含:最后修改时间(last modified time);时间戳(timestamp);标签(tag)等描述信息。但是,这些描述信息均不能用于证明从多个CDN服务器拉取的数据是否一致。
本申请实施例提供一种HTTP请求传输方法,该方法可以应用于电子设备。在电子设备需要从多个CDN服务器下载数据时,为不同CDN服务器分配的byte Range设计重合区间。这意味着重合区间的数据电子设备会从不同CDN服务器都进行下载,这部分数据可用于进行从不同CDN服务器拉取数据的数据一致性的校验。之后,电子设备可以在确定从不同CDN服务器拉取的数据一致时,进行数据合并以获得最终所需数据。这样,采用MPHTTP技术,不仅可以获得更大聚合带宽,同时可确保数据合并的有效性,保证了业务的正常运行。
下面将结合附图对本申请实施例的实施方式进行详细描述。
图2为本申请实施例提供的一种系统架构的组成示意图。如图2所示,该系统架构至少包括:电子设备201,以及多个CDN服务器202。
CDN服务器202是部署在网络中用于提供内容访问的服务器。电子设备201可通过网络向CDN服务器202发送HTTP请求,以从CDN服务器202下载对应数据。
在本申请实施例中,对于电子设备201的APP发起的原始HTTP请求,电子设备201可使用MPHTTP技术从上述多个CDN服务器202下载对应数据,以提供更大的聚合带宽,提升通信体验。例如,电子设备201可根据该原始HTTP请求携带的byte Range,为上述多个CDN服务器202分配不同的byte Range。然后,电子设备201根据为上述多个CDN服务器202分配的byte Range通过网络向对应的CDN服务器发送相应HTTP请求,以便其根据接收到的HTTP请求向电子设备201返回相应数据。
其中,电子设备201为多个CDN服务器202分配的不同byte Range中,用于标识连续数据的byte Range存在重合区间。这样,电子设备201可从不同CDN服务器拉取相同的数据(相同的数据为byte Range存在重合区间的数据),用于进行从不同CDN服务器拉取数据的数据一致性的校验。在数据一致性校验通过时,电子设备201可继续从不同CDN服务器下载对应数据。如果数据一致性校验未通过,则电子设备201停止同时从多个CDN服务器下载对应数据,而是仅从部分CDN服务器(如一个CDN服务器)下载数据。这样,在提供更大聚合带宽的同时,确保了数据合并的有效性,保证了业务的正常运行。
其中,在本实施例中,多个可以指两个,也可以指两个以上。上述多个CDN服务器202可以位于同一网络,也可以位于不同网络。例如,以该系统架构包括两个CDN服务器202,分别为CDN服务器202-1和CDN服务器202-2为例。CDN服务器202-1和CDN服务器202-2可以是位于同一网络(如Wi-Fi网络,又如蜂窝网)中的不同CDN服务器。CDN服务器202-1和CDN服务器202-2也可以是位于不同网络的CDN服务器,如CDN服务器202-1位于蜂窝网,CDN服务器202-2位于Wi-Fi网络。其中,图2便是以系统架构包括两个CDN服务器202,分别为:CDN服务器202-1和CDN服务器202-2,且CDN服务器202-1位于Wi-Fi网络,CDN服务器202-2位于蜂窝网为例示出的。另外,在本实施例中,蜂窝网可以是使用任意移动通信技术的网络,如第3代移动通信技术(the 3rd generation telecommunication,3G)网络,第四代移动通信技术(the fourth generation telecommunication,4G)网络(或者说LTE网络),第五代移动通信技术(the 5th generation telecommunication,5G)网络,或下一代移动通信网络等。
例如,基于图2所示的系统架构示意图,在一些实施例中,以用户在使用电子设备201的视频应用观看视频为例。电子设备201的视频应用发起原始HTTP请求。该原始HTTP请求携带的byte Range为[1,200]。电子设备201可根据该原始HTTP请求携带的byte Range,为CDN服务器202-1和CDN服务器202-2分配对应的byte Range。其中,为CDN服务器202-1和CDN服务器202-2分配的byte Range存在重合区间。如,为CDN服务器202-1分配的byteRange为[1,110],为CDN服务器202-2分配的byte Range为[101,200],两者的重合区间为[101,110]。
电子设备201根据为CDN服务器202-1分配的byte Range,可通过蜂窝网向CDN服务器202-1发送HTTP请求1,以便可从向CDN服务器202-1下载byte Range为[101,110]的视频数据。电子设备201还可根据为CDN服务器202-2分配的byte Range,通过Wi-Fi网络向CDN服务器202-2发送HTTP请求2,以便可从CDN 2下载byte Range为[101,110]的视频数据。可以理解的是,电子设备201从CDN服务器202-1下载了byte Range为[101,110]的视频数据,也从CDN服务器202-2下载了byte Range为[101,110]的视频数据。利用从CDN服务器202-1和CDN服务器202-2下载的byte Range为[101,110]的视频数据,电子设备201可以校验从不同CDN服务器下载的数据是否一致。在数据一致性校验通过时,电子设备201可对从CDN服务器202-1和CDN服务器202-2下载的视频数据进行拼接,以获得最终需要的视频数据。如果数据一致性校验未通过,则电子设备201可停止同时从这两个CDN服务器下载数据,而是仅从其中一个CDN服务器下载数据。如电子设备201可停止从CDN服务器202-2下载数据,仅从CDN服务器202-1处下载剩余视频数据。
示例性的,本申请实施例中所述的电子设备201可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、可穿戴设备、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、媒体播放器等设备,本申请实施例对该设备的具体形态不作特殊限制。
请参考图3,为本申请实施例提供的一种电子设备的结构示意图。如图3所示,电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本实施例示意的结构并不构成对电子设备的具体限定。在另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,SIM接口,和/或USB接口等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。例如,在本申请实施例中,移动通信模块150可用于发送HTTP请求,该HTTP请求用于请求从CDN服务器下载对应数据。移动通信模块150还可用于接收来自CDN服务器的对应数据。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。例如,在本申请实施例中,无线通信模块160可用于发送HTTP请求,该HTTP请求用于请求从CDN服务器下载对应数据。无线通信模块160还可用于接收来自CDN服务器的对应数据。
在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic l ight-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupleddevice,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备的各种功能应用以及数据处理。例如,在本实施例中,处理器110可通过运行存储在内部存储器121的指令,使得电子设备可以根据为不同的CDN服务器分配的存在重合区间的byte Range,向不同CDN服务器发送对应HTTP请求,使得电子设备可从不同CDN服务器下载相同数据,利用这部分相同数据电子设备可判断从不同CDN服务器下载的数据是否一致,并在确定从不同CDN服务器下载的数据一致时,进行数据合并以获得最终所需数据。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备可以设置至少一个麦克风170C。耳机接口170D用于连接有线耳机。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。当有触摸操作作用于显示屏194,电子设备根据压力传感器180A检测所述触摸操作强度。电子设备也可以根据压力传感器180A的检测信号计算触摸的位置。
陀螺仪传感器180B可以用于确定电子设备的运动姿态。陀螺仪传感器180B可以用于拍摄防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。气压传感器180C用于测量气压。在一些实施例中,电子设备通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。磁传感器180D包括霍尔传感器。电子设备可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测电子设备在各个方向上(一般为三轴)加速度的大小。距离传感器180F,用于测量距离。如拍摄场景,电子设备可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备通过发光二极管向外发射红外光。电子设备使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备附近有物体。当检测到不充分的反射光时,电子设备可以确定电子设备附近没有物体。电子设备可以利用接近光传感器180G检测用户手持电子设备贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。电子设备可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,电子设备利用温度传感器180J检测的温度,执行温度处理策略。触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号等。按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备的接触和分离。电子设备可以支持1个或N个SIM卡接口,N为大于1的正整数。电子设备通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备中,不能和电子设备分离。
以下实施例中的方法均可以在具有上述硬件结构的电子设备中实现。
在本实施例中,对于电子设备的APP(如视频应用)发起的原始HTTP请求,电子设备可使用MPHTTP技术从多个CDN服务器下载对应数据,以提供更大的聚合带宽。具体的,电子设备可根据原始HTTP请求携带的byte Range,为多个CDN服务器分配不同的byte Range。其中,为多个CDN服务器分配的byte Range中,用于标识连续数据的byte Range存在重合区间。另外,为所有CDN服务器分配的byte Range的交集与原始HTTP请求携带的byte Range相同。电子设备根据存在重合区间的byte Range向不同CDN服务器发送相应HTTP请求,以便可从不同CDN服务器拉取相同的数据(相同的数据为byte Range存在重合区间的数据)。这样,使用这些数据,电子设备便可进行从不同CDN服务器下载数据的数据一致性校验。另外,在本实施例中,上述多个CDN服务器可以位于同一网络,也可以位于不同网络。
为了便于描述,以下实施例结合图2所示的架构,以电子设备使用MPHTTP技术从两个CDN服务器下载数据,且两个CDN服务器位于不同网络为例,对本申请实施例提供的技术方案进行详细说明。
图4为本申请实施例提供的一种HTTP请求传输方法的流程示意图。如图4所示,该方法可以包括:
S401、电子设备获取需请求数据的字节范围(byte Range)。
其中,byte Range用于标识请求数据的开始字节和截止字节。
示例性的,在用户使用电子设备的APP,如使用电子设备的视频应用观看视频时,视频应用需要从CDN服务器获取对应数据以为用户播放视频。如视频应用发起原始HTTP请求,用于请求获取对应数据。其中,该原始HTTP请求可以携带资源描述符和byte Range。资源描述符用于描述所要请求的数据,byte Range用于标识所要请求数据的开始字节和截止字节。例如,byte Range为[a,d],用于标识该原始HTTP请求用于请求资源描述符所描述数据的第a个字节到第d个字节的数据。电子设备的APP发起原始HTTP请求后,电子设备可根据该原始HTTP请求中的byte Range,获得需请求数据的byte Range,如获得需请求数据的byte Range为[a,d]。
S402、电子设备根据需请求数据的byte Range,为第一CDN服务器分配第一byteRange,为第二CDN服务器分配第二byte Range。
其中,第一byte Range和第二byte Range存在重合区间。
示例性的,结合图2,第一CDN服务器可以为图2所示架构中的CDN服务器202-1,第二CDN服务器可以为图2所示架构中的CDN服务器202-2。为了能够提供更大的聚合带宽,电子设备可采用MPHTTP技术从CDN服务器202-1和CDN服务器202-2下载byte Range为[a,d]的数据。在本实施例中,电子设备可根据需请求数据的byte Range:[a,d],为CDN服务器202-1分配第一byte Range,为CDN服务器202-2分配第二byte Range。且第一byte Range和第二byte Range存在重合区间。如,电子设备为CDN服务器202-1分配的第一byte Range为[a,b]。电子设备为CDN服务器202-2分配的第二byte Range为[c,d]。[a,b]和[c,d]均是[a,d]的子集。第二byte Range的编号较小的字节与第一byte Range的编号较大的字节部分重合。也就是说,第一byte Range标识的所请求数据的截止字节,大于第二byte Range标识的所请求数据的开始字节,即c小于b,第一byte Range和第二byte Range的重合区间为[c,b]。
在一些实施例中,上述S402具体的可以为:在获取到需请求数据的byte Range之后,电子设备可以先为CDN服务器202-1和CDN服务器202-2分配对应的byte Range。如电子设备可先为CDN服务器202-1分配第一byte Range'(该第一byte Range'为本申请中所述的第三byte Range),为CDN服务器202-2分配第二byte Range'(该第二byte Range'为本申请中所述的第四byte Range),以满足特定的性能需求,如从不同CDN服务器下载数据的速率最佳,又如,使得不同CDN服务器之间的性能能够均衡。通常情况下,如果要满足这些特定的性能需求,为CDN服务器202-1和CDN服务器202-2分配的byte Range之间,即第一byteRange'和第二byte Range'是不存在重合区间的。然后,电子设备可通过调整第一byteRange'和第二byte Range'中的一个或两个,使得最终为CDN服务器202-1和CDN服务器202-2分配的byte Range(即第一byte Range和第二byte Range)之间存在重合区间。如,可以预先定义一个初始值。电子设备可根据该初始值对第一byte Range'和第二byte Range'中的一个或两个进行调整,以获得存在重合区间的第一byte Range和第二byte Range。
继续以需请求数据的byte Range:[a,d]为例,电子设备可先为CDN服务器202-1分配第一byte Range'为[a,c-1],为CDN服务器202-1分配第二byte Range'为[c,d],这样的分配结果满足特定的性能需求,如能够使得从CDN服务器202-1和CDN服务器202-2下载数据的速率均达到最优。然后,电子设备根据初始值(如初始值为e)对第一byte Range'进行调整,将第一byte Range'调整为[a,c-1+e]。可以理解的是,c-1+e=b。第二byte Range'可保持不变。这样,电子设备最终为CDN服务器202-1分配的第一byte Range为[a,c-1+e],即[a,b],为CDN服务器202-2分配的第二byte Range为[c,d]。其中,第一byte Range和第二byteRange的重合区间为[c,b],即为[c,c-1+e]。例如,以需请求数据的byte Range:[1,200],即a=1,d=200为例,电子设备可先为CDN服务器202-1分配第一byte Range'为[1,100],为CDN服务器202-1分配的第二byte Range'为[101,200],即c=101。然后,电子设备根据初始值e=10,对第一byte Range'进行调整,将第一byte Range'调整为[1,110]。即b=110。第二byte Range'可保持不变。可以理解的是,电子设备最终为CDN服务器202-1分配的第一byte Range为[1,110],为CDN服务器202-2分配的第二byte Range为[101,200]。第一byteRange和第二byte Range的重合区间为[101,110]。
S403、电子设备根据为第一CDN服务器分配的第一byte Range,向第一CDN服务器发送第一HTTP请求,根据为第二CDN服务器分配的第二byte Range,向第二CDN服务器发送第二HTTP请求。
在电子设备为第一CDN服务器和第二CDN服务器分配了对应的byte Range后,电子设备可生成对应的HTTP请求,如第一HTTP请求和第二HTTP请求,用于向对应的CDN服务器请求相应数据。也就是说,电子设备可通过网络向对应的CDN服务器发送生成的HTTP请求,以请求相应数据。如,结合图2所示的架构,电子设备可通过第一网络,如蜂窝网向CDN服务器202-1发送第一HTTP请求,通过第二网络,如Wi-Fi网络向CDN服务器202-2发送第二HTTP请求。
在本申请实施例中,电子设备可向CDN服务器发送不同的HTTP请求,以请求CDN服务器返回对应数据。以下结合S401-S402中的示例,按照电子设备发送HTTP请求的不同,对上述S403进行详细说明。
方式1:电子设备将S402中为CDN服务器202-1分配的第一byte Range:[a,b]携带在第一HTTP请求中发送给CDN服务器202-1,将S402中为CDN服务器202-2分配的第二byteRange:[c,d]携带在第二HTTP请求中发送给CDN服务器202-2。另外,第一HTTP请求和第二HTTP请求中,还可携带用于描述所要请求的数据的资源描述符。该资源描述符可以是电子设备根据APP发起的原始HTTP请求获得的。例如,结合S403中的示例,电子设备可以向CDN服务器202-1发送第一HTTP请求,该第一HTTP请求携带资源描述符和byte Range:[1,110]。电子设备向CDN服务器202-2发送第二HTTP请求,该第二HTTP请求携带资源描述符和byteRange:[101,200]。
方式2:电子设备将S401中获得的需请求数据的byte Range:[a,d]携带在第一HTTP请求中发送给CDN服务器202-1,将S402中为CDN服务器202-2分配的第二byte Range为[c,d]携带在第二HTTP请求中发送给CDN服务器202-2。另外,第一HTTP请求和第二HTTP请求中,还可携带用于描述所要请求的数据的资源描述符。该资源描述符可以是电子设备根据APP发起的原始HTTP请求获得的。例如,结合S403中的示例,电子设备可以向CDN服务器202-1发送第一HTTP请求,该第一HTTP请求携带资源描述符和byte Range:[1,200]。电子设备向CDN服务器202-2发送第二HTTP请求,该第二HTTP请求携带资源描述符和byte Range:[101,200]。
方式3:电子设备向CDN服务器202-1发送第一HTTP请求,该第一HTTP请求包含用于描述所要请求的数据的资源描述符,不包含byte Range字段(或者说byte Range字段为空)。电子设备将S402中为CDN服务器202-2分配的第二byte Range为[c,d]携带在第二HTTP请求中发送给CDN服务器202-2。该第二HTTP请求中还可以包括用于描述所要请求的数据的资源描述符。例如,结合S403中的示例,电子设备可以向CDN服务器202-1发送第一HTTP请求,该第一HTTP请求携带资源描述符,不携带的byte Range字段。电子设备向CDN服务器202-2发送第二HTTP请求,该第二HTTP请求携带资源描述符和byte Range:[101,200]。
S404、电子设备接收第一CDN服务器和第二CDN服务器返回的相应数据。
S405、电子设备根据来自第一CDN服务器的第一数据和来自第二CDN服务器的第二数据,判断从第一CDN服务器和第二CDN服务器下载数据的一致性。
其中,第一数据和第二数据是byte Range为上述重合区间的数据。如,结合上述S403中的示例,第一数据和第二数据是byte Range为[c,b]的数据。
在电子设备向第一CDN服务器和第二CDN服务器发送了对应的HTTP请求后,第一CDN服务器和第二CDN服务器可分别根据接收到的HTTP请求,向电子设备返回相应数据,即电子设备可从第一CDN服务器和第二CDN服务器下载相应数据。根据S403中的描述,可以理解的是,电子设备利用第一HTTP请求和第二HTTP请求,均向对应CDN服务器请求了byteRange为[c,b]的数据。也就是说,电子设备不仅会从第一CDN服务器下载byte Range为[c,b]的数据,如称为上述第一数据,也会从第二CDN服务器下载byte Range为[c,b]的数据,如称为上述第二数据。电子设备在接收到第一数据和第二数据后,可根据该第一数据和第二数据,校验从第一CDN服务器和第二CDN服务器下载的数据是否一致。如可采用二进制比对的方式对第一数据和第二数据进行数据一致性校验,可在第一数据和第二数据的二进制比对完全一致时,确认校验通过,否则,确认校验未通过。
示例性的,在电子设备采用如S403中的方式1,方式2及方式3所述的任意方式,向CDN服务器202-1发送了第一HTTP请求,向CDN服务器202-2发送了第二HTTP请求后,电子设备可接收CDN服务器202-1和CDN服务器202-2返回的数据。在电子设备接收到CDN服务器202-1返回的byte Range为[a,b]的数据时,电子设备可以确认是否接收到CDN服务器202-2返回的byte Range为[c,b]的数据。也就是说,电子设备从CDN服务器202-1完成byte Range为[a,b]的数据的下载时,可以确认是否从CDN服务器202-2完成了byte Range为[c,b]的数据的下载。
如果电子设备在从CDN服务器202-1完成byte Range为[a,b]的数据的下载时,从CDN服务器202-2完成了byte Range为[c,b]的数据的下载,则电子设备可对从CDN服务器202-1下载的byte Range为[c,b]的数据,及从CDN服务器202-2下载的byte Range为[c,b]的数据进行数据一致性校验。
如果电子设备在从CDN服务器202-1完成byte Range为[a,b]的数据的下载时,还未从CDN服务器202-2完成byte Range为[c,b]的数据的下载,则在一些实施例中,电子设备可终止从CDN服务器202-2下载数据,改用从CDN服务器202-1下载剩余数据,如byte Range为[b+1,d]的数据。在其他一些实施例中,电子设备可以等待预设时间,以使得从CDN服务器202-2至少完成byte Range为[c,b]的数据的下载。如果在该预设时间后,电子设备从CDN服务器202-2完成了byte Range为[c,b]的数据的下载,则电子设备可对从CDN服务器202-1下载的byte Range为[c,b]的数据,及从CDN服务器202-2下载的byte Range为[c,b]的数据进行数据一致性校验。如果在该预设时间后,电子设备依然未从CDN服务器202-2完成byteRange为[c,b]的数据的下载,则电子设备可终止从CDN服务器202-2下载数据,改用从CDN服务器202-1下载剩余数据,如byte Range为[b+1,d]的数据。
可以理解的是,在S403的方式2和方式3中,电子设备发送给CDN服务器202-1的第一HTTP请求是可以用于请求byte Range为[b+1,d]的数据下载的,因此,在这两种实现方式中,如果要终止从CDN服务器202-2下载数据,改用从CDN服务器202-1下载剩余数据,则无需对从CDN服务器202-1下载数据的过程进行干预,电子设备自动会从CDN服务器202-1下载完剩余数据,只需向CDN服务器202-2发送对应的重置报文,以请求停止从CDN服务器202-2继续返回数据即可。而在S403的方式1中,电子设备向CDN服务器202-1发送的第一HTTP请求仅用于请求byte Range为[a,b]的数据的下载,因此,在该实现方式中,如果要终止从CDN服务器202-2下载数据,改用从CDN服务器202-1下载剩余数据,则电子设备不仅需向CDN服务器202-2发送对应的重置报文,以请求停止从CDN服务器202-2继续返回数据,还需向CDN服务器202-1发送携带byte Range为[b+1,d]的HTTP请求,以便电子设备可从CDN服务器202-1下载完剩余数据。
例如,结合S403中的示例,电子设备向CDN服务器202-1发送了第一HTTP请求,向CDN服务器202-2发送了第二HTTP请求后,电子设备可接收CDN服务器202-1和CDN服务器202-2返回的数据。在电子设备从CDN服务器202-1完成byte Range为[1,110]的数据的下载时,可以确认是否从CDN服务器202-2完成了byte Range为[101,110]的数据的下载。如果电子设备在从CDN服务器202-1完成byte Range为[1,110]的数据的下载时,从CDN服务器202-2完成了byte Range为[101,110]的数据的下载,则电子设备可采用二进制比对的方式,对从CDN服务器202-1下载的byte Range为[101,110]的数据,及从CDN服务器202-2下载的byte Range为[101,110]的数据进行数据一致性校验。
如果电子设备在从CDN服务器202-1完成byte Range为[1,110]的数据的下载时,还未从CDN服务器202-2完成byte Range为[101,110]的数据的下载,则电子设备可以等待预设时间,以便从CDN服务器202-2至少完成byte Range为[101,110]的数据的下载。如果在该预设时间后,电子设备从CDN服务器202-2完成了byte Range为[101,110]的数据的下载,则电子设备可对从CDN服务器202-1下载的byte Range为[101,110]的数据,及从CDN服务器202-2下载的byte Range为[101,110]的数据进行数据一致性校验。如果在该预设时间后,电子设备依然未从CDN服务器202-2完成byte Range为[101,110]的数据的下载,则电子设备可终止从CDN服务器202-2下载数据,改用从CDN服务器202-1下载byte Range为[111,200]的数据。如,在S403的方式2和方式3中,电子设备自动会从CDN服务器202-1下载完byteRange为[111,200]的数据。电子设备还需向CDN服务器202-2发送对应的重置报文,以请求停止从CDN服务器202-2继续返回数据。又如,在S403的方式1中,电子设备需向CDN服务器202-2发送对应的重置报文,以请求停止从CDN服务器202-2继续返回数据,还需向CDN服务器202-1发送携带byte Range为[111,200]的HTTP请求,以便电子设备从CDN服务器202-1下载完剩余数据。
在本申请其他一些实施例中,可以理解的,CDN服务器返回给电子设备的数据不一定全是有效数据,如返回的数据可能并不指示内容,而是填充数据(如\0)或控制数据等数据。因此,为了保证数据一致性校验的准确性,电子设备可以在获得上述第一数据和上述第二数据后,先获取该第一数据和第二数据中有效数据的比例。如果该有效数据的比例大于阈值1,则表明根据第一数据和第二数据进行数据一致性校验的准确性比较高,此时电子设备可根据该第一数据和第二数据,对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验,即执行上述S405中判断从第一CDN服务器和第二CDN服务器下载数据的一致性的操作。如果该有效数据的比例小于阈值1,则表明根据第一数据和第二数据进行数据一致性校验的准确性不高,此时电子设备可增加上述重合区间的大小,然后重新判断增加大小后的重合区间对应的数据(如本申请中所述的第三数据和第四数据)中有效数据的比例是否大于阈值1,如果大于阈值1,则电子设备可根据增加大小后的重合区间对应的数据,对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验。如果还未大于阈值1,则可再次增加重合区间的大小,直到最终获得的重合区间对应的数据中有效数据的比例是否大于阈值1。
例如,电子设备在从CDN服务器202-1下载的byte Range为[101,110]的数据为数据1,从CDN服务器202-2下载的byte Range为[101,110]的数据为数据2。电子设备可以获取数据1和数据2中有效数据的比例。如果该有效数据的比例大于阈值1,则电子设备可根据该数据1和数据2,对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验。如果该有效数据的比例小于阈值1,则电子设备可增加上述重合区间的大小,如,电子设备继续从CDN服务器202-1下载的byte Range为[111,120]的数据,并从CDN服务器202-2下载的byteRange为[111,120]的数据。此时byte Range的重合区间为[101,120]。然后,电子设备可重新判断从CDN服务器202-1和CDN服务器202-2下载的byte Range为[101,120]的数据中有效数据的比例是否大于阈值1,如果大于阈值1,则电子设备可根据从CDN服务器202-1和CDN服务器202-2下载的byte Range为[101,120]的数据,对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验。如果还未大于阈值1,则可再次增加重合区间的大小,如byteRange的重合区间增加为[101,130],直到最终获得的重合区间对应的数据中有效数据的比例是否大于阈值1。在其他一些实施例中,电子设备也可以仅根据增加重合区间后,继续下载的数据中有效数据的比例来确定利用这部分数据进行数据一致性校验的准确性,并在确定准确性较高时,利用该部分数据进行数据一致性校验。如电子设备在继续从CDN服务器202-1下载的byte Range为[111,120]的数据,并从CDN服务器202-2下载的byte Range为[111,120]的数据后,可以仅获取从CDN服务器202-1和CDN服务器202-2下载的byte Range为[111,120]的数据中有效数据的比例。并在确定有效数据的比例大于阈值1时,根据从CDN服务器202-1和CDN服务器202-2下载的byte Range为[111,120]的数据,对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验。
上述是以根据从不同CDN服务器下载的数据中有效数据的占比来确定利用这些数据进行数据一致性校验的准确性为例进行说明的。在其他一些实施例中,电子设备也可以在获得上述第一数据和上述第二数据后,先获取该第一数据和第二数据中如填充数据(如\0)和/或控制数据的比例。如果该数据的比例小于阈值2,则表明根据第一数据和第二数据进行数据一致性校验的准确性比较高,此时电子设备可根据该第一数据和第二数据,对从第一CDN服务器和第二CDN服务器下载数据的一致性进行校验。如果该数据的比例大于阈值2,则表明根据第一数据和第二数据进行数据一致性校验的准确性不高,此时电子设备可增加上述重合区间的大小,然后继续根据增加大小后的重合区间对应的数据执行后续操作(后续操作的详细描述与上述示例中的描述相同,此处不再赘述)。
在本申请实施例中,如果电子设备确定从第一CDN服务器和第二CDN服务器下载的数据一致,则可执行S406。如果电子设备确定从第一CDN服务器和第二CDN服务器下载的数据不一致,则可执行S407。
其中,针对S403中发送的HTTP请求的不同,S406和S407也不同。具体的:在S403的方式1下,S406具体的可以为以下S406-1,S407具体的可以为以下S407-1。也就是说,如果电子设备确定从第一CDN服务器和第二CDN服务器下载的数据一致,则可执行S406-1。如果电子设备确定从第一CDN服务器和第二CDN服务器下载的数据不一致,则可执行S407-1。
S406-1、电子设备将从第一CDN服务器下载的数据与从第二CDN服务器下载的数据进行拼接。
其中,在确定从第一CDN服务器和第二CDN服务器下载的数据一致时,表明从第一CDN服务器下载的数据可以与从第二CDN服务器下载的数据进行拼接使用。第二CDN服务器可继续向电子设备返回数据,即电子设备可继续接收来自第二CDN服务器的数据。结合上述示例,电子设备可从CDN服务器202-1下载到byte Range为[a,b](如[1,110])的数据,从CDN服务器202-2下载到byte Range为[c,d],如[101,200]的数据。电子设备对从CDN服务器202-1和CDN服务器202-2下载的数据进行拼接,便可获得原始HTTP请求所请求的byteRange为[a,d]的数据。
S407-1、电子设备向第一CDN服务器发送第三HTTP请求,向第二CDN服务器发送重置报文。
其中,该第三HTTP请求用于请求下载S401中需请求数据中除第一byte Rang所标识的数据。
在确定从第一CDN服务器和第二CDN服务器下载的数据不一致时,表明将从第一CDN服务器下载的数据与从第二CDN服务器下载的数据进行拼接会出现拼接数据无效的现象。因此,电子设备可丢弃已从第二CDN服务器下载的数据,并向第二CDN服务器发送重置报文,以使得第二CDN服务器停止向电子设备返回数据。另外,在S403的方式1下,电子设备发送给CDN服务器202-1的第一HTTP请求仅用于请求byte Range为[a,b](如[1,110])的数据,因此,电子设备可向CDN服务器202-1发送第三HTTP请求,该第二HTTP请求携带的byteRange为[b+1,d](如[111,200]),以便电子设备可从CDN服务器202-1继续下载完剩余数据。即电子设备可从CDN服务器202-1下载到byte Range为[a,d](如[1,200])的数据。
可以理解的是,如S405中的描述,CDN服务器返回给电子设备的数据不一定全是有效数据,即根据上述第一数据和第二数据并不一定能进行数据一致性的校验。如果根据第一数据和第二数据不能进行数据一致性校验,则电子设备可通过增加重合区域大小的方式来重新获得对应数据来进行数据一致性校验。在本实施例中,如果S403采用上述方式1传输HTTP请求,则在确认根据上述第一数据和第二数据不能进行数据一致性的校验时,电子设备可向第一CDN服务器发送上述第三HTTP请求,以便继续从第一CDN服务器下载数据。这样,在进行数据一致性校验后,根据校验结果,可按照执行如下S406-2或S407-2所述的步骤。
在S403的方式2及方式3下,S406具体的可以为以下S406-2,S407具体的可以为以下S407-2。也就是说,如果电子设备确定从第一CDN服务器和第二CDN服务器下载的数据一致,则可执行S406-2。如果电子设备确定从第一CDN服务器和第二CDN服务器下载的数据不一致,则可执行S407-2。
S406-2、电子设备向第一CDN服务器发送重置报文,将从第一CDN服务器下载的数据与从第二CDN服务器下载的数据进行拼接。
在确定从第一CDN服务器和第二CDN服务器下载的数据一致时,表明从第一CDN服务器下载的数据可以与从第二CDN服务器下载的数据进行拼接使用。而由于在S403的方式2及方式3下,电子设备发送给第一CDN服务器的第一HTTP请求用于请求所有数据,因此,电子设备可向第一CDN服务器发送重置报文,以便第一CDN服务器停止向电子设备返回数据,而是由第二CDN服务器向电子设备继续返回数据。这样,结合上述示例,电子设备可从CDN服务器202-1下载到byte Range为[a,b](如[1,110])的数据,从CDN服务器202-2下载到byteRange为[c,d],如[101,200]的数据。电子设备对从CDN服务器202-1和CDN服务器202-2下载的数据进行拼接,便可获得原始HTTP请求所请求的byte Range为[a,d]的数据。
S407-2、电子设备向第二CDN服务器发送重置报文,由第一CDN服务器下载完所有数据。
在确定从第一CDN服务器和第二CDN服务器下载的数据不一致时,表明将从第一CDN服务器下载的数据与从第二CDN服务器下载的数据进行拼接会出现拼接数据无效的现象。因此,电子设备可丢弃已从第二CDN服务器下载的数据,并向第二CDN服务器发送重置报文,以使得第二CDN服务器停止向电子设备返回数据。另外,如S406-2中的描述,在S403的方式2及方式3下,电子设备发送给第一CDN服务器的第一HTTP请求用于请求所有数据,因此,无需对从第一CDN服务器下载数据的过程进行干预,电子设备自动会从第一CDN服务器下载完剩余数据。结合上述示例,电子设备可从CDN服务器202-1下载到byte Range为[a,d](如[1,200])的数据。
在本申请实施例中,在HTTP2中,上述重置报文可以是HTTP Reset报文,在HTTP1/1.1中,上述重置报文可以是TCP Reset报文,用于指示CDN服务器停止向电子设备返回数据。
需要说明的是,上述实施例是以电子设备使用MPHTTP技术从两个CDN服务器下载数据为例,对本申请实施例提供的技术方案进行介绍的。当然,本实施例的技术方案还可应用于电子设备使用MPHTTP技术从三个或三个以上CDN服务器下载数据的场景中。在这些场景中,电子设备可使用上述实施例中的方法,对用于向电子设备返回连续数据的CDN服务器的数据一致性进行校验。例如,以电子设备使用MPHTTP技术从三个CDN服务器,分别为CDN服务器1,CDN服务器2和CDN服务器3下载数据为例。原始HTTP请求所请求数据的byte Range为[a,f]。电子设备可以为CDN服务器1分配byte Range 1,如byte Range 1为[a,b],为CDN服务器2分配byte Range 2,如byte Range 2为[c,d],为CDN服务器3分配byte Range 3,如byte Range 3为[e,f]。其中,[a,b],[c,d]和[e,f]均为[a,f]的子集。也就是说,电子设备至少需从CDN服务器1下载byte Range 1的数据,从CDN服务器2下载byte Range 2的数据,从CDN服务器3下载byte Range 3的数据。以byte Range 1所标识的数据与byte Range 2所标识的数据连续,byte Range 2所标识的数据与byte Range 3所标识的数据连续为例。在本实施例中,电子设备可对CDN服务器1和CDN服务器2的数据一致性进行校验,对CDN服务器2和CDN服务器3的数据一致性进行校验。
如,byte Range 1:[a,b]与byte Range 2:[c,d]存在重合区间,如,c小于b,即byte Range 1和byte Range 2的存在重合区间为[c,b]。byte Range 2:[c,d]与byteRange 3:[e,f]存在重合区间,如,e小于d,即byte Range 2和byte Range 3的存在重合区间为[e,d]。这样,电子设备利用byte Range 1和byte Range 2,可以从CDN服务器1和CDN服务器2下载相同数据,即byte Range为[c,b]的数据。电子设备根据从CDN服务器1下载的byte Range为[c,b]和从CDN服务器2下载的byte Range为[c,b],可以对从CDN服务器1和CDN服务器2下载数据的一致性进行校验。如果校验通过,则电子设备可将从CDN服务器1和CDN服务器2下载的数据进行拼接使用。如果校验未通过,则不可进行拼接。同理,电子设备利用byte Range 2和byte Range 3,可以从CDN服务器2和CDN服务器3下载相同数据,即byte Range为[e,d]的数据。电子设备根据从CDN服务器2下载的byte Range为[e,d]和从CDN服务器3下载的byte Range为[e,d],可以对从CDN服务器2和CDN服务器3下载数据的一致性进行校验。如果校验通过,则电子设备可将从CDN服务器2和CDN服务器3下载的数据进行拼接使用。如果校验未通过,则不可进行拼接。具体处理过程与上述实施例中的相应内容类似,此处不再一一赘述。
采用上述技术方案,在电子设备需要从多个CDN服务器下载数据时,为不同CDN服务器分配的byte Range设计重合区间,意味着重合区间的数据电子设备会从不同CDN服务器都进行下载,这部分数据可用于进行从不同CDN服务器拉取数据的数据一致性的校验。之后,电子设备可以在确定从不同CDN服务器拉取的数据一致时,进行数据合并以获得最终所需数据。这样,采用MPHTTP技术,不仅可以获得更大聚合带宽,同时可确保数据合并的有效性,保证了业务的正常运行。另外,在进行数据一致性校验之前,先确认进行比对的数据中有效数据或填充数据的占比,在占比满足一定条件时,才利用这些数据进行一致性校验,确保了数据一致性校验的准确性。且,该技术方案无需CDN服务器端改进,只需在端侧进行优化便可实现,部署难度小,适用范围广。另外,本实施例不仅适用于HTTP1/1.1的场景,还可适用于HTTP2的场景。
本申请另一实施例还提供一种电子设备,该电子设备可以包括:处理器、存储器和通信接口,存储器和通信接口与处理器耦合,通信接口用于与其他设备通信,其他设备包括第一CDN服务器和第二CDN服务器,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被电子设备执行时,使得电子设备执行如图4所示实施例中电子设备执行的各个步骤。
本申请另一实施例还提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在电子设备中运行时,使得电子设备执行如图4所示实施例中电子设备执行的各个步骤。
本申请另一实施例还提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如图4所示实施例中电子设备执行的各个步骤。
本申请另一实施例还提供一种装置,该装置具有实现上述图4相应实施例中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,例如,分配单元或模块,发送单元或模块,接收单元或模块,获取单元或模块等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种超文本传输协议HTTP请求传输方法,其特征在于,应用于电子设备,所述方法包括:
所述电子设备根据需请求数据的字节范围byte Range,为第一CDN服务器分配第一byte Range,并为第二CDN服务器分配第二byte Range,所述第一byte Range和所述第二byte Range存在重合区间;
所述电子设备根据所述第一byte Range向所述第一CDN服务器发送第一HTTP请求以下载第一数据;
所述电子设备根据所述第二byte Range向所述第二CDN服务器发送第二HTTP请求以下载第二数据。
2.根据权利要求1所述的方法,其特征在于,所述第一byte Range标识的所请求数据的截止字节,大于所述第二byte Range标识的所请求数据的开始字节。
3.根据权利要求1或2所述的方法,其特征在于,所述电子设备根据需请求数据的byteRange,为第一CDN服务器分配第一byte Range,为第二CDN服务器分配第二byte Range,包括:
所述电子设备根据所述需请求数据的byte Range,为所述第一CDN服务器分配第三byte Range,为所述第二CDN服务器分配第四byte Range;其中,所述第三byte Range和所述第四byte Range不存在重合区间;
所述电子设备根据预定义的初始值对所述第三byte Range标识的所请求数据的截止字节进行调整,以获得所述第一byte Range,并将所述第四byte Range作为所述第二byteRange,以获得存在重合区间的第一byte Range和第二byte Range。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述电子设备从所述第一CDN服务器接收所述第一数据,从所述第二CDN服务器接收所述第二数据;
所述电子设备根据所述第一数据和所述第二数据,对从所述第一CDN服务器和所述第二CDN服务器下载数据的一致性进行校验。
5.根据权利要求4所述的方法,其特征在于,在所述电子设备根据所述第一数据和所述第二数据,对从所述第一CDN服务器和所述第二CDN服务器下载数据的一致性进行校验之前,所述方法还包括:
所述电子设备获取所述第一数据和所述第二数据中填充数据的比例;
所述电子设备根据所述第一数据和所述第二数据,对从所述第一CDN服务器和所述第二CDN服务器下载数据的一致性进行校验,包括:
所述电子设备在确定所述填充数据的比例的小于阈值时,根据所述第一数据和所述第二数据,对从所述第一CDN服务器和所述第二CDN服务器下载数据的一致性进行校验。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述电子设备在确定所述填充数据的比例大于所述阈值时,对所述第一byte Range标识的所请求数据的截止字节进行调整,增加所述第一byte Range和所述第二byte Range的重合区间,至少用于从所述第一CDN服务器下载第三数据,从所述第二CDN服务器下载第四数据;
当所述电子设备确定所述第三数据和所述第四数据中填充数据的比例小于所述阈值时,根据所述第三数据和所述第四数据,对从所述第一CDN服务器和所述第二CDN服务器下载数据的一致性进行校验;当所述电子设备确定所述第三数据和所述第四数据中填充数据的比例大于所述阈值,则继续增加所述第一byte Range和所述第二byte Range的重合区间,直到从所述第一CDN服务器和所述第二CDN服务器下载的byte Range相同的数据的填充数据比例小于所述阈值,用于对从所述第一CDN服务器和所述第二CDN服务器下载数据的一致性进行校验。
7.根据权利要求1、2、5或6中任一项所述的方法,其特征在于,
所述第一HTTP请求包括资源描述符和所述第一byte Range;或,所述第一HTTP请求包括所述资源描述符和所述需请求数据的byte Range;或所述第一HTTP请求包括所述资源描述符;
所述第二HTTP请求包括所述资源描述符和所述第二byte Range;
其中,所述资源描述符用于描述所述需请求数据。
8.根据权利要求7所述的方法,其特征在于,当所述第一HTTP请求包括所述资源描述符和所述需请求数据的byte Range;或所述第一HTTP请求包括所述资源描述符时,所述方法还包括:
在所述电子设备校验得到从所述第一CDN服务器和所述第二CDN服务器下载数据一致时,所述电子设备向所述第一CDN服务器发送重置报文,将从所述第一CDN服务器和所述第二CDN服务器下载的数据进行拼接,以获得所述需请求数据;
在所述电子设备校验得到从所述第一CDN服务器和所述第二CDN服务器下载数据不一致时,所述电子设备向所述第二CDN服务器发送所述重置报文,由所述第一CDN服务器处下载所述需请求数据;
其中,所述重置报文用于指示停止向所述电子设备返回数据。
9.根据权利要求7所述的方法,其特征在于,当所述第一HTTP请求包括所述资源描述符和所述第一byte Rang时,所述方法还包括:
在所述电子设备校验得到从所述第一CDN服务器和所述第二CDN服务器下载数据一致时,所述电子设备将从所述第一CDN服务器和所述第二CDN服务器下载的数据进行拼接,以获得所述需请求数据;
在所述电子设备校验得到从所述第一CDN服务器和所述第二CDN服务器下载数据不一致时,所述电子设备向所述第一CDN服务器发送第三HTTP请求,向所述第二CDN服务器发送重置报文,所述第三HTTP请求用于请求下载所述需请求数据中除所述第一byte Rang所标识的数据,所述重置报文用于指示停止向所述电子设备返回数据。
10.根据权利要求1、2、5、6、8或9中任一项所述的方法,其特征在于,
所述向所述第一CDN服务器发送第一HTTP请求,包括:
所述电子设备通过第一网络向所述第一CDN服务器发送所述第一HTTP请求;
所述向所述第二CDN服务器发送第二HTTP请求,包括:
所述电子设备通过第二网络向所述第二CDN服务器发送所述第二HTTP请求;
其中,所述第一网络与所述第二网络不同。
11.根据权利要求10所述的方法,其特征在于,所述第一网络为蜂窝网,所述第二网络为无线保真Wi-Fi网络。
12.根据权利要求5、6、8、9或11中任一项所述的方法,其特征在于,所述电子设备根据所述第一数据和所述第二数据,对从所述第一CDN服务器和所述第二CDN服务器下载数据的一致性进行校验,包括:
所述电子设备采用二进制比对的方式对所述第一数据和所述第二数据进行对比;在所述第一数据和所述第二数据的二进制对比一致时,确定从所述第一CDN服务器和所述第二CDN服务器下载数据一致,在所述第一数据和所述第二数据的二进制比对不一致时,确定从所述第一CDN服务器和所述第二CDN服务器下载数据不一致。
13.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器和通信接口,所述存储器和所述通信接口与所述处理器耦合,所述通信接口用于与其他设备通信,所述其他设备包括第一CDN服务器和第二CDN服务器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述电子设备执行时,使得所述电子设备执行如权利要求1至12中任一项所述的超文本传输协议HTTP请求传输方法。
14.一种计算机可读存储介质,其特征在于,包括:计算机软件指令;
当所述计算机软件指令在电子设备中运行时,使得所述电子设备执行如权利要求1至12中任一项所述的超文本传输协议HTTP请求传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110183638.3A CN112969090A (zh) | 2019-12-03 | 2019-12-03 | 一种http请求传输方法及设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911223477.5A CN111093110B (zh) | 2019-12-03 | 2019-12-03 | 一种http请求传输方法及设备 |
CN202110183638.3A CN112969090A (zh) | 2019-12-03 | 2019-12-03 | 一种http请求传输方法及设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911223477.5A Division CN111093110B (zh) | 2019-12-03 | 2019-12-03 | 一种http请求传输方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112969090A true CN112969090A (zh) | 2021-06-15 |
Family
ID=70393219
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110183638.3A Pending CN112969090A (zh) | 2019-12-03 | 2019-12-03 | 一种http请求传输方法及设备 |
CN202110183492.2A Active CN112969089B (zh) | 2019-12-03 | 2019-12-03 | 一种http请求传输方法及设备 |
CN201911223477.5A Active CN111093110B (zh) | 2019-12-03 | 2019-12-03 | 一种http请求传输方法及设备 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110183492.2A Active CN112969089B (zh) | 2019-12-03 | 2019-12-03 | 一种http请求传输方法及设备 |
CN201911223477.5A Active CN111093110B (zh) | 2019-12-03 | 2019-12-03 | 一种http请求传输方法及设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230027525A1 (zh) |
EP (1) | EP4047942A4 (zh) |
JP (1) | JP7300067B2 (zh) |
CN (3) | CN112969090A (zh) |
WO (1) | WO2021109872A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112969090A (zh) * | 2019-12-03 | 2021-06-15 | 华为技术有限公司 | 一种http请求传输方法及设备 |
CN111741319B (zh) * | 2020-06-23 | 2022-06-03 | 北京金山云网络技术有限公司 | 直播数据处理方法、装置及电子设备 |
CN114500496A (zh) * | 2020-10-27 | 2022-05-13 | 华为终端有限公司 | 一种目标数据的下载方法及设备 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110055312A1 (en) * | 2009-08-28 | 2011-03-03 | Apple Inc. | Chunked downloads over a content delivery network |
US8560604B2 (en) * | 2009-10-08 | 2013-10-15 | Hola Networks Ltd. | System and method for providing faster and more efficient data communication |
EP2362651A1 (en) * | 2010-02-19 | 2011-08-31 | Thomson Licensing | Multipath delivery for adaptive streaming |
US9455897B2 (en) * | 2010-04-06 | 2016-09-27 | Qualcomm Incorporated | Cooperative bandwidth aggregation using multipath transport |
US9578354B2 (en) * | 2011-04-18 | 2017-02-21 | Verizon Patent And Licensing Inc. | Decoupled slicing and encoding of media content |
US9253233B2 (en) * | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP streaming |
JP5795446B2 (ja) * | 2011-11-01 | 2015-10-14 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | Httpサーバの間でのソースデータおよび修復データの割り当てを伴うコンテンツ配送システム |
US20140136653A1 (en) * | 2012-02-27 | 2014-05-15 | Qualcomm Incorporated | Dash client and receiver with download rate acceleration |
US9413494B2 (en) * | 2013-01-17 | 2016-08-09 | Qualcomm Incorporated | FEC-based reliable transport control protocols for multipath streaming |
CN103200606B (zh) * | 2013-03-18 | 2016-12-28 | 东莞宇龙通信科技有限公司 | 终端和数据业务处理方法 |
CN104427353B (zh) * | 2013-09-05 | 2017-09-29 | 北京大学 | 视频传输方法及设备 |
US9350484B2 (en) * | 2014-03-18 | 2016-05-24 | Qualcomm Incorporated | Transport accelerator implementing selective utilization of redundant encoded content data functionality |
GB2524958A (en) * | 2014-04-03 | 2015-10-14 | Orbital Multi Media Holdings Corp | Data flow control method |
US10129811B2 (en) * | 2015-01-20 | 2018-11-13 | Parallel Wireless, Inc. | Multi-RAT heterogenous carrier aggregation |
WO2016166880A1 (ja) * | 2015-04-17 | 2016-10-20 | 株式会社日立製作所 | ストレージシステム、ストレージ装置 |
CN105100964A (zh) * | 2015-07-07 | 2015-11-25 | 安一恒通(北京)科技有限公司 | 多媒体内容的处理方法、客户端及服务器 |
CN105094960A (zh) * | 2015-07-20 | 2015-11-25 | 努比亚技术有限公司 | 基于双通道的数据加载装置和方法 |
KR101863598B1 (ko) * | 2016-07-29 | 2018-06-01 | 주식회사 에어브로드 | 스트리밍 서비스를 위한 클라이언트의 동작 방법 |
KR20180028847A (ko) * | 2016-09-09 | 2018-03-19 | 삼성전자주식회사 | 네트워크 선택 방법 및 그 장치 |
CN106376099A (zh) * | 2016-09-18 | 2017-02-01 | 惠州Tcl移动通信有限公司 | 基于lte和wifi网络同时下载文件的方法及系统 |
CN106341186B (zh) * | 2016-11-08 | 2018-11-27 | 中国科学技术大学 | VLC-WiFi融合网络并行传输和负载均衡的方法 |
US10348796B2 (en) * | 2016-12-09 | 2019-07-09 | At&T Intellectual Property I, L.P. | Adaptive video streaming over preference-aware multipath |
WO2018165190A1 (en) * | 2017-03-07 | 2018-09-13 | Akamai Technologies, Inc. | Cooperative multipath |
US10771789B2 (en) * | 2017-05-19 | 2020-09-08 | Google Llc | Complexity adaptive rate control |
EP3863296B1 (en) * | 2017-09-11 | 2023-11-22 | Tiledmedia B.V. | Streaming frames of spatial elements to a client device |
CN109660496B (zh) * | 2017-10-12 | 2021-09-03 | 阿里巴巴集团控股有限公司 | 校验信息的获取、资源校验和发布方法、装置及电子设备 |
CN108282543A (zh) * | 2018-03-05 | 2018-07-13 | 北京云端智度科技有限公司 | 一种cdn节点内容校验方法和系统 |
US10803366B2 (en) * | 2018-05-17 | 2020-10-13 | Siemens Aktiengesellschaft | Method for extracting an output data set |
CN109729519B (zh) * | 2019-02-11 | 2021-02-02 | Oppo广东移动通信有限公司 | 数据下载的方法及相关装置 |
CN112969090A (zh) * | 2019-12-03 | 2021-06-15 | 华为技术有限公司 | 一种http请求传输方法及设备 |
-
2019
- 2019-12-03 CN CN202110183638.3A patent/CN112969090A/zh active Pending
- 2019-12-03 CN CN202110183492.2A patent/CN112969089B/zh active Active
- 2019-12-03 CN CN201911223477.5A patent/CN111093110B/zh active Active
-
2020
- 2020-11-18 US US17/782,157 patent/US20230027525A1/en active Pending
- 2020-11-18 WO PCT/CN2020/129893 patent/WO2021109872A1/zh unknown
- 2020-11-18 EP EP20896003.9A patent/EP4047942A4/en active Pending
- 2020-11-18 JP JP2022533207A patent/JP7300067B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
CN112969089A (zh) | 2021-06-15 |
EP4047942A1 (en) | 2022-08-24 |
JP7300067B2 (ja) | 2023-06-28 |
CN111093110A (zh) | 2020-05-01 |
WO2021109872A1 (zh) | 2021-06-10 |
EP4047942A4 (en) | 2023-01-25 |
CN111093110B (zh) | 2021-02-12 |
JP2023505474A (ja) | 2023-02-09 |
CN112969089B (zh) | 2022-07-12 |
US20230027525A1 (en) | 2023-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113542839B (zh) | 电子设备的投屏方法和电子设备 | |
CN113923230B (zh) | 数据同步方法、电子设备和计算机可读存储介质 | |
CN111093110B (zh) | 一种http请求传输方法及设备 | |
CN112119641B (zh) | 通过转发模式连接的多tws耳机实现自动翻译的方法及装置 | |
WO2021036898A1 (zh) | 折叠屏设备中应用打开方法及相关装置 | |
CN114095599B (zh) | 消息显示方法和电子设备 | |
CN113722058A (zh) | 一种资源调用方法及电子设备 | |
CN111316604B (zh) | 一种数据传输方法及电子设备 | |
CN114466107A (zh) | 音效控制方法、装置、电子设备及计算机可读存储介质 | |
CN114422340A (zh) | 日志上报方法、电子设备及存储介质 | |
WO2020134868A1 (zh) | 一种连接建立方法及终端设备 | |
CN113596919B (zh) | 数据下载方法、装置和终端设备 | |
CN113490291B (zh) | 数据下载方法、装置和终端设备 | |
CN113126948B (zh) | 一种音频播放方法及相关设备 | |
CN114006712A (zh) | 一种获取验证码的方法、电子设备和系统 | |
CN112469012A (zh) | 一种蓝牙通信方法及相关装置 | |
CN113590346B (zh) | 处理业务请求的方法和电子设备 | |
CN113678481B (zh) | 无线音频系统、音频通讯方法及设备 | |
CN115525366A (zh) | 一种投屏方法及相关装置 | |
CN114489876A (zh) | 一种文本输入的方法、电子设备和系统 | |
CN116346982B (zh) | 处理音频的方法、电子设备及可读存储介质 | |
CN115460445B (zh) | 电子设备的投屏方法和电子设备 | |
WO2022222733A1 (zh) | 数据传输方法及相关设备 | |
CN116708317A (zh) | 数据包mtu的调整方法、装置和终端设备 | |
CN115048193A (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 |