《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 02 Clos拓扑

本章回答以下问题:

  • 什么是 Clos 拓扑,它与“接入 - 汇聚 - 核心”拓扑有何不同?
  • Clos 拓扑的特征是什么?
  • Clos 拓扑对数据中心网络的影响是什么?

Clos拓扑

云原生数据中心基础设施的先行者们想要构建一种支持大规模水平扩展网络。

基本的Clos拓扑如图2-1所示,一层称为spine(主干交换机),一层称为leaf(叶子交换机)

image-20240304224755173

因此该布局也通常被称为 leaf - spine拓扑

  • 每个leaf交换机同时连接到每个spine交换机上。
  • leaf交换机之间没有直接连接,而是通过spine交换机进行相互连接。
  • 服务器通过leaf交换机连接到网络。

在部署网络时,通常的做法是将服务器和leaf交换机放在同一个机架,并将leaf交换机放在机架的顶部。因此,leaf交换机通常称为架顶交换机(TOR)

因为在任何两台服务器之间都有两条以上的路径,这种拓扑产生了一个高容量的网络。该网络拓扑中添加了更多的 spine 交换机,因此增加了 leaf 交换机之间的可用带宽。

spine交换机只有一个目的:连接不同的leaf交换机。

  • 服务器不会直连到 Spine。
  • Spine 也不承担其他的功能。因此 Spine 与“接入 - 汇聚 - 核心”类型网络中的汇聚交换机功能并不相同

Clos 拓扑中,所有功能都下沉到了网络边缘的leaf 交换机和服务器节点上,网络中心的 spine 交换机除连接 leaf 交换机之外并不提供任何其他的网络功能。

由于具有水平扩展的架构,Clos 网络可以用一种非常一致的方式进行扩展。 通过添加更多的 leaf交换机和服务器节点,可以增加网络支撑的工作负荷。spine 交换机只用于扩展边缘节点之间的可用带宽。

相比之下,在“接入 - 汇聚 - 核心”类型的网络中网络的扩展是通过增强汇聚交换机的CPU来实现的,这样的架构称为垂直扩展架构

图2-2 经典的三阶段Clos 拓扑

image-20240304224900181

使用同类设备

通过这种拓扑,Charles Clos 使得构建非常大型的电信级网络变得更经济,因为可以使用相对较小的交换机来构建网络。 以类似的方式,采用 Clos 拓扑结构,我们可以使用简单的盒式交换机 (这种交换机的功能是固化的,出厂后不能通过扩展模块进行升级)来构建非常大型的分组交换网络。

路由作为基本的互连模式

“接入 - 汇聚 - 核心” 网络的一个基本限制是只能支持两个汇聚交换机

Q: Clos 拓扑如何才能支持两个以上的 Spine 交换机?

A: 在Clos 拓扑中没有使用生成树协议 (STP) 作为交换机之间的互连控制协议。在 Clos 网络中:

  • 仅在网络边缘 (即在单个机架内) 直接支持桥接。
  • 跨机架的桥接,使用例如虚拟可扩展局域网 (VXLAN)的网络虚拟化解决方案。(重点掌握)

Q: 那路由方式(routing)到底是如何支持多台 Spine 的呢?

A: 通过 ECMP (Equal-Cost Multipath,等价多路径)路由实现。现在几乎每种数据转发芯片都支持IP路由,并且 IP路由和桥接的成本,延迟和带宽几乎相同,消除了对IP路由速度较慢的担忧。ECMP 允许沿着多个等价路径中的任何一个路经转发数据包。例如,在图 2-1 中,一个leaf交换机可以使用任意 spine 交换机连接到任何一个其他 leaf 交换机,并且连接到任何一个 leaf 交换机的代价是相同的。

因此,基本上来说,Clos 拓扑使用了路由而不再是桥接来作为主要的数据包转发模式。

Clos拓扑中的收敛比

在分组交换网络中,交换机的收敛比被定义为下行链路和上行链路带宽之比。

在leaf交换机层面,下行链路是面向服务器节点的连接,而上行链路是面向spine交换机的连接。

1:1的收敛比意味着下行总带宽等于上行总带宽。

大部分数据中心都会确保Clos网络中的高层具有1:1的收敛比。在三层或四层Clos网络中,可能只在leaf级别不是1:1的收敛比。

采用1:1的收敛比的网络也被称为非阻塞网络

image-20240305005702752

假设spine和leaf都是n端口交换机且所有的n个端口都具有相同的带宽,并采用1:1的超额订阅比,则图2-1中的Clos拓扑可连接的最大服务器数量为 n 2 / 2 n^2/2 n2/2

推导如下:

leaf上端口数量为 n / 2 n/2 n/2,spine数量为 n / 2 n/2 n/2,leaf最大数量 = n × n / 2 n / 2 = n \frac{n \times n/2}{n/2}=n n/2n×n/2=n

可连接的最大服务器数量= n × n / 2 = n 2 / 2 n \times n/2 = n^2/2 n×n/2=n2/2

假设图2-3中所有交换机都是四端口交换机,leaf交换机L1到L4各有两个连接到服务器的端口,以及和每个spine交换机连接的一个端口,可连接的服务器总数为 4 × 4 / 2 = 8 4 \times 4 /2 = 8 4×4/2=8。如果使用 64 端口交换机,则可连接的服务器总数为 6 4 2 / 2 = 2048 64^2/2 = 2048 642/2=2048台。

在一个使用n端口交换机的完全展开的二层Clos拓扑中,一共需要 n + n / 2 n + n/2 n+n/2台交换机。

尽管 2048 台服务器足以满足大多数中小型企业的需求,但这种设计号称能支持成万甚至数十万台服务器,如何才能实现呢? 书中将在“扩展 Clos 拓扑”中进行说明。

需要补充的是,采用 1:1 收敛比的网络也称为非阻塞网络 (从技术上讲,它实际上是非竞争性的),因为理论上从一个下行链路到一个上行链路的流量不需要与来自其他下行链路的流量进行竞争。**但是,即使超额订阅比为 1:1,Clos 拓扑在技术上也只能是可重排的无阻塞,而不是完全无阻塞。**在某些流量模式下,流的哈希算法可能导致来自不同下行链路的数据包使用相同的上行链路(如“流和拥塞”中所述) 。如果可以对使用同一上行链路的来自不同下行链路的流重新排列,以使这些流使用不同上行链路,则可以使网络再次畅通无阻。因此,这被称为可重排的非阻寒。

流和拥塞

当到目的地的下一跳节点超过一个时,路由器可以随机选择一个节点来转发教据包,或者选择一个节点以确保属于同一个流的所有数据包都使用相同的下一个节点。一个流大致定义为一组相关的数据包。

最常见的是TCP或UDP的流定义,对这两种协议,一个流定义为源IP地址、目标IP地址、4层协议类型 (TCP或UDP) 、源端口和目标端口组成的五元组。 其他协议的数据包对于流也有相应的定义。

识别一个流的主要原因是为了确保与该流相关的协议正常运行。如果节点使用不同的网络路径转发相同流的多个数据包,则这些数据包可能以与发送顺序不同的顺序到达目的地。这种无序交付会严重影响协议的性能,进而影响使用该协议的应用程序的性能。但在另一方面,确保最大化利用所有可用网络带宽也很重要,即尽量使用所有可以到达目标的网络路径。每个网络节点都会基于这两点进行平衡,以做出转发决策。

为确保一个流的所有数据包都采用相同的下一跳,路由器 (硬件或软件) 使用了基于流的哈希算法。这意味着路由器会根据数据包的头信息和一些其他信息,例如来源的交换机端口,为每个数据包计算一个哈希值。然后使用该哈希值的某些固定字节对可用下一跳节点个数取模,以计算该数据包使用的下一跳节点。这种计算流的下一跳的方法使路由器能够确保一个流的所有数据包都采用相同路径进行转发,而无需在路由器中为每一个流单独保存状态。

需要理解的一个重要因素是,虽然对流进行哈希可以保证流在链路上均匀分布,但对应到数据包的分配并不均匀,这是因为不同的流中有不同数量的数据包。这意味着尽管网络中的流均匀分布,但总带宽的利用并不均匀。这种情况导致了链路拥塞,特别是在某些流中包含的数据包远超过合理数量的情况下。包含较多数据包的流称为大象流,而数据包相对较少的流称为老鼠流。网络表现出经典的重尾分布形态,一部分流占用了绝大部分的网络带宽。当多个大象流被分配在同一链路上时,将引起网络拥塞,并影响该链路上的老鼠流。这就是所谓的象 - 鼠(elephant-mice) 问题

即使没有象 - 鼠问题,在某些特定的流量模式下,流哈希算法也可能导致某些链路相对于其他链路更偏向于被用于转发。这种不平衡的上行链路利用率被称为流量极化。大多数数据转发芯片都有更改其哈希算法参数的功能,以缓解或消除流量极化。

互连链路速率

常见的Clos模型部署在服务器链路使用一种速率,而交换机间链路(ISL, inter-switch link)则使用更高的速率。使用高速上行链路的主要原因是,可以使用更少的spine交换机来支持相同的收敛比。

目前为止,只有极少数大型数据中心运营商在网络中使用等速上行链路。

这样的好处是:

  • 即使使用端口较少的交换机,也可以构建很大的网络。(最主要的原因)

  • 更好的负载均衡。

    根据上一节中的示例,使用较低速率的交换机意味着该网络中可以使用 54 个10GbE的10端 spine 交换机,而不是16个40GbE的32端口交换机(32个 40GbE 端口中的一半)。由于下一跳数量由 16 个增加到 54个,大大降低了象 - 鼠问题的风险。

  • 更多的交换机意味着在链路或 spine 交换机发生故障时,受到影响的故障域更小

一些现实的限制

前面部分的数字是根据理论计算出来的,并不完全符合实际情况。实际与理论不符的原因与 Clos 拓扑无关,而是与设备散热,机架大小标准,服务器摆放和交换芯片技术等的技术限制有 关。

最常见的是每个机架上20台或40台服务器

image-20240306005421041

以图2-4 左为例,假设每个机架上有40台服务器,使用一个有64个10GbE端口的交换机连接这写服务器,在交换机上还有24个空闲端口。

如果仅将其中20个用于上行链路,这上行链路带宽为200GbE,收敛比为 400 : 200 = 2 : 1 400:200 = 2:1 400:200=2:1

在二层Clos网络中,可以连接 64 × 40 = 2560 64 \times 40 = 2560 64×40=2560个服务器,大于理论上的2048台服务器( 64 × 64 / 2 64 \times 64 /2 64×64/2

假设spine和leaf都是64端口的设备,因为spine要连接到每一台leaf,因此leaf最多64台,spine为20台

以图2-4 右为例,将24个10GbE端口合并为6个40GbE端口组成一个4-spine交换机网络,则收敛比为 400 : 160 = 2.5 : 1 400:160 = 2.5:1 400:160=2.5:1

由于大部分企业中的服务器不支持40GbE或100GbE的端口,因此一些40GbE或100GbE的端口会被拆分为10GbE或25GbE的端口,并使用这些端口连接到服务器。假设面向服务器的连接速率为25GbE,每个机架不超过40台服务器,则需要10个100GbE的连接服务器的端口(10 x 100 = 25 x 40),对于1:1的收敛比,需要10个100GbE的连接spine的端口,一共使用leaf上的20个端口,会导致交换机上有很多未使用的端口。因此,有些资源少的组织会部署双连接服务器,以利用40个面向服务器的端口。

简而言之,尽管数据中心运营商希望使用端口数量较多的交换机来构建更大的网络,但他们也想在 leaf 节点使用端口数量较少的交换机。为了满足这些需求,交换机设备供应商通常会提供两种(如果不是更多的话)交换机设备类型,一种用于spine节点,一种用于 leaf 节点。

细粒度的故障域

如果有2个以上的spine交换机,则单个链路或spine节点的故障不会造成灾难性的后果。

对于有16台spine交换机的网络,单个spine节点或链路故障只会导致总带宽减少 1 / 16 1/16 1/16

考虑一个具有n台spine交换机( S 1 − S N S_1-S_N S1SN)和m台leaf交换机( L 1 − L M L_1-L_M L1LM)的网络拓扑。

假设当L1和S1之间的链路发生故障时,所有其他leaf交换机将停止采用从S1来到L1。对于已经到达S1,但需要发送到L1的流量,可以通过L2和S2发送到L1。

尽管在leaf和spine之间跳转的流量会导致这些leaf交换机的链接发生拥塞,但是与STP不同,路由协议将故障链路的影响仅限制在连接到该链路的节点上。

拓展Clos拓扑

本节中,假设每层之间的收敛比都为1:1,只有最底层除外。

image-20240306230354900

图2-5(b)中,使用四端口交换机构建了一个可以连接16台服务器的三层Clos网络。

将原本二层Clos网络中的leaf交换机下再接入一层交换机,将虚线框看作一个二层交换机。

作者称之为虚拟机箱模型

One way to build a three-tier Clos topology is to take the two-tier Clos topology of Figure 2-5(a) but instead of attaching servers directly to the leaves, create another tier by attaching another row of switches.

The model in Figure 2-5(b) is a three-tier model popularized by Facebook. I call this the virtual chassis model because some vendors build a single large chassis-based switch that houses the two layers represented by the dashed box (see “A Different Kind of Chassis for Clos” for more details).

图2-5(c)中,将二层Clos拓扑中的spine交换机拿出两个端口,并将它们连接到另一层交换机(SS1-SS4)

该模型通常称为pod或集群模型。

虚线中的交换机原来属于二层Clos交换拓扑,现在将这些交换机每4个组成一个单元,通常称为pod或集群。

连接这些pod的新的一层交换机在本书中称为“超级spine交换机”

The new layer of switches that connects the pods is called by different names: some refer to this tier as super-spine switches or inter-pod spine switches, whereas others just relabel the three tiers in which the spine becomes the top-most tier, and what we called spine-leaf in the two-tier Clos topology becomes leaf-ToR in the three-tier Clos topology. In this book, we follow the leaf, spine, super-spine terminology.

类似二层Clos的公式,由n端口交换机组成的三层Clos网络可以支持的服务器数量为 n 3 / 4 n^3/4 n3/4

对于64端口交换机,可与支持的服务器总数为 6 4 3 / 4 = 65536 64^3/4=65536 643/4=65536

该公式对以上两种建立Clos网络的方式均成立

一个完全展开的三层Clos拓扑中所需的交换机总数为: n + ( n 2 ) n+(n^2) n+(n2)

以Pod模型为例,每个Pod中的spine交换机的数量为端口数的一半 n/2(虚线框中的S11、S12)

每个spine交换机支持的leaf交换机数量也为 n/2(虚线框中的L11、L12)

因此每个Pod中有n个交换机

超级交换机的数量 = 交换机端口数量n

最多连接n个Pod,即每一个超级交换机都挂接到一个由n个Spine交换机组成的网络中

两种三层模型的比较

这两种模型在流量上的均匀程度有所不同

虚拟机箱模型整个网络的通信延迟更为一致

pod模型,pod内和跨pod的服务器通信存在两种截然不同的延迟。

提供云服务并需要本地化客户实力的数据中心运营商更倾向于使用pod模型。

在pod模型中,如果大多数流量都在pod内部,则开始构建网络时可以之部署较少的超级交换机。

Clos网络的最佳实践

交换机之间不使用多链路

image-20240307010459834

图2-6(b)中,如果L2到S1之间的一条链路发生故障,从L1的角度来看,它仍然能看到通往L2的两条等价路径,导致它想S1和S2发送相同数量的去往L2的流量,然而,S1的带宽实际只有S2的half,这导致一些随机的流遭受分组丢失增加或等待时间延长。

如果将两条链路绑定在一起,则不同的路由协议也不能很好的支持。

If the two links are treated as a bond, the behavior is different with different routing protocols. In Border Gateway Protocol (BGP), we can use a feature called link bandwidth extended community to send proportional traffic to S1 and S2, but the way to make this work in the presence of multiple links and link failures is not commonly supported. Using Open Shortest Path First (OSPF) or Intermediate System to Intermediate System (IS-IS), the link failure would result in a drop in cost of the link, and L1 would simply stop using S1 as a path to L2. So OSPF and IS-IS cannot handle this, either.

因此,不要考虑使用多个链路增加带宽,而是通过增加其他的spine和leaf节点来增加带宽,并使这些节点的链路数量保持一致。

spine交换机只用于连接

保留细粒度的故障域,降低发生拥塞的风险。

不使用框式交换机作为spine交换机

框式交换机是一种模块化的硬件,其内部有多个交换线卡以及一个或多个主控板卡。一个交换线卡上有多个交换端口。机箱内所有的交换线卡均通过一个专用背板或交叉连接。这种内部交叉连接的一个常用称呼是 crossbar。“接入 - 汇聚 - 核心”网络中的汇聚交换机通常是这框式交换机。

当框式交换机发生故障时,其故障原因更复杂,从而使故障定位变得更加困难。

使用框式交换机的另一个顾虑是,它使原本简单的资产管理变得复杂。

应当使用盒式交换机。

主机连接模式(Host Attach Models)

image-20240307011635018

在现代数据中心中,带有一个或两个网卡的主机最为常见。

服务器要么通过单个连接点连接到一个leaf交换机上,也可以是如图2-7所示的双连接,两个网卡分别连接到两个不同的leaf交换机上。使用双连接的主要原因是,如果一个leaf交换机因计划维护或故障而下线,运营商甚至无法承受影响一个服务器机架的损失。这种情况通常发生在较小的数据中心。

当主机为双连接时,一些运营商选择仅在主备模式下使用;也就是说,一次只有一个链接处于活动状态。在这种情况下,运营商只关心确保链路故障不会切断服务器与网络的连接。但大多数运营商更喜欢同时使用这两个链路。在这种情况下,有三种可能的模型:

1)最常见的方式是将主机上的两个连接进行绑定(也称为port-channel或链路聚合)。如图2-7(a)所示。

从主机端来看,它看起来像一个标准的IEEE 802.3ad协议定义的链路绑定。

在交换机方面,最常见的方法是使用通常称为MLAG的供应商专有协议。该协议可以让主机认为它通过绑定(或port-channel)连接到单台交换机。

2)当MLAG与以太网VPN(EVPN)等网络虚拟化技术结合使用时,连接主机的两个leaf交换机之间可能不存在连接,如图2-7(b)所示。

3)主机通过路由使得其在对外转发流量时同时使用这两个连接。如图2-7(c)所示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/355460.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI日报|我国人工智能核心产业规模已达5784亿元!阿里通义Qwen2成斯坦福大模型榜单最强开源模型!

⭐️搜索“可信AI进展“关注公众号,动手做AI Agent书籍,限量免费赠送!快来参与吧~ 文章链接: 福利来啦!动手做AI Agent书籍,限量免费赠送! 今日热点: 我国人工智能企业…

【2024亲测无坑】在Centos.7虚拟机上安装Oracle 19C

目录 一、安装环境准备 1、linux虚拟机安装 2、虚拟机快照 3、空间检查&软件上传 二、Oracle软件安装 1.preinstall安装及其他配置准备 2.oracle安装 三、数据库实例的安装 1.netca——网络配置助手 2.dbca——数据库配置助手 四、ORACLE 19C 在linux centos 7上…

Windows环境部署MySQL_8.4.0 LTS的部署安装、验证连接以及卸载全过程实操手册

前言: 什么是 MySQL MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于Oracle 公司。MySQL 是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内&am…

【html】如何利用hbuilderX 开发一个自己的app并安装在手机上运行

引言: 相信大家都非常想开发一款自己的apk,手机应用程序,今天就教大家,如何用hbuilderX 开发一个自己的app并安装在手机上运行。 步骤讲解: 打开hbuilderX ,选择新建项目 2.选择5app,想一个名字&#x…

双写一致性

双写一致性 当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致。 注意这里是对数据库进行写操作而不是读操作,通常我们有两种方式完成这个写操作,分别是:先删除缓存再修改数据库 和 先修改数据库再删除…

SAP FICO 下载文件报错【调用数据提供商错误】

报错如下图所示: 解决办法: 当弹出保存文件的提示时,不要点击“记住我的决定”

qemu 安装ubuntu22.04虚拟机 -纯命令行-可ssh-带网络-编译安装 linux kernel-编译安装 kernel module

1,预备系统盘数据 1.1 下载光盘 注意需要 liver-server $ wget https://releases.ubuntu.com/22.04.4/ubuntu-22.04.4-live-server-amd64.iso 1.2 挂载并拷贝 $ sudo mkdir /mnt/iso_ubuntu-22.04.4-live-server-amd64 $ sudo mount ubuntu-22.04.4-live-ser…

蔚来汽车AI算法工程师,如何理解注意力?

大家好啊,我是董董灿。 今天分享一个上海蔚来汽车的AI算法岗位面试经验总结帖,面试岗位为算法工程师。 这次面试提到的问题,除了与实习相关内容和反问之外,面试官总共问了8个问题,主要集中在深度学习基础概念的理解上…

不见五陵高管墓,无花无酒锄做田

不见五陵高管墓,无花无酒锄做田 Golang 通用代码生成器仙童 2.4.0 电音仙女尝鲜版七已发布,此版本测试修复了 PostgreSQL 数据库自动反射功能。此版本更新修复了前端代码生成器,并修复了前端多对多界面的缺陷。PostgreSQL 的数据库反射功能刚…

ubuntu访问windows共享文件夹

方法: Ubuntu访问Windows共享文件夹的方法-CSDN博客 基于交换机的PC端网络通信_服务器交换机pc端-CSDN博客 补充说明: 在这里面输入: smb://192.168.0.30/WindowsShareToLinux

【Effective Web】常见的css布局方式--三栏布局

常见的css居中方式–三栏布局 第一种实现&#xff1a;table布局&#xff08;不推荐&#xff09; 缺点&#xff1a;在table加载前&#xff0c;整个table都是空白的&#xff0c;且修改布局排版都十分困难 <table class"container"><td class"left"…

Linux 软链接

# 语法 ln -s <文件夹or文件的真实路径> <自定义路径别名> # 例子 ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 ~/ens33

Flutter 实现软鼠标

文章目录 前言一、如何实现&#xff1f;1、记录鼠标偏移2、MouseRegion获取偏移3、Transform移动图标 二、完整代码三、使用示例总结 前言 flutter在嵌入式系统中运行时&#xff0c;有可能遇到drm鼠标无法使用的情况&#xff0c;但鼠标事件却可以正常接收&#xff0c;此时如果…

基于SSM+Jsp的水果销售管理网站

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

关于椭圆的方程(有Python画的动图)

关于椭圆的方程&#xff08;有Python画的动图&#xff09; flyfish 几何定义 椭圆是平面上所有到两个固定点&#xff08;焦点&#xff09;的距离之和为常数的点的集合。这两个固定点叫做焦点。 解析几何描述 设椭圆的两个焦点为 F 1 F_1 F1​ 和 F 2 F_2 F2​&#xff…

【论文笔记】The Power of Scale for Parameter-Effificient Prompt Tuning

题目: The Power of Scale for Parameter-Effificient Prompt Tuning 来源: EMNLP 2021 模型名称: Soft-Prompt 论文链接: https://aclanthology.org/2021.emnlp-main.243/ 项目链接: https://github.com/google-research/prompt-tuning 核心&#xff1a;针对不同的任务设计不同…

【笔记】打卡01 | 初学入门

初学入门:01-02 01 基本介绍02 快速入门库处理数据集网络构建模型训练保存模型加载模型打卡-时间 01 基本介绍 MindSpore Data&#xff08;数据处理层&#xff09; ModelZoo&#xff08;模型库&#xff09; MindSpore Science&#xff08;科学计算&#xff09;&#xff0c;包含…

视频融合共享平台LntonCVS视频监控安防系统运用多视频协议建设智慧园区方案

智慧园区&#xff0c;作为现代化城市发展的重要组成部分&#xff0c;不仅推动了产业的升级转型&#xff0c;也成为了智慧城市建设的核心力量。随着产业园区之间的竞争日益激烈&#xff0c;如何打造一个功能完善、智能化程度高的智慧园区&#xff0c;已经成为了业界广泛关注的焦…

MacOS设备远程登录配置结合内网穿透实现异地ssh远程连接

文章目录 前言1. MacOS打开远程登录2. 局域网内测试ssh远程3. 公网ssh远程连接MacOS3.1 MacOS安装配置cpolar3.2 获取ssh隧道公网地址3.3 测试公网ssh远程连接MacOS 4. 配置公网固定TCP地址4.1 保留一个固定TCP端口地址4.2 配置固定TCP端口地址 5. 使用固定TCP端口地址ssh远程 …

在 Visual Studio 2022 (Visual C++ 17) 中使用 Visual Leak Detector

在 Visual C 2022 中使用 Visual Leak Detector 1 问题描述1.1 内存泄漏的困扰和解决之道1.2 内存泄漏检测工具的选择1.3 VLD的现状 2 安装和设置VLD的环境变量2.1 安装VLD文件2.2 VLD安装后的目录和文件说明2.2.1 include子目录说明2.2.2 lib子目录说明2.2.2.1 目录整理 2.2.3…