当前位置: 首页 > news >正文

如何利用仪表构造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流量在数据中心测试中的应用

一、什么是Infiniband? 在当今数据爆炸的时代,数据中心作为信息处理的中心枢纽,面临着前所未有的挑战。传统的通信方式已经难以满足日益增长的数据传输需求,而InfiniBand技术的出现,为数据中心带来了全新的通信解决方…...

Kubernetes 文档 / 概念 / Kubernetes 架构 / 节点

Kubernetes 文档 / 概念 / Kubernetes 架构 / 节点 此文档从 Kubernetes 官网摘录 中文地址 英文地址 节点上的组件包括 kubelet、 容器运行时以及 kube-proxy。 管理 向 API 服务器添加节点的方式主要有两种: 节点上的 kubelet 向控制面执行自注册&#xff1b…...

ICode国际青少年编程竞赛- Python-1级训练场-for循环练习

ICode国际青少年编程竞赛- Python-1级训练场-for循环练习 1、 for i in range(3):Dev.step(4)Dev.turnLeft()2、 for i in range(3):Dev.step(2)Dev.turnRight()Dev.step(2)Dev.turnLeft()3、 for i in range(3):Dev.step(2)Dev.turnRight()Dev.step(2)Dev.turnLeft()4、 for…...

Flutter分模块开发、模块可单独启动、包含Provider

前言 当前案例 Flutter SDK版本:3.13.2 目前Flutter都是在一个项目中,创建不同目录进行模块开发,我进行Android原生开发时,发现原生端,是可以将每个模块独立运行起来的,灵感来自这; 折腾了几…...

Element-UI快速入门:构建优雅的Vue.js应用界面

Element-UI是一套基于Vue.js的组件库,提供了丰富的UI组件和交互效果,帮助开发者快速构建出美观、功能丰富的Web应用界面。本文将介绍如何快速入门Element-UI,并搭建一个简单的示例界面。 步骤一:安装Element-UI 首先&#xff0c…...

Flutter 中的 @immutable:深入解析与最佳实践

在 Flutter 开发中,immutable 注释扮演着至关重要的角色,用于标记不可变类。不可变类顾名思义,其状态一旦创建便不可更改,这与可变类截然不同。后者允许在创建后对实例进行修改。 immutable 的利好 引入不可变类可以带来诸多优势…...

Pandas数据可视化 - Matplotlib、Seaborn、Pandas Plot、Plotly

可视化工具介绍 让我们一起探讨Matplotlib、Seaborn、Pandas Plot和Plotly这四个数据可视化库的优缺点以及各自的适用场景。这有助于你根据不同的需求选择合适的工具。 1. Matplotlib 优点: 功能强大:几乎可以用于绘制任何静态、动画和交互式图表。高度可定制&a…...

人工智能的发展将如何重塑网络安全

微信搜索关注公众号网络研究观,获取更多信息。 人们很容易认为人工智能 (AI) 真正出现是在 2019 年,当时 OpenAI 推出了 ChatGPT 的前身 GPT-2。 但现实却有些不同。人工智能的基础可以追溯到 1950 年,当时数学家艾伦图灵发表了题为“计算机…...

Prometheus+Grafana多方位监控

PrometheusGrafana多方位监控 契机 ⚙ 最近发现火山引擎有托管的Prometheus,可是当前是邀测阶段。并且发现火山云的ECS是自带开机自启的exporter的。刚好需要搭建一套服务器监控,所以研究了一套Prometheus监控,包含linux主机监控nginx监控es监控rabbitM…...

使用Docker安装Redis

大家好,今天给大家分享一下如何使用docker安装Redis,关于docker的安装和常用命令,大家可以参考下面两篇文章,本文中不做过多描述。 Docker在Windows与CentOS上的安装 Docker常用命令 关于Redis的介绍与常用操作可以参考&#x…...

React 之 Effect与事件(event)(八)

Effect(useEffect Hook) 在React中,Effect(或者更具体地说,useEffect Hook)是一个特殊的函数,它允许你在函数组件中执行副作用操作。这些副作用操作可能包括数据获取、手动更改DOM、订阅或取消订…...

网卡的了解

什么是网卡_csdn网卡是什么-CSDN博客 MAC地址:48位串行号(独一无二) 2^48281 474 976 710 656 10位:10亿 5位:1万 15位:10万亿 网卡就是网络适配器 设置--->网络和Internet--->高级网络设置--->硬…...

SSM框架目录

ssm 知识相关目录主要参考尚硅谷 赵伟风老师的视屏,参考链接为 SSM视频_ SSM技术视频_SSM视频教程_尚硅谷 【注意】有些图片为了简便,所以就直接使用了视屏分析。 1、SSM框架相关知识 SpringFramework 基本概念 链接:SpringFramework 基本…...

MATLAB实现杜拉德公式和凯夫公式的计算固液混合料浆临界流速

MATLAB实现杜拉德公式和凯夫公式的计算固液混合料浆临界流速: 杜拉德公式是用来计算非均质固液混合料浆在输送管中的临界速度的公式,具体形式为: uL FL (2gD / (ρ0 - ρ1))^(1/2) 其中: uL:表示料浆的临界速度,…...

Oceanbase all-in-one单机版部署,通过MySQL客户端连接OB租户,DBEAVER 客户端连接MySQL租户。

一.Oceanbase all-in-one单机版部署 1.修改资源限制。 vim /etc/security/limits.conf root soft nofile 655350 root hard nofile 655350 * soft nofile 655350 * hard nofile 655350 * soft stack unlimited * hard stack unlimited * soft nproc 655360 * hard nproc 6553…...

【DevOps】玩转 Google Cloud:项目切换与 K8s 集群访问

本篇博文将带您深入了解 Google Cloud Platform (GCP) 项目管理和 Kubernetes 集群访问的实用技巧。无论您是 GCP 新手还是经验丰富的云端开发者,都能从中获益匪浅。 目录 一、查看 Google Cloud 项目列表 方法一:使用 gcloud 命令行工具 方法二...

大模型_DISC-MedLLM基于Baichuan-13B-Base医疗健康对话

文章目录 DISC-MedLLM介绍概述数据集部署推理流程 DISC-MedLLM 介绍 DISC-MedLLM 是一个专门针对医疗健康对话式场景而设计的医疗领域大模型,由复旦大学数据智能与社会计算实验室 (Fudan-DISC) 开发并开源。 该项目包含下列开源资源: DISC-Med-SFT 数据集 (不包…...

开源模型 Prometheus 2 能够评估其他语言模型,其效果几乎与 GPT-4 相当

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

【Java】HOT100 贪心算法

目录 理论基础 一、简单贪心 LeetCode455:分发饼干 二、中等贪心 2.1 序列问题 LeetCode376:摆动序列 2.2 贪心股票问题 LeetCode121:买卖股票的最佳时机 LeetCode121:买卖股票的最佳时机ii 2.3 两个维度权衡问题 LeetCode135&…...

绝地求生:PUBG杜卡迪联名进入倒计时3天!

大家好,我是闲游盒。 杜卡迪联名已经进入倒计时3天!喜欢的朋友要注意结束时间可千万别错过! 杜卡迪6色车辆 随着五一小长假的结束,本次混沌漫彩通行证也即将结束,本次通行证31级之后没升1级可额外领取1500BP和挑战者纪…...

【论文阅读】Learning Texture Transformer Network for Image Super-Resolution

Learning Texture Transformer Network for Image Super-Resolution 论文地址Abstract1. 简介2.相关工作2.1单图像超分辨率2.2 Reference-based Image Super-Resolution 3. 方法3.1. Texture TransformerLearnable Texture Extractor 可学习的纹理提取器。Relevance Embedding.…...

读字库写FM24C04

/*PCB机板增加读写24C64函数PAST 2017 12 26 08:10 CODE 7382*/ /*按11键进入手动选择&#xff0c;按12键进入参数设定界面 按1存1 2存2 3存3 15存0 16存1236 17读EEPROM显示正确 L1008 13775061792 ******/ #include <reg52.h>…...

boost::asio::ip::tcp::socket set_option

Boost asio 官方教程简介_asio::write-CSDN博客 boost::asio::ip::tcp::socket 是一个用于异步I/O操作的类&#xff0c;它是Boost.Asio库的一部分&#xff0c;专门用于处理TCP套接字。 以下是一个简单的使用 boost::asio::ip::tcp::socket 的例子&#xff0c;这个例子展示了如…...

华为鸿蒙HarmonyOS应用开发者高级认证答案

判断 1只要使用端云一体化的云端资源就需要支付费用&#xff08;错&#xff09; 2所有使用Component修饰的自定义组件都支持onPageShow&#xff0c;onBackPress和onPageHide生命周期函数。&#xff08;错&#xff09; 3 HarmonyOS应用可以兼容OpenHarmony生态&#xff08;对…...

ElasticSearch 与 OpenSearch:拉开性能差距

Elasticsearch 与 OpenSearch&#xff1a;扩大性能差距 对于任何依赖快速、准确搜索数据的组织来说&#xff0c;强大、快速且高效的搜索引擎是至关重要的元素。对于开发人员和架构师来说&#xff0c;选择正确的搜索平台可以极大地影响您的组织提供快速且相关结果的能力。在我们…...

Java构造器

构造器 无参构造器有参构造器构造方法VS成员方法总结 概念&#xff1a;也称构造方法、构造函数。作用是构造出来一个类的实例&#xff0c;确保对象得到初始化。 格式&#xff1a; 权限修饰符 类名(无参/有参){ }。 分类&#xff1a; 带参数&#xff1a;有参构造器不带参数&am…...

TiDB系列之:使用TiUP部署TiDB集群最新版本,同时部署TiCDC的详细步骤

TiDB系列之:使用TiUP部署TiDB集群最新版本,同时部署TiCDC的详细步骤 一、部署TiDB集群二、准备环境三、安装 TiUP四、安装TiUP cluster组件五、初始化包含TiCDC的TiDB集群拓扑文件六、检查和修复集群存在的潜在风险七、查看可以安装的tidb版本八、部署 TiDB 集群:九、查看集…...

【经典算法】LeetCode 72. 编辑距离(Java/C/Python3/Go实现含注释说明,中等)

题目描述 给定两个单词 word1 和 word2&#xff0c;计算出将 word1 转换成 word2 所使用的最少操作数。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符删除一个字符替换一个字符 原题&#xff1a;LeetCode 72 思路及实现 方式一&#xff1a;动态规划 思路…...

webstorm 常用插件

安装插件步骤&#xff1a; 打开软件&#xff0c;文件 -- 设置-- 插件 -- 输入插件名称 -- 安装 代码截图: code screenShots 先选中代码&#xff0c;按 ctrl shift alt a&#xff0c;就可截取选中的代码颜色注释: comments highlighter 对注释的文字改变颜色高亮成对符号: h…...

clang:在 Win10 上编译 MIDI 音乐程序(二)

先从 Microsoft C Build Tools - Visual Studio 下载 1.73GB 安装 "Microsoft C Build Tools“ 访问 Swift.org - Download Swift 找到 Windows 10&#xff1a;x86_64 下载 swift-5.10-RELEASE-windows10.exe 大约490MB 建议安装在 D:\Swift\ &#xff0c;安装后大约占…...

【redis】Redis数据类型(三)List类型

目录 List类型介绍特点 List数据结构附&#xff1a;3.2以前的版本(介绍一下压缩列表和双向链表)压缩列表ZipList双向链表LinkedList 常用命令lpush示例 lpushx示例 rpush示例 rpushx示例 LPOP示例 RPOP示例 BLPOP非阻塞行为阻塞行为相同的 key 被多个客户端同时阻塞在 MULTI/EX…...

Java面试题:多线程2

如何停止正在运行的线程 1,使用退出标志,使线程正常退出(run方法中循环对退出标志进行判断) 2,使用stop()方法强行终止(不推荐) 3,调用interrupt()方法中断线程 打断阻塞线程(sleep,wait,join),线程会抛出InterruptedException异常 打断正常的线程,可以根据打断状态来标记…...

T型槽地轨承载力是如何连接整个制造过程的强力桥梁(北重公司设计)

T型槽地轨承载力的定义和计算 T型槽地轨是一种用于工业设备运输和装配的关键组件。它由世界上各行各业的生产商广泛采用&#xff0c;其有效的承载力使其成为连接整个制造过程的强力桥梁。本文将介绍T型槽地轨的承载力以及相关的设计要点和应用。 承载力的定义和计算 承载力是…...

【Numpy】一文向您详细介绍 np.linspace()

【Numpy】一文向您详细介绍 np.linspace() &#x1f308; 欢迎莅临我的个人主页&#x1f448; 这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的计算机专业人士&#xff0c;热衷于分享技术见…...

VMware虚拟网卡网络适配器出现黄色感叹号

问题发生&#xff1a;VMware在使用Ubuntu的过程中突然卡死&#xff0c;强制关闭开启后就发生了网络无法连接 找到电脑的设备管理发现VMware的适配器出现黄色感叹号 解决方法&#xff1a; 下载软件ccleaner 扫描问题&#xff0c;懒得去找就修复了所有的问题 最后发现适配器…...

论生命价值

我们该如何定义一个人的生命价值&#xff0c;这是一个十分值得我们深思的问题&#xff0c;而谈论到生命的价值&#xff0c;我们先从非人的东西去谈论它的价值&#xff0c;从我们作为人的角度去思考价值&#xff0c;一个东西对我们有用&#xff0c;这个东西能够让我们的主观上的…...

基于Springboot的民航网上订票系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的民航网上订票系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…...

ubuntu开启message文件

环境&#xff1a;ubuntu 20.04 1、首先需要修改 /etc/rsyslog.d/50-default.conf 文件&#xff1b;源文件中message被注释&#xff0c;如下图&#xff1a; 2、打开注释&#xff1a; 3、重启服务 systemctl restart rsyslog.service 如此即可&#xff01;...

ISIS的基本概念

1.ISIS概述 IS-IS是一种链路状态路由协议&#xff0c;IS-IS与OSPF在许多方面非常相似&#xff0c; 例如运行IS-IS协议的直连设备之间通过发送Hello报文发现彼此&#xff0c;然后建立邻接关系&#xff0c;并交互链路状态信息。 CLNS由以下三个部分组成&#xff1a; CLNP&#xf…...

Vue 工程化开发入门

Vue开发的两种方式&#xff1a; 核心包传统开发模式&#xff1a;基于html/css/js文件&#xff0c;直接引入核心包&#xff0c;开发Vue工程化开发模式&#xff1a;基于构建工具的环境中开发Vue 这里选择Vue cli脚手架 进行开发&#xff0c;搜索教程自行下载。 组件化开发 一个页…...

车牌号识别系统:PyQT5+QT Designe+crnn/PaddleOCR+YOLO+OpenCV矫正算法。

PyQT5&QT Designecrnn/PaddleOCRYOLO传统OpenCV矫正算法。可视化的车牌识别系统项目。 车牌号识别系统 项目绪论1.项目展示2.视频展示3.整体思路 一、PyQT5 和 QT Designer1.简介2.安装3.使用 二、YOLO检测算法三、OpenCV矫正算法四、crnn/PaddleOCR字符识别算法五、QT界面…...

【基于MAX98357的Minimax(百度)长文本语音合成TTS 接入教程】

【基于MAX98357的Minimax&#xff08;百度&#xff09;长文本语音合成TTS 接入教程】 1. 前言2. 先决条件2.1 硬件准备2.2 软件准备2.3 接线 3. 核心代码3.1 驱动实现3.2 代码解析 4. 播放文本5. 结论 视频地址&#xff1a; SeeedXIAO ESP32S3 Sense【基于MAX98357的Minimax&am…...

秋招后端开发面试题 - JVM底层原理

目录 JVM底层原理前言面试题Java 对象的创建过程&#xff1f;什么是指针碰撞&#xff1f;什么是空闲列表&#xff1f;/ 内存分配的两种方式&#xff1f;JVM 里 new 对象时&#xff0c;堆会发生抢占吗&#xff1f;JVM 是怎么设计来保证线程安全的&#xff1f;/ 内存分配并发问题…...

VUE2从入门到精通(一)

**************************************************************************************************************************************************************************** 1、课程概述 【1】前置储备&#xff1a;HTMLCSSJS、WebAPI、Ajax、Node.js 【2】1天&…...

cmake进阶:文件操作之写文件

一. 简介 cmake 提供了 file() 命令可对文件进行一系列操作&#xff0c;譬如读写文件、删除文件、文件重命名、拷贝文件、创建目录等等。 接下来 学习这个功能强大的 file() 命令。 本文学习 CMakeLists.txt语法中写文件操作。 二. cmake进阶&#xff1a;文件操作之写文件…...

ubuntu 安装单节点HBase

下载HBase mkdir -p /home/ellis/HBase/ cd /home/ellis/HBase/ wget https://downloads.apache.org/hbase/2.5.8/hbase-2.5.8-bin.tar.gz tar -xvf hbase-2.5.8-bin.tar.gz安装java jdk sudo apt install openjdk-11-jdksudo vim /etc/profileexport JAVA_HOME/usr/lib/jvm/…...

HTTP 多个版本

了解一下各个版本的HTTP。 上个世纪90年代初期&#xff0c;蒂姆伯纳斯-李&#xff08;Tim Berners-Lee&#xff09;及其 CERN的团队共同努力&#xff0c;制定了互联网的基础&#xff0c;定义了互联网的四个构建模块&#xff1a; 超文本文档格式&#xff08;HTML&#xff09; …...

【DevOps】探索Linux命令行世界:深入了解Shell的力量

目录 一、Linux Shell 详细介绍 1. Shell基础概念 2. Shell的功能特性 3. 常用Shell命令与技巧 4. 高级Shell特性与实践 二、常见的Shell及其比较 1. Bash (Bourne Again SHell) 2. Zsh (Z Shell) 3. Fish (Friendly Interactive SHell) 4. Ksh (Korn SHell) 5. Csh …...

互斥量的使用

文章目录 前言一、互斥量与二进制信号量二、优先级反转与优先级继承三、递归锁 前言 通过学习上一章互斥量理论基础&#xff0c;这一章我们来做一些实验进行验证。 一、互斥量与二进制信号量 互斥量使用和二进制信号量类似 互斥量有优先级继承功能&#xff0c;二进制信号量没有…...

关于面试真题的压迫

1.请描述一下您在使用JavaScript进行DOM操作时&#xff0c;如何提高页面性能和用户体验&#xff1f; 使用事件委托&#xff1a;在父元素上监听事件&#xff0c;而不是为每个子元素都添加事件监听器。这样可以减少事件处理程序的数量&#xff0c;提高性能。 缓存DOM查询&#x…...

安防监控视频平台智能边缘分析一体机视频存储系统客流统计检测算法

智能边缘分析一体机的客流统计检测算法是一种基于人工智能与边缘计算技术的解决方案&#xff0c;专门设计用来实时、准确地统计通过特定区域的人流量。这项技术广泛应用于零售、交通、场馆管理、智慧城市等领域&#xff0c;以帮助管理者更好地理解顾客行为、优化资源配置、提升…...

好用的Tipard 蓝光转换器 (Tipard Blu-ray Converter) mac&win

Tipard Blu-ray Converter 是一款令人惊叹的蓝光解决方案软件&#xff0c;可将蓝光光盘/文件夹转换为 1:1 质量的数字格式&#xff0c;速度提高 30 倍&#xff0c;用于 4K UHD 和 1080p 高清视频。它可以将蓝光光盘和文件夹中的蓝光电影转换为MKV、MP4、WMV、MOV、AVI、FLV、VO…...

CG渲染中材质的作用

在计算机图形&#xff08;CG&#xff09;渲染中&#xff0c;材质&#xff08;Material&#xff09;起着至关重要的作用&#xff0c;它决定了物体表面的外观和特性。以下是材质在 CG 渲染中的主要作用&#xff1a; 表面外观&#xff1a;材质决定了物体表面的外观&#xff0c;包括…...

(1)双指针算法介绍与练习:移动零

目录 双指针算法介绍 练习&#xff1a;移动零 双指针算法介绍 双指针算法常见于数组和双向链表的题型 在数组中&#xff0c;双指针中的指针代表数组元素的下标&#xff0c;而不是真正的指针类型变量 在双向链表中&#xff0c;双指针中的指针即为真正意义上的指针&#xff…...

simlink 初步了解

1.simlink概要 Simulink是基于MATLAB的框图设计环境&#xff0c;它提供了一个动态系统建模、仿真和分析的集成环境。Simulink是一个模块图环境&#xff0c;用于多域仿真以及基于模型的设计。它支持系统设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证。 Simulink的特…...

postman 请求上传文件,post请求携带文件,以及对应postMapping 处接收写法

一、postman 处表单携带文件的方式 先要修改content-type 必须改&#xff0c;否则不支持 Content-Type multipart/form-dataBody 表单处 二、JavaWeb PostMapping 处接收的写法 不要带 RequestBody 不要带 RequestBody 不要带 RequestBody PostMapping(value "/imp…...