互联网公司的网络架构和业务场景
- 1. 互联网公司网络的组成
- 1.1 网络的物理组成
- 1.2 骨干网组成
- 1.3 数据中心网络组成
- 2.互联网公司网络服务场景
- 2.1 通用服务场景
- 2.1.1 客户端到服务端请求真实网络过程
- 2.1.2 客户端到服务端请求抽象网络过程
- 2.1.3 负载均衡网络模型
- 2.2 边缘服务场景
- 2.3 CDN 服务边缘缓存场景
- 2.4 CDN 服务全球缓存场景
- 3.总结
1. 互联网公司网络的组成
1.1 网络的物理组成
数据中心一般分布在全球重要的城市,数据中心之间由光缆连接。
单个城市的数据中心分布在各个园区。单个园区由多个数据中心楼、电力系统、水利系统等组成。
在数据中心楼中,有多个网络模块单元。在网络模块单元中放置服务器。
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
都是属于这种网络架构,具体可以参考文献。
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
→LSR
→DR
,然后到达数据中心,在进入数据中心网络时,会用负载均衡。 - 请求穿过互联网公司的数据中心网络,经过多级的 CLOS 网络架构内的设备,在这个过程也会有负载均衡把请求打散到后端服务器集群。
- 请求到达代理服务器。
- 请求到达网页服务器,网页服务器也会访问其他的后端服务器,最后将数据返回给客户。
2.1.2 客户端到服务端请求抽象网络过程
本质是网页服务底层走的TCP网络协议。
2.1.3 负载均衡网络模型
互联网公司的业务流量庞大,同时也会有很多的攻击流量,能够更快更好的应对这些流量是一个大挑战。流量在进行互联网公司的入口需要高性能高吞吐量的负载均衡。本小节主要参考 Google 的软件实现的负载均衡:Maglev
。
传统的硬件负载均衡特点:
- 硬件负载均衡单点的性能决定了整个网络能承担的请求。
- 在 HA 上存在缺陷。为了保证单点失效的时候,整个网络集群不陷入瘫痪,需要 1 : 1 1:1 1:1 的做冗余。
- 灵活性和编程性欠缺。
- 价格昂贵。
为了解决上面的问题,Google 自行构建一种 SLB
(Software Load Balance
)系统,称为 Maglev
,其主要特点:
- 方便的 Scale,为了保证 HA 所需的冗余从之前的 1 : 1 1:1 1:1 可以降至 N + 1 N+1 N+1,方便的定制性等。
- 方便的定制性。
具体 Maglev
的细节可以阅读参考文献相关文章。
同时要指出主流云厂商的负载均衡的功能,都有全球(Global
)负载均衡的能力,例如下图 Google 的全球负载均衡。
2.2 边缘服务场景
互联网公司会接近用户的边缘做优化,主要是两个方面。
- 把请求(例如 TCP)终结(前端代理服务器)向用户靠拢。
- 把内容移向接近用户的地方。
下图在靠近用户的地方引入了 边缘服务的路由器、服务器。将代理服务器放置在公司的网络的边缘,在靠近用户的地方终止用户请求(例如 TCP)的流程,以此加快第一次握手的时间,提供更好的用户体验。也可以在边缘部署服务。
- 用户访问网页服务,客户端首先会进行域名的 DNS 解析去查询网站地址。
- 通过用户的IP地址进行物理位置定位,返回一个就近的虚拟 IP 地址(
VIP
)。 - 请求穿过用户供应商网络,通过
PR
进行互联网公司的网络中。 - 通过
BR
到达Edge Router
,然后到达代理服务器,该服务器终止用户的 TCP 进程并把请求转发给数据中心的的网页服务器。 - 请求穿过互联网公司的骨干网,路径为
PR
→BR
→LSR
→DR
,然后到达数据中心,在进入数据中心网络时,会用负载均衡。 - 请求穿过互联网公司的数据中心网络,例如多级的 CLOS 网络架构内的设备,在这个过程也会有负载均衡把请求打散到后端服务器。
- 请求到达网页服务器,网页服务器也会访问其他的后端服务器,然后将信息返回给客户。
2.3 CDN 服务边缘缓存场景
互联网公司一般都存在 CDN 类型服务,他们把 CDN 放在公司网络的边缘,目的是将大流量的静态资源尽可能存放在网络的边缘。
注:CDN 还是保存在公司的内部的网络中。
对于云厂商来说,他们不断的建设 PoP
点,EC
点,为的就是网络覆盖的更广,且能把服务部署在这些地方。
2.4 CDN 服务全球缓存场景
为了进一步的把 CDN 移到靠近用户的地方,通过 缓存填充 把数据存在用户的运营商网络中,这样在缓存命中时,用户可以在运营商网络中就能得到需要的资源。
例如,AWS Wavelength 是一款针对移动边缘计算应用程序优化的 AWS 基础设施产品。Wavelength 区域是一种 AWS 基础设施部署,可在 5G 网络边缘的通信服务提供商(Communications Service Provider
,CSP
)数据中心中嵌入 AWS 计算和存储服务,因而来自 5G 设备的应用程序流量可以在不离开移动通信网络的情况下到达 Wavelength 区域中运行的应用程序服务器。这就避免了因应用程序流量必须遍历互联网中的多个跃点才能达到其目的地而导致的延迟,从而使客户能够充分利用现代 5G 网络提供的低延迟和带宽优势。
3.总结
本文从宏观的角度介绍了互联网公司的网络架构和典型业务或者服务具体实现。在学习中也深刻体会到计算机中空间和时间的关系,用空间换时间,用时间换空间。同时互联网的发展也极大促进了信息的高效传播,也期待不断推出新的产品和服务。