cdn处理方法和系统
技术领域
1.本技术实施例涉及计算机网络技术领域,尤其涉及一种cdn处理方法、系统、计算机设备及计算机可读存储介质。
背景技术:2.客户端在向cdn(content delivery network,内容分发网络)请求资源时,会经历获取cdn的域名、通过dns进行ip地址(internet protocol address,互联网协议地址)解析、与相应ip地址建立网络连接、发送资源请求、获取并解析资源等过程。
3.由于cdn是一个由多个服务器组成的分布式网络,而一个ip地址对应着一台服务器,因此一个cdn域名将会对应多个ip地址。在进行dns域名解析时,会先查找本地dns缓存,若没有相应缓存,则去重新请求新的ip地址。在客户端完成dns域名解析后,会得到多个ip地址,客户端将逐个对ip地址进行建连尝试,直到与dns域名对应的服务器建连成功。
4.然而,上述的cdn处理方式需要通过dns域名解析才能获取到cdn域名的对应ip地址,这个过程需要一定的请求时间,响应速度较慢,同时,这个过程有失败的可能性,将会导致本次cdn域名访问失败。
技术实现要素:5.本技术实施例的目的是提供一种cdn处理方法、系统、计算机设备及计算机可读存储介质,用于解决以下问题:需要通过dns域名解析才能获取到cdn域名的对应ip地址的方式响应速度较慢,而且会因为dns域名解析失败导致访问失败的问题。
6.本技术实施例的一个方面提供了一种cdn处理方法,应用于网关端,包括:
7.接收客户端发送的资源请求,并根据所述资源请求确定cdn域名;
8.根据所述cdn域名确定至少一个ip地址;其中,所述至少一个ip地址具有一一对应的当前质量参数;
9.根据所述当前质量参数从所述至少一个ip地址中确定目标ip地址;
10.向所述客户端返回携带所述目标ip地址的cdn域名,以使得客户端根据所述目标ip地址与所述cdn域名对应的服务器建立连接。
11.可选地,在根据所述cdn域名确定至少一个ip地址的步骤之前,所述方法还包括:
12.获取所述至少一个ip地址在预设时长内的至少一条访问数据;
13.根据所述在预设时长内的至少一条访问数据,确定所述至少一个ip地址的短期质量参数和长期质量参数;
14.分别根据每一个ip地址的所述短期质量参数和长期质量参数确定所述ip地址对应的当前质量参数。
15.可选地,分别根据每一个ip地址的所述短期质量参数和长期质量参数确定所述ip地址对应的当前质量参数,包括:
16.分别从每一个ip地址的所述短期质量参数和长期质量参数中确定最小值,作为所
述ip地址对应的当前质量参数。
17.可选地,所述访问数据中包含cdn域名、ip地址和访问质量数据,所述根据所述在预设时长内的至少一条访问数据,确定所述至少一个ip地址的短期质量参数和长期质量参数,包括:
18.根据所述cdn域名和所述ip地址对所述至少一条访问数据进行分组;
19.分别根据每一分组中包含的所述访问质量数据,确定每一分组的ip地址对应的短期质量参数;
20.根据所述每一分组的ip地址对应的短期质量参数确定长期质量参数。
21.可选地,所述分别根据每一分组中包含的所述访问质量数据,确定每一分组的ip地址对应的短期质量参数,包括:
22.在所述每一分组中包含的所述访问质量数据的数量达到预设阈值时,根据每一分组中包含的所述访问质量数据,确定每一分组的ip地址对应的短期质量参数。
23.可选地,所述分别根据每一分组中包含的所述访问质量数据,确定每一分组的短期质量参数,还包括:
24.在所述每一分组中包含的所述访问质量数据的数量未达到预设阈值时,确定所述分组的ip地址对应的上一次的质量参数为的所述分组的ip地址对应的短期质量参数。
25.本技术实施例的一个方面又提供了一种cdn处理方法,应用于客户端,包括:
26.向网关端发送资源请求;
27.接收所述网关端响应所述资源请求返回的携带目标ip地址的cdn域名;
28.根据所述目标ip地址与所述cdn域名对应的服务器建立连接。
29.可选地,所述方法还包括:
30.在从与所述cdn域名对应的服务器中下载资源的情况下,采集访问质量数据;
31.将所述访问质量数据上报至所述网关端。
32.可选地,所述访问质量数据包含中包含前第一预设数量的rtt平均值,下载全程的rtt平均值,建立连接后首个数据包的下载时间,建立连接后的前第二预设数量的数据包的下载时间的平均值和网络错误码。
33.可选地,在将所述访问质量数据上报至所述网关端的步骤之前,还包括:
34.根据所述网络错误码,对所述访问质量数据进行筛选以剔除访问出错的数据。
35.本技术实施例的一个方面又提供了一种cdn处理系统,包括客户端和网关端,其中,
36.所述客户端用于,向所述网关端发送资源请求;接收所述网关端响应所述资源请求返回的携带目标ip地址的cdn域名;根据所述目标ip地址与所述cdn域名对应的服务器建立连接;
37.所述网关端用于,接收所述客户端发送的资源请求,并根据所述资源请求确定cdn域名;根据所述cdn域名确定至少一个ip地址;其中,所述至少一个ip地址具有一一对应的当前质量参数;根据所述当前质量参数从所述至少一个ip地址中确定目标ip地址;向所述客户端返回携带所述目标ip地址的cdn域名。
38.本技术实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理
器执行所述计算机程序时实现如上述的cdn处理方法的步骤。
39.本技术实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行所述计算机程序时实现如上述的cdn处理方法的步骤。
40.本技术实施例提供的cdn处理方法、系统、设备及计算机可读存储介质,通过网关下发cdn域名时,会将该cdn域名对应的一个ip地址拼接在域名中,客户端可以直接使用该ip地址与cdn域名对应的服务器建立连接,节约了dns域名解析的请求时间,并规避了dns域名解析失败的情况。
附图说明
41.图1示意性示出了根据本技术实施例的cdn处理方法的应用环境图;
42.图2示意性示出了根据本技术实施例一的cdn处理方法的流程图;
43.图3示意性示出了根据本技术实施例一的cdn处理方法的新增步骤流程图;
44.图4为图3中步骤s304的子步骤流程图;
45.图5为图3中步骤s302的子步骤流程图;
46.图6为图5中步骤s502的子步骤流程图;
47.图7示意性示出了根据本技术实施例二的cdn处理方法的流程图;
48.图8示意性示出了根据本技术实施例二的cdn处理方法的新增步骤流程图;
49.图9示意性示出了根据本技术实施例的一个cdn处理系统的网络拓扑图;
50.图10示意性示出了根据本技术实施例的一个ip访问数据上报模块的处理数据的流程图;
51.图11示意性示出了根据本技术实施例的一个质量参数模块处理数据的流程图;
52.图12示意性示出了根据本技术实施例的一个ip下发模块的处理数据的流程图;
53.图13示意性示出了根据本技术实施例四的cdn处理系统的框图;
54.图14示意性示出了根据本技术实施例五的cdn处理装置的框图;
55.图15示意性示出了根据本技术实施例六的cdn处理装置的框图;及
56.图16示意性示出了根据本技术实施例七的适于实现cdn处理方法的计算机设备的硬件架构示意图。
具体实施方式
57.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
58.需要说明的是,在本技术实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申
请要求的保护范围之内。
59.现有技术中,通过dns域名解析才能获取到cdn域名的对应ip地址的方式,这个过程需要一定的请求时间,响应速度较慢,同时,这个过程有失败的可能性,将会导致本次cdn域名访问失败。此外,由于cdn有负载均衡等策略,因此cdn域名所对应的ip地址变化较为频繁,而dns缓存的更新时机有一定的间隔,因此dns缓存中保存的信息实效性不够强。同时,对客户端来说,无法感知ip地址的质量,在建立连接的过程中,有可能访问到连接质量过差的ip地址,导致后续的资源请求过程耗时更长,失败率更高。
60.有鉴于此,本技术旨在提出一种不需要通过dns域名解析才能获取到cdn域名的对应ip地址的cdn处理方案,网关端可以预先采集客户端的访问数据以确定每个ip地址对应的质量参数,通过接收客户端发送的资源请求,并根据所述资源请求确定cdn域名;根据所述cdn域名确定至少一个ip地址,其中,所述至少一个ip地址具有一一对应的当前质量参数;根据所述当前质量参数从所述至少一个ip地址中确定目标ip地址;向所述客户端返回携带所述目标ip地址的cdn域名,以使得客户端根据所述目标ip地址与所述cdn域名对应的服务器建立连接。从而网关端在下发cdn域名时,会将该cdn域名对应的一个ip地址拼接在cdn域名中,客户端可以直接使用该ip地址进行访问,节约了dns域名的请求时间,并规避了dns域名解析失败的情况。若该ip地址因为某种原因连接失败,可以再重新走dns域名解析以获得相应的ip地址。
61.此外,在本技术的实施例中,网关端下发的ip地址是根据过去段时间内的客户端的访问数据中得到的,即在过去短时间内,该ip地址都是可以被访问的,相比于使用dns域名缓存的方式,实效性更强。同时,网关端下发ip地址前,会从过去的访问数据中,挑选出连接表现较好的ip地址(即根据当前质量参数挑选),避免了客户端访问到劣质ip地址的情况,经过线上实验,在ip地址质量劣化时,本技术的方案能在10分钟以内做出规避,提升了客户端的访问成功率和访问速度,降低了访问延时。
62.本技术提供了多个实施例进一步介绍cdn处理方案,具体参照下文。
63.在本技术的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本技术及区别每一步骤,因此不能理解为对本技术的限制。
64.以下为本技术的术语解释:
65.cdn:内容分发网络(content delivery network),是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题。
66.网关:根据客户端的请求内容,下发相应的cdn网址给客户端。
67.埋点:监听软件应用运行过程中的事件,当需要关注的事件发生时进行判断和捕获,并对相关数据进行上报的过程。
68.数据仓库:保存用户埋点上报数据的数据库。
69.dns:域名系统(domain name system),用于将域名解析为ip地址。
70.图1示意性示出了根据本技术实施例的环境应用示意图。如图1所示:
71.计算机设备10000可以通过网络20000连接客户端30000。
72.计算机设备10000可以提供服务,如进行网络调试,或返回cdn处理结果数据给客
户端30000等。
73.计算机设备10000可以位于诸如单个场所之类的数据中心,或者分布在不同的地理位置(例如,在多个场所)中。计算机设备10000可以经由一个或多个网络20000提供服务。网络20000包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或类似。网络20000可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,其组合等。网络20000可以包括无线链路,诸如蜂窝链路,卫星链路,wi-fi链路等。
74.计算机设备10000可以由一个或多个计算节点实现。一个或多个计算节点可以包括虚拟化的计算实例。虚拟化的计算实例可以包括虚拟机,例如计算机系统,操作系统,服务器等的仿真。计算节点可以基于虚拟映像和/或定义用于仿真的特定软件(例如,操作系统,专用应用程序,服务器)的其他数据,由计算节点加载虚拟机。随着对不同类型的处理服务的需求改变,可以在一个或多个计算节点上加载和/或终止不同的虚拟机。可以实现管理程序来管理同一计算节点上不同虚拟机的使用。
75.客户端30000可以被配置为访问计算机设备10000的内容和服务。客户端30000可以包括任何类型的电子设备,诸如移动设备、平板设备、膝上型计算机、工作站、虚拟现实设备,游戏设备、机顶盒、数字流媒体设备、车辆终端、智能电视、机顶盒等。
76.客户端30000可以将cdn处理结果数据等输出(例如,显示、渲染、呈现)给用户。
77.以下将通过多个实施例介绍网络调试方案。该方案可以通过计算机设备10000实施。
78.实施例一
79.图2示意性示出了根据本技术实施例一的cdn处理方法的流程图。包括步骤s200-s206,其中,
80.步骤s200,接收客户端发送的资源请求,并根据所述资源请求确定cdn域名;
81.在本实施例中,当客户端需要请求资源时,可以向网关端发送资源请求,其中,资源请求中可以携带所需要的资源的id。网关端在接收到客户端发送的资源请求之后,可以根据资源请求中的资源的id确定存储该资源的cdn域名,例如,在用户需要观看一段视频时,通过客户端向网关端发送资源请求,并在资源请求中可以携带所需要观看视频的id,网关端在接收到客户端发送的资源请求之后,视频的id可以确定存储该视频文件的cdn域名。
82.步骤s202,根据所述cdn域名确定至少一个ip地址;其中,所述至少一个ip地址具有一一对应的当前质量参数;
83.在本实施例中,网关端在确定存储客户端所需要的资源的cdn域名之后,进一步确定该cdn域名对应的至少一个ip地址,以及与至少一个ip地址一一对应的当前质量参数。其中,每一个ip地址对应的当前质量参数依据该ip地址在近期预设时长内(如5分钟或10分钟等)的访问数据计算得到,因此,当前质量参数可以反应该ip地址在近期的服务质量。
84.步骤s204,根据所述当前质量参数从所述至少一个ip地址中确定目标ip地址;
85.本实施例中,网关端会根据所述当前质量参数从所述至少一个ip地址中确定目标ip地址,例如,可以从当前质量参数较优的几个ip地址中随机确定一个作为目标ip地址,或者,可以确定当前质量参数最优的ip地址作为目标ip地址等等,具体确定目标ip地址的方式可以按照实际需要进行设置,本技术实施例对此不作限制。
86.步骤s206,向所述客户端返回携带所述目标ip地址的cdn域名,以使得客户端根据所述目标ip地址与所述cdn域名对应的服务器建立连接。
87.本实施例中,网关端可以拼接目标ip地址和cdn域名,向所述客户端返回拼接后的目标ip地址和cdn域名,从而,客户端所接收到的网关端返回的cdn域名中会携带目标ip地址,客户端可以直接提取得到目标ip地址,并根据该目标ip地址与cdn域名对应的服务器建立连接,从而节约了dns域名解析的请求时间,并规避了dns域名解析失败的情况。
88.以下提供几个可选地实施例,以进行优化所述cdn处理方法,具体如下:
89.在本技术的一种优选实施例中,如图3所示,在所述步骤s202之前,还包括步骤s300-s304:其中,步骤s300,获取所述至少一个ip地址在预设时长内的至少一条访问数据;步骤s302,根据所述在预设时长内的至少一条访问数据,确定所述至少一个ip地址的短期质量参数和长期质量参数;步骤s304,分别根据每一个ip地址的所述短期质量参数和长期质量参数确定所述ip地址对应的当前质量参数。
90.本实施例中,客户端在访问cdn域名对应的服务器时,可以采集访问数据,并将这些数据上报至网关端。其中,每一条访问数据可以包含cdn域名、ip地址和访问质量数据等数据,该访问质量数据可以反应cdn域名对应的服务器中下载资源时的质量情况。
91.其中,预设时长为预先设定的时间长度,如5分钟或10分钟等。在具体实现中,网关端可以设置一定时器,每隔一定周期(如2分钟)可以根据在预设时长内的至少一条访问数据,确定至少一个ip地址分别对应的短期质量参数和长期质量参数,进而,根据每一个ip地址的短期质量参数和长期质量参数确定该ip地址对应的当前质量参数。其中,短期质量参数用于反应该ip地址在短期内的访问质量,长期质量参数用于反应该ip地址在一段较长时间内的访问质量。
92.在本技术的一种优选实施例中,访问质量数据包含中包含前第一预设数量的rtt平均值,下载全程的rtt平均值,建立连接后首个数据包的下载时间,建立连接后的前第二预设数量的数据包的下载时间的平均值和网络错误码。其中,第一预设数量为预先设定的一个数值,例如第一预设数量为5,则前第一预设数量的rtt平均值为前5个rtt平均值;第二预设数量为预先设定的另一个数值,例如第二预设数量为50,则建立连接后的前第二预设数量的数据包的下载时间的平均值为前50个数据包的下载时间的平均值;网络错误码用于表征客户端在访问定cdn域名对应的服务器时网络出错的情况。
93.作为一种示例,访问质量数据可以包含如下字段:
94.1.用于区分类别的相关数据,主要包括:本次访问的cdn域名,本次访问的cdn域名的ip地址。
95.2.访问该ip地址时的质量数据,主要包括:
96.first_five_rtt:tcp连接的前5个rtt的平均值;
97.srtt:tcp连接的全程rtt的平均值;
98.first_packet_time:建立连接后首个数据包的下载时间;
99.first_fifty_packet_time:建立连接后的前第二预设数量的数据包的下载时间的平均值;
100.network_error:网络错误码。
101.在本技术的一种优选实施例中,如图4所示,所述步骤s304可以包括如下步骤
s400:分别从每一个ip地址的所述短期质量参数和长期质量参数中确定最小值,作为所述ip地址对应的当前质量参数。
102.在本实施例中,可以设定质量参数越小则该ip地址在近期的服务质量越差,质量参数越大则该ip地址在近期的服务质量越好。在具体实现中,可以利用最小值函数,从短期质量参数和长期质量参数中确定最小值,作为ip地址对应的当前质量参数。
103.在本技术的一种优选实施例中,所述访问数据中包含cdn域名、ip地址和访问质量数据,如图5所示,所述步骤s302可以包括如下步骤s500-s504,其中,步骤s500,根据所述cdn域名和所述ip地址对所述至少一条访问数据进行分组;步骤s502,分别根据每一分组中包含的所述访问质量数据,确定每一分组的ip地址对应的短期质量参数;步骤s504,根据所述每一分组的ip地址对应的短期质量参数确定长期质量参数。
104.在本实施例中,网关端可以根据访问数据中的cdn域名和ip地址对所述至少一条访问数据进行分组,将每一个ip地址下的所有访问数据作为一组。进一步的,分别根据每一分组中包含的所述访问质量数据,确定每一分组的ip地址对应的短期质量参数,根据每一分组的ip地址对应的短期质量参数确定长期质量参数。
105.在本技术的一种优选实施例中,如图6所示,所述步骤s502可以包括如下步骤s600:在所述每一分组中包含的所述访问质量数据的数量达到预设阈值时,根据每一分组中包含的所述访问质量数据,确定每一分组的ip地址对应的短期质量参数。
106.其中,预设阈值为预先设定的访问数据的数量值。作为一种实例,设置预设阈值为300,则在计算短期质量参数时,首先判断每一分组中包含的访问质量数据的数量是否达到300时,若是分组中包含的访问质量数据的数量达到300,则根据每一分组中包含的所述访问质量数据,确定每一分组的ip地址对应的短期质量参数。具体的,预先通过机器学习技术训练生产一个ip评价模型,然后将访问质量数据输入到ip评价模型中,并输出一个短期质量参数值。例如,将过去五分钟的网络质量数据中包含的first_five_rtt、srtt、first_packet_time、first_fifty_packet_time的平均值输入模型,输出数据为短期质量参数,该短期质量参数反映了过去五分钟的该ip地址对应的服务器的服务质量。
107.在本实施例中,为了保证得分的可信度,增加了数据总条数的阈值,只有达到预设阈值的分组才能用于质量参数的计算,从而对于某ip地址大面积发生网络错误的场景,由于该预设阈值的存在,最后参与质量参数计算的数据条数是不够的,因此不会被计算质量参数,避免将该ip地址分配给用户。
108.在本技术的一种优选实施例中,如图6所示,所述步骤s502还可以包括如下步骤s602:在所述每一分组中包含的所述访问质量数据的数量未达到预设阈值时,确定所述分组的ip地址对应的上一次的质量参数为的所述分组的ip地址对应的短期质量参数。
109.在本实施例中,在分组中包含的访问质量数据的数量未达到预设阈值时,确定分组的ip地址对应的上一次的质量参数为的该分组的ip地址对应的短期质量参数。此外,还可以设置一个质量参数失效时间,例如10分钟,则若是在10分钟之内,分组中包含的访问质量数据的数量都未达到预设阈值,则表示一直每一对该ip地址的质量参数进行重新计算,此时,可以设置该ip地址的质量参数失效。
110.在本实施例中,为了感知ip地址对应的服务器的服务质量波动,防止将长期质量较差而只有短暂时间质量较好的ip分配给客户端,还可以计算得到一个长期质量参数。通
过获取每一分组的ip地址对应的上一次的短期质量参数;根据上一次的短期质量参数和本次的短期质量参数,确定长期质量参数。
111.作为一种示例,可以基于jacobson/karels算法(rfc2988),提供了对ip的历史得分波动性的感知算法,该算法的具体细节如下:
112.i.smoothscore=(1-α)*lastsmoothscore+α*currscore;
113.ii.scorevar=(1-β)*lastscorevar+β*|currscore
–
smoothscore|;
114.iii.
115.其中,currscore为当前计算出来的短期质量参数,lastsmoothscore和lastscorevar为上一次该ip地址的smoothscore和scorevar计算结果。α、β、μ、为需要调整的超参数,通过调节这四个值,可以调整算法对波动的敏感性和记录波动的时间长度。jacobsonkarelsscore即为最终计算出来的长期质量参数。
116.在本实施例中,上述流程每分钟执行一次,在写入网关数据库时采用覆盖写入的方法,并设置了数据的过期时间,从而保证数据库中质量参数反映的是相应ip地址的最新质量情况。
117.实施例二
118.图7示意性示出了根据本技术实施例二的cdn处理方法的流程图,包括步骤s700-s704,其中,步骤s700,向网关端发送资源请求;步骤s702,接收所述网关端响应所述资源请求返回的携带目标ip地址的cdn域名;步骤s704,根据所述目标ip地址与所述cdn域名对应的服务器建立连接。
119.在本实施例中,客户端需要请求资源时,可以向网关端发送资源请求,并接收网关端响应资源请求返回的携带目标ip地址的cdn域名。通过提取得到目标ip地址,进而根据该目标ip地址与cdn域名对应的服务器建立连接,以从该cdn域名对应的服务器下载所需要的资源。从而,客户端可以直接使用该ip地址与cdn域名对应的服务器建立连接,节约了dns域名解析的请求时间,并规避了dns域名解析失败的情况。
120.在本技术的一种优选实施例中,如图8所示,所述方法的还可以包括步骤s800-s802:其中,步骤s800,在从与所述cdn域名对应的服务器中下载资源的情况下,采集访问质量数据;步骤s802,将所述访问质量数据上报至所述网关端。
121.在本实施例中,客户端访问cdn域名对应的服务器时,可以采集访问质量数据,并将该访问质量数据上报至网关端,以便于网关端根据访问质量数据进行质量参数计算。
122.在本技术的一种优选实施例中,所述访问质量数据包含中包含前第一预设数量的rtt平均值,下载全程的rtt平均值,建立连接后首个数据包的下载时间,建立连接后的前第二预设数量的数据包的下载时间的平均值和网络错误码。
123.在本技术的一种优选实施例中,在步骤s802之前,还包括:根据所述网络错误码,对所述访问质量数据进行筛选以剔除访问出错的数据。
124.在本实施例中,客户端在上报访问质量数据之前,还可以进行一些数据筛选,通过根据网络错误码,对访问质量数据进行筛选以剔除访问出错的数据。
125.为方便理解,以下结合图9提供一个cdn处理系统的网络拓扑图示例:主要涉及三大模块,包括:ip访问数据上报模块、ip评分模块、ip下发模块通过这三个模块,实现了ip地
址择优和劣质ip地址规避、省去dns域名解析流程所花费的额外时间。
126.其中,ip访问数据上报模块部署在客户端,ip评分模块、ip下发模块部署zai网关端。通过客户端上报每个ip下载时的质量数据到数据仓库,并传输到网关端的ip评分模块进行质量参数处理,并通过ip下发模块存储《域名,ip》数据,将cdn域名中的ip地址择优下发到客户端。
127.在具体实现中,该ip访问数据上报模块可以以埋点的方式,采集每个ip下载时的质量数据,并上报到数据仓库,供ip评分模块使用。如图10所示,ip访问数据上报模块的处理数据的流程图,包括:
128.步骤s11:客户端取得对应的cdn域名及对应ip地址;
129.步骤s12:通过该ip地址与服务器建立连接;
130.步骤s13:判断是否建连成功;如是,则执行步骤s4,若否,则执行步骤s5;
131.步骤s14:请求数据;
132.步骤s15:下载质量数据上报。
133.在本实施例中,ip评分模块基于数据仓库中各个ip的下载质量数据进行ip的评分计算,主要包括ip的近期质量评分和ip的长期质量评分两部分。如图11所示,ip评分模块的处理数据的流程图,包括:
134.步骤s21:判断数据条数是否达到阈值;
135.步骤s22:计算first_five_rtt、srtt、first_packet_time、first_fifty_packet_time的平均值;
136.步骤s23:将平均值输入机器学习模型,计算短期得分;
137.步骤s24:基于短期得分,结合该ip的历史数据,计算长期得分;
138.步骤s25:在短期得分和长期得分中选择较小值;
139.步骤s26:暂存该ip的得分;
140.步骤s27:判断该域名下是否还有其它ip未计算得分;
141.步骤s28:以域名作为键,域名下所有ip及其对应得分作为值,通过键值对的方式写入网关数据库。
142.在本实施例中,ip下发模块基于ip评分模块写入的数据,在用户请求时挑选表现较好的ip地址,拼接在cdn的域名中传递给客户端,客户端从中提取出分配的ip地址并尝试使用。如图12所示,ip下发模块的处理数据的流程图,包括:
143.步骤s31:网关根据用户请求的资源,获取一个用于该资源的cdn域名;
144.步骤s32:查询数据库,找到该cdn域名对应的一系列ip地址;
145.步骤s33:判断是否有候选ip地址;若是,则执行步骤s34,若否则执行步骤s35和步骤s36;
146.步骤s34:直接下发给客户端;
147.步骤s35:从前40%中随机抽选一个ip地址;(为了不忽略质量差不多的ip地址,取ip地址时从得分在前40%的ip地址中随机抽取)
148.步骤s36:将该ip地址拼接在cdn域名中下发给客户端。
149.实施例三
150.图13示意性示出了根据本技术实施例三的cdn处理系统的框图,包括客户端1300
和网关端1302,其中,
151.所述客户端1300用于,向所述网关端1302发送资源请求;接收所述网关端902响应所述资源请求返回的携带目标ip地址的cdn域名;根据所述目标ip地址与所述cdn域名对应的服务器建立连接;
152.所述网关端1302用于,接收所述客户端1300发送的资源请求,并根据所述资源请求确定cdn域名;根据所述cdn域名确定至少一个ip地址;其中,所述至少一个ip地址具有一一对应的当前质量参数;根据所述当前质量参数从所述至少一个ip地址中确定目标ip地址;向所述客户端1300返回携带所述目标ip地址的cdn域名。
153.实施例四
154.图14示意性示出了根据本技术实施例四的cdn处理装置的框图,该cdn处理装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本技术实施例。本技术实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本技术实施例中各程序模块的功能。
155.如图14所示,该cdn处理装置1400可以包括如下模块:
156.cdn域名确定模块1401,用于接收客户端发送的资源请求,并根据所述资源请求确定cdn域名;
157.质量参数确定模块1402,用于根据所述cdn域名确定至少一个ip地址;其中,所述至少一个ip地址具有一一对应的当前质量参数;
158.ip地址确定模块1403,用于根据所述当前质量参数从所述至少一个ip地址中确定目标ip地址;
159.连接建立模块1404,用于向所述客户端返回携带所述目标ip地址的cdn域名,以使得客户端根据所述目标ip地址与所述cdn域名对应的服务器建立连接。
160.在本技术的一种优选实施例中,所述装置还包括:
161.访问数据获取模块,用于获取所述至少一个ip地址在预设时长内的至少一条访问数据;
162.质量参数计算模块,用于根据所述在预设时长内的至少一条访问数据,确定所述至少一个ip地址的短期质量参数和长期质量参数;
163.当前质量参数确定模块,用于分别根据每一个ip地址的所述短期质量参数和长期质量参数确定所述ip地址对应的当前质量参数。
164.在本技术的一种优选实施例中,当前质量参数确定模块,包括:
165.当前质量参数确定子模块,用于分别从每一个ip地址的所述短期质量参数和长期质量参数中确定最小值,作为所述ip地址对应的当前质量参数。
166.在本技术的一种优选实施例中,所述访问数据中包含cdn域名、ip地址和访问质量数据,所述质量参数计算模块,包括:
167.数据分组子模块,用于根据所述cdn域名和所述ip地址对所述至少一条访问数据进行分组;
168.短期质量参数确定子模块,用于分别根据每一分组中包含的所述访问质量数据,确定每一分组的ip地址对应的短期质量参数;
169.长期质量参数确定子模块,用于根据所述每一分组的ip地址对应的短期质量参数确定长期质量参数。
170.在本技术的一种优选实施例中,所述短期质量参数确定子模块,包括:
171.第一短期质量参数确定单元,用于在所述每一分组中包含的所述访问质量数据的数量达到预设阈值时,根据每一分组中包含的所述访问质量数据,确定每一分组的ip地址对应的短期质量参数。
172.在本技术的一种优选实施例中,所述短期质量参数确定子模块,还包括:
173.第二短期质量参数确定单元,用于在所述每一分组中包含的所述访问质量数据的数量未达到预设阈值时,确定所述分组的ip地址对应的上一次的质量参数为的所述分组的ip地址对应的短期质量参数。
174.实施例五
175.图15示意性示出了根据本技术实施例四的cdn处理装置的框图,该cdn处理装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本技术实施例。本技术实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本技术实施例中各程序模块的功能。
176.如图15所示,该cdn处理装置1500可以包括如下模块:
177.请求发送模块1501,用于向网关端发送资源请求;
178.cdn域名接收模块1502,用于接收所述网关端响应所述资源请求返回的携带目标ip地址的cdn域名;
179.连接建立模块1503,用于根据所述目标ip地址与所述cdn域名对应的服务器建立连接。
180.在本技术的一种优选实施例中,所述装置还包括:
181.数据采集模块,用于在从与所述cdn域名对应的服务器中下载资源的情况下,采集访问质量数据;
182.数据上报模块,用于将所述访问质量数据上报至所述网关端。
183.在本技术的一种优选实施例中,所述访问质量数据包含中包含前第一预设数量的rtt平均值,下载全程的rtt平均值,建立连接后首个数据包的下载时间,建立连接后的前第二预设数量的数据包的下载时间的平均值和网络错误码。
184.在本技术的一种优选实施例中,还包括:
185.数据筛选模块,用于根据所述网络错误码,对所述访问质量数据进行筛选以剔除访问出错的数据。
186.实施例六
187.图16示意性示出了根据本技术实施例四的适于实现cdn处理方法的计算机设备10000的硬件架构示意图。本实施例中,计算机设备10000是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括fen独立的服务器,或者多个服务器所组成的服务器集群)等。如图16所示,计算机设备10000至少包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络
接口10030。其中:
188.存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如cdn处理方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
189.处理器10020在一些实施例中可以是中央处理器(central processing unit,简称为cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
190.网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(global system of mobile communication,简称为gsm)、宽带码分多址(wideband code division multiple access,简称为wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。
191.需要指出的是,图16仅示出了具有部件10010-10030的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
192.在本实施例中,存储于存储器10010中的cdn处理方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器10020)所执行,以完成本技术实施例。
193.实施例七
194.本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的cdn处理方法的步骤。
195.本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,计算机
可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中cdn处理方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
196.显然,本领域的技术人员应该明白,上述的本技术实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术实施例不限制于任何特定的硬件和软件结合。
197.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。