尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

以太网之 L2-LLR 介绍

以太网之 L2-LLR 介绍
📅 发布时间:2026/6/23 19:58:05

1、LLR 如何工作?

存在的问题:

集合操作导致的丢包:

硬件和布线导致包破坏:

UE 链路层减少丢包的网络栈:

L2-LLR如何工作的细节:

2、LLR 基础定位(Ultra Ethernet consortium)

LLR =Link Level Retry 链路层低时延重传,是 UEC 核心无损可靠性机制,工作在MAC 层之上、TCP/RoCE 等传输层之下,逐跳(hop-by-hop)帧级重传,替代 / 辅助 PFC 实现无损以太网,专门适配 AI/HPC 超低时延、高可靠需求。
核心优势:丢包只在相邻两台设备之间重传,不用端到端回退,大幅压低尾延迟;PFC 只解决拥塞丢包,LLR 同时处理线路误码、瞬时故障、少量拥塞丢包。

基础规则:

  1. 所有 LLR 使能帧分配唯一递增序列号 Seq(图中 1/2/3/4…)
  2. 发送端(LLR Sender):发出帧必须存入Replay Buffer 重放缓冲区,直到收到接收端 ACK 确认才能删除缓存
  3. 接收端(LLR Receiver):按 Seq 校验,连续正常收帧回ACK;检测到 Seq 缺口(丢帧)立刻回NACK(否定确认)
  4. 双保护:NACK 主动重传 + 发送端超时兜底重传(防止 NACK 本身丢包)

3、逐帧拆解时序图完整流程

阶段 1:Sender 顺序发送 1~8 号帧

  1. Sender 依次发出帧 1、2、3、4、5、6、7、8,每帧打上 Seq,全部存入本地重放缓存;
  2. Receiver 侧接收情况:
  • 帧 1 正常到达 → 立刻回复ACK1(绿色 ACK)
  • 帧 2 丢失(图中红色叉号),出现 Seq 缺口:收到 1 之后下一个收到 3,检测到 2 缺失
  • 帧 3、4、5、6、7、8 陆续抵达 Receiver

阶段 2:Receiver 生成 NACK2(丢包检测触发)

  1. Receiver 发现 Seq2 缺失,立即生成LLR_NACK2(红色 NACK 报文)发回 Sender;
  • 这个 NACK 发出时刻 =LLR Discard Window 丢弃窗口的起点(图右侧注释定义)
  • NACK2 走反向链路传回 Sender,耗时半个 RTT;
  • 注意:NACK 在路上传输这段时间里,Sender 还在持续发新帧(9、10),同时 Replay Buffer 里还完整存着 1–8 所有未彻底确认的帧。

阶段 3:Sender 收到 NACK2,启动选择性重传

  1. Sender 收到 NACK2,立刻从重放缓存取出仅帧 2,单独重发(图里黄色线条就是重传帧 2、3、5、7…);
    LLR 是Selective 重传,不会回退重传全部,只补发丢失帧,这是低时延关键;
  2. 图里 Sender 侧标注[2,3,4,5,6,7,8]就是当前 Replay Window 重放窗口: 右侧定义:LLR Replay Window 起点 = 第一个未被 ACK 确认的帧(这里就是帧 2);终点 = 收到 ACK 之前最后一个发出的可 LLR 重传帧
    窗口内所有帧都必须留在缓存,不能释放内存。

阶段 4:重传帧抵达 Receiver,Discard Window 结束

  1. 重传帧 2(黄色)到达 Receiver,补齐 Seq 缺口; 右侧定义:LLR Discard Window 终点 = 收到携带预期 Seq 号的第一个重传帧(也就是收到重传帧 2 这一刻,Discard Window 关闭)
  2. Receiver 后续收到重传帧、新帧后,批量回复 ACK3、ACK5、ACK7、ACK9、ACK10:
  • ACKX 含义:Seq≤X 的所有帧全部正确接收,Sender 可以安全删除 Replay Buffer 里≤X 的缓存帧
  • 比如收到 ACK3 → 帧 2、3 都确认,缓存里 2、3 可释放,Replay Window 起点滑动到 4

阶段 5:窗口滑动、缓存回收、持续传输

  1. 每收到一个 ACK,Sender 的 Replay Window 左边界向右滑动,释放已确认帧的缓存;
  2. 帧 9、10 持续新发,不断追加到 Replay Window 右端;
  3. 全程新业务流量和重传流量并行发送,不会阻断发送管道。

4、两个核心窗口深度理解(对应图右侧注释)

1. LLR Replay Window(重放窗口,发送端视角)

  • 起始:第一个还没收到 ACK 确认的帧(本例帧 2)
  • 结束:Sender 收到 ACK 报文那一刻,已经发出去的最后一个 LLR 可用帧
  • 本质:窗口内所有帧必须保存在 Sender 缓存,随时待命重传;窗口大小≈链路 BDP(带宽 ×RTT),和你之前问的 PFC 缓存逻辑同源:
    信号往返 RTT 时间内发送出去的数据,都要缓存兜底。

2. LLR Discard Window(丢弃窗口,接收端视角)

  • 起始:Receiver 生成 NACK 报文的瞬间(发现丢包立刻计时)
  • 结束:Receiver 成功收到对应缺失序号的第一个重传帧
  • 作用:窗口内 Receiver 不会向上层上报乱序 / 缺口,耐心等待重传帧补齐;窗口结束后 Seq 恢复连续,正常向上交付数据。

5、对比 PFC,理清 LLR 和 PFC 分工

机制解决问题工作方式时延影响
PFC下游缓存满导致的拥塞丢包Rx 发 PAUSE 让 Tx 整体停发整条优先级队列停发会阻塞业务流,队列累积放大延迟
LLR线路误码、瞬时故障、少量拥塞丢包丢哪帧只重传哪帧,发送管道不中断几乎不阻断新发流量,只有少量重传开销

UEC 推荐组合:PFC 做大拥塞防护,LLR 做微小丢包快速修复;极端场景可纯 LLR 弱化 PFC 依赖,减少 PFC 死锁风险。

一句话极简总结时序

  1. 发帧→存缓存→收方校验 Seq;
  2. 缺 Seq 立刻回 NACK;
  3. 发方收到 NACK 只补发丢的那一帧;
  4. 收方补齐 Seq 后回 ACK,发方释放已确认缓存、滑动重放窗口;
  5. Replay Window 管发送端缓存留存,Discard Window 管接收端等待重传的时间区间。

6、LLR CtlOS

6.1 LLR 整体总览(UEC Link Level Retry 链路级重传)

核心运行规则

  1. 序列号 Seq 机制:所有 LLR 业务帧分配全局递增 Seq 号,收发两端严格按 Seq 有序校验。
  2. 发送端(Sender)
  • 发出的 LLR 帧存入Replay Window 重放缓存,收到 ACK 前绝不删除;
  • 双保护重传触发:
    ① 收到LLR_NACK:立刻选择性重传缺失 Seq(快速主保护)
    ② 帧超时未收到任何反馈:定时器兜底重传(后备保护,防止 NACK/ACK 自身丢失卡死链路)
  • 接收端(Receiver)
  • 顺序收帧 → 回复LLR_ACK(累积确认:ACK (X) = Seq 1~X 全部完好接收)
  • 检测 Seq 空洞(丢包)→ 立刻发送LLR_NACK(丢失Seq),开启Discard Window 丢弃等待窗口,暂不上报乱序给上层,等待重传补齐;
  • 选择性重传:无论 NACK / 超时,只补发丢失序号,不回退整个发送窗口,吞吐几乎无损耗。
  • 窗口体系
  • Replay Window(发送侧):起点 = 首个未 ACK 帧,终点 = ACK 到来前最后一个发送的 LLR 帧;窗口大小匹配链路 BDP(带宽 ×RTT)。
  • Discard Window(接收侧):起点 = 生成 NACK 时刻,终点 = 收到对应重传 Seq 帧。

3. 链路初始化流程

上电 / 链路 UP 时依靠LLR_INIT+LLR_INIT_ECHO协商初始序列号,同步两端 Seq 计数起点,完成握手后链路才允许传输业务 LLR 帧。

6.2 LLR CtIOS 详解(Control Ordered Sets 控制有序集)

CtIOS 是 UEC 里承载 LLR 控制信令的标准 64/66B 块编码格式,4 种专用 LLR 控制有序集,用来在链路上双向传递握手、确认、丢包通知指令。

1. 四类 CtIOS 功能定义

CtIOS 类型发送方核心作用携带关键字段
LLR_ACKLLR 接收端 Rx累积确认:告知发送端≤ack_nack_seq 的所有帧全部接收正常,发送端可释放对应 Replay 缓存ack_nack_seq(完整 22bit 拆分:高 19bit + 低 3bit)
LLR_NACKLLR 接收端 Rx否定确认:通知发送端ack_nack_seq 这个序号帧丢失,请求立刻重传该 Seqack_nack_seq(同 ACK 位域拆分格式)
LLR_INIT任意一端(发起方)链路初始化握手:下发本端期望的初始序列号 init_seq,同步链路 Seq 基线init_seq (22bit 拆分)、init_data 配置参数
LLR_INIT_ECHO对端(应答方)回应 INIT 握手:告知发起方已接收并解析 INIT,本端就绪,可以收发 LLR 业务帧回带协商后的 init_seq、init_data

2. 统一 64/66B CtIOS 块帧格式(表格拆解)

所有 LLR CtIOS 共用一套块封装结构,Sync、固定标记、块类型完全统一:

  1. Sync 同步位(bit0/1):固定10,标识这是 64/66B 控制块
  2. D0 块类型字段:固定0x4B区分 LLR 类控制集
  3. D1 子类型码(区分 4 种 CtIOS)
  • LLR_ACK = 0x01
  • LLR_NACK = 0x02
  • LLR_INIT = 0x03
  • LLR_INIT_ECHO = 0x04
  • 核心序号分段存储(D2 + D4 [7:4])
    22bit 序列号被拆成两段存放:
  • D2:高 19bitack_nack_seq<19:4>/init_seq<19:4>
  • D4 高 4 位:低 3bitack_nack_seq<3:0>/init_seq<3:0>
  • 固定填充位 D3=0x6,D5/D6/D7 默认填 0
  • INIT/INIT_ECHO 额外在 D5 携带init_data<15:0>初始化配置参数
  • ACK/NACK 无 init_data,D5/D6/D7 全部置 0 填充对齐块大小

3. CtIOS 传输关键特性

  1. 有序传输保障:Ordered Sets 保证控制信令和业务帧的时序对齐,不会出现控制帧超前 / 滞后业务帧导致的 Seq 错乱;
  2. 双向承载:ACK/NACK 由 Rx 发给 Tx(反向反馈通道);INIT/INIT_ECHO 双向均可发起握手;
  3. 轻量开销:CtIOS 是标准 64/66B 块封装,相比独立以太网控制帧,封装开销极小,适配 200G/400G/800G 超高带宽低时延场景;
  4. 兼容性隔离:D0=0x4B 作为 LLR 专属标识,和 UEC 其他 CtIOS(如 PFC、故障告警控制集)互不冲突。

6.3 LLR + CtIOS 完整联动流程极简串联

  1. 链路初始化阶段
    设备 A 发LLR_INITCtIOS → 设备 B 收到后回复LLR_INIT_ECHOCtIOS → 两端对齐 init_seq,链路就绪。
  2. 正常传输无丢包
    A 连续发业务 LLR 帧(Seq1/2/3…)→ B 逐帧接收,间隔回复LLR_ACK(X)CtIOS → A 收到 ACK 滑动 Replay 窗口、释放缓存。
  3. 发生单帧丢包(如 Seq2 丢失)
    B 检测 Seq 空洞 → 立即发送LLR_NACK(2)CtIOS;
    A 收到 NACK CtIOS → 从重放缓存取出 Seq2 选择性重传;
    重传 Seq2 抵达 B 补齐空洞 → B 回复新的LLR_ACK(3)CtIOS 确认。
  4. 极端场景(NACK CtIOS 自身丢失)
    B 发的 NACK 半路丢包,A 侧 Seq2 计时器超时 → A 主动重传 Seq2;重传帧到 B 后依然能补齐 Seq,后续正常 ACK CtIOS 收尾兜底。

最终一句话浓缩

  1. LLR:UEC 逐跳低时延选择性重传无损机制,靠 Replay/Discard 双窗口 + NACK / 超时双保护实现链路可靠;
  2. LLR CtIOS:承载 LLR 握手、ACK、NACK 四种控制信令的标准化 64/66B 有序控制块,是 LLR 收发两端交互指令的唯一载体。

7、LLR 协议层架构位置

  1. 层级插入位置
    LLR(Link Layer Retry)部署在LLC/MAC Client(上层)和MAC Control 子层(下层)之间,属于链路层(Link)内部可选子模块。
  2. 完整协议栈从上到下:
    高层业务层 → LLC/MAC 客户端 →LLR(可选)→ MAC Control(可选)→ MAC 介质访问控制 → Physical 物理层
  3. 定位意义:
    完全嵌套在标准以太网 MAC 体系内,不改动底层 MAC/PHY 基础框架,可按需开启 / 关闭 LLR 能力,兼容传统以太网流量。

8、LLR 序列号(Sequence Number)核心规则

  1. 按帧粒度区分流量
    MAC 下发的以太网帧被分成两类:
  • LLR-eligible(启用 LLR 重传保护):需要链路可靠重传的业务帧(如 RoCE、HPC、AI 算力流量)
  • LLR-ineligible(不启用 LLR):普通标准以太网流量,不走 LLR 重传逻辑
  1. 20bit 序列号分配规则
    仅LLR-eligible 帧由 LLR 发送端分配一个20bit 唯一递增序列号;该 Seq 号直接嵌入在帧前导码(Preamble)的字节 1~3 中;
    非 LLR 帧无此 Seq 字段,使用传统标准前导。

9、两种帧的前导码(Preamble)字节格式对比

标准以太网前导共 8 字节(Byte0~Byte7,末尾 0xD5 为 SFD 帧起始定界符)

1. LLR-ineligible 普通帧(标准以太网前导)

  • Byte0 ~ Byte6:全部固定 0x55(二进制1010 1010)
  • Byte7:固定 SFD 0xD5(1010 1011)
    无任何序列号嵌入,完全兼容传统以太网。

2. LLR-eligible 受保护帧(改造型前导)

  • Byte0:依然标准 0x55(1010 1010)
  • Byte1:高 4bit 固定标识1110(0x7 前缀,用来标记这是 LLR 帧),低 4bit 为 20bit Seq 的最高 4 位
  • Byte2 + Byte3:承载 20bit 序列号剩余 16 位
    → Byte1 低 4 + Byte2 (8bit) + Byte3 (8bit) = 完整 20bit LLR 序列号
  • Byte4 ~ Byte6:恢复标准 0x55
  • Byte7:标准 SFD 0xD5 不变

10、关键特性小结

  1. LLR 是可选子层,不强制部署,兼容传统以太流量;
  2. 靠前导码改造实现 Seq 号承载,无需修改以太网帧载荷头部,开销极低;
  3. 流量隔离:可混合传输受 LLR 保护的高可靠业务 + 无保护普通以太业务;
  4. 20bit 序号空间足够大,长链路、高速率场景下极少出现序号回绕问题。

相关新闻

  • 民间核查倒逼行业变革:科研合规不能只靠事后举报,前置自检才是保护学者的底线
  • 德思特干货 | 卫星导航增强技术全景解析与高精度仿真验证
  • 终于找到做零添加老酸奶代工的源头厂!配方超干净

最新新闻

  • 终极指南:联想拯救者工具箱如何彻底改变你的游戏本体验
  • 开源 AI 工具链:从碎片化拼装到极简编排的工程实践
  • 网贷催收维权场景实测,复盘法务数字人 C 端落地实用性
  • 终极指南:5步快速解锁中兴光猫工厂模式,获取永久Telnet权限
  • 软件许可证不够用怎么办?试试“许可复用“,一份许可多人干活
  • Strix Halo 架构下运行大模型的能效比分析

日新闻

  • Arduino-ESP32项目深度解析:解锁隐藏芯片支持与架构演进
  • 2026年 系统窗厂家/品牌推荐榜单:隔音系统窗+高端系统门窗的核心优势与选购指南 - 品牌发掘
  • NVBench:首个双语非言语发声语音合成评测基准详解与实践

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号