CN110113306B - 分发数据的方法和网络设备 - Google Patents

分发数据的方法和网络设备 Download PDF

Info

Publication number
CN110113306B
CN110113306B CN201910249517.7A CN201910249517A CN110113306B CN 110113306 B CN110113306 B CN 110113306B CN 201910249517 A CN201910249517 A CN 201910249517A CN 110113306 B CN110113306 B CN 110113306B
Authority
CN
China
Prior art keywords
data
service
server
network device
terminal device
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.)
Active
Application number
CN201910249517.7A
Other languages
English (en)
Other versions
CN110113306A (zh
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 CN201910249517.7A priority Critical patent/CN110113306B/zh
Publication of CN110113306A publication Critical patent/CN110113306A/zh
Priority to PCT/CN2020/080038 priority patent/WO2020199929A1/zh
Priority to EP20782796.5A priority patent/EP3937434B1/en
Priority to US17/487,158 priority patent/US20220014574A1/en
Application granted granted Critical
Publication of CN110113306B publication Critical patent/CN110113306B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/306Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information intercepting packet switched data communications, e.g. Web, Internet or IMS communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2871Implementation details of single intermediate entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1886Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供一种分发数据的方法和网络设备,该方法包括:网络设备缓存第一数据,其中该第一数据是服务器为第一终端设备提供的业务的数据;该网络设备接收N个第二终端设备发送的N个第一数据请求;当该N个第一数据请求所请求的数据是该服务器基于该业务提供的数据时,该网络设备拦截该N个第一数据请求并向该N个第二终端设备发送缓存的该第一数据。上述技术方案中的网络设备可以缓存业务的数据,并在有其他终端设备请求该业务的情况下将缓存的业务的数据发送至其他终端设备。这样,可以减少服务器到该网络设备之间的通道中存在多个用于传输相同的业务的数据的连接。这样,可以减少相同的业务的数据传输对服务器到该网络设备的下行带宽的占用。

Description

分发数据的方法和网络设备
技术领域
本申请涉及信息技术领域,更具体地,涉及分发数据的方法和网络设备。
背景技术
随着互联网技术的发展,网络能够提供的服务也越来越多,例如视频直播业务、视频点播业务、音频直播业务、音频点播业务、网络电台、视频下载业务等。此外,随着用户需求的提高,用户对于网络能提供的业务的质量要求也越来越高。以视频业务为例,传统的标清视频已经不能满足用户的需求。用户更希望观看到1080P,甚至是2K、4K等清晰度的视频节目。
随着业务质量的提高,业务的数据的大小也越来越大。业务的数据的传输对于带宽的占用也越来越大。除了多媒体业务外,应用程序的安装文件等数据的大小也越来越大。因此,数据下载业务所对应的数据的大小也越来越大。
如果多个终端设备同时向一个互联网中的服务器请求相同的业务,则该多个终端设备需要分别与该服务器建立连接,以获取该服务器发送的业务的数据。该多个终端设备可以通过同一个网络设备向该服务器请求业务。换句话说,该服务器向终端设备发送的业务的数据会先到达该网络设备,然后由该网络设备转发至相应的终端设备。在该多个终端设备通过该网络设备向该服务器请求相同的业务的情况下,该服务器会发送多份相同的数据到该网络设备,然后该网络设备再分别将接收到的数据转发至相应的终端设备。在此情况下,下行(这里的下行是指从该服务器到该网络设备的方向)带宽会被用于传输多份相同的数据。因此,该多个终端设备所请求的业务的数据传输会互相影响。该下行通道中的每个终端设备所请求的数据的传输速度都可能小于在下行通道中只有单个终端设备向该服务器请求数据时的数据传输速度。此外,如果还有其他的终端设备需要通过该网络设备向该服务器或者其他请求其他的业务,这些终端设备所请求的业务的数据的下行传输速度也会受到影响。
发明内容
本申请提供一种分发数据的方法和网络设备,可以减少相同的业务的数据传输对服务器到网络设备的下行带宽的占用。
第一方面,本申请实施例提供一种分发数据的方法,该方法包括:网络设备缓存第一数据,其中该第一数据是服务器为第一终端设备提供的业务的数据;该网络设备接收N个第二终端设备发送的N个第一数据请求,其中N为大于或等于1的正整数;当该N个第一数据请求所请求的数据是该服务器基于该业务提供的数据时,该网络设备拦截该N个第一数据请求并向该N个第二终端设备发送缓存的该第一数据。
从上述技术方案可以看出,网络设备可以缓存业务的数据,并在有其他终端设备请求相同的业务的情况下将缓存的业务的数据发送至其他终端设备。这样,可以减少服务器到网络设备之间的通道中存在多个用于传输相同的业务的数据的连接。这样,可以减少相同的业务的数据传输对服务器到网络设备的下行带宽的占用。同时,请求相同业务的终端设备也可以获取所请求的业务的数据。
结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:在该第一终端设备与该服务器之间的连接断开时,该网络设备接收第二数据,其中该第二数据是该服务器基于该业务提供的数据;该网络设备缓存该第二数据;向该N个第二终端设备发送缓存的该第二数据,该第二数据与该第一终端设备与该服务器连接断开时接收到的数据是连续的。
该第二数据与该第一终端设备与该服务器连接断开时接收到的数据(为便于描述,以下简称第三数据)是连续的是指该第二数据是该服务器为该业务提供了该第三数据后,提供的该业务的数据。例如,若该第二数据对应一个时间且该第三数据对应一个时间,则该第二数据对应的时间与该第三数据对应的时间在时间上是连续的,且该第二数据对应的时间在该第三数据对应的时间之后。又如,若该第一终端设备与该服务器之间的连接没有断开,则该服务器会在发送了该第三数据之后继续发送的该业务的数据是该第二数据。
基于上述技术方案,可以使得在该第一终端设备的连接断开的情况下,仍然可以继续获取由该服务器提供的该业务的数据,并将获取到的数据继续发送至终端设备。此外,该服务器在该第一终端设备的连接断开前后提供的数据是连续的,这样,可以使得该业务的数据的传输不发生中断,终端设备的业务体验不会受到影响。例如不会发生掉帧、卡顿、丢失数据等情况。
结合第一方面,在第一方面的一种可能的实现方式中,该第二数据为该服务器为该N个第二终端设备中的N1个第二终端设备提供的该业务的数据,其中N1为大于或等于1且小N的正整数,或者该第二数据为该服务器为M个第三终端设备提供的该业务的数据,M为大于或等于1的正整数。
基于上述技术方案,可以使得在该第一终端设备的连接断开的情况下,仍然可以通过第三终端设备(即与该第二终端设备向该服务器请求相同的业务的数据的终端设备)或者部分第二终端设备继续向该服务器请求获取该业务的数据。
结合第一方面,在第一方面的一种可能的实现方式中,在该网络设备接收第二数据之前,该方法还包括:该网络设备接收该N个第二终端设备发送的N个第二数据请求,其中该N个第二数据请求所请求的数据是该服务器基于该业务提供的数据,该N个第二数据所请求的数据不同于该N个第一数据请求所请求的数据;该网络设备在该第一终端设备与该服务器之间的连接断开时,将该N个第二数据请求中的N1个第二数据请求发送至该服务器,拦截该N个第二数据请求中除该N1个第二数据请求以外的N2个第二数据请求。该N1个第二数据请求是该N1个第二终端设备发送的。
基于上述技术方案,该网络设备可以选择释放对部分第二终端设备发送的数据请求的拦截,以便于通过该部分第二终端设备向该服务器请求获取该业务的数据。
结合第一方面,在第一方面的一种可能的实现方式中,该N个第二数据请求中的每个第二数据请求对应一个时间,且该N个第二数据请求中的每个第二数据请求对应的时间均不晚于参考时间,该N1个第二数据请求中的每个第二数据请求对应的时间与该参考时间的差小于预设阈值,该参考时间为该网络设备接收到的来自于该第一终端设备的最后一个用于请求获取该业务的数据的数据请求对应的时间。
上述技术方案尽可能选择距离该参考时间近的数据请求作为继续向该服务器请求获取该业务的数据请求,这样可以尽量减少获取到与该第一数据相同的数据,从而减少相同数据对下行带宽的占用。
结合第一方面,在第一方面的一种可能的实现方式中,N1等于1,该N个第二数据请求中的每个第二数据请求对应一个时间,且该N个第二数据请求中的每个第二数据请求对应的时间均不晚于参考时间,在该N个第二数据请求对应的时间中,该N1个第二数据请求对应的时间与该参考时间的差最小,该参考时间为该网络设备接收到的来自于该第一终端设备的最后一个用于请求获取该业务的数据的数据请求对应的时间。
上述技术方案尽可能选择距离该参考时间最近的数据请求作为继续向该服务器请求获取该业务的数据请求,这样可以尽量减少获取到与该第一数据相同的数据,从而减少相同数据对下行带宽的占用。
结合第一方面,在第一方面的一种可能的实现方式中,在该网络设备接收第二数据之前,该方法还包括:该网络设备接收该M个第三终端设备发送的M个第三数据请求;当该M个第三数据请求所请求的数据是该服务器基于该业务提供的数据时,该网络设备将该M个第三数据请求发送至该服务器。
利用上述技术方案,该网络设备可以释放与该第二终端设备向该服务器请求相同业务的数据的终端设备发送的数据请求。换句话说,该网络设备可以在接收了多个终端设备发送的数据请求的情况下,仅对部分终端设备(即该N个第二终端设备)发送的数据请求进行拦截,而不对其余的终端设备(即该M个第三终端设备)发送的数据请求进行拦截。这样,可以利用未拦截的终端设备发送的数据请求获取该服务器提供的该业务的数据。
结合第一方面,在第一方面的一种可能的实现方式中,该网络设备缓存第一数据,包括:该网络设备在未缓存该业务的数据的情况下,缓存该第一数据。
基于上述技术方案,该网络设备可以在未缓存该业务的数据的情况下,才开始缓存该业务的数据。换句话说,如果该网络设备已经缓存了该业务的数据,则可以不需要缓存该业务的数据。这样,可以减少相同的数据对该网络设备的缓存空间的占用。
结合第一方面,在第一方面的一种可能的实现方式中,在该第一业务为视频业务的情况下,该第一数据能够组成至少一个画面组GOP。
一个GOP中会包括一个关键帧。该关键帧中包括用于对视频解码的关键数据。因此,基于上述技术方案,可以使得终端设备在接收到该第一数据的情况下对该第一数据所对应的视频数据进行正确解码。
结合第一方面,在第一方面的一种可能的实现方式中,在该第一业务为实时数据业务的情况下,该网络设备确定使用第一存储介质缓存该第一数据;在该第一业务为非实时数据业务的情况下,该网络设备确定使用第二存储介质缓存该第一数据,其中该第一存储介质的访问速度大于该第二存储介质的访问速度。
上述技术方案利用访问速度大的存储介质保存实时数据业务,这样可以更好地保证实时数据业务对实时性的需求。
结合第一方面,在第一方面的一种可能的实现方式中,若业务的类型是非完整性数据业务,则该网络设备在缓存有该业务的数据的情况下,拦截该N个终端设备发送的该N个第一数据请求。若业务的类型是完整性数据业务,则该网络设备在确定缓存有该业务的数据且能够提供该业务的全部数据的情况下,拦截该N个第二终端设备发送的N个第一数据请求。该网络设备可以在确定缓存有该业务的全部数据的情况下确定能够提供该业务的全部数据,也可以在确定缓存的该业务的数据包括在接收到该N个第一数据请求之前该业务的全部数据(换句话说该网络设备没有删除过该业务的数据)的情况下,确定能够提供该业务的全部数据。
上述技术方案可以使得该N个第二终端设备获取到需要获取的全部数据,避免丢失数据的情况的发生。
结合第一方面,在第一方面的一种可能的实现方式中,该网络设备接收到的来自于终端设备的信息的内容;根据该信息的内容,确定对该信息进行透传或者拦截。对该信息进行拦截可以是直接将该信息删除或者在保存该信息一段时间后删除。
第二方面,本申请实施例提供了一种网络设备,该网络设备包括用于执行第一方面或第一方面的任一种可能的实现方式的模块。
第三方面,本申请实施例提供了一种网络设备,该网络设备包括存储器、处理器和收发器,存储器用于存储指令,处理器用于根据存储器保存的指令,结合收发器实现第一方面或第一方面的任一种可能的实现方式。
第四方面,本申请实施例提供一种存储介质,该存储介质存储用于实现第一方面或第一方面的任一种可能的实现方式所述的方法的指令。
第五方面,本申请提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能的实现方式所述的方法。
附图说明
图1是可以应用本申请提供的分发数据的方法的系统的示意性结构图。
图2是根据本申请实施例提供的分发数据方法的示意性流程图。
图3是网络设备110接收到的不同终端设备发送的数据请求的示意图。
图4是根据本申请实施例提供的一种分发数据的方法的示意性流程图。
图5是根据本申请实施例提供的一种分发数据的方法的示意性流程图。
图6是根据本申请实施例提供的一种分发数据的方法的示意性流程图。
图7是根据本申请实施例提供的网络设备的结构示意图。
图8是根据本申请实施例提供的网络设备的结构框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下中的至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a、b、c、a-b、a-c、b-c、或a-b-c,其中a、b、c可以是单个,也可以是多个。另外,在本申请的实施例中,“第一”、“第二”等字样并不对数量和执行次序进行限定。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中的终端设备可以是请求获取服务器中的数据的计算机设备,例如个人计算机、笔记本电脑、平板电脑、智能电话等。
本申请实施例中的网络设备可以是局域网中的网络设备,也可以是城域网、广域网或者互联网中的网络设备。该网络设备可以是现有的一个网络设备,例如可以是接入路由器(Access Router,AR)、骨干路由器等设备,也可以是一个专用的用于执行本申请实施例提供的方法的专用设备,或者一个能够用于执行本申请实施例提供的方法的服务器。
在本申请实施例中,终端设备或网络设备包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括中央处理器(centralprocessing unit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。该操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。并且,本申请实施例并未对本申请实施例提供的方法的执行主体的具体结构特别限定,只要能够通过运行记录有本申请实施例的提供的方法的代码的程序,以根据本申请实施例提供的方法进行通信即可,例如,本申请实施例提供的方法的执行主体可以是终端设备或网络设备,或者,是终端设备或网络设备中能够调用程序并执行程序的功能模块。
另外,本申请的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,CD)、数字通用盘(digital versatile disc,DVD)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasable programmableread-only memory,EPROM)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
图1是可以应用本申请提供的分发数据的方法的系统的示意性结构图。如图1所示的系统中包括终端设备101、终端设备102、终端设备103、终端设备104和终端设备105。系统中还包括网络设备110、服务器121和服务器122。
可选的,在一些实施例中,如图1所示的终端设备101、终端设备102、终端设备103、终端设备104和终端设备105可以是同一个局域网中的终端设备。
可选的,在另一些实施例中,终端设备101、终端设备102、终端设备103、终端设备104和终端设备105可以是不同的局域网中的终端设备。
可选的,在一些实施例中,在终端设备101至终端设备105是同一个局域网中的终端设备的情况下,网络设备110可以是该局域网内的一个网络设备。
可选的,在另一些实施例中,在终端设备101至终端设备105是同一个局域网中的终端设备的情况下,网络设备110可以是不属于该局域网的网络设备,例如,可以是广域网、城域网或互联网中的网络设备。
终端设备101至终端设备105可以通过网络设备110请求服务器121提供业务服务。
可选的,在一些实施例中,服务器121中保存有终端设备请求的业务的数据。在此情况下服务器121可以直接将该终端设备请求的业务的数据发送至该终端设备。
可选的,在另一些实施例中,服务器121可以通过其他服务器将该终端设备请求业务的数据发送至该终端设备。例如,服务器121可以有多个镜像服务器,服务器122是该多个镜像服务器中的一个。服务器121可以指示服务器122将该终端设备请求的业务的数据发送至该终端设备。又如,服务器121内可能没有保存该终端设备请求的业务的数据,且服务器122内保存有该终端设备请求的业务的数据。在此情况下,服务器121可以指示服务器122将该终端设备请求的业务的数据发送至该终端设备。
可选的,在一些实施例中,在终端设备101至终端设备105是同一个局域网内的终端设备的情况下,服务器121和服务器122是位于该局域网外的服务器。
下面将结合如图1所示的系统,对本申请实施例提供的分发数据的方法进行详细描述。可以理解的是,图1所示的系统仅是为了帮助本领域技术人员更好的理解本申请的技术方案,而不是对本申请的技术方案的限制。
图2是根据本申请实施例提供的分发数据方法的示意性流程图。
201,终端设备101向网络设备110发送业务请求1,该业务请求1用于向服务器121请求业务1。
网络设备110在接收到业务请求1的情况下,可以先确定是否缓存有业务1的数据。为了便于描述,假设网络设备110在接收到该业务请求1时未缓存业务1的数据。网络设备110判断是否缓存有接收到的业务请求所请求的业务的数据的具体实现方式可以参见后续步骤的描述。
202,网络设备110将接收到的该业务请求1发送至服务器121。
本申请实施例对该业务1的具体形式并不限定。例如,在一些实施例中,该业务1可以是媒体播放业务。该媒体播放业务可以是实时的媒体播放业务(例如视频直播业务、音频直播业务),也可以是非实时的媒体播放业务(例如用户点播播放视频、音频等)。又如,在另一些实施例中,该业务1可以是下载业务。例如下载应用程序的安装文件、视频文件、音频文件等。
以业务请求1为例,服务器121在接收到终端设备101发送的业务请求1后,会确定该业务请求1所请求的业务1的对象。例如,若业务1是媒体播放业务,则业务1的对象可以是流媒体(也可以称为媒体流、例如视频流、音频流等)。若业务1是下载业务,则业务1的对象是业务1请求下载的文件,例如应用程序的安装文件、视频文件、音频文件等。一般而言,业务1的对象都不可能仅由一个数据包携带。因此,服务器121会将业务1的对象通过多个数据包发送至终端设备101。本申请实施例中所称的业务的数据或者基于业务提供的数据是指属于该业务的对象的数据或者组成该业务的对象的数据。
根据业务的不同或者业务所对应的协议的不同,业务请求1可以由一个或多个消息携带。换句话说,在一些实施例中,终端设备101可以通过一个消息将该业务请求1发送至服务器121。在另一些实施例中,终端设备101可以通过多个消息将该业务请求1发送至服务器121。
以实时消息传输协议(Real Time Messaging Protocol,RTMP)为例,业务请求1可以由连接(connect)消息携带。
通过步骤201和步骤202,终端设备101可以通过网络设备110向服务器121请求业务1。
可选的,在一些实施例中,终端设备101在通过网络设备110向服务器121请求业务1之前,可以先与网络设备110建立连接。终端设备101与网络设备110建立的连接可以是传输控制协议(Transmission Control Protocol,TCP)连接、用户数据报协议(UserDatagram Protocol,UDP)连接等。本申请实施例对终端设备101与网络设备110之间建立的具体连接并不限定,只要终端设备101能够利用建立的连接向网络设备110发送信息并接收该网络设备110发送的信息即可。例如,终端设备101可以通过建立的连接向网络设备110发送业务请求1,接收网络设备110发送的业务1的数据。
可选的,在一些实施例中,终端设备101在向服务器121请求业务1之前,可以先与服务器121建立连接。终端设备101可以通过网络设备110与服务器121建立连接。网络设备110可以透传终端设备101与服务器121在建立连接过程中涉及到信息。终端设备101与服务器121建立的连接可以是TCP连接、UDP连接等。与终端设备101与网络设备110之间的连接类似,本申请实施例对终端设备101与服务器121之间建立的具体连接并不限定,只要终端设备101能够利用建立的连接向服务器121发送信息并接收服务器121发送的信息即可。例如,终端设备101可以通过建立的连接向服务器121发送业务请求1,接收服务器121发送的业务1的数据。
下面以TCP连接建立过程为例,简述网络设备110透传建立连接过程中涉及到的信息的实现方式。终端设备101与服务器121建立TCP连接的总共涉及三个信息:终端设备101发送的同步请求信息,服务器121发送的用于回复该同步请求信息的同步确认信息,终端设备101发送的用于回复该同步确认信息的确认信息。同步请求信息、同步确认信息和确认信息的具体内容可以参见TCP协议,在此就不必赘述。终端设备101向网络设备110发送同步请求信息。网络设备110将接收到的该同步请求信息转发至服务器121。服务器121在接收到该同步请求信息后,确定对应于该同步请求信息的同步确认信息,并将该同步确认信息发送至网络设备110。网络设备110可以将接收到的同步确认信息转发至终端设备101。终端设备101在接收到该同步确认信息后,确定对应于该同步确认信息的确认信息,并将该确认信息发送至网络设备110。网络设备110可以将接收到的该确认信息转发至服务器121。这样,终端设备101与服务器121之间建立了TCP连接。
可选的,在一些实施例中,终端设备101在与服务器121建立了连接后,可以直接请求该业务1。
可选的,在另一些实施例中,终端设备101在与服务器121建立了连接后,服务器121还需要验证终端设备101是合法设备。例如,终端设备101可以将用于登录的用户名和密码发送至服务器121。服务器121根据接收到的用户名和密码验证终端设备101是否是合法设备。若服务器121确定终端设备101是合法设备,则可以向终端设备101发送验证通过信息;若服务器121确定终端设备101是非法设备,则可以向终端设备101发送验证失败信息。可以理解的是,终端设备101向服务器121发送的用户名和密码是通过网络设备110发送至服务器121的。相应的,服务器121向终端设备101发送的验证通过/验证失败信息也是通过网络设备110发送至终端设备101的。
可选的,在一些实施例中,服务器121可以在接收到该业务请求1后,向终端设备101发送业务请求反馈。可选的,在一些实施例中,网络设备110可以保存该业务请求反馈。
203,网络设备110根据该业务请求1,确定对应于该业务请求1的业务相关信息。为了便于描述,以下将对应于该业务请求1的业务相关信息称为业务相关信息1。
可选的,在一些实施例中,该业务相关信息1可以包括该业务1的对象的身份信息。该业务的对象的身份信息可以从该业务请求1中获取。换句话说,业务请求1中可以包括该业务1的对象的身份信息。为了便于描述,以下可以将业务1的对象的身份信息简称为身份信息1。
以RTMP为例,终端设备101发送的业务请求1可以是连接消息。为便于描述,可以将终端设备101发送的用于请求业务1的连接消息称为连接消息1。终端设备101所请求的业务1可以是视频直播业务。不同的视频直播频道对应着不同的频道名。因此,终端设备101在请求视频直播业务时需要将所请求的视频直播业务的频道名发送至服务器121。这样服务器121在可以将对应的视频直播业务频道的数据发送至终端设备101。终端设备101所请求获取的视频直播业务的频道名可以由连接消息1携带。换句话说,连接消息1中可以包括终端设备101所请求的视频直播业务的频道名。为便与描述,以下将连接消息1中携带的频道名称为频道名1。综上所述,终端设备101可以通过连接消息1,向网络设备121请求视频直播业务,该视频直播业务是频道名为频道名1的视频直播业务。终端设备101所请求的业务的对象是频道名1的直播视频流,该频道名1就是终端设备101所请求的业务1的对象的身份信息。
以下载业务为例,终端设备101发送的业务请求1中可以包括需要下载的文件的文件名。该文件名就是终端设备101所请求的业务的对象的身份信息。
可选的,在另一些实施例中,该业务相关信息除了包括业务的对象的身份信息外,还可以包括提供该业务的服务器的身份信息。在此情况下,网络设备110确定的对应于该业务1的业务相关信息1还可以包括服务器121的身份信息。可选的,在一些实施例中,服务器121的身份信息可以是服务器121的互联网协议(Internet Protocol,IP)地址。可选的,在一些实施例中,网络设备110可以根据终端设备101与服务器121建立连接过程中发送的数据包获取服务器121的IP地址。可选的,在另一些实施例中,该业务请求1中可以携带服务器121的域名,网络设备110可以根据服务器121的域名确定服务器121的IP地址。可选的,在另一些实施例中,服务器121的身份信息可以是服务器121的域名。
可选的,在一些实施例中,该业务相关信息1还可以包括终端设备101的身份信息。可选的,在一些实施例中,终端设备101的身份信息可以是终端设备101的IP地址。网络设备110可以在与终端设备101建立连接的过程中获取终端设备101的IP地址。可选的,在另一些实施例中,终端设备101的身份信息还可以是终端设备101用于登录服务器121的用户名。
例如表1是一个对应于该业务1的业务相关信息。
表1
频道名 服务器身份信息
CCTV 1 182.1.23.152
如表1所示的业务相关信息1中包括一个频道名和一个服务器的IP地址。
可选的,在一些实施例中,网络设备110可以对经过网络设备110的任何终端设备向任何服务器请求的任何业务对应的数据进行缓存处理。在此情况下,网络设备110只要接收到了终端设备发送的业务请求,就可以确定对应的业务相关信息。换句话说,在此情况下,网络设备110无需先确定需要对业务1的数据进行缓存处理,然后再确定该业务相关信息(即无需先执行步骤204,然后再执行步骤203)。
可选的,在一些实施例中,在一下实施例中,图2所示的方法还可以包括步骤204。
204,网络设备110确定需要对该业务1的数据进行缓存处理。
可选的,在一些实施例中,步骤204可以在步骤203之前执行。换句话说,网络设备110只有在确定需要对该业务1的数据进行缓存处理的情况下,才需要确定对应于该业务请求1的业务相关信息1,并执行后续步骤。如果网络设备确定不需要对该业务1的数据进行缓存处理,则可以按照现有处理来自于服务器的数据的方式处理该业务1的数据。
可选的,在一些实施例中,网络设备110可以根据预设的服务器信息和服务器121的身份信息,确定是否需要对该业务1的数据进行缓存处理。
例如,在一些实施例中,该预设的服务器信息可以是一个服务器白名单。具体地,网络设备110可以保存一个服务器白名单,该服务器白名单包括一个或多个服务器的身份信息。若终端设备101请求的业务是由该服务器白名单内的服务器提供的,则确定需要对该业务的数据进行缓存处理;若终端设备101请求的业务不是由该服务器白名单内的服务器提供的,则确定不需要对该业务的数据进行缓存处理。以服务器121和数据1为例,若网络设备110确定该服务器白名单中包括服务器121的身份信息,则确定需要对该业务1的数据进行缓存处理;若网络设备110确定该服务器白名单中不包括服务器121的身份信息,则确定不需要对该业务1的数据进行缓存处理。服务器白名单中的服务器的身份信息可以是服务器的IP地址,也可以是服务器的域名。该服务器白名单可以是在网络设备110出厂时就设定在网络设备110中的,也可以是由用户设置并保存在网络设备110中的。
又如,在一些实施例中,该预设的服务器信息可以是一个服务器黑名单。具体地,网络设备110可以保存一个服务器黑名单,该服务器黑名单中包括一个或多个服务器的身份信息。若终端设备101请求的业务是由该服务器黑名单内的服务器提供的,则确定不需对该业务的数据进行缓存处理;若终端设备101请求的业务不是由该服务器黑名单内的服务器提供的,则确定需要对该业务数据进行缓存处理。还以服务器121和数据1为例,若网络设备110确定该服务器黑名单中不包括服务器121的身份信息,则确定需要对该业务1的数据进行缓存处理;若网络设备确定该服务器黑名单中包括服务器121的身份信息,则确定不需要对该业务1的数据进行处理。类似的,与服务器白名单类似,服务器黑名单中的服务器的身份信息可以是服务器的IP地址,也可以是服务器的域名。该服务器黑名单可以是在网络设备110出厂时就设定在网络设备110中的,也可以是由用户设置并保存在网络设备110中的。
为了便于描述,以下将根据预设的服务器信息确定是否需要对该数据1进行缓存处理的确定方式称为第一判断规则。
可选的,在另一些实施例中,网络设备110还可以根据预设的业务类型和该业务1的业务类型,确定是否需要对该数据1进行缓存处理。
例如,在一些实施例中,该预设的业务类型可以是一个业务类型白名单,该业务类型白名单中包括一个或多个业务类型。若终端设备101请求的业务的业务类型属于该业务类型白名单内的业务类型,则确定需要对该业务的数据进行缓存处理;若终端设备101请求获取的业务的业务类型不属于该业务类型白名单内的业务类型,则确定不需要对该业务的数据进行缓存处理。以业务1为例,若网络设备110确定该业务类型白名单中包括该业务1的业务类型,则确定需要对该业务1的数据进行缓存处理;若网络设备110确定该业务型白名单中不包括该业务1的业务类型,则确定不需要对该业务1的数据进行缓存处理。该业务类型白名单可以是在网络设备110出厂时就设定在网络设备110中的,也可以是由用户设置并保存在网络设备110中的。
又如,在一些实施例中,该预设的业务类型可以是一个业务类型黑名单,该业务类型黑名单中包括一个或多个业务类型。若终端设备101请求获取的业务的业务类型属于该业务类型黑名单内的业务类型,则确定不需要对该业务的数据进行缓存处理;若终端设备101请求获取的业务的业务类型不属于该业务类型黑名单内的业务类型,则确定需要对该业务的数据进行缓存处理。以业务1为例,若网络设备110确定该业务类型黑名单中不包括该业务1的业务类型,则确定需要对该业务1的数据进行缓存处理;若网络设备110确定该业务类型黑名单中包括该业务1的业务类型,则确定不需要对该业务1的数据进行缓存处理。该业务类型黑名单可以是在网络设备110出厂时就设定在网络设备110中的,也可以是由用户设置并保存在网络设备110中的。
为了便于描述,以下将根据预设的业务类型信息确定是否需要对该数据1进行缓存处理的确定方式称为第二判断规则。
可选的,在另一些实施例中,网络设备110还可以根据该业务1对应的数据总大小来确定是否需要对该数据1进行缓存处理。
服务器121在获取到该业务请求1后,可以将该业务1所请求获取的数据的总大小发送给网络设备110,并由网络设备110转发至终端设备101。网络设备110在接收到该业务1所请求获取的数据的总大小后,可以根据业务1所请求获取的数据的总大小来确定是否对该数据1进行缓存处理。可以看出,在此情况下,步骤204在步骤203之后执行。
具体地,若网络设备110确定该业务1所请求获取的数据的总大小大于或等于一个预设的数据大小阈值,则确定对该业务1的数据进行缓存处理;若网络设备110确定该业务1所请求获取的数据的总大小小于该预设的数据大小阈值,则确定不需要对该业务1的数据进行缓存处理。可选的,若网络设备110确定不需要对该业务1的数据1进行缓存处理,则可以将步骤203确定的对应于该数据1的业务相关信息删除。
为了便于描述,以下将根据该业务1所请求获取的数据的总大小来确定是否对该数据1进行缓存处理的确定方式称为第三判断规则。
可选的,在另一些实施例中,网络设备110还可以根据用于缓存数据的存储装置的可用空间大小来确定是否对该业务1的数据进行缓存。该存储装置的可用空间是用于缓存来自于服务器的数据的存储空间。若该存储装置的可用空间大小大于或等于一个预设的存储空间大小,则可以确定对该业务1的数据进行缓存处理;若该存储装置的可用空间大小小于该预设的存储空间大小,则确定不对该业务1的数据1进行缓存处理。
为了便于描述,以下将根据该缓存装置的可用空间的大小来确定是否对该业务1的数据进行缓存处理的确定方式称为第四判断规则。
可选的,在另一些实施例中,网络设备110还可以根据可用下行带宽来确定是否对该业务1的数据进行缓存。该可用下行带宽是网络设备110能够用于来自于下行方向的数据的带宽。下行方向是指服务器121或者其他服务器到网络设备110的方向。与下行方向对应的上行方向是终端设备101或者其他终端设备(例如终端设备102、终端设备103等)到网络设备110的方向。若该可用下行带宽小于一个预设的可用下行带宽,则可以确定对该业务1的数据进行缓存处理;若该可用下行带宽大于或等于该预设的可用下行带宽,则确定不对该业务1的数据进行缓存处理。在对该业务1的数据进行缓存处理的情况下,若有其他终端设备也向服务器121请求业务1,则网络设备110可以直接将缓存的业务1的数据发送至该其他终端设备。这样在可用下行带宽较小的情况下,减少传输相同的数据对下行带宽的占用。
为了便于描述,以下将根据该缓存装置的可用下行带宽来确定是否对该业务1的数据进行缓存处理的确定方式称为第五判断规则。
可选的,在另一些实施例中,网络设备110还可以同时请求该业务1的终端设备数目确定是否对该业务1进行缓存。若同时请求该业务1的终端设备数目大于或等于一个预设的数目,则可以确定对该业务1进行缓存处理;若同时请求该业务1的终端设备数目小于该预设的数目,则确定不对该业务1进行缓存处理。可以理解的是,这里所称的同时请求可以是指请求时间接近。例如,网络设备110在一个预设的时间范围内接收到S个终端设备发送的用于请求该业务1的业务请求消息,则网络设备110可以确定该S个终端设备是同时请求该业务1的终端设备,S为大于或等于2的正整数。
为了便于描述,以下将根据同时请求该业务1的终端设备数目来确定是否对该业务1的数据进行缓存处理的确定方式称为第六判断规则。
可选的,在一些实施例中,网络设备110可以根据上述第一判断规则至第六判断规则中的任一个或多个来确定是否对该数据1进行缓存处理。
可选的,在一些实施例中,若网络设备110基于上述第四判断规则、第五判断规则和第六判断规则中的任一个或多个判断规则来确定是否需要对该业务1的数据进行缓存处理,则网络设备110可以在步骤203之前执行该确定步骤也可以在步骤203之后执行该确定步骤。若在步骤203之后执行该确定步骤,则网络设备110可以先确定该业务相关信息1。若网络设备确定不需要缓存该数据1,则网络设备110可以将确定的业务相关信息1删除。
205,终端设备101向网络设备110发送数据请求1,网络设备110将数据请求1发送至服务器121,该数据请求1用于请求该第一业务的数据。为了便于描述,以下将该数据请求1所请求的该第一业务的数据称为数据1。
数据请求1可以是用于向服务器请求获取业务1的数据的一组请求。数据请求1可以由一个或多个消息携带。
以RTMP为例,终端设备101可以接收到服务器121发送的业务请求反馈,该业务请求反馈可以是连接结果(result for connect)消息。在接收到该连接结果消息的情况下,终端设备101可以向服务器121发送数据请求1,用于向服务器121请求获取业务1的数据。该数据请求可以包括创建流(create stream)消息,设置缓存长度(set buf len)消息、播放(play)消息。
可选的,在一些实施例中,服务器可以向终端设备发送对应于数据请求的数据请求反馈。也就是说,服务器121可以向终端设备101发送对应于数据请求1的数据请求反馈1。
与数据请求1类似,数据请求反馈1可以是服务器121向终端设备101发送的一组用于反馈数据请求1的反馈信息。数据请求反馈1也可以由一个或多个消息携带。
还以RTMP为例,服务器121发送的数据请求反馈1可以包括创建流结果(resultfor create stream)消息和流开始(stream begin)消息。
206、网络设备110接收服务器121发送的该数据1,并将数据1发送至终端设备101。
该数据1可以是业务1的对象的部分数据。数据1可以是由一个或多个数据包组成的。服务器121可以将组成该数据1的数据包发送至网络设备110,然后由网络设备110将接收到的数据包发送至请求该数据1的终端设备101。
可选的,在一些实施例中,接收到终端设备101发送的业务请求1的服务器121可以直接将业务1的数据发送至网络设备110。在另一些实施例中,服务器121可以指示服务器122将该业务1对应的数据发送至网络设备110。为了便于描述,在图2所示的实施例中假设发送该业务1对应的数据的服务器为服务器121。
207,网络设备110缓存接收到的该数据1。
可选的,在一些实施例中,若该业务1是流媒体业务,则网络设备110缓存的该数据1能够组成T个画面组(Group of Pictures,GOP),T为大于或等于1的正整数。一个GOP可以由多个数据包组成。组成一个GOP的数据包的数目与流媒体的编码方式相关。如果两个流媒体的编码方式不同,则两个流媒体组成一个GOP的数据包的数目可能不同。流媒体的编码方式可以由用于传输该流媒体的数据包携带。网络设备110可以解析接收到数据包,确定流媒体的编码方式,并根据该流媒体的编码方式确定组成一个GOP包括的数据包的数目。这样,网络设备110可以根据GOP的起始位置(即一个GOP的第一个数据包)和一个GOP包括的数据包数目,确定组成T个GOP的数据包。例如,若网络设备110确定一个GOP由8个数据包组成且第1个GOP的第一个数据包为数据包1,则网络设备110可以确定数据包1至数据包8可以组成第1个GOP,数据包9至数据包16可以组成第2个GOP,以此类推。
可选的,在一些实施例中,网络设备110保存的GOP数目可以是在网络设备110出厂时就设置好的,也可以是由用户预先设置并保存在网络设备110中的。
可选的,在另一些实施例中,网络设备110可以自行确定T的取值(即可以保存的GOP数目)。
例如,在一些实施例中,网络设备110可以根据用于缓存数据的存储装置的可用空间大小来确定T的取值。例如,若该存储装置的可用空间大小大于0且小于或等于第一预设存储空间大小,则T的取值可以为1;若该存储装置的可用空间大小大于该第一预设存储空间大小且小于或等于第二预设存储空间大小,则T的取值可以为2;若该存储装置的可用空间大小大于该第二预设存储空间大小且小于或等于第三预设存储空间大小,则T的取值可以为3。
又如,在一些实施例中,网络设备110可以根据流媒体的相关信息来确定T的取值。在该流媒体中包括视频的情况下,该流媒体的相关信息可以包括分辨率、码率、帧率等。在该流媒体中包音频的情况下,该流媒体的相关信息可以包括比特率、码率等。例如,若该数据1的分辨率为1080P,则T的取值可以为4;若该数据1的分辨率为2K,则T的取值可以为3;若该数据1的分辨率为4K,则T的取值可以为2。
又如,在一些实施例中,网络设备110可以根据服务器的身份信息来确定T的取值。例如,来自于不同服务器的流媒体的T的取值不同。例如,对于来自于服务器121或服务器122的流媒体,T的取值可以为2;对于来自于除服务器121或122以外的服务器的流媒体,T的取值可以为3。
又如,在另一些实施例中,网络设备110可以结合存储装置的可用空间大小、流媒体的相关信息以及服务器的身份信息中的任意两个或全部来确定T的取值。
若该业务1是非流媒体业务,例如该业务1是文件下载业务,则该网络设备110中可以设置一个最大缓存数据包数量。网络设备110中缓存的数据包的数目小于或等于该最大缓存数据包数量。该最大缓存数据包数量的确定方式可以与T的取值的确定方式类似。在此就不必赘述。
可选的,在一些实施例中,网络设备110可以对缓存的对应于业务1的数据进行老化处理。
假设该业务1是流媒体业务。如上所述,网络设备110中缓存的该业务1的数据能够组成T个GOP。假设该对应于业务1的数据由多个GOP组成,T的取值为2,一个GOP由8个数据包组成。换句话说,网络设备110可以缓存的该业务1的数据可以组成2个GOP。对于服务器121发送的该多个GOP的前两个GOP,网络设备110可以直接缓存对应的数据。网络设备110在接收到服务器121发送的第三个GOP的第一个数据包的情况下,可以将组成第一个GOP的数据包全部删除,并缓存用于组成第三个GOP的数据包;在接收到服务器112发送的第四个GOP的第一个数据包的情况下,可以将组成第二个GOP的数据包全部删除,并缓存用于组成第四个GOP的数据包,以此类推。
假设该业务1是非流媒体业务。如上所述,若该业务1是非流媒体业务,则网络设备110缓存的数据包的数量不大于最大缓存数据包数量。为便于描述,以下以Dmax表示该最大缓存数据包数量。对于接收到的来自于服务器121的前Dmax该数据1的数据包,网络设备110可以直接缓存。在一些实施例中,网络设备110在接收到来自于服务器121的该数据1的第Dmax+1个数据包的情况下,将接收到的该数据1的第一个数据包删除,并缓存该第Dmax+1个数据包;在接收到来自于服务器121的该数据1的第Dmax+2个数据包的情况下,将接收到的该数据1的第二个数据包删除,并缓存该第Dmax+2个数据包,以此类推。
可选的,在一些实施例中,网络设备110中可以包括第一存储装置和第二存储装置。第一存储装置的读写速度大于第二存储装置的读写速度。
例如,在一些实施例中,该第一存储装置可以是网络设备110的内存。该第二存储装置可以是通过接口外挂至网络设备110的外接存储装置。例如,可以是通过通用串行总线(Universal Serial Bus,USB)接口连接至网络设备110的外接硬盘。
又如,在另一些实施例中,该第一存储装置可以是具有高速接口(例如非易失性内存主机控制器接口规范(Non-Volatile Memory express,NVMe)接口、快捷外设互联标准(Peripheral Component Interconnect Express,PCIe)接口等)的固态硬盘(Solid StateDisk,SSD),第二存储装置是具有较低速度接口(例如串行高技术配置(Serial AdvancedTechnology Attachment,SATA)接口)的机械硬盘。
网络设备110可以根据该业务1的业务类型,选择用于缓存对应于业务1的数据的存储装置。根据业务的实时性,终端设备请求的业务可以分为实时数据业务(例如视频直播业务、音频直播业务)和非实时数据业务(例如文件下载业务、视频点播业务等)。实时数据业务也可以称为直播数据业务。实时数据业务是指该业务的数据是实时获取的。实时数据业务的数据是不断产生的。只要为该实时数据业务提供数据的数据源不中断数据的采集工作,该实时数据业务的数据就不会中断,该实时数据业务的总数据量就会不断增加。非实时数据业务是指该业务的数据是预先获取并保存的。非实时数据业务的总数据是一定的,不会有新增加的数据。若该业务1的业务类型为实时数据业务,则网络设备110可以使用第一存储装置缓存对应于业务1的数据;若该业务1的业务类型为非实时数据业务,则网络设备110可以使用第二存储装置缓存对应于业务1的数据。
可选的,在一些实施例中,若服务器121向终端设备发送对应于数据请求的数据反馈,则网络设备110还可以缓存该数据反馈。
类似的,该网络设备110也可以对该数据反馈进行老化处理。例如,在一些实施例中,若网络设备110接收到新的数据反馈,则可以将上一个数据反馈信息删除。又如,可以设置一个定时器,若该定时器超时,则网络设备110可以将保存的数据反馈信息删除。
终端设备101在接收到数据1后,可以继续向服务器121发送数据请求,以继续请求获取业务1的数据。
可选的,在一些实施例中,业务1的数据中还可以包括一些必要数据。网络设备110可以缓存业务1的必要数据并不对该必要数据进行老化处理。以RTMP为例,若业务1是视频业务且该视频业务对应的协议是RTMP,则业务1的数据中还可以包括序列参数集(SequenceParameter Set,SPS)和图像参数集(Picture Parameter Set,PPS)。终端设备在对视频进行解码时需要基于SPS和PPS中的信息。因此SPS和PPS可以认为是业务1的必要数据。在一些情况下,SPS和PPS可能只在视频流的起始位置存在,或者在一些关键帧中存在。因此,如果终端设备其他终端设备接收到的业务1的数据中没有包括SPS和PPS,则终端设备可能无法对视频正确解码。因此,如果网络设备110所请求的视频业务的数据只在视频流的起始位置包括SPS和PPS,则网络设备110中需要保存这些必要数据并可以不对必要数据进行老化处理。如果SPS和PPS在关键帧中存在,但是网络设备110所缓存的业务的数据不是以画面组(Group of Pictures,GOP)为单位的(换句话说网络设备110所缓存的数据的数据包数目少于一个GOP包括的数据包数目,或者网络设备110在对缓存的业务的数据进行过老化处理过程中不是以GOP为单位进行老化处理的),则该网络设备中还需要缓存这些必要数据并且不进行对该必要数据的老化处理。GOP中通常会包含有该关键帧。因此,如果网络设备110缓存的视频业务的数据不是以GOP为单位缓存的,则网络设备110可能在对缓存的视频业务的数据进行老化处理时,删除掉关键帧对应的数据包。换句话说,在此情况下,网络设备110的缓存的视频业务的数据中不会包含SPS和PPS。若在此时有其他终端设备请求获取该视频业务的数据,则网络设备110发送给这些终端设备的该视频业务的数据中不会包含有SPS和PPS。因此这些终端设备无法正确解码该视频业务的数据。所以为了保证缓存的视频业务的数据能够被正确解码,若网络设备110中缓存的数据不是以GOP为单位的,则网络设备110中需要缓存这些关键数据(即SPS和PPS)并不对这些关键数据进行老化处理。
208,网络设备110接收终端设备102、终端设备103、终端设备104和终端设备105发送的业务请求。
与终端设备101发送的业务请求类似,终端设备102至终端设备105发送的业务请求中也包括所请求获取的业务的对象的身份信息。还以RTMP为例,终端设备102至终端设备105发送的业务请求中可以包括的业务的对象的身份信息可以是频道名。
可选的,在一些实施例中,终端设备102至终端设备105在通过网络设备110向服务器121发送业务请求之前也可以先与网络设备110建立连接。终端设备102至终端设备105与网络设备110建立连接的方式与终端设备101与网络设备110建立连接的方式相同,在此就不必赘述。
可选的,在一些实施例中,终端设备102至终端设备105也可以通过网络设备110与服务器建立连接。终端设备102至终端设备105与服务器建立连接的实现方式与终端设备101与服务器建立连接的方式相同,在此就不必赘述。
209,网络设备110根据接收到的业务请求,确定对应的业务相关信息。
为了便于描述,以下将终端设备102发送的业务请求称为业务请求2,对应的业务相关信息称为业务相关信息2;将终端设备103发送的业务请求称为业务请求3,对应的业务相关信息称为业务相关信息3;将终端设备104发送的业务请求称为业务请求4,对应的业务相关信息称为业务相关信息4;将终端设备105发送的业务请求信息称为业务请求5,对应的业务相关信息称为业务相关信息5。
与业务相关信息1类似,业务相关信息2至业务相关信息5可以包括所请求的业务的对象的身份信息。可选的,在一些实施例中,业务相关信息2至业务相关信息5还可以进一步包括服务器的身份信息。可选的,在另一些实施例中,业务相关信息2至业务相关信息5还可以进一步包括终端设备的身份信息。
210,网络设备110确定是否缓存业务请求2至业务请求5所请求的业务的数据。
可选的,网络设备110可以通过确定网络设备110中是否保存与业务相关信息2至业务相关信息5匹配的业务相关信息,来确定是否保存业务请求信息2至业务请求信息5所请求的业务的数据。若网络设备110保存匹配的业务相关信息,则可以确定保存有业务请求2至业务请求5所请求的业务的数据,若网络设备110未保存匹配的业务相关信息,则可以确定未保存有业务请求2至业务请求5所请求的业务的数据。
可选的,在一些实施例中,若两个业务相关信息中的业务的对象的身份信息相同,则该两个业务相关信息匹配。例如,在一些情况下,由不同服务器提供的相同的业务的对象的内容可以是相同的。在此情况下,只要两个业务相关信息中的业务的对象的身份信息相同,就可以认为这两个业务相关信息匹配。
可选的,在另一些实施例中,若两个业务相关信息中的业务的对象的身份信息相同且服务器的身份信息相同,则该两个业务相关信息匹配。在一些情况下,不同服务器提供的相同的业务的对象的内容可能也不会相同。例如,两个服务器提供相同的频道的视频直播服务,但是这两个服务器提供的直播视频的分辨率可能是不同的。在此情况下,不仅需要匹配业务的对象的身份信息,也需要匹配服务器的身份信息。
假设业务相关信息2至业务相关信息4中的业务的对象的身份信息也是该频道名1,服务器的身份信息是服务器121的身份信息。换句话说,终端设备102至终端设备104也是向服务器121请求该业务1。假设业务相关信息5中的业务的对象的身份信息是频道名2,服务器的身份信息是服务器121的身份信息,且该频道名1与该频道名2是不同的频道。假设网络设备110仅保存有该业务相关信息1。在此情况下,该业务相关信息1与业务相关信息2至4均匹配,该业务相关信息1与业务相关信息5不匹配。换句话说,网络设备110中保存有与业务相关信息2至4匹配的业务相关信息,网络设备110中没有保存与业务相关信息5匹配的业务相关信息。在此情况下,网络设备110可以确定缓存有终端设备102至终端设备104所请求的业务的数据,未缓存终端设备105所请求的业务的数据。
为便于描述,以下步骤中以终端设备102至终端设备104也是向服务器121请求该业务1,终端设备105向服务器121请求业务2,且业务1不同于业务2,且网络设备110中未缓存业务2的数据为例作进一步的说明。
211,网络设备110将业务请求2至业务请求5发送至服务器121。
在步骤211中,网络设备110直接将接收到的业务请求发送至服务器121。可选的,在另一些实施例中,网络设备110也可以拦截接收到的业务请求。例如,若终端设备102发送的业务请求2中没有包含需要服务器验证的数据(例如用户名和密码等),网络设备110也可以拦截该业务请求2,并将缓存的业务请求反馈发送至的终端设备102。
以HLS为例,终端设备101发送的业务请求(获取(get)消息)中包括服务器121的域名和终端设备101所请求播放的视频的播放列表的名称。服务器121在接收到该业务请求后可以将对应的播放列表文件发送至终端设备101。网络设备110可以缓存接收到的播放列表文件。当终端设备102发送的业务请求中包括相同的服务器的域名和播放列表的名称的情况下,该网络设备110可以拦截该业务请求,并将缓存的对应的播放列表文件发送至终端设备102。
212,网络设备110接收终端设备102、终端设备103、终端设备104和终端设备105发送的数据请求,其中终端设备102至终端设备104的数据请求用于请求业务1的数据,终端设备105的数据请求用于请求业务2的数据。
终端设备102、终端设备103、终端设备104和终端设备105发送的数据请求的具体内容和形式与终端设备101发送的数据请求类似,在此就不必赘述。
213,网络设备110拦截终端设备102、终端设备103、终端设备104发送的数据请求,并将终端设备105发送的数据请求发送至服务器121。
如上所述,网络设备110中缓存有业务1的数据。而网络设备110中未缓存业务2的数据,因此网络设备110需要将请求信息5发送至服务器121,以从服务器121获取该业务2的数据。
可选的,在另一些实施例中,网络设备110可以仅拦终端设备102至终端设备104中的部分终端设备发送的数据请求。例如,网络设备110可以拦截终端设备102和终端设备103发送的数据请求,将终端设备104发送的数据请求发送至服务器121。在此情况下,网络设备110还可以接收到由终端设备104所请求的业务1的数据。网络设备110可以缓存该由终端设备104所请求的业务1的数据。这样,即使终端设备101断开连接,网络设备110还可以继续获取由终端设备104所请求的业务1的数据,缓存由终端设备104所请求的业务1的数据,并将缓存的业务1的数据(即终端设备104所请求的业务1的数据)发送至终端设备102至终端设备104。这样可以避免引终端设备101与服务器断开连接导致的业务中断。
214,网络设备110将缓存的该业务1的数据发送至终端设备102至终端设备104。
换句话说,由于网络设备110中已经缓存了终端设备102至终端设备104所请求的该业务1的数据,因此网络设备110无需再将终端设备102至终端设备104发送的数据请求发送至服务器121,而可以直接将缓存的该业务1的数据发送至终端设备102至终端设备104。在此情况下,服务器121并不会向网络设备110发送终端设备102至终端设备104所请求的业务1的数据。换句话说,对于终端设备101至终端设备104所请求的业务1的数据,服务器121只会将终端设备101请求的业务1的数据发送至网络设备110。这样,可以避免多个相同的下行数据同时占用下行带宽。因此,该业务1的数据的传输速度也会提高,并且对其他终端设备(例如终端设备105)请求获取的数据的传输速度的影响也会减少。
如上所述,在一些情况下,网络设备110中缓存的业务1的数据中还包括业务1的必要数据。网络设备110在第一次将缓存的业务1的数据发送至终端设备102至终端设备104时,可以先将这些必要数据发送至终端设备102至终端设备104。例如,若业务1是基于RTMP的视频直播业务,则必要数据可以包括SPS和PPS。网络设备110会先将业务1的SPS和PPS发送至终端设备102至终端设备104。这样,终端设备102至终端设备104可以利用SPS和PPS对视频流进行正确解码。
网络设备110可以维护一个业务-终端设备关系信息,并根据该业务-终端设备关系信息来确定需要发送的业务的终端设备。例如,该业务-终端设备关系信息可以以表的形式保存在网络设备110中。该表中的每个条目表示一个终端设备和该终端设备所请求的业务的关系信息。假设业务相关信息中包括业务的身份信息和服务器的身份信息,则该表中的每个条目可以包括业务相关信息和与该业务相关信息对应的终端设备的身份信息。如上所述,业务相关信息是网络设备110根据终端设备发送的业务请求确定的。该与该业务相关信息对应的终端设备的身份信息就是发送用于确定该业务相关信息的业务请求的终端设备的身份信息。该终端设备的身份信息可以是终端设备的IP地址,也可以是其他可以用于标识终端设备的信息。
可选的,在一些实施例中,终端设备可以不需要获取所请求的业务的所有数据。以直播业务为例,终端设备可以获取发起请求后的数据。对于发起请求之前的数据,终端设备并不需要获取。例如,假设终端设备101和终端设备102所请求的业务均是视频会议直播业务且所请求的会议相同,提供该会议的视频的服务器也相同。假设终端设备101是在T1时刻请求该会议的直播视频,终端设备102在T2时刻请求该会议的直播视频,且T1早于T2时刻。终端设备102可以只需要获取从T2时刻开始的该会议的直播视频,而不需要获取从T1到T2时刻之间的会议视频。在此情况下,网络设备110可以拦截终端设备102发送的用于请求获取该会议的数据请求。为便于描述,可以将这种不需要获取所请求的业务的所有数据的业务称为非完整性数据业务。
可选的,在另一些实施例中,终端设备需要获取所请求的业务的全部数据。以下载业务为例,终端设备需要获取到所下载的文件的全部数据包。例如,假设终端设备101和终端设备102所请求的业务均是视频文件下载业务且所请求的视频文件相同,提供该视频文件的服务器也相同。假设终端设备101是在T1时刻请求下载该视频文件,终端设备102在T2时刻请求下载该视频文件,在T2时刻终端设备101尚未完成对该视频文件的下载,且T1早于T2时刻。在此情况下,网络设备110确定是否拦截终端设备102发送的数据请求之前,还需要确定是否已经缓存了该视频文件的第一个数据包到T2时刻的全部数据包。假设在T2时刻,终端设备101已经获取了该视频文件的50%的数据。网络设备110需要先确定是否已经缓存了该视频文件的50%的数据,若该视频文件的50%的数据已经缓存在网络设备110,则可以拦截终端设备102的数据请求;若网络设备110中只缓存了该视频文件的40%到50%这一部分数据(换句话说,该视频文件的前40%数据已经被老化删除),则需要将终端设备102的数据请求发送至服务器。为便与描述,可以将这种需要获取所请求的业务的所有数据的业务称为完整性数据业务。
因此,在一些实施例中,网络设备110在确定是否拦截终端设备发送的数据请求之前,还可以确定业务的业务类型是否是完整性数据业务和非完整性数据业务中的一种。若业务的类型是非完整性数据业务,则可以在缓存有该业务对应的数据的情况下,拦截终端设备发送的数据请求;若业务的类型是完整性数据业务,则除了确定缓存有该业务对应的数据外,还需要确定所缓存的该业务对应的数据能够使得终端设备获取到该业务对应的数据的全部数据。
在一些实施例中,实时数据业务可以是非完整性数据业务,非实时数据业务是完整性数据业务。因此,在一些实施例中,可以只需要确定业务的类型是否是实时业务就可以确定是否可以直接拦截终端设备发送的数据请求。换句话说,若业务的类型是实时数据业务,则可以在缓存有该业务对应的数据的情况下,拦截终端设备发送的数据请求;若业务的类型是非实时数据业务,则除了确定缓存有该业务对应的数据外,还需要确定所缓存的该业务对应的数据能够使得终端设备获取到该业务对应的数据的全部数据。
在一些实施例中,终端设备102至终端设备104除了向服务器121发送用于请求获取数据的数据请求外,还可以发送一些其他信息。还以RTMP为例,终端设备除了向服务器121发送数据请求外,还可以发送保活消息(也可以称为心跳包)、或者其他RTMP扩展消息。对于终端设备102至终端设备104发送的保活消息、RTMP扩展消息,网络设备110可以直接将这些消息转发至服务器121。换句话说,网络设备110对除用于数据请求外的其他消息都可以进行透传处理,而不进行拦截。
网络设备110可以分析接收到的来自于终端设备的消息。根据消息的内容来确定是进行透传,还是直接拦截。例如,不同功能的消息中的关键字可能是不同的。网络设备110可以解析消息中的关键字,来确定该消息是数据请求、业务请求,还是保活消息或者其他消息。
以保活消息为例,终端设备101至终端设备104在接收数据包的过程中会向服务器121发送保活消息,这样可以使得服务器121确定终端设备101至终端设备104与该服务器121的连接未中断。若终端设备101至终端设备104在接收数据包的过程中未向该服务器121发送保活消息,则该服务器121可能无法确定终端设备101至终端设备104与该服务器121之间的连接是否中断。因此可能出现在终端设备101至终端设备104与该服务器121之间的连接已经中断的情况下,该服务器121仍然向终端设备101至终端设备104发送数据包,这就可能造成带宽的浪费。由此可见,如果不将终端设备101至终端设备104发送的保活消息透传至服务器121,则可能出现因服务器无法及时发现连接断开造成的带宽的浪费。
可选的,在一些实施例中,若网络设备110确定终端设备101的连接断开,则网络设备110可以释放拦截的一个终端设备(终端设备102至终端设备104中的任一个)发送的数据请求。终端设备101的连接断开可以是终端设备101与服务器121的连接断开,也可以是终端设备101与网络设备110的连接断开。
可选的,在一些实施例中,网络设备110可以释放多个终端设备中的一个终端设备发送的数据请求或者该多个终端设备中的部分终端设备发送的数据请求。为了便于描述,以下可以将发送被网络设备110释放的数据请求的终端设备称为目标终端设备。
可选的,在另一些实施例中,网络设备110选择的目标终端设备可以是除终端设备101以外的第一个向服务器121发送用于请求业务1的业务请求的终端设备。例如,假设网络设备110依次收到终端设备102、终端设备103和终端设备104发送的用于请求业务1的业务请求,则网络设备110可以释放所拦截的终端设备102发送的数据请求。网络设备110释放拦截的终端设备102发送的数据请求可以理解为网络设备110不再对接收到的来自于终端设备102的数据请求进行拦截,而直接将这些数据请求发送至服务器121。换句话说,在终端设备101断开连接后,网络设备110将接收到的来自于终端设备102的数据请求发送至服务器121。服务器121根据终端设备102发送的数据请求,向网络设备110发送业务1的数据。网络设备110继续缓存业务1的数据,并将缓存的业务1的数据发送至终端设备102至终端设备104。
可选的,在另一些实施例中,终端设备发送的数据请求可以对应时间。例如,数据请求中可以携带用于指示时间的时间信息。网络设备110可以根据拦截的数据请求对应的时间与参考时间来确定释放的终端设备发送的数据请求。该参考时间是终端设备接收到的终端设备101在断开连接之前发送的数据请求(为便于描述,以下将对应的时间是参考时间的数据请求称为参考数据请求)所对应的时间。该参考数据请求可以是可以终端设备101在断开连接之前发送的最后一个数据请求,也可以是终端设备101在断开连接之前发送的倒数第二个数据请求等。网络设备110可以从终端设备102至终端设备104发送的3个数据请求中选择目标数据请求,并释放该目标数据请求。该3个数据请求是该网络设备110在接收到该参考数据请求时接收到的来自于终端设备102至终端设备104发送的数据请求。
可选的,在一些实施例中,该目标数据请求对应的时间与参考时间的时间差小于预设阈值且该目标数据请求对应的时间不晚于该参考时间。
可选的,在另一些实施例中,该目标数据请求对应的时间与该参考时间的时间差是该3个数据请求对应的时间与该参考时间的时间差最小的,且该目标数据请求对应的时间不晚于该参考时间。换句话说,除该目标数据请求外的另外两个数据请求对应的时间与该参考时间的时间差均大于该目标数据请求与该参考时间的时间差。
假设该目标数据请求是终端设备102发送的。在此情况下,网络设备110释放所拦截的终端设备102发送的数据请求。网络设备110释放拦截的终端设备102发送的数据请求可以理解为网络设备110不再对接收到的来自于终端设备102的数据请求进行拦截,而直接将这些数据请求发送至服务器121。换句话说,在终端设备101断开连接后,网络设备110将该目标数据请求以及在该目标数据请求之后接收到的来自于终端设备102的用于请求业务1的数据请求发送至服务器121。服务器121根据终端设备102发送的数据请求,向网络设备110发送业务1的数据。网络设备110继续缓存业务1的数据,并将缓存的业务1的数据发送至终端设备102至终端设备104。
以RTMP为例,数据请求中可以包括请求的下一个帧的帧号。数据请求中的时间信息可以是数据请求中的帧号。图3是网络设备110接收到的不同终端设备发送的数据请求的示意图。图3示出了终端设备101、终端设备102、终端设备103和终端设备104发送的数据请求中的帧号。如图3所示,终端设备101请求获取第6帧的数据包后,与服务器断开连接。在同一时刻,终端设备102发送的数据请求中的帧号与终端设备101发送的数据请求中的帧号相同,且早于终端设备103和终端设备104发送的数据请求中的帧号。如图3所示,在t5时刻,终端设备101和终端设备102请求获取的帧号均为第5帧,终端设备103和终端设备104请求获取的帧号为第4帧。在此情况下,网络设备110可以释放终端设备102的发送的帧号为6的数据请求以及终端设备102之后发送的数据请求。此外,网络设备110可以继续拦截终端设备103和终端设备104发送的数据请求。换句话说,网络设备110会停止对终端设备102发送的数据请求的拦截,将终端设备102发送的帧号为6的数据请求以及该数据请求之后的数据请求均发送给服务器121。
如上所述,由于终端设备102至终端设备104发送的3个数据请求对应的时间均不晚于参考时间。因此,假设将该3个数据请求发送至服务器121,则服务器121发送的对应于该3个数据请求的业务1的数据与终端设备101在断开连接之前请求的业务1的数据会有重合。这样不会因终端设备101断开连接导致数据传输中断。还以图3为例,虽然终端设备101在请求获取第6帧后连接中断,但是服务器121仍然会根据终端设备102发送的数据请求向网络设备110发送该业务1的数据。换句话说,服务器121会根据终端设备102发送的数据请求,继续向网络设备110发送第6帧、第7帧等对应的数据包。
可选的,在一些实施例中,目标数据请求所请求的业务1的数据可能会与网络设备110缓存的业务1的数据重复。还以图3为例,服务器121根据终端设备102发送的数据请求将对应于第6帧的数据包发送至网络设备110。但是网络设备110可能已经缓存了服务器121根据终端设备101的数据请求向网络设备110发送的对应于第6帧的数据包。在此情况下,网络设备110可以将只将缓存的对应于第6帧的数据包发送给终端设备101至终端设备104。丢弃接收到的重复的对应于第6帧的数据包。在一些情况下,网络设备110可能同时接收到服务器121根据终端设备101和终端设备102的数据请求发送的相同的数据包。在此情况下,网络设备110可以缓存其中一组数据包,并将重复的数据包丢弃。
可选的,在另一些实施例中,该目标数据请求对应的时间可以是与该参考时间连续的时间。例如,参考时间是对应第5帧,该目标数据请求对应的时间可以是第6帧。这样,也可以保证传输的业务1的数据不会发生中断。
图4是根据本申请实施例提供的一种分发数据的方法的示意性流程图。为了便于描述,图4中仅示出了两个终端设备向服务器请求相同业务的示意性流程图,并且并未示出终端设备与网络设备和服务器建立连接的过程。图4所示的实施例中以终端设备1和终端设备2向服务器请求的是基于RTMP的直播视频流且终端设备1和终端设备2是向同一个服务器请求相同的视频流为例进行说明。
401,终端设备1与服务器进行RTMP握手。
可以理解的是,该终端设备1与该服务器之间发送的数据需要通过网络设备进行转发。为了便于描述,在描述图4所示方法的过程中省略了由网络设备转发相应数据的操作的描述。
402,该终端设备1向该服务器发送连接消息1。
该连接消息1中包括该服务器的域名。该连接消息1中还可以包括终端设备1所请求的直播视频流对应的频道名1。
403,网络设备根据该连接消息1,确定业务相关信息1并保存该业务相关信息1,该业务相关信息1中包括该频道名1和该服务器的IP地址。该网络设备可以根据该服务器的域名确定该服务器的IP地址。该服务器的域名和该服务器的IP地址的对应关系可以在该终端设备1与该服务器建立连接过程中发送的报文确定。
404,该终端设备1向该服务器发送创建流消息、设置缓存长度消息、播放消息。
405,该服务器向该终端设备1发送创建流结果消息、流开始消息。
406,该服务器向该终端设备1发送视频数据,该视频数据是终端设备1所请求的视频流的视频数据。
假设该网络设备在步骤406之前未接收并缓存该视频流的视频数据,并且假设该视频流是需要进行缓存的数据。在此情况下,该网络设备可以缓存该视频流的视频数据。
407,该终端设备2与该服务器进行RTMP握手。
类似的,该终端设备2与该服务器之间发送的数据需要通过该网络设备进行转发。
408,该终端设备2向该服务器发送连接消息2。
409,该网络设备根据该连接消息2,确定业务相关信息2并保存该业务相关信息2。假设该业务相关信息2中包括该频道名1和该服务器的IP地址。可以看出,业务相关信息2中的频道名和服务器的IP地址与业务相关信息1中的频道名和服务器的IP相同。因此,该网络设备可以确定出缓存有该终端设备2所请求的业务的数据。
410,终端设备2向该网络设备发送创建流消息、设置缓存长度消息、播放消息。
411,该网络设备拦截步骤410接收到的拦截该创建流消息、设置缓存长度消息、播放消息。换句话说,该网络设备不会将步骤410接收到的消息发送至该服务器。
412,该网络设备将缓存的视频流的视频数据发送至该终端设备2。
基于图4所示的方法,该网络设备在已经缓存了该视频流的视频数据的情况下,可以直接将缓存的该视频流的视频数据发送至该终端设备2,并拦截该终端设备2发送的创建流消息、设置缓存长度消息、播放消息。在此情况下,该服务器无需再向该网络设备发送该网络设备中已经缓存的该视频流的视频数据,这样,可以减少相同的业务的数据传输对该服务器到该网络设备的下行带宽的占用。
图5是根据本申请实施例提供的一种分发数据的方法的示意性流程图。为了便于描述,图5中仅示出了两个终端设备向服务器请求相同业务的示意性流程图,并且并未示出终端设备与网络设备和服务器建立连接的过程。图5所示的实施例中以终端设备1和终端设备2向服务器请求的是基于超文本传输协议直播视频流(HTTP Live Streaming,HLS)的直播视频流且终端设备1和终端设备2是向同一个服务器请求相同的视频流为例进行说明。
501,终端设备1向该服务器发送获取(get)消息1。
可以理解的是,该终端设备1与该服务器之间发送的数据需要通过网络设备进行转发。为了便于描述,在描述图5所示方法的过程中省略了由网络设备转发相应数据的操作的描述。获取消息用于请求获取播放列表(playist)。该服务器可以向该终端设备1发送该播放列表。具体地,该服务器可以将该播放列表发送至该网络设备,该网络设备可以将接收到的该播放列表转发至该终端设备1。
502,网络设备根据该获取消息1,确定业务相关信息1并保存该业务相关信息1,该获取信息1中包括该播放列表文件名1和该服务器的域名。该网络设备可以根据该服务器的域名确定该服务器的IP地址。该服务器的域名和该服务器的IP地址的对应关系可以在该终端设备1与该服务器建立连接过程中发送的报文确定。
503,该终端设备1向该服务器发送传输流(transport stream,TS)文件获取消息1。
504,该服务器向终端设备1发送该TS文件获取消息1对应的TS文件1的数据。
505,该网络设备缓存该TS文件1的数据。
假设该网络设备在步骤505之前未接收并缓存该视频流的视频数据,并且假设该视频流是需要进行缓存的数据。在此情况下,该网络设备可以缓存该视频流的视频数据。此外,该网络设备还可以缓存该服务器发送的播放列表。
506,终端设备2向该网络设备发送获取(get)消息2。
可以理解的是,该终端设备2与该服务器之间发送的数据需要通过网络设备进行转发。为了便于描述,在描述图5所示方法的过程中省略了由网络设备转发相应数据的操作的描述。获取消息用于请求获取播放列表(playist)。
507,网络设备根据该获取消息2,确定业务相关信息2并保存该业务相关信息2,该获取信息2中包括该播放列表文件名1和该服务器的域名。该网络设备可以根据该服务器的域名确定该服务器的IP地址。该服务器的域名和该服务器的IP地址的对应关系可以在该终端设备1与该服务器建立连接过程中发送的报文确定。
可选的,在一些实施例中,该网络设备可以将步骤506中接收到的获取消息2发送至该服务器,并接收该服务器根据该获取消息2向该终端设备2发送的播放列表,将该播放列表转发至该终端设备2。
可选的,在另一些实施例中,若步骤506中接收到的获取消息2中没有包括用户名和密码且该网络设备缓存有播放列表,则该网络设备可以拦截该获取消息2并将缓存的播放列表发送至该终端设备2。
508,该终端设备2向该网络设备发送TS文件获取消息2。
509,该网络设备拦截步骤508接收到的TS文件获取消息2。
510,该网络设备将缓存的该TS文件1的数据发送至终端设备2。
基于图5所示的方法,该网络设备在已经缓存了该TS文件1的数据的情况下,可以直接将缓存的该TS文件1的数据发送至该终端设备2,并拦截该终端设备2发送的TS文件获取消息2。在此情况下,该服务器无需再向该网络设备发送该网络设备中已经缓存的该TS文件1的数据,这样,可以减少相同的业务的数据传输对该服务器到该网络设备的下行带宽的占用。
图6是根据本申请实施例提供的一种分发数据的方法的示意性流程图。
601,网络设备缓存第一数据,其中该第一数据是服务器为第一终端设备提供的业务的数据。
602,该网络设备接收N个第二终端设备发送的N个第一数据请求,其中N为大于或等于1的正整数。
603,当该N个第一数据请求所请求的数据是该服务器基于该业务提供的数据时,该网络设备拦截该N个第一数据请求并向该N个第二终端设备发送缓存的该第一数据。
可选的,在一些实施例中,该方法还包括:在该第一终端设备与该服务器之间的连接断开时,该网络设备接收第二数据,其中该第二数据是该服务器基于该业务提供的数据;该网络设备缓存该第二数据;向该N个第二终端设备发送缓存的该第二数据,该第二数据与该第一终端设备与该服务器连接断开时接收到的数据是连续的。
该第二数据与该第一终端设备与该服务器连接断开时接收到的数据(为便于描述,以下简称第三数据)是连续的是指该第二数据是该服务器为该业务提供了该第三数据后,提供的该业务的数据。例如,若该第二数据对应一个时间且该第三数据对应一个时间,则该第二数据对应的时间与该第三数据对应的时间在时间上是连续的,且该第二数据对应的时间在该第三数据对应的时间之后。又如,若该第一终端设备与该服务器之间的连接没有断开,则该服务器会在发送了该第三数据之后,发送该第二数据。
可选的,在一些实施例中,该第二数据为该服务器为该N个第二终端设备中的N1个第二终端设备提供的该业务的数据,其中N1为大于或等于1且小N的正整数,或者该第二数据为该服务器为M个第三终端设备提供的该业务的数据,M为大于或等于1的正整数。
可选的,在一些实施例中,在该网络设备接收第二数据之前,该方法还包括:该网络设备接收该N个第二终端设备发送的N个第二数据请求,其中该N个第二数据请求所请求的数据是该服务器基于该业务提供的数据,该N个第二数据所请求的数据不同于该N个第一数据请求所请求的数据;该网络设备在该第一终端设备与该服务器之间的连接断开时,将该N个第二数据请求中的N1个第二数据请求发送至该服务器,拦截该N个第二数据请求中除该N1个第二数据请求以外的N2个第二数据请求。该N1个第二数据请求是该N1个第二终端设备发送的。N2是大于或等于1,且小于N的正整数,且N1与N2的和为N。
该N个第二数据所请求的数据不同于该N个第一数据请求所请求的数据可以理解为该N个第二数据请求中的任一个数据请求与N个第一数据请求中对应的数据请求所请求的内容不同。对应的数据请求是指由同一个终端设备发送的数据请求。例如,该N个第二终端设备中的第n个第二终端设备发送的是N个第二数据请求中的第n个第二数据请求和N个第一数据请求中的第n个第一数据请求,其中n=1,…,N。第n个第二数据请求所请求的数据不同于第n个第一数据请求所请求的数据。例如,第n个第一数据请求所请求的是第4帧的视频画面,第n个第二数据请求所请求的是第5帧的视频画面。该N个第二终端设备是在发送完该N个第一数据请求后发送该N个第二数据请求的。该N个第二数据请求中的每个第二数据请求所对应的的时间晚于N个第一数据请求中对应的数据请求所对应的的时间。
该服务器基于该N1个第二数据请求所提供的该业务的数据可以称为第四数据。该第四数据可以包括该第二数据。例如,该第四数据可以包括两部分数据,第一部分数据和第二部分数据,该第一部分数据可以与该第三数据中的部分数据相同,该第二部分数据可以是该第二数据。又如,该第四数据中的全部数据都可以是该第二数据。
可选的,在一些实施例中,该N个第二数据请求中的每个第二数据请求对应一个时间,且该N个第二数据请求中的每个第二数据请求对应的时间均不晚于参考时间,该N1个第二数据请求中的每个第二数据请求对应的时间与该参考时间的差小于预设阈值,该参考时间为该网络设备接收到的来自于该第一终端设备的最后一个用于请求获取该业务的数据的数据请求对应的时间。
可选的,在一些实施例中,N1等于1,该N个第二数据请求中的每个第二数据请求对应一个时间,且该N个第二数据请求中的每个第二数据请求对应的时间均不晚于参考时间,在该N个第二数据请求对应的时间中,该N1个第二数据请求对应的时间与该参考时间的差最小,该参考时间为该网络设备接收到的来自于该第一终端设备的最后一个用于请求获取该业务的数据的数据请求对应的时间。
可选的,在一些实施例中,在该网络设备接收第二数据之前,该方法还包括:该网络设备接收该M个第三终端设备发送的M个第三数据请求;当该M个第三数据请求所请求的数据是该服务器基于该业务提供的数据时,该网络设备将该M个第三数据请求发送至该服务器。
该M个第三终端设备与该第二终端设备请求的是相同业务的数据。换句话说,该网络设备可以在接收了多个终端设备发送的数据请求的情况下,仅对部分终端设备(即该N个第二终端设备)发送的数据请求进行拦截,而不对其余的终端设备(即该M个第三终端设备)发送的数据请求进行拦截。这样,可以利用未拦截的终端设备发送的数据请求获取该服务器提供的该业务的数据。
该服务器基于该M个第三数据请求所提供的该业务的数据可以称为第五数据。该第五数据可以包括该第二数据。例如,该第五数据可以包括两部分数据,第一部分数据和第二部分数据,该第一部分数据可以与该第三数据中的部分数据相同,该第二部分数据可以是该第二数据。又如,该第五数据中的全部数据都可以是该第二数据。
可选的,在一些实施例中,该网络设备缓存第一数据,包括:该网络设备在未缓存该业务的数据的情况下,缓存该第一数据。
可选的,在一些实施例中,在该第一业务为视频业务的情况下,该第一数据能够组成至少一个画面组GOP。
可选的,在一些实施例中,在该第一业务为实时数据业务的情况下,该网络设备确定使用第一存储介质缓存该第一数据;在该第一业务为非实时数据业务的情况下,该网络设备确定使用第二存储介质缓存该第一数据,其中该第一存储介质的访问速度大于该第二存储介质的访问速度。
可选的,在一些实施例中,图6所示方法中的网络设备可以是如图2所示实施例中的网络设备110,第一终端设备可以是如图2所示的实施例中的终端设备101。该N个第二终端设备可以是如图2所示实施例中的终端设备102至终端设备104。
可选的,在另一些实施例中,图6所示方法中的网络设备可以是如图4所示的网络设备,第一终端设备可以是如图4所示方法中的终端设备1,第二终端设备可以是如图4所示方法中的终端设备2。
可选的,在另一些实施例中,图6所示方法中的网络设备可以是如图5所示的网络设备,第一终端设备可以是如图5所示方法中的终端设备1,第二终端设备可以是如图5所示方法中的终端设备2。
图6所示方法中的该网络设备、第一终端设备和第二终端设备的具体功能可以参加图2至图5的描述,在此就不必赘述。
图7是根据本申请实施例提供的网络设备的结构示意图。如图7所示,网络设备700可以包括通信模块710、存储模块720和处理模块730。
通信模块710,用于接收终端设备发送的信息,例如数据请求、业务请求等。
通信模块710,还用于接收来服务器发送的信息,例如业务的数据、数据请求反馈、业务请求反馈等。
存储模块720,用于存储数据。
处理模块730,用于确定如何处理来自于终端设备的信息以及来自于网络设备的信息。
例如,存储模块720,可以用于缓存第一数据,其中该第一数据是服务器为第一终端设备提供的业务的数据。
通信模块710,可以用于接收N个第二终端设备发送的N个第一数据请求,其中N为大于或等于1的正整数。
处理模块730,可以用于当该N个第一数据请求所请求的数据是该服务器基于该业务提供的数据时,拦截该N个第一数据请求。
通信模块710,还可以用于向该N个第二终端设备发送存储模块730缓存的该第一数据。
可选的,通信模块710可以包括第一通信子模块711和第二通信子模块712。第一通信子模块711用于与终端设备进行通信。例如,第一通信子模块711可以接收来自于终端设备的数据请求、业务请求等。需要发送给该终端设备的信息也可以通过第一通信子模块711发送。例如,可以利用第一通信子模块711将来自于服务器的业务的数据发送给终端设备。
可选的,处理模块730可以获取第一通信子模块711接收的终端设备发送的信息。处理模块730可以解析接收到的信息,确定该信息的处理方式。若确定该接收到的信息是数据请求且需要将该数据请求发送至服务器,则可以通过第二通信子模块712将该数据请求发送至服务器。若确定该接收到的信息是数据请求且需要拦截该数据请求,则可以直接将该数据请求删除。若确定该接收到的信息是可以透传的信息(例如保活消息、其他RTMP扩展消息等),则可以通过第二通信子模块712将这些信息发送至服务器。
又如,处理模块730可以获取第二通信子模块712接收的服务器发送的信息。处理模块730可以解析接收到的信息,确定该信息的处理方式。若确定该接收到的信息中包括终端设备请求的业务的数据且确定需要缓存该数据,则可以将该数据发送至存储模块720。存储模块720可以保存接收到的来自于处理模块730的数据。若确定将该数据发送至终端设备,则可以通过第一通信子模块711将该数据发送至终端设备。若确定该接收到的信息中是需要透传给终端设备的信息(例如业务请求反馈),则可以通过第一通信子模块711将该信息发送至终端设备。
处理模块730还可以确定是否需要对终端设备请求的业务的数据进行缓存处理。
处理模块730还可以用于根据流媒体的编码方式,并根据该流媒体的编码方式确定组成一个GOP包括的数据包的数目。处理模块730还可以用于确定缓存的画面组数目T。
处理模块730还可以用于确定对应于业务请求的业务相关信息,并将业务相关信息发送至存储模块720。存储模块720可以保存该业务相关信息。
通信模块710可以由收发器实现,存储模块720可以由存储器实现,处理模块730可以由处理器实现。图7所示的网络设备700可以执行如图2至图6所示实施例中的网络设备执行的各个步骤。
以图2为例,通信模块710可以用于步骤201中接收终端设备101发送的业务请求1,还可以用于步骤202将该业务请求1发送至服务器121。处理模块730可以用于步骤203中确定对应于该业务请求1的业务相关信息。处理模块730还可以用于步骤204中确定对该业务1的数据进行缓存处理。通信模块710还可以用于步骤205中接收终端设备101发送的数据请求1,还可以用于将该数据请求1发送至服务器121。通信模块710还可以用于步骤206中接收服务器发送的数据1,将数据1发送至终端设备101。存储模块720可以用于步骤207中缓存数据1。通信模块710还可以用于步骤208中接收终端设备102至终端设备105发送的业务请求。处理模块730还可以用于步骤209中根据接收到的终端设备102至终端设备105发送的业务请求,确定对应的业务相关信息。处理模块730还可以用于步骤210中确定是否缓存业务请求2至业务请求5所请求的业务的数据。通信模块710还可以用于步骤211中将业务请求2至业务请求5发送至服务器121。通信模块710还可以用于步骤212中接收终端设备102、终端设备103、终端设备104和终端设备105发送的数据请求。处理模块730还可以用于步骤213中确定拦截终端设备102、终端设备103、终端设备104发送的数据请求。通信模块710可以用于步骤213中将终端设备105发送的数据请求发送至服务器121。通信模块710还可以用于步骤214中将缓存的该业务1的数据发送至终端设备102至终端设备104。
信模块710、存储模块720和处理模块730的具体功能和有益效果可以参见图2至图6所示的方法实施例,在此就不必赘述。
图8是根据本申请实施例提供的网络设备的结构框图。如图8所示,网络设备800括处理器801、存储器802。处理器801可以用于对通信协议以及通信数据进行处理,以及对网络设备800进行控制,执行软件程序,处理软件程序的数据等。存储器802主要用于存储软件程序和数据。
为便于说明,图8中仅示出了一个存储器和处理器。在实际的网络设备产品中,可以存在一个或多个处理器和一个或多个存储器。存储器也可以称为存储介质或者存储设备等。存储器可以是独立于处理器设置,也可以是与处理器集成在一起,本申请实施例对此不做限制。
在本申请实施例中,可以将具有收发功能的电路视为网络设备800的收发器803。可选的,可以将收发器803中用于实现接收功能的器件视为接收单元,将收发器803中用于实现发送功能的器件视为发送单元,即收发器803包括接收单元和发送单元。接收单元有时也可以称为接收机、接收器、或接收电路等。发送单元有时也可以称为发射机、发射器或者发射电路等。
处理器801、存储器802和收发器803之间通过内部连接通路互相通信,传递控制和/或数据信号。
上述本申请实施例揭示的方法可以应用于处理器801中,或者由处理器801实现。处理器801可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器801中的硬件的集成逻辑电路或者软件形式的指令完成。
本申请各实施例所述的处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的指令,结合其硬件完成上述方法的步骤。
可选的,在一些实施例中,存储器802可以存储用于执行如图2至图6所示方法中的任一方法中网络设备执行的方法的指令。处理器801可以执行存储器802中存储的指令结合其他硬件(例如存储器802和收发器803)完成如图2至图6所示方法中终端执行的步骤。
例如,存储器802,可以用于缓存第一数据,其中该第一数据是服务器为第一终端设备提供的业务的数据。
收发器803,可以用于接收N个第二终端设备发送的N个第一数据请求,其中N为大于或等于1的正整数。
处理器801,可以用于当该N个第一数据请求所请求的数据是该服务器基于该业务提供的数据时,拦截该N个第一数据请求。
收发器803,还可以用于向该N个第二终端设备发送存储器802缓存的该第一数据。
以图2为例,收发器803可以用于步骤201中接收终端设备101发送的业务请求1,还可以用于步骤202将该业务请求1发送至服务器121。处理器801可以用于步骤203中确定对应于该业务请求1的业务相关信息。处理器801还可以用于步骤204中确定对该业务1的数据进行缓存处理。收发器803还可以用于步骤205中接收终端设备101发送的数据请求1,还可以用于将该数据请求1发送至服务器121。收发器803还可以用于步骤206中接收服务器发送的数据1,将数据1发送至终端设备101。存储器802可以用于步骤207中缓存数据1。收发器803还可以用于步骤208中接收终端设备102至终端设备105发送的业务请求。处理器801还可以用于步骤209中根据接收到的终端设备102至终端设备105发送的业务请求,确定对应的业务相关信息。处理器801还可以用于步骤210中确定是否缓存业务请求2至业务请求5所请求的业务的数据。收发器803还可以用于步骤211中将业务请求2至业务请求5发送至服务器121。收发器803还可以用于步骤212中接收终端设备102、终端设备103、终端设备104和终端设备105发送的数据请求。处理器801还可以用于步骤213中确定拦截终端设备102、终端设备103、终端设备104发送的数据请求。收发器803可以用于步骤213中将终端设备105发送的数据请求发送至服务器121。收发器803还可以用于步骤214中将缓存的该业务1的数据发送至终端设备102至终端设备104。
处理器801、存储器802和收发器803的具体工作过程和有益效果可以参见图2至图6所示实施例中的描述。
本申请实施例还提供一种芯片,该芯片包括收发单元和处理单元。其中,收发单元可以是输入输出电路、通信接口;处理单元为该芯片上集成的处理器或者微处理器或者集成电路。该芯片可以执行上述方法实施例中网络设备侧的方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中网络设备侧的方法。
本申请实施例还提供一种包含指令的计算机程序产品,该指令被执行时执行上述方法实施例中网络设备侧的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种分发数据的方法,其特征在于,所述方法包括:
网络设备根据流媒体的编码方式确定组成一个画面组GOP包括的数据包的数目;
所述网络设备根据GOP的起始位置和所述一个GOP包括的数据包数目缓存第一数据,其中所述第一数据是服务器为第一终端设备提供的流媒体业务的数据,所述第一数据能够组成T个GOP,T为大于或等于1的正整数,T的取值是根据用于缓存数据的存储装置的可用空间大小、流媒体的相关信息和所述服务器的身份信息中的任一个或多个确定的,所述网络设备为接入路由器或者骨干路由器;
所述网络设备接收N个第二终端设备发送的N个第一数据请求,其中N为大于或等于1的正整数;
当所述N个第一数据请求所请求的数据是所述服务器基于所述流媒体业务提供的数据时,所述网络设备拦截所述N个第一数据请求并向所述N个第二终端设备发送缓存的所述第一数据。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一终端设备与所述服务器之间的连接断开时,所述网络设备接收第二数据,其中所述第二数据是所述服务器基于所述流媒体业务提供的数据;
所述网络设备缓存所述第二数据;
向所述N个第二终端设备发送缓存的所述第二数据,所述第二数据与所述第一终端设备与所述服务器连接断开时接收到的数据是连续的。
3.如权利要求2所述的方法,其特征在于,所述第二数据为所述服务器为所述N个第二终端设备中的N1个第二终端设备提供的所述流媒体业务的数据,其中N1为大于或等于1且小N的正整数,或者
所述第二数据为所述服务器为M个第三终端设备提供的所述流媒体业务的数据,M为大于或等于1的正整数。
4.如权利要求2或3所述的方法,其特征在于,在所述网络设备接收第二数据之前,所述方法还包括:
所述网络设备接收所述N个第二终端设备发送的N个第二数据请求,其中所述N个第二数据请求所请求的数据是所述服务器基于所述流媒体业务提供的数据,所述N个第二数据所请求的数据不同于所述N个第一数据请求所请求的数据;
所述网络设备在所述第一终端设备与所述服务器之间的连接断开时,将所述N个第二数据请求中的N1个第二数据请求发送至所述服务器,拦截所述N个第二数据请求中除所述N1个第二数据请求以外的N2个第二数据请求。
5.如权利要求4所述的方法,其特征在于,所述N个第二数据请求中的每个第二数据请求对应一个时间,且所述N个第二数据请求中的每个第二数据请求对应的时间均不晚于参考时间,所述N1个第二数据请求中的每个第二数据请求对应的时间与所述参考时间的差小于预设阈值,所述参考时间为所述网络设备接收到的来自于所述第一终端设备的最后一个用于请求获取所述流媒体业务的数据的数据请求对应的时间。
6.如权利要求4所述的方法,其特征在于,N1等于1,所述N个第二数据请求中的每个第二数据请求对应一个时间,且所述N个第二数据请求中的每个第二数据请求对应的时间均不晚于参考时间,在所述N个第二数据请求对应的时间中,所述N1个第二数据请求对应的时间与所述参考时间的差最小,所述参考时间为所述网络设备接收到的来自于所述第一终端设备的最后一个用于请求获取所述流媒体业务的数据的数据请求对应的时间。
7.如权利要求3所述的方法,其特征在于,在所述网络设备接收第二数据之前,所述方法还包括:
所述网络设备接收所述M个第三终端设备发送的M个第三数据请求;
当所述M个第三数据请求所请求的数据是所述服务器基于所述流媒体业务提供的数据时,所述网络设备将所述M个第三数据请求发送至所述服务器。
8.如权利要求1至3中任一项所述的方法,其特征在于,所述网络设备缓存第一数据,包括:所述网络设备在未缓存所述流媒体业务的数据的情况下,缓存所述第一数据。
9.如权利要求1至3中任一项所述的方法,其特征在于,在所述流媒体业务为实时数据业务的情况下,所述网络设备确定使用第一存储介质缓存所述第一数据;
在所述流媒体业务为非实时数据业务的情况下,所述网络设备确定使用第二存储介质缓存所述第一数据,其中所述第一存储介质的访问速度大于所述第二存储介质的访问速度。
10.一种网络设备,其特征在于,所述网络设备为接入路由器或者骨干路由器,所述网络设备包括:
处理模块,用于根据流媒体的编码方式确定组成一个画面组GOP包括的数据包的数目,并根据GOP的起始位置和所述一个GOP包括的数据包数目确定第一数据,其中所述第一数据是服务器为第一终端设备提供的流媒体业务的数据,所述第一数据能够组成T个GOP,T为大于或等于1的正整数,T的取值是根据用于缓存数据的存储装置的可用空间大小、流媒体的相关信息和所述服务器的身份信息中的任一个或多个确定的;
存储模块,用于缓存所述第一数据;
通信模块,用于接收N个第二终端设备发送的N个第一数据请求,其中N为大于或等于1的正整数;
所述处理模块,还用于当所述N个第一数据请求所请求的数据是所述服务器基于所述流媒体业务提供的数据时,拦截所述N个第一数据请求;
所述通信模块,还用于向所述N个第二终端设备发送所述存储模块缓存的所述第一数据。
11.如权利要求10所述的网络设备,其特征在于,
所述通信模块,还用于在所述第一终端设备与所述服务器之间的连接断开时,接收第二数据,其中所述第二数据是所述服务器基于所述流媒体业务提供的数据;
所述存储模块,还用于缓存所述第二数据;
所述通信模块,还用于向所述N个第二终端设备发送所述存储模块缓存的所述第二数据,所述第二数据与所述第一终端设备与所述服务器断开连接时接收到的数据是连续的。
12.如权利要求11所述的网络设备,其特征在于,所述第二数据为所述服务器为所述N个第二终端设备中的N1个第二终端设备提供的所述流媒体业务的数据,其中N1为大于或等于1且小N的正整数,或者
所述第二数据为所述服务器为M个第三终端设备提供的所述流媒体业务的数据,M为大于或等于1的正整数。
13.如权利要求11或12所述的网络设备,其特征在于,
所述通信模块,还用于在接收所述第二数据之前,接收所述N个第二终端设备发送的N个第二数据请求,其中所述N个第二数据请求所请求的数据是所述服务器基于所述流媒体业务提供的数据,所述N个第二数据请求所请求的数据不同于所述N个第一数据请求所请求的数据;
所述处理模块,还用于在确定所述第一终端设备与所述服务器之间的连接断开的情况下,从所述N个第二数据请求中的确定N1个第二数据请求,拦截所述N个第二数据请求中除所述N1个第二数据请求以外的N2个第二数据请求;
所述通信模块,还用于将所述N1个第二数据请求发送至所述服务器。
14.如权利要求13所述的网络设备,其特征在于,所述N个第二数据请求中的每个第二数据请求对应一个时间,且所述N个第二数据请求中的每个第二数据请求对应的时间均不晚于参考时间,
所述处理模块,具体用于根据所述N个第二数据请求中的每个第二数据请求对应的时间与所述参考时间的差,确定所述N1个第二数据请求,其中所述N1个第二数据请求中的每个第二数据请求与所述参考时间的差小于预设阈值,所述参考时间为所述网络设备接收到来自于所述第一终端设备的最后一个用于请求获取所述流媒体业务的数据的数据请求对应的时间。
15.如权利要求13所述的网络设备,其特征在于,所述N个第二数据请求中的每个第二数据请求对应一个时间,且所述N个第二数据请求中的每个第二数据请求对应的时间均不晚于参考时间,
所述处理模块,具体用于根据所述N个第二数据请求中的每个第二数据请求对应的时间与所述参考时间的差,确定所述N1个第二数据请求,其中所述N1个第二数据请求对应的时间与所述参考时间的差最小,所述参考时间为所述网络设备接收到来自于所述第一终端设备的最后一个用于请求获取所述流媒体业务的数据的数据请求对应的时间。
16.如权利要求12所述的网络设备,其特征在于,所述通信模块,还用于在接收所述第二数据之前,接收所述M个第三终端设备发送的M个第三数据请求;
所述通信模块,还用于当所述M个第三数据请求所请求的数据是所述服务器基于所述流媒体业务提供的数据时,将所述M个第三数据请求发送至所述服务器。
17.如权利要求10至12中任一项所述的网络设备,其特征在于,所述存储模块,具体用于在未缓存所述流媒体业务的数据的情况下,缓存所述第一数据。
18.如权利要求10至12中任一项所述的网络设备,其特征在于,所述存储模块包括第一存储子模块和第二存储子模块,其中所述第一存储子模块的访问速度大于所述第二存储子模块的访问速度,
所述第一存储子模块,用于在所述流媒体业务为实时数据业务的情况下,缓存所述第一数据;
所述第二存储子模块,用于在所述流媒体业务为非实时数据业务的情况下,缓存所述第一数据。
CN201910249517.7A 2019-03-29 2019-03-29 分发数据的方法和网络设备 Active CN110113306B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910249517.7A CN110113306B (zh) 2019-03-29 2019-03-29 分发数据的方法和网络设备
PCT/CN2020/080038 WO2020199929A1 (zh) 2019-03-29 2020-03-18 分发数据的方法和网络设备
EP20782796.5A EP3937434B1 (en) 2019-03-29 2020-03-18 Data distribution method and network device
US17/487,158 US20220014574A1 (en) 2019-03-29 2021-09-28 Data distribution method and network device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910249517.7A CN110113306B (zh) 2019-03-29 2019-03-29 分发数据的方法和网络设备

Publications (2)

Publication Number Publication Date
CN110113306A CN110113306A (zh) 2019-08-09
CN110113306B true CN110113306B (zh) 2022-05-24

Family

ID=67484739

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910249517.7A Active CN110113306B (zh) 2019-03-29 2019-03-29 分发数据的方法和网络设备

Country Status (4)

Country Link
US (1) US20220014574A1 (zh)
EP (1) EP3937434B1 (zh)
CN (1) CN110113306B (zh)
WO (1) WO2020199929A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110113306B (zh) * 2019-03-29 2022-05-24 华为技术有限公司 分发数据的方法和网络设备
CN111211935B (zh) * 2019-12-26 2021-06-25 国家计算机网络与信息安全管理中心 一种高效应用级并发探测实现方法
CN111986348A (zh) * 2020-07-27 2020-11-24 广州亚美智造科技有限公司 视频、车载视频的循环缓存方法、装置和计算机设备
CN112487315A (zh) * 2020-12-17 2021-03-12 中国农业银行股份有限公司 一种数据处理方法和装置
CN112911376A (zh) * 2021-02-01 2021-06-04 华录智达科技股份有限公司 一种基于实时视频播放流畅的播放方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101222347A (zh) * 2008-01-22 2008-07-16 华为技术有限公司 一种实现用户获取网络数据的方法及设备
CN101361326A (zh) * 2007-03-30 2009-02-04 香港应用科技研究院有限公司 一种同时提供数据到同一网络上的两个或多个设备的方法
US8355384B2 (en) * 2010-09-30 2013-01-15 International Business Machines Corporation System and method of handover in wireless network
CN103516731A (zh) * 2012-06-15 2014-01-15 华为技术有限公司 一种缓存服务器的服务方法、缓存服务器及系统
CN105657570A (zh) * 2016-01-18 2016-06-08 北京佰才邦技术有限公司 缓存平台的资源传输方法及装置
CN106453451A (zh) * 2015-08-08 2017-02-22 陈昶宇 共享自适应内容数据链路快取缓存网络技术(sadcn)
CN108429805A (zh) * 2018-03-09 2018-08-21 维沃移动通信有限公司 一种文件下载处理方法、发送终端及接收终端

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133922B1 (en) * 2000-08-07 2006-11-07 The Hong Kong University Of Science And Technology Method and apparatus for streaming of data
US8046432B2 (en) * 2009-04-17 2011-10-25 Microsoft Corporation Network caching for multiple contemporaneous requests
US9438861B2 (en) * 2009-10-06 2016-09-06 Microsoft Technology Licensing, Llc Integrating continuous and sparse streaming data
CN102474468A (zh) * 2010-01-25 2012-05-23 松下电器产业株式会社 半导体系统、中继器及芯片电路
US8645437B2 (en) * 2010-10-29 2014-02-04 At&T Intellectual Property I, L.P. System and method for providing fast startup of a large file delivery
WO2012060995A2 (en) * 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US9215283B2 (en) * 2011-09-30 2015-12-15 Alcatel Lucent System and method for mobility and multi-homing content retrieval applications
US11231690B2 (en) * 2011-11-11 2022-01-25 Rockwell Automation Technologies, Inc. System and method for dynamic meta-data in control and visualization
US9161258B2 (en) * 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
CN105052224B (zh) * 2013-11-22 2019-08-23 华为技术有限公司 视频业务调度方法和装置
US9906590B2 (en) * 2015-08-20 2018-02-27 Verizon Digital Media Services Inc. Intelligent predictive stream caching
US10609175B2 (en) * 2015-12-31 2020-03-31 Hughes Newtwork Systems, LLC Apparatus and method for broadcast/multicast content delivery and opportunistic caching in a broadband communications network
CN107241571B (zh) * 2016-03-29 2019-11-22 杭州海康威视数字技术股份有限公司 一种多媒体文件封装、播放方法及装置
US10356175B2 (en) * 2016-08-16 2019-07-16 Verizon Digital Media Services Inc. Request multiplexing
US10348851B1 (en) * 2018-11-30 2019-07-09 Cloudflare, Inc. Proxy server streaming a resource to multiple requesting client devices while the resource is being received at the proxy server
CN110113306B (zh) * 2019-03-29 2022-05-24 华为技术有限公司 分发数据的方法和网络设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101361326A (zh) * 2007-03-30 2009-02-04 香港应用科技研究院有限公司 一种同时提供数据到同一网络上的两个或多个设备的方法
CN101222347A (zh) * 2008-01-22 2008-07-16 华为技术有限公司 一种实现用户获取网络数据的方法及设备
US8355384B2 (en) * 2010-09-30 2013-01-15 International Business Machines Corporation System and method of handover in wireless network
CN103516731A (zh) * 2012-06-15 2014-01-15 华为技术有限公司 一种缓存服务器的服务方法、缓存服务器及系统
CN106453451A (zh) * 2015-08-08 2017-02-22 陈昶宇 共享自适应内容数据链路快取缓存网络技术(sadcn)
CN105657570A (zh) * 2016-01-18 2016-06-08 北京佰才邦技术有限公司 缓存平台的资源传输方法及装置
CN108429805A (zh) * 2018-03-09 2018-08-21 维沃移动通信有限公司 一种文件下载处理方法、发送终端及接收终端

Also Published As

Publication number Publication date
EP3937434A1 (en) 2022-01-12
US20220014574A1 (en) 2022-01-13
WO2020199929A1 (zh) 2020-10-08
EP3937434B1 (en) 2024-03-06
EP3937434A4 (en) 2022-04-27
CN110113306A (zh) 2019-08-09

Similar Documents

Publication Publication Date Title
CN110113306B (zh) 分发数据的方法和网络设备
US10205971B2 (en) Media data live broadcast method, device, and system
CN109640348B (zh) 多业务mec网络架构、多业务数据流的处理方法及装置
CN110312147B (zh) 业务数据传输的方法、系统与存储介质
US11019367B2 (en) Live video transmission method and system, and apparatus
US20170187986A1 (en) Live streaming media method, publish side live, server and terminal
US20070286121A1 (en) Systems and techniques for selective point-to-multipoint retransmission of multicast frames in a wireless network
US20140098811A1 (en) Method and apparatus for media data delivery control
US20140189064A1 (en) Method and system for adaptive video transmission
CN107517410B (zh) 视频业务质量评估的方法及装置
CN102598700A (zh) 数字音频/视频频道改变的方法及对应装置
US11588868B2 (en) System and method of streaming content between peer devices in a broadcast environment
CN111954028A (zh) 音频数据的投屏方法、装置、设备及存储介质
US7720067B2 (en) Data transfer apparatus and transfer control method
CN109982117B (zh) 视频流数据的中继处理方法、装置、存储介质及网络设备
KR102302772B1 (ko) 레이트 페이싱을 위해 버퍼를 관리하는 장치 및 방법
CN108632681B (zh) 播放媒体流的方法、服务器及终端
US8811478B2 (en) Data transmission method and apparatus
WO2016065638A1 (zh) 一种数据传输方法及设备
WO2022062426A1 (zh) 中继基站的多播调度方法和装置、存储介质及电子装置
CN106534137B (zh) 媒体流传输方法及装置
CN109792444B (zh) 实况内容分发系统中的播出缓冲
WO2019170065A1 (zh) 数据传输方法、装置、网络接入设备和存储介质
US11368389B2 (en) Data transfer method, data transfer device and program
JP6756212B2 (ja) 情報配信装置、中継装置、情報配信プログラム、中継プログラム、情報配信方法、中継方法及び情報配信システム

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
GR01 Patent grant
GR01 Patent grant