首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
图文并茂VLAN详解,让你看一遍就理解VLAN
2
做了几年的网工也未必了解VLAN和VXLAN的区别,今天我来告诉你!
3
全网内容最全,质量最高的MPLS及MPLS VPN技术详解,瑞哥力荐!
4
Google BBR拥塞控制算法背后的数学解释 | 深度
5
QUIC 0-RTT实现简析及一种分布式的0-RTT实现方案
6
AGPS定位基本原理浅析
7
Golang语言情怀-第56期 Go 语言标准库翻译 crypto/cipher
8
神锁离线版插件端到端加密比HTTPS更安全
9
基于 TLS 1.3的微信安全通信协议 mmtls 介绍(上)
10
基于 TLS 1.3的微信安全通信协议 mmtls 介绍(下)
11
24位腾讯云专家精彩演讲,4万字《腾讯云技术实践精选集 2021》发布!(附合集下载)
12
浅谈VPC二三,秒懂秒透
13
提速 30%!腾讯TQUIC 网络传输协议
14
25 张图,一万字,拆解 Linux 网络包发送过程
15
nginx http模块数据存储结构
16
多机房多活,多机房平滑迁移架构方案全集(上+中+下)
17
小孩都看得懂的多臂老虎机和汤姆森采样
18
什么是 Go runtime.KeepAlive?
19
Rust 热点| Discord 为什么从 Go 切换到了 Rust
20
用户态 tcpdump 如何实现抓到内核网络包的?
21
一文读懂 | coredump文件是如何生成的
22
网工知识大扫盲——三层交换技术
23
聊聊 top 命令中的 CPU 使用率
24
什么是HDFS的纠删码
25
Linux ptrace 的实现
26
天天讲路由,那 Linux 路由到底咋实现的!?
27
Linux系统研究 - 操作系统是如何管理tcp连接的 (2)
28
一个有关tcp的非常有意思的问题
29
对上一篇文章中tcp问题的进一步思考
30
epoll和shutdown使用不当可能导致死循环
31
socket的SO_REUSEADDR参数全面分析
32
多进程可以监听同一端口吗
33
golang | 是返回struct还是返回struct的指针
34
​TCP 拥塞控制详解
35
C|网络|TCP-BBR拥塞控制剖析
36
如何使用 Go 语言写游戏服务器?
37
Nginx 日志 worker_connections are not enough while connecting to upstream
38
如何用九条命令在一分钟内检查Linux服务器性能?
39
服务器病了吗? Linux 服务器的那些性能参数指标
40
边缘计算比云计算强在哪里?终于有人讲明白了
41
详解边缘计算系统逻辑架构:云、边、端协同
42
边缘计算成为下一个爆发点,云计算巨头和CDN巨头谁会赢?
43
告知你不为人知的 UDP:连接性和负载均衡
44
为什么需要智能网卡?
45
从CDN到边缘计算,近水楼台是否先得月?
46
经典网络还是VPC,开发者作何选择?
47
Linux内核网络udp数据包发送(二)——UDP协议层分析
48
有没有人告诉你—写时拷贝的真相
49
[linux][network]net bridge技术分析
50
软硬件融合技术内幕 进阶篇 (1) —— 从小霸王到云计算

软硬件融合技术内幕 进阶篇 (1) —— 从小霸王到云计算

在前期,我们回忆了从小霸王学习机到云计算时代的计算机演进历程,以及小结了在这之中如何通过软硬件融合的优化设计,充分发挥出硬件的性能的设计理念。

我们在开篇就提到,小霸王学习机使用了1颗6502处理器作为CPU,主要处理应用逻辑,另一颗2C02处理器作为PPU,主要处理图形绘制。由于2C02实际上是6502处理器进行改造而成,小霸王学习机本质上是一个由2颗处理器进行计算的异构分布式计算系统。

在分布式计算系统中,非常重要的一点是计算节点之间的连接和通讯。

让我们回顾小霸王学习机的系统框图:

如图,CPU和PPU之间,是通过6502的并行总线来实现通讯的。

从字面上理解,并行总线就是有多条并行的传输线路,如8bit并行总线上就可以每次传输1个字节的数据。PCI总线为32位,每次可以传输4字节。

这种并行总线的好处在于,硬件设计较为简单,CPU内部的电路只需要8个锁存器就可以实现其收发。但是,它也有很大的局限性。如果我们需要把其他芯片挂接到并行总线上,就会遇到一系列问题:

  1. 电平标准。6502和2C02的工作电压为5V,对于CMOS电路,高于2.5V会被视为1,而低于2.5V会被视为0。但如果对接的芯片并非这样的标准,会造成无法正常工作。如LVCMOS1V8电平标准的芯片,其输出高电平为1.8V,6502会视为低电平,导致无法正常收发数据。
  2. 协议标准。通信双方需要遵守共同的约定,如什么样的信号代表开始接受,什么样的信号代表停止接收。
  3. 容错。出现误码时的处理。

以上的问题实际上归为一条——标准化。

计算机科学家们将分布式计算中的通讯标准,划分成为7个层级:

上图是OSI(Open Systems Interconnection)的七层模型。

其中七层的解释如下:

Physical —— 物理层:指电平定义、接口标准及编码。如使用DB9 接口,还是RJ45插头等

Data-Link——数据链路层,定义什么样的信号代表开始发送,什么样的信号代表接收完毕,如何进行纠错等;

Network——网络层,定义如何把数据包从一条链路转发到另一条链路,从而穿越多个不同的网段组成的互联网;

Transport——传输层,定义操作系统应当如何封装和解析数据包;

Session——会话层,定义应用应当如何分辨不同用户的访问和用户访问控制等;

Presentation——表示层,定义应用数据传输的方式,如P站小视频的编码解码;

Application——应用层,代表最终用户的操作,如浏览P站等;

在上世纪90年代后期,分布式计算系统中,2层,也就是Link Layer的通讯协议一度出现过“百花齐放,百家争鸣”。经过若干年的博弈与竞争,最终,以太网(Ethernet)占据了优势,并成为中短距离(100km以内)互联的事实标准。

我们在以前的主题中介绍过以太网交换与转发装置——以太网交换机。而将服务器与终端连接到以太网所需要的装置——以太网适配器,也与以太网标准保持着同步进化。

最初的以太网速率为4.7Mbps,使用同轴电缆 (类似有线电视的接口)而不是双绞线进行连接。

流光一瞬,华表千年。(+1s)

进入21世纪以来,分布式计算进化出了一个分支——云计算,而以太网为了更快地传输数据,其速率也进化到了10Gbps,25Gbps甚至更高。目前以腾讯云为代表的大型公有云系统中,服务器的网卡已经普遍采用100G标准。

如图,SA3型云服务器可以支持100Gbps的内网带宽,说明它所在的宿主机已经采用了100Gbps的网卡连接到了数据中心内部网络。

实际上,SA3型云服务器运行在一台整机128核,256超线程的物理宿主机上,它拥有2个100G的以太网接口连接到数据中心内部网络,256个超线程能够保证200Gbps的数据收发能够得到实时的处理。但是,并非所有的服务器都具备这样强的处理能力……

如图,从2010年,服务器以太网连接的速率从1Gbps演进到了100Gbps,提升了100倍,而CPU的处理能力 (超线程数乘以主频),却只提升了5倍。显然,在云计算时代,网络通讯带来的CPU开销增加,与CPU处理能力的缓慢增长的矛盾会迅速激化。

本系列专题,也将围绕这个矛盾而展开……

举报
领券