TCP/IP 协议基础:构建互联网基石
目录
前言
一.网络通信协议 TCP/IP
1.网络通信协议
3.TCP/IP 协议
3.管理的组织和机构
4.RFC
二.OSI 参考模型
1.层次结构
2.通信机制
3.PDU
4.各层的功能
三.TCP/IP 协议簇
1.TCP/IP 与 OSI 的对应关系
2.TCP/IP 各层
3.TCP/IP 封装与分用
4.重要概念
5.分层分析和排查网络故障
四.协议分析
1.概述
2.工具的部署
3.WIRESHARK
4.捕获数据包
结论
前言
当今世界,互联网无处不在,它已经成为人们生活中不可或缺的一部分。无论是浏览网页、发送电子邮件还是视频通话,这些日常活动都依赖于一套可靠的网络通信协议——TCP/IP 协议。在本博客中,我们将深入探讨 TCP/IP 协议的基础知识,了解它如何构建起互联网的基石。
一.网络通信协议 TCP/IP
1.网络通信协议
网络通信协议是一套规则和标准,用于定义计算机之间交换数据的方式。这些协议确保不同计算机系统之间能够相互理解和正确解释数据。网络通信协议可以分为多种类型,包括互联网协议、传输协议、应用协议等。
3.TCP/IP 协议
TCP/IP(Transmission Control Protocol/Internet Protocol)是一种网络通信协议族,被广泛应用于互联网以及许多私有网络中。它是由一系列互相协作的协议组成,共同提供端到端的网络通信服务。TCP/IP协议族的设计目标是确保不同类型的计算机和网络设备之间能够相互连接和通信,从而构成了互联网这个全球性的网络。
TCP/IP协议族由两个主要协议构成:传输控制协议(TCP)和互联网协议(IP)。其中,IP协议负责在网络中寻址和路由数据包,确保它们能够正确到达目标地址。而TCP协议则负责在数据包之间建立可靠的连接,并管理数据包的传输,以确保它们按顺序、完整地到达目标。
除了TCP和IP外,TCP/IP协议族还包括一系列辅助协议,如用户数据报协议(UDP)、互联网控制消息协议(ICMP)、互联网组管理协议(IGMP)等,它们在不同的层次上为网络通信提供支持和服务。
TCP/IP协议族采用分层的设计结构,分为四层:应用层、传输层、网络层和数据链路层。每一层都有特定的功能和责任,通过各自的协议实现这些功能,并与相邻的层进行交互。
3.管理的组织和机构
TCP/IP 协议的发展和管理涉及多个组织和机构。互联网工程任务组 (IETF) 是负责互联网标准和协议发展的主要组织。它是一个开放的国际社区,由网络专家、研究人员和从业人员组成。
除了互联网工程任务组(IETF)外,还有一些其他的组织和机构参与了TCP/IP协议的发展和管理。
-
互联网协会(ISOC):互联网协会是一个非营利性组织,致力于促进互联网的开放发展、稳健性和普及。作为IETF的母机构,ISOC为互联网的发展提供支持和指导,并促进了互联网技术的全球交流和合作。
-
互联网编号分配机构(IANA):IANA负责分配全球互联网资源,包括IP地址、域名和参数值等。它通过管理全球互联网资源的分配,维护了互联网的稳定运行和发展。
-
互联网工程规划小组(IESG):IESG是IETF的一个部门,负责审核和批准由IETF制定的标准、协议和相关文档。它确保IETF发布的标准和协议符合技术上的要求,并且能够被广泛接受和实施。
-
互联网注册信息服务(IRIS):IRIS是一个提供互联网资源注册服务的机构,负责管理和维护互联网资源的注册信息数据库,包括IP地址、域名和AS号等。
4.RFC
RFC文档是由互联网工程任务组(IETF)发布的一系列备忘录,用于描述互联网标准、协议和相关技术。RFC文档经过社区的广泛讨论、审查和修改,以确保其技术内容的准确性、可行性和实用性。
每个RFC文档都有一个唯一的编号,该编号代表了文档的序列号,并且涵盖了特定的主题或协议。这些编号是按照RFC文档的发布顺序分配的,因此越早发布的RFC编号越小。
RFC文档通常包含了对特定协议或技术的详细描述、规范、实现指南、协议格式以及其他相关信息。它们不仅用于定义互联网协议的规范,还用于记录互联网技术的演变过程、讨论新的技术发展趋势以及解决技术问题。
二.OSI 参考模型
1.层次结构
了解OSI(开放式系统互连)参考模型确实对理解TCP/IP协议非常有帮助。OSI模型是一个抽象的网络通信框架,将网络通信划分为七个层次,每个层次都有特定的功能和责任,为上层提供服务,并利用下层提供的服务。
-
物理层(Physical Layer):负责传输原始比特流(0和1)通过物理介质(如电缆、光纤)进行通信,定义了数据传输的物理特性和接口标准。
-
数据链路层(Data Link Layer):在直接相连的节点之间传输数据帧,通过物理层提供的服务建立逻辑连接,并进行数据的传输和错误检测校正。
-
网络层(Network Layer):负责在不同网络之间进行数据包的传输和路由,实现数据的网络互连和最优路径选择,最著名的网络层协议是IP(Internet Protocol)。
-
传输层(Transport Layer):提供端到端的数据传输服务,负责数据的分段、传输控制和错误恢复,常见的传输层协议有TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。
-
会话层(Session Layer):负责建立、管理和维护数据传输的会话或连接,以便在应用程序之间进行通信和数据交换。
-
表示层(Presentation Layer):负责数据的格式化、编码和加密,以确保不同系统之间的数据交换和共享。
-
应用层(Application Layer):为用户提供网络服务和应用程序,包括电子邮件、文件传输、网页浏览等,同时也是用户和网络通信的接口。
2.通信机制
在OSI模型中,通信是通过各层之间的数据传递和协议交互来实现的。当数据从发送方传输到接收方时,它会在发送方从上到下通过各层,在接收方从下到上通过各层。每个层都会添加自己的控制信息(称为协议头或头部),形成一个协议数据单元(PDU)。
具体来说,数据在发送方经过各层时会进行封装,每一层添加一个特定的头部信息。这些头部信息包含了控制数据传输所需的各种信息,例如目标地址、源地址、数据类型、错误检测等。封装后的数据成为PDU,并在网络中传输到接收方。
在接收方,数据会逐层解封装,每一层根据自己的头部信息对数据进行处理,并将数据传递给上一层。每一层都负责解析自己的头部信息,执行相应的协议处理,然后将数据传递给更高层,直至数据到达应用层。
通过这种方式,数据在发送和接收过程中经过了每一层的处理和控制,保证了数据在网络中的有效传输和正确接收。这种分层的通信机制使得网络协议的设计和实现更加模块化和灵活,同时也方便了网络设备之间的互操作性。
3.PDU
协议数据单元(PDU)是OSI模型中各层交换的数据单元,每个层都有自己的PDU名称。从高层到低层,PDU分别是:
-
比特(Bit):物理层的PDU,是最基本的数据单元,代表数据在物理介质上的传输状态,即0和1的序列。
-
帧(Frame):数据链路层的PDU,带有数据的数据包,包括数据和数据链路层的头部信息,用于在直接相连的节点之间进行传输。
-
包(Packet):网络层的PDU,是数据的基本传输单元,包括网络层的头部信息和数据,用于在不同网络之间进行传输和路由选择。
-
段(Segment):传输层的PDU,包含传输层头部信息和应用数据的部分,用于提供端到端的数据传输服务。
-
报文(Message):会话层的PDU,是会话层与会话层之间进行数据交换的数据单元,包含了应用层的数据和会话层的控制信息。
-
报文段(Message Segment):表示层的PDU,负责将报文分割成较小的单元,以便于在网络上传输和处理。
-
数据(Data):应用层的PDU,是最高层的数据单元,包含了应用层的数据信息,如电子邮件、网页内容等。
4.各层的功能
OSI模型的每一层都有特定的功能,总体而言,各层的功能如下:
-
物理层(Physical Layer):负责比特传输和物理介质接入,处理数据在物理层上的传输,包括数据的编码、传输速率、电压等物理特性。
-
数据链路层(Data Link Layer):处理节点之间的可靠传输,提供数据帧的传输和错误检测校正,负责节点之间的直接通信,如局域网中的数据传输。
-
网络层(Network Layer):负责数据包的路由和寻址,实现不同网络之间的数据传输,包括将数据包从源主机传输到目标主机,并在传输过程中选择最佳路径。
-
传输层(Transport Layer):确保端到端的数据传输可靠性和完整性,负责数据的分段、传输控制和错误恢复,同时提供流量控制和拥塞控制。
-
会话层(Session Layer):管理不同系统之间的会话和同步,负责建立、维护和终止会话,以确保数据传输的顺序和完整性。
-
表示层(Presentation Layer):处理数据格式转换和加密,负责数据的格式化、编码、压缩和加密,以确保数据在不同系统之间的互操作性。
-
应用层(Application Layer):提供各种网络应用服务,包括电子邮件、文件传输、网页浏览等,是用户和网络通信的接口,处理用户和应用程序之间的交互。
三.TCP/IP 协议簇
1.TCP/IP 与 OSI 的对应关系
TCP/IP协议簇与OSI参考模型的对应关系如下:
-
网络接口层:
- 对应OSI的物理层和数据链路层。
- 负责处理物理介质的接入和数据帧的传输,包括硬件设备、接口标准、数据帧格式等。
-
互联网层:
- 对应OSI的网络层。
- 负责数据包的路由和寻址,在不同网络之间进行数据传输和路由选择,最著名的协议是Internet Protocol(IP)。
-
传输层:
- 对应OSI的传输层。
- 负责端到端的数据传输服务,包括数据的分段、传输控制和错误恢复。主要协议有Transmission Control Protocol(TCP)和User Datagram Protocol(UDP)。
-
应用层:
- 对应OSI的会话层、表示层和应用层。
- 提供各种网络应用服务,包括电子邮件、文件传输、网页浏览等,是用户和网络通信的接口。
2.TCP/IP 各层
-
网络接口层:
- 负责数据在网络设备之间的传输,包括物理地址(如MAC地址)的使用和以太网帧的封装。
- 实现了数据在物理介质上传输的细节,如电缆、光纤等。
- 在局域网中,常见的协议有Ethernet、Wi-Fi等。
-
互联网层:
- 负责数据在不同网络之间的传输,包括逻辑地址(如IP地址)的使用和路由选择。
- 提供了端到端的数据传输服务,将数据包从源主机传输到目标主机。
- 主要协议是IPv4和IPv6,IPv4是目前互联网上广泛使用的协议,而IPv6是IPv4的后继者,提供了更大的地址空间和其他改进。
-
传输层:
- 负责端到端的主机之间的传输,包括端口号和可靠传输。
- 提供了端到端的数据传输服务,确保数据的可靠性、完整性和顺序性。
- 主要协议有TCP(传输控制协议)和UDP(用户数据报协议),TCP提供了可靠的、面向连接的数据传输服务,而UDP提供了无连接的、不可靠的数据传输服务。
-
应用层:
- 提供各种网络应用服务,包括域名系统(DNS)、电子邮件(SMTP)、网页浏览(HTTP)、文件传输(FTP)等。
- 是用户和网络通信的接口,通过各种应用协议实现了不同的网络应用和服务。
- 应用层协议有很多,常见的还包括Telnet、SSH、DHCP、SNMP等。
3.TCP/IP 封装与分用
当数据从发送方传输到接收方时,在发送方的TCP/IP协议栈中,数据会从上到下进行封装,添加各层的头部信息。这个过程称为封装。具体步骤如下:
-
应用层数据封装:应用层的数据被封装成应用层数据单元,通常称为消息、报文或数据。这些数据通常由应用程序生成,例如HTTP请求、FTP文件等。
-
传输层封装:传输层将应用层数据封装成传输层数据单元,例如TCP的段或UDP的数据报。传输层添加了源端口和目标端口等传输层头部信息,以便在接收端将数据正确地传递给目标应用程序。
-
互联网层封装:互联网层将传输层数据单元封装成网络层数据包,通常称为IP数据包。互联网层添加了源IP地址和目标IP地址等信息,以便在网络中正确路由和传递数据。
-
网络接口层封装:最后,网络接口层将网络层数据包封装成数据链路层的数据帧。这些数据帧包括了物理地址(如MAC地址)等信息,用于在物理介质上传输数据。
在接收方,数据则从下到上进行分用,剥离各层的头部信息,这个过程称为分用。具体步骤如下:
-
网络接口层分用:接收方的网络接口层将数据链路层的数据帧接收并解析,剥离物理地址等信息,将剩余的数据包传递给上一层。
-
互联网层分用:接收方的互联网层接收并解析网络层数据包,剥离IP地址等信息,将剩余的传输层数据单元传递给上一层。
-
传输层分用:传输层接收并解析传输层数据单元,剥离源端口和目标端口等信息,将剩余的应用层数据单元传递给上一层。
-
应用层分用:最后,应用层接收并解析应用层数据单元,将应用层数据传递给目标应用程序进行进一步处理。
4.重要概念
在TCP/IP协议中,一些重要的概念包括:
-
IP地址:用于唯一标识互联网上的设备。IPv4地址由32位二进制数表示,通常以点分十进制表示,如192.168.1.1。IPv6地址由128位二进制数表示,通常以冒号分隔的八组十六进制数表示,如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
-
端口号:用于标识主机上的应用程序。端口号是一个16位的整数,范围从0到65535。0到1023之间的端口号被称为“知名端口”,通常用于一些常见的网络服务,如HTTP(端口号80)、FTP(端口号21)、SSH(端口号22)等。
-
TCP三次握手:用于建立可靠的连接。在TCP连接的建立过程中,客户端和服务器之间需要进行三次握手:
- 第一次握手:客户端向服务器发送一个带有SYN标志的TCP数据包,表示请求建立连接。
- 第二次握手:服务器收到客户端的SYN请求后,向客户端发送一个带有SYN和ACK标志的数据包,表示同意建立连接。
- 第三次握手:客户端收到服务器的确认后,再次向服务器发送一个带有ACK标志的数据包,表示连接建立成功。
-
TCP四次挥手:用于释放连接。在TCP连接的关闭过程中,客户端和服务器之间需要进行四次挥手:
- 第一次挥手:客户端向服务器发送一个带有FIN标志的数据包,表示请求关闭连接。
- 第二次挥手:服务器收到客户端的FIN请求后,向客户端发送一个带有ACK标志的数据包,表示收到了关闭请求。
- 第三次挥手:服务器向客户端发送一个带有FIN标志的数据包,表示服务器也准备关闭连接。
- 第四次挥手:客户端收到服务器的关闭请求后,向服务器发送一个带有ACK标志的数据包,表示确认关闭连接。
5.分层分析和排查网络故障
TCP/IP协议的分层结构确实有利于分层分析和排查网络故障。通过分析各层的头部信息和数据,可以定位和诊断网络问题。举例来说,如果Ping命令(基于ICMP协议,位于网络层)成功但网页无法打开(基于TCP协议,位于传输层和应用层),可能存在以下几种可能性:
-
传输层问题:如果Ping命令成功但网页无法打开,可能存在传输层的问题。可以通过检查TCP连接是否建立成功、TCP端口是否可用、传输层数据包是否被正确传输等来排除问题。
-
应用层问题:如果传输层正常但网页无法打开,可能存在应用层的问题。这可能是由于Web服务器故障、应用程序错误、DNS解析问题等引起的。可以通过检查服务器状态、应用程序日志、DNS解析情况等来排除问题。
四.协议分析
1.概述
协议分析是指利用专门的工具捕获和分析网络流量,以了解网络协议的运行情况,排查网络问题或检测网络攻击。这些工具可以捕获网络数据包,并提供详细的协议字段信息,帮助网络管理员和安全研究人员进行故障排除和安全分析。
协议分析工具通常能够对捕获到的数据包进行解析,并将其呈现为易于理解的格式,显示每个数据包的源地址、目标地址、传输协议、端口号、数据大小等关键信息,同时还可以显示协议字段的具体内容,如TCP头部、IP头部、HTTP头部等。通过对这些信息的分析,用户可以了解网络通信的细节,发现潜在的问题或异常行为。
协议分析工具的主要功能包括:
- 数据包捕获:能够捕获网络上的数据包,包括传入和传出的数据流量。
- 数据包解析:对捕获到的数据包进行解析,提取出关键的协议字段信息。
- 数据包过滤:可以根据特定的条件过滤和筛选数据包,以便更精确地分析感兴趣的流量。
- 流量统计:能够统计网络流量的各项指标,如流量量、流量分布、流量来源等。
- 报表生成:可以生成详细的报告和统计信息,帮助用户对网络流量进行全面的分析和评估。
2.工具的部署
协议分析工具通常部署在网络中能够访问所需流量的位置。这可能包括网络交换机、路由器或专门的协议分析设备。
-
网络交换机和路由器:协议分析工具可以部署在网络交换机或路由器上,通过端口镜像(port mirroring)或SPAN(Switched Port Analyzer)端口来捕获网络流量。这些设备通常位于网络的核心或边缘位置,能够捕获经过的所有流量。
-
专门的协议分析设备:有些组织可能会部署专门的协议分析设备,如网络流量分析器(Network Traffic Analyzer)或数据包分析器(Packet Analyzer)。这些设备通常具有更强大的处理能力和更丰富的功能,能够对大规模的网络流量进行实时或离线分析。
3.WIRESHARK
Wireshark是最常用的开源协议分析工具之一。它是一个功能强大且灵活的网络分析工具,可以捕获和分析网络数据包,并提供详细的协议字段信息。Wireshark支持数百种网络协议,并提供了丰富的过滤、搜索和数据可视化功能。
Wireshark的主要特点包括:
-
捕获网络数据包:Wireshark可以在网络接口上进行实时数据包捕获,或者分析保存在文件中的数据包。
-
协议解析:Wireshark能够解析捕获到的数据包,提取出各个协议层的字段信息,并以人类可读的形式呈现出来。用户可以深入了解数据包的内容和结构。
-
支持多种协议:Wireshark支持数百种网络协议,涵盖了常见的TCP/IP协议、以太网、无线协议等,以及各种应用层协议如HTTP、DNS、FTP等。
-
过滤和搜索:Wireshark提供了强大的过滤功能,可以根据各种条件过滤和筛选数据包,帮助用户快速定位感兴趣的流量。同时也支持文本搜索功能,方便用户查找特定内容。
-
数据可视化:Wireshark提供了多种数据可视化工具,如图形绘制、流量图、时间线等,帮助用户直观地理解网络流量的特征和趋势。
-
插件支持:Wireshark支持插件扩展,用户可以根据需要添加各种功能和定制化的功能模块,满足特定的分析需求。
4.捕获数据包
在使用Wireshark进行协议分析时,首先需要捕获数据包。这可以通过在Wireshark中选择合适的网络接口来完成。捕获的数据包可以存储在文件中进行离线分析,也可以实时分析。Wireshark提供了一系列过滤器,允许用户根据协议类型、地址、端口等条件筛选感兴趣的数据包。
捕获数据包的步骤如下:
-
选择网络接口:打开Wireshark后,从菜单栏或工具栏中选择要捕获数据包的网络接口。可以选择本地物理接口(如以太网、Wi-Fi)或虚拟接口(如Loopback接口)等。
-
开始捕获:点击“开始”按钮或使用快捷键Ctrl + E来开始捕获数据包。Wireshark将开始在选定的网络接口上捕获数据包。
-
停止捕获:在需要时,点击“停止”按钮或使用快捷键Ctrl + E来停止捕获数据包。停止捕获后,Wireshark将停止接收新的数据包。
-
保存捕获文件:如果需要将捕获的数据包保存在文件中进行离线分析,可以点击“文件”菜单中的“保存”选项,然后选择保存的文件格式和路径。
Wireshark还提供了强大的过滤器功能,可以根据不同的条件对捕获的数据包进行过滤和筛选,以便用户只关注感兴趣的流量。过滤器可以根据协议类型(如TCP、UDP、HTTP)、源地址、目标地址、端口号等条件进行设置,帮助用户快速定位需要分析的数据包。
结论
TCP/IP 协议是互联网的基础,它定义了网络通信的标准和规则。 OSI 参考模型提供了一个分层的框架来理解网络通信。通过学习 TCP/IP 协议的基础知识、OSI 模型和协议分析技术,我们可以更好地了解互联网的运作方式,并有效地管理和维护网络系统。
相关文章:
TCP/IP 协议基础:构建互联网基石
目录 前言 一.网络通信协议 TCP/IP 1.网络通信协议 3.TCP/IP 协议 3.管理的组织和机构 4.RFC 二.OSI 参考模型 1.层次结构 2.通信机制 3.PDU 4.各层的功能 三.TCP/IP 协议簇 1.TCP/IP 与 OSI 的对应关系 2.TCP/IP 各层 3.TCP/IP 封装与分用 4.重要概念 5.分…...
Android OpenMAX(三)高通OMX组件实现基础
上一节了解了OMX组件实现的基础内容,这一节我们以高通OMX实现为例,简单看看如何实现一个OMX组件。本节代码参考自: omx_core_cmp.cpp qc_omx_component.h omx_vdec.h omx_vdec.cpp Tips:本篇文章旨在简单了解如何实现一个OMX组件,细节的内容不会仔细解读,代码阅读跳跃幅度…...

【比邻智选】MF871U模组
🚀搭载国产芯,严苛测试,稳定可靠 🛠️R16特性加持,5G LAN,纳秒级精度 🌐超低成本,丰富协议,连接无界限...
Unity 单例模式
Unity中单例模式是非常常用的写法,可以基于C#语言的几种不同方法来实现。 下面我将列出几种常见的实现方式: 1. 经典的单例模式 public class SingletonExample : MonoBehaviour {private static SingletonExample instance;public static SingletonEx…...

Oracle-一次TX行锁堵塞事件
问题背景: 接用户问题报障,应用服务出现大量会话堆积现象,数据库锁堵塞严重,需要协助进行问题定位和排除。 问题分析: 登录到数据库服务器上,首先查看一下数据库当前的等待事件情况,通过gv$ses…...
Gtid方式搭建主从复制+MHA高可用集群
GTID是什么 GTID(全局事务标识符),它用于唯一标识一个事务。每个GTID由三个部分组成: 服务器唯一标识符事务序列号全局事务标识符使用gtid可以简化主从复制的配置和管理,减少由于复制链路终端、主从数据不一致等问题带来的风险如何开启GTID: 在/etc/my.cnf文件中添加如下…...

基于matlab GUI的Alpha shapes边缘提取
1、程序介绍 本程序是基于matlab语言,使用alpha shapes算法实现点云边缘提取。算法具体原理参考博客:基于alpha shapes的边缘点提取(matlab)-CSDN博客。该程序包括3个按钮:加载点云、边缘点提取、保存。其中࿰…...
[Android]常见的包管理方式
在Android开发中,包管理主要是通过构建和依赖管理工具来处理。下面列举了几种最常见和主流的包管理方式: 一、Gradle Gradle 是 Android 官方推荐的构建工具,几乎成为了 Android 开发的标准。它支持自定义构建逻辑、依赖管理、多项目构建等…...

每日10亿数据的日志分析系统OOM
背景 一个每日10亿数据的日志清洗系统,主要工作就是从消息队列中消费各种各样的日志,然后对日志进行清洗,例如:用户敏感信息(姓名、手机号、身份证)进行脱敏处理,然后把清理完的数据交付给其他系统使用。 我们项目中,…...

智能驱动,精准管理:打造高效干部管理系统
干部管理系统是现代组织管理中不可或缺的工具,它通过信息技术的应用,提高了干部管理的效率和准确性。干部管理系统的主要功能包括: 1. 信息管理:系统可以存储和管理干部的个人信息,包括基本资料、工作经历、教育背景、…...

轮式机器人简介
迄今为止,轮子一般是移动机器人学和人造交通车辆中最流行的运动机构。它可达到很高的效率, 如图所示, 而且用比较简单的机械就可实现它的制作。 另外,在轮式机器人设计中,平衡通常不是一个研究问题。 因为在所有时间里,轮式机器人一般都被设计成在任何时间里所有轮子均与地接…...
已知哈夫曼节点个数,求哈夫曼字符编码数
哈夫曼编码(Huffman Coding)是一种用于无损数据压缩的嫡编码(权编码)算法。 在哈夫曼树中,每个叶子节点都代表一个字符,而节点的权重通常代表字符的频率。在哈夫曼编码中,每个字符都会被赋予一个二进制编码。为了获得这些编码,我…...
Kubernetes Cluster IP,Node IP,Pod IP间通信原理解析
目录 1、Cluster IP2、Node IP3、NodePort4、Pod IP5、LoadBalancer6、三种IP间通信6.1、Pod IP 与 Pod IP 通信6.2、Pod IP 与 Cluster IP 通信6.3、Node IP 与 Pod IP 通信6.4、Node IP 与 Cluster IP 7、YAML 示例7.1、ClusterIP Service7.2、LoadBalancer Service 1、Clust…...

随机链表的深拷贝
1.题目 解题思路一:暴力求解,先创建新链表,然后把旧链表中的val和next指针给复制到新链表中,根据旧链表中的random指针所指向的旧链表中的val值找到所对应的节点,记录该节点的位置,就像数组一样,…...
328_C++_HTTP_HTTP协议传输data数据,为什么要进行base64编解码操作?
http传输data数据的时候,为什么必须进行base64转码后才能有效发送,接收方也必须base64转码后才能有效接受? HTTP HTTP传输数据时,使用Base64编码并不是必须的,但它确实在某些情况下非常有用。以下是为什么在某些情况…...

【二叉树】Leetcode N 叉树的层序遍历
题目讲解 429. N 叉树的层序遍历 算法讲解 在做层序遍历的时候由于它的每一个结点是有val vector child组成,所以在做层序遍历的时候需要考虑它每一层结点的个数,那我们就可以使用一个queue保存每一层的结点;那么我们在做第一层的时候&am…...

Spring AI
目录 一、Spring AI 1、Spring AI简介 1.1、四次工业革命发展和变革 1.2、什么是人工智能? 1.3、人工智能的发展历程 1.4、什么是大模型? 1.5、如何训练大模型? 一、Spring AI 1、Spring AI简介 Spring AI Java接入人工智能大模型 1.1、四次工业革命发展和变革 人类…...
fiori SAP ui5 动态改变控件颜色
使用CustomData动态改变控件颜色 有时候我们需要改变控件颜色,对于高度封装的控件,显然改变控件CSS是比较困难的,幸好SAP UI5预设了一个customData的属性,每个控件都能使用她。 如下代码是判断汇率是否有改变,如果改…...
RabbitMQ php amqp
Linux debian 安装 Windows php amqp 扩展 PECL :: Package :: amqp 将 php_amqp.dll 复制到 php 的 ext 目录下 将 rabbitmq.4.dll 复制到 c:\windows\system32 目录下 php.ini extensionamqp...

对称二叉树
给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true示例 2: 输入:root [1,2,2,null,3,null,3] 输出:falses 思路:我刚开始是想着用…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...

MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...