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

news2024/11/18 21:48:16

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

  • 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.coloradmin.cn/o/1035909.html

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

相关文章

Xilinx FPGA 程序固化重新上电程序不运行的问题

问题描述 FPGA直接下载bit文件,功能正常。 FPGA擦除FLASH,烧写FLASH,正常。 电源断电,重新上电,FALSH里面的程序没有启动,FPGA程序没有跑起来。–FLASH启动不正常。 解决办法 在XDC约束文件里边增加约束: ## Configuration options, can be used for all designs se…

京东获得JD商品详情 API 返回值说明

京东商品详情API接口可以获得JD商品详情原数据。 这个API接口有两种参数,公共参数和请求参数。 公共参数有以下几个: apikey:这是您自己的API密钥,可以在京东开发者中心获取。 请求参数有以下几个: num_iid&#…

11 FPGA_简易电压表设计与验证(附代码)

1. 模数转换理论 模数转换器又称(A/D转换器),通常是指一个将模拟信号转变为数字信号的电子元件或电路。常见的转换方式使将模拟量与基准量比对得到便于传输的二进制信号。生活中常见的模拟量有温湿度、图像、声音等。模拟信号与数字信号的转换…

Spring学习笔记4 Bean的作用域

Spring学习笔记3 Spring对IOC的实现_biubiubiu0706的博客-CSDN博客 新建模块 spring-004 引入依赖 <dependencies><!--Spring依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId>&…

企业申报“专精特新”,对知识产权有哪些要求?

深科信从深圳市中小企业服务局发布的公开数据中了解到&#xff0c;2022年深圳市专精特新中小企业申报8000余家&#xff0c;通过4800余家。2023年深圳市专精特新企业认定火热申报中&#xff0c;10月15日截止。 成为“专精特新”企业有什么好处? 1.国家级资质强力背书&#xff…

WordPress主题DUX v8.2源码下载

新增产品分类左侧多级分类折叠显示 新增网站默认字体对 MiSans 和 HarmonyOS Sans 的支持 新增顶部左上角显示登录注册的模块开关&#xff0c;且支持原生登录方式 新增手机端导航菜单的关闭按钮 新增文章内容中标题二的强化展示 新增全站禁止复制、右键和选择的操作 新增文章内…

fastjson反序列化漏洞(CVE-2017-18349)

文章目录 fastjson序列化FastJson 序列化操作反序列化漏洞原理漏洞复现&#xff08;CVE-2017-18349&#xff09; fastjson fastjson 是阿里巴巴开发的 java语言编写的高性能 JSON 库,用于将数据在 Json 和 Java Object之间相互转换。它没有用java的序列化机制,而是自定义了一套…

分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测(SE注意力机制)

分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测&#xff08;SE注意力机制&#xff09; 目录 分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测&#xff08;SE注意力机制&#xff09;分类效果基本描述模型描述程序设计参考资料 分类效果 基本描述 1.MATLA…

Quartus出租车计费器verilog计价器

名称&#xff1a;出租车计费器verilog计价器 软件&#xff1a;Quartus 语言&#xff1a;Verilog 要求&#xff1a; 出租车计费器&#xff0c;起步价10元&#xff0c;3公里内起步价&#xff0c;可以切换白天和夜晚计费&#xff0c;白天时超过3公里后2.4元每公里&#xff0c;停…

RabbitMQ实现秒杀场景示例

本文章通过MQ队列来实现秒杀场景 整体的设计如下图&#xff0c;整个流程中对于发送发MQ失败和发送到死信队列的数据未做后续处理 1、首先先创建MQ的配置文件 Configuration public class RabbitConfig {public static final String DEAD_LETTER_EXCHANGE "deadLetterE…

springcloud3 分布式事务-seata的四种模式总结以及异地容灾

一 seata四种模式比较 1.1 seata的4种模式比较 二 seata的高可用 2.1架构 1.建TC服务集群非常简单&#xff0c;启动多个TC服务&#xff0c;注册到nacos即可。 2.做异地多机房容灾&#xff0c;比如一个TC集群在上海&#xff0c;另一个TC集群在杭州&#xff0c; 3.微服务基…

趣解设计模式之《小王的糖果售卖机》

〇、小故事 小王最近一直在寻找商机&#xff0c;他发现商场儿童乐园或者中小学校周围&#xff0c;会有很多小朋友喜欢吃糖果&#xff0c;那么他想设计一款糖果售卖机&#xff0c;让后将这些糖果售卖机布置到商场和学校旁边&#xff0c;这样就能获得源源不断的收益了。 想到这里…

20 个实例玩转 Java 8 Stream

20 个实例玩转 Java 8 Stream 1、Stream概述 Java 8 是一个非常成功的版本&#xff0c;这个版本新增的 Stream&#xff0c;配合同版本出现的 Lambda&#xff0c;给我们操作集合 Collection 提供了极大的便利。 那么什么是 Stream&#xff1f; Stream 将要处理的元素集合看作…

Docker部署MySQL8数据库

1、准备工作 docker pull mysql:8.0.27 Pwd"/data/software/mysql" mkdir ${Pwd}/{data,logs} -p chmod 777 ${Pwd}/logs2、添加配置文件 cat > ${Pwd}/my.cnf << EOF [mysqld] usermysql pid-file/var/run/mysqld/mysqld.pid socket/var/run/mysqld/mysq…

SQL和Python,哪个更容易自学?哪个更适合数据工作的编程新手?

如果你想从事数据工作&#xff0c;比如数据分析、数据开发、数据科学等&#xff0c;你可能会遇到这样的问题&#xff1a;SQL和Python哪个更容易自学&#xff1f;哪个更有用&#xff1f;哪个更有前途&#xff1f;其实这两种语言都是数据工作的重要技能&#xff0c;但它们的特点和…

react实现数据进度条展示组件

1.需求 在项目开发时&#xff0c;要展示一个操作的进度条&#xff0c;比如&#xff1a;要实现一个文件的上传下载进度条&#xff0c;或者实现类似拼夕夕砍一刀进度条&#xff0c;怎么实现呢&#xff1f;效果图如下&#xff1a; 对上面效果图说明&#xff1a; 进度条底色为棕黑色…

559. N 叉树的最大深度

给定一个 N 叉树&#xff0c;找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 N 叉树输入按层序遍历序列化表示&#xff0c;每组子节点由空值分隔&#xff08;请参见示例&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [1,null,3,2…

从统计语言模型到预训练语言模型---预训练语言模型(BERT,GPT,BART系列)

基于 Transformer 架构以及 Attention 机制&#xff0c;一系列预训练语言模型被不断提出。 ​BERT 2018 年 10 月&#xff0c; Google AI 研究院的 Jacob Devlin 等人提出了 BERT (Bidirectional Encoder Representation from Transformers ) 。具体的研究论文发布在 arXiv …

浅谈低压绝缘监测及定位系统在海上石油平台的研究与应用

安科瑞 华楠 摘要&#xff1a;海上石油平台低压系统与陆地电力系统有很大区别&#xff0c;其属于中性点绝缘系统&#xff0c;在出现单相接地故障时&#xff0c;系统允许带故障正常运行2 h&#xff0c;保证海上重要电气设备不会立即关停。现以渤海某海上平台为例&#xff0c;其…

LABVIEW 实战案例1--温度报警系统

图1 温度报警系统前面板 图2 温度报警系统后面板