【计算机网络】TCP协议——2.连接管理(三次握手,四次挥手)

目录

前言 

一. 建立连接——三次握手

1. 三次握手过程描述

2. TCP连接建立相关问题

二. 释放连接——四次挥手

1. 四次挥手过程描述

2. TCP连接释放相关问题

三. TCP状态转换

结束语


前言 

TCP——传输控制协议(Transmission Control Protocol)。是一种面向连接的传输层通信协议

什么是连接

TCP连接是指通过TCP协议在网络中建立的一种可靠的通信链路。TCP连接在应用层之间提供可靠,高效的通信方式,广泛应用于互联网上的各种应用,如网页浏览,电子邮件,文件传输等。

建立连接在操作系统中是需要有对应的数据结构管理,维护的。所以连接的建立,维护都是有成本的

为什么要建立连接

  1. 更好的保证可靠性:建立连接的过程其实就是让通信双方验证各自的发送能力和接收能力是否正常,当前发送接收两端信道是否通畅。
  2. 协商一些重要参数,如:序号初始值,MSS,是否启用SACK,等等。

MSS和SACK可参看【计算机网络】TCP协议报头详解的选项部分

TCP建立连接,通信,断开连接的流程总图如下:

一. 建立连接——三次握手

1. 三次握手过程描述

1. 服务器初始化状态

服务器端进程先创建传输控制块(TCB),socket()创建套接字listenfd,bind()将套接字和端口号绑定,服务器进程准备接收客户端的连接请求。然后服务器进程调用listen()函数,使listenfd成为监听套接字,后续连接都从监听套接字获取。此时服务器端进程处于监听(listen)状态,紧接着调用accept()函数,在listenfd套接字中等待客户的连接到来

服务器端进程调用函数顺序:socket => bind => listen => accept。当执行到accept函数时,服务器进程会一直处于阻塞状态,直到有客户连接请求到达才返回

 【2. 客户端发起连接请求,发送SYN同步报文段,第一次握手

客户端进程也创建传输控制块(TCB),socket()创建套接字,然后向服务器端发送连接请求报文段,这时请求报文段的首部标志位SYN=1,同时选择一个初始序号seq=x,这个初始序号x是随机产生的整数ISN。TCP规定,SYN报文段(即SYN=1的TCP报文段)不能携带数据,但要消耗一个序号。此时,客户端进程进入SYN-SENT(同步报文已发送)状态

客户端进程函数调用顺序:socket => connect。当客户端调用connect函数时,操作系统会自动bind(),客户端进程就会向服务器进程发送连接请求的SYN同步报文段

SYN=1的报文段称为同步报文段

ISN(Initial Sequence Number)初始序列号

seq序号,即当前发送的报文首字节的编号

 【3. 服务器同意建立连接,回复确认信息,第二次握手

服务器端进程收到连接请求报文,若同意建立连接,从listenfd中获取客户端信息,并且由服务器端操作系统向客户端进程发送SYN报文段给出确认。在确认报文的首部中,SYN=1,ACK=1,确认号ack=x+1 。同时也为自己选择一个初始序号seq = y。这个确认报文也不能携带数据,但同样要消耗一个序号。这时,TCP服务器进入SYN-RCVD(同步报文已收到)状态

TCP协议规定,只要接收方接收到数据,必须给发送方发送确认报文——报文首部ACK标志位为1

ack确认号,期望对方发送的下一个报文首字节的编号

4. 客户端确认连接,发送确认连接信息,第三次握手

客户端进程收到服务器进程的确认报文后,还要向服务器进程的SYN报文给出确认。在确认报文首部,ACK=1,确认号ack=y+1,序号seq=x+1。TCP标准规定,ACK报文可以携带数据,但如果不携带数据,则不消耗序号。在这种情况,客户端进程的下一个数据报文序号仍为seq=x+1。客户端在发送确认报文后,认为连接成功建立,先进入ESTABLISHED(已建立连接)状态

当服务器端进程收到客户端发送的确认报文后,认为连接成功建立,进入ESTABLISHED(已建立连接)状态

上面给出的TCP连接建立过程叫做“三次握手”。注意,上图服务器发送给客户端的报文,也可以拆分为两个报文,即先发送ACK=1(ack=x+1)的确认报文,再发送SYN=1(seq=y)的同步报文。客户端收到服务器端的同步报文段,发送确认报文,过程会变成“四次握手”,但效果一样

2. TCP连接建立相关问题

问题1:TCP建立连接可以只有2次握手吗?

回答:肯定不行。理由:在握手过程中,我们看到客户服务分别在最后一次握手建立连接。如果是两次握手,那么最后的报文由服务器发送,客户端接收

如此,服务器就会先于客户端建立连接。这是万万不可的。

  1. 如果确认报文丢失,那么服务器就会维护不成功的TCP连接
  2. 会很容易遭受SYN洪水攻击,即攻击者发送大量SYN请求,两次握手会使得服务器对每个送达的SYN都建立连接,如此会消耗大量资源,容易导致服务器崩溃
  3. 出现已失效的连接请求报文突然又传送到服务器端,维护失效的连接

“已失效的连接请求报文”是如何产生的呢?

假定一种异常情况:客户端A发送的第一个连接请求报文在某个网络结点滞留了,延误到客户端A认为该报文丢失失效,本次连接失败时,请求报文到达了服务器B。此时该请求报文已经失效,但B并不知道,所以给客户端A发送确认报文,如果只有两次握手,那么此时服务器B发出确认报文,建立连接,进入ESTABLISHED状态

由于A没有再发出建立连接的请求,因此不会处理B的确认报文,也不会向B发送数据。但B却认为连接成功建立,并一直等待A发送数据,浪费资源

所以握手次数绝不能是偶数次,因为这样会使得服务器先建立连接,将维护连接的成本嫁接给服务器


问题2:TCP连接建立为什么需要3次握手?

理由一:奇数次握手,客户端优先建立连接。

理由二:防止已失效的连接请求报文突然又传送到了服务器端,因而产生错误。

理由三:三次握手是客户服务器验证双方信道通畅发送接收能力无误的最小成本

  • 一二次握手,验证了客户端的发送和接收能力
  • 二三次握手,验证了服务器端的发送和接收能力

问题3:在TCP连接建立过程中,如果服务器一直收不到客户端的ACK确认报文,会发生什么?

操作系统会给每个处于SYN-RCVD状态的服务器进程设定一个计时器,如果超过一定时间还没有收到客户端第三次握手的ACK确认报文,将会重新发送第二次握手的确认报文,直到重发达到一定次数才会放弃


问题4:初始序列号ISN为什么要随机初始化?

seq序号表示的是发送的TCP报文数据部分的起始字节位置,服务器/客户端可以通过序号正确读取数据。如果不是随机分配起始序列号,那么黑客就会很容易获取客户端与服务器之间TCP通信的初始序列号,然后通过伪造序列号让通信主机读取到携带病毒的TCP报文,发起网络攻击


问题5:SYN洪水攻击如何解决

SYN洪水攻击:攻击者在短时间内伪造大量不存在的IP地址,向服务器不断地发送连接请求的SYN同步报文。服务器需要为每个请求发送SYN-ACK确认报文,并等待客户端的确认,但因为是不存在IP地址,所以要像问题三中那样,不断发送SYN-ACK确认报文,直到重发到一定次数才会放弃,但这样同样消耗资源。

解决方法:

  1. 缩短SYN Timeout时间。由于SYN洪水攻击的效果取决于服务器上保持的半连接数,这个值=SYN攻击频率*SYN Timeout,所以通过缩短从接收到SYN报文到确认这个报文失效并丢弃的时间,可以成倍地降低服务器的载荷
  2. 设置SYN Cookie。给每一个连接请求的IP地址分配一个Cookie,如果短时间内连续收到某个IP地址的大量重复SYN报文,就认定收到了攻击,以后这个IP地址的报文将直接丢弃
  3. 使用防火墙。SYN 洪水很容易就能被防火墙拦截

二. 释放连接——四次挥手

TCP连接的释放可以用“四次挥手”的过程来描述。数据传输结束后,通信双方都可以释放连接。现在客户端和服务器都处于ESTABLISHED状态。释放连接的过程如下图所示:

1. 四次挥手过程描述

1. 客户端主动断开连接,调用close(fd)发送释放连接的FIN报文,第一次挥手

客户端进程调用close(fd)关闭套接字,操作系统发送释放连接的FIN结束报文,并停止发送数据,主动关闭TCP连接。在结束报文的首部,标志位FIN=1序号字段seq=u,等于前面已发送的数据的最后一个字节的序号+1.此时客户端进入FIN_WAIT_1(终止等待)状态,等待服务器发送确认报文。

TCP规定,FIN报文即使不携带数据,也要消耗一个序号。与SYN报文一样

2. 服务器收到客户端发送的结束报文,发出确认报文段,第二次挥手

服务器收到客户端发送的释放连接的FIN结束报文,立即发送确认报文确认号ack=u+1,序号seq=v,等于服务器前面已发送的数据的最后一个字节的序号+1。服务器进入CLOSE_WAIT(关闭等待)状态。TCP服务器进程此时通知上层应用程序,客户端不向服务器发送数据了,但服务器若有数据发送,客户端仍要接收,此时TCP连接处于半关闭(half-close)状态。

客户端收到服务器的确认报文后,进入FIN_WAIT2(终止等待2)状态,等待服务器发送的FIN结束报文

3. 服务器调用close(connfd)关闭套接字,释放连接,发送FIN结束报文,第三次挥手

当服务器没有要向客户端发送的数据时,其应用进程调用close(connfd)通知TCP释放连接,向客户端发送FIN结束报文。结束报文中,FIN=1,假定序号seq=w(半关闭状态,服务器可能还发送了一些数据),同时还必须重复上次已发送过的确认号ack=u+1。此时,服务器进程进入LAST_ACK(最后确认)状态,等待客户端确认。

4. 客户端收到服务器的FIN结束报文,发送确认报文,第四次挥手

客户端在收到服务器的FIN结束报文后,向服务器发送ACK确认报文。在报文首部中,ACK=1,确认序号ack=w+1,序号seq=u+1(第一次挥手的FIN报文消耗一个序号)。然后客户端进入TIME_WAIT(时间等待)状态

此时TCP连接还没有释放掉,必须经过时间等待计时器(TIME_WAIT timer)设置的时间2MSL后,A才进入CLOSED状态,时间MSL(Maximum Segment Lifetime,最长报文寿命)即一个TCP报文存活的最长时间。RFC793建议2分钟,现在可以根据情况使用更小的MSL值。因此客户端进入TIME_WAIT状态,要经过4分钟才进入CLOSED状态,才可以建立下一个连接,当客户端撤销相应的传输控制块TCB,才结束这次TCP连接

服务器只要收到客户端的确认报文,就进入CLOSED状态。同样,服务器在撤销相应的传输控制块TCB后,就结束此次TCP连接

可以发现,先发起释放连接请求的一方,后结束TCP连接

2. TCP连接释放相关问题

问题1:为什么建立连接是三次握手,关闭连接是四次挥手

首先,建立连接也可以是四次握手,中间的SYN和ACK可以分成两次报文。其次关闭连接,中间服务器给客户端发送的确认报文和FIN结束报文也可以合并,但可能服务器方还有数据需要传输,FIN结束报文在上层调用close()时发送,此时服务器已没有数据传输。

发送FIN报文,只是表示本端不再继续发送数据,但还可以接收数据。TCP通信时全双工的,收到FIN报文,只是关闭一个方向的连接,此时TCP处于半关闭状态


问题2:为什么客户端在TIME_WAIT需要等待2MSL才进入CLOSED状态

理由一:保证客户端发送的最后一个ACK报文能到达对端,保证可靠的终止TCP连接。因为如果出现网络拥塞,该报文可能丢失,因而会使LAST_ACK状态的服务器收不到确认报文,而超时重传FIN报文,而客户端能在2MSL时间内收到重传的FIN报文。接着客户端重传一次确认,重新启动2MSL计时器。最后双方正常进入CLOSED状态

理由二:防止已失效的连接请求报文出现在本次TCP连接。客户端在发送完最后一个ACK报文后,再经过2MSL后,就可以使本次TCP连接持续时间内所产生的所有报文都从网络上消散。这样可以使下一个新的TCP连接不会出现之前旧的请求报文


问题3:TIME_WAIT状态何时出现?TIME_WAIT会带来哪些问题?

TIME_WAIT状态是主动发起关闭连接的一方在收到对方发送的FIN结束报文,并本端发送ACK报文后的状态。

TIME_WAIT的引入是为了让TCP报文得以自然消散,同时为了让被动关闭的一方能够正常关闭连接

  • 服务器主动关闭连接:短时间关闭大量客户端连接,会出现大量TIME_WAIT状态,此时TCB并没有释放,占据大量的tuple(源IP地址、目的IP地址、协议号、源端口、目的端口),严重消耗着服务器的资源。
  • 客户端主动关闭连接:短时间内大量的短连接,会大量消耗客户端主机的端口号,毕竟端口号只有65535个,断开耗尽了,后续就无法启用新的TCP连接了。

问题4:解决TIME_WAIT状态引起的bind()函数执行失败

问题场景:因为主动关闭连接最终会进入TIME_WAIT状态,此时bind的IP地址,端口号都没有释放,重新启动服务会导致bind端口号失败。

解决方法:可以使用setsockopt()函数,设置socket描述符的SO_REUSEADDR选项,该选项可以让端口号被释放后立即再次使用,表示允许创建端口号相同但IP地址不同的多个socket描述符


问题5:半连接,半打开,半关闭的区别
半连接:在TCP连接建立的三次握手中,主动发起连接请求的一方不发最后一次的ACK确认报文,使得服务器阻塞在SYN_RCVD(同步收到)状态

半打开:如果TCP通信一方异常关闭(如断网,断电,进程被kill掉),而通信对端并不知情,此时TCP连接处于半打开状态,如果双方不进行数据通信,是无法发现问题的。解决方法是引入心跳机制,设置一个保活计时器(keepalive timer),以检测半打开状态,检测到就发送RST复位报文,重新建立连接

半关闭:主动发起连接关闭请求的一方A发送了FIN结束报文段,对端B回复了ACK确认报文段后,B并没有立即发送本端的FIN结束报文段给A。此时A端处于FIN_WAIT-2(结束等待2)状态,A仍然可以接收B发送过来的数据,但是A已经不能再向B发送数据了。这时的TCP连接为半关闭状态。


补充:

 在Socket编程中,服务器Listen的第二个参数

三次握手是操作系统自助完成的,但服务器需要accept返回,才会拿到客户端的连接信息。如果服务器没有accept,这个连接就是全连接backlog是全连接队列的容量-1

Linux内核协议栈为TCP连接管理使用两个队列:

  • 半连接队列(用来保存SY_SENT和SYN_RECV状态的请求)
  • 全连接队列(accept队列,用来保存处于ESTABLISHED状态,但应用层没有调用accept取走的请求)

三. TCP状态转换

为了更清晰地看出TCP连接的各种状态之间的关系,下图给出了TCP的状态转换示意图。

说明:紫色框框是TCP状态,红色是服务器进程的正常状态转换,蓝色是客户端进程的正常状态转换,黑色是异常变迁,即出现问题时的状态转换。

服务端状态转化:

  • CLOSE -> LISTEN】:服务器端调用listen后进入LISTEN状态,等待客户端连接
  • LISTEN -> SYN_RCVD】:一旦监听到连接请求(同步报文段),就将该连接放入内核等待队列,并向客户端发送SYN确认报文
  • SYN_RCVD -> ESTABLISHED】:服务端一旦受到客户端的确认报文,进入ESTABLISHED状态,可以进行读写数据
  • ESTABLISHED -> CLOSE_WAIT】:客户端主动关闭连接(调用close),服务器会受到结束报文,服务器返回确认报文并进入CLOSE_WAIT
  • CLOSE_WAIT -> LAST_ACK】:进入CLOSE_WAIT后说明服务器准备关闭连接(需要处理完之前的数据);当服务器调用close关闭连接时,会向客户端发送FIN结束报文,进入LAST_ACK状态,等待客户端发送FIN结束报文的ACK确认报文
  • LAST_ACK -> CLOSED】:服务器收到了对FIN结束报文的ACK确认报文,释放连接,撤销传输控制块TCB,释放相应的连接管理资源

客户端状态转化:

  • CLOSED -> SYN_SENT】:客户端调用connect(),发送SYN同步报文段
  • SYN_SENT -> ESTABLISHED】:connect()调用成功,进入ESTABLISHED状态,开始读写数据
  • ESTABLISHED -> FIN_WAIT1】:客户端主动调用close(),向服务器发送FIN结束报文段,同时进入FIN_WAIT1状态
  • FIN_WAIT1 -> FIN_WAIT2】:客户端收到服务器发送的对FIN结束报文的ACK确认报文,则进入FIN_WAIT2状态,开始等待服务器的FIN结束报文
  • FIN_WAIT2 -> TIME_WAIT】:客户端收到服务器发送的FIN结束报文,进入TIME_WAIT状态,并发送最后一个ACK确认报文
  • TIME_WAIT -> CLOSED】:客户端等待2MSL时间,才会进入CLOSED状态,释放连接资源

结束语

本篇博客到此结束,感谢看到此处。
欢迎大家纠错和补充
如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。

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

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

相关文章

被我们忽略的HttpSession线程安全问题

1. 背景 最近在读《Java concurrency in practice》(Java并发实战),其中1.4节提到了Java web的线程安全问题时有如下一段话: Servlets and JPSs, as well as servlet filters and objects stored in scoped containers like ServletContext and HttpSe…

用“价值”的视角来看安全:《构建新型网络形态下的网络空间安全体系》

作者简介: 懒大王敲代码,正在学习嵌入式方向有关课程stm32,网络编程,数据结构C/C等 今天给大家介绍《构建新型网络形态下的网络空间安全体系》这本书,希望大家能觉得实用! 欢迎大家点赞 👍 收藏…

【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)

系列文章目录 身躯已然冰封,灵魂仍旧火热 本文由睡觉待开机原创,未经允许不得转载。 本内容在csdn网站首发 欢迎各位点赞—评论—收藏 如果存在不足之处请评论留言,共同进步! 文章目录 系列文章目录前言题目链接(有需要…

阿里云部署k8s with kubesphere

阿里云ESC 创建实例 填入密码即可 云上的防火墙相关设置就是安全组 vpc 专有网络 划分私有ip 子网 vpc 隔离环境域 不同的vpc下 即使相同的子网也不互通 使用交换机继续划分子网 停止 释放 不收钱 k8s 服务器 4核8G*1 8核16G *2 git 创建凭证 pipeline 发邮箱 (p124)…

双指针算法(二)

三数之和 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重…

Linux---Ubuntu软件安装

1. 软件安装的介绍 Ubuntu软件安装有两种方式: 离线安装(deb文件格式安装)在线安装(apt-get方式安装) 2. deb文件格式安装 是 Ubuntu 的安装包格式,可以使用 dpkg 命令进行软件的安装和卸载。 命令说明dpkg安装和卸载deb安装包 dpkg命令选项: 选项…

数字滤波器设计——Matlab实现数字信号处理<1>

目录 一.实验内容 二.代码分析 1.信号产生部分 2.利用傅立叶级数展开的方法&#xff0c;自由生成所需的x(t) 3.通过选择不同的采样间隔T&#xff08;分别选T>或<1/2fc&#xff09;&#xff0c;从x(t)获得相应的x(n) 3.对获得的不同x(n)分别作傅立叶变换&#xff0c…

2024年高效远程协同运维工具推荐

随着企业的不断发展以及变化&#xff0c;企业的内部IT环境也是日益复杂&#xff0c;一跨高效远程协同运维工具必不可少&#xff0c;不仅可以提高生产力&#xff0c;还能降低运营成本。这里就给大家推荐2024年高效远程协同运维工具。 高效远程协同运维工具应用场景 1、IT运维管…

安卓端出现https请求失败(转)

背景# 某天早上&#xff0c;正在一个会议时&#xff0c;突然好几个同事被叫出去了&#xff1b;后面才知道&#xff0c;是有业务同事反馈到领导那里&#xff0c;我们app里面某个功能异常。 具体是这样&#xff0c;我们安卓版本的app是禁止截屏的&#xff08;应该是app里做了拦…

设计模式(三)-结构型模式(2)-桥接模式

一、为何需要桥接模式&#xff08;Bridge&#xff09;? 在软件设计中&#xff0c;存在有两个或多个不同维度的模块时&#xff0c;我们需要将这些模块使用到在一起&#xff0c;来实现一个完整的功能。所谓不同维度的意思就是这些模块所负责的职责是不同的&#xff0c;并且它们…

lua安装

lua安装 1.Lua介绍 特点&#xff1a;轻量、小巧。C语言开发。开源。 设计的目的&#xff1a;嵌入到应用程序当中&#xff0c;提供灵活的扩展和定制化的功能。 luanginx&#xff0c;luaredis。 2.windows安装lua windows上安装lua&#xff1a; 检查机器上是否有lua C:\U…

Kubernetes 的用法和解析 -- 4

一.Deployment 资源详解 如果Pod出现故障&#xff0c;对应的服务也会挂掉&#xff0c;所以Kubernetes提供了一个Deployment的概念 &#xff0c;目的是让Kubernetes去管理一组Pod的副本&#xff0c;也就是副本集 &#xff0c;这样就能够保证一定数量的副本一直可用&#xff0c;…

概率论复习

第一章&#xff1a;随机概率及其概率 A和B相容就是 AB 空集 全概率公式与贝叶斯公式&#xff1a; 伯努利求概率&#xff1a; 第二章&#xff1a;一维随机变量及其分布&#xff1a; 离散型随机变量求分布律&#xff1a; 利用常规离散性分布求概率&#xff1a; 连续性随机变量…

Windows使用VNC Viewer远程桌面Ubuntu【内网穿透】

文章目录 前言1. ubuntu安装VNC2. 设置vnc开机启动3. windows 安装VNC viewer连接工具4. 内网穿透4.1 安装cpolar【支持使用一键脚本命令安装】4.2 创建隧道映射4.3 测试公网远程访问 5. 配置固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址5.3 测试…

hypervisor display显卡节点card0生成过程

ditsi 配置 lagvm/LINUX/android/vendor/qcom/proprietary/devicetree/qcom direwolf-g9ph.dts #include "direwolf-vm-la.dtsi" direwolf-vm-la.dtsi #include "display/quin-vm-display-la.dtsi" quin-vm-display-la.dtsi //对应/sys/class/drm/card…

推荐几款值得收藏的3DMAX插件

推荐几款值得收藏的3DMAX插件 StairGenerator StairGenerator一键楼梯插件&#xff0c;不需要花费太多的时间&#xff0c;轻松从2D平面图生成3D楼梯模型&#xff0c;生成的楼梯模型细节丰富真实。 【主要功能】 1.简单&#xff1a;轻松实现2D到3D建模。 2.具有最详细三维结…

高级桌面编程(一)

前言 学习心得&#xff1a;C# 入门经典第8版书中的第15章《高级桌面编程》 创建控件并设置样式 1 样式 Style WPF 当中我们可以对每一个控件进行完全的自定义。我们可以随意更改控件外观和功能。提供我们能完成这样的效果与控件的样式&#xff08;Style&#xff09;有着不可分…

人工智能革命:共同探索AIGC时代的未来

一、引言 随着大数据和强大的计算能力的兴起&#xff0c;人工智能技术&#xff08;AI&#xff09;正在快速发展&#xff0c;并为各个领域带来革命性的变化。人工智能与智能计算技术&#xff08;AIGC&#xff09;的融合不仅为企业、科研机构和普通用户提供了巨大的机遇&#xff…

60.Sentinel源码分析

Sentinel源码分析 1.Sentinel的基本概念 Sentinel实现限流、隔离、降级、熔断等功能&#xff0c;本质要做的就是两件事情&#xff1a; 统计数据&#xff1a;统计某个资源的访问数据&#xff08;QPS、RT等信息&#xff09; 规则判断&#xff1a;判断限流规则、隔离规则、降级规…

数字孪生Web3D智慧机房可视化运维云平台建设方案

前言 进入信息化时代&#xff0c;数字经济发展如火如荼&#xff0c;数据中心作为全行业数智化转型的智慧基座&#xff0c;重要性日益凸显。与此同时&#xff0c;随着东数西算工程落地和新型算力网络体系构建&#xff0c;数据中心建设规模和业务总量不断增长&#xff0c;机房管理…