【计算机网络】互联网公司的网络架构和业务场景

互联网公司的网络架构和业务场景

  • 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 网络的物理组成

数据中心一般分布在全球重要的城市,数据中心之间由光缆连接。

在这里插入图片描述

Google 全球基础设施

单个城市的数据中心分布在各个园区。单个园区由多个数据中心楼、电力系统、水利系统等组成。

在这里插入图片描述

Data Center Zones

在数据中心楼中,有多个网络模块单元。在网络模块单元中放置服务器。

在这里插入图片描述

Data Center Building

在这里插入图片描述

Data Center Services

1.2 骨干网组成

目前运营商的网络还主要是基于 BGP/MPLS IP VPN 搭建。BGP/MPLS IP VPN 是一种 L3VPNLayer 3 Virtual Private Network)。它使用 BGPBorder Gateway Protocol)在服务提供商骨干网上发布 VPN 路由,使用 MPLSMultiprotocol Label Switch多协议标签交换)在服务提供商骨干网上转发 VPN 报文。

在这里插入图片描述
对于国外的互联网公司可以自己搭建骨干网,国内的骨干网物理网络主要是电信运营商搭建,互联网公司可以在其上搭建自己的专用网络。

1.3 数据中心网络组成

典型数据中心的网络架构一般是使用 CLOS 架构。CLOS 架构的特点:

  • 多级交换,典型的为三级交互架构。
  • 在每一级的每一个单元都与下一级的设备全连接。
  • 无阻塞,对于任意的输入到输出,总是能找到一条无阻塞的通路。
  • 支持递归,可无限扩展,用多个小规模、低成本的单元构建复杂、大规模的架构。

其中 Google 数据中心网络 Jupiter 和 Facebook 的 F4F16 都是属于这种网络架构,具体可以参考文献。

在这里插入图片描述

Google 的 Jupiter

在这里插入图片描述

Facebook F4 网络架构

2.互联网公司网络服务场景

  • PRPeering Router对等路由器,类似 PE 设备,主要是其他运营商网络进行对接。
  • BRBackbone Router骨干网路由器,类似 P 设备。
  • LSRLabel Switch Router标签交互路由器
  • DRDatacenter Route数据中心路由器

2.1 通用服务场景

在这里插入图片描述

通用服务的网络

2.1.1 客户端到服务端请求真实网络过程

  • 用户访问网页服务,客户端首先会进行域名解析去查询网站地址(DNS 服务)。
  • 通过用户的 IP 地址进行物理位置定位,返回一个就近的虚拟 IP 地址(VIP)。
  • 请求穿过用户供应商网络,通过 PR 进行互联网公司的网络中。
  • 请求穿过互联网公司的骨干网,路径为 PRBRLSRDR,然后到达数据中心,在进入数据中心网络时,会用负载均衡。
  • 请求穿过互联网公司的数据中心网络,经过多级的 CLOS 网络架构内的设备,在这个过程也会有负载均衡把请求打散到后端服务器集群。
  • 请求到达代理服务器。
  • 请求到达网页服务器,网页服务器也会访问其他的后端服务器,最后将数据返回给客户。

2.1.2 客户端到服务端请求抽象网络过程

本质是网页服务底层走的TCP网络协议。
在这里插入图片描述

2.1.3 负载均衡网络模型

互联网公司的业务流量庞大,同时也会有很多的攻击流量,能够更快更好的应对这些流量是一个大挑战。流量在进行互联网公司的入口需要高性能高吞吐量的负载均衡。本小节主要参考 Google 的软件实现的负载均衡:Maglev

在这里插入图片描述

传统的硬件负载均衡

传统的硬件负载均衡特点:

  • 硬件负载均衡单点的性能决定了整个网络能承担的请求。
  • 在 HA 上存在缺陷。为了保证单点失效的时候,整个网络集群不陷入瘫痪,需要 1 : 1 1:1 1:1 的做冗余。
  • 灵活性和编程性欠缺。
  • 价格昂贵。

为了解决上面的问题,Google 自行构建一种 SLBSoftware Load Balance)系统,称为 Maglev,其主要特点:

  • 方便的 Scale,为了保证 HA 所需的冗余从之前的 1 : 1 1:1 1:1 可以降至 N + 1 N+1 N+1,方便的定制性等。
  • 方便的定制性。

在这里插入图片描述

Maglev 网络模型

在这里插入图片描述

Maglev 报文转发流程

具体 Maglev 的细节可以阅读参考文献相关文章。

同时要指出主流云厂商的负载均衡的功能,都有全球(Global)负载均衡的能力,例如下图 Google 的全球负载均衡。

在这里插入图片描述

2.2 边缘服务场景

互联网公司会接近用户的边缘做优化,主要是两个方面。

  • 把请求(例如 TCP)终结(前端代理服务器)向用户靠拢。
  • 把内容移向接近用户的地方。

下图在靠近用户的地方引入了 边缘服务的路由器、服务器。将代理服务器放置在公司的网络的边缘,在靠近用户的地方终止用户请求(例如 TCP)的流程,以此加快第一次握手的时间,提供更好的用户体验。也可以在边缘部署服务。

在这里插入图片描述

边缘服务场景网络

  • 用户访问网页服务,客户端首先会进行域名的 DNS 解析去查询网站地址。
  • 通过用户的IP地址进行物理位置定位,返回一个就近的虚拟 IP 地址(VIP)。
  • 请求穿过用户供应商网络,通过 PR 进行互联网公司的网络中。
  • 通过 BR 到达 Edge Router,然后到达代理服务器,该服务器终止用户的 TCP 进程并把请求转发给数据中心的的网页服务器。
  • 请求穿过互联网公司的骨干网,路径为 PRBRLSRDR,然后到达数据中心,在进入数据中心网络时,会用负载均衡。
  • 请求穿过互联网公司的数据中心网络,例如多级的 CLOS 网络架构内的设备,在这个过程也会有负载均衡把请求打散到后端服务器。
  • 请求到达网页服务器,网页服务器也会访问其他的后端服务器,然后将信息返回给客户。

CDN__123">2.3 CDN 服务边缘缓存场景

互联网公司一般都存在 CDN 类型服务,他们把 CDN 放在公司网络的边缘,目的是将大流量的静态资源尽可能存放在网络的边缘。

注:CDN 还是保存在公司的内部的网络中。

在这里插入图片描述

CDN 边缘缓存场景

对于云厂商来说,他们不断的建设 PoP 点,EC 点,为的就是网络覆盖的更广,且能把服务部署在这些地方。

CDN__134">2.4 CDN 服务全球缓存场景

为了进一步的把 CDN 移到靠近用户的地方,通过 缓存填充 把数据存在用户的运营商网络中,这样在缓存命中时,用户可以在运营商网络中就能得到需要的资源。

在这里插入图片描述

CDN 服务全球缓存场景

例如,AWS Wavelength 是一款针对移动边缘计算应用程序优化的 AWS 基础设施产品。Wavelength 区域是一种 AWS 基础设施部署,可在 5G 网络边缘的通信服务提供商(Communications Service ProviderCSP)数据中心中嵌入 AWS 计算和存储服务,因而来自 5G 设备的应用程序流量可以在不离开移动通信网络的情况下到达 Wavelength 区域中运行的应用程序服务器。这就避免了因应用程序流量必须遍历互联网中的多个跃点才能达到其目的地而导致的延迟,从而使客户能够充分利用现代 5G 网络提供的低延迟和带宽优势。

3.总结

本文从宏观的角度介绍了互联网公司的网络架构和典型业务或者服务具体实现。在学习中也深刻体会到计算机中空间和时间的关系,用空间换时间用时间换空间。同时互联网的发展也极大促进了信息的高效传播,也期待不断推出新的产品和服务。


http://www.niftyadmin.cn/n/5046601.html

相关文章

RabbitMQ - 消息堆积问题的最佳解决方案?惰性队列

目录 一、惰性队列 1.1、消息堆积问题 1.2、消息堆积问题的解决方法 从消费者的角度: 从队列的角度: 1.3、引入惰性队列 1.3.1、什么是惰性队列 1.3.2、惰性队列的使用 1.3.3、效果演示 一、惰性队列 1.1、消息堆积问题 当生产者发送消息的速度…

OmniPlan Pro 4 for Mac:引领项目管理的创新与高效

OmniPlan Pro 4是一款强大且高效的项目管理工具,专为Mac用户设计。它提供了一套综合性的解决方案,帮助用户在Mac上便捷地进行项目规划、追踪和管理。凭借其直观的界面,用户可以快速上手,并且能充分利用这款工具的各种功能。 规划…

IT30--制造业数字化战略规划(论文1)

摘 要 在我国经济快速发展与IT技术日新月异的背景下,国内制造业的管理水平需要进一步的提高。公司内部的管理对数字化系统的依赖越来越强烈,部分制造业开始运用数字化系统辅助制造业管理,确实为制造业带来了一定程度的便利,尤其是…

QT:使用分组框、单选按钮、普通按钮、标签、行编辑器、垂直分布、水平分布做一个小项目

widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QRadioButton> //单选按钮 #include <QGroupBox> //分组框 #include <QHBoxLayout> //水平布局 #include <QVBoxLayout> //垂直布局 #include <QPushButton>…

Flutter绘制拖尾效果

演示&#xff1a; 代码&#xff1a; import dart:ui;import package:flutter/material.dart; import package:kq_flutter_widgets/widgets/chart/ex/extension.dart;class TrailingView extends StatelessWidget {const TrailingView({super.key});overrideWidget build(Build…

对std::unique_ptr 的误解

看了很多对于 std::unique_ptr的介绍&#xff0c;让我对其产生一种误解&#xff0c;让我以为它不能被二次赋值。 unique_ptr 不共享它的指针。 它无法复制到其他 unique_ptr&#xff0c;无法通过值传递到函数&#xff0c;也无法用于需要副本的任何 C 标准库算法。 只能移动 uni…

中秋国庆内卷之我爱学习C++

文章目录 前言Ⅰ. 内联函数0x00 内联函数和宏的比较0x01 内联函数的概念0x02 内联函数的特性 Ⅱ. auto&#xff08;C 11)0x00 auto的概念0x01 auto的用途 Ⅲ. 范围for循环(C11)0x00 基本用法0x01 范围for循环(C11)的使用条件 Ⅳ. 指针空值nullptr(C11)0x00 概念 前言 亲爱的夏…

面向面试知识-消息队列

面向面试知识-消息队列 参考文章&#xff1a;消息队列&#xff08;mq&#xff09;是什么&#xff1f;、重复消费 老坑还没填完&#xff0c;就又开一个新坑&#xff1a; Rocket MQ&#xff1b;Message Queue。 起始问题 为什么引入MQ&#xff1f;MQ适用于哪些场景下的哪些问题…