科普:5G 承载网里的 FlexE ,到底是什么

进入 5G 时代,我们学习传输网知识,经常会看到“Flex”这个前缀。比如说,FlexE、FlexO、FlexHaul、Flex Grid、FlexXXX……

那么,Flex 到底是什么意思?

没错,Flex 是英语 Flexible 的缩写,意思就是“灵活的,可变动的,柔韧的”。

那 FlexE 的 E,又是什么呢?

E,就是我们耳熟能详的“以太网(Ethernet)”。

大家学计算机网络,第一课应该就会介绍以太网。什么 CSMA/CD(载波监听多路访问及冲突检测)、总线型拓扑、100BASE-T,不知道大家还有没有印象?

最早的以太网,诞生于上世纪 70 年代。

一个名叫 Bob Metcalfe 的哈佛博士,利用自己在夏威夷大学 Aloha 项目(世界上最早的无线电计算机通信网)学习时受到的启发,在施乐公司(Xerox)帕洛阿尔托研究中心,和另一名同事 David Boggs,共同设计并实现了世界上第一个以太网。

BobMetcalfe,以太网之父

后来,1982 年,Xerox 与 DEC 及 Intel 组成 DIX 联盟,共同发表了 Ethernet Version 2(EV2)的规格,并将它投入商用市场,且被普遍使用。

没错,就是那个卖打印机的施乐

这个 EV2,就是受 IEEE 承认的 10BASE5。10 代表速度是 10Mbps,BASE 代表传输信号调制方式为基带调制,5 代表传输距离 500 米。

以太网诞生之后,得到了快速的发展,逐渐从最开始的总线式以太网(也叫经典以太网),演变为交换式以太网。

以太网的速率,从最开始的 1Mbps,10Mbps,100Mbps,慢慢衍生出了 1Gbps,10Gbps,100Gbps……

以太网的传输介质,也从早期的同轴电缆,变成了双绞线(80 年代末出现),再到后面的光纤(90 年代中后期出现)。

以太网演进(点击可看大图)

在 OSI 七层模型里面,以太网是数据链路层和物理层的技术。在 TCP/IP 模型中,是网络接口层。

回过头来,我们再看看光。

进入 2010 年代之后,人们开始发现,光传输设备的发展,渐渐无法跟上需求。

一方面,光通信场景较多,UNI(用户网络接口)可能出现多种情况,而底层光传输链路接口和模块是固定的,难以应对这些变化。例如,光传输设备只有三个 40G 通道,而我们的业务是 100G 的。

另一方面,高速率光模块的价格太高,一时半会降不下来。行业需要寻找更低成本的解决方案,例如,1 个 400G 光模块的价格,比 4 个 100G 加起来还高。那么,是不是可以通过绑定多个低速率的方式,实现高速率?

于是,人们开始思考,Ethernet 接口的速率,和光传输的能力速率,能不能解除匹配关系。这个,就是我们常说的“解耦”。

为了实现这个愿望,2016 年,OIF(光互联论坛)推出了 FlexE。

FlexE 的作用,有点像一个“超级变速齿轮”。

它在传统以太网架构的基础上,引入了全新的 FlexE Shim 层,实现 MAC(介质访问控制子层,属于数据链路层)和 PHY(物理层)的解耦。

上层和下层的数据流速率,不再强制绑定。

FlexE 的架构,如下图所示:

FlexE Client

对应于网络的各种用户接口(UNI),与现有 IP/ETH 网络中的传统业务接口一致。可根据带宽需求灵活配置,例如 10G、40G、100G、200G、n*25G。

FlexE Group

本质上就是 IEEE 802.3 标准定义的各种以太网物理层(PHY)。

FlexE Shim

FlexE Shim 是整个 FlexE 的核心。

它把 FlexE Group 中的每个 100GE PHY 划分为 20 个 Slot (时隙) 的数据承载通道,每个 PHY 所对应的这一组 Slot 被称为一个 Sub-calendar,其中每个 Slot 所对应的带宽为 5Gbps。

FlexE 帧结构(来源:《灵活以太网技术白皮书》)

FlexE Client 原始数据流中的以太网帧,以 Block 原子数据块 (为 64/66B 编码的数据块) 为单位进行切分,这些原子数据块可以通过 FlexE Shim 实现在 FlexE Group 中的多个 PHY 与时隙之间的分发。

由于 FlexE Group 的 100GE PHY 中每个 Slot 带宽为 5Gbps 粒度,FlexE Client 理论上也可以按照 5Gbps 速率颗粒度进行任意数量的组合设置,支持更加灵活的多速率承载。

(注意,最开始的 FlexE 版本,每个 slot 带宽是 5Gbps。后来的 FlexE 版本,又推出了其它大小。)

FlexE 的功能,简单来说,就是三个:捆绑、子速率、通道化。

捆绑 (Bonding)

捆绑,就是多根小水管,绑起来,给一个大数据流用。

多路 PHY 一起工作,支持更高速率。

例如,4 路 100GE PHY 实现 400G MAC 速率。

子速率 (Sub-Rate):

子速率,就是一根或多根大水管,给一个小数据流用。

单一低速率 MAC 数据流共享一路或者多路 PHY,并通过特殊定义的 Error Control Block 实现降速工作。

例如,在 100G PHY 上仅仅承载 75G MAC 数据流。

通道化 (Channelization):

通道化,是一根或多根大水管,给若干小数据流(或大数据流)用。

多路低速率 MAC 数据流共享一路或者多路 PHY。

例如,在 100G PHY 上承载 10G、40G、50G 的三路 MAC 数据流。或者,在两路 100G PHY 上复用承载 125G 的 MAC 数据流。

来几个动图,看得更明白一些:

通道化

通道化

通道化 + 捆绑

总而言之,FlexE 在不同基础设施条件下,实现了对不同业务带宽的支持。这就是所谓的“灵活性(Flexible)”。

基于 FlexE 通道化功能,运营商可以在现有线路上,构建端到端的管道。这些管道的服务等级可以不同。

大家应该也想到了网络切片。是的,Flex 也能够满足网络切片的需求。

基于 FlexE 的 5G 网络切片(来源:《灵活以太网技术白皮书》)

FlexE 在现有技术标准和设备的基础上,做了一些“小改动”,就实现了灵活的速率,更大的带宽,以及通道隔离。可以说是既省钱又好用。这样的技术,自然而然受到了大家的欢迎。目前,OIF 已经将标准发展到了 2.1 版本。

现在,FlexE 已经是公认的 5G 承载网关键技术之一,也是第三代以太网技术的核心。

三代以太网