我最近参与了有关托管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
br />现在有趣的一点。在物理层,通常将40G划分为4条10G通道,将100G划分为4条25G通道。取决于QSFP +或QSFP28变体,有时会使用4对光纤束来完成此操作,有时会被λ在单根光纤对上分开,其中QSFP模块会自己执行一些xWDM。我确实知道有1x 40G或2x 50G甚至1x 100G通道的规格,但暂时不考虑这些。

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

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

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

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

是否还有其他内容,例如...

感谢您的评论和建议。

#1 楼

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

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

此图来自上面的链接:


评论


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

–烟斗
18-10-3在12:16

啊,谢谢你。以我的理解,这些“单词”就是“适当大小的位”,正如我在原始帖子中所说的那样。那接近吗?

– Marc'netztier'Luethi
18-10-3在12:16

确实是@ Marc'netztier'Luethi。

– jpa
18-10-3在12:19

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

– jpa
18-10-3在12:19

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

– Marc'netztier'Luethi
18-10-3在12:37

#2 楼

您太想了。

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

自然地,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。

评论


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

– Marc'netztier'Luethi
18-10-3在8:44

是。在这方面,多通道以太网与聚合链路非常不同。

– Zac67
18-10-3在10:20