老张在机房里转悠了一圈,总认定那台三层换机像个被装了弹簧的弹簧床。平时电脑在 L3 换机上直跳,撇脱得快;可要是真有啥大事形成,比如某台服务器突然断电,要么某个关键配置被误删,这层床就得弹起来,直接把人弹回 L2 要么 L1,把之前干的好事全给弄没了。 实际上这换机肚子里的活儿,跟咱们搬砖有点像。砖块,也就是数据包,得先把它扔到 L3 的网格里去跑通流程。

这时候数据是如何跑的?拿 TCP/IP 来说,那个 IP 地址就是给砖块贴的“门牌号”。换机得知道,每一块砖该往哪个出口门走。

要是只负责认门牌号,那它就是个死路一条。

故此,它还得记着砖块是如何走进去的,是从哪台电脑进来的。

这就好比在门口留张名片,名字是 IP,电话是 MAC 地址。有了这两个号码,砖块就能知道具体是哪位发给它的。至于上面的 TCP 协议,那是砖块上自带的“送货单”,专门用来跟快递员说“快一点”、“别迟到”。 老张看着数据流向图,心里有个数:在一个三层换机里,数据要像人一样转圈,务必沿着姐姐姐姐的路走。 起初,数据得从门口进来。

这是 L2 阶段,换机只看“门牌号”。

这时候它是个搬运工,不管这砖块上有没有“送货单”,只要门牌号不重复,就让它顺着网线或光路,直接送到目标房间。

比如两台 PC 与此同时发包,只要 MAC 地址不同,它们的数据就能好办地把对方直接连通,互不干扰。 然后呢?到了房间门口,是不是该上 L3 去跑通流程了?这时候就要看“送货单”了。数据包到了 L3 路由器要么三层换机上,它得先把家门口的“妈妈”告诉。妈妈是哪位?告诉妈妈,别干傻事,立马去查我的门牌号,再查目标地的门牌号。

这两步操作,叫 ARP 请求和查询。 这时候有个细节要注意,数据包在 L3 换机上是要转得慢一点的。出于数据得一个一个地、要么一小组一小组地去问妈妈。

第一块砖问到妈妈,妈妈说“你的门不对,去第 5 个房间”。

第二块砖也问妈妈,妈妈又回一句“不对,去第 3 个房间”。

这时候,数据别看是按顺序走的,但它最慢,出于得等这一小块走完再走下一块。

这就好比你去办事,先问隔壁老王,老王说“不对,去三楼”,又去问隔壁李四,李四说“不对,去一楼”。你在楼里转悠,工夫就浪费了。

这就是所谓的“握手”要么“洪泛攻击”时的瓶颈,数据在几个路由器之间来回刷,哪怕对方都是三层换机,你也得挨个问,问完了再走。 问完妈妈之后,妈妈就得给砖块指路。

这时候就要看 L3 的表项了。表项里写了目标地 IP、出接口、出 IP、出端口。

这就像是一张给砖块贴的路线图。数据包拿到这张图,就知道该往哪扇门走,该通过哪个中继口出去。 接着是 L3 换本身的工作。

这时候,数据不再按顺序转,而是像人一样,根据刚刚那张图,从目标地去找妈妈,再去找出发路。

这个过程叫“跳数”。数据在同一个三层换机内部转的时候,可能会走 A 口或 B 口,也可能走 C 口,就连可能走 D 口,它就是随机地从那张图里找条路,只要不撞墙就行。

这就好比你在迷宫里找路,你刚刚从左边进来的,可能目前要往右边走,之前的路线全得重新算一遍。 再进阶一点,数据还得往上走了,要去跑通整个 TCP 流程。

这时候数据包到了 L2 设备(比如网卡),它得告诉换机:“我要买这个商品了,我要买这台服务器。”换机还得反馈:“这单我要转给 L3 路由器,它负责发货。”这时候数据又要在 L3 和 L2 之间跑一次,这叫“握手”。 最终一步,数据就得真正跑到服务器里去。

这时候数据在 L3 换机上就不转了,它直接从一个端口发到了另一个端口。

这就搞定了数据包的整个生命周期。从进来的 IP 地址,经过 MAC 地址、ARP 询问、L3 路由表选择、到最终的网卡发送。整个链路里,数据包的顺序和损耗,彻底取决于每块砖上面那“送货单”写得对不对。 在数据搬运的过程中,为了快一点,换机里一般会有个“聚合组”的概念。

这就好比把你搬砖的人分成几个小组,每组负责一段路。

这样就能避免砖块在路口堆积,也不用一个个去问邻居。

不过,要是业务量特别大,光靠这几个小组呢,还是得有人去跑通流程。

这时候就需求把数据再发回给 L3 路由器,让它去跑通流程。 实际上,三层换机最核心的优势,就在于它把 L2 的接入层和 L3 的路由层合并在了一个盒子里。

那会儿你要架设三层网络,得买两台换机,一台跑 L2 配网,一台跑 L3 配路由。目前这一台设备,既能做接入,也能做路由。

这意味着你不需求在局域网里搞多跳路由了,所有的数据包,只要它们的目标 IP 在同一个三层换机里,就默认是通的。 自然,这有个代价。

那就是性能。出于数据在 L3 设备上转的时候,得反复匹配表项。

要是表项多了,数据转得就慢。但好在目前的三层换机,表项管理得挺好的,比如用 DHCP snooping 防欺骗,要么用 ACL 限制哪位能进哪个接口,都能在一定程度上缓解这个压力。 还有,数据在三层换机内部转的时候,是有开销的。

这开销主要体目前 CPU 和内存上。

不过,对于一般的办公环境,这开销一般是能够忽略不计的,就连有时候比拿砖头搬还要省事,出于数据在 L3 换机上转,实际上是在做做减法,把不必要的重路由给排除了。 故此,说个实在的例子。假设你公司 MySQL 数据库崩了,需求重启重启。

这时候,老张得去拉一条命令,把数据库里的数据清空。数据要是通过 Nginx 反向代理的。Nginx 在 L3 换机上跑通流程,它得先把数据库那个 IP 告诉妈妈,妈妈告诉它去查表。查表之后,Nginx 就得拍板去哪个服务器拿数据。

要是它去的数据网络不通,它就得找下一个服务器。

这个过程,就是数据包的“跑通”。 在这个过程中,数据包的顺序实际上并不关键。出于目前的网络协议,数据包只要到了目标,被服务器接收了,顺序就不关键了。

那哪位跟哪位没关系。 故此,三层换机原理图,实际上就代表了工作流程。从 IP 进来,到 MAC 走了,到 ARP 问了,到 L3 表项选路,最终到出口。每一个环节,都是数据包在努力搞清楚自己要去哪,如何处理。

要是某个环节出错,整个流程就得停下来,重新来过。

这就是为啥三层换机在架构设计上,一直喜爱把权限关得严严的,而不是像早期的二层换机那样,只要门牌号对,就随意把数据塞那会儿。 这也解释了为啥现代网络越来越复杂。出于我们要处理的设备多了,IP 地址忒多了,要是都放在一个三层换机里跑,那数据就得跑得比蜗牛还快,否则就转不动。便,数据骨干、汇聚、接入,分成了好几层。每一层都有自己的责任。三层换机,就是为了在接入和骨干之间架起一座桥,让数据能按图索骥地找到地方,而不是在路口迷路。 你看这图,左边是局域网,右边是核心网。中间那台三层换机,就是那个枢纽。数据从左边进来,经过 ARP、L3 表项匹配,最终从右边出去,变成了 IP 包。

这个过程,就是三层换。 实际上,网上有些文章,喜爱用“树状结构”要么“路由树”来比喻三层网络。

这实际上挺形象的。想象一棵树,根是物理层,枝干是数据链路层,树叶是应用层。三层换机就是把数据从树叶接到枝干的过程做成了自动化。它不需求你去写代码,它只需求知道数据该往哪走,然后自动执行。 自然,三层换机也不是无所不能。它还是得受限于带宽和丢包率。

要是某个接口带宽不够,要么背板带宽不够,那数据转得就慢。

这时候,就得寻思是不是该把这台三层换机升级一下,要么加个高性能模块。

毕竟,数据跑得越快,网络体验越好。 总的来说,三层换机原理图,就是数据在局域网里“自由行”的规则。它规定了数据如何进、如何转、如何出去。

只要这规则写得对,数据就能跑得飞快,网络就能通;要是规则写得乱,数据就转不那会儿,网络就瘫痪。 你看那上面写的字,实际上也没啥深奥的。就是告诉换机,数据该往哪走。换机读完这字,就执行相应的动作。

要是写错了,数据就卡住;写对了,数据就流得顺。

这就是三层换最本质的东西。 还有,数据在 L3 换机上转的时候,得遵循“最小跳数”原则。它不会故意绕路,要不就务必绕路才能连通。

要是数据直接就能从 A 口到 B 口,它绝对不会从 C 口绕那会儿。

这是为了节省 CPU 和内存。 再想想,数据在 L3 换机内部转的时候,是可能走不同路径的。

比如 A 口走一条路,B 口走另一条路。

要是这两条路由不一样,那数据在换机里转的时候,可能会走不同的口。

这害得数据在不同物理端口之间转,增添了网络延迟。

不过,目前的换机,用“树形拓扑”要么“聚合组”来优化,尽量让数据走一条路到底。 故此,三层换机原理图,实际上就是一张“导航图”。地图上的每一个路口,都对应着换机里的一块逻辑区域。数据走到路口,就得下车,找一下方向,然后持续前行。

要是找不到方向,就得重新问路。

这就是三层换的“握手”过程,也是它的“心跳”机制——数据在问:“我是不是走到头了?”答案是在,那就发货;答案在,那就持续跑。 最终,还要提一下,数据在 L3 换机上转的时候,可能会出于“洪泛攻击”而受影响。

要是数据包忒多,挤到了同一个端口,那这个端口就转不动了。

这时候,换机就得把数据发到另一个端口,要么关掉这个端口。

这是保护机制,防止网络被淹死。 总而言之,三层换机原理图,就是一套数据流转的算法。它把复杂的网络逻辑,简化成了好办的指令。指令写得清楚,数据就走得顺;指令写得支离破碎,数据就乱成一锅粥。 你看那个数据流向,从底层的 IP,到中间的 MAC,再到高层的 TCP。每一个环节,都是数据在努力证明:“嘿,我这不是乱跑,我是按图索骥来的。” 三层换机,就是那个负责打印地图、并执行地图的人。它既管路,也管人,还管数据如何跑通。

只要它活儿做得好,网络就稳如泰山;要是它犯了错,数据就会“跳崖”,瞬间失联。 故此,理解三层换机原理图,实际上就理解了一整套数据如何优雅地、有序地,从你电脑里,跑到云端服务器,再从云端服务器,回到你电脑里的过程。中间,它负责做减法,做最少的路由,用最少的跳转,让数据跑得最快。

这其中的奥妙,大约就藏在那张好办的流程图里了。