我想估计25 GbE链路(25 GbE)的有效容量,以便在启用(528,544)前向纠错( RS )时传输特定大小的以太网有效负载,但是,我很难得出与RS相关的开销的结论。
为了保持简单,让我们假设所有以太网帧都是1000字节,每个以太网帧的MAC头为14字节,有效负载为982字节,帧检查序列为4字节。
此外,让我们假设除了传输1000字节帧所需的开销之外,在链接上没有额外的开销。因此,这意味着,没有像流量控制或暂停帧,等等。
每秒25e9位,我假设所有要计数的东西都以每秒25e9位(25 Gbps)的速度发送到链路上。我是通过将25.78125e9波特的链路信令速率乘以64位/66位编码率来实现的。
基本效率为96.97%。
人们也可以将其想象为每秒3.125e9字节,或者仅仅是3.125 GBps。
为了估计非FEC情况下的有效以太网有效负载容量,在我看来,我们只需考虑链路上的下列传输:
12B分组间隔7B前导1B帧分隔器14B以太网报头982 B以太网有效载荷4B帧检查序列1020 B
当以太网有效负载在1020字节中占982字节时,相对于有效负载而言,链路的效率为96.27% (982B/1020B)。
如果上面列出的所有项目都以每秒25e9位(25 Gbps)的速度传输,那么可能实现的最大以太网有效负载将是每秒3.0086e9字节(3.01 GBps)。
里德-所罗门FEC的间接费用?IEEE802.3by文档指出,25 25GBASE RS_FEC使用RS(528,514)编码方案。(它还说它操作于Galois域GF(2^ 10 ),其中符号大小为10位,但我猜这与我的问题无关。)
如果我正确理解的话,RS(528,514)最多接收8个64位的数据块,重新排序这些数据块,然后将它们分成两组,每组4组,每个组分配1位开销。因此,从512位开始的数据(64字节的数据)现在由514位表示。
RS_FEC还生成一个14位奇偶校验值,并将其发送到链路上.
因此,以25 Gbps的速率将原始512位数据作为528位RS_FEC数据传输到链路上。也就是说,每66字节就有2字节的开销。这也是96.97%的效率。
假设输入到RS_FEC算法中的数据已在64B/66B编码,则将链路效率从我最初计算的基础96.97%降低到94.03% (0.9697 * 0.9697)。
问题(1)输入到RS_FEC算法中的数据是否已经编码为64B/66B,在应用RS_FEC之后,总效率下降到94.03%?
(2)是否有我不考虑的间接费用?
(3) RS_FEC操纵传输的哪一部分?
例如,序言、SFD和FCS是否包括在内?
分组间隔期间的空隙如何?
(4) IEEE以太网修正标准2 (IEEE Std 802.3by-2016)指出,“25 Galois FEC子层采用里德-所罗门码RS(528,514)在Galois字段GF(2^ 10 )上操作,其中符号大小为10位”。我认为符号大小与我最初的问题无关。
文件还说,“应当使用91.5.2.7所述的编码器”。这是对(IEEE 802.3-2018)文档第6节的参考,该文档实际上约为40 GbE和100 GbE。
我如何把它翻译成25 25GBASE?
(5)同一份文件的第5节显示了一幅图像,其中显示了一个FEC编码的以太网帧(图65-7):S_FEC(5B) +序言/SLD+ FRAME+FCS + T_FEC(6B) +奇偶(14位)+ T_FEC(6B)
这也适用于25 25GBASE吗?如果是的话,我还有更多的问题要问:
(6a) RS算法是否仅适用于前导/SLD+帧+ FCS?
它是否包括包间间隙字符?
(6b)如果以太网帧更长,那么每个64字节的输入数据块会有一个S_FEC + T_FEC +奇偶校验+ T_FEC吗?
或者,每个以太网帧只能看到一次S_FEC和最终的T_FEC吗?
(6c) S_FEC和T_FEC真的分别是5字节和6字节吗?如果是这样的话,那么这难道不使得RS_FEC算法效率极低吗?
在这种大小下,每64字节原始数据的开销将为19个字节(5B +2bit+ 6B +14位+ 6B)。效率仅为77.11% (64 /( 64 + 19) )。
但是,如果每64字节的帧块中只有T_FEC+PARITY,而整个帧在开始时只有一个S_FEC,最后只有一个T_FEC,那么效率就会更高。
谢谢!汤姆
据我理解,在转码过程中,代表原始64b数据块的66b块被输入RS算法,然后创建两个257 B块,每个块加上四个66b块加上1位开销。因此,我们有514b代表原始数据的512 b。那是2b的开销。
然后用于计算在514b块之后发送的14b奇偶校验值。因此,我们现在有528 b表示原始数据的512 b。
因此,链路的容量应从25e9bps减至24.24e9bps(25e9bps* 512/528)。
是否有其他RS开销位或字节发送到链接上?S_FEC和T_FEC是如何插入到以太网帧中的?
RS-FEC是只在帧上运行,还是通过RS-FEC传输到整个链接的每个字符?
谢谢,汤姆
发布于 2019-04-15 16:59:36
不管您使用哪个以太网物理层,名义速度总是物理层顶部的有效带宽。是否使用FEC,哪种PCS代码等并不重要。物理线/光纤上的符号率适当地更高以适应。
因此,超过25 of的最大以太网帧需要精确地(1538 *8/ 25,000,000,000)≈49.2μs (1500字节有效负载,18字节≈开销,20字节L1开销,包括IPG),而不考虑物理层及其选项。
例如,超过25 GB的IPv4上TCP的最大有效吞吐量是(1460 / 1538) * 25,000,000,000 /8≈2.967 GB/s (窗口缩放选项几乎总是必需的)。
正如JFL所指出的,实际的吞吐量取决于您的硬件.并不是所有的25 is硬件都是非阻塞的。例如,25G网卡至少需要PCIe 3.0 x4、PCIe 2.0 x8或等效的插槽(以及适当的后端)才能实现非阻塞传输。
RS应用于PCS (66b/64b编码)和PMA子层之间(参阅IEEE 802.3第108条)。它将64b/66b代码转换为256 b/257 B (108.5.2.3),以便为RS提供空间,因此不需要更高的波特率。
接着:在物理层应用PCS线码、Re转码等.它们不会以任何方式改变数据链路层框架。一般情况下,PCS、RS等只存在于较低的PHY范围内.它们对上面的PHY和以上完全没有影响。
发布于 2019-07-31 20:41:03
我最近看了一下这方面的规范,所以我可以提供一些见解。所有以太网的FEC方案都设计为以与非FEC版本相同的线路速率和串行化速率运行(除了使用高开销RS(544,514) FEC的100 GBASE-KP4之外,但这是完全不同的,因为它使用PAM-4,不支持禁用FEC)。因此,对于10 Gbps,数据速率为10 Gbps,序列化速率为10.3125 Gpbs,启用或不启用FEC。对于25 Gbps、40 Gbps和100 Gbps以太网也有相同的想法。
他们这样做的方式很简单: FEC层从其他协议组件“窃取”比特,以释放足够的比特来传输所需的奇偶信息,然后在另一端恢复原始比特。
让我们从基础开始-R FEC。使用64b/66b行码传输10GBas-R以太网,使用LFSR对64位数据块进行加扰,然后将2位同步报头附加到每个块上,并以10.3125 Gbps的速率串行发送数据。该10 Gbps的设计是为了增加前向纠错,同时保持相同的数据速率10 Gbps的编码和10.3125 Gbps的有线。这是通过获取32个块64b/66b编码数据,剥离每个块上的一个同步比特来释放32比特,添加32校验位的缩短循环码(2112,2080),加扰结果,然后以10.3125 Gbps的速度发送到线路上。
不过,这种方法也有一些折中之处:由于同步标头已经被有效删除,块锁时间大大增加( PHY需要检查2112个块,每个2112位,而不是66个块,每个66个位),将连接的时间延长几个数量级。
新的以太网里德-所罗门FEC做了一些类似的事情,但有一个更大的块大小。64b/66b数据被一次转换为四个块,转换为256 b/ 257 b,20257个比特块被分解为514个10位符号,那些用RS( 528 ,514)编码以产生14个10位奇偶校验符号,用于528个总符号,然后打包并作为5280位块发送。以64b/66b编码的原始数据也将占用66*4*20 = 5280比特。
这两种编码方案都是在64b/66b编码码元的水平上工作的,基本上包括所有的编码码元--数据、前导码、帧间间隙、帧控制字符、差错控制字符等。而且,由于它们在64b/66b编码块的级别上工作,所以FEC块完全独立于分组本身。当链接空闲时,FEC块将根本不包含任何数据。或者它可以包含一个包的一部分,一个完整的包,甚至多个包。RS块包含640字节的数据,因此这可能是多个最小长度帧或MTU帧的一部分。
底线:没有任何类型的数据速率惩罚与启用FEC在一个链接。
https://networkengineering.stackexchange.com/questions/58482
复制相似问题