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

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

  • 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 网络架构内的设备,在这个过程也会有负载均衡把请求打散到后端服务器。
  • 请求到达网页服务器,网页服务器也会访问其他的后端服务器,然后将信息返回给客户。

2.3 CDN 服务边缘缓存场景

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

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

在这里插入图片描述

CDN 边缘缓存场景

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

2.4 CDN 服务全球缓存场景

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

在这里插入图片描述

CDN 服务全球缓存场景

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

3.总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/89994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python学习之路

python 初识python下载python安装python安装成功 idea中配置python环境并运行我的idea是2022版和上一个有点区别VSCode搭建Python开发环境(含Python环境搭建) 学习python 初识python 当我了解python时我决定试一试 首先了解一下什么是python,推荐廖雪峰老师的官网 python简介 …

C语言连接MySQL并执行SQL语句(hello world)

1.新建一个控制台项目 参考【VS2022 和 VS2010 C语言控制台输出 Hello World】VS2022 和 VS2010 C语言控制台输出 Hello World_vs2022源文件在哪_西晋的no1的博客-CSDN博客 2.安装MySQL 参考【MySQL 8.0.34安装教程】MySQL 8.0.34安装教程_西晋的no1的博客-CSDN博客 3.复制MySQ…

sentinel-dashboard-1.8.0.jar开机自启动脚本

启动阿里巴巴的流控组件控制面板需要运行一个jar包,通常需要运行如下命令: java -server -Xms4G -Xmx4G -Dserver.port8080 -Dcsp.sentinel.dashboard.server127.0.0.1:8080 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.0.jar &…

m4a怎么转换mp3?4个方法包教包会

m4a怎么转换mp3?M4A是一种备受欢迎的音频文件格式,通常用于存储高保真音频数据。它代表着“MPEG-4 Audio”扩展名,这意味着它属于基于MPEG-4标准的音频格式之一。M4A格式有着众多的优势。首先,它能够提供出色的音质,并…

Sui主网升级至V1.10.1版本

升级要点 Sui协议版本升至:25 #13822 使用由仪式生成的验证密钥来验证zklogin交易中的证明,升级协议版本至25,启用JWK共识和3个OAuth提供商的zklogin标志。 #13422 在构建具有这些元素的Move代码时,可能会出现关于未使用常量…

中药材商城小程序的作用是什么

古往今来中药材的作用非常大,无论中医院还是相关药材作坊都会有大量人购买,随着互联网电商拓展更多商品类目,中药材也可以通过线上销售,让消费者随时购买到所需商品,商家也能获得更多生意。 那么通过【雨科】平台搭建中…

Python大数据之Python进阶(一)介绍

课程介绍 数据埋点本质上就是进行数据采集,数据埋点是对自身业务数据进行采集。要进行数据埋点就要了解我们的业务程序的开发流程,知道整个数据的传递过程,这样能让我们更加明确数据分析的业务需求,有利于数据埋点的准确性。 在…

QT基础入门——认识与创建QT(一)

前言: 前面学了Linux的基础命令、系统编程、网络编程,对LInux的使用也有了一个简单的了解与认识,之后的学习就要用到 imx6ull_pro这款开发板进行学习了,所以在使用前还是决定把QT的基础知识学习一下,好在后面的linu…

ssl证书申请

申请SSL证书其实没有那么复杂,给大家总结了一下, 就是提交一下域名配合解析就可以申请。 一、申请准备: 1、域名(域名一般主域名或者子域名为主,比如:baidu.com或者bbs.baidu.com) 2、邮箱&a…

leetCode 198.打家劫舍 动态规划

198. 打家劫舍 - 力扣(LeetCode) 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入&#…

Jmeter+Ant+Git+Jenkins持续集成介绍

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试) 一 简介 1.什么是ant? ant是构建工具 2.什么是构建 概念到处可查到,形象来说&#xff…

【小余送书第一期】《数据要素安全流通》参与活动,即有机会中奖哦!!

目录 1、背景介绍 2、本书编撰背景 3、本书亮点 4、本书主要内容 5、活动须知 1、背景介绍 随着大数据、云计算、人工智能等新兴技术的迅猛发展,数据已经成为我国经济社会发展的五大生产要素之一,《网络安全法》《个人信息保护法》《数据安全法》的…

datart:Invalid database configuration. Datart is running in demo mode

datart在IDEA配置好数据库连接之后,启动,报错: 【********* Invalid database configuration. Datart is running in demo mode *********】 原因是缺少一个变量 config 增加即可: 再次启动,就不会报无效数据库配置了…

【操作系统】调度算法的评价指标和三种调度算法

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 操作系统 一、调度算法的评价指标1.1 CPU利…

从小白到精通,十九项案例实践丨全流程HEC-RAS 1D/2D水动力与水环境模拟

水动力与水环境模型的数值模拟是实现水资源规划、环境影响分析、防洪规划以及未来气候变化下预测和分析的主要手段。然而,一方面水动力和水环境模型的使用非常复杂,理论繁复;另一方面,免费的水动力和水环境软件往往缺少重要功能&a…

ros使用rviz订阅Image类型话题,显示yolov7目标检测结果

开发板深度相机系统Xavierrealsense D455ubuntu18.04 1、首先启动yolov7的ros节点,发布话题/image。 2、终端输入rviz,回车打开rviz,Add——>Image: 3、展开Image选项,选择要订阅的topic,左下角就显示出…

朴素贝叶斯深度解码:从原理到深度学习应用

目录 一、简介贝叶斯定理的历史和重要性定义例子 朴素贝叶斯分类器的应用场景定义例子常见应用场景 二、贝叶斯定理基础条件概率定义例子 贝叶斯公式定义例子 三、朴素贝叶斯算法原理基本构成定义例子 分类过程定义例子 不同变体定义例子 四、朴素贝叶斯的种类高斯朴素贝叶斯&a…

RocketMQ Promethus Exporter

介绍​ Rocketmq-exporter 是用于监控 RocketMQ broker 端和客户端所有相关指标的系统,通过 mqAdmin 从 broker 端获取指标值后封装成 87 个 cache。 警告 过去版本曾是 87 个 concurrentHashMap,由于 Map 不会删除过期指标,所以一旦有 la…

美美游玩规划

2023年的国庆 游玩规划: 时间安排是9月29日到10月2日上午; 可以有三个整天加一个上午,上午可以去一个近一点的地方; 可能要去的景点: 天安门广场、颐和园、西单购物中心、故宫、天坛公园、 毛主席纪念堂(2…

C++之list成员函数应用总结(二百三十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…