0 前言
在本公众号文章:谈谈国外互联网公司的骨干网,介绍了国外互联网公司的骨干网。本文主要深入讲述互联网公司的网络架构和典型业务或者服务具体实现。
1. 互联网公司网络的组成
1.1 网络的物理组成
数据中心一般分布在全球重要的城市,数据中心之间由光缆连接。
Google全球基础设施
单个城市的数据中心分布在各个园区。单个园区有多个数据中心楼(building)、电力系统、水利系统等组成。
Data Center Zones
在数据中心楼中,有多个的网络模块单元构成。在网络模块单元中放置服务器。
Data Center Building
Data Center Services
1.2 骨干网组成
目前运营商的网络还主要是基于BGP/MPLS IP VPN搭建。BGP/MPLS IP VPN是一种L3VPN(Layer 3 Virtual Private Network)。它使用BGP(Border Gateway Protocol)在服务提供商骨干网上发布VPN路由,使用MPLS(Multiprotocol Label Switch)在服务提供商骨干网上转发VPN报文。
对于国外的互联网公司可以自己搭建骨干网,国内的骨干网物理网络主要是电信运营商搭建,互联网公司可以在其上搭建自己的专用网络。
谈谈国外互联网公司的骨干网
1.3 数据中心网络组成
典型数据中心的网络架构一般是使用CLOS架构。CLOS架构的特点
- 多级交换,典型的为三级交互架构。
- 在每一级的每一个单元都与下一级的设备全连接。
- 无阻塞,对于任意的输入到输出,总是能找到一条无阻塞的通路。
- 支持递归,可无限扩展,用多个小规模、低成本的单元构建复杂、大规模的架构。
其中Google数据中心网络Jupiter和Facebook的F4、F16都是属于这种网络架构,具体可以参考文献。
Google的Jupiter
Facebook F4 网络架构
2 互联网公司网络服务场景
名词解释
- PR:Peering Router,对等路由器,类似PE设备,主要是其他运营商网络进行对接。
- BR:Backbone Router,骨干网路由器,类似P设备。
- LSR:Label Switch Router,标签交互路由器。
- DR:Datacenter Route:数据中心路由器。
2.1 通用服务场景
通用服务的网络
2.1.1 客户端到服务端请求真实网络过程
- 用户访问网页服务,客户端首先会进行域名解析去查询网站地址(DNS服务)。
- 通过用户的IP地址进行物理位置定位,返回一个就近的虚拟IP地址(VIP)。
- 请求穿过用户供应商网络,通过PR进行互联网公司的网络中。
- 请求穿过互联网公司的骨干网,路径为PR->BR->LSP->DR,然后到达数据中心,在进入数据中心网络时,会用负载均衡,后面详细的介绍。
- 请求穿过互联网公司的数据中心网络,经过多级的CLOS网络架构内的设备,在这个过程也会有负载均衡把请求打散到后端服务器集群。
- 请求到达代理服务器。
- 请求到达网页服务器,网页服务器也会访问其他的后端服务器,最后将数据返回给客户。
2.1.2 客户端到服务端请求抽象网络过程
本质是网页服务底层走的TCP网络协议。
2.1.3 负载均衡网络模型
互联网公司的业务流量庞大,同时也会有很多的攻击的流量,能够更快更好的应对这些流量是一个大挑战。流量在进行互联网公司的入口需要高性能高吞吐量的负载均衡。本小节主要参考Google的软件实现的负载均衡:Maglev。
传统的硬件负载均衡
传统的硬件负载均衡特点
- 硬件负载均衡单点的性能决定了整个网络能承担的请求。
- 在 HA 上存在缺陷。为了保证单点失效的时候,整个网络集群不陷入瘫痪,需要 1:1 的做冗余
- 灵活性和编程性欠缺。
- 价格昂贵。
为了解决上面的问题,Google自行构建一种 SLB (Software Load Balance) 系统,称为Maglev,其主要特点:
- 方便的 Scale ,为了保证 HA 所需的冗余从之前的 1:1 可以降至 N 1 ,方便的定制性等。
- 方便的定制性。
Maglev网络模型
Maglev 报文转发流程
具体Maglev的细节可以阅读参考文献相关文章。
同时要指出主流云厂商的负载均衡的功能,都全球(Global)负载均衡的能力,例如下图Google的全球负载均衡。
2.2 边缘服务场景
互联网公司会接近用户的边缘做优化,主要是两个方面。
- 把请求(例如TCP)终结(前端代理服务器)向用户靠拢。
- 把内容移向接近用户的地方。
在下图在靠近用户的地方引入了边缘服务的路由器、服务器。将代理服务器放置在公司的网络的边缘,在靠近用户的地方终止用户请求(例如TCP)的流程,以此加快第一次握手的时间,提供更好的用户体验。也可以在边缘部署服务。
边缘服务场景网络
- 用户访问网页服务,客户端首先会进行域名的DNS解析去查询网站地址。
- 通过用户的IP地址进行物理位置定位,返回一个就近的虚拟IP地址(VIP)。
- 请求穿过用户供应商网络,通过PR进行互联网公司的网络中。
- 通过BR到达EdgeRouter,然后到达代理服务器,该服务器终止用户的TCP进程并把请求转发给数据中心的的网页服务器。
- 请求穿过互联网公司的骨干网,路径为PR->BR->LSP->DR,然后到达数据中心,在进入数据中心网络时,会用负载均衡,后面详细的介绍。
- 请求穿过互联网公司的数据中心网络,例如多级的CLOS网络架构内的设备,在这个过程也会有负载均衡把请求打散到后端服务器。
- 请求到达网页服务器,网页服务器也会访问其他的后端服务器,然后将信息返回给客户。
2.3 CDN服务边缘缓存场景
互联网公司一般都存在CDN类型服务,他们把CDN存在公司网络的边缘,目的是将大流量的静态资源尽可能存放在网络的边缘。
注:CDN还是保存在公司的内部的网络中。
CDN边缘缓存场景
对于云厂商来说,他们不断的建设PoP点,EC点,为的就是网络覆盖的更广,且能把服务部署在这些地方。
2.4 CDN服务全球缓存场景
为了进一步的把CDN移到靠近用户的地方,通过缓存填充把数据存在用户的运营商网络中,这样在缓存命中时,用户可以在运营商网络中就能得到需要的资源。
CDN服务全球缓存场景
例如,AWS Wavelength 是一款针对移动边缘计算应用程序优化的 AWS 基础设施产品。Wavelength 区域是一种 AWS 基础设施部署,可在 5G 网络边缘的通信服务提供商 (CSP) 数据中心中嵌入 AWS 计算和存储服务,因而来自 5G 设备的应用程序流量可以在不离开移动通信网络的情况下到达 Wavelength 区域中运行的应用程序服务器。这就避免了因应用程序流量必须遍历互联网中的多个跃点才能达到其目的地而导致的延迟,从而使客户能够充分利用现代 5G 网络提供的低延迟和带宽优势。
具体可参考本公众号文章:云走向边缘,云将无处不在
3 总结
本文从宏观的角度介绍了互联网公司的网络架构和典型业务或者服务具体实现。在学习中也深刻体会到计算机中空间和时间的关系,用空间换时间,用时间换空间。同时互联网的发展也极大促进了信息的高效传播,也期待不断推出新的产品和服务。
参考文献
Google基础设施
https://cloud.google.com/infrastructure?hl=zh-cn
Facebook的 f4和f6 中文翻译 http://arthurchiao.art/blog/facebook-f4-data-center-fabric-zh/
http://arthurchiao.art/blog/facebook-f16-minipack-zh/
Google Jupiter 中文解读 http://zeepen.com/2015/12/31/20151231-dive-into-google-data-center-networks/ 原文 http://conferences.sigcomm.org/sigcomm/2015/pdf/papers/p183.pdf
maglev
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44824.pdf
https://manjusaka.itscoder.com/posts/2020/05/23/a-simple-introduction-about-maglev/