CN111901362A - 一种客户端动态cdn切换方法及*** - Google Patents

一种客户端动态cdn切换方法及*** Download PDF

Info

Publication number
CN111901362A
CN111901362A CN202010801622.XA CN202010801622A CN111901362A CN 111901362 A CN111901362 A CN 111901362A CN 202010801622 A CN202010801622 A CN 202010801622A CN 111901362 A CN111901362 A CN 111901362A
Authority
CN
China
Prior art keywords
cdn
client
list
detection
time
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
CN202010801622.XA
Other languages
English (en)
Other versions
CN111901362B (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.)
Shenzhen Moshi Technology Co ltd
Original Assignee
Shenzhen Moshi Technology 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 Shenzhen Moshi Technology Co ltd filed Critical Shenzhen Moshi Technology Co ltd
Priority to CN202010801622.XA priority Critical patent/CN111901362B/zh
Publication of CN111901362A publication Critical patent/CN111901362A/zh
Application granted granted Critical
Publication of CN111901362B publication Critical patent/CN111901362B/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • 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/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/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

Landscapes

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

Abstract

本发明公开了一种客户端动态CDN切换方法及***,所述方法包括:读取本地缓存的CDN探测列表和CDN排序列表,并检查所述CDN探测列表的更新状态,以及读取所述CDN排序列表的过期时间;如果所述CDN探测列表无更新且所述CDN排序列表的过期时间不超过当前时间,则通过所述CDN排序列表选择最优CDN播放视频,否则,对所述CDN探测列表中的CDN依次进行探测;客户端将探测结果上传到服务端;服务端对客户端上传的探测结果进行打分,然后根据打分结果对CDN进行排序,生成CDN排序列表,并返回至客户端;所述客户端对所述CDN排序列表进行缓存,为所述CDN排序列表设置过期时间,并选择最优CDN播放视频。本发明可以有效发挥不同CDN的区域优势,实现CDN的灵活配置。

Description

一种客户端动态CDN切换方法及***
技术领域
本发明涉及互联网连接技术领域,特别涉及一种客户端动态CDN切换方法及***。
背景技术
现有的客户端使用CDN(内容分发网络)的方案,大部分只采用一家CDN供应商,这就导致了以下常见的问题:
1.不同的CDN供应商的节点分布不一样,若设定只选择一家CDN供应商,则对于CDN节点覆盖之外用户的访问体验容易受影响,因此,不同CDN供应商的优势区域得不到整合。
2.在线切换CDN,意味着所有用户访问的节点都发生变化,可能会导致部分用户使用新的CDN节点后访问速度反而变慢。
发明内容
本发明的目的是提供一种客户端动态CDN切换方法及***,旨在解决现有的客户端CDN使用方案无法有效发挥不同的CDN供应商区域优势以及用户无法灵活选择最优CDN的问题。
本发明实施例提供一种客户端动态CDN切换方法,其包括:
当客户端启动时,读取本地缓存的CDN探测列表,并检查所述CDN探测列表的更新状态,以及读取所述CDN探测列表的过期时间;
如果所述CDN探测列表无更新且所述过期时间不超过当前时间,则通过所述CDN探测列表选择最优CDN播放视频,否则,通过预加载视频对所述CDN探测列表中的CDN依次进行探测;
所述客户端将探测结果上传到服务端;
所述服务端根据预定义的规则对客户端上传的探测结果进行打分,然后根据打分结果对CDN进行排序,生成CDN排序列表,并返回至所述客户端;
所述客户端对所述CDN排序列表进行缓存,为所述CDN排序列表设置过期时间,并选择最优CDN播放视频。
进一步,所述通过预加载视频对所述CDN探测列表中的CDN依次进行探测,包括:
所述客户端依次获取所述CDN探测列表中的每一CDN的CDN连通性、DNS连接耗时、建立网络连接耗时、TLS握手耗时、网络传输带宽以及CDN的成本,并进行记录。
进一步,所述服务端根据预定义的规则对客户端上传的探测结果进行打分,包括:
根据CDN的连通性以及总网络连接耗时,赋予相应的分数,其中,所述总网络连接耗时包括DNS连接耗时、建立网络连接耗时、TLS握手耗时和网络传输带宽之和。
进一步,所述根据CDN的连通性以及总网络连接耗时,赋予相应的分数,包括:
当CDN不连通时,赋予相应的CDN零分;当CDN连通时,将CDN的总网络连接耗时与预设的第一阈值、第二阈值进行比较,若总网络连接耗时小于所述第一阈值,则将相应的CDN赋予优秀等级,若总网络连接耗时大于或等于所述第一阈值且小于所述第二阈值,则将相应的CDN赋予及格等级,若总网络连接耗时大于或等于所述第二阈值,则将相应的CDN赋予不及格等级,其中,所述第一阈值小于所述第二阈值。
进一步,所述根据打分结果对CDN进行排序,包括:
将处在优秀等级的CDN排在最前面,将处在及格等级的CDN排在中间位置,将处在不及格等级的CDN舍弃并替换为兜底CDN,并将所述兜底CDN排列最后面;
对于处在优秀等级的CDN,根据成本从低到高的规则进行排序;
对于处在及格等级的CDN,根据总网络连接耗时从低到高的规则进行排序;
进一步,所述客户端对所述CDN排序列表进行缓存,为所述CDN排序列表设置所述过期时间,并选择最优CDN播放视频,包括:
通过HTTP协议的Cache-Control字段对所述CDN排序列表缓存的有效期进行控制;
所述方法还包括:
所述客户端对CDN探测列表的探测结果进行缓存,并通过所述HTTP协议的Cache-Control字段对所述探测结果的缓存的有效期进行控制;
所述客户端定期对本地缓存的CDN探测列表中的CDN进行探测,并更新本地缓存的探测结果,以及将探测结果上传到服务端。
进一步,所述客户端将探测结果上传到服务端,包括:
将用户的信息附在所述探测结果中。
进一步,所述的客户端动态CDN切换方法还包括:
所述服务端根据所述用户的信息对相应的客户端进行切量和分组,得到下发组和不下发组;
所述服务端为下发组的客户端下发相应的CDN排序列表,且不为不下发组下发相应的CDN排序列表;
所述服务端收集下发组客户端上传的测试数据。
本发明实施例提供一种客户端动态CDN切换***,包括客户端和服务端;
所述客户端用于启动时读取本地缓存的CDN探测列表,并检查所述CDN探测列表的更新状态,以及读取所述CDN探测列表的过期时间;
如果所述CDN探测列表无更新且所述过期时间不超过当前时间,则通过所述CDN探测列表选择最优CDN播放视频,否则,通过预加载视频对所述CDN探测列表中的CDN依次进行探测;
所述客户端将探测结果上传到服务端;
所述服务端用于根据预定义的规则对客户端上传的探测结果进行打分,然后根据打分结果对CDN进行排序,生成CDN排序列表,并返回至所述客户端;
所述客户端用于对所述CDN排序列表进行缓存,为所述CDN排序列表设置过期时间,并选择最优CDN播放视频。
进一步,所述客户端包括多CDN质量探测模块和多CDN缓存模块,所述服务端包括多CDN排序模块和多CDN配置模块;
所述多CDN质量探测模块用于依次获取所述CDN探测列表中的每一CDN的CDN连通性、DNS连接耗时、建立网络连接耗时、TLS握手耗时、网络传输带宽以及CDN的成本,并进行记录。
所述多CDN缓存模块用于通过HTTP协议的Cache-Control字段对所述CDN排序列表缓存以及所述探测结果的缓存的有效期进行控制,且定期对本地缓存的CDN探测列表中的CDN进行探测,并更新本地缓存的探测结果;
所述多CDN排序模块用于根据预定义的规则对客户端上传的探测结果进行打分,然后根据打分结果对CDN进行排序,生成CDN排序列表;
所述多CDN配置模块用于根据所述用户的信息对相应的客户端进行切量和分组,得到下发组和不下发组,然后为下发组的客户端下发相应的CDN排序列表,且不为不下发组下发相应的CDN排序列表;
所述多CDN配置模块还用于收集下发组客户端上传的测试数据。
本发明实施例公开了一种客户端动态CDN切换方法及***,所述方法包括:当客户端启动时,读取本地缓存的CDN探测列表,并检查所述CDN探测列表的更新状态和过期时间;如果所述CDN探测列表无更新且不过期,则通过所述CDN探测列表选择最优CDN播放视频,否则,通过预加载视频对所述CDN探测列表中的CDN依次进行探测;所述客户端将探测结果上传到服务端;所述服务端根据预定义的规则对客户端上传的探测结果进行打分,然后根据打分结果对CDN进行排序,生成CDN排序列表,并返回至所述客户端;所述客户端对所述CDN排序列表进行缓存,为所述CDN排序列表设置过期时间,并选择最优CDN播放视频。本发明可以有效发挥不同CDN的区域优势,实现CDN的灵活配置。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种客户端动态CDN切换方法的流程示意图;
图2为本发明实施例提供的一种客户端动态CDN切换***的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1为本发明实施例提供的一种客户端动态CDN切换方法的流程示意图,如图所示,其包括步骤S101~S105:
S101、当客户端启动时,读取本地缓存的CDN探测列表和CDN排序列表,并检查所述CDN探测列表的更新状态,以及读取所述CDN排序列表的过期时间;
S102、如果所述CDN探测列表无更新且所述CDN排序列表的过期时间不超过当前时间,则通过所述CDN排序列表选择最优CDN播放视频,否则,通过预加载视频对所述CDN探测列表中的CDN依次进行探测;
S103、所述客户端将探测结果上传到服务端;
S104、所述服务端根据预定义的规则对客户端上传的探测结果进行打分,然后根据打分结果对CDN进行排序,生成CDN排序列表,并返回至所述客户端;
S105、所述客户端对所述CDN排序列表进行缓存,为所述CDN排序列表设置过期时间,并选择最优CDN播放视频。
在所述步骤S101中,当客户端启动时,读取本地缓存的CDN探测列表和CDN排序列表,也就是客户端尝试选择CDN排序列表中最优的CDN时,并不需要每次都重新探测所述CDN探测列表中CDN的质量,而可以直接读取上一次缓存好的CDN排序列表,从而避免频繁无效的探测(因为CDN列表相对稳定)。所述CDN探测列表和CDN排序列表的缓存应该是服务端上一次下发的相应列表的本地缓存结果,因此,后续步骤中,客户端向服务端请求的CDN排序列表以及服务端下发的新CDN探测列表,都需要进行缓存,而最新的缓存结果则作为当客户端启动时所读取的列表。
检查所述CDN探测列表的更新状态,以及所述CDN排序列表的过期时间,目的是通过这两个动作得到CDN探测列表的更新信息以及后续判断CDN探测列表是否过期,保证客户端配置到最优的CDN。
在所述步骤S102中,如果所述CDN探测列表无更新且所述CDN排序列表的过期时间不超过当前时间,则通过所述CDN探测列表选择最优CDN播放视频,否则,通过预加载视频对所述CDN探测列表中的CDN依次进行探测。
本发明实施例中,客户端首先判断所述CDN探测列表是否有更新,若有,则通过预加载视频对所述CDN探测列表中的CDN依次进行探测,若没有,则判断上次返回的CDN排序列表是否过期,若过期,则通过预加载视频对所述CDN探测列表中的CDN依次进行探测,若没有过期,则通过本地缓存的所述CDN排序列表选择最优CDN播放视频。
所述过期时间是指,客户端对CDN排序列表进行缓存后,都会所述CDN排序列表设置一个过期时间,目的是控制CDN排序列表的有效期,尽可能保证保存在本地的CDN排序列表是当前较新的排序结果。所述服务端可能会下发新的CDN探测列表至客户端,所以客户端需要确认CDN探测列表是否有更新。
所述客户端动态CDN切换方法还包括:
所述服务端根据所述用户的信息对相应的客户端进行切量和分组,得到下发组和不下发组;
所述服务端为下发组的客户端下发相应的CDN探测列表,且不为不下发组下发相应的CDN探测列表;
所述服务端收集下发组客户端上传的测试数据。
可以理解的是,服务端下发的CDN探测列表是灵活可配的,支持各种灰度规则,并且可灵活切量。客户端请求CDN探测列表时,服务端会获取客户端的设备ID、所在区域、随机因子等参数,服务端可以根据这些参数决定对哪些客户端下发不同的CDN探测列表或者不下发CDN探测列表。
服务端在进行CDN在线配置的过程中,收集不同地区客户端的信息及其上传的测试数据,然后依据测试数据确定是否进行推广。例如一个新的CDN供应商上线,服务端在线配置时会根据用户信息进行分组,然后将该CDN加入灰度测试的实验中,将CDN加入到CDN探测列表中,并为某一分组的客户端下发更新的CDN探测列表。这样,这些客户端在启动时就可以检测到CDN探测列表有更新,然后收集这些客户端对CDN探测列表中各CDN的探测结果,从而得到测试数据,然后进行下一步决策,例如是否进行大面积推广下发,或者继续进行优化测试。上述过程即为灰度测试过程,即利用小流量对不同的CDN的性能进行对比测试。
在一实施例中,所述通过预加载视频对所述CDN探测列表中的CDN依次进行探测,包括:
所述客户端依次获取所述CDN探测列表中的每一CDN的CDN连通性、DNS连接耗时、建立网络连接耗时、TLS握手耗时、网络传输带宽以及CDN的成本,并进行记录。
可以理解的是,客户端能迅速探测出给定的CDN探测列表中CDN的质量,为后续所述步骤S104中服务端对CDN进行排序提供参考数据。
所述CDN连通性是指CDN连通与否,其具有两种可能:CDN连通和CDN不连通。所述DNS连接耗时是指将域名和IP地址完成映射的时长。所述建立网络连接耗时则是指传统的建立网络连接的时长,所述TLS握手耗时是指使服务器和客户端实现在应用协议层(如HTTP,SMTP等)可传输或接收到数据的时长,所述网络传输带宽是指单位时间内能传输的数据量,所述CDN的成本是指CDN的费用。
在所述步骤S103中,所述客户端将用户的信息附在所述探测结果中,并上传到服务端,请求新的CDN排序列表。
在所述步骤S104中,所述服务端根据预定义的规则对客户端上传的探测结果进行打分,然后根据打分结果对CDN进行排序,生成CDN排序列表,并返回所述客户端。
在一实施例中,所述服务端根据预定义的规则对客户端上传的探测结果进行打分,包括:
根据CDN的连通性以及总网络连接耗时,赋予相应的分数,其中,所述总网络连接耗时包括DNS连接耗时、建立网络连接耗时、TLS握手耗时和网络传输带宽之和。
实际上,打分的依据即为客户端对CDN探测列表进行质量探测时获得的数据。
在一实施例中,所述根据CDN的连通性以及总网络连接耗时,赋予相应的分数,包括:
当CDN不连通时,赋予相应的CDN零分;当CDN连通时,将CDN的总网络连接耗时与预设的第一阈值、第二阈值进行比较,若总网络连接耗时小于所述第一阈值,则将相应的CDN赋予优秀等级,若总网络连接耗时大于或等于所述第一阈值且小于所述第二阈值,则将相应的CDN赋予及格等级,若总网络连接耗时大于或等于所述第二阈值,则将相应的CDN赋予不及格等级,其中,所述第一阈值小于所述第二阈值。
例如,第一阈值取800ms并设为优秀线,第二阈值取2000ms并设为及格线,可设置如下打分规则:
当CDN不连通时,零分;
当CDN连通时,
令总网络连接耗时=DNS连接耗时+建立网络连接耗时+TLS握手耗时+网络传输带宽;
当总网络连接耗时<800ms时,处在优秀线上,相应CDN为优秀等级;
当800ms≤总网络连接耗时<2000ms时,处在优秀线与及格线之间,相应CDN为及格等级;
当总网络连接耗时≥2000ms,处在及格线下,相应CDN为不及格等级。
需说明的是,其中的网络传输带宽的单位是数据量/单位时间,其与前述的连接耗时等单位不同,所以可预先对所述网络传输带宽的值进行转换,例如转换为所耗费时间/单位数据,即传输单位数据所耗费的时间,这样上述数据均可在同一维度上进行计算。
在一实施例中,所述根据打分结果对CDN进行排序,包括:
将处在优秀等级的CDN排在最前面,将处在及格等级的CDN排在中间位置,将处在不及格等级的CDN舍弃并替换为兜底CDN,并将所述兜底CDN排列最后面;
对于处在优秀等级的CDN,根据成本从低到高的规则进行排序;
对于处在及格等级的CDN,根据总网络连接耗时从低到高的规则进行排序;
即排序规则为:
将优秀等级的CDN放在第一梯队,将及格等级的CDN放在第二梯队,将不及格等级的CDN舍弃并将兜底CDN放在第三梯队;
其中,将处在第一梯队的CDN根据成本从低到高的规则进行排序,将处在第二梯队的CDN根据总网络连接耗时从低到高的规则进行排序。
在所述步骤S105中,当接收到服务端返回的CDN排序列表,所述客户端对首先对该CDN排序列表进行缓存,并为该CDN排序列表设置过期时间,最后选择最优CDN播放视频,其中,服务端返回的CDN排序列表已经是当前最新的CDN排序列表,故可直接将该CDN排序列表进行缓存。
在一实例中,所述客户端对所述CDN排序列表进行缓存,为所述CDN排序列表设置所述过期时间,并选择最优CDN播放视频,包括:
通过HTTP协议的Cache-Control字段对所述CDN排序列表缓存的有效期进行控制;
所述方法还包括:
所述客户端对CDN探测列表的探测结果进行缓存,并通过所述HTTP协议的Cache-Control字段对所述探测结果的缓存的有效期进行控制;
所述客户端定期对本地缓存的CDN探测列表中的CDN进行探测,并更新本地缓存的探测结果,以及将探测结果上传到服务端。
可以理解的是,所述CDN探测列表通常是相对稳定的配置,故客户端启动时,一般来说,CDN探测列表没有更新或没有变化,所以只需根据CDN排序列表是否有过期来确定是否重新探测CDN探测列表中的CDN,从而避免频繁无效的探测。然而,为保证客户端在一定时期内尽可能选择到最优的CDN,需要对CDN定期探测,然后将探测结果缓存至本地并上传到服务端,服务端接收到探测结果后即可重新生成CDN排序列表并下发给客户端,以便客户端选择最优的CDN播放视频。也就是说,对于CDN探测列表长期稳定的情况,本发明实施例还可以采用定期重新探测的策略,即设置固定的时间间隔,客户端每隔一段时间就会重新探测本地的CDN探测列表,重新获取列表中CDN的信息,以选择适合自身的最优CDN。
为方便控制缓存有效期,使用HTTP协议的Cache-Control字段进行控制,此外,对服务端返回的CDN排序列表的缓存,也使用HTTP协议的Cache-Control字段进行控制。
本发明实施例提供一种客户端动态CDN切换***,如图2所示,其包括客户端202和服务端201;
所述客户端202用于启动时读取本地缓存的CDN探测列表,并检查所述CDN探测列表的更新状态,以及读取所述CDN探测列表的过期时间;
所述客户端202还用于如果所述CDN探测列表无更新且所述过期时间不超过当前时间,则通过所述CDN探测列表选择最优CDN播放视频,否则,通过预加载视频对所述CDN探测列表中的CDN依次进行探测;
所述客户端202还用于将探测结果上传到服务端201;
所述服务端201用于根据预定义的规则对客户端202上传的探测结果进行打分,然后根据打分结果对CDN进行排序,生成CDN排序列表,并返回至所述客户端202;
所述客户端202还用于对所述CDN排序列表进行缓存,为所述CDN排序列表设置过期时间,并选择最优CDN播放视频。
关于上述***实施例的技术细节,可参考前述方法实施例的描述,此处不再赘述。
本发明提供的***,使客户端能同时集成多家CDN,客户端综合自身的网络状态和不同厂商的CDN成本,选择网络性能好且成本更低的CDN,并且能够随时适应网络状态的调整和CDN成本的变化,充分发挥不同CDN的区域节点优势,且能实现灵活配置。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种客户端动态CDN切换方法,其特征在于,包括:
当客户端启动时,读取本地缓存的CDN探测列表和CDN排序列表,并检查所述CDN探测列表的更新状态,以及读取所述CDN排序列表的过期时间;
如果所述CDN探测列表无更新且所述CDN排序列表的过期时间不超过当前时间,则通过所述CDN排序列表选择最优CDN播放视频,否则,通过预加载视频对所述CDN探测列表中的CDN依次进行探测;
所述客户端将探测结果上传到服务端;
所述服务端根据预定义的规则对客户端上传的探测结果进行打分,然后根据打分结果对CDN进行排序,生成CDN排序列表,并返回至所述客户端;
所述客户端对所述CDN排序列表进行缓存,为所述CDN排序列表设置过期时间,并选择最优CDN播放视频。
2.如权利要求1所述的客户端动态CDN切换方法,其特征在于,所述通过预加载视频对所述CDN探测列表中的CDN依次进行探测,包括:
所述客户端依次获取所述CDN探测列表中的每一CDN的CDN连通性、DNS连接耗时、建立网络连接耗时、TLS握手耗时、网络传输带宽以及CDN的成本,并进行记录。
3.如权利要求2所述的客户端动态CDN切换方法,其特征在于,所述服务端根据预定义的规则对客户端上传的探测结果进行打分,包括:
根据CDN的连通性以及总网络连接耗时,赋予相应的分数,其中,所述总网络连接耗时包括DNS连接耗时、建立网络连接耗时、TLS握手耗时和网络传输带宽之和。
4.如权利要求3所述的客户端动态CDN切换方法,其特征在于,所述根据CDN的连通性以及总网络连接耗时,赋予相应的分数,包括:
当CDN不连通时,赋予相应的CDN零分;当CDN连通时,将CDN的总网络连接耗时与预设的第一阈值、第二阈值进行比较,若总网络连接耗时小于所述第一阈值,则将相应的CDN赋予优秀等级,若总网络连接耗时大于或等于所述第一阈值且小于所述第二阈值,则将相应的CDN赋予及格等级,若总网络连接耗时大于或等于所述第二阈值,则将相应的CDN赋予不及格等级,其中,所述第一阈值小于所述第二阈值。
5.如权利要求4所述的客户端动态CDN切换方法,其特征在于,所述根据打分结果对CDN进行排序,包括:
将处在优秀等级的CDN排在最前面,将处在及格等级的CDN排在中间位置,将处在不及格等级的CDN舍弃并替换为兜底CDN,并将所述兜底CDN排列最后面;
对于处在优秀等级的CDN,根据成本从低到高的规则进行排序;
对于处在及格等级的CDN,根据总网络连接耗时从低到高的规则进行排序。
6.如权利要求1所述的客户端动态CDN切换方法,其特征在于,所述客户端对所述CDN排序列表进行缓存,为所述CDN排序列表设置所述过期时间,并选择最优CDN播放视频,包括:
通过HTTP协议的Cache-Control字段对所述CDN排序列表缓存的有效期进行控制;
所述方法还包括:
所述客户端对CDN探测列表的探测结果进行缓存,并通过所述HTTP协议的Cache-Control字段对所述探测结果的缓存的有效期进行控制;
所述客户端定期对本地缓存的CDN探测列表中的CDN进行探测,并更新本地缓存的探测结果,以及将探测结果上传到服务端。
7.如权利要求1所述的客户端动态CDN切换方法,其特征在于,所述客户端将探测结果上传到服务端,包括:
将用户的信息附在所述探测结果中。
8.如权利要求7所述的客户端动态CDN切换方法,其特征在于,还包括:
所述服务端根据所述用户的信息对相应的客户端进行切量和分组,得到下发组和不下发组;
所述服务端为下发组的客户端下发相应的CDN探测列表,且不为不下发组下发相应的CDN探测列表;
所述服务端收集下发组客户端上传的测试数据。
9.一种客户端动态CDN切换***,其特征在于,包括客户端和服务端;
所述客户端用于启动时读取本地缓存的CDN探测列表,并检查所述CDN探测列表的更新状态,以及读取所述CDN探测列表的过期时间;
所述客户端还用于如果所述CDN探测列表无更新且所述过期时间不超过当前时间,则通过所述CDN探测列表选择最优CDN播放视频,否则,通过预加载视频对所述CDN探测列表中的CDN依次进行探测;
所述客户端还用于将探测结果上传到服务端;
所述服务端用于根据预定义的规则对客户端上传的探测结果进行打分,然后根据打分结果对CDN进行排序,生成CDN排序列表,并返回至所述客户端;
所述客户端还用于对所述CDN排序列表进行缓存,为所述CDN排序列表设置过期时间,并选择最优CDN播放视频。
10.根据权利要求9所述的客户端动态CDN切换***,其特征在于,所述客户端用于依次获取所述CDN探测列表中的每一CDN的CDN连通性、DNS连接耗时、建立网络连接耗时、TLS握手耗时、网络传输带宽以及CDN的成本,并进行记录。
CN202010801622.XA 2020-08-11 2020-08-11 一种客户端动态cdn切换方法及*** Active CN111901362B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010801622.XA CN111901362B (zh) 2020-08-11 2020-08-11 一种客户端动态cdn切换方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010801622.XA CN111901362B (zh) 2020-08-11 2020-08-11 一种客户端动态cdn切换方法及***

Publications (2)

Publication Number Publication Date
CN111901362A true CN111901362A (zh) 2020-11-06
CN111901362B CN111901362B (zh) 2022-07-01

Family

ID=73228764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010801622.XA Active CN111901362B (zh) 2020-08-11 2020-08-11 一种客户端动态cdn切换方法及***

Country Status (1)

Country Link
CN (1) CN111901362B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112672392A (zh) * 2020-12-14 2021-04-16 武汉市烽视威科技有限公司 内容分发方法、装置、设备及可读存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101047696A (zh) * 2006-03-27 2007-10-03 互联天下科技发展(深圳)有限公司 一种网络流媒体数据播放方法和***
CN101834799A (zh) * 2010-05-06 2010-09-15 工业和信息化部电信传输研究所 移动iptv的服务器选择方法、客户端、服务器和***
CN102546226A (zh) * 2010-12-08 2012-07-04 中国科学院声学研究所 一种基于多节点提供网络服务的***及方法
CN103312667A (zh) * 2012-03-09 2013-09-18 华为技术有限公司 一种信息更新的方法、装置和***
CN107645525A (zh) * 2016-07-21 2018-01-30 阿里巴巴集团控股有限公司 内容分发网络的探测处理、调度方法及相应装置、节点
CN107948684A (zh) * 2017-11-20 2018-04-20 广州虎牙信息科技有限公司 直播间视频播放控制方法、装置及服务器
CN108040085A (zh) * 2017-11-20 2018-05-15 广州华多网络科技有限公司 网络接入方法、装置及服务器
CN108270750A (zh) * 2016-12-30 2018-07-10 北京国双科技有限公司 Cdn切换方法、客户端及服务器
CN108563499A (zh) * 2018-04-27 2018-09-21 努比亚技术有限公司 Cdn服务器切换方法、移动终端及计算机可读存储介质
KR102019654B1 (ko) * 2018-10-02 2019-09-09 전남대학교산학협력단 적응형 스트리밍 서버를 전환하기 위한 방법

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101047696A (zh) * 2006-03-27 2007-10-03 互联天下科技发展(深圳)有限公司 一种网络流媒体数据播放方法和***
CN101834799A (zh) * 2010-05-06 2010-09-15 工业和信息化部电信传输研究所 移动iptv的服务器选择方法、客户端、服务器和***
CN102546226A (zh) * 2010-12-08 2012-07-04 中国科学院声学研究所 一种基于多节点提供网络服务的***及方法
CN103312667A (zh) * 2012-03-09 2013-09-18 华为技术有限公司 一种信息更新的方法、装置和***
CN107645525A (zh) * 2016-07-21 2018-01-30 阿里巴巴集团控股有限公司 内容分发网络的探测处理、调度方法及相应装置、节点
CN108270750A (zh) * 2016-12-30 2018-07-10 北京国双科技有限公司 Cdn切换方法、客户端及服务器
CN107948684A (zh) * 2017-11-20 2018-04-20 广州虎牙信息科技有限公司 直播间视频播放控制方法、装置及服务器
CN108040085A (zh) * 2017-11-20 2018-05-15 广州华多网络科技有限公司 网络接入方法、装置及服务器
CN108563499A (zh) * 2018-04-27 2018-09-21 努比亚技术有限公司 Cdn服务器切换方法、移动终端及计算机可读存储介质
KR102019654B1 (ko) * 2018-10-02 2019-09-09 전남대학교산학협력단 적응형 스트리밍 서버를 전환하기 위한 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SPIRIDON BAKIRAS: "Approximate Server Selection Algorithms in Content Distribution Networks", 《IEEE INTERNATIONAL CONFERENCE ON COMMUNICATION,2005.ICC2005》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112672392A (zh) * 2020-12-14 2021-04-16 武汉市烽视威科技有限公司 内容分发方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN111901362B (zh) 2022-07-01

Similar Documents

Publication Publication Date Title
CN102118376B (zh) 内容分发网络服务器及内容下载方法
CN102137006B (zh) Cdn网络中的数据传输方法及设备
CN108574685B (zh) 一种流媒体推送方法、装置及***
US8510434B2 (en) Method, system and DNS server for load balancing network servers
US6912562B1 (en) Cache invalidation technique with spurious resource change indications
KR101453594B1 (ko) 관리된 멀티미디어 전달 네트워크 및 멀티미디어 서비스 제공 방법
CN102238419B (zh) 播放实况内容的方法和装置
EP2290912A1 (en) Content distributing method, service redirecting method and system, node device
CN102118323B (zh) 内容分发网络服务器及内容下载方法
US9565239B2 (en) Selective access of multi-rate data from a server and/or peer
US20140258523A1 (en) End-to-End Monitoring and Optimization of a Content Delivery Network using Anycast Routing
US20100077099A1 (en) Intelligent content stream bandwidth determination
CN111901362B (zh) 一种客户端动态cdn切换方法及***
CN110661862A (zh) 一种预热资源文件的方法和中心管理***
WO2009144688A2 (en) System, method and device for locally caching data
AU2001271282A1 (en) Reverse content harvester
CN101146110A (zh) 一种播放流媒体的方法、***及装置
WO2012072049A1 (zh) 协作缓存的方法和装置
CN105653473B (zh) 基于二元标识的缓存数据访问方法及装置
CN1937554A (zh) 一种使p2p文件下载流量本地化的方法
CN103595743B (zh) 一种下载应用软件的方法、装置及***
EP1311957A2 (en) BANDWIDTH SAVINGS AND QoS IMPROVEMENT FOR WWW SITES BY CATCHING STATIC AND DYNAMIC CONTENT ON A DISTRIBUTED NETWORK OF CACHES
US20190007522A1 (en) Method of optimizing traffic in an isp network
Sun et al. Fs2you: Peer-assisted semi-persistent online storage at a large scale
KR100643834B1 (ko) 분산 캐시를 갖는 데이터 네트워크를 위한 방법, 시스템및 단말기

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