用于网络译码及高速缓存辅助内容分配的装置及方法与流程

文档序号:11142923阅读:188来源:国知局
用于网络译码及高速缓存辅助内容分配的装置及方法与制造工艺

本申请案主张依据35U.S.C.§119(e)主张2014年1月22日申请的第61/930,072号临时美国申请案的优先权,所述临时美国申请案的全部内容以引用的方式并入本文中。



背景技术:

目前,内容分配网络(CDN)面临与请求式音频/视频流的流行度的增加相关联的容量及效率问题。解决这些问题的一个途径是通过网络高速缓存及网络译码。举例来说,常规内容分配网络(CDN)解决方案采用集中式算法将内容副本放置在网络内的高速缓存位置中。常规解决方案还包含高速缓存替换策略(例如,LRU(最近最少使用)或LFU(最不常用))以局部管理分布式高速缓存以便提高高速缓存命中率。其它常规解决方案使用随机线性网络译码以按群组传输数据包,这可提高容量有限的网络的处理量。

然而,常规网络高速缓存及网络译码解决方案未考虑高速缓存及传输资源的相对效率。这导致每递送对象或文件的次优化成本。此外,常规内容递送解决方案未利用网络高速缓存及网络译码的可能的组合益处。



技术实现要素:

至少一个实例实施例涉及用于包含高速缓存阶段及递送阶段的内容分配的方法及/或装置。

根据至少一个实例实施例,一种用于在网络中传输数据文件的方法包含接收来自目的地装置的针对所述数据文件的数据包的请求。所述方法包含构造冲突图使得由每一目的地装置请求的每一数据包由所述冲突图的多个顶点中的不同顶点表示,所述多个顶点与所述目的地装置相关联。所述方法包含将标签指派到所述多个顶点,每一标签为表示请求数据包的所述目的地装置及存储所述数据包的所述目的地装置高速缓存的索引的集合。所述方法包含将等级指派到所述多个顶点,每一等级指示请求所述数据包的所述目的地装置的数目及存储所述数据包的目的地装置高速缓存的数目。所述方法包含对所述多个顶点从具有最高等级的顶点到具有最低等级的顶点进行排序。所述方法包含基于所述排序对所述多个顶点着色。所述方法包含组合由具有相同颜色的所述多个顶点中的顶点表示的数据包。所述方法包含发送所述经组合的数据包。

根据至少一个实例实施例,每一等级为请求数据包的目的地装置的数目及存储所述所请求的数据包的目的地装置高速缓存的数目的总和。

根据至少一个实例实施例,所述组合在有限域上对由具有相同颜色的所述顶点表示的所述数据包执行线性组合运算。

根据至少一个实例实施例,所述构造包含创建所述多个顶点中的第一者与第二者之间的链路,条件是(i)所述第一及第二顶点不表示同一数据包,及(ii)由所述第一顶点表示的数据包未存储在与所述第二顶点相关联的所述目的地装置的所述高速缓存中,或由所述第二顶点表示的所述数据包未存储在与所述第一顶点相关联的所述目的地装置的所述高速缓存中。

根据至少一个实例实施例,所述着色包含选择具有所述最高等级的未经着色的顶点,且将相同颜色指派到所述选定顶点及所述多个顶点中的未经着色的顶点的子集,条件是(i)所述子集中的所述顶点具有所要标签,所述所要标签基于输入参数且基于所述选定顶点的所述标签,(ii)所述子集中的所述顶点不具有到所述选定顶点的链路,(iii)所述子集中的所述顶点彼此之间不具有链路,且(iv)所述子集的基数等于所述等级的值减一。

根据至少一个实例实施例,所述着色包含迭代地执行所述选择且指派相同颜色操作直到已选择最高等级的所有顶点。

根据至少一个实例实施例,所述着色包含在未经着色的最高等级中的顶点的数目大于或等于最高等级的情况下,对所述未经着色的顶点执行额外着色操作。所述着色包含将在所述额外着色操作之后仍未经着色的所述最高等级的顶点的等级更新到低于所述最高等级的下一个等级。

根据至少一个实例实施例,执行所述着色直到所述冲突图的所述多个顶点被着色。

根据至少一个实例实施例,所述方法包含对所述多个经着色的顶点执行局部搜索以减少用于所述冲突图的颜色的数目。

根据至少一个实例实施例,所述执行局部搜索包含从所述冲突图的现有颜色选择颜色,用所述选定颜色标识顶点,以及在未用选自所述现有颜色的不同颜色对连结到所述经标识的顶点的顶点着色的情况下用所述不同颜色替代所述选定颜色。

应理解,可由通信网络内的网络元件(例如,内容源)来执行以上方法。

附图说明

从以下本文中给出的具体实施方式及附图将更全面理解实例实施例,其中相似元件由相似参考数字表示,其仅以说明的方式给出且因此未限制实例实施例。

图1展示根据至少一个实例实施例的内容分配网络。

图2为说明根据实例实施例的网络元件的实例结构的图式。

图3A到3B为说明图2中的网络元件的实例操作的流程图表。

图4说明根据至少一个实例实施例的递送阶段的实例操作。

图5说明根据至少一个实例实施例的用于构造无向冲突图的实例操作。

图6说明根据至少一个实例实施例的用于对冲突图着色的实例操作。

图7说明根据至少一个实例实施例的经着色的冲突图。

具体实施方式

现将参考附图更全面描述各种实例实施例,其中展示一些实例实施例。

本文揭示详细说明性实施例。然而,出于描述实例实施例的目的,本文揭示的特定结构及功能细节仅为代表性的。然而,本发明可体现在许多替代形式中且不应被解释为仅限于本文所阐述的实施例。

因此,虽然实例实施例能够具有各种修改及替代形式,但实施例仅以图式中实例的方式展示且在本文中将不对其进行详细描述。然而,应理解,不希望将实例实施例限于所揭示的特定形式。相反,实例实施例将涵盖落入本发明范围内的所有修改、等效物及替代。相似数字贯穿图式描述指代相似元件。

虽然可在本文中使用术语第一、第二等等以描述各种元件,但这些元件不应受这些术语限制。这些术语仅用于区分一个元件与另一个元件。举例来说,在不脱离本发明的范围的情况下,第一元件可被称为第二元件,且类似地,第二元件可被称为第一元件。如本文中使用,术语“及/或”包含相关列举项中的一或多者的任何及全部组合。

当称元件为“连接”或“耦合”到另一元件时,其可直接连接或耦合到其它元件或可存在介入元件。相反,当称元件为“直接连接”或“直接耦合”到另一元件时,不存在介入元件。应以相似方式解释用于描述元件之间的关系的其它词语(例如,“位于……之间”对“直接位于……之间”、“邻近”对“直接邻近”等等)。

本文使用的术语仅用于描述特定实施例的目的且不希望为限制性的。如本文所使用,希望单数形式“一”及“所述”还包含复数形式,除非上下文以其它方式明确指示。进一步将理解,当在本文中使用术语“包括”、“包含”时,指定所陈述的特征、整体、步骤、操作、元件及/或组件的存在,但不排除一或多个其它特征、整体、步骤、操作、元件、组件及/或其群组的存在或添加。

还应注意的是,在一些替代实施放案中,所指出的功能/动作可不按照图式中所指出的顺序发生。举例来说,连续展示的两个图式事实上可大体上并发地执行或有时可按相反顺序执行,这取决于所涉及的功能性/动作。

以下描述中提供特定细节以提供对实例实施例的透彻理解。然而,由所属领域的技术人员将理解,可在不具有这些特定细节的情况下实践实例实施例。举例来说,可在框图中展示系统以便不在不必要的细节方面使实例实施例混淆。在其它情况中,无需展示众所周知的过程、结构及技术的不必要的细节以便避免使实例实施例混淆。

在下文描述中,将参考操作的动作及符号表示(例如,以流程图表、流程图、数据流程图表、结构图、框图等等的形式)描述说明性实施例,操作可被实施为程序模块,或功能过程包含例程、程序、对象、组件、数据结构等等的,其执行特定任务或实施特定抽象数据类型且可使用在现有网络元件(例如,基站、基站控制器、NodeB、eNodeB等等)处的现有硬件来实施。此现有硬件可包含一或多个中央处理器(CPU)、数字信号处理器(DSP)、专用集成电路、现场可编程门阵列(FPGA)计算机或类似物。

虽然流程图可将操作描述为循序过程,但可并行、并发或同时执行许多操作。另外,可重新布置操作的顺序。虽然过程可在其操作完成时终止,但还可具有未包含于图式中的额外步骤。过程可对应于方法、函数、程序、子例程、子程序等等。当过程对应于函数时,其终止可对应于函数返回到调用函数或主函数。

如本文揭示,术语“存储媒体”或“计算机可读存储媒体”可表示用于存储数据的一或多个装置,其包含只读存储器(ROM)、随机存取存储器(RAM)、磁性RAM、磁芯存储器、磁盘存储媒体、光存储媒体、快闪存储器装置及/或用于存储信息的其它有形机器可读媒体。术语“计算机可读媒体”可包含(但不限于)便携式或固定存储装置、光存储装置及能够存储、含有或携载指令及/或数据的各种其它媒体。

此外,可由硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实施实例实施例。当在软件、固件、中间件或微码中实施时,执行必要任务的程序代码或代码段可存储在机器或计算机可读媒体(例如计算机可读存储媒体)中。当在软件中实施时,一个专用处理器或多个专用处理器将执行必要任务。

代码段可表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类或指令、数据结构或程序语句的任何组合。可通过传递及/或接收信息、数据、自变量、参数或存储器内容将代码段耦合到另一代码段或硬件电路。可经由任何合适途径(包含存储器共享、消息传递、令牌传递、网络传输等等)传递、转发或传输信息、自变量、参数、数据等等。

图1展示根据至少一个实例实施例的内容分配网络。

如图1中所展示,内容分配网络(CDN)可包含连接到多个目的地装置(或用户装置)200的网络元件151。网络元件151可为用于分配数据文件(例如电影文件)的内容源(例如多播源)。目的地装置200可为从所述内容源请求数据的终端用户装置。举例来说,每一目的地装置200可为允许用户存取所请求数据的装置的部分或与所述装置相关联。举例来说,每一目的地装置200可为机顶盒、个人计算机、平板计算机、移动电话或用于流式音频及视频的任何其它相关联装置。目的地装置200中的每一者可包含用于存储从网络元件151接收的数据的存储器。以下将参考图2及3更详细描述网络元件151及目的地装置200的结构及操作。

图2为说明根据实例实施例的网络元件的实例结构的图式。根据至少一个实例实施例,网络元件151可经配置以用于通信网络(例如,图1的内容分配网络(CDN))。参考图2,网络元件151可包含(例如)数据总线159、发射器152、接收器154、存储器156及处理器158。虽然为简明起见,此处不包含单独描述,但应理解,每一目的地装置200可具有与网络元件151相同或类似的结构。

发射器152、接收器154、存储器156及处理器158可使用数据总线159相互发送数据及/或接收数据。发射器152是包含用于经由到通信网络中的其它网络元件的一或多个无线连接来发射无线信号(其包含(例如)数据信号、控制信号及信号强度/质量信息)的硬件及任何必要软件的装置。

接收器154是包含用于经由到通信网络中的其它网络元件的一或多个无线连接来接收无线信号(其包含(例如)数据信号、控制信号及信号强度/质量信息)的硬件及任何必要软件的装置。

存储器156可为能够存储数据的任何装置,其包含磁性存储装置、快闪存储装置等等。

处理器158可为能够处理数据的任何装置,其包含(例如)专用处理器,所述专用处理器经配置以基于输入数据执行特定操作,或能够执行包含于计算机可读码中的指令。举例来说,应理解,下文所描述的修改及方法可存储在存储器156上且由网络元件151内的处理器158实施。

此外,应理解,可由上文所描述的网络元件151的元件中的一或多者执行下文修改及方法。举例来说,接收器154可执行“接收”、“获取”及类似行为的步骤;发射器152可执行“发射”、“输出”、“发送”及类似行为的步骤;处理器158可执行“确定”、“产生”、“关联”、“计算”及类似行为的步骤;且存储器156可执行“存储”、“保存”及类似行为的步骤。

应理解,实例实施例涉及高速缓存阶段(下文参考图3A及3B所描述)及递送阶段(下文参考图4到7所描述)。

图3到6为说明图2中的网络元件的实例操作的流程图表。举例来说,图3A到3B展示用于执行通信网络中的高速缓存方法的实例操作。图4到6展示用于在已执行高速缓存方法之后递送数据文件的实例操作。

应理解,图3A到3B是用于执行与下文的算法1相关的高速缓存分布方法,其中每一数据文件‘f’被分成‘B’相等大小的数据包(由有限域的符号表示)且属于库‘F’:

算法1:高速缓存算法

在算法1中,‘pu=[pu,1,...pu,m]’是‘u’目的地装置200的高速缓存分配,其中其中u=1、…、n,且0≤pu,f≤1/Mu,u=1、…、n,‘m’是由网络元件151托管的文件的数目,且‘Mu’是在目的地装置‘u’(即,目的地装置200)处的高速缓存的存储容量且Mu,f=pu,fMuB表示在用户u处高速缓存的文件f的数据包。网络元件151执行算法1使得目的地装置‘u’装置200高速缓存文件‘f’的Mu,f=pu,fMuB数据包。此外,算法1的随机性质允许网络装置151执行操作使得,如果两个目的地装置高速缓存给定文件‘f’的相同数目的数据包,那么两个目的地装置200中的每一者高速缓存同一文件‘f’的不同数据包。可由网络元件151根据下文图3A到3B中所描述的操作来实施算法1。

参考图3A,在操作300中,网络元件151可确定多个数据文件的流行度。数据文件可为(例如)视频及/或音频文件。网络元件151可基于来自目的地装置200中的至少一者的针对多个数据文件的请求(例如用户请求)而确定流行度。用户请求可形成数据文件的需求分布。网络元件151可根据所有目的地装置200的需求分布确定流行度。在此情况中,需求分布可遵循齐夫(Zipf)分布。替代地,网络元件151可确定每目的地装置的流行度,其中每一目的地装置200具有相关联的需求分布。

网络元件151可基于来自目的地装置200的针对数据文件的请求的数目确定流行度。举例来说,网络元件151确定由目的地装置200请求100次的数据文件比被请求50次的数据文件具有更高的流行度。因此,流行度可基于哪些数据文件被目的地装置200的用户被最经常请求及查看。

网络元件151可将每一数据文件分成多个数据包。举例来说,网络元件151可将每一数据文件分成相同数目的数据包(例如三个数据包)。因此,在操作中310,网络元件151可基于操作300中确定的流行度而将多个数据文件的随机数据包发送到至少一个目的地装置。举例来说,网络元件151可将每一数据文件的随机数据包发送到目的地装置200使得随机数据包存储(或高速缓存)于每一目的地装置200处。

网络元件151可发送随机数据包使得每一目的地装置200基于确定的流行度及输入参数(例如,目的地装置的数目、流行度分布、每一目的地装置的高速缓存大小、位于网络元件151处的数据文件库的大小等等)接收针对数据文件中至少一者的给定数目的随机数据包。举例来说,如果目的地装置200具有相同大小的高速缓存及相同需求分布(例如,目的地装置是均匀的),那么网络元件151可将相同数目的数据包发送到每一目的地装置200。在一个实例中,假设存在两个目的地装置1及2及两个文件A及B(分成十个数据包)。如果(i)目的地装置1及2以相同频率请求文件A及文件B,且文件A以比文件B更高的频率被两个目的地请求,及(ii)两个目的地装置1及2具有相同高速缓存大小(例如,按数据包计为六个单元),那么网络元件151将执行高速缓存方法,使得两个目的地装置1及2高速缓存文件A的四个数据包及文件B的两个数据包。

如果网络元件151在操作300中基于每个目的地装置确定流行度,那么网络元件151可在操作310中基于每个目的地装置发送随机数据包。举例来说,如果目的地装置200具有不同大小的高速缓存或不同需求分布,那么网络元件151可将不同数目的数据包发送到每一目的地。在此情况中,参考以上的实例,目的地装置1可接收文件A的七个数据包及文件B的三个数据包,而目的地装置2可接收文件A的两个数据包及文件B的五个数据包。此可归因于以下事实:目的地装置1请求文件A比请求文件B多得多,且按数据包计具有十个单元的总高速缓存大小,而目的地2装置请求文件A比请求文件B少得多,且按数据包计具有七个单元的总高速缓存大小。

图3B说明可根据需要在操作300与310之间执行的网络元件151的实例操作。举例来说,在图3A中的操作300之后,网络元件151可基于所确定的流行度对数据文件进行排名。举例来说,在操作301中,网络元件151可使用操作300中所确定的流行度对数据文件从最流行的数据文件到最不流行的数据文件进行排名。

在操作302中,网络元件151可基于排名选择(针对每一数据文件)若干随机数据包。举例来说,网络元件151根据每一数据文件的相应排名及网络的输入参数(例如,目的地装置的数目、流行度分布、每一目的地装置的高速缓存大小、位于网络元件151处的数据文件库的大小等等)中的至少一者针对每一目的地装置及针对数据文件中的每一者选择不同数目的随机数据包。在操作302之后,网络元件151可行进回到图3A中的操作310以发送针对每一数据文件的选定数目的随机数据包。

应了解,操作302可包含网络元件151基于至少一个阈值将经排名的数据文件至少分成第一子集及第二子集。所述至少一个阈值可基于经验证据及/或用户定义。第一子集可含有比第二子集排名更高的数据文件。因此,在操作310中,网络元件151可发送仅针对第一子集中的数据文件的选定数目的随机数据包。这可允许数据包在目的地装置200处的更有效的高速缓存。

应理解,参考图3A及3B描述的操作允许网络的改进的性能,这是因为相较于常规多播技术,方案能够高速缓存更流行文件的更多数据包且增加(或替代地,最大化)由目的地装置200共同高速缓存的每一文件的不同数据包的量且减少传输数目。

结合以上描述的高速缓存方法,本申请案揭示用于递送阶段的实例方法,其中数据文件的请求数据包经递送到目的地装置200。用于递送阶段的实例方法是基于图论。

图4说明根据至少一个实施例的递送阶段的实例操作。参考图4,在操作400中,网络元件151从目的地装置200(或用户装置)接收针对数据文件的数据包的请求。由于网络元件151已执行以上所描述的高速缓存方法,因此每一目的地装置200仅请求未经高速缓存(或存储)的那些数据包作为高速缓存方法的结果。因此,递送阶段包括:向每一目的地装置200提供所请求的文件的丢失部分,即,从目的地装置200的存储器丢失的数据包。

在操作410中,网络元件151构造冲突图。举例来说,网络元件151用多个顶点填入冲突图,使得由每一目的地装置200请求的每一数据包由所述冲突图的多个顶点中的不同顶点表示。因此,即使同一数据包由K个不同用户请求,所述数据包也被表示为冲突图中的K个不同顶点。换句话说,冲突图中的每一顶点与唯一一对目的地装置200及所请求的数据包相关联。因此,可以说,冲突图的每一顶点与目的地装置200相关联且表示由目的地装置200请求的数据包。此外,网络元件151可基于所述多个顶点中的哪些表示同一请求数据包及哪些请求数据包存储在属于目的地装置200的高速缓存中而构造冲突图。下文参考图5及6进一步详细描述操作410。

仍参考图4,在操作420中,网络元件151可将多个顶点指派到原始等级。每一原始等级可指示针对数据包的请求的数目及存储所述数据包的用户目的地200高速缓存的数目。举例来说,每一等级可为请求数据包的用户目的地的数目及存储所述所请求的数据包的用户装置高速缓存的数目的总和。因此,如果数据包由4个目的地装置200请求且目的地装置200中的3个目的地装置正存储所述数据包,那么与那个数据包相关联的顶点的原始等级是3+4=7。

仍参考图4,在操作420中,网络元件151也可将标签指派到多个顶点。每一标签可指示请求对应于顶点的数据包的目的地装置200及存储数据包的目的地装置200高速缓存。举例来说,每一标签可为对应于请求数据包的目的地装置200及对应于存储所请求的数据包的目的地装置200的索引的集合。举例来说,如果数据包由4个目的地装置200(例如,用户1、用户3、用户5、用户10)请求且目的地装置200中的3个目的地装置正存储所请求的数据包(例如,用户2、用户4、用户8),那么与所请求的数据包相关联的顶点的索引的集合是此处,标签的长度是7(即,请求数据包的目的地装置的数目及存储所述数据包的目的地装置高速缓存的数目的总和)。

在操作430中,网络元件151可基于经指派的等级对顶点进行排序。举例来说,网络元件151可从最高等级到最低等级对顶点进行排序来为着色操作做准备。

在操作445中,网络元件151对多个顶点着色作为标记冲突图上的所请求的数据包的途径。举例来说,网络元件151基于操作430中所确定的顺序对多个顶点着色。下文参考图6进一步详细论述操作445。

在操作480中,网络元件151组合由具有相同颜色的顶点表示的所请求的数据包。举例来说,网络元件151对由具有相同颜色的顶点表示的数据包执行异或(XOR)运算(或有限域上的其它线性组合运算)。

在操作490中,网络元件151发送经组合的数据包。举例来说,网络元件151经由多播传输将经组合的数据包发送到目的地装置200。通过在传输之前组合数据包,应理解,根据至少一个实例实施例的递送方法可减少网络元件151的传输数目,这可减少消耗且提高网络效率。应理解,目的地装置200可使用一组XOR运算(或一组其它线性组合运算)接收并解码所传输的经组合的数据包。举例来说,目的地装置200可使用作为密钥的其经高速缓存的数据包解码经组合的数据包。

图5说明根据至少一个实例实施例构造冲突图的实例操作。举例来说,图5进一步详细论述图4的操作410。图5说明用于构造无向冲突图的实例操作。可结合着色方案使用无向冲突图,所述着色方案在本申请案中是指分层贪心着色(HgC)方案。下文参考图6更详细描述此着色方案。

参考图5,在操作511中,网络元件151分析来自在操作410中填入的多个顶点的两个顶点‘Vi’及‘Vj’。在操作513中,如果网络元件确定顶点Vi及Vj表示同一所请求的数据包,那么网络元件151在操作515中不创建两个顶点之间的链路(或边)。接着,网络元件151进行到操作531以确定是否已分析冲突图中的所有顶点。

在操作513中,如果网络元件151确定顶点Vi及Vj不表示同一所请求的数据包,那么网络元件151进行到操作517且检查请求由顶点Vi表示的数据包的与顶点Vi相关联的目的地装置200的高速缓存(或存储器)。在操作519中,如果网络元件151确定表示顶点Vj的数据包在请求由顶点Vi表示的数据包的目的地装置200的高速缓存中不可用,那么在操作521中网络元件151创建顶点Vi与顶点Vj之间的链路。接着,网络元件151进行到操作531以确定是否已分析冲突图中的所有顶点。

在操作519中,如果网络元件151确定表示顶点Vj的数据包在与顶点Vi相关联且请求由顶点Vi表示的数据包的目的地装置200的高速缓存中可用,那么在操作523中网络元件151检查与顶点Vj相关联且请求由顶点Vj表示的数据包的目的地装置200的高速缓存。在操作525中,如果表示顶点Vi的数据包在与顶点Vj相关联且请求由顶点Vj表示的数据包的目的地装置200的高速缓存中不可用,那么网络元件151在进行到操作431之前在操作527中创建顶点Vi与Vj之间的链路以确定是否已分析冲突图中的所有顶点。

在操作525中,如果网络元件151确定表示顶点Vi的数据包在与顶点Vj相关联且请求由顶点Vj表示的数据包的目的地装置200的高速缓存中可用,那么网络元件151在操作529中不创建顶点Vi与Vj之间的链路。接着,网络元件151进行到操作531以确定是否已分析冲突图中的所有顶点。

一旦网络元件151已分析冲突图中的所有顶点,网络元件151就在操作533中返回经构造的冲突图。

鉴于图5,应理解,图4中的构造操作410可通过创建多个顶点中的第一者与第二者之间的链路的操作来总结,条件是(i)第一顶点及第二顶点不表示同一数据包,且(ii)由第一顶点表示的数据包未存储在与第二顶点相关联且请求由第二顶点表示的数据包的用户装置的高速缓存中,或由第二顶点表示的数据包未存储在与第一顶点相关联且请求由第一顶点表示的数据包的用户装置的高速缓存中。

图6说明根据至少一个实例的对冲突图着色的实例操作。图6的操作涉及下文论述的算法。

在以上算法(称为“HgC算法”)中,令f(v)为由冲突图中的顶点v表示的数据包。将U定义为用户目的地装置的集合,其中Qu为由用户目的地装置u请求的所有数据包的集合,且Cu为通过用户目的地装置u高速缓存的所有数据包的集合。我们将Kv称为与顶点“v”相关联的标签。举例来说,如果表示数据包A1(f(v1)=A1)的顶点v1由用户目的地装置1及用户目的地装置2请求且高速缓存于用户目的地装置3及用户目的地装置4中,那么

令Gi={v:|Kv|=i}。我们将Gi视为原始层级(或等级)。我们从层级(或等级)n开始,其为最高层级或等级。首先,我们在以下情况中用相同颜色对Gn中的顶点的子集着色:其具有相同|Kv|=n,且此集合的基数等于n且在冲突图中的此集合的任何两个顶点之间不存在链路(即,以贪心方式搜索具有大小“n”的独立集合)。(注意,具有相同|Kv|且未由冲突图中的链路连接的两个节点等于声明其具有相同Kv)。接着我们合并Gn中的未经着色的顶点的剩余部分与Gn-1(即,Gn-1≡Gn-1∪Gn,HgC算法的行35)以产生新的层级(或等级)n-1。

在层级(或等级)n-1中,对于所有Kv使得|Kv|=n-1,首先,我们在以下情况中用相同颜色对Gn-1中的顶点的子集着色:如果其具有相同|Kv|=n-1,此集合的基数等于n且在此集合的任何两个顶点之间不存在链路。接着我们试图对Gn-1中的顶点的剩余部分着色。

我们用来对Gn-1中的顶点的剩余部分着色的准则是:首先,我们从HgC算法的行19中所展示的W1∈Gn-1随机选择顶点v,其中W1表示具有“较小”|Kv|(v∈Gn-1)或HC,Q中的“较大度数”的顶点的集合,且其中值a∈[0,1]控制W1的大小。举例来说,如果a=0,那么W1表示具有最小|Kv|(v∈Gn-1)的顶点。

其次,我们试图用相同颜色对选定顶点v及顶点着色,其中W2被定义为“i”层级中的未经着色的顶点的集合,其|Kv'|(其中v'∈Gi\{v})以贪心方式“接近”|Kv|。类似于参数a∈[0,1],此接近度由另一参数b∈[0,1]捕获,如算法中的行22中所展示。举例来说,如果b=0,那么我们从顶点v'开始使得|Kv'|-|Kv|被最小化。在此,我们以贪心方式寻找第i层级(或等级)中的至少“i”的大小的独立集合。

在此第二着色程序之后,我们合并未经着色的顶点与下一个层级(或等级)(在此情况中其为Gn-2)的顶点。接着,我们对所有层级(或等级)重复相同程序。

最后,我们使用被称作LocalSearch的函数进一步减少用于HgC算法的行39中的最终冲突图的颜色的数目。由以下算法给出LocalSearch的细节。

在此,令N(j)表示顶点“j”的相邻顶点(不包含顶点“j”)。为了清楚起见,我们使用逗号将用户目的地装置请求A1与用户目的地装置高速缓存A1隔开。此外,c为展示着色的所要向量。HgC算法的复杂度是O(n3B2)。

应理解,图6中说明的操作涉及针对a=0且b=0的HgC算法且对应于作为图4中的操作445的部分执行的操作。最初,网络元件151将‘V’定义为冲突图中的顶点,将V_1定义为经着色的顶点的集合且将V_2定义为未经着色的顶点的集合。在着色操作开始之前,将V_1设置为空集且V_2=V。

在操作600中,网络元件151初始化等级j=n,其中n表示经指派的等级当中的最高等级(回想在操作430中,顶点基于其经指派的等级被排序)。在操作605中,网络元件151选择等级“j”用于分析。

在操作610中,网络元件151选择具有等于j的标签长度的属于等级j的顶点‘v’且将所述顶点标记为正被分析。在操作615中,网络元件151形成顶点的集合‘L’。网络元件151形成具有等级j中的顶点的集合L,所述顶点i)与顶点v具有相同标签长度(即,具有相同|Kv|),ii)未经着色,iii)未彼此连结,及iv)未连结到顶点v。在操作620中,网络元件151确定集合L(其包含顶点v)中的顶点的数目是否等于等级j的数目。如果不等于,那么网络元件151不将颜色指派到集合L中的顶点且进行到操作635以检查是否已分析等级j中的所有顶点。如果集合L中的顶点的数目等于j,那么在操作625中网络元件151选择新颜色(例如,尚未在冲突图中使用的颜色)。在操作630中,网络元件151将新颜色指派到集合L中的顶点,包含集合V_1中的集合L中的顶点,且将集合L中的顶点从集合V_2消除。

接着,在操作635中,网络元件151确定是否已分析具有j的标签长度的等级j中的所有顶点。如果未分析,那么网络元件151返回到操作605。如果已分析,那么网络元件151进行到操作640。

在操作640中,网络元件151确定等级j中的哪些顶点尚未被着色,将这些未经着色的顶点标记为未被分析,选择其标签具有大于或等于等级j的长度的顶点‘w’,且将顶点‘w’标记为已被分析。这等同于上文关于在a=0时对Gn-1中的顶点的剩余部分着色的描述。

在操作645中,网络元件151将集合L复位到空集且形成集合L以包含具有最接近于(或大于或等于)j的长度的标签的等级j中仍未经着色的顶点,其未彼此连结且未连结到顶点“w”。在操作650中,网络元件151确定集合L(其包含顶点“w”)中的顶点的数目是否大于或等于“j”。如果不是,那么网络元件151不对任何顶点着色且进行到操作665以确定是否已分析在等级j处的所有顶点。

在操作650中,如果网络元件151确定集合L中的顶点的总数目大于或等于j,那么在操作655中网络元件151选择新颜色(例如,尚未在冲突图中使用的颜色)。在操作660中,网络元件151将新颜色指派到集合L中的顶点,包含集合V_1中的集合L中的顶点,且将集合L中的顶点从集合V_2消除。在操作665中,网络元件151确定是否已分析等级j处的所有顶点。如果未分析,那么网络元件151返回操作640。如果已分析,那么在操作668中,网络元件151将等级j中的所有未经着色的顶点移动到下一个较低等级以创建新等级j-1,其通过将最初属于等级j-1的所有顶点与属于等级j的未经着色的顶点合并而给出。接下来,在操作670中,网络元件151确定等级j是否等于一(或经指派的等级当中的最低经指派的等级)。

如果等级j等于一(或经指派的等级当中的最低经指派的等级),那么网络元件151进行到操作677。否则,在操作675中,网络元件151设置等级j到j-1且返回到操作605。在操作675中,应理解,网络元件151将保留在等级j中的任何未经着色的顶点放置在下一个最低等级中(即,j-1)中以便确保冲突图的所有顶点被指派颜色。在操作677中,网络元件执行局部搜索以试图减少在冲突图中使用的颜色的总数目。举例来说,网络元件151从冲突图的现有颜色选择颜色,用选定颜色标识顶点,且在未用选自现有颜色的不用颜色对连结到经标识的顶点的顶点着色的情况下,用所述不同颜色替代选定颜色。因此,选定颜色被从现有颜色的集合消除。接着,网络元件151返回经着色的冲突图作为680中的解。

鉴于图6中所展示的操作,还应理解,图6的操作可对应于网络元件151选择具有最高等级的未经着色的顶点,且将相同颜色指派到选定顶点及多个顶点中未经着色的顶点的子集,条件是(i)子集中的顶点具有具所要长度的经指派的标签,所要长度基于输入参数且基于选定顶点的标签的长度,(ii)子集中的顶点不具有到选定顶点的链路,(iii)子集中的顶点彼此之间不具有链路,且(iv)子集的基数等于等级的值减一。应进一步理解,图6的操作对应于网络元件151迭代地执行选择且指派相同颜色操作直到已选择最高等级的所有顶点,以及将仍未经着色的最高等级的顶点的等级更新到低于最高等级的下一个等级。仍应进一步理解,图6的操作由网络元件151执行直到冲突图的所有顶点被着色。仍应进一步理解,等级也可被称为层级,且被指派到等级(或层级)“j”的顶点的集合用Gj表示,使得将保留在等级j中的所有未经着色的顶点放置到等级j-1中的操作等同于执行集合Gj-1。应理解,形成Gj-1的此操作等同于操作668。

图7说明根据至少一个实例实施例的经着色的冲突图。举例来说,图7说明根据图5构造且根据HgC方案及图6的操作而着色的冲突图。

在图7中,我们考虑具有n=3目的地装置(或用户装置)200(即,U={1,2,3})且m=3数据文件A、B、C(即,F={A,B,C})的共享链路网络。每一数据文件被分成四个数据包。举例来说,数据文件A具有{A1,A2,A3,A4}的四个数据包。对于高速缓存阶段(即,参见图3A及3B及相关描述),令用户装置1高速缓存{A1,B1,B2,B3,B4,C2}、用户装置2高速缓存{A1,A2,A3,A4,B1,C2,C3}及用户装置3高速缓存{A1,A2,A3,B1,B2,B3}。接着,令用户装置{1,2,3}分别请求数据文件{A,B,C}。等效地,用户装置1请求A2、A3、A4;用户装置2请求B2、B3、B4;且用户装置3请求C1、C2、C3、C4。接着,我们具有KA2={1,2 3}(逗号用于将请求数据包A2的用户装置与已高速缓存数据包A2的用户装置分离。此处,数据包A2由用户装置1请求,而数据包A2由用户装置2及3高速缓存);KA3={1;2,3};KA4={1;2};KB2={2;1,3};KB2={2;1,3};KB4={2;1};KC2={3;1,2};KC3={3;2};KC4={3}(此处,C4由用户装置3请求且不在任何地方被高速缓存)。

HgC方案工作如下(参考HgC算法及图6)。对于j=n=3,G3={A2,A3,B2,B3,C2},令顶点v=A2,接着可发现B2及C2将在集合L中,因此集合L={A2,B2,C2}。现在由于|L|=n=3,因此我们用黑色对A2、B2、C2着色。接着3=G3\L={A3,B3}。在以下循环中,由于我们无法找到|L|=n=3的集合I,因此我们移动到算法的行21。接着由于我们无法找到|L|≥n=3的集合L,接着我们进行G2=G2∪{A3},且接着G2=G2∪{B3}。因此,我们获得G2={A3,A4,B3,B4,C3}。现在我们行进到算法的行3(即,开始下一个循环)。对于j=j-1=n-1=2,在此循环中,我们首先挑选顶点v=A4,接着我们找到L={A4,B4}。我们用蓝色对{A4,B4}着色(参见图4)。现在G2=G2\{A4,B4}={A3,B3,C3}。接着在算法的行21中,我们找到具有最小长度的Kv的顶点,其为具有KC3={3;2}的C3,接着我们找到L={C3,B3}。我们用红色对L={C3,B3}着色。现在G2=G2\{C3,B3}={A3}。由于不存在L≥2,因此接着我们进行G1=G1∪{A3}={C4,A3}。接着我们行进到下一个循环j=j-1=n-2=1。接着,我们可看见L={C4},且我们用紫色对{C4}着色。接着G1=G1\{C4}={A3}。因此,我们找到L={A3}且我们用棕色对{A3}着色。图7中展示经完全着色的冲突图。

应理解,上文描述的操作允许网络的改进性能,这是因为实例实施例允许能够在目的地装置200处高速缓存更多流行文件的更多数据包,增加(或替代地,最大化)由目的地装置200共同高速缓存的每一文件的不同数据包的量,且允许数据文件的所请求的数据包的完整集合内的经译码的多播传输。通过在传输之前组合数据包,应理解,根据至少一个实例实施例的递送方法及/或装置可减少网络元件151的传输数目,这可减少消耗且提高网络效率。举例来说,在一些所关注的情况中,上文所描述的方法及装置可将传输数目减少高达10倍。如果我们具有无限复杂性,那么增益可为无限的。此外,应了解,每一用户目的地的存储器(或高速缓存)大小可用作带宽多路倍增器。

实例实施例的变型不应被视为脱离实例实施例的精神及范围。所属领域的技术人员将清楚,所有此类变型希望包含于本发明的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1