CN110198332A - 内容分发网络节点的调度方法、装置及存储介质 - Google Patents

内容分发网络节点的调度方法、装置及存储介质 Download PDF

Info

Publication number
CN110198332A
CN110198332A CN201810333199.8A CN201810333199A CN110198332A CN 110198332 A CN110198332 A CN 110198332A CN 201810333199 A CN201810333199 A CN 201810333199A CN 110198332 A CN110198332 A CN 110198332A
Authority
CN
China
Prior art keywords
load
cdn node
cdn
delay
node
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.)
Granted
Application number
CN201810333199.8A
Other languages
English (en)
Other versions
CN110198332B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810333199.8A priority Critical patent/CN110198332B/zh
Publication of CN110198332A publication Critical patent/CN110198332A/zh
Application granted granted Critical
Publication of CN110198332B publication Critical patent/CN110198332B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • 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/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种内容分发网络节点的调度方法、装置及存储介质。其中,该方法包括:确定第一CND节点在当前时刻的延时负载;确定第一CDN节点的总负载为上述延时负载和上报的第一CDN节点的负载的总和;根据第一CDN节点的总负载对第一CDN节点进行调度。本发明解决了相关技术中的由于CDN负载预测不准而导致的无法精准调度CDN的技术问题。

Description

内容分发网络节点的调度方法、装置及存储介质
技术领域
本发明涉及通信领域,具体而言,涉及一种内容分发网络节点的调度方法、装置及存储介质。
背景技术
内容分发网络(Content Delivery Network,简称为CDN)是在现有网络中增加了一层新的网络架构,由遍布全国的高性能的加速节点构成,这些高性能的服务节点会按照一定的缓存测量存储业务内容,当用户需要获取某一业务内容时,用户的请求会被调度至CDN节点上,由该CDN节点为用户提供服务。
由此可知,由CDN节点为用户提供业务的基础是进行CDN的调度,相关技术中的CDN调度系统,主要是采用域名系统(Domain Name System,简称为DNS)调度和直通车302调度。但是采用相关技术中的调度方式会存在如下问题:
DNS调度无负载感知能力,无法控制机房负载和单机负载,在超大突发场景下,极容易出现局部过载、网卡跑满、中央处理器(Central Processing Unit,简称为CPU)跑爆的问题。在超大突发场景下,相关技术中的直通车302调度会存在流量预测不准、负载控制偏差较大的不足。
针对相关技术中的由于CDN负载预测不准而导致的无法精准调度CDN的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种内容分发网络节点的调度方法、装置及存储介质,以至少解决相关技术中的由于CDN负载预测不准而导致的无法精准调度CDN的技术问题。
根据本发明实施例的一个方面,提供了一种内容分发网络节点的调度方法,包括:确定第一内容分发网络CND节点在当前时刻的延时负载;确定所述第一CDN节点的总负载为所述延时负载和上报的所述第一CDN节点的负载的总和;根据所述第一CDN节点的总负载对所述第一CDN节点进行调度。
根据本发明实施例的一个方面,还提供了一种内容分发网络节点的调度装置,包括:第一确定模块,用于确定第一内容分发网络CND节点在当前时刻的延时负载;第二确定模块,用于确定所述第一CDN节点的总负载为所述延时负载和上报的所述第一CDN节点的负载的总和;调度模块,用于根据所述第一CDN节点的总负载对所述第一CDN节点进行调度。
根据本发明实施例的一个方面,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中所述的方法。
根据本发明实施例的一个方面,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行上述任一项中所述的方法。
在本发明实施例中,在对CDN中的CDN节点进行调度时,综合考虑了CDN节点上报的负载以及已经分配给CDN节点但是CDN节点还未上报的延时负载,相对于相关技术中的不考虑CDN节点的负载,或者仅考虑CDN节点上报的负载而言,采用本发明实施例中的方案可以实现精准预测CDN节点的总负载,进而实现根据CDN节点的总负载来对CDN节点进行调度的目的,进而解决了相关技术中的由于CDN负载预测不准而导致的无法精准调度CDN的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的内容分发网络节点的调度方法流程图;
图2是根据本发明实施例的调度环境示意图;
图3是根据本发明实施例的延时感知负载和分配负载与负载上报周期、以及当前时刻点的对应关系示意图;
图4是根据本发明实施例的寻找CDN节点的流程图;
图5是根据本发明实施例的内容分发网络节点的调度装置结构图;
图6是根据本发明实施例的调度系统结构图;
图7是根据本发明实施例的电子装置结构图;
图8是根据本发明实施例的调度结果示意图一;
图9是根据本发明实施例的调度结果示意图二。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明各实施例中的方案可以应用在云直播的超大突发场景下的接入调度,如顶级赛事直播(NBA总决赛、LOL全球总决赛等)、大型庆典(如国庆阅兵、跨年晚会等)、明星直播的接入调度。
根据本发明实施例的一个方面,提供了一种内容分发网络节点的调度方法,如图1所示,该方法包括:
步骤S102,确定第一CND节点在当前时刻的延时负载;
步骤S104,确定第一CDN节点的总负载为上述延时负载和上报的第一CDN节点的负载的总和;
步骤S106,根据第一CDN节点的总负载对第一CDN节点进行调度。
其中,上述调度方法可以应用于调度系统(也可称为精准调度系统)中,该调度系统可以位于如图2所示的调度环境中。
综上可知,在本发明实施例中,在对CDN中的CDN节点进行调度时,综合考虑了CDN节点上报的负载以及已经分配给CDN节点但是CDN节点还未上报的延时负载,相对于相关技术中的不考虑CDN节点的负载,或者仅考虑CDN节点上报的负载而言,采用本发明实施例中的方案可以实现精准预测CDN节点的总负载,进而实现根据CDN节点的总负载来对CDN节点进行调度的目的,进而解决了相关技术中的由于CDN负载预测不准而导致的无法精准调度CDN的技术问题。
下面结合具体实施例对图1中各步骤的操作进行进一步描述。
在上述S102中,确定的延时负载可以是根据当前时刻测得的第一CDN节点的出流延时、网络延时和负载上报周期确定的第一CND节点在当前时刻的延时负载,其中,出流延时为第一CDN输出视频流的延时。其中,该延时负载是已经分配给第一CDN节点的但是由于出流延时、网络延时和负载上报周期的存在而导致该第一CDN节点并未上报的负载,该延时负载中可以包括多种负载,例如,可以包括第一延时负载和第二延时负载,也就是说,在获取第一CDN的延时负载时,需要分别获取第一CDN节点的第一延时负载和第二延时负载。其中,第一延时负载是根据出流延时确定的负载,该第一延时负载为在第一CDN节点的出流延时内,由调度系统分配给第一CDN节点的负载,该第一延时负载也可以称为延时感知负载;第二延时负载是根据网络延时和负载上报周期确定的负载,该第二延时负载为分配给第一CDN节点的除第一CDN节点上报的负载和上述第一延时负载之外的负载,该第二延时负载也可以称为分配负载。也就是说,延时感知负载是因为CDN出流延时的存在,在出流延时内,调度系统分配给CDN的负载,分配负载是因为网络延时、上报周期的存在,调度系统分配给CDN,CDN还未计入上报负载中的负载。其中,延时感知负载和分配负载与负载上报周期、以及当前时刻点的对应关系可以参考图3,在图3中,上报负载A的时刻到上报负载B的时刻构成一个上报周期。
下面分别对如何确定(也可称为预测)第一延时负载和第二延时负载进行说明:
在一个可选的实施例中,根据出流延时确定延时负载中包括的第一延时负载包括:确定出流延时的时长内接入第一CDN节点的终端数、码率以及负载系数的乘积为该第一延时负载,其中,所述负载系数为预先确定的与所述第一CDN节点的总负载和预设可用负载相关的系数。
在另一个可选的实施例中,根据网络延时和负载上报周期确定延时负载中包括的第二延时负载包括:根据网络延时和负载上报周期确定当前时刻距离最近的负载上报周期的结束时刻的时长;确定该当前时刻距离最近的负载上报周期的结束时刻的时长内接入第一CDN节点的终端数、码率以及负载系数的乘积为第二延时负载,其中,该负载系数为预先确定的与第一CDN节点的总负载和预设可用负载相关的系数。
其中,接入第一CDN节点的终端数和码率可以是根据第一CDN节点上报的状态信息确定的,其中,该状态信息包括以下至少之一:第一CDN节点的心跳、网卡带宽、CPU使用率、内存使用率、流路数。
上述的负载系数可以包括以下至少之一:当总负载L1与预设可用负载L2的比值小于第一数值时,该负载系数k为k1;当总负载L1与预设可用负载L2的比值大于或等于第一数值时,该负载系数k=k1×mL1/L2。其中,上述各情况下的k1均是根据第一CDN节点的性能以及所述负载类型确定的适配系数,具体取值可以根据实验获得,可选地,当负载类型为网卡负载时,k1的取值可以是1,当负载类型为CPU负载时,k1取值是由CPU最大负载除以CPU最大可服务的用户设备的数量确定的,例如,当CPU最大负载是80%,CPU最大可服务的用户设备的数量是1000时,k1=80%÷1000=0.0008。m为降速比例,其取值可以是经验值,例如,可以取15。可选地,上述第一数值的取值可以是根据实际情况灵活设置的,可以是0.8,或者是0.85,或者是0.75等。需要说明的是,上述各参数的取值仅是示意性举例,其他合理的取值也是可取的。结合图3可知,当前时刻t第一CDN节点的总负载=第一CDN上报的负载B+预测负载,其中,该预测负载=延时感知负载(即,第一延时负载)+分配负载(即,第二延时负载),该延时感知负载和分配负载对应时间窗口t1,因此,预测负载=t1内接入数×码流×负载系数。通过上述确定方式可以得到当前时刻点t的准确负载,从而为调度决策提供准确的依据。
由上述描述可知,在本发明实施例中,在确定CDN节点的负载时,考虑了视频流的出流延时、网络延时和CDN的上报周期带来的误差,对延时感知负载和分配负载所在的时间窗口t1内的负载进行预测,消除因为出流延时、网络延时和CDN上报周期带来的误差。并且,当实际负载接近于设定负载时,通过负载系数来进行临界降速,降低接入速度,使机器负载不跑超、不过载。
在上述S106中,会根据第一CDN节点的总负载对第一CDN节点进行调度,具体调度过程可以包括:在接收到来自第一用户设备的用于请求第一CDN节点提供第一视频流的第一请求消息之后,且在确定第一CDN节点的总负载未超过第一CDN节点支持的最大负载时,调度第一CDN节点为第一用户设备提供所述第一视频流。也就是说,判断第一CDN节点是否能够被调度的依据是判断第一CDN节点的总负载是否超过第一CDN节点所支持的最大负载,在确定未超过最大负载时,确定第一CDN节点是可用的,即,是可以被调度的节点,在确定超过了最大负载时,确定第一CDN节点不可用,即,是不可以被调度的节点。
需要说明的是,调度系统在接收到第一用户设备的请求之后,会先确定为该第一用户设备提供服务的CDN节点,然后再判断该CDN节点是否可用,其中,可以通过如下方式确定为第一用户设备提供服务的CDN节点:
接收来自上述第一用户设备的第一请求信息,其中,该第一请求信息中携带有第一用户设备的互联网协议(Internet Protocol,简称为IP)信息和所述第一视频流的流标识(Identifier,简称为ID);根据第一用户设备的IP信息确定为第一用户设备提供第一视频流的CDN节点所在的地区;根据第一视频流的流ID确定所述地区中用于提供第一视频流的CDN节点。
在本实施例中,可以通过如下方式根据第一用户设备的IP信息确定为第一用户设备提供第一视频流的CDN节点所在的地区:通过解析IP信息,获取第一用户设备的IP位置以及运营商的信息;确定在IP位置所位于的地区中由运营商提供的CDN节点中是否存在未过载的CDN节点;在确定存在的情况下,确定该IP位置所位于的地区为提供第一视频流的CDN节点所在的地区。
在本实施例中,可以通过如下方式确定在IP位置所位于的地区中由所述运营商提供的CDN节点中是否存在未过载的CDN节点:依次确定在IP位置所位于的城市、省份、区域、国家中由所述运营商提供的CDN节点中是否存在未过载的CDN节点。也就是说,在确定提供第一视频流的CDN节点所在的地区时,是先从小的地区开始寻找,例如,先寻找第一用户设备所位于的城市(例如,深圳市),在确定第一用户设备所位于的城市没有可用的CDN节点时,再扩大寻找范围,即,寻找第一用户设备所位于的省(例如,广东省),在确定第一用户设备所位于的省份没有可用的CDN节点时,再次扩大寻找范围,即寻找第一用户设备所位于的区域(例如,华南地区),在确定第一用户设备所位于的区域没有可用的CDN节点时,继续扩大寻找范围,在全国(例如,中国)范围内寻找,直到找到可用的CDN节点为止,具体寻找过程可参见图4,如图4所示,包括如下步骤:
S401,接收来自用户设备的请求消息,其中,该请求消息用于请求获取某个视频流;
S402,通过IP库解析用户设备的IP信息,获取用户设备的IP位置,运营商信息;
S403,采用哈希hash算法在本市(即,用户设备所在的市)选取一个机房(,一个城市中可以有一个或多个CDN机房,且每个机房中可以有一个或多个CDN节点,后续描述类似,不再赘述);
S404,判断S403中选取的机房是否过载(即,判断机房中的CDN节点是否均过载),若均过载,转至S405,否则,转至S414;
S405,采用hash算法在本省(即,用户设备所在的省)选取一个城市(即,选取除用户设备所在市之外的其他城市);
S406,判断S405中选取的城市的机房是否均过载,若均过载,转至S407,否则,转至S403;
S407,采用hash算法在本区(即,用户设备所在的区域)选取一个省份(即,选取除用户设备所在省份之外的其他省份,邻省优先);
S408,判断S407中选取的省份的机房是否均过载,若均过载,转至S409,否则,转至S405;
S409,采用hash算法选取一个邻区(用户设备所在的区域中的机房均过载,所以,需要选取邻区中的机房);
S410,判断S409中选取的邻区中的机房是否均过载,若均过载,转至S411,否则,转至S407;
S411,在全国选取未过载机房;
S412,判断全国所有机房是否均过载,若均过载,转至S413,否则,转至S414;
S413,进入过载保护状态,拒绝所述用户设备的接入;
S414,在全国未过载的机房中选取一台未过载的机器(也可以称为一个CDN节点),并调度该机器为用户设备提供服务。
由图4可知,在确定为用户设备提供服务的CDN节点时,会先通过IP库解析客户端(即,用户设备)IP信息,获取客户端的IP位置、运营商信息。综合评判用户设备的位置、CDN的负载,按“城市→省份→区域→全国”搜索顺序直到hash得到负载适中的CDN机器(也可以称为CDN节点),并调度该CDN机器为用户设备提供服务。
在本实施例中,可以通过如下方式根据第一视频流的流ID确定地区中用于提供第一视频流的CDN节点:对第一视频流的流ID进行哈希收敛,以得到收敛值;确定该地区中与收敛值对应的CDN节点为用于提供第一视频流的CDN节点,其中,收敛值和CDN节点的对应关系是预先配置的。
在调度所述第一CDN节点为所述第一用户提供所述第一视频流之后,还可能会接收到来自其他用户的请求,下面对其他用户的请求的处理操作进行说明:接收来自第二用户设备的第二请求信息,其中,第二请求信息用于请求获取第二视频流,第二请求信息中携带有第二用户设备的互联网协议IP信息和第二视频流的流标识ID;根据第二用户设备的IP信息确定第二用户设备与第一用户设备位于同一地区,第二视频流的流ID与第一视频流的流ID相同,且在确定第一CDN节点的总负载未超过第一CDN支持的最大负载时,调度第一CDN节点为第二用户设备提供第一视频流。该实现方式主要针对的是其他用户的请求和第一用户设备的请求相同时,会优先考虑调用同一个CDN节点为其他用户提供服务。在实际应用时,还有可能出现其他情况,例如,在接收来自第二用户设备的第二请求信息之后,所述方法还包括:在根据第二用户设备的IP信息确定第二用户设备与第一用户设备位于不同的地区,和/或确定第二视频流的流ID与第一视频流的流ID不同时,调度除第一CDN节点之外的其他CDN节点为第二用户设备提供第二视频流。其中,具体的调度其他CDN节点为第二用户设备提供服务的操作与前述的调度方式类似,在此,不再赘述。
由上述实施例可知,在确定具体的CDN节点时,会先识别视频流的流ID,按流ID进行hash收敛,使同城市的同一路流的请求尽量落在同一机房,提高CDN的命中率,降低CDN的回源率,进而大大降低成本。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种用于实施上述内容分发网络节点的调度方法的内容分发网络节点的调度装置,如图5所示,该装置包括:
第一确定模块52,用于确定第一CND节点在当前时刻的延时负载,其中,该出流延时为第一CDN输出视频流的延时;
第二确定模块54,连接至上述第一确定模块52,用于确定第一CDN节点的总负载为延时负载和上报的第一CDN节点的负载的总和;
调度模块56,连接至上述第二确定模块54,用于根据第一CDN节点的总负载对第一CDN节点进行调度。
可选地,在本实施例中,上述内容分发网络节点的调度装置可以应用于调度系统中,该调度系统可以位于如图2所示的调度环境中,该调度系统对应于图2中的精准调度系统。
在一个可选的实施例中,第一确定模块52可以通过如下方式确定第一CND节点的延时负载:根据当前时刻测得的第一CDN节点的出流延时、网络延时和负载上报周期确定第一CND节点在当前时刻的延时负载,其中,该出流延时为第一CDN输出视频流的延时。
在一个可选的实施例中,第一确定模块52可以通过如下方式确定第一CND节点的延时负载:根据出流延时确定延时负载中包括的第一延时负载,其中,该第一延时负载为在第一CDN节点的出流延时内,分配给第一CDN节点的负载;以及,根据网络延时和负载上报周期确定延时负载中包括的第二延时负载,其中,第二延时负载为分配给第一CDN节点的除第一CDN节点上报的负载和第一延时负载之外的负载。
在一个可选的实施例中,第一确定模块52可以通过如下方式根据出流延时确定延时负载中包括的第一延时负载:确定出流延时的时长内接入第一CDN节点的终端数、码率以及负载系数的乘积为第一延时负载,其中,负载系数为预先确定的与第一CDN节点的总负载和预设可用负载相关的系数。
在一个可选的实施例中,第一确定模块52可以通过如下方式根据网络延时和负载上报周期确定延时负载中包括的第二延时负载:根据网络延时和负载上报周期确定当前时刻距离最近的负载上报周期的结束时刻的时长;确定当前时刻距离最近的负载上报周期的结束时刻的时长内接入第一CDN节点的终端数、码率以及负载系数的乘积为第二延时负载,其中,负载系数为预先确定的与第一CDN节点的总负载和预设可用负载相关的系数。
在一个可选的实施例中,接入第一CDN节点的终端数和码率是根据第一CDN节点上报的状态信息确定的,其中,状态信息包括以下至少之一:第一CDN节点的心跳、网卡带宽、CPU使用率、内存使用率、流路数。
在一个可选的实施例中,负载系数包括以下至少之一:当总负载L1与预设可用负载L2的比值小于第一数值时,负载系数k为k1;当总负载L1与预设可用负载L2的比值大于或等于第一数值时,负载系数k=k1×mL1/L2,其中,m为降速比例;其中,k1是根据第一CDN节点的性能以及负载类型确定的适配系数。
在一个可选的实施例中,调度模块56可以通过如下方式对第一CDN节点进行调度:在接收到来自第一用户设备的用于请求第一CDN节点提供第一视频流的第一请求消息之后,且在确定第一CDN节点的总负载未超过第一CDN节点支持的最大负载时,调度第一CDN节点为第一用户设备提供第一视频流。
在一个可选的实施例中,上述内容分发网络节点的调度装置在根据第一CDN节点的总负载对第一CDN节点进行调度之前,还用于执行以下操作:接收第一请求信息,其中,第一请求信息中携带有第一用户设备的互联网协议IP信息和第一视频流的流标识ID;根据第一用户设备的IP信息确定为第一用户设备提供第一视频流的CDN节点所在的地区;根据第一视频流的流ID确定地区中用于提供第一视频流的CDN节点;确定用于提供第一视频流的CDN节点为第一CDN节点。
在一个可选的实施例中,上述内容分发网络节点的调度装置可以通过如下方式根据第一用户设备的IP信息确定为第一用户设备提供第一视频流的CDN节点所在的地区:通过解析IP信息,获取第一用户设备的IP位置以及运营商的信息;确定在IP位置所位于的地区中由运营商提供的CDN节点中是否存在未过载的CDN节点;在确定存在的情况下,确定IP位置所位于的地区为提供第一视频流的CDN节点所在的地区。
在一个可选的实施例中,上述内容分发网络节点的调度装置可以通过如下方式确定在IP位置所位于的地区中由运营商提供的CDN节点中是否存在未过载的CDN节点:依次确定在IP位置所位于的城市、省份、区域、国家中由运营商提供的CDN节点中是否存在未过载的CDN节点。
在一个可选的实施例中,上述内容分发网络节点的调度装置可以通过如下方式根据第一视频流的流ID确定地区中用于提供第一视频流的CDN节点:对第一视频流的流ID进行哈希收敛,以得到收敛值;确定地区中与收敛值对应的CDN节点为用于提供第一视频流的CDN节点,其中,收敛值和CDN节点的对应关系是预先配置的。
在一个可选的实施例中,上述内容分发网络节点的调度装置在调度第一CDN节点为第一用户提供第一视频流之后,还用于执行以下操作:接收来自第二用户设备的第二请求信息,其中,第二请求信息用于请求获取第二视频流,第二请求信息中携带有第二用户设备的互联网协议IP信息和第二视频流的流标识ID;根据第二用户设备的IP信息确定第二用户设备与第一用户设备位于同一地区,第二视频流的流ID与第一视频流的流ID相同,且在确定第一CDN节点的总负载未超过第一CDN支持的最大负载时,调度第一CDN节点为第二用户设备提供第一视频流。
在一个可选的实施例中,上述内容分发网络节点的调度装置还用于在接收来自第二用户设备的第二请求信息之后,执行以下操作:在根据第二用户设备的IP信息确定第二用户设备与第一用户设备位于不同的地区,和/或确定第二视频流的流ID与第一视频流的流ID不同时,调度除第一CDN节点之外的其他CDN节点为第二用户设备提供第二视频流。
下面结合一个具体的实施例对调度系统的总体架构进行说明:
如图6所示,该调度系统包括状态模块、预测模块(对应于上述的第一确定模块52和第二确定模块54)和调度模块,各模块功能主要如下:
1)状态模块:用于收集CDN上报的机器状态(对应于上述的CDN节点的状态信息),包括机器的心跳、网卡带宽、CPU使用率、内存使用率、流路数。其作用是为调度系统提供决策依据。
2)预测模块:用于CDN负载的汇总、预测。
3)调度模块:用于用户的接入,调度的决策(综合评判用户的位置、CDN负载,按“城市→省份→区域→全国”顺序直到hash得到负载适中的CDN机器)。
其中,各模块交互主要过程为:
CDN(即,CDN中的各个CDN节点)将机器状态信息(包括但不限于:网卡带宽,CPU使用率、内存使用率、流路数等)上报给状态模块,并由状态模块定时将机器状态系想你同步给预测模块(需要说明的是,在实际应用中,也可以由CDN直接将机器状态信息上报给预测模块,在该情况下,调度系统中的状态模块是可选的,即,调度系统中可以包括状态模块,也可以不包括状态模块)。调度模块将分配给CDN的请求信息上报给预测模块,预测模块根据CDN的机器负载状态和调度模块在CDN上报周期内分配的请求信息预测此刻CDN的真实网络负载,为调度决策提供依据。
根据本发明实施例的又一个方面,还提供了一种用于实施上述内容分发网络节点的调度方法的电子装置,如图7所示,该电子装置包括,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,本领域普通技术人员可以理解,图7所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
其中,存储器704可用于存储软件程序以及模块,如本发明实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器702通过运行存储在存储器704内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器704可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器704可进一步包括相对于处理器702远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输设备706用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输设备706包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输设备706为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器704用于存储预设动作条件和预设权限用户的信息、以及应用程序。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取器(Random Access Memory,简称为RAM)、磁盘或光盘等。
如图8所示,在保证稳定的情况下,使用本发明实施例中的方案,可以使得现网峰值网卡流量跑平,机器使用率由原来的60%提高到97%,大大提高了CDN的可使用容量,降低成本。如图9所示,在采用流维度hash收敛接入后,OC回源到中间源的流量降低25%左右,大大降低带宽成本,降低了中间源负载。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (15)

1.一种内容分发网络节点的调度方法,其特征在于,包括:
确定第一内容分发网络CND节点在当前时刻的延时负载;
确定所述第一CDN节点的总负载为所述延时负载和上报的所述第一CDN节点的负载的总和;
根据所述第一CDN节点的总负载对所述第一CDN节点进行调度。
2.根据权利要求1所述的方法,其特征在于,确定第一内容分发网络CND节点在当前时刻的延时负载包括:
根据当前时刻测得的所述第一CDN节点的出流延时、网络延时和负载上报周期确定所述第一CND节点在当前时刻的延时负载,其中,出流延时为所述第一CDN输出视频流的延时。
3.根据权利要求2所述的方法,其特征在于,根据所述第一CDN节点的出流延时、网络延时和负载上报周期确定所述第一CND节点的所述延时负载包括:
根据所述出流延时确定所述延时负载中包括的第一延时负载,其中,所述第一延时负载为在所述第一CDN节点的所述出流延时内,分配给所述第一CDN节点的负载;以及,
根据所述网络延时和所述负载上报周期确定所述延时负载中包括的第二延时负载,其中,所述第二延时负载为分配给所述第一CDN节点的除所述第一CDN节点上报的负载和所述第一延时负载之外的负载。
4.根据权利要求3所述的方法,其特征在于,根据所述出流延时确定所述延时负载中包括的第一延时负载包括:
确定所述出流延时的时长内接入所述第一CDN节点的终端数、码率以及负载系数的乘积为所述第一延时负载,其中,所述负载系数为预先确定的与所述第一CDN节点的总负载和预设可用负载相关的系数。
5.根据权利要求3所述的方法,其特征在于,根据所述网络延时和所述负载上报周期确定所述延时负载中包括的第二延时负载包括:
根据所述网络延时和所述负载上报周期确定所述当前时刻距离最近的负载上报周期的结束时刻的时长;
确定所述当前时刻距离最近的负载上报周期的结束时刻的时长内接入所述第一CDN节点的终端数、码率以及负载系数的乘积为所述第二延时负载,其中,所述负载系数为预先确定的与所述第一CDN节点的总负载和预设可用负载相关的系数。
6.根据权利要求4或5所述的方法,其特征在于,所述负载系数包括以下至少之一:
当所述总负载L1与所述预设可用负载L2的比值小于第一数值时,所述负载系数k为k1;
当所述总负载L1与所述预设可用负载L2的比值大于或等于第一数值时,所述负载系数k=k1×mL1/L2,其中,m为降速比例;
其中,k1是根据所述第一CDN节点的性能以及负载类型确定的适配系数。
7.根据权利要求1至6中任一项所述的方法,其特征在于,根据所述第一CDN节点的总负载对所述第一CDN节点进行调度包括:
在接收到来自第一用户设备的用于请求所述第一CDN节点提供第一视频流的第一请求消息之后,且在确定所述第一CDN节点的总负载未超过所述第一CDN节点支持的最大负载时,调度所述第一CDN节点为所述第一用户设备提供所述第一视频流。
8.根据权利要求7所述的方法,其特征在于,在根据所述第一CDN节点的总负载对所述第一CDN节点进行调度之前,所述方法还包括:
接收所述第一请求信息,其中,所述第一请求信息中携带有所述第一用户设备的互联网协议IP信息和所述第一视频流的流标识ID;
根据所述第一用户设备的IP信息确定为所述第一用户设备提供所述第一视频流的CDN节点所在的地区;
根据所述第一视频流的流ID确定所述地区中用于提供所述第一视频流的CDN节点;
确定用于提供所述第一视频流的CDN节点为所述第一CDN节点。
9.根据权利要求8所述的方法,其特征在于,根据所述第一用户设备的IP信息确定为所述第一用户设备提供所述第一视频流的CDN节点所在的地区包括:
通过解析所述IP信息,获取所述第一用户设备的IP位置以及运营商的信息;
确定在所述IP位置所位于的地区中由所述运营商提供的CDN节点中是否存在未过载的CDN节点;
在确定存在的情况下,确定所述IP位置所位于的地区为提供所述第一视频流的CDN节点所在的地区。
10.根据权利要求8所述的方法,其特征在于,根据所述第一视频流的流ID确定所述地区中用于提供所述第一视频流的CDN节点包括:
对所述第一视频流的流ID进行哈希收敛,以得到收敛值;
确定所述地区中与所述收敛值对应的CDN节点为用于提供所述第一视频流的CDN节点,其中,收敛值和CDN节点的对应关系是预先配置的。
11.根据权利要求8所述的方法,其特征在于,在调度所述第一CDN节点为所述第一用户提供所述第一视频流之后,所述方法还包括:
接收来自第二用户设备的第二请求信息,其中,所述第二请求信息用于请求获取第二视频流,所述第二请求信息中携带有所述第二用户设备的互联网协议IP信息和所述第二视频流的流标识ID;
根据所述第二用户设备的IP信息确定所述第二用户设备与所述第一用户设备位于同一地区,所述第二视频流的流ID与所述第一视频流的流ID相同,且在确定所述第一CDN节点的总负载未超过所述第一CDN支持的最大负载时,调度所述第一CDN节点为所述第二用户设备提供所述第一视频流。
12.根据权利要求11所述的方法,其特征在于,在接收来自第二用户设备的第二请求信息之后,所述方法还包括:
在根据所述第二用户设备的IP信息确定所述第二用户设备与所述第一用户设备位于不同的地区,和/或确定所述第二视频流的流ID与所述第一视频流的流ID不同时,调度除所述第一CDN节点之外的其他CDN节点为所述第二用户设备提供所述第二视频流。
13.一种内容分发网络节点的调度装置,其特征在于,包括:
第一确定模块,用于确定第一内容分发网络CND节点在当前时刻的延时负载;
第二确定模块,用于确定所述第一CDN节点的总负载为所述延时负载和上报的所述第一CDN节点的负载的总和;
调度模块,用于根据所述第一CDN节点的总负载对所述第一CDN节点进行调度。
14.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至12任一项中所述的方法。
15.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至12任一项中所述的方法。
CN201810333199.8A 2018-04-13 2018-04-13 内容分发网络节点的调度方法、装置及存储介质 Active CN110198332B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810333199.8A CN110198332B (zh) 2018-04-13 2018-04-13 内容分发网络节点的调度方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810333199.8A CN110198332B (zh) 2018-04-13 2018-04-13 内容分发网络节点的调度方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN110198332A true CN110198332A (zh) 2019-09-03
CN110198332B CN110198332B (zh) 2021-11-16

Family

ID=67751047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810333199.8A Active CN110198332B (zh) 2018-04-13 2018-04-13 内容分发网络节点的调度方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN110198332B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111245684A (zh) * 2020-01-13 2020-06-05 智者四海(北京)技术有限公司 流量调度方法和装置、电子设备、计算机可读介质
CN113411390A (zh) * 2021-06-16 2021-09-17 北京百度网讯科技有限公司 内容分发网络的调度方法、装置及电子设备
CN113573150A (zh) * 2021-07-02 2021-10-29 交控科技股份有限公司 视频流处理方法、装置、电子设备和存储介质
CN113839795A (zh) * 2020-06-23 2021-12-24 北京金山云网络技术有限公司 Cdn节点的消峰处理方法、装置、电子设备及存储介质
CN114866799A (zh) * 2022-05-11 2022-08-05 北京奇艺世纪科技有限公司 一种服务器调度方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024076A (zh) * 2012-12-31 2013-04-03 乐视网信息技术(北京)股份有限公司 一种应用于对等网络的直播调度系统及方法
CN105049299A (zh) * 2015-08-27 2015-11-11 北京百度网讯科技有限公司 时延状态信息的检测方法及装置、网络架构
CN107733805A (zh) * 2016-08-12 2018-02-23 腾讯科技(深圳)有限公司 业务负载调度方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024076A (zh) * 2012-12-31 2013-04-03 乐视网信息技术(北京)股份有限公司 一种应用于对等网络的直播调度系统及方法
CN105049299A (zh) * 2015-08-27 2015-11-11 北京百度网讯科技有限公司 时延状态信息的检测方法及装置、网络架构
CN107733805A (zh) * 2016-08-12 2018-02-23 腾讯科技(深圳)有限公司 业务负载调度方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111245684A (zh) * 2020-01-13 2020-06-05 智者四海(北京)技术有限公司 流量调度方法和装置、电子设备、计算机可读介质
CN113839795A (zh) * 2020-06-23 2021-12-24 北京金山云网络技术有限公司 Cdn节点的消峰处理方法、装置、电子设备及存储介质
CN113839795B (zh) * 2020-06-23 2023-01-20 北京金山云网络技术有限公司 Cdn节点的消峰处理方法、装置、电子设备及存储介质
CN113411390A (zh) * 2021-06-16 2021-09-17 北京百度网讯科技有限公司 内容分发网络的调度方法、装置及电子设备
CN113411390B (zh) * 2021-06-16 2022-08-09 北京百度网讯科技有限公司 内容分发网络的调度方法、装置及电子设备
CN113573150A (zh) * 2021-07-02 2021-10-29 交控科技股份有限公司 视频流处理方法、装置、电子设备和存储介质
CN114866799A (zh) * 2022-05-11 2022-08-05 北京奇艺世纪科技有限公司 一种服务器调度方法及装置
CN114866799B (zh) * 2022-05-11 2024-04-05 北京奇艺世纪科技有限公司 一种服务器调度方法及装置

Also Published As

Publication number Publication date
CN110198332B (zh) 2021-11-16

Similar Documents

Publication Publication Date Title
CN110198332A (zh) 内容分发网络节点的调度方法、装置及存储介质
US9674279B2 (en) Methods, devices, and systems for allocating service nodes in a network
Chen et al. Reinforcement learning–based QoS/QoE‐aware service function chaining in software‐driven 5G slices
CN102281190B (zh) 负载均衡装置组网方法以及服务器、客户端接入方法
CN109831524B (zh) 一种负载均衡处理方法及装置
CN111385112B (zh) 切片资源部署方法、装置、切片管理器和计算机存储介质
CN110336885B (zh) 边缘节点分配方法、装置、调度服务器及存储介质
US20170078153A1 (en) Software defined topology (sdt) for user plane
CN112512100B (zh) 基于切片优先级的amf重定向方法和新增管理网元
CN110365748A (zh) 业务数据的处理方法和装置、存储介质及电子装置
CN103354528B (zh) 多流同步方法及装置
CN106936877B (zh) 一种内容分发方法、装置及系统
CN108600300A (zh) 日志数据处理方法及装置
CN101355521B (zh) 负载均衡控制方法、通信装置与通信系统
CN106302230B (zh) 一种数据传输方法及装置
CN108924609A (zh) 流媒体数据传输的方法、电子设备、装置及存储介质
CN103152284A (zh) 一种路由器多径输出智能负载均衡的方法及路由器
WO2018028344A1 (zh) 负载处理方法和装置
CN110402567A (zh) 信息为中心的网络中基于中心性的缓存
CN110445723A (zh) 一种网络数据调度方法及边缘节点
CN115086331A (zh) 云设备调度方法、装置及系统、电子设备及存储介质
CN109412976B (zh) 数据传输方法、装置、系统、服务器、电子设备及介质
CN104754601B (zh) 一种隐藏节点检测方法、网络节点及服务器
CN110851275B (zh) 路由节点的负载转移方法及装置
Krishnappa et al. Network capabilities of cloud services for a real time scientific application

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