数据交换技术 交换机比路由器便宜,数据这几乎是交换技术网络工程里最实在的一句话。但便宜不代表简单。数据你拆开一台二手思科2960,交换技术能看到那颗Broadcom的数据交换芯片,周围密密麻麻的交换技术电容和PHY芯片——它干的活儿其实很暴力:把进端口的数据帧,按MAC地址表甩到对应出口。数据 这个过程叫存储转发,交换技术或者直通转发。数据存储转发会先把整个帧收完,交换技术检查CRC,数据错了就扔。交换技术直通转发只看前6个字节的数据目的MAC,立刻开始转发。交换技术前者稳,数据后者快。你打游戏时觉得延迟低,可能就是因为路径上的交换机都开了直通。但直通有个毛病——它会把坏帧也传过去,让终端去处理。所以现在很多交换机默认还是存储转发,除非你手动切。 MAC地址表怎么来的?交换机刚上电时,表是空的。任何一帧进来,它把源MAC和入端口记下来。下次有人找这个MAC,就直接从那个端口发。如果找不到,就泛洪——除了入端口,其他所有端口都发一份。这就是为什么你插上网线,还没配IP,就能看到一堆ARP广播。交换机在学,同时也在帮你找。 但MAC表会老化。默认300秒。为什么?因为设备可能换端口,或者你拔了线插到另一台交换机上。不老化的话,表会越来越大,最后爆掉。我见过一台老华为S5700,MAC表满了之后,新设备上线直接不通。重启才恢复。所以别把交换机当傻瓜设备,它有自己的内存和CPU,虽然大部分时间在摸鱼。 VLAN是另一层。一个物理交换机可以切成多个逻辑交换机。你划了VLAN 10和VLAN 20,它们之间的广播就隔离了。但不同VLAN要通信怎么办?得走三层。要么用路由器,要么用三层交换机。三层交换机其实就是在交换芯片旁边加了个路由引擎。第一次跨VLAN通信,走CPU,软件路由。之后形成快速转发表,后续包直接由芯片硬件转发。所以它比“路由器+交换机”的组合快得多,也便宜得多。 链路聚合也值得说。你把两根网线插到两台交换机上,配成LACP。逻辑上就是一条2Gbps的链路。但注意,不是所有流量都能均分。默认哈希算法可能只看源MAC和目的MAC。如果两台服务器之间传文件,MAC固定,那永远只走其中一根线。另一根闲着。你得改成基于源IP和目的IP的哈希。这个坑我踩过,当时以为聚合了就能翻倍,结果测出来还是1Gbps。查了半天才发现哈希策略不对。 还有生成树协议。STP防止环路。但收敛慢,默认要30到50秒。RSTP快一些,秒级。现在数据中心里基本用MLAG或者VPC,把STP干掉。因为STP会阻塞端口,浪费带宽。你买了两根线,它给你堵一根,只跑一根。这谁受得了。所以大厂都自己搞多链路聚合,让所有链路都活跃。 数据交换这件事,说到底就是查表、转发、学习、老化。没有魔法。你看到的云、视频、游戏,底层都是这些芯片在纳秒级做决定。下次网络卡了,别只骂运营商。看看交换机面板上的灯,是不是有个端口在疯狂闪——那可能是广播风暴,或者MAC表在抽搐。 |