40G / 10G和100G / 25G以太网中的序列化和序列化时间


15

最近,我参与了有关托管OpenStack平台的Leaf / Spine(或CLOS)网络的最低​​延迟要求的讨论。

系统架构师正在努力为他们的事务(块存储和未来的RDMA方案)提供尽可能低的RTT,并且声称100G / 25G与40G / 10G相比大大减少了序列化延迟。所有相关人员都知道,端到端游戏中还有很多因素(任何因素都可能损害或帮助RTT),而不仅仅是NIC和交换机端口序列化延迟。尽管如此,有关序列化延迟的话题仍在不断涌现,因为它们是一件事,如果不跳过可能非常昂贵的技术鸿沟,就很难对其进行优化。

稍微简化一下(省去了编码方案),可以将序列化时间计算为位数/比特率,这让我们从10G的〜1.2μs开始(另请参见wiki.geant.org)。

For a 1518 byte frame with 12'144bits,
at 10G (assuming 10*10^9 bits/s), this will give us ~1.2μs
at 25G (assuming 25*10^9 bits/s), this would be reduced to ~0.48μs 
at 40G (assuming 40*10^9 bits/s), one might expect to see ~0.3μs
at 100G (assuming 100*10^9 bits/s), one might expect to see ~0.12μs

现在开始有趣的一点。在物理层,通常将40G划分为4条10G通道,将100G划分为4条25G通道。取决于QSFP +或QSFP28变体,有时可使用4对光纤束完成此操作,有时可将其通过单光纤对上的lambda分开,其中QSFP模块自己执行一些xWDM。我确实知道有1x 40G或2x 50G甚至1x 100G通道的规格,但是暂时不考虑这些。

要估计多通道40G或100G上下文中的串行化延迟,可以说需要知道100G和40G NIC和交换端口实际上是如何“将比特分配到(一组)电线”的。在这里做什么?

有点像Etherchannel / LAG吗?NIC /交换端口在一个给定通道上发送一个“流”的帧(读取:在帧的哪个范围内使用任何哈希算法的相同哈希结果)?在这种情况下,我们期望序列化延迟分别为10G和25G。但从本质上讲,这将使40G链路仅为4x10G的LAG,从而将单流吞吐量减少到1x10G。

这有点像按位循环吗?每个位是循环分布在4个(子)通道上的吗?由于并行化,这实际上可能导致较低的序列化延迟,但是引发了有关按顺序交付的一些问题。

它像逐帧循环法吗?整个以太网帧(或其他大小合适的比特块)通过4个通道发送,以循环方式分配吗?

是否完全是其他东西,例如...

感谢您的评论和建议。

Answers:


14

划分为多个通道的部分在IEEE 802.3ba标准中称为物理编码子层。Gary Nicholl的演示文稿对此进行了很好的概述。

简短的解释是,数据以64位的块分为多个通道(在线路上编码为66位用于时钟恢复)。因此,一旦数据包大小超过N * 64位(= 4通道= 32字节),它就可以充分利用所有通道。编码中会有一些延迟,但这可能是特定于实现的。

此图来自上面的链接: 物理编码子层功能


1
“编码会有些延迟”,嗯。现在您打开了另一罐蠕虫!延迟多少钱?它会影响整体数据包延迟吗?等等...
管道

1
啊,谢谢你。以我的理解,这些“单词”就是“适当大小的位”,就像我在原始帖子中所说的那样。那接近吗?
Marc'netztier'Luethi '18 -10-3

1
确实是@ Marc'netztier'Luethi。
jpa,

@pipe是的。幸运的是“所有相关人员都知道还有更多因素” :)
jpa

2
@pipe好吧,我想我们把它放在一边。从现在开始提出的任何挑战,我都会回答:“只要您一次发送足够的数据(32字节)以允许NIC /端口在四个通道上循环,您将获得更短/并行的序列化延迟你们都追了这么多”。当然,任何带有IP标头且没有有效负载的半烘焙以太网帧都已经超过了该限制。因此:没关系。
Marc'netztier'Luethi

16

你太想了。

使用的车道数量并不重要。无论您是通过1条,2条或5条通道传输50 Gbit / s,串行化延迟都是20 ps / bit。因此,无论使用哪种通道,您都将每100 ps获得5位。将数据拆分为通道并进行重组是在PCS子层中进行的,即使在物理层的顶部也不可见。无论您遇到什么情况,100G PHY是在单个​​通道(每个10 ps,共100 ps)上顺序地串行化10位,还是在10个通道(每个100 ps,共100 ps)上并行地串行化10位无关紧要-重新建立该PHY。

自然,100 Gbit / s的延迟是50 Gbit / s的一半,依此类推,因此序列化(在物理层之上)的速度越快,帧传输的速度就越快。

如果您对接口中的内部序列化感兴趣,则需要查看用于速度类的MII变体。但是,此序列化是即时进行的或与实际MDI序列化并行进行-确实需要一分钟的时间,但这取决于实际的硬件,并且可能无法预测(大约2-5 ps的时间是我对100 Gbit / s的猜测)。由于涉及更多的因素,我实际上不会为此担心。10 ps是您从另外2毫米(!)电缆获得的传输延迟的顺序。

使用40个Gbit / s的四个10 Gbit / s的通道与聚合四个10 Gbit / s的链路不同。一条40 Gbit / s的链路(无论通道数如何)都可以传输单个40 Gbit / s的流,而LAGged 10 Gbit / s的链路则不能。另外,40G的串行化延迟仅为10G的1/4。


3
谢谢你的评论。因此,您要说的是,在10/25/40 / 100G范围内, 无论给定物理层使用多少通道(给定或分配),每帧位数/比特率=序列化延迟的经验法则仍然有效。采取一些边际差异)?
Marc'netztier'Luethi '18 -10-3

6
是。在这方面,多通道以太网与聚合链路非常不同。
Zac67 '18 -10-3
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.