SICI · 天机门 · 第十九章

计算机网络:分布式系统的血脉 · 元婴三层

你以为发送即到达。可这张网里,没有任何一层天生替你保证送达。可靠不是网络的默认,是协议栈一层一层兜底兜出来的代价。

丢包之影低语:「你的信过了这张网,还能完整地到对方手里吗?我赌——到不了。」
序章

织脉殿

一念即至?哪个应用天生保证送达?

织脉殿的门楣上刻着四个字:"一念即至。"殿内没有墙,只有无数条发光的脉络在虚空中交织,像一张悬在天机门地底的巨网。你怀里揣着一封信——那是你要送到远方的一份数据。

链接之桥,目标文件连接
诺依曼老祖 诺依曼老祖

「这张网覆盖整个天下。你把信投进去,它就能到。」

丢包之影 丢包之影

「赌一局。你的信过了这张网,还能完整地到对方手里吗?我赌——到不了。」

发送即达预测挑战器

五选一反直觉下注(哪个天生保证送达?)→ 五层封装探索 → 送达保证全景

丢包之影逼你下注:五个应用,哪个天生保证数据完整送达对方?
指认一个——猜错了影就记一笔。
第一幕 · 自信→崩塌

幻送台 · 应用三愿

HTTP无状态、DNS层层转发、SMTP推拉分离

光径尽头是一座悬空的石台,台上浮着三盏灯:一盏刻着"HTTP",一盏刻着"DNS",一盏刻着"MAIL"。

诺依曼老祖 诺依曼老祖

「你要送信,先得知道信往哪送。这三盏灯,是应用层的三条路。去点亮它们。」

丢包之影 丢包之影

「点吧。你以为点了就到了?应用层从不保证任何事情——它只是许愿。」

应用层三协议 · 许愿与甩锅

HTTP请求构造器(无状态/Cookie)→ DNS递归/迭代下钻 → SMTP推/POP3·IMAP拉

HTTP · 请求构造器

第一幕 · 第一崩塌

断线初现 · 分组被丢

电路独占不丢但浪费,分组共享高效但会丢

幻送台后是一条下沉的甬道,两侧的脉络开始分叉、汇聚、再分叉——你的信包被推进这张网。

诺依曼老祖 诺依曼老祖

「分层不是为了好看。每一层只解决一个问题。你的信包现在交给了网络层,它会被切成一个个分组,在网络里跳着走。」

丢包之影 丢包之影

「跳着走?那可不一定跳得到。看好了。」

三种交换方式 · 丢包实测

电路/报文/分组三条传送带对比 → 推重负载亲眼见丢包 → 信包赤红裂痕

第一幕 · 掌握代价

传输渊 · TCP之抉择

三次握手确认双方都活着,四次挥手确保收尾

甬道尽头是一座双岔台,左路标"TCP",右路标"UDP"。

诺依曼老祖 诺依曼老祖

「你要可靠,走TCP。但TCP的可靠不是白给的——它要先握手,才能说话;说完了,还要挥手。每一步都要往返。」

丢包之影 丢包之影

「可靠?可靠最费劲。你确定不选UDP那条省事的路?」

TCP/UDP抉择 · 握手与挥手

TCP/UDP对比卡 → 三次握手(含两次弯路)→ 四次挥手 TIME_WAIT

第二幕 · 核心知识高峰之一

确认之环 · 可靠传输

停等→回退N步→选择重传→滑动窗口,把丢的包救回来

抉择台后是一座环形祭坛,坛上悬着你S2被丢的那个信包碎片——赤红裂痕还在。

诺依曼老祖 诺依曼老祖

「你说要可靠。那丢了怎么办,你来造。这里有三样东西:序列号、确认号、一个窗口。用它们,把丢的包救回来。」

可靠传输曲线追踪器

停等/回退N步/选择重传三阶段演进 → 滑动窗口随ACK滑动 → RTT/RTO估计

第二幕 · 第二崩塌

拥塞深渊 · 越多越可靠?

窗口推满→拥塞崩溃→rwnd/cwnd区分→AIMD克制

祭坛上方出现一根推杆,刻度从1到100,标着"发送窗口"。丢包之影盘在推杆上,声音甜得发腻。

丢包之影 丢包之影

「重传能救回来?那就多发点。窗口开大,又快又可靠,这不是明摆着吗?推满它。」

诺依曼老祖 诺依曼老祖

「他没阻止你。他只是退后一步,看着你。」

拥塞控制三旋钮实验台

窗口推杆(1-100)实时三曲线 → 推满拥塞崩溃 → rwnd/cwnd双窗口 → AIMD锯齿四阶段

第二幕 · 持址而立

寻路殿 · IP编址

32位地址、子网划分借位、CIDR聚合路由

祭坛后是一座悬空殿,殿中央浮着一张巨大的地址表——32位的方格,每个格子非0即1。

诺依曼老祖 诺依曼老祖

「信包要找路,先要有地址。这是IP地址,32位,约43亿个。可天下联网的设备,早就超过43亿了。」

丢包之影 丢包之影

「地址都不够分了,你还想送信?」

IP编址 · 子网划分 · CIDR

32位方格填地址 → 子网掩码滑块借位 → CIDR路由聚合

子网划分 · 192.168.1.0/24

第二幕 · 核心知识高峰之二

抉择阵 · 路由算法

距离向量Bellman-Ford vs 链路状态Dijkstra,计数到无穷

寻路殿后是一座布满节点的星图阵,节点间连着发光的链路,每条链路标着开销。

诺依曼老祖 诺依曼老祖

「信包要从一个节点到另一个,得选一条路。怎么选?这里有两种算法,三种协议。你来跑。」

路由算法相图探索器

距离向量逐轮迭代 → 断链计数到无穷 → 水平分裂修复 → 链路状态泛洪+Dijkstra → 三协议碑

第三幕 · 全栈收尾

链脉回廊 · 全栈巡视

链路层CRC/以太网 · NAT还地址债 · TLS加密送达愿

星图阵后是一条环形回廊,壁上流动着最底层的脉络光影。

诺依曼老祖 诺依曼老祖

「你已经从应用层走到了网络层。这条回廊,是剩下的两层——链路层与安全。你许过的愿、欠下的债,都在这里收尾。」

链路层 · NAT · TLS 全栈巡视

CRC翻转校验+交换机自学习 → NAT端口复用还地址债 → 对称/非对称/签名+TLS握手

第三幕 · 最高潮

Boss 战 · 丢包之影

三问对决 · 排除法收网 · 可靠即代价

回廊灯火齐灭。灰色的虚影从四面八方压过来,凝成一张巨大的、没有五官的脸。

丢包之影 丢包之影

「我是丢包之影。我不住在断线里——断线你看得见,你早就修了。我住在你'以为发送即到达'的地方。你每以为数据发出去了对方就收到了,我就胖了一圈。三问。答错一题,影就厚一分。」

渊账累计 0 笔 · 三问全对后清零

第三幕 · 收束

尾声 · 织脉归元

元婴三层·网络织脉·圆满——下一章:数据存哪?

影散尽时脉络重新亮起,你手里的信包微微发光——不是它变了,是你变了。信包上S2的赤红裂痕已愈合为青碧,那道S5拥塞堆积的蚀痕还在,像一枚没说出口的印章。

诺依曼老祖 诺依曼老祖

「你织脉了。不是因为你答对了三问——答对的会忘。是因为你救过的每一个包、克制过的每一次拥塞,都刻在你手上了。但——你的信包可靠送达了。对方收到之后,存到哪里?怎么存?存完之后,机器重启了还在不在?两个人同时改一份,谁说了算?」

知识图谱点亮 · 织脉之悟

点亮全章15块碎片 → TCP/IP五层图谱定格 → 境界突破