ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

交换机的转发模式:Cut-through与Store-and-forward原理、延迟权衡及现代芯片自适应策略

交换机的转发模式:Cut-through与Store-and-forward原理、延迟权衡及现代芯片自适应策略 从后台看到这个标题的时候我愣了一下。干网络这一行十几年从接入交换机摸到核心路由器从百兆口一路调到100G回头发现真正决定转发性能底色的还是这两个最基础的模式。随便找个做运维的同事问一句“你交换机上用的什么转发模式”大概率得到的回答是“默认的啊”但再追问一句“默认是什么模式、为什么默认、什么时候该改”能答上来的人就不多了。这篇我不打算做那种“概念解释优缺点列表”的科普我想把这两个模式拉到真实场景里说说交换机在收到一个帧之后内部到底发生了什么为什么延迟差那几百纳秒就能影响业务以及现代交换芯片里已经很少存在“纯种”的Cut-through或Store-and-forward了。文章会围绕交换芯片的实际工作逻辑展开适合数据中心网络运维、硬件研发、以及想深入了解交换原理的人。1. 两种转发模式的机制拆解Cut-through到底“切”在哪Store-and-forward到底“存”了什么1.1 先说帧结构转发决策到底需要等什么要搞清楚这两种模式的区别得先回到以太网帧的组织方式。一个标准的二层帧从物理层角度看分为前导码Preamble、帧起始定界符SFD、目的MAC地址、源MAC地址、可选VLAN Tag、EtherType、Payload和FCS校验字段。交换芯片要完成一次转发决策最少需要的信息是目的MAC地址。目的MAC在帧的最前面前导码和SFD一共占8个字节目的MAC占6个字节源MAC再占6个字节。这意味着芯片从收到第一个bit开始大约在收到第14个字节86之后就能提取出目的MAC并查询MAC地址表。如果芯片连VLAN Tag一起看那最多也就再多读4个字节到第18个字节左右。Store-and-forward模式要求芯片等整个帧完整进入缓冲区、通过FCS校验之后才做转发决策和转发动作。这等于说芯片必须“容忍”先把整帧吞进肚子里消化完再开口。Cut-through模式则激进得多芯片在收到目的MAC地址后立刻查表查到出端口就直接往那个端口送数据不需要等整帧收完。这种模式下转发动作和接收动作在时间上是重叠的帧像流水一样从入端口流向出端口“边收边发”是它最核心的特征。这里有个关键点FCS校验字段在帧的最末尾占4个字节。Cut-through模式根本等不到FCS所以它没有任何手段确认这个帧是完好的。这就是后面那堆“坏帧传播”问题的根源。1.2 Cut-through不是只有一种形态快速转发、无碎片转发与真正的直通很多人以为Cut-through就一种其实工程实现上至少分化出两个变体再加上厂商自己的叫法容易把人绕晕。最激进的叫快速转发Fast-Forward芯片读到目的MAC、查完MAC表就开始转发。这种模式延迟最低但错误帧传播风险最高。稍微折中的叫无碎片转发Fragment-Free也叫修正版直通Modified Cut-through。它要求芯片至少读到前64字节才做转发决策。为什么是64字节因为以太网规定最小合法帧长是64字节而发生冲突Collision产生的 runt 帧小于64字节的残帧本质上都是坏帧。如果芯片能等到64字节收完确认没有冲突就能过滤掉绝大部分由物理层异常产生的碎片帧。按千兆端口的线速来算64字节帧在1Gbps链路下的串行化时间大约为672ns包含前导码和帧间隙。无碎片转发等64字节再转相比快速转发多了大概500ns到600ns的等待时间但换来的是对冲突碎片帧的过滤能力。在早期半双工集线器时代这个折中很有价值今天全双工链路已经普及冲突帧基本绝迹无碎片转发的存在感变弱了但它依然是一个安全与性能之间比较均衡的模式。顺便说一句有些芯片厂商把Cut-through又细分成“Cut-through at 64 bytes”“Cut-through at 128 bytes”等好几档本质上是让用户可以调整“读取多少字节再开始转发”的阈值。这个设计思路在后面的混合模式里会再次出现。1.3 Store-and-forward为什么必须“整帧吞下”再开口Store-and-forward的核心诉求是“校验通过才转发”所以芯片必须把完整帧先收进缓冲区。这里说的缓冲区可能是端口级的FIFO也可能是芯片内部的共享内存池。整帧收完还不够还需要硬件计算CRC并和帧尾携带的FCS字段比对校验通过才允许帧进入转发阶段。这个过程带来两个必然结果。第一个结果是延迟增高延迟大小和帧长直接相关。千兆端口下一个1518字节的标准帧串行化时间约12.3微秒Store-and-forward必然至少等这么多时间才能开始转发。第二个结果是转发出去的帧一定是完好帧不会把CRC错误、runt帧、超长帧jumbo帧传播到下一跳。这里的“延迟至少等于串行化时间”是一个很容易被忽略的约束。很多人看芯片datasheet上写的延迟是几百纳秒就以为Store-and-forward也可以做到这个水平其实那个数字通常是在Cut-through模式下测出来的或者特指某个小帧长度下的延迟。Store-and-forward的延迟公式写出来非常直白转发延迟 ≈ 帧串行化时间 芯片内部处理时间帧串行化时间是线速决定的芯片内部处理时间取决于查表、ACL匹配、编辑改写等动作。如果帧长1518字节、链路速度1Gbps那么光“收完这个帧”就需要超过12微秒。你不可能绕过物理定律去压缩它。所以这个取舍从一开始就不公平Cut-through想要的是极致低延迟Store-and-forward想要的是绝对正确性两者的起点就是矛盾的。2. 延迟不是唯一差异错误传播、拥塞放大和队头阻塞的连锁反应2.1 坏帧的“俄罗斯轮盘”Cut-through会把CRC错误散播到整个二层域先给一个具体场景。假设一台接入交换机上连着一台网卡故障的服务器网卡因为驱动异常或者硬件老化开始持续产出CRC错误的帧。如果交换芯片工作在Store-and-forward模式这些坏帧在入端口就会被FCS校验拦下直接丢弃不会进到二层网络里。故障被隔离在一条链路上对网络其他部分没有影响。同样的故障如果遇到Cut-through模式的芯片结果就完全不同了。芯片在收到目的MAC的瞬间就开始转发完全等不到帧尾的FCS所以这些CRC坏帧会被原封不动地广播或单播到目标端口。如果这个坏帧是广播帧它会被扩散到同一个广播域里的每一个二层设备每一台设备再继续按Cut-through转发坏帧就在整个二层网络里像瘟疫一样蔓延。更麻烦的是有些上层协议栈对CRC错误完全没感知因为错误发生在二层帧层面IP层和TCP层拿到的可能是一个payload已经损坏的数据包。TCP校验和Checksum能兜住一部分问题但UDP没有强校验语音、视频这类UDP流量会直接吞进损坏数据。我在实际运维中遇到过类似情况定位过程相当痛苦。表现是某个广播域内频繁出现应用层数据异常、重传率高但所有链路光模块的光功率都正常、端口没有大量CRC错误计数。最后查了一圈发现问题出在一台老交换机上——它的某些端口被之前的人手动改成了Cut-through模式恰好那台交换机上又挂了一个有故障的终端。把模式改回Store-and-forward之后整个广播域立刻清净了。这个案例说明一个道理在共享冲突域已经绝迹的今天Cut-through带来的错误传播风险并没有消失只是从“物理层冲突”转移到了“绝症硬件故障”上。如果做接入层设备选型我个人的态度非常明确没特殊需求就不要开全局Cut-through。2.2 拥塞场景下的行为差异谁更容易把问题放大在没有拥塞、出端口空闲的理想情况下Cut-through的低延迟优势能够完全发挥。但网络中真正的常态不是空闲而是持续不断地有突发流量。考虑一个场景入端口同时接收到大量发往同一个出端口的数据包出端口带宽成了瓶颈。交换芯片的设计必须面对这个问题——如果出端口忙不过来帧要把放在哪里答案只能是缓冲区。Store-and-forward模式下每个帧在被转发之前已经完整存在于接收缓冲区里了。如果出端口拥塞帧留在缓冲区等调度即可它对入端口的影响相对可控因为入端口的接收缓冲区可以继续接收新帧大不了整个端口队列堆深一些。Cut-through模式下的拥塞问题要复杂得多。由于帧还没有完全接收芯片就开始往出端口方向送数据而出端口拥塞意味着数据送不出去这时芯片必须把“半截帧”先暂存起来等出端口空出来再继续送。问题在于半截帧的暂存需要额外的缓冲区管理逻辑如果缓冲空间不足芯片只能丢弃这个半截帧——这又回到了Cut-through最怕的事情丢弃的帧还没经过CRC校验你根本不知道丢的是好帧还是坏帧。还有一个隐蔽的问题叫队头阻塞Head-of-Line Blocking。Cut-through模式下一个慢速出端口或者拥塞的出端口会拖累其他无关流量。打个比方一条流水线上有ABCD四个工位A工位处理完后把工件传给B但B的后续处理卡住了A后面的工件就只能排队等。交换机里一个入端口可能在短时间内收到发往不同出端口的帧如果第一个帧去往的出端口拥塞了后续帧哪怕去往空闲端口也可能被阻塞在当前端口的处理队列里。Store-and-forward因为每个帧都完整进入缓冲区再做交换决策芯片可以对缓冲区里的帧做更灵活的重排序队头阻塞的影响会小一些。2.3 为什么说Store-and-forward更“懂”网络运维从运维角度看Store-and-forward还有一个隐形优势它的丢包统计里包含完整的错误分类依据。因为芯片丢弃坏帧发生在CRC校验阶段所以它可以精确地把坏帧归类为CRC错误、runt帧、超长帧等这些分类直接体现在端口计数器的不同字段里。Cut-through模式下芯片根本看不到帧尾它对帧是否完好没有任何概念。一旦发生丢包它只能基于“缓冲满”“出端口忙”等宏观原因上报而无法告诉运维这是CRC错误还是别的什么。对网络排障来说这个信息量差距非常大。我排查网络问题时第一步就是看端口错误计数。如果所有设备都工作在Cut-through模式下等于自断一条最重要的排障路径。所以很多老工程师在接入层、汇聚层坚持用Store-and-forward不完全是因为保守而是因为它让网络具备可观测性。在故障面前几百纳秒的延迟优势和“能看到问题在哪”相比后者价值要高得多。3. 选型决策框架不是越快的方案越好是越匹配场景的方案越稳3.1 一张表看懂关键参数差异先放一张完整的对比表后面再展开说。对比维度Cut-throughStore-and-forward延迟等级固定低延迟与帧长无关约几百纳秒延迟与帧长正相关1Gbps下64字节帧约0.7微秒1518字节帧约12.3微秒坏帧处理无法识别可能传播CRC错误帧能识别并丢弃所有FCS校验失败的帧runt帧/超长帧处理无法识别无碎片转发能滤掉部分runt帧全部能识别并丢弃丢包统计信息分类粗糙缺乏错误细节可按CRC错误、runt、超长帧等分类统计队头阻塞影响更容易被拥塞端口放大相对可控重排序空间大缓冲区需求正常低负载下需求小拥塞时需要额外逻辑管理半截帧需要完整帧缓冲共享内存池越大越有利适用场景HPC、高性能计算、量化交易等低延迟敏感场景企业接入、数据中心普通业务、WAN边缘这几行差异看起来简单实际上每一条都能牵扯出一堆工程细节。延迟那条绝不仅仅是“快一点”的问题它决定了交换机内部流水线的设计方式坏帧那条决定了网络稳定性的底座到底是“受益于物理层偶然事件”还是“每一跳都做一次体检”。3.2 场景导向的选型建议按网络位置来分我会给出这样一套经验性建议。接入层交换机默认Store-and-forward。接入层连接的终端设备千奇百怪服务器、PC、打印机、IP电话、摄像头、物联设备没人能保证这些设备网卡都是健康的坏帧率往往比想象中高。接入层最重要的职责是隔离故障如果把Cut-through开在这里等于人为拆掉了隔离墙。汇聚层交换机一般也是Store-and-forward。汇聚层已经有比较强的业务负载而且承担着广播域的边界职责更看重稳定性和可观测性而不是极限延迟。数据中心Spine/Leaf交换机两种模式都有使用场景。云数据中心的普通业务流量建议Store-and-forward因为虚拟化环境里帧长变化大而且很多业务对抖动敏感程度高于对绝对延迟的敏感程度。如果是高性能计算集群、分布式存储网络或者高频交易环境而且整个链路已经用RoCE或InfiniBand做了端到端调优那么Cut-through的价值才会真正体现出来。HPC和超算场景优先Cut-through。这类场景里延迟降低1微秒都是实打实的性能提升同时网络环境高度可控、终端设备经过严格测试、链路易损率极低坏帧传播的风险被控制在了可接受范围。每个场景背后都有一笔账Cut-through降低的是几十到几百纳秒的延迟代价是网络中所有节点都必须为“可能多收到一个坏帧”买单。这个买单价不总是算在交换机上更多的算在上层应用的协议栈处理上。3.3 从延迟预算反推模式选择如果拿不准自己场景到底该选哪种模式可以用“延迟预算”的方法反推。先列一下你的业务对端到端延迟的容忍上限然后数一下数据包经过的交换跳数。举例来说一个典型的高频交易场景业务对端到端延迟要求是“越短越好”管理员给网络部分分配的总延迟预算可能只有几微秒。如果流量要经过5跳交换机那么单跳延迟预算就只有几百纳秒。这个预算下Store-and-forward基本无法满足——光是1518字节帧在1Gbps端口的串行化延迟就超过12微秒。唯一可行的方案就是Cut-through而且必须用25G、100G这类高带宽端口因为带宽越高相同帧长的串行化时间越短。反过来如果业务允许5毫秒的端到端延迟比如普通网页服务、数据库读写那网络部分完全不需要为那几百纳秒去承担Cut-through的坏帧风险。老老实实用Store-and-forward把故障隔离能力拉满才是更稳的选择。延迟预算的计算方式很简单把业务容忍的总延迟减去服务器处理时间、中间防火墙/负载均衡设备引入的延迟剩余部分除以交换机跳数就是单跳的延迟预算。用这个数和两种模式的延迟特性对比答案一目了然。4. 现代交换芯片里没有“纯种”模式混合策略与芯片级实现细节4.1 Adaptive Cut-through一条被广泛采用但很少被讨论的中间路线如果我告诉你绝大多数现代数据中心的交换ASIC并不是简单地整机固定在一种模式上你可以会意外。包括很多听起来很“直通血统”的芯片在内部都实现了动态决策逻辑——业内管这个叫Adaptive Cut-through或自适应转发。这套逻辑的原理并不复杂。芯片默认工作在Cut-through模式但会持续监控端口层面的错误帧率。如果某个入端口的CRC错误帧比例超过预设阈值常见的阈值是0.01%到0.1%不同厂商配置不同芯片就自动把这个端口切换到Store-and-forward模式屏蔽该端口的坏帧当错误率恢复正常并保持一段时间后再切回Cut-through模式。这本质上是一种“风险开关”策略正常情况下享受低延迟出现异常时自动退回安全模式。在物理实现上最常用的做法是“按端口配置”。芯片里每个端口都有一组寄存器用来控制该端口的转发模式。部分高端芯片还能做到“按流配置”匹配特定五元组的流量走Cut-through普通流量走Store-and-forward但这类芯片数量极少绝大多数是数据中心核心交换机的旗舰芯片才支持。Adaptive Cut-through像一个市场妥协物它既没有彻底放弃低延迟卖点又给稳定性和可运维性留了一条活路。对设备厂商来说这是一个比较稳妥的默认策略所以很多中高端交换机的出厂默认值其实就是“自适应模式”而不是裸的Store-and-forward或Cut-through。4.2 芯片流水线与缓冲结构对不同模式的影响往芯片内部再走一步。现代交换ASIC的主流架构是流水线式处理报文进入端口后依次经过解析Parser、查表Lookup、编辑Edit、调度Schedule、出端口排队Queuing这几个阶段。流水线的每一级都在并行工作不同报文分别处在不同阶段。Store-and-forward模式下帧必须完整存入包缓冲区芯片上的表现就是帧先进Shared Memory共享内存池等待“整帧到达”事件之后才进入查表流水线。这种模式对芯片内部缓存的容量要求比较高。以常见的共享缓冲架构为例芯片包缓冲内存越大越能吸收突发流量但代价是芯片面积和功耗都会上升成本也随之水涨船高。Cut-through模式下芯片不需要等待整帧到达。报文在接收过程中硬件解析器已经提取了目的MAC查表引擎可以立刻开始工作。等到帧的前64字节或更少字节进入缓冲区芯片已经知道要去哪个出端口了。之后发生了有趣的内部动作帧的剩余部分不会先进入共享内存等待而是直接被内部Crossbar或共享总线引导到出端口方向的队列里。这相当于为帧建立了一条“快车道”。理解这个内部处理流程之后你会明白一个容易踩的坑把Cut-through等同于“不缓存”。实际上Cut-through也有缓存只是缓存的策略从“整帧先入池”变成了“前缀即启动转发”。芯片里必须有一个足够快的头端解析器和一份足够聪明的内存分配器才能做到在帧尾还没到的时候就已经把前面的数据稳在缓冲区里并开始向出端口流动。4.3 10G以上端口里这个取舍变得更复杂了除了速率提升还有一个常被忽略的因素在起作用端口速率越高Store-and-forward模式的延迟劣势就越不明显。千兆端口下1518字节帧的串行化时间超过12微秒到了100G端口同样的帧只需要约121纳秒——这个数字已经接近Cut-through本身的处理延迟量级了。换句话说在100G接口的世界里Cut-through对延迟的“绝对贡献”变得有限因为它能节省的时间天花板也就在百纳秒级。调度抖动、ACL匹配、队列缓存带来的延迟波动往往比这个更大。所以很多数据中心运营到今天默认选择Store-and-forward并没有牺牲多少延迟体验反而换来了更好的可观测性和故障隔离能力。高带宽环境下的Cut-through更集中于一个特殊需求RDMA网络。RoCEv2这类协议对端到端延迟和抖动极其敏感稍微一点延迟波动就可能触发重传让性能像过山车一样起伏。如果整个网络专门为RoCE做了调优比如启用PFC流控、ECN标记、无损网络配置那么Cut-through能减少的几百纳秒确实能转化为实实在在的吞吐提升。插一句Cut-through和无损网络的组合并不总是好的。无损网络里上游交换机依赖PAUSE帧或PFC来抑制流量。如果芯片工作在Cut-through模式下PFC帧本身也要经过转发逻辑处理处理不及时反而可能造成缓冲溢出。所以很多无损网络的部署手册里反而会建议在启用了PFC的端口上用Store-and-forward避免因为直通处理带乱流控节奏。这个细节很少被讨论但实际调网时特别关键。4.4 混合模式下的配置形态整机、端口还是入向/出向独立最后说说实际设备上怎么配置。根据芯片能力不同配置颗粒度从粗到细大约分三档。第一档是整机全局配置开关一拨整个交换机所有端口统一变模式这种多见于低端芯片或老旧设备。第二档是端口级配置每个端口独立选择模式这是现代设备的标配能力。第三档也是容易被忽略的是“入向/出向独立”有些芯片支持入端口接收方向用Store-and-forward做完整性校验出端口发送方向用Cut-through直接转发或者反过来入端口直通读前缀出端口存储排队。这个细节在厂商命令里通常体现为两个独立参数“rx mode”和“tx mode”。因此排查问题时不能只看“这台交换机是直通还是存储”还要具体看每个端口、每个方向的实际配置。命令行下查看的时候这两个方向的模式不一定相同。举一个我调过的真实配置片段Cisco Nexus平台上的样例其他厂商命令各有差异逻辑类似interface Ethernet1/1 switchport mode trunk medium p2p no shutdown # 默认情况下部分Nexus平台支持FabricExtender模式的端口直通配置 # 需要在端口层面确认 forwarding mode正常查看命令是show interface ethernet 1/1 transceiver details show hardware internal forwarding mode不同厂商封装不同但核心要点是默认值一定要在真机上确认不要凭记忆假设。我遇到过不止一次文档里写“默认Cut-through”的板卡实际跑起来是自适应模式反之也有。5. 实测经验与调优心得怎么验证延迟、怎么排查异常5.1 没有专用测试仪时怎么估算和验证转发延迟标准的交换延迟测试需要专业流量分析仪比如思博伦的TestCenter、是德科技的Novus或者开源方案里的TRex配合额外的硬件时间戳。这类设备能精确控制发包时间戳并测量收包时间得到纳秒级精度的延迟数据。但绝大多数运维和研发团队没有这个条件那日常怎么估有一个基础的估算方法单跳Store-and-forward的延迟可以近似看成“帧的串行化时间”加“芯片处理时间”。串行化时间用帧长除以端口速率得到芯片处理时间可以查芯片datasheet里的典型值通常在几百纳秒到一两微秒之间。实测时用ping的RTT除以2再减去主机侧的网络栈处理时间就能得到粗略的单向网络延迟。虽然这个估算精度不高但用来排查“延迟从1毫秒涨到50毫秒”之类的明显异常足够了。工具方面如果交换机支持sFlow或者NetFlow可以配置采样后观察转发延迟指标部分高端交换机支持导出内部转发延迟信息。如果交换机支持Linux系统比如用Cumulus、SONiC的设备还可以直接从系统层用ethtool -S查看端口错误计数用hc-tools查看芯片层面的丢弃统计。SONiC环境下还有一个名叫intfutil的命令可以查看接口状态和计数器建议顺手把show interfaces counters和show pfc counters一起用上能快速判断是否发生了流控风暴。5.2 高帧率小包场景下的内存带宽与查表压力实测中有一个方向特别容易出问题高帧率小包。64字节小包在任何速率下都能打出最高的帧率千兆端口线速约1.488Mpps每秒148.8万帧100G端口线速约148.8Mpps。小包场景下不管用哪种转发模式芯片的内存带宽和查表引擎压力都会被拉到极限。Store-and-forward模式下每个小包都要完整写入共享内存、查表、再读出来发出去内存读写次数多。Cut-through模式下小包不需要完整入池内存带宽压力小一些但查表压力是相同的。所以如果你在高帧率小包场景下遇到吞吐上不去先看芯片的查表引擎性能而不是急着切换转发模式。真实测试中有个常见误解以为小包场景下Cut-through会显著提高吞吐。实测结果往往让人失望。原因是小包的线速转发瓶颈通常不在“要不要等整帧”而在于MAC地址表查表速度和报文描述符Descriptor处理速度。芯片每处理一个小包都需要走一遍“解析→查表→编辑→发送”流水线这个固定开销远大于“等待几微秒帧串行化”的开销。所以小包高吞吐场景的优化重点应该放在查表引擎、描述符池深度和调度器性能上转发模式的选择只是锦上添花。5.3 几个容易忽略的坑第一不要盲目迷信datasheet上的延迟数字。芯片手册上的“XX ns Latency”往往标注了测试条件包长多少、速率多少、是否启用ACL、是否启用VXLAN封装。不同条件下数字差异巨大。比如启用了VXLAN封装后芯片需要额外做内层MAC查表和封装操作延迟数字直线上升无论哪种模式都躲不开。第二ACL匹配会隐性放大两种模式的延迟差。开启大量ACL规则后芯片每条流量都要做规则匹配匹配时间呈线性或非线性增加。这对Cut-through是致命的因为它会破坏“快车道”的低延迟优势。如果业务对延迟敏感ACL规则尽量精简或者用硬件查表能力更强的芯片。第三单纤双向BiDi和光模块距离对延迟的影响不能忽略。光信号在光纤里的传播速度约为真空中光速的2/3换算下来单模光纤每公里约5微秒延迟。这个数字比交换芯片本身的处理延迟高一个数量级。也就是说在跨机房、跨楼宇的长距离链路上纠结交换机用Cut-through还是Store-and-forward意义不大——光速延迟才是大头。第四STP/RSTP协议状态会临时改变转发行为。端口在Blocking、Learning状态下是不转发数据帧的无论你配的哪种模式。排障时看到延迟突然飙升先看端口是否频繁在STP状态间切换那多半是上游链路震荡导致的跟转发模式没关系。第五虚拟化环境里vSwitch的转发逻辑独立于物理交换机。VM里的流量先经过vSwitch再进物理网卡和物理交换机。如果你的虚拟化网络延迟过高先排查vSwitch的队列和卸载设置不要一上来就换物理交换机模式——我曾经见过一个案例所有物理交换机延迟都正常问题出在宿主机的SR-IOV虚拟功能队列配置上整整排查了两天。做了这么多年网络我的体会是Cut-through和Store-and-forward的关系不是新技术取代旧技术而是两个思路完全不同的方案在同一个市场里互相角力。低延迟的诱惑永远存在但网络的稳定性、可观测性、故障隔离能力同样不可牺牲。真正稳妥的做法是让模式跟着场景走数据中心内部有调优诉求就精打细算地在指定端口用Cut-through接入层和汇聚层老老实实保留Store-and-forward作为兜底。这也正是现代交换芯片普遍采用自适应策略的原因——硬件已经在替我们做人脑判断了我们要做的是理解这套判断背后的权衡逻辑而不是把转发模式当成一个永远不用动的默认参数。
返回列表