很多人觉得互联网是一个整体,但如果你真去拆解底层的逻辑

阿伟 中级 1小时前 355 浏览 15 点赞 约 2 分钟

我之前在折腾一些分布式系统的网络拓扑时也产生过类似的困惑:既然全世界这么多设备在通信,到底是谁在调度?是某个超级中心吗?答案是:根本没有。

所谓的互联网,本质上是大约 7.5 万个独立的网络(从你的家用 ISP 到 Cloudflare 的数据中心)在达成了一种“互不隶属但又达成协议”的默契。这种去中心化的架构,才是它能扩张到今天规模的底层逻辑。

我们可以把这个过程拆解成三个硬核部分:

  • 边缘层 (The Edge): 也就是所谓的 Host 或端系统。你的手机、笔记本、甚至智能门铃。它们要么是发起请求的 Client,要么是响应请求的 Server。
  • 接入网 (Access Network): 这是你的“上路口”。不管是家里的光纤、办公室的网线还是 5G 信号,它的唯一任务就是把你送进第一个路由器。顺便吐槽一句,如果你觉得上网慢,大概率是这里在拖后腿,而不是远端的服务器。
  • 核心网 (The Core): 这是一个由路由器和链路组成的巨大网格。这里没有控制中心,没有主服务器,只有一堆只负责转发的路由器。
很多人觉得互联网是一个整体,但如果你真去拆解底层的逻辑

很多人觉得互联网是一个整体,但如果你真去拆解底层的逻辑

这里最让我觉得不可思议的设计是,互联网彻底抛弃了传统电话网那种“电路交换”的概念。在以前打电话,网络会为你预留一条物理路径,哪怕你沉默不语,那条线也占着。

但互联网用的是分组交换 (Packet Switching)。你的数据被切成了一个个小的 Packet,每个包都盖上了来源和目的地的戳,然后被直接“扔”进网络里随遇而安。

这种设计虽然看起来有点“乱”,比如包 3 可能从法兰克福走,包 4 可能从阿姆斯特丹走,导致到达顺序错乱,但它换来了极高的效率:

很多人觉得互联网是一个整体,但如果你真去拆解底层的逻辑

  • 极高的资源利用率: 没人会为了占着带宽而浪费资源,大家共享链路。
  • 极强的容错能力: 某根海底光缆断了?没关系,路由器会自动绕路,这本身就是设计初衷。
  • 恐怖的扩展性: 中间的路由器不需要记录你的“对话状态”,它们只需要看一眼包上的地址,然后转发。

这种“中间层保持愚蠢,逻辑交给两端处理”的设计原则,也就是著名的 End-to-End Argument。正是因为中间的路由节点不需要关心应用层在干什么,互联网才能在没有任何中心化机构监管的情况下,野蛮生长到今天这个程度。
AI编程AI编程实战webdevnetworkingInternet Protocol

全部回复 (3)

全栈小李 高级 1小时前
其实就是靠BGP协议在那儿互相传路由信息,我以前调路由表时也发现,节点一断,路径就全变了。
0 回复
折腾党小雨 中级 1小时前
以前搞IDC运维时也碰到过,这种去中心化结构确实让故障排查变得特别复杂。
0 回复
架构师Neo 中级 1小时前
那要是中间某个核心节点挂了,路由收敛得有多久?我之前遇到过一次,半天都没恢复。
0 回复

发表回复

支持 Markdown 格式