网络原理初识
本来想从网络的发展史开始写,之后再写网络的定义啥的,但快写完了才发现,这不课本教材吗,没劲,遂弃之,重撰,删芜就简.写点我认为,对程序员来说真正有用的东西
目录
IP地址
概念
格式
特殊地址
端口号
概念
格式
协议
概念
知名协议的默认端口
五元组
协议分层
OSI七层模型
TCP/IP网络模型
应用层:服务交互接口
传输层:端到端连接管理
网络层:全局寻址与路由
数据链路层:局域网络传输
物理层:信号传输基础
封装与分用
封装过程(发送端)
分用过程(接收端)
技术价值
网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。 那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用IP地址来标识。
IP地址
概念
IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机 的网络地址。就像快递员需要精确的收件地址才能派送包裹,网络世界中的数据传递也需要明确的定位标识。当北京的程序员向上海的服务器请求数据时,IP地址就如同包裹上的"城市+街道+门牌号",指引着数据包跨越数千公里精准抵达目标设备。
格式
IPv4地址 基本结构
- 32位二进制数(4字节),分4段十进制表示
示例:11000000.10101000.00000001.00000001
→192.168.1.1
- 点分十进制记法:每字节转为0-255整数,用点分隔
有效范围:0.0.0.0
~255.255.255.255
IPv6地址基本结构
- 128位二进制数(16字节),分8组十六进制表示
示例:2001:0db8:85a3:0000:0000:8a2e:0370:7334
- 压缩规则:
- 前导零省略:
0db8
→db8
- 连续零块压缩:
2001:0:0:0:0:0:0:1
→2001::1
- 前导零省略:
特殊地址
127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1 本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。
IP地址解决了网络通信时,定位网络主机的问题,但是还存在一个问题,传输到目的主机后,由哪个进程来接收这个数据呢?这就需要端口号来标识。
端口号
概念
在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程。就像酒店的房间号,想象你要给某栋大楼里的朋友送快递:
- IP地址 = 大楼地址(找到正确的建筑)
- 端口号 = 房间号(把包裹送到具体的收件人)
一台电脑就像一栋有很多房间(程序)的大楼,端口号告诉网络数据应该送到哪个"房间"(具体哪个软件收数据)。比如:
- 浏览器访问网站 → 找服务器的 80号房间(HTTP协议)
- 微信视频通话 → 用 随机空闲房间(如5000~60000之间的端口)
格式
- 16位无符号整数(取值范围:0~65535)
- 在TCP/UDP协议头部中占据 2字节存储空间
分类标准
类型 | 范围 | 用途说明 | 典型示例 |
---|---|---|---|
知名端口 | 0~1023 | 系统级服务专用端口 | HTTP=80, HTTPS=443 |
注册端口 | 1024~49151 | 用户级应用注册端口 | MySQL=3306, Redis=6379 |
动态/私有端口 | 49152~65535 | 客户端临时使用端口 | 微信视频通话随机端口 |
有了IP地址和端口号,可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制 0/1数据来传输,如何告诉对方发送的数据是什么样的呢? 网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如 发送一个文本字符串“你好!”:如何标识发送的数据是文本类型,及文本的编码格式呢? 基于网络数据传输,需要使用协议来规定双方的数据格式。
协议
概念
协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从 的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互 通信交流。通常由三要素组成,就像人类交流的语法规则,想象两个说不同语言的人要合作完成项目:
- 语法 = 单词排列顺序(英文用主谓宾,日文用主宾谓)
- 语义 = 词语真实含义("提交"代表完成动作)
- 时序 = 对话节奏(A说完B才能回应)
网络协议就是计算机界的"多国语言词典",规定数据如何打包、传输和解码。比如:
- HTTP协议:浏览器和服务器约定好"问-答"格式
浏览器问:GET /index.html 服务器答:200 OK + 网页内容
- TCP协议:像打电话要先说"喂?",挂断前说"再见"
知名协议的默认端口
系统端口号范围为 0 ~ 65535,其中:0 ~ 1023 为知名端口号,这些端口预留给服务端程序绑定广泛使 用的应用层协议,如:
端口号 协议名称 典型应用场景 20 FTP (Data Channel) 文件传输协议的数据通道 21 FTP (Control Channel) FTP服务命令控制通道 22 SSH 安全加密的远程服务器管理 23 Telnet 明文远程终端协议(已逐步被SSH取代) 25 SMTP 邮件发送服务(如Postfix/Sendmail) 53 DNS 域名解析服务(UDP/TCP双协议支持) 67 DHCP Server 动态主机配置协议服务端 68 DHCP Client 客户端获取IP地址 80 HTTP 网页服务标准端口(Nginx/Apache) 110 POP3 邮件收取协议(明文传输) 123 NTP 网络时间协议同步 143 IMAP 邮件同步协议(支持多设备) 443 HTTPS 加密版HTTP(需部署SSL/TLS证书) 465 SMTPS 加密邮件提交端口 587 Submission 安全邮件提交端口(强制STARTTLS) 993 IMAPS 加密IMAP协议 995 POP3S 加密POP3协议 以上只是说明 0 ~ 1023 范围的知名端口号用于绑定知名协议,但某个服务器也可以使用其他 1024 ~ 65535 范围内的端口来绑定知名协议。
五元组
在TCP/IP协议中,用五元组来标识一个网络通信.五元组是网络通信的"分子级"标识符,由五个关键参数组合而成,能够唯一确定一条网络连接。其作用相当于快递系统中的完整物流信息,确保数据包精准送达目标应用。
组成要素
参数项 | 数据示例 | 技术作用 |
---|---|---|
源IP地址 | 192.168.1.100 | 标识数据发送设备的位置 |
源端口号 | 54321 | 定位发送主机的具体进程 |
目的IP地址 | 203.0.113.5 | 指定数据接收设备的网络坐标 |
目的端口号 | 443 | 确定接收主机的目标服务 |
传输层协议 | TCP | 定义通信规则(可靠/不可靠传输) |
可以在cmd中,输入 netstat -ano 查看网络数据传输中的五元组信息:
协议分层
协议分层是将复杂网络通信拆解为多个独立功能层,每层专注特定任务(如传输、寻址、数据格式化),通过标准接口向上提供服务、向下调用功能。协议分层如同建造摩天大楼的施工蓝图,将复杂的网络通信分解为多个功能模块。每个层级专注解决特定问题,通过标准接口与相邻层交互,这种设计使得:
- 技术演进独立:更新无线技术(Wi-Fi 6)无需修改上层HTTP协议
- 故障定位精准:网络不通时可逐层排查(先查物理连接再查IP配置)
- 开发效率提升:程序员可专注应用层开发,无需处理比特流转换
OSI七层模型
只是个理论了解了解就行,OSI七层模型(开放式系统互联参考模型)是国际标准化组织(ISO)提出的网络通信理论框架,将通信过程划分为7个层级,每层定义明确功能,下层为上层提供服务,是全球网络协议设计的理论基础。
层级 | 名称 | 核心功能 | 关键协议/设备 | 数据单元 |
---|---|---|---|---|
7 | 应用层 | 用户与网络的接口(文件传输、邮件收发) | HTTP、FTP、SMTP | 报文/消息 |
6 | 表示层 | 数据格式转换(加密、压缩、编码) | SSL/TLS、JPEG、ASCII | 格式化数据 |
5 | 会话层 | 建立/维护/断开会话(设备间对话逻辑) | NetBIOS、RPC、SSH | 会话数据 |
4 | 传输层 | 端到端可靠传输(流量控制、错误校验) | TCP、UDP | 数据段 |
3 | 网络层 | 逻辑寻址与路由(跨网络传输路径选择) | IP、ICMP、路由器 | 数据包 |
2 | 数据链路层 | 物理寻址与帧管理(局域网内设备通信) | 以太网、MAC地址、交换机 | 数据帧 |
1 | 物理层 | 物理介质传输(电信号、光信号、无线电波) | 网线、光纤、集线器 | 比特流 |
TCP/IP网络模型
应用层:服务交互接口
应用层直接对接用户程序,定义应用程序间的通信规则。常见协议包括:
- HTTP协议:支撑网页浏览
- SMTP/POP3协议:实现邮件收发
- DNS协议:完成域名到IP地址的转换
- FTP协议:管理文件传输
数据在此层被封装为特定应用协议格式,例如网页请求会被包装为HTTP报文。程序员通过调用API接口,无需关心底层实现即可完成网络通信。
传输层:端到端连接管理
该层建立主机进程间的逻辑通信通道,核心协议包括:
TCP协议:提供面向连接的可靠传输
- 三次握手建立连接
- 数据分段与序列编号
- 流量控制与重传机制
UDP协议:支持无连接的快速传输
- 适用于实时音视频流
- 不保证数据完整性
端口号(0-65535)在此层标识具体应用进程,如80端口对应HTTP服务。TCP/UDP头部包含源端口、目的端口及校验信息。
网络层:全局寻址与路由
IP协议是本层核心,实现两大核心功能:
地址规划
- IPv4采用32位地址(如192.168.1.1)
- IPv6扩展为128位地址(如2001:0db8::1)
- 子网划分提升地址利用率
路由选择
- 路由器根据路由表转发数据包
- OSPF、BGP等路由协议维护网络拓扑
- NAT技术实现公私地址转换
数据包在此层添加IP头部,包含源/目的IP地址、TTL生存时间等字段。分片机制确保大数据包适配不同网络的最大传输单元(MTU)。
数据链路层:局域网络传输
管理同一物理网络内的设备通信:
- MAC地址(如00:1A:2B:3C:4D:5E)标识网卡设备
- 以太网协议规定帧结构(前导码+MAC头+数据+FCS)
- 交换机通过MAC地址表实现帧转发
- ARP协议解析IP地址到MAC地址的映射
错误检测通过帧校验序列(FCS)实现,使用CRC算法验证数据完整性。VLAN技术可在物理网络中创建逻辑子网。
物理层:信号传输基础
实现比特流的物理传输:
- 定义电气特性(电压标准)
- 规定接口规范(RJ45、光纤接口)
- 调制技术(QAM、OFDM)
- 传输介质(双绞线、同轴电缆、光纤、无线电波)
该层设备包括集线器、中继器等,负责将数字信号转换为电磁波、光信号或无线电波。传输速率、误码率、信噪比是主要技术指标。
封装与分用
在TCP/IP网络模型中,封装(Encapsulation)和分用(Demultiplexing)是实现跨层通信的关键流程,二者共同构成数据收发的基础逻辑。
封装过程(发送端)
数据从应用层向物理层逐层加工:
应用层
原始数据(如HTTP请求)添加应用协议头(HTTP头),包含请求方法、URL路径等信息。
传输层
接收应用数据单元(ADU),添加TCP/UDP头部:
- 源端口 & 目的端口(标识应用程序)
- 序列号 & 确认号(TCP可靠性保障)
- 校验和(数据完整性验证)
形成报文段(Segment)或数据报(Datagram)
网络层
附加IP头部生成数据包(Packet),包含:
- 源IP & 目的IP(全球寻址)
- 协议类型(TCP=6/UDP=17)
- TTL(生存周期计数器)
数据链路层
封装为帧(Frame),添加:
- 源MAC & 目的MAC(局域网寻址)
- VLAN标签(虚拟网络划分)
- FCS校验码(CRC循环冗余校验)
物理层
将二进制比特流转换为物理信号(电脉冲/光信号/电磁波),添加前导码实现时钟同步。
分用过程(接收端)
数据从物理层向应用层逆向解析:
物理层
将模拟信号还原为数字比特流,移除前导码。
数据链路层
- 校验FCS确认帧完整性
- 比对MAC地址决定是否接收
- 剥离帧头得到IP数据包
网络层
- 检查IP头部校验和
- 根据目的IP判断是否本机接收
- 分片数据包重组(若存在)
传输层
- 通过端口号定位目标应用程序
- TCP协议执行顺序重组和丢包重传
- 移除TCP/UDP头部传递应用数据
应用层
特定协议解析(如HTTP响应解析),将有效载荷交付用户程序。
技术价值
- 协议隔离性:各层仅需理解相邻层接口,无需感知其他层实现细节
- 模块化扩展:新协议可在特定层级独立部署(如HTTP/3在应用层升级)
- 错误隔离:物理层误码不会影响传输层连接管理
- 多路复用:单个IP地址可通过不同端口并发处理多种服务
相关文章:
网络原理初识
本来想从网络的发展史开始写,之后再写网络的定义啥的,但快写完了才发现,这不课本教材吗,没劲,遂弃之,重撰,删芜就简.写点我认为,对程序员来说真正有用的东西 目录 IP地址 概念 格式 特殊地址 端口号 概念 格式 协议 概念 知名协议的默认端口 五元组 协议分层 OS…...
PVP鼠标推荐(deepseek)
下面有不懂的自行百度查找👍 ❤️ 以下是几款在 双击性能(DBC) 和 拖拽点击(DC) 方面表现优秀的游戏鼠标推荐,结合了硬件性能、微动寿命以及玩家口碑: 1. 罗技 G102/G203 Lightsync 特点&#…...
Navee滑板车强势登陆中国,以智能科技重塑城市出行新风尚
当科技与潮流邂逅,城市出行迎来了一场前所未有的变革。全球智能出行领域的先锋品牌Navee,携其多款旗舰滑板车产品——ST3、GT3、V系列等,正式进军中国市场。凭借“颜值、性能、安全、智能”四大核心优势,Navee正以破竹之势重新定义…...
【Linux网络】网络命令
Ping Ping命令是一种用于测试网络连接状况的工具,在Windows、Linux、macOS等操作系统中都可以使用。以下是其详细介绍: 它主要通过向目标主机发送Internet控制报文协议(ICMP)的回声请求(Echo Request)数据…...
【JS逆向基础】面向对象
1,OOP编程思想 面向对象编程是在面向过程编程的基础上发展来的,它比面向过程编程具有更强的灵活性和扩展性。面向对象编程是程序员发展的分水岭,很多初学者会因无法理解面向对象而放弃学习编程。 面向对象编程(Obiect:oriented Programming…...
# 如何使用OpenCV进行发票的透视变换和二值化处理
如何使用OpenCV进行发票的透视变换和二值化处理 引言 在自动化处理发票和其他文档时,图像预处理是一个关键步骤,它可以帮助提高OCR(光学字符识别)的准确性。透视变换用于校正图像中的透视失真,而二值化处理则可以简化…...
NetSuite 如何得到所有Item最近一次采购订单的货品单价?
我们知道,如果取Item主数据的数据,得到的是很多相关transaction的Item 货品平均价值;如果只想得到最近一次采购订单上的采购单价,主数据上应该无法直接得到,那该如何处理?我们可以利用Saved Search来拉取相…...
[5-2] 对射式红外传感器计次旋转编码器计次 江协科技学习笔记(38个知识点)
1、 2、 3、这些缩写通常出现在嵌入式系统或微控制器的上下文中,它们各自有不同的功能: • RCC:Reset and Clock Control(复位和时钟控制)。它负责管理微控制器的时钟系统,包括时钟源的选择、时钟频率的设置…...
阿里云 golang 一面
消息队列 分布式文件系统 Linux的虚拟网络设备 TCP SSL/TLS 场景:对于打车场景,如何设计一个系统来处理并发打车请求? 设计一个处理并发打车请求的系统需要考虑多个方面,包括系统架构、数据存储、负载均衡和实时性。以下是一个基…...
【C++ Qt】多元素控件(ListWidget、TableWidget、TreeWidget)
每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论: 本章将通过代码示例详细介绍了Qt中QListWidget、QTableWidget和QTreeWidget三种多元素控件的使用方法与核心功能,涵盖列表的增删操作、表格…...
排序算法-冒泡排序
冒泡排序一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这个算法的名字由来是因为元素会经由交换慢…...
C++ 工具链与开发实践:构建安全、高效与创新的开发生态
引言 在 C 的技术演进中,工具链的革新与开发实践的迭代始终是推动语言生命力的核心动力。从内存安全的攻防体系到嵌入式设备的能效优化,从跨平台开发的降本增效到开发者社区的生态构建,C 正通过工具链与方法论的双重升级,应对复杂…...
uni-pages-hot-modules插件:uni-app的pages.json的模块化及模块热重载
uni-pages-hot-modules uni-app的pages.json的模块化及模块热重载 uni-app的pages.json的模块化及模块热重载 解决uni-app的pages.json无法模块化的问题,并且解决模块热重载和缓存的问题 安装 npm i uni-pages-hot-modules -Suni-app vite版本(vue3)示例项目 uni-app webpa…...
【WEB3】区块链、隐私计算、AI和Web3.0——数据民主化(1)
区块链、隐私计算、AI,是未来Web3.0至关重要的三项技术。 1.数据民主化问题 数据在整个生命周期(生产、传输、处理、存储)内的隐私安全,则是Web3.0在初始阶段首要解决的问题。 数据民主化旨在打破数据垄断,让个体能…...
从0到1:用Lask/Django框架搭建个人博客系统(4/10)
摘要:本文深入解析了使用Lask和Django构建个人博客系统的全过程。从技术选型的考量,突出Lask的轻量灵活与Django的强大功能,到开发环境搭建、项目初始化,再到核心功能实现如文章管理、用户认证与权限控制,详细阐述了开…...
探索 C++23 的 views::cartesian_product
文章目录 一、背景与动机二、基本概念与语法三、使用示例四、特点与优势五、性能与优化六、与 P2374R4 的关系七、编译器支持八、总结 C23 为我们带来了一系列令人兴奋的新特性,其中 views::cartesian_product 是一个非常实用且强大的功能,它允许我们轻…...
微软拼音自定义词库方法
1.准备文件input.txt 令狐冲 郭靖2.使用python转成微软拼音需要的格式 from xpinyin import Pinyin # pip install xpinyin -i https://pypi.tuna.tsinghua.edu.cn/simplep Pinyin()with open(input.txt, r, encodingutf-8) as infile:with open(output.txt, w, encodingutf…...
SQLite3常用语句汇总
SQLite 命令行工具(sqlite3 shell) 中的内置命令 命令作用说明.open filename.db打开或创建一个 SQLite 数据库文件.tables列出当前数据库中的所有表.schema [table]查看某个表或所有表的建表语句(DDL).headers ON/OFF开启或关闭…...
数据库设计三范式
第一范式 (1NF) 每个表中的每一列都是原子值 每个表中的每一行都是唯一的 下面这个表格就是不符合第一范式的例子:因为学时数能够拆分为讲课和实验。所以他并不是每一列都是原子值。 不仅要考虑列是否是原子值,还需要考虑每列的值是否可拆分。 第二范…...
GoWeb开发
学习目标: 本篇要达到的目的,能为后续复习提供极大便利。 (当我写下本篇博客时,已复习3遍) 一、网络通信概述 (为本篇基础核心内容) 1、什么是网络通信? 网络通信是指不同设备&…...
(7)Nokov 室内光学跟踪系统
文章目录 前言 7.1 所需硬件 7.2 Nokov 系统设置 7.3 配置旋翼机 7.4 启动 Nokov 模块 7.5 MAVProxy 准备 7.6 测试飞行 7.7 参数说明 前言 本文将介绍如何通过 Nokov 运动捕捉系统向旋翼机传输姿势信息。联系方式:NOKOV | Optical Motion Capture System。…...
Linux Shell编程和循环语句
一.for循环语句 1.for语句的结构2.for循环语句实例①根据姓名列表来批量创建多个用户②根据IP地址列表检查主机状态 二.使用while循环语句1.while语句结构2.while循环语句应用①批量添加规律编号用户②猜价格游戏 三 until循环语句1.until语句结构① 计算1-50的和 1.for语句的结…...
Java后端程序员学习前端之JavaScript
1.什么是JavaScript 1.1.概述 JavaScript是一门世界上最流行的脚本语言javaScript 一个合格的后端人员,必须要精通JavaScript 1.2.历史 JavaScript的起源故事-CSDN博客 2.快速入门 2.1.引入JavaScript 1.内部标签 <script>//.......</script> --…...
redis多路复用IO模型 以及 6.0引入的多线程模型
redis为什么选择单线程 采用多线程的话,会出现上下文切换的开销采用多线程,会带来共享资源的竞争控制,比如多个线程同时访问同一个资源(键值)时,需要额外的手段来保障共享资源的正确性,会带来额…...
101alpha_第6个
第6个alpha (-1 * correlation(open, volume, 10)) 这个就是看这两个相似性。10天之内的 如果结果为正且数值较大,投资者可能会认为在开盘价上涨时成交量萎缩,市场上涨动力不足,可能是卖出信号;反之,开盘价下跌时成交…...
crawl4ai能替代scrapy等传统爬虫框架吗?
传统爬虫框架就像拿着渔网在数字海洋中捕鱼——虽然能捞到东西,但面对现代网站的复杂性时常常"漏网之鱼"满天飞。以Scrapy为代表的工具存在三大致命短板:首先是JavaScript盲区,对动态渲染内容束手无策,就像试图用收音机…...
Sui Basecamp 2025 全栈出击
“我们不仅仅是在构建一个 L1,我们是在重建互联网。” — — Mysten Labs 首席产品官 Adeniyi Abiodun 本届 Sui Basecamp 汇聚了 Web3 领域的建设者、合作伙伴和思想领袖,为期两天,不仅展示了 Sui 的未来,也展现了去中心化互联网…...
计算机体系架构-----设计模式:状态模式(从程序员加班问题切入)
文章目录 1.梦开始的地方2.代码1.0版本3.代码2.0版本4.代码3.0版本5.梦结束的地方 最近在学习这个专业课里面的体系结构这门课程,作为专业里面的一门基础课,这个课程里面主要讲解的就是软件的设计思想,一些历程之类的,包括了面向对…...
【C/C++】RPC与线程间通信:高效设计的关键选择
文章目录 RPC与线程间通信:高效设计的关键选择1 RPC 的核心用途2 线程间通信的常规方法3 RPC 用于线程间通信的潜在意义4 主要缺点与限制4.1 缺点列表4.2 展开 5 替代方案6 结论 RPC与线程间通信:高效设计的关键选择 在C或分布式系统设计中,…...
数据结构之串
一、串的定义与基本概念 1. 串的定义 定义:串是由零个或多个字符组成的有限序列,记作 s"a1a2…an",例如 "data structure"、"123" 等。 空串:无任何字符,长度为 0,…...
基于腾讯云MCP广场的AI自动化实践:爬取小红书热门话题
基于腾讯云MCP广场的AI自动化实践:爬取小红书热门话题 我正在参加Trae「超级体验官」创意实践征文,本文所使用的 Trae 免费下载链接:www.trae.com.cn/?utm_source… 🔎 背景 在人工智能快速发展的时代,AI技术不仅重…...
AI领域的MCP(Model-Centric Paradigm)
1. 什么是MCP(Model-Centric Paradigm)? MCP(Model-Centric Paradigm)是人工智能开发中的一种核心理念,强调以模型的优化与改进作为主要驱动因素来提升AI系统的表现。在MCP模式下,开发者专注于…...
裸辞8年前端的面试笔记——JavaScript篇(一)
裸辞后的第二个月开始准备找工作,今天是第三天目前还没有面试,现在的行情是一言难尽,都在疯狂的压价。 下边是今天复习的个人笔记 一、事件循环 JavaScript 的事件循环(Event Loop)是其实现异步编程的关键机制。 从…...
力扣刷题Day 41:除自身以外数组的乘积(238)
1.题目描述 2.思路 方法1:搞一个数组存放各元素之前所有数的乘积(头为1),再搞一个数组存放各元素之后所有数的乘积(尾为1)。 方法2:上面的方法是很好理解的,在此基础上应该如何优化…...
金仓数据库征文-金仓KES数据同步优化实践:逻辑解码与增量同步
目录 一.同步场景与方案选型 二.同步环境配置 1.前置条件验证 2.逻辑解码配置 三.同步实施与问题排查 1.结构映射规则 2.增量数据捕获 3.数据一致性校验 四.性能调优实践 1.同步线程优化 2.批量提交优化 3.资源监控指标 五.典型场景解决方案 1.双向同步冲突处理 …...
【前端基础】9、CSS的动态伪类(hover、visited、hover、active、focus)【注:本文只有几个粗略说明】
一、什么是伪类 选择器的一种,用于选择处于特定状态的元素。 最常见的现象:鼠标放在某些文字上面,文字就会加上颜色。 鼠标没放上去之前: 鼠标放上去之后: 二、动态伪类 图片来源(链接文章也有其他伪…...
企业开发平台大变革:AI 代理 + 平台工程重构数字化转型路径
在企业数字化转型的浪潮中,开发平台正经历着前所未有的技术革命。从 AST(抽象语法树)到 AI 驱动的智能开发,从微服务架构到信创适配,这场变革不仅重塑了软件开发的底层逻辑,更催生了全新的生产力范式。本文…...
ZooKeeper工作机制与应用场景
目录 1.1、概述1.2、选举机制1.2.1、选举触发条件1.2.2、选举规则1.2.3、选举过程详解 1.3、数据同步机制1.3.1、正常同步1.3.2、宕机同步 1.4、客户端常用命令1.5、应用场景1.5.1、配置管理1.5.2、命令服务1.5.3、分布式锁服务1.5.4、集群管理1.5.5、分布式ID1.5.6、分布式协调…...
VR制作软件用途(VR制作软件概述)
虚拟现实(VR)制作软件作为现代科技的瑰宝,正以独特的魅力重塑各行各业。 通过构建三维虚拟环境,这些软件提供了前所未有的沉浸式体验,还推动了技术革新与产业升级。本文将探讨VR制作软件的主要用途,并重点…...
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.1 业务场景与数据准备
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 9.1 业务场景与数据准备9.1.1 业务场景描述核心业务目标业务挑战 9.1.2 数据来源与获取数据源构成数据获取方案 9.1.3 数据结构与字段说明核心数据表设计1. 订单事实表&…...
PyTorch 入门与核心概念详解:从基础到实战问题解决
PyTorch 入门与核心概念详解:从基础到实战问题解决 前言 用PyTorch 编写 Transformer 模型时遇到了多个错误,包括维度不匹配、NaN 损失、注意力权重未记录以及 OpenMP 库初始化等问题。 本文基于以上,对 PyTorch 的基本解释,并对…...
【办公类-99-05】20250508 D刊物JPG合并PDF便于打印
背景需求 委员让我打印2024年2025年4月的D刊杂志,A4彩打,单面。 有很多JPG,一个个JPG图片打开,实在太麻烦了。 我需要把多个jpg图片合并成成为一个PDF,按顺序排列打印。 deepseek写Python代码 代码展示 D刊jpg图片合…...
【C++】手搓一个STL风格的string容器
C string类的解析式高效实现 GitHub地址 有梦想的电信狗 1. 引言:字符串处理的复杂性 在C标准库中,string类作为最常用的容器之一,其内部实现复杂度远超表面认知。本文将通过一个简易仿照STL的string类的完整实现,揭示其设…...
无实体对话式社交机器人 拟人化印象形成机制:基于多模态交互与文化适配的拓展研究
《如何感知AI对话者:无实体对话式社交机器人拟人化对其印象形成效果影响机制的实验研究》解析 一、研究背景与核心问题 (一)技术背景与研究动机 随着生成式AI技术发展,以ChatGPT、文心一言为代表的无实体对话式社交机器人兴起,用户对其高度拟人化特征有显著需求,如扮演…...
存储器:DDR和独立显卡的GDDR有什么区别?
本文来简要对比DDR(Double Data Rate SDRAM)和GDDR(Graphics Double Data Rate SDRAM)的区别,重点说明它们在设计、性能和应用上的差异: 1. 设计目标与架构 DDR:通用型DRAM,设计为…...
viewDesign里的table内嵌套select动态添加表格行绑定内容丢失
问题 描述 viewDesign里的table内嵌套select,表格的行数是手动点击按钮添加的,添加第一行选择select的内容能正常展示,添加第二行第一行的select的内容消失 代码 <FormItem label"内饰颜色"><Tableclass"mt_10&q…...
vue v-html无法解析<
vue v-html无法解析字符串的小于号 方法一:可以替换成转义符 (实际还是会报错) let str 12345<445667 str.replaceAll(<, <)方法二:可以替换成中文小于号 let str 12345<445667 str.replaceAll(<, <)...
COLT_CMDB_linux_userInfo_20250508.sh修复历史脚本输出指标信息中userName与输出信息不一致问题
#!/bin/bash #IT_BEGIN #IT_TYPE3 #IT SYSTEM_LINUX_AGENTUSERDISCOVER|discovery.user[disc] #原型指标 #IT_RULE SYSTEM_LINUX_AGENTUSERGROUPID|groupId[{#USERNAME}] #IT_RULE SYSTEM_LINUX_AGENTUSERHOME|userHome[{#USERNAME}] #IT_RULE SYSTEM_LINUX_AGENTUSERNAME|user…...
A. Row GCD(gcd的基本性质)
Problem - 1458A - Codeforces 思路: 首先得知道gcd的两个基本性质: (1) gcd(a,b)gcd(a,|b-a|) (2) gcd(a,b,c)gcd(a,gcd(b,c)) 结合题目所给的a1bj,a2bj...... anbj 根据第一条性质得到: gcd(a1bj,a2bj)gcd(…...
k8s术语之Horizontal Pod Autoscaling
应用的资源使用率通常都有高峰和低谷的时候,如何削峰填谷,提高整体的整体资源利用率,让service中的Pod个数自动调整呢?Horizontal Pod Autoscaling:使pod水平自动缩放。这个Object也是最能体现kubernetes之于传统运维价值的地方&a…...