内容分发网络的工作过程

内容分发网络的工作过程

路由解析、内容分发、负载均衡和它所能支持的应用内容四个方面

如何利用内容分发网络来提高网络性能

第一种:主动分发(Push)
主动分发就是由源站主动发起,将内容从源站或其他资源库推送到用户边缘的各个CDN缓存节点上。这个推送的操作没有什么业界标准可循,我们可以采用任何传输方式(如HTTP、FTP、P2P等)、任何推送策略(如满足特定条件、定时、人工等)、任何推送时间,只要与我后面要说的更新策略匹配即可
不过你要注意的是,由于主动分发通常需要源站、CDN服务双方提供的程序API接口层面的配合,所以它对源站并不是透明的,只对用户一侧单向透明。
另外,主动分发的方式一般用于网站要预载大量资源的场景。比如京东、双十一等各个网络商城,就会把未来活动需要用的资源推送到CDN缓存节点中,特别常用的资源甚至会直接缓存到你的手机APP的存储空间,或者浏览器的localStorage上

第二种:被动回源(Pull)
被动回源就是指由用户访问所触发的全自动,双向透明的资源缓存过程。当某个资源首次被用户请求的时候,CDN缓存节点如果发现自己没有该资源,就会实时从源站中获取。这时资源的响应时间可粗略认为是资源从源站到CDN缓存节点的时间,再加上资源从CDN发送到用户的时间之和。
所以,被动回源的首次访问通常比较慢的(但是由于CDN的网络条件一般远高于普通用户,并不一定就会比用户直接访问源站更慢),不适合应用于数据量较大的资源。但是被动回源也有优点,就是它可以做到完全的双向透明,不需要源站在程序上做任何配合,使用起来非常方便。这种分发的方式是小型站点使用CDN服务的主流选择,如果你不是自建CDN,而是购买阿里云、腾讯云的CDN服务的站点,它们多采用的就是这种方式

CDN应用
1、加速静态资源,这是CDN的本质工作
2、安全防御,如防御DDos攻击
3、协议升级
4、状态缓存
5、访问控制
6、注入功能

常见的四层负载均衡的工作模式怎么样的?

数据链路层负载均衡
首先数据链路层传输的内容是数据帧,比如我们常见的以太网帧、ADSL宽带的PPP帧等
以太帧的结构

前导码帧开始符号MAC目标地址MAC源地址802.1Q标签(可选)以太类型有效负载冗余校验帧间距|

数据链路层的负载均衡所做的工作,就是修改请求的数据帧中的MAC目标地址,让用户原本是发送给负载均衡器的请求的数据帧,被二层交换机直接根据新的Mac目标地址,转发到服务器集群中
由于二层负载均衡器在转发请求的过程中,只修改了帧的MAC目标地址,不涉及更上层协议(没有修改Payload的数据)所以更上层看来,所有数据没有被改变过的。
这是因为第三层的数据包,也就是IP数据包中,包含了源(客户端)和目标(均衡器)的IP地址,只有真实服务器保证自己的IP地址与数据包中的I P地址一致,这个数据包才能被正确处理。
所以我们在使用这种负载均衡模式的时候,需要把真实服务器集群所有机器的虚拟IP地址,配置成跟负载均衡器的虚拟IP地址一样,这样经均衡转发后的数据包,就能在真实服务器中顺利地使用
数据链路层负载均衡效率很高(直接路由模式),但是也不是适用于所有的场合
二层负载均衡器直接改写目标MAC地址的工作原理,决定了它与真实服务器的通讯必须是二层可达的

网络层负载均衡
网络传输层传输的单位是分组数据包,这是一种在分组交换网络中传输的结构化数据单位。按照IPv4的标准,一个典型的分组数据包headers部分的结构是这样的

长度存储逆袭
0-4Bytes版本号、首部长度、分区类型、总长度
5-8Bytes报文计数标识、标志位、片偏移
9-12BytesTTL生存时间、上层协议代号、首部校验和
13-16Bytes源地址
17-20Bytes目标地址
21-60Bytes可选字段

源和目标IP地址代表了,数据是从分组交换网络中的哪台机器发送到哪台机器的,所以我们就可以沿用与二层修改MAC地址相似的思路,通过改变这里的IP地址来实现数据包的转发。

第一种就是保持原来的数据包不变,新创建一个数据包,把原来数据包的header和Payload整体作为另一个新的数据包的Payload,在这个新数据包的Header中,写入真实服务器的IP作为目标地址,然后把它发送出去
这种方式的缺点就是要求真实服务器必须支持IP隧道协议也就是它得学会自己拆包扔掉一层Headers

第二种方式就是直接改变目标数据包的方式:直接把数据包Headers中的目标地址改掉,修改后原本由用户发给均衡器的数据包,也会被三层交换机转发送到真实服务器的网卡上,而且因为没有经过IP隧道的额外包装,也就无需拆包了
但是这种方式的缺点就是,修稿了目标IP地址才到达真实服务器的,而如果真实服务器直接把应答包发回给客户端的话,这个应答数据包的源IP是真实服务器的IP地址,也就是均衡器修改以后的IP地址,那么客户端就不可能认识该IP,自然也就无法再正常处理这个应答了
这种负载均衡模式死成为(网络地址交换或NAT模式)

在流量压力比较大的时候NAT模式的负载均衡会带来较大的性能损失,比起直接路由和IP隧道模式,甚至会出现数量级上的下降

应用层负载均衡
前面两种四层负载均衡的工作模式都属于“转发”,即直接将承载着TCP报文的底层数据格式(IP数据包或以太网帧),转发到真实服务器上,此时客户端到响应请求的真实服务器维持着同一条TCP通道。
但工作在四层之后的负载均衡模式就无法再进行转发了,只能进行代理。此时正式服务器、负载均衡器、客户端三者之间,是由两条独立的TCP通道来维持通讯的。

代理分为正向代理、反向代理、透明代理三类
正向代理就是我们说的代理,意思是在客户端设置的、代表客户端与服务器通讯的代理服务。它是客户端可知,而对服务器端是透明的
反向代理指设置在服务器这一侧,代表真实服务器与客户端通讯的代理服务。此时它对客户端来说是透明的
透明代理指双方都是透明的
七层负载均衡器可以实现更加智能化的路由。比如,根据Session路由,以实现亲和性的集群;根据URL路由,实现专职化服务(此时就相当于网关的职责);甚至根据用户身份路由,实现对部分用户的特殊服务(如某些站点的贵宾服务器)等等。

均衡策略与实现
轮训均衡
即每一次来自网络的请求,会轮流分配给到内部中的服务器,从1到N然后重新开始。这种均衡算法适用于服务器组中的所有服务器都有相同的软硬件配置,并且平均请求相对均衡的情况。
权重轮训均衡
即根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应的权值数的服务器请求。比如,服务器A的权值设置成1,B的设置成3,C的权值是6,则服务器A、B、C、分别接收到10%、30%、60%的服务请求。这种均衡算法能确保高性能的服务器能得到更多的使用率,避免低性能的服务器负载过重

随机均衡
即把来自客户端的请求,随机分配到内部的多个服务器。这种均衡算法在数据足够大的场景下,能达到相对的均衡分布,极端情况下也会导致某个服务器过载

一致性哈希均衡
即根据请求中的某些数据(可以是MAC、IP地址,也可以是更上层协议中的某些参数)作为特征值,来计算需要落在哪些节点上,算法一般会保证同一个特征值,每次都一定落在相同的服务器上,这里的一致性意思就是,保证服务器集群的某个真实服务器出现故障的时候,只影响该服务器的哈希,而不会导致整个服务集群的哈希键值对重新分布

相应速度均衡
即负载均衡设备对内部各个服务器发出一个探测请求(Ping),,然后根据内部中各个服务器对探测请求的最快响应时间,来决定哪台服务器来响应客户端的服务器请求。需要注意这里的响应时间是负载均衡器设备和服务器之间的响应时间而不是,客户端与服务器之间的响应时间

最少连接数均衡
客户端的每一次请求服务,在服务器停留的时间可能会有比较大的差异。那么随着工作时间的加长,如果采用简单的轮训或随机均衡算法,没太服务器的连接进程可能会产生极大的不平衡,并没有到达真正的负载均衡。所以最少连接数均衡算法就会对内部需要负载的每一台服务器,都有一个数据记录,也就是记录当前该服务器正在处理的连接数量,当有新的服务器连接请求时,就把当前请求分配给连接数最少的服务器。这种均衡算法适合长时间处理的请求服务,比如FTP传输

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值