Web缓存技术
源自Web缓存技术,跟DNS缓存一个道理,做一个中继代理响应,主要是提供经常访问的网页文件的缓存代理,以便大家可以更快地访问网站。由此诞生出了 CDN
CDN
- CDN通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
谷歌的网络基础设施架设
- 大型数据中心(8个),每个大型数据中心包含十万台以上服务器,负责服务于动态、个性化的内容,包括搜索、gmail报文等。
- bring-home服务器集群(30个)。每个集群由100~500台服务器组成,分布全球,通常靠近第一层ISP。这些服务器用于处理静态内容,包括youtube视频的分发。原则上来说,是设计高层ISP接入点,构建谷歌专用网的重要路由,兼顾CDN的功能。
- enter-deep服务器集群(100+)。通常该集群位于一个接入ISP中,包含数十台服务器,执行TCP分岔(TCP fork)、服务静态内容(搜索结果的展示等)。原则上来说,就是靠近客户,减少端客户和CDN之间的链路距离。但高度分布式的集群设计,维护和管理成为最值得讨论的问题。
这些数据中心与谷歌自己的专用网连在一起,用户提出服务请求时候,通常经过本地ISP发送到邻近的enter-deep服务器缓存搜索静态内容(web页面框架等),其中的动态内容通过专用网请求数据中心。bring-home服务器通常用来做网络分发与缓存。
- 除了本地ISP,谷歌云服务大程度上独立于公共网络的基础设施,构建了一个完善的庞大的网络结构。
基本CDN操作
- 客户向主站发出请求网址,主站响应,并返回一个网址(并不一定是同一个,静态请求到动态交付,或向主机交付,反馈其他主机的响应报文)
- 客户用返回的网站(或原有网址)向本地DNS解析。(通常CDN专用网都会有特殊的DNS记录,如谷歌的连接会解析到谷歌CDN中)DNS服务器将地址解析到DNS权威服务器中(比如谷歌权威DNS服务器),这就进入了CDN专用网。
- 权威服务器会返回给本地DNS一个专门用于查找CDN的权威服务器(如“a1105.google.com”,指向了某国某州的一个CDN区域的权威服务器)本地DNS再去解析请求该权威服务器,服务器会返回距离客户最近的CDN服务器。
- 本地DNS返回该CDN地址。
- 用户连接到CDN服务器。
除了基于CDN(自建专用网如google或第三方CDN如netflix),也有使用P2P作为内容交付的手段(BT交付如国内的PPTV与迅雷看看)。
推荐资料:
- 优秀的计算机网络教材:《计算机网络:自顶向下方法(原书第6版)》,其中关于CDN的解释非常详细,有时间可翻阅