【计网】网络交换技术之分组交换(复习自用,重要1)
复习自用的,处理得比较草率,复习的同学或者想看基础的同学可以看看,大佬的话可以不用浪费时间在我的水文上了
另外两种交换技术可以直接点击链接访问相关笔记:
电路交换
报文交换
一、分组交换的定义
1.定义
分组交换(Packet Switching) 是一种用于数据通信的网络传输技术,通常用于互联网等大规模分布式网络。在分组交换中,发送端的数据被分割成若干小的数据块(分组),每个分组独立携带必要的控制信息(例如目标地址、源地址、序列号等),通过网络传输。每个分组在网络中按照“存储转发”的方式,通过多个路由器(或交换节点)逐步转发,最终到达接收端。接收端再将这些分组按照顺序重新组装,恢复成原始的完整数据。
2.扩:为什么是“分组”而不是“大包”
分组(packet)是为了提高网络资源利用率并且减少数据传输的延迟。如果直接传输一个大报文,若传输中有任何错误或丢包,重传的成本很高,且通信资源会被长时间独占。而将数据拆分成多个小的分组,使得每个分组都可以独立传输并且具有独立的路径选择,极大地提高了网络的灵活性和可靠性。
二、分组交换的原理
分组交换的原理可以分为几个阶段,分别是:报文拆分、分组封装、逐跳存储转发、分组重组。以下我将详细讲解每一个阶段。

1. 报文拆分与分组封装
1.1. 报文拆分
-
报文(message)指的是一块较大的数据单元,它是源主机发送的数据,可能包含某个文件、文本等。由于网络带宽、链路限制等原因,发送这些报文可能面临较高的延迟和丢包风险。
-
在分组交换中,发送端将报文拆分成若干小块,称为分组(packet)。每个分组都是数据的一个“片段”,可以独立传输,包含着原始数据的一部分。
1.2. 分组封装
每个分组都被封装在一个包含控制信息的单元中,确保它能够被正确地传输和路由。这些控制信息通常包括:
-
源地址:发送该分组的主机的地址。
-
目的地址:目标主机的地址,路由器通过它来判断该分组的目的地。
-
序列号或偏移量:用于标记分组在原始报文中的位置或顺序。
-
校验和(checksum):用于检查分组是否在传输过程中发生了错误。
在分组交换中,控制信息(头部)和数据部分(负载)一起构成一个完整的分组。控制信息确保分组能够在网络中正确识别、转发、校验和重组。
2. 存储转发机制
2.1. 逐跳传输
-
在分组交换中,分组通过多个网络节点(路由器)逐跳转发。在每个路由器,分组会被暂存(存储)并检查,然后再进行转发(转发)。这个过程称为存储转发(store-and-forward)。
-
每个路由器负责接收、存储和转发分组。它会读取分组头部的目标地址信息,然后查找自己维护的路由表,根据路由表中的信息选择合适的下一跳路由器,然后将分组转发到下一个路由器,直到最终到达目的地。
2.2. 路由器的分组转发作用
-
路由器是分组交换网络中的关键设备,负责在不同网络之间转发分组。路由器相当于网络中的“交通警察”或“邮局分拣中心”:当一个分组抵达路由器时,路由器读取分组首部中的目标地址等信息,然后查找自身维护的转发表(路由表),据此决定将分组发送到哪一个接口、朝向哪一个下一跳节点。这个过程称为分组转发。简单来说,路由器根据目标地址找到“下一站”,再把分组转交给下一跳路由器,一步步让分组靠近最终目的地。
-
路由器的工作包括两个主要部分:
-
(1) 路由选择:通过路由协议(如OSPF、BGP等)的算法计算,构建和更新全网的路由信息,在每台路由器上生成转发表。路由器不断交换信息,动态维护这些表,使其反映当前网络拓扑和可达路径。
-
(2) 分组转发:当路由器收到一个分组时,执行查表操作(通常采用最长前缀匹配查找目标IP地址对应的路由项),获取该分组应转发的出接口和下一跳地址,然后将分组从对应接口发送出去。在这一过程中,路由器还可能更新分组首部的某些字段(例如减小TTL、生存时间)并重新计算首部校验和,以保证分组在网络中按规定传播。
-
通过上述功能,路由器实现了不同网络之间的互联互通。它使每个分组各自独立地根据首部地址被送往目标,无需源主机预知全程路径。可以说,没有路由器的解析和转发,互联网中海量分组就无法高效地从世界的这一端跑到那一端。路由器确保分组各行其道地到达终点,是分组交换网络的核心枢纽。
3. 路径选择与转发
3.1. 动态路径选择
-
每个分组根据目标地址和网络的状态,可以选择不同的路径。分组交换的一个关键特点是,路径是动态选择的,每个分组都可能选择不同的路径。
-
路由器通过查找其路由表中的条目来决定将分组转发到哪个方向。这个过程是实时的,而非预先设定的,路径选择是根据当前网络状况(如链路繁忙程度、故障等)动态做出的。
-
这与电路交换不同,电路交换是先建立一个固定的连接(物理路径),通信过程中始终沿用这个路径。而在分组交换中,每个分组都可以选择不同的路径,这给网络带来了更高的灵活性和冗余性。
-
上图展示了三个分组(用不同颜色箭头表示)从左侧主机发送到右侧主机时可能选择的不同路线。可以看到,由于路由器可以根据网络拥塞或链路状态调整转发决策,各分组不一定走相同的路径。例如,绿色分组走上方路径,而红色分组走下方路径。这意味着分组到达目的地的顺序也不一定和发送顺序相同:有的分组可能绕远路或在中途等待更久,导致后发送的分组先到达。乱序传输是分组交换的固有现象之一,网络层本身并不保证分组按序抵达。因此,需要由运输层协议(如TCP)或应用层在接收端对分组进行重新排序。总之,在分组交换中路径选择具有实时、自主的特点,每个分组各行其道,这赋予网络更强的灵活性和健壮性(即使某一路径故障,分组可绕道而行),但也要求接收方具备乱序重排能力。
3.2. 逐跳存储转发
-
“逐跳”意味着每个分组从源到目的地会经过多个路由器,每经过一个路由器,就需要暂时存储分组并转发它。在每一跳的路由器,分组会被完全接收并进行校验,然后再发送到下一跳路由器。
4. 分组重组
4.1. 分组到达目标后
-
在分组通过网络到达接收端时,它们可能不是按照顺序到达的(因为它们可能通过不同的路径传输)。接收端的任务是重排(reorder)这些分组,并根据它们的序号将它们重新组合(重组(reassemble))为原始的报文。
-
重排:有些分组可能比其他分组先到达,因此接收端必须等待所有的分组到齐并按顺序排列。
-
重组:接收端根据序号将数据部分拼接起来,恢复成完整的原始数据。若某些分组丢失或损坏,接收方需要通过重传机制请求丢失的分组重新发送。
-
对于重排和重组的理解
-
由于各分组可以独立选择路径且传输时间可能不同,接收端主机收到的分组有可能顺序乱掉。为了将原始报文正确复原,接收端需要对分组进行重排和重组。通常每个分组在首部中携带了用于重组的标识,例如序列号(或片偏移等),接收端可以利用这些标识来确定分组的正确位置次序。当分组抵达终点主机后,运输层协议(如TCP)或IP层会根据序号将失序的分组重新排序:简单来说,就是按序号大小把分组的数据片段从小到大排列,这样就恢复了发送时的正确顺序。只要所有分组都成功抵达,哪怕先前乱序,到这一步也能重新组装出完整的数据。
-
接收端在重排的同时,会将各分组的数据部分提取出来按序拼接,重新构成原始报文的内容。如果在网络层进行了IP分片,那么IP层会根据分片偏移将多个片段组合成完整的数据报再交付上层;如果是运输层的拆分(如TCP将应用报文拆成多个报文段),则TCP层根据序号将报文段排好顺序后重组数据流供应用使用。举例来说,TCP协议规定数据每个字节都有序号,接收方根据序号排好乱序分段,丢弃重复的数据,这样就确保了最终交付给应用的数据是按原始顺序的。当然,若有分组迟迟未到(可能丢失),接收方在等待一段时间后会发现缺口,这涉及差错恢复机制(下面将说明)。总体而言,重排重组过程对用户是透明的 —— 用户最终收到的仍是一整块按正确顺序排列的原始数据,好像从未被拆分过一样。
-
5. 分组丢失与重传机制
5.1 对于分组冲突与网络堵塞的理解
由于分组在路由器采用存储转发,路由器内部需要缓存(缓冲区)来暂存分组。每个路由器的端口通常有一个输出队列:当多个分组同时需要从该端口发送时,它们会在缓冲队列中排队,按照先来先服务(FIFO)的顺序依次发送。换言之,分组通常按到达顺序存储在路由器缓冲中等待转发。只有当前面的分组发送出去后,后续分组才能出队。这保证了一定的顺序性,但如果网络繁忙,也会引入排队时延——分组在队列中等待的时间。有时实时应用的数据包可能在队列中延迟过久甚至丢弃,因此一些高级路由器还会实现优先级队列等调度策略,但最基本的机制是FIFO队列。
当输入流量过大、持续时间过长时,路由器缓冲区可能被塞满,这就是网络拥塞的情况。缓冲区有容量限制,如果新分组到来时缓冲已满,路由器将无法再存储新的分组。此时最常见的策略是直接丢弃后来的一些分组(通常丢弃最新到达的,称为“尾弃”)。也就是说,只有当缓冲区填满无空位时,路由器才会丢包。一旦出现丢包,分组将在该路由器被抛弃,无法抵达目的,需要由后续机制来补救(例如发送端重传,详见后文)。在拥塞严重时,丢包率会升高,从而通知传输层减慢发送速率,实现一定的流量控制。正常情况下,路由器尽量通过队列缓冲短暂的流量高峰,但当持续流量超出链路带宽时,排队时延增加且最终不得不丢包,这是分组交换网络中的常见现象。总之,路由器需要缓冲来平滑流量,但缓冲区并非无限,网络拥塞时会导致排队延迟和丢包,两者都会影响网络性能。
5.2 为什么会丢失分组(丢包)?
虽然路由器采用存储转发机制,并且每个分组在被转发之前都会经过检查,但在以下情况下,数据包还是可能会丢失:
-
网络拥塞:如果网络中有大量的流量,路由器的缓冲区可能会满,无法再接收新的数据包。此时,路由器会丢弃最新到达的分组(通常叫“尾丢”)。这就像超市的货架满了,新的货物就没有地方放,只能丢掉一部分 。
-
链路故障:如果某个链路发生故障(比如光纤断裂,或者无线连接中断),分组就无法继续向前转发,最终会丢失 。
-
路由器处理错误:尽管路由器会检查分组的校验和和其他控制信息,但如果网络条件非常糟糕或者出现了硬件故障,某些数据包可能在传输过程中受到损坏,路由器将会丢弃这些损坏的分组。
5.3 重传机制是怎么工作的?
在分组交换中,丢失的分组需要通过重传来恢复。而这一工作并不是由路由器来做的,重传是由传输层协议(如TCP)来完成的,下面是详细过程:
-
TCP协议的重传机制:
-
发送端等待确认:发送方会将分组发送出去,并开始计时等待接收方的确认消息(称为ACK,Acknowledgment)。接收方会在收到一个分组后,向发送方回送一个确认消息,表示它成功接收了数据。
-
超时重发:如果发送方在一定时间内没有收到确认消息,就会认为这个分组丢失了(比如路由器在中途丢失了这个分组,或者接收方没有及时收到分组)。此时,发送方会重新发送该分组。这种方式叫做超时重传 。
-
重复确认与重传:如果接收方收到了某个分组,但由于其他分组丢失,无法按顺序重组数据,它就不会发送确认消息,而是等待缺失的分组。当发送方发现没有收到确认(ACK),或者收到对后续分组的重复确认,它就会知道某些分组丢失了,并触发重传 。
-
5.4 简单举个例子:
-
假设你在发送一个文件给你的朋友,文件被拆分成多个分组进行传输,每个分组都标有顺序号。
-
你发送分组1、2、3、4,按顺序发送出去,发送方等待接收方发送确认(ACK)来告诉它每个分组是否都收到了。
-
朋友收到了分组1、2、3,但因为网络拥塞或其他原因,分组4丢失了。
-
朋友并没有发出“分组4已收到”的确认,而是一直等待分组4,这就导致发送方发现没有收到分组4的确认。
-
发送方经过超时检测后,认为分组4丢失了,于是会重新发送分组4,直到接收方成功收到为止 。
5.5 为什么不由路由器来做重传?
路由器的主要职责是传递数据,它并不负责管理数据的完整性或重传。网络层(比如IP协议)会尽最大努力将数据送到目的地,但如果发生丢包,负责可靠传输的责任落在了传输层,例如TCP协议。TCP通过超时重传和确认机制确保数据正确无误地从源端传送到接收端 。
三、分组交换的特点
-
无需建立专用连接
分组交换与电路交换最大的区别在于,它不需要在通信开始前为每次通信建立专用的物理路径。在分组交换中,数据被拆分成多个小的分组,每个分组根据目标地址独立选择路径,并且可以通过不同的路径传输。网络资源并不会被长时间占用,资源利用效率更高。 -
存储转发机制
在分组交换中,每个路由器(或交换节点)接收到一个分组时,必须先暂存该分组,进行必要的检查,然后再转发它。这个过程称为“存储转发”(store-and-forward)。它确保了分组的完整性和正确性,同时也带来了少许的延迟,因为分组需要经过每个路由器的处理和存储。 -
路径选择动态
每个分组在通过网络时,其传输路径是动态选择的,可以根据网络的当前状态(如链路拥堵、故障等)选择最佳路径。不同的分组可能选择不同的路径,这使得网络具有高度的灵活性。 -
分组独立性
分组交换中的每个分组都是独立的,携带完整的控制信息(如源地址、目标地址、序列号等),可以独立选择传输路径,且每个分组都通过独立的路径到达目的地。接收端根据序列号将分组重排、重组。 -
适应突发流量
分组交换能够有效应对网络中的突发流量,因为它不需要事先占用全部的网络带宽。每个分组在需要时才占用带宽,其他时段网络带宽空闲,可以处理其他数据流。它能够灵活地根据需求调配资源。
四、分组交换的作用(好处)
-
提高网络资源的利用率
由于不需要在通信前建立专用线路,分组交换可以在网络中动态分配资源。当没有数据传输时,网络资源(如带宽)就可以空闲,允许其他通信流共享网络带宽。这样,网络能够高效地利用资源。 -
增强网络的灵活性和容错性
分组交换不依赖于固定路径,分组可以通过多条路径到达目的地,即使某条路径发生故障或拥塞,网络也能通过其他路径继续传输数据。这提高了网络的容错性和可靠性,避免了单一链路故障导致大规模通信中断。 -
支持突发性数据流
分组交换非常适合处理突发数据流,例如视频会议、实时游戏等,这些应用会有大量数据流的快速波动。分组交换能够有效调配带宽,避免因为突发流量导致网络拥塞。 -
降低通信成本
不需要专门建立电路连接,分组交换能够降低通信成本,尤其在大规模网络中。它减少了资源的浪费,因为每个分组都能独立选择路径,不需要为每一次通信占用独占的资源。 -
网络规模的可扩展性
分组交换的动态路径选择使得网络能够容易地扩展和适应网络规模的增长。随着设备和用户的增加,网络可以通过增加路由器和链路等设备来扩展网络,无需改变网络的基础结构。
五、分组交换的应用
-
互联网
分组交换是现代互联网的核心技术,所有的互联网数据(如网页浏览、视频流、社交媒体、电子邮件等)都依赖于分组交换来实现数据的高效、可靠传输。在互联网中,所有数据都被拆分成小的分组,并通过动态路径传输。 -
即时通信(IM)
分组交换用于即时通信软件(如微信、QQ、Slack等)的数据传输。在这些应用中,消息、图片、文件等都被切割成多个分组,通过网络传输。分组交换使得即时通信能够快速传输大量的小数据包。 -
视频流和音频流服务
如Netflix、YouTube等视频平台,分组交换保证了视频和音频数据可以高效地传输,尽管这些数据量较大,但通过分组交换技术,数据能够分割为小块并通过网络传输,不会因带宽限制而造成严重的延迟。 -
虚拟私人网络(VPN)
VPN在利用公用互联网进行加密通信时,依赖分组交换将数据分成多个加密的分组,通过网络传输。分组交换技术保证了数据可以在多个路径上传输,同时避免了路径故障带来的通信中断。 -
分布式计算和云服务
云计算服务中的数据传输,也利用了分组交换技术。用户请求和返回的计算结果会被拆分成多个分组,快速传输到云服务器上进行计算处理,再返回给用户。分组交换使得这些应用能够在分布式网络中实现高效的通信。
相关文章:
【计网】网络交换技术之分组交换(复习自用,重要1)
复习自用的,处理得比较草率,复习的同学或者想看基础的同学可以看看,大佬的话可以不用浪费时间在我的水文上了 另外两种交换技术可以直接点击链接访问相关笔记: 电路交换 报文交换 一、分组交换的定义 1.定义 分组交换&#x…...
6.2 GitHub API接口设计实战:突破限流+智能缓存实现10K+仓库同步
GitHub Sentinel 定期更新 API 接口设计 关键词:GitHub API 集成、异步爬虫开发、RESTful 接口设计、请求限流策略、数据增量更新 1. 接口架构设计原则 采用 分层隔离架构 实现数据采集与业务逻辑解耦: #mermaid-svg-WihvC78J0F5oGDbs {font-family:"trebuchet ms&quo…...
考研单词笔记 2025.04.13
alleviate v减轻,缓解 alleviation n减轻,缓解 blunt a钝的,不锋利的,坦率的,直截了当的v使减弱,使变钝 dampen v抑制,减弱,使潮湿 dim v减弱,淡化,变昏暗…...
解密CHASE-SQL和XiYan-SQL多智能体AI如何最终实现TEXT2SQL的突破
想象一个世界,无论技术背景如何,任何人都能轻松查询海量数据库、挖掘深层洞察。比如:“我想知道安徽地区最畅销电子产品的第三季度销售额?”——只需一句话。“去年营销支出与客户获取成本之间的相关性如何?”——像聊天一样输入问题。这就是Text-to-SQL的承诺:将人类语言…...
思考力提升的黄金标准:广度、深度与速度的深度剖析
文章目录 引言一、广度的拓展:构建多元知识网络1.1 定义与重要性1.2 IT技术实例与提升策略小结:构建多元知识网络,提升IT领域思考力广度 二、深度的挖掘:追求知识的精髓2.1 定义与重要性2.2 IT技术实例与提升策略小结:…...
web自动化:下拉选择框、弹出框、滚动条的操作
web自动化:下拉选择框、弹出框、滚动条的操作 一、下拉选择框 1、导包 from selenium.webdriver.support.select inport Select 2、实例化对象 Select(element) 3、常用方法 通过option索引来定位,从0开始:select_by_index(index)通过…...
数字人:打破次元壁,从娱乐舞台迈向教育新课堂(4/10)
摘要:数字人正从娱乐领域的璀璨明星跨界到教育领域的智慧导师,展现出无限潜力。从虚拟偶像、影视游戏到直播短视频,数字人在娱乐产业中大放异彩,创造巨大商业价值。在教育领域,数字人助力个性化学习、互动课堂和虚拟实…...
互联网三高-数据库高并发之分库分表ShardingJDBC
1 ShardingJDBC介绍 1.1 常见概念术语 ① 数据节点Node:数据分片的最小单元,由数据源名称和数据表组成 如:ds0.product_order_0 ② 真实表:再分片的数据库中真实存在的物理表 如:product_order_0 ③ 逻辑表:…...
【NLP】 18. Tokenlisation 分词 BPE, WordPiece, Unigram/SentencePiece
1. 翻译系统性能评价方法 在机器翻译系统性能评估中,通常既有人工评价也有自动评价方法: 1.1 人工评价 人工评价主要关注以下几点: 流利度(Fluency): 判断翻译结果是否符合目标语言的语法和习惯。充分性…...
Android游戏逆向工程全面指南
文章目录 第一部分:基础概念与环境搭建1.1 游戏逆向工程概述1.2 法律与道德考量1.3 开发环境准备基础工具集:环境配置示例: 第二部分:静态分析技术2.1 APK反编译与资源提取使用Apktool解包:关键文件分析: 2…...
ip route show 命令详解
《Linux 中 ip route show 输出结果解析及关键概念》 以下是对 ip route show 输出结果的详细解析,帮助你理解每条路由的含义及作用: 一、路由表整体结构 Linux 路由表中的每条条目包含 目标网络 / 主机、下一跳网关、出接口、路由协议、作用域、源地…...
antv x6使用(支持节点排序、新增节点、编辑节点、删除节点、选中节点)
项目需要实现如下效果流程图,功能包括节点排序、新增节点、编辑节点、删除节点、选中节点等 html部分如下: <template><div class"MindMapContent"><el-button size"small" click"addNode">新增节点&…...
DP主站如何华丽变身Modbus TCP网关!
DP主站如何华丽变身Modbus TCP网关! 在工业自动化领域,Profibus DP和Modbus TCP是两种常用的通信协议。Profibus DP通常应用于制造业自动化场景,而Modbus TCP则广泛使用于工业自动化和楼宇自动化等领域。为了实现这两种协议之间的互联互通&a…...
榕壹云在线商城系统:基于THinkPHP+ Mysql+UniApp全端适配、高效部署的电商解决方案
项目背景:解决多端电商开发的痛点 随着移动互联网的普及和用户购物习惯的碎片化,传统电商系统面临以下挑战: 1. 多平台适配成本高:需要同时开发App、小程序、H5等多端应用,重复开发导致资源浪费。 2. 技术依赖第三方…...
Pinia最基本用法
1. 定义 Store 首先,定义一个 Pinia Store,使用组合式 API 风格和 ref 来管理状态。 示例:stores/ids.js import { defineStore } from pinia; import { ref } from vue;export const useIdsStore defineStore(ids, () > {const ids …...
Android studio打包uniapp插件
一.参考资料与环境准备 原生工程配置需要使用到Android studio和HbuilderX 当前测试的as版本-20240301,下载地址:HbuilderX版本:4.36 二.插件创建流程 1.导入下载的UniPlugin-Hello-AS工程(下载地址见参考资料) 2.生成jks证书…...
App Cleaner Pro for Mac 中 Mac软件卸载工具
App Cleaner Pro for Mac 中 Mac软件卸载工具 一、介绍 App Cleaner & Uninstaller Pro Mac破解,是一款Mac软件卸载工具,残余垃圾清除工具!可以卸载应用程序或只删除不需要的服务文件,甚至可以删除以前删除的应用程序中的文…...
多线程与Tkinter界面交互
在现代图形用户界面(GUI)应用程序中,可能会遇到需要长时间运行的任务,例如网络请求、数据处理或文件读取等。如果这些任务直接在主线程中运行,会导致GUI界面“卡顿”或“不响应”。为了保持界面流畅和响应用户操作,我们可以通过使用多线程来将这些任务移到后台运行。然而…...
开发规范——Restful风格
目录 Restful Apifox 介绍 端口号8080怎么来的? 为什么要使用Apifox? Restful 如果请求方式是Post,那我就知道了要执行新增操作,要新增一个用户 如果请求方式是Put,那就代表我要修改用户 具体要对这些资源进行什么样的操…...
大模型——Llama Stack快速入门 部署构建AI大模型指南
Llama Stack快速入门 部署构建AI大模型指南 介绍 Llama Stack 是一组标准化和有主见的接口,用于如何构建规范的工具链组件(微调、合成数据生成)和代理应用程序。我们希望这些接口能够在整个生态系统中得到采用,这将有助于更轻松地实现互操作性。 Llama Stack 定义并标准化…...
符号右移“ >>= “ 与 无符号右移“ >>>= “ 的区别
符号右移" >> " 与 无符号右移" >>> " 的区别 一、符号右移" >> " 与 无符号右移" >>> " 的区别1. 符号右移(>>)与无符号右移(>>>)的区别…...
利用阿里云企业邮箱服务实现Python群发邮件
目录 一、阿里云企业邮箱群发邮件全流程实现 1. 准备工作与环境配置 2. 收件人列表管理 3. 邮件内容构建 4. 附件添加实现 5. 邮件发送核心逻辑 二、开发过程中遇到的问题与解决方案 1. 附件发送失败问题 2. 中文文件名乱码问题 3. 企业邮箱认证失败 三、完整工作流…...
探秘 Ruby 与 JavaScript:动态语言的多面风采
1 语法特性对比:简洁与灵活 1.1 Ruby 的语法优雅 Ruby 的语法设计旨在让代码读起来像自然语言一样流畅。它拥有简洁而富有表现力的语法结构,例如代码块、符号等。 以下是一个使用 Ruby 进行数组操作的简单示例: # 定义一个数组 numbers [1…...
08-JVM 面试题-mk
文章目录 1.JVM 的各部分组成2.运行时数据区2.1.什么是程序计数器?2.2.你能给我详细的介绍Java堆吗?2.3.能不能解释一下方法区?2.3.1常量池2.3.2.运行时常量池2.4.什么是虚拟机栈?2.4.1.垃圾回收是否涉及栈内存?2.4.2.栈内存分配越大越好吗?2.4.3.方法内的局部变量是否线…...
PostgreSQL技术大讲堂 - 第86讲:数据安全之--data_checksums天使与魔鬼
PostgreSQL技术大讲堂 - 第86讲,主题:数据安全之--data_checksums天使与魔鬼 1、data_checksums特性 2、避开DML规则,嫁接非法数据并合法化 3、避开约束规则,嫁接非法数据到表中 4、避开数据检查,读取坏块中的数据…...
DOM解析XML:Java程序员的“乐高积木式“数据搭建
各位代码建筑师们!今天我们要玩一个把XML变成内存乐高城堡的游戏——DOM解析!和SAX那种"边看监控边破案"的刺激不同,DOM就像把整个乐高说明书一次性倒进大脑,然后慢慢拼装(内存:你不要过来啊&…...
C++ 入门六:多态 —— 同一接口的多种实现之道
在面向对象编程中,多态是最具魅力的特性之一。它允许我们通过统一的接口处理不同类型的对象,实现 “一个接口,多种实现”。本章将从基础概念到实战案例,逐步解析多态的核心原理与应用场景,帮助新手掌握这一关键技术。 …...
关于获取文件大小的方法总结
编程开发中,获取文件大小是一项常见的需求,无论是进行文件管理、数据传输还是资源监控等操作,都可能需要知道文件的具体大小。下面将介绍几种常见的获取文件大小的方式,并进行对比分析。 几种可行的文件大小获取方式 1. 使用 fs…...
从宇树摇操avp_teleoperate到unitree_IL_lerobot:如何基于宇树人形进行二次开发(含Open-TeleVision源码解析)
前言 如之前的文章所述,我司「七月在线」正在并行开发多个订单,目前正在全力做好每一个订单,因为保密协议的原因,暂时没法拿出太多细节出来分享 但可以持续解读我们所创新改造或二次开发的对象,即解读paper和开源库…...
告别 ifconfig:为什么现代 Linux 系统推荐使用 ip 命令
告别 ifconfig:为什么现代 Linux 系统推荐使用 ip 命令 ifconfig 指令已经被视为过时的工具,不再是查看和配置网络接口的推荐方式。 与 netstat 被 ss 替代类似。 本文简要介绍 ip addr 命令的使用 简介ip ifconfig 属于 net-tools 包,这个…...
