从零学习 InfiniBand-network架构(六)—IB协议链路层QoS如何实现

从零学习 InfiniBand-network架构(六)——IB协议链路层QoS如何实现


🔈声明:
😃博主主页:王_嘻嘻的CSDN主页
🔑未经作者允许,禁止转载
🚩本专题部分内容源于《InfiniBand-network architecture》,侵权必删

   本章将介绍什么是QoS为什么需要QoS,以及在IB协议中如何在链路层实现QoS


什么是QoS

   QoS(Quality of Service) 即“服务质量”,是指网络为特定流量提供更高优先服务的同时控制抖动和延迟的能力,并且能够降低数据传输丢包率。
  对于整个网络来说QoS的实现包括流量优先级的设置、拥塞控制策略、出入流量管理、数据排队等方面。


为什么需要QoS

  在网络中,消息到达目的地的速度的重要性完全取决于应用程序,如果消息传递不够快,一些应用程序可能会极大影响性能甚至发生故障(如车联网信息、公安信息等),而其他应用程序可能不需要消息的快速传递(如流媒体的访问、社交APP的交流等)。换句话说,那些实时性强的应用需要比其他应用程序要求更高的QoS

  为满足用户对不同应用不同服务质量的要求,就需要网络能根据用户的要求分配和调度资源,对不同的数据流提供不同的服务质量;对实时性强且重要的数据报文优先处理,对于实时性不强的普通数据报文,提供较低的处理优先级,QoS应运而生。

如何在IBA链路层中实现QoS

  通常QoS在不同层会有不同的实现方法,而在链路层是通过制定一种优先级通过方案,使每个端口决定链路流量的优先顺序,在IBA中采用Virtual Lane来实现这一功能。

  Virtual Lane由发送和接收buffer对组成,且至少需要两对VL,通常VL0作为数据buffer,VL15作为SMP buffer(SMP包负责携带管理设备信息,在后续章节会有相关介绍),VL1—VL14都可以作为数据buffer,具体VL实现个数与设计需求有关,通常为:

  • 1 data buffer(VL0);
  • 2 data buffer(VL0—VL1);
  • 4 data buffer(VL0—VL3);
  • 8 data buffer(VL0—VL7);
  • 15 data buffer(VL0—VL15);

  具体参数可以在PortInfo.VLCap属性中看到。


在这里插入图片描述

  每个带有VL的端口实现上述QoS功能都必须依赖SLtoVLMappingTable属性(Service Level to Virtual Lane,服务等级和虚拟通道的映射表),这一属性是子网管理器SM配置子网时在CA、交换机和路由器中设置的。

  在传输过程中,每个数据包都包含一个SL字段,用于定义消息发送方所需的优先级,当一个非SMP的数据包被发送到端口的链路层进行传输时,端口的链路层逻辑会根据SLtoVL的映射表来确定数据包需要被放置到哪个数据VL buffer。

  链路中存在多个VL buffer,但只有一个物理连接,所以这要求链路层实现一种公平的VL仲裁算法,防止高优先级数据包长时间占据链路,影响低优先级消息的传输

  为了使接收端能将数据包放入对应的VL,在发送侧的VL处,链路层会对数据包插入一个4-bits的VL标识,以标志该数据包属于哪个VL;且只有当接受端对应的接收buffer有足够空间时,发送端VL才能发送数据,两者通过credit机制(一种通过数据包交互来告知对方,本地的buffer是否能够存放下一个数据包)进行空间的通知;

  • 此外,VL15不受flow control约束,当接受端VL15 buffer没有空间时,发送端仍然可以发送SMP包,这时接收端可以对此静默丢弃。




搜索关注我的公众号【IC墨鱼仔】,获取我的更多IC干货分享!

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Infiniband技术是一种高速、低延迟、高可靠性的网络技术,用于连接服务器、存储系统和网络设备。Infiniband测试是一种对Infiniband网络进行性能、可靠性和功能测试的过程,旨在保证系统的稳定性和运行效率。 Infiniband网络测试可以分为两个方面。一方面是对网络性能的测试,包括带宽、延迟、吞吐量和丢包率等指标的测试,以及对网络拓扑的测试。这些测试可以通过使用网络测试工具,如Iperf和Flent等来完成。对于Infiniband网络的带宽测试,可以使用Iperf来测试其带宽的可用性,在测试中需要设置数据包大小、窗口大小等参数来调整测试的性能,从而达到最大的带宽值。在Infiniband延迟测试中,可以使用Flent来测试传输时延的值,在测试中需要设置不同的网络拓扑和测试参数来比较不同组件的延迟性能。 另一方面,Infiniband测试也可以包括功能测试和可靠性测试。功能测试通常涉及各种网络协议和数据传输方法的测试,包括RDMA、MPI和TCP等。在测试中需要验证这些协议和方法是否正常工作,并确保它们遵守相应的标准。而可靠性测试通常包括各种网络组件的故障切换测试、网络冗余测试和错误恢复测试等。这些测试旨在验证网络在面对不同类型的故障时是否能够正确的切换工作,在出现错误的情况下是否能够快速恢复工作状态。 总之,Infiniband技术为高性能计算、大数据和云计算等领域的发展提供了巨大的支持,而Infiniband测试则是确保这种技术在实际应用中得到高效、可靠地使用的保障。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值