TCP/IP协议簇
文章目录
- 应用层
- http/https
- DNS
- 补充
- 传输层
- TCP
- 1. 序列号与确认机制
- 2. 超时重传
- 3. 流量控制(滑动窗口机制)
- 4. 拥塞控制
- 5. 错误检测与校验
- 6. 连接管理
- 总结
- 网络层
- ARP
- **ARP 的核心功能**
- ARP 的工作流程
- 1. ARP 请求(Broadcast)
- 2. ARP 缓存(ARP Table)
- ARP 的典型应用场景
- ARP 与其他协议的关系
- 示例说明
- 总结
- ICMP
- ICMP 的核心功能
- ICMP 的消息类型
- ICMP 的工作流程示例
- 场景:主机 A Ping 主机 B
- 场景:路由器返回 “目的不可达”
- ICMP 的典型应用场景
- ICMP 与其他协议的关系
- ICMP 的安全性与局限性
- 总结
- IGMP
- 网络接口层
- 1. 物理层协议
- 2. 数据链路层协议
应用层
http/https
https://blog.csdn.net/z_ar_d/article/details/146561799?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
DNS
会有链接的(画大饼)
补充
基于tcp的:SMTP(25)\POP3(110)\SSH(22)\FTP(20\21)ssl\tls
基于UDP:DHCP(C68\S67)\NTP(123)\TFTP(69)
传输层
TCP
TCP/IP 协议栈中的 TCP(Transmission Control Protocol) 通过以下核心机制确保数据的可靠传输:
1. 序列号与确认机制
- 序列号(Sequence Number):TCP 为每个字节的数据分配一个唯一的序列号,确保接收方可以按序重组数据。
- 确认号(Acknowledgment Number):接收方通过 ACK 报文告知发送方已成功接收的数据字节位置(下一个期望接收的字节序号)。
- 累积确认(Cumulative ACK):接收方只需确认最后一个连续接收的字节,简化确认流程。
2. 超时重传
- 重传定时器:发送方发送数据后启动定时器,若超时未收到 ACK,则重新发送未确认的数据段。
- 自适应重传算法:TCP 动态调整超时时间(RTO,Retransmission Timeout),根据网络延迟变化优化重传策略。
3. 流量控制(滑动窗口机制)
- 滑动窗口(Sliding Window):接收方通过窗口大小告知发送方当前可接收的数据量,避免接收方缓冲区溢出。
- 动态调整窗口:窗口大小随接收方缓冲区剩余空间动态变化,发送方根据 ACK 中的窗口字段调整发送速率。
4. 拥塞控制
- 慢启动(Slow Start):初始阶段逐步增加发送窗口,探测网络容量。
- 拥塞避免(Congestion Avoidance):当网络出现拥塞(如丢包)时,降低发送速率,避免进一步恶化。
- 快速重传与快速恢复:若接收方连续收到 3 个重复 ACK,判定数据包丢失,立即重传并调整窗口,减少不必要的等待。
5. 错误检测与校验
- 校验和(Checksum):TCP 对首部和数据进行校验,检测传输中是否发生错误,错误数据段会被丢弃并重传。
6. 连接管理
- 三次握手(Three-Way Handshake):建立连接时,双方通过 SYN、SYN-ACK、ACK 报文确认彼此可达。
- 四次挥手(Four-Way Handshake):断开连接时,双方通过 FIN、ACK 报文确保数据全部传输完毕。
总结
TCP 通过序列号与确认保证数据按序到达,超时重传处理丢失数据,滑动窗口控制流量避免过载,拥塞控制优化网络利用率,校验和检测错误,以及连接管理确保可靠的端到端通信。这些机制共同作用,使 TCP 成为互联网中最常用的可靠传输协议。
网络层
ARP
ARP(Address Resolution Protocol,地址解析协议)是计算机网络中用于将 IP 地址转换为物理 MAC 地址的核心协议,属于 TCP/IP 协议栈的网络层与数据链路层之间的桥梁。
ARP 的核心功能
- IP 地址到 MAC 地址的映射
- 数据链路层(如以太网)通过 MAC 地址识别设备,而网络层使用 IP 地址。ARP 负责将目标 IP 地址解析为对应的 MAC 地址,确保数据帧能正确送达。
- 跨层通信的关键
- 当主机发送数据时:
- 网络层封装 IP 数据包(含目标 IP 地址)。
- 数据链路层需将 IP 数据包封装为数据帧(需目标 MAC 地址)。
- ARP 通过广播或缓存查询获取目标 MAC 地址。
ARP 的工作流程
1. ARP 请求(Broadcast)
- 场景:主机 A(IP: 192.168.1.1,MAC: AA-AA-AA)要向主机 B(IP: 192.168.1.2)发送数据,但 ARP 缓存中无主机 B 的 MAC 地址。
- 步骤:
- 主机 A 发送ARP 请求广播帧(目标 IP=192.168.1.2,目标 MAC=FF:FF:FF:FF:FF:FF)。
- 局域网内所有主机接收并解析请求。
- 主机 B 发现请求目标 IP 是自己,发送ARP 应答单播帧(源 IP=192.168.1.2,源 MAC=BB-BB-BB)。
- 主机 A 将主机 B 的 IP-MAC 映射存入 ARP 缓存。
2. ARP 缓存(ARP Table)
- 作用:存储近期解析过的 IP-MAC 映射,避免重复广播。
- 条目生命周期:通常为几分钟(可通过
arp -a
查看)。 - 更新机制:若目标 IP 地址的 MAC 地址变化,会触发新的 ARP 请求。
ARP 的典型应用场景
- 同一局域网通信
- 主机 A 与主机 B 直接通信时,需通过 ARP 解析对方 MAC 地址。
- 跨网络通信(通过网关)
- 主机 A 访问外网(如 IP: 8.8.8.8)时,先通过 ARP 获取网关(路由器)的 MAC 地址,数据经网关转发。
- ARP 缓存中毒攻击
- 攻击者伪造 ARP 应答,将目标 IP 地址映射到恶意 MAC 地址,导致数据被窃听或中断(如中间人攻击)。
ARP 与其他协议的关系
- 与 RARP 的区别:
- ARP:IP → MAC(常用)。
- RARP:MAC → IP(已被 DHCP 取代)。
- 与 ICMP 的关系:
- ARP 是无连接协议,依赖链路层广播;ICMP 用于网络诊断(如 Ping)。
示例说明
- 问题:主机 A 无法访问主机 B,可能原因:
- 主机 B 未开启,无法响应 ARP 请求。
- ARP 缓存中主机 B 的 MAC 地址过期或错误。
- 存在 ARP 欺骗攻击,导致数据发送到错误设备。
总结
ARP 是网络通信的基础协议,确保 IP 地址与物理地址的正确映射。合理利用 ARP 缓存可提升效率,但需注意防范 ARP 欺骗等安全风险。理解 ARP 有助于诊断网络连接问题(如 “无法访问目标主机”)和优化网络配置。
ICMP
ICMP(Internet Control Message Protocol,互联网控制消息协议)是 TCP/IP 协议栈中网络层的核心协议之一,主要用于**网络设备之间传递控制信息和错误报告。**它通过封装在 IP 数据包中传输,是网络诊断和维护的重要工具。
ICMP 的核心功能
- 错误报告
- 当网络设备(如路由器)发现数据包无法转发时,通过 ICMP 向源主机发送错误消息(如 “目的不可达”)。
- 网络诊断
- 提供基础诊断功能(如 Ping、Traceroute),帮助用户验证网络连通性和路径。
- 流量控制
- 通过 “源抑制” 消息通知发送方降低发送速率,避免网络拥塞。
- 路径信息传递
- 路由器通过 “重定向” 消息告知主机更优的下一跳地址。
ICMP 的消息类型
ICMP 消息分为差错报告和查询两大类,常见类型如下:
类型 | 代码 | 描述 |
---|---|---|
3 - 目的不可达 | 0-15 | 目标网络 / 主机 / 协议 / 端口不可达(如主机未开机、防火墙拦截) |
11 - 超时 | 0-1 | TTL 耗尽(如 Traceroute 利用此消息跟踪路径)或分片重组超时 |
5 - 重定向 | 0-3 | 路由器通知主机使用更优的下一跳地址 |
8 - 回显请求 | 0 | Ping 请求(如ping 192.168.1.1 ) |
0 - 回显应答 | 0 | Ping 响应,确认目标可达 |
ICMP 的工作流程示例
场景:主机 A Ping 主机 B
- 主机 A 发送 ICMP 回显请求(类型 8)数据包,目标 IP 为 B 的 IP 地址。
- 主机 B 接收到请求后,发送 ICMP 回显应答(类型 0)给主机 A。
- 主机 A 根据应答判断主机 B 是否可达。
场景:路由器返回 “目的不可达”
- 若主机 A 尝试访问不存在的 IP 地址,路由器会发送 ICMP 目的不可达消息(类型 3,代码 1)。
ICMP 的典型应用场景
- 网络连通性测试
- Ping 工具:通过回显请求 / 应答验证主机是否可达。
- 示例:
ping -c 4 8.8.8.8
(向谷歌 DNS 服务器发送 4 个 Ping 请求)。 - 路径跟踪
- Traceroute 工具:利用 ICMP 超时消息(类型 11)逐步显示数据包经过的路由器。
- 示例:
traceroute www.example.com
。 - 故障诊断
- 分析 ICMP 错误消息定位问题(如防火墙规则、路由配置错误)。
ICMP 与其他协议的关系
- 与 IP 协议:ICMP 是 IP 层的一部分,所有 IP 实现必须支持 ICMP。
- 与 TCP/UDP:ICMP 不用于传输用户数据,而是辅助 IP 层处理错误和控制信息。
- 与 ARP:ARP 负责 IP 到 MAC 的解析,ICMP 负责网络层的控制和诊断。
ICMP 的安全性与局限性
- 安全风险
- Ping Flood 攻击:发送大量 ICMP 回显请求,耗尽目标带宽。
- Smurf 攻击:利用广播地址放大攻击流量(已较少见)。
- 防范措施:通过防火墙禁用 ICMP 消息或限制速率。
- 局限性
- ICMP 消息本身不可靠,可能因网络拥塞或过滤被丢弃。
- 某些网络设备(如 NAT 网关)可能拦截 ICMP 消息,导致诊断失败。
总结
ICMP 是网络的 “神经系统”,通过传递控制和错误信息帮助维护网络健康。掌握 ICMP 原理有助于诊断网络问题(如主机不可达、路由黑洞),但需注意其安全性风险。常见工具如 Ping 和 Traceroute 是 ICMP 的典型应用,是网络工程师的必备技能。
IGMP
IGMP(Internet Group Management Protocol)是TCP/IP 协议族中的网络层协议(IP 协议号为 2),用于管理主机与组播路由器之间的组成员关系。其核心功能是让组播路由器动态了解哪些主机属于哪些组播组,从而高效转发组播数据包。
1. 核心功能
- 成员关系管理:
- 主机通过 IGMP 向路由器报告加入或离开某个组播组的请求。
- 路由器通过定期查询,维护各网段的组播组成员信息。
- 优化组播转发:
- 路由器仅向有成员的网段转发组播数据,避免带宽浪费。
2. 版本演进
- 路由器仅向有成员的网段转发组播数据,避免带宽浪费。
- IGMPv1:
- 支持基本的加入 / 离开机制,但离开时需依赖超时机制检测。
- 查询器选举由组播路由协议(如 PIM)决定。
- IGMPv2:
- 增加离开组消息,允许主机主动通知路由器退出组播组。
- 引入特定组查询,减少非组成员的响应流量。
- 查询器选举改为最小 IP 地址优先,无需依赖外部协议。
- IGMPv3:
- 支持源过滤(INCLUDE/EXCLUDE 模式),允许主机指定接收或拒绝特定源的组播流量。
- 新增特定源组查询,进一步优化流量控制。
3. 工作机制
- 主机加入组播组:
- 主机发送成员报告报文(Membership Report),声明加入目标组播组。
- 主机离开组播组:
- 主机发送离开组报文(Leave Group),路由器收到后发送特定组查询,确认无其他成员后删除该组。
- 路由器维护成员关系:
- 路由器定期发送普遍组查询(General Query),主机响应报告以维持成员资格。
- 若主机未及时响应,路由器认为该组无成员,停止转发数据。
4. 报文类型
- 成员报告:主机加入组播组时发送,或响应查询时确认成员身份。
- 普遍组查询:路由器周期性发送,询问所有组播组的成员状态。
- 特定组查询:路由器收到离开消息后,针对特定组播组发送的查询。
- 特定源组查询(v3):针对特定组播组和源地址的查询。
5. 应用场景 - 流媒体传输(如视频会议、在线直播):高效分发数据到多个接收端。
- 在线游戏:实时同步多玩家数据。
- 企业内部通信:共享文件、软件更新等。
6. 与其他协议的关系 - 组播路由协议(如 PIM、DVMRP):依赖 IGMP 提供的成员信息,构建组播转发树。
- IGMP 侦听(IGMP Snooping):交换机通过侦听 IGMP 报文,优化二层组播转发,减少不必要的流量泛洪。
7. 注意事项 - 安全性:IGMP 缺乏认证机制,可能被滥用(如伪造成员报告引发流量攻击)。
- 版本兼容性:高版本(如 v3)兼容低版本,但需注意配置一致性。
- IPv6 替代:IPv6 中使用 MLD(多播侦听发现协议) 替代 IGMP。
总结
IGMP 是组播通信的核心协议,通过动态管理组成员关系,实现了高效的网络资源利用。其版本演进逐步增强了灵活性和性能,适用于多种需要数据多播的场景。理解 IGMP 的工作机制有助于优化网络配置,解决组播相关的故障(如流量缺失、带宽浪费)。
网络接口层
1. 物理层协议
- Ethernet(以太网)、Wi-Fi、光纤、DSL 等。
2. 数据链路层协议
- PPP(点对点协议)、SLIP(串行线路协议)、MAC 地址管理。
相关文章:
TCP/IP协议簇
文章目录 应用层http/httpsDNS补充 传输层TCP1. 序列号与确认机制2. 超时重传3. 流量控制(滑动窗口机制)4. 拥塞控制5. 错误检测与校验6. 连接管理总结 网络层ARP**ARP 的核心功能**ARP 的工作流程1. ARP 请求(Broadcast)2. ARP 缓…...
vector的模拟实现01
文章目录 vector的模拟实现构造函数析构函数迭代器容量sizecapacityreverse 遍历下标[] 修改push_backpop_backinsert 结语 我们大家有又见面了,给生活加点</font color red>impetus!!开启今天的编程之路 今天我们来学习vector。了解一…...
信息学奥赛一本通 1609:【例 4】Cats Transport | 洛谷 CF311B Cats Transport
【题目链接】 ybt 1609:【例 4】Cats Transport 洛谷 CF311B Cats Transport 【题目考点】 1. 动态规划:斜率优化动规 【解题思路】 解法1:设a点的前缀和 输入的 d d d序列是从 d 2 d_2 d2到 d n d_n dn,共n-1个数字。人…...
shared_ptr和 weak_ptr的详细介绍
关于 shared_ptr 和 weak_ptr 的详细介绍及使用示例: 1. shared_ptr(共享所有权智能指针) 核心特性 引用计数:记录当前有多少个 shared_ptr 共享同一个对象。自动释放:当引用计数归零时,自动释放对象内存…...
electron打包vue2项目流程
1,安装一个node vue2 的项目 2,安装electron: npm install electron -g//如果安装还是 特比慢 或 不想安装cnpn 淘宝镜像查看是否安装成功:electron -v 3,进入到项目目录:cd electron-demo 进入项目目录…...
Baklib驱动企业知识管理数字化转型
Baklib驱动知识资产激活 在信息碎片化与数据爆炸的产业环境下,企业知识中台正成为重构组织智慧的核心枢纽。Baklib通过构建全生命周期知识管理模型,将分散于邮件、文档及协作系统的非结构化数据转化为可检索、可分析的标准化资产。其内置的智能分类引擎…...
Elasticsearch 高级
Elasticsearch 高级 建议阅读顺序: Elasticsearch 入门Elasticsearch 搜索Elasticsearch 搜索高级Elasticsearch高级(本文) 1. nested 类型 1.1 介绍 Elasticsearch 中的 nested 类型允许你在文档内存储复杂的数据结构,比如一个…...
1--当「穷举」成为艺术:CTF暴力破解漏洞技术从入门到入刑指南(知识点讲解版)
当「穷举」成为艺术:CTF暴力破解漏洞技术从入门到入刑指南 引言:论暴力破解的哲学意义 “世界上本没有漏洞,密码设得简单了,便成了漏洞。” —— 鲁迅(并没有说过) 想象你是个不会撬锁的小偷,面…...
jdk 支持路线图
https://www.oracle.com/java/technologies/java-se-support-roadmap.html 按照路线图得知,在2025.09 发布openjdk 25,是一个LTS版本。...
VsCode启用右括号自动跳过(自动重写) - 自录制gif演示
VsCode启用右括号自动跳过(自动重写) - 自录制gif演示 前言 不知道大家在编程时候的按键习惯是怎样的。输入完左括号后编辑器一般会自动补全右括号,输入完左括号的内容后,是按→跳过右括号还是按)跳过右括号呢? for (int i 0; i < a.s…...
Android设计模式之模板方法模式
一、定义: 定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 二、结构: AbstractClass抽象类:定义算法的骨架,包含模板方法和若干…...
纯个人整理,蓝桥杯使用的算法模板day1(dfs、bfs)
算法索引 dfs(深度优先搜索)bfs(广度优先搜索)迷宫树结构 dfs(深度优先搜索) 功能: 适合搜索所有的解 代码模板: class Solution{public void dfs(int[][] graph, int i, int j){i…...
【第34节】windows原理:PE文件的导出表和导入表
目录 一、导出表 1.1 导出表概述 1.2 说明与使用 二、导入表 2.1 导入表概述 2.2 说明与使用 一、导出表 1.1 导出表概述 (1)导出行为和导出表用途:PE文件能把自身的函数、变量或者类,提供给其他PE文件使用,这…...
Spring Boot事务管理详解(附银行转账案例)
一、事务基础概念 事务的ACID特性: 原子性(Atomicity):操作要么全部成功,要么全部失败一致性(Consistency):数据在事务前后保持合法状态隔离性(Isolation)&…...
(头歌作业—python)3.2 个人所得税计算器(project)
第1关:个人所得税计算器 任务描述 本关任务:编写一个个人所得税计算器的小程序。 相关知识 个人所得税缴纳标准 2018 年 10 月 1 日以前,个税免征额为 3500 元/月,调整后,个税免征额为 5000 元/月, 7 级超…...
在一个scss文件中定义变量,在另一个scss文件中使用
_variables.scss文件 : $line-gradient-init-color: linear-gradient(90deg, #8057ff 0%, #936bff 50%, #b892ff 100%); $line-gradient-hover-color: linear-gradient(90deg, #936bff 0%, #b892ff 50%, #f781ce 100%); $line-gradient-active-color: linear-gradient(90deg, …...
【计网】网络交换技术之电路交换(复习自用)
复习自用的,处理得比较草率,复习的同学或者想看基础的同学可以看看,大佬的话可以不用浪费时间在我的水文上了 1.电路交换定义 电路交换是一种通信方法,在通信开始之前,源和目的地之间建立一条专用的物理路径…...
MacOS 安装open webui
open-webui 不是一个 Python 包,所以 pip install open-webui 会失败。它是一个独立的 Web UI 应用,通常通过 Docker 或 手动构建 来运行。 如何正确安装 Open WebUI? 你可以选择 Docker 方式(推荐)或 手动安装。 方法…...
DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例9,TableView16_09 嵌套表格拖拽排序
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例9,TableView16_09 嵌…...
开启ipv6与关闭的区别
在运行P2P CDN时,开启IPv6与关闭IPv6存在以下核心区别,需从技术、合规、运营等维度综合评估: 一、性能与效率 开启IPv6的优势 更大地址空间:IPv6支持海量设备接入,解决IPv4地址枯竭问题,便于P2P CDN节点扩…...
Redis + Caffeine多级缓存电商场景深度解析
Redis Caffeine多级缓存 Redis Caffeine多级缓存电商场景深度解析一、实施目的二、具体实施2.1 架构设计2.2 组件配置2.3 核心代码实现 三、实施效果3.1 性能指标对比3.2 业务指标改善3.3 系统稳定性 四、关键策略4.1 缓存预热4.2 一致性保障4.3 监控配置Prometheus监控指标 …...
Leecode Hot50
文章目录 矩阵Solution73. 矩阵置零Solution54. 螺旋矩阵Solution48. 旋转图像Solution240. 搜索二维矩阵 II二叉树二叉树的四种遍历结果Solution94. 二叉树的中序遍历Solution104. 二叉树的最大深度Solution226. 翻转二叉树Solution101. 对称二叉树Solution543. 二叉树的直径S…...
解决 Gradle 构建错误:Could not get unknown property ‘withoutJclOverSlf4J’
解决 Gradle 构建错误:Could not get unknown property ‘withoutJclOverSlf4J’ 在构建 Spring 源码或其他基于 Gradle 的项目时,可能会遇到如下错误: Could not get unknown property withoutJclOverSlf4J for object of type org.gradle…...
C++ 初阶总复习 (16~30)
C 初阶总复习 (16~30) 目的16. 2009. volatile关键字的作用17. 2010.什么是多态 简单介绍下C的多态18. 2011. 什么是虚函数 介绍下C中虚函数的原理19. 2012 构造函数可以是虚函数嘛20. 2013.析构函数一定要是虚函数嘛?21. 2015. 什么是C中的虚…...
TDengine 中的异常恢复
简介 本章主要介绍在 TDengine 执行命令过程中发生异常,如何手工终于执行的任务。可以终止连接,线上查询及终止事务。 如果一个事务 在一个复杂的应用场景中,连接和查询任务等有可能进入一种错误状态或者耗时过长迟迟无法结束,…...
二层框架组合实验
实验要求: 1,内网IP地址使用172.16.0.0/16分配 2,SW1和sw2之间互为备份 3,VRRP/STP/VLAN/Eth-trunk均使用 4,所有PC均通过DHCP获取IP地址 5,ISP只能配置IP地址 6,所有电脑可以正常访问ISP路由器环回 实验思路顺序: 创建vlan eth-trunk 划分v…...
IP综合实验
1.配置eth-trunk进行绑定 [LSW1]interface Eth-Trunk 0 [LSW1-Eth-Trunk0]q [LSW1]interface g0/0/2 [LSW1-GigabitEthernet0/0/2]eth-trunk 0 [LSW1-GigabitEthernet0/0/2]int g0/0/3 [LSW1-GigabitEthernet0/0/3]eth-trunk 0 [LSW1-GigabitEthernet0/0/3]display et…...
2025年信息系统与未来教育国际学术会议(ISFE 2025)
基本信息 官网:www.icedcs.net 时间:2025年4月18-20日 地点:中国-深圳 简介 2025年信息系统与未来教育国际学术会议(ISFE 2025)作为第二届粤港澳大湾区教育数字化与计算机科学国际学术会议(EDCS 2025&…...
nacos 外置mysql数据库操作(docker 环境)
目录 一、外置mysql数据库原因: 二、数据库准备工作 三、构建nacos容器 四、效果展示 一、外置mysql数据库原因: 想知道nacos如何外置mysql数据库之前,我们首先要知道为什么要外置mysql数据库,或者说这样做有什么优点和好处&am…...
Windows 10 ARM64平台MFC串口程序开发
Windows 10 IoT ARM64平台除了支持新的UWP框架,也兼容支持老框架MFC。使得用户在Windows 10 IoT下可以对原MFC工程进行功能升级,不用在新框架下重写整个工程。熟悉MFC开发的工程师也可以在Windows 10 IoT平台下继续使用MFC进行开发。 本文展示MFC串口程序…...
怎么使用pm2启动和暂停后端程序(后端架构nodejs+koa)
首先查看自己的pm2进程 pm2 list 或者 pm2 status 如果什么进程都没有,但是你确实有后端程序运行在服务器上,使用以下查看pm2程序的启动用户 ps aux | grep pm2就可以看到具体的用户和进行的信息 接着转换到你要操作的pm2的进程用户下 sudo su - …...
AI人工智能-Jupyter NotbookPycharm:Py开发
安装 命令: pip install jupyter 启动 命令: jupyter notebook 启动成功后,下面网址会默认自动打开当前用户的根目录。 其实这个页面显示的内容,是我们电脑目录C:\Users\当前用户\下的文件夹 我们平常做实验,希望在…...
uniapp-小程序地图展示
一、当前页面直接获取 <view class"map"><map id"myMap" style"width: 100%; height: 40vh;" :latitude"latitude":longitude"longitude" :markers"markers" :scale"scale" :show-location&qu…...
使用 Python 进行链上数据监控:让区块链数据触手可及
使用 Python 进行链上数据监控:让区块链数据触手可及 区块链技术正以前所未有的速度改变着各行各业,特别是在金融、供应链、物联网和智能合约等领域的应用,已经成为了一种新常态。然而,随着区块链网络的快速扩展和去中心化特性的不断强化,数据的可视化与监控变得愈发重要…...
CentOS 7 磁盘及分区管理笔记
一、查看磁盘信息 1. lsblk 命令 作用:列出系统中所有的块设备(包括磁盘、分区等)及其相关信息,如设备名称、大小、类型等。 命令格式:lsblk 示例: lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sd…...
python基础学习二(列表及字典的使用)
文章目录 列表列表的创建获取列表中的多个元素判断列表中元素是否存在列表元素的添加操作列表元素的删除操作列表元素的修改列表的排序列表生成式 字典字典的创建字典的常规操作字典的常用操作字典的视图操作字典元素的遍历字典的特点字典的生成式 列表 一个对象由id࿰…...
【NLP 50、损失函数 KL散度】
目录 一、定义与公式 1.核心定义 2.数学公式 3.KL散度与交叉熵的关系 二、使用场景 1.生成模型与变分推断 2.知识蒸馏 3.模型评估与优化 4.信息论与编码优化 三、原理与特性 1.信息论视角 2.优化目标 3.局限性 四、代码示例 代码运行流程 核心代码解析 抵达梦想靠的不是狂热…...
macOS Jdk1.8安装(目前主流版本的jdk)
Jdk1.8安装 1、jdk安装包下载链接2、下载安装包(根据自己是什么系统进行下载)3、下载完成之后双击安装包进行安装安装好之后查看查看安装的版本需要查看JDK的安装路径(一般在/Library/Java/JavaVirtualMachines)配置环境变量1、jdk安装包下载链接 jdk8下载链接 https://www.…...
树莓派5智能家居中控:HomeAssistant全配置指南
一、硬件选型与系统架构 1.1 树莓派5的硬件优势 2023年发布的树莓派5采用Broadcom BCM2712处理器(4核Cortex-A76架构),相比前代产品具有三大突破性改进: 接口升级:首次支持PCIe 2.0接口,可扩展万兆网卡或…...
Dubbo(22)如何配置Dubbo的服务提供者?
配置Dubbo的服务提供者是实现分布式服务架构的重要步骤。服务提供者负责将服务注册到注册中心,使得服务消费者可以发现并调用这些服务。下面以一个完整的Spring Boot项目为例,详细介绍如何配置Dubbo的服务提供者。 配置步骤 引入依赖:在项目…...
【通道注意力机制】【SENet】Squeeze-and-Excitation Networks
0.论文摘要 卷积神经网络建立在卷积操作的基础上,通过融合局部感受野内的空间和通道信息来提取有意义的特征。为了增强网络的表示能力,最近的一些方法展示了增强空间编码的好处。在本研究中,我们专注于通道关系,并提出了一种新颖…...
【SPP】蓝牙串口协议(SPP)深度解析:从 RS232 仿真到设备互联的技术实现
目录 一、SPP协议概述 1.1 SPP的定位与核心功能 1.2 协议栈层次(SPP 协议模型) 1.3 技术原理 1.4 用户需求 二、设备角色与连接模型 2.1 角色定义(DevA 与 DevB 交互) 2.2 角色动态切换 2.3 协议依赖关系 三、数据传输:从 RS232 到蓝牙的映射 3.1 控制信号仿真…...
5.Excel:从网上获取数据
一 用 Excel 数据选项卡获取数据的方法 连接。 二 要求获取实时数据 每1分钟自动更新数据。 A股市场_同花顺行情中心_同花顺财经网 用上面方法将数据加载进工作表中。 在表格内任意区域右键,刷新。 自动刷新: 三 缺点 Excel 只能爬取网页上表格类型的…...
基于RFID技术建筑物资材料智能管理解决方案
建筑行业仓库和物资材料管理面临诸多挑战,如工程设备重复利用的管理需求、物资出入库管理不规范、账物不符、物资丢失等问题。特别是在复杂多变的工地环境中,对物资进行科学规范的管理难度极大。上海岳冉基于RFID技术的建筑物资材料智能管理解决方案聚焦…...
详解CountDownLatch底层源码
大家好,我是此林。 今天来分享一下CountDownLatch的底层源码。 CountDownLatch 是 Java 并发包 (java.util.concurrent) 中的线程之间同步工具类,主要用于协调多个线程的执行顺序。其核心思想是通过计数器实现线程间的"等待-唤醒"机制&#…...
Python每日一题(9)
Python每日一题 2025.3.29 一、题目二、分析三、源代码四、deepseek答案五、源代码与ai分析 一、题目 question["""企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%,利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部…...
一阶谓词逻辑表示法、产生式表示法、框架表示法深度对比
前文我们已经深度学习了一阶谓词逻辑表示法、产生式表示法和框架表示法这三种知识表示方法,那么它们之间有什么异同点呢?接下来我们对它们进行深度对比。 首先,我得回忆这三种知识表示方法的基本概念和特点。 (1)一阶谓词逻辑(FOPL)是基于形式逻辑的,使用谓词、变量、量…...
Tomcat生产服务器性能优化
试想以下这个情景:你已经开发好了一个程序,这个程序的排版很不错,而且有着最前沿的功能和其他一些让你这程序增添不少色彩的元素。可惜的是,程序的性能不怎么地。你也十分清楚,若现在把这款产品退出市场,肯…...
【算法day25】 最长有效括号——给你一个只包含 ‘(‘ 和 ‘)‘ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。
32. 最长有效括号 给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 https://leetcode.cn/problems/longest-valid-parentheses/ 2.方法二:栈 class Solution { public:int longestValid…...
Python之变量与数据类型总结
前言 一、基本数据类型 1、整数(int) 2、浮点数(float) 3、布尔值(bool) 4、字符串(str) 二、复合数据类型 1、列表(list) 1.1、列表基础 1.1.1、列…...