如何利用仪表构造InfiniBand流量在数据中心测试中的应用

2024-05-01 18:20

本文主要是介绍如何利用仪表构造InfiniBand流量在数据中心测试中的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、什么是Infiniband?

在当今数据爆炸的时代,数据中心作为信息处理的中心枢纽,面临着前所未有的挑战。传统的通信方式已经难以满足日益增长的数据传输需求,而InfiniBand技术的出现,为数据中心带来了全新的通信解决方案。
InfiniBand(IB)是一种高性能计算和数据中心网络架构,其设计目标是通过提供低延迟、高带宽以及可扩展性来满足大规模计算和数据传输的需求。让我们深入了解InfiniBand的基本概念。
InfiniBand网络采用点对点的直连架构。每个设备,如服务器、存储设备或其他计算资源,都通过InfiniBand适配器直接连接到网络,形成一个点对点的通信结构。这种设计有助于降低通信的延迟,提高整体性能。

二、Infiniband产生的原因

说到Infiniband网络,我们首先提到传统网络数据传输的架构。在传统的互连结构中,操作系统通常是共享网络资源的唯一所有者,这导致应用程序无法直接访问网络。相反,数据传输通常需要依赖操作系统将数据从应用程序的虚拟缓冲区传输到网络堆栈和线路。在传统网络结构中,应用程序需要通过操作系统来实现数据的传输。
在这里插入图片描述

这个过程包括:

  • 应用程序缓冲区:数据通常存储在应用程序的缓冲区中,等待被传输。
  • 操作系统介入:应用程序通过系统调用等方式请求操作系统将数据传输到网络堆栈中。
  • 网络堆栈传输:操作系统将数据从应用程序缓冲区传输到网络堆栈,其中包括协议栈的处理,例如TCP/IP协议。
  • 网络线路传输:最终,数据通过网络线路传输到目标节点。这种结构下,应用程序无法直接控制网络的数据传输,而是依赖于操作系统进行中介。

InfiniBand技术的突出特点之一是以应用为中心的网络交互方式。这种方式下,应用程序能够直接通过网络进行数据的交换,而无需直接涉及操作系统。
在这里插入图片描述

以下是InfiniBand实现以应用为中心方式的关键机制:

  • 远程直接内存访问(RDMA)
    InfiniBand网络支持远程直接内存访问(RDMA)技术。通过RDMA,应用程序可以在不涉及操作系统的情况下直接访问和交换内存中的数据。这种直接的内存访问方式消除了传统网络结构中的中介步骤,大大降低了数据传输的延迟。

  • 用户空间网络堆栈
    InfiniBand网络允许在用户空间中实现网络堆栈,使得应用程序能够直接处理网络协议。这样一来,应用程序不再需要通过操作系统的内核空间进行数据传输,而是可以直接在用户空间中完成网络操作,提高了效率和灵活性。

  • 零拷贝技术
    InfiniBand还支持零拷贝技术,通过这一技术,应用程序可以直接在内存中操纵数据,而无需将数据复制到中间缓冲区。这降低了数据传输的开销,提高了效率。

三、Infiniband网络架构与TCP/IP

InfiniBand架构与传统的TCP/IP模型在网络通信中有着显著的差异,尤其在分布式存储和高性能计算领域的应用上。InfiniBand架构分为五层,类似于传统的TCP/IP模型。这五层分别是:

  • 物理层:处理硬件接口、电气和光学传输等底层细节。
  • 数据链路层:负责数据的封装和解封装,错误检测和纠正。
  • 网络层:处理数据的路由和转发,确保数据在不同设备之间的正确传递。
  • 传输层:负责端到端的可靠数据传输,包括流控制和错误恢复。
  • 应用层:提供网络服务给应用程序,如TCP、UDP等。

InfiniBand在分布式存储领域,尤其是在分布式并行计算场景的存储前端网络中得到广泛应用。其强调高性能、低延迟,适用于大规模并行计算机集群和需要高吞吐量的应用场景。
TCP/IP则更为普遍地应用于商业网络和一般互联网通信。它是目前互联网通信的主流协议,用于支持各种应用,包括网页浏览、电子邮件、文件传输等。
InfiniBand架构通过引入远程直接内存访问(RDMA)技术等创新,解决了网络传输过程中服务器端数据处理的延迟问题。RDMA技术允许通过网络接口直接访问内存数据,无需内核干预,从而实现高吞吐量和低延迟的网络通信。
在这里插入图片描述

四、Infiniband网络有哪些优势

通过InfiniBand实现应用为中心的网络交互方式,带来了一系列优势,并与传统网络结构形成了关键区别:
1、低时延
由于应用程序能够直接进行数据交换,而无需经过多层的操作系统介入,因此InfiniBand网络实现了更低的传输延迟。这对于对延迟要求较高的应用场景非常重要。
2、高带宽
InfiniBand的应用为中心方式能够更有效地利用网络资源,提高了整体的带宽利用率。这使得InfiniBand网络在大规模数据传输和高性能计算等方面表现出色。
3、高效能
通过支持RDMA、用户空间网络堆栈和零拷贝技术,InfiniBand实现了更为高效的数据传输方式。这种高效能直接影响到应用程序的性能和响应速度。
4、灵活性
以应用为中心的方式使得应用程序更灵活地控制数据传输和网络操作,无需过多依赖于操作系统的限制。这为应用程序提供了更大的自主性和定制性。

五、如何使用测试仪构造基于UDP的infiniband流量

信而泰L23测试平台Renix支持构造UDP报文头内的各种InfiniBand报文协议栈,通过构造Infinbind流量,模拟CA设备与被测设备之间进行请求(request)或者响应(response)消息的交互,以此来验证被测设备针对Infiniband协议字段的识别和处理能力。
测试拓扑及主要配置步骤如下:
在这里插入图片描述
如图所示,测试仪P1与P2端口与DUT的A、B端口互联,通过在测试仪A端口构造Infiniband流量发送至A端口,应答消息由B端口发送至测试仪B端口,来模拟CA设备之间的消息交互场景。
1、创建流量;
2、添加UDP头部;
在这里插入图片描述

3、在UDP头部前添加Rocev2instance;
在这里插入图片描述

4、编辑协议字段并发送流量;
在这里插入图片描述

创建完成后可以在流模板帧界面可以看到创建的该条流量是基于UDP的infiniband流量,并且每个字段都支持自定义编辑。
被测设备收到测试仪发出的Infiniband消息后会解析其中的消息字段并做出响应,通过这种方式可以测试执行send、recive、write、read、原子操作的场景。报文交互现象如下图所示:
在这里插入图片描述

每个Infiniband报文分为payload、路由报文头(header)、CRC校验等,其中header包含以下内容:
本地路由头部(LRH):包括目标端口本地ID(DLID)和源端口本地ID(SLID)。两者都占据16-bits,前者用来表示报文通过交换机需要到达的子网目的地端口;后者用来表示报文源头的子网ID。
全局路由头部(GRH):包括目标端口全局ID(DGID)和源端口全局ID(SGID)。两者都占据128-bits,高64-bits表示CA端口的子网ID,低64-bits表示端口的全局唯一ID(GUID)。
基础传输头部(BTH):包括Opcode、DestQP和PSN。Opcode表示报文操作类型;DestQP表示对端CA的目标QP(QueuePair,是IB协议中信息传输的重要机制);PSN(PacketSequenceNumber)占24-bits,表示报文序列号,可以用于报文顺序检查和报文重传。

六、信而泰DarYu/BigTao系列网络测试仪

DarYu-X系列高性能网络测试仪是信而泰推出的面向高端路由器、高端交换机、数据中心交换机以及高性能应用层设备的测试产品,具有高性能、高密度、高速率等特点,支持单框运行、多框级联等模式。它采用模块化设计,提供3个或12个插槽,测试接口覆盖以太网1G到400G范围内的所有速率,实现按需扩展,帮助企业用户轻松应对测试业务的快速增长和未来业务发展。
BigTao-V系列网络测试仪可实现针对网络设备和网络系统的流量测试及协议仿真,在功能、性能及安全性方面提供全面测试解决方案,满足研发、实验和质量控制等过程中的测试需求。
在这里插入图片描述
在这里插入图片描述

这篇关于如何利用仪表构造InfiniBand流量在数据中心测试中的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/952359

相关文章

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

Go信号处理如何优雅地关闭你的应用

《Go信号处理如何优雅地关闭你的应用》Go中的优雅关闭机制使得在应用程序接收到终止信号时,能够进行平滑的资源清理,通过使用context来管理goroutine的生命周期,结合signal... 目录1. 什么是信号处理?2. 如何优雅地关闭 Go 应用?3. 代码实现3.1 基本的信号捕获和优雅关闭3.2

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6