当前位置: 首页 > news >正文

网络原理 | 网络基础概念复习

目录

网络中的重要概念

IP地址

端口号

协议

五元组

协议分层

OSI七层网络模型

TCP/IP 五层(四层)模型

网络设备所在的分层

封装和分用


网络中的重要概念

IP地址

        IP地址主要用于标识网络主机、其他网络设备的网络地址。在网络数据传输中,需要判断数据是从哪个主机传输到哪个主机的,此时就需要使用IP地址来进行标识。

        IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”,即四个字节。通常使用“点分十进制”的方式来表示IP地址,即a.b.c.d的形式(其中a,b,c,d都是0~255之间的十进制整数),使用点分十进制来进行表示是因为方便人们阅读。

        在 windows 系统中,可以通过“Win + R,输入 cmd”的方式打开命令提示符,再使用 ifconfig 命令即可查询本地 IPv4 地址。例如我们本地的 IPv4 地址为 172.168.24.6,这是其“点分十进制”的表示方式,其对应的32位二进制表示即为:10101100.10101000.00011000.00000110。

端口号

        在网络通信中,IP地址用于表示主机的网络地址,以确定我们是从哪里发送到哪里。而端口号主要用于区分当前主机上指定的应用程序(进程)。一个主机上使用网络的程序有很多,通过端口号我们可以区分当前主机收到的数据是要交给哪个程序来进行处理。

        以收发快递为例,IP地址就相当于发货地址和收货地址,而端口号就相当于发件人和收件人,这样才能确保快递能正确送到。

        端口号是一个2个字节的整数,其范围为 0 ~ 65535,对应二进制即从 00000000 00000000 ~ 11111111 11111111,进程通过绑定一个端口号来发送及接受网络数据。虽然端口号的范围是0 ~ 65535,但一般 0 ~1023这些端口是有特定含义的,因此我们在写代码时通常使用其他的端口号,以避免发生错误。

协议

        协议是网络通信中最核心的概念,协议是进行一切通信的基础。

        由于网络中的数据是基于 0/1 这种二进制数据来进行传输的,而这种二进制数据可能表示的文本数据、视频数据、图片数据等等,即使是同一个类型的数据,其格式也可能不同,就比如文本数据不同的编码方式得到的文本是不同的,而协议就是在约定通信双方的数据交互“规则”,双方都按照同样的协议来构造/解析数据,这样才能保证发送方发送的数据接收方可以正确解析

        协议的概念:协议即网络协议的简称,⽹络协议是⽹络通信(即⽹络数据传输)经过的所有⽹络设备都必须共同遵从的⼀组约定、规则。如怎么样建⽴连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。 协议最终体现在网络上传输的数据包的格式。

五元组

        在网络通信中,五元组是指一组由五个元素构成的值,其用于唯一标识网络中一个连接的通信会话,这五个元素包括:

        · 源 IP 地址:标识发起方(源主机)的 IP 地址

        · 源端口号:发起方(源主机)使用的端口号,用于标识发起方(源主机)中该次网络通信发送数据的应用进程

        · 目的 IP 地址:标识接收方(目的主机)的 IP 地址

        · 目的端口号:接收方(目的主机)使用的端口号,用于标识接收方(目的主机)中该次网络通信接收数据的应用进程

        · 协议号:标识发送进程和接收进程双方约定的数据格式

协议分层

        网络通信十分复杂,如果仅使用一个协议来约定所有的网络通信细节,会导致这个协议非常庞大和复杂,因此需要将这个大的协议拆分成多个小的协议,让每个小的协议专注于解决一个/一类问题,再让这些协议相互配合。

        协议分层,即将拆分出来的这些小协议中功能类似的协议放到同一层里,并且约定好层与层之间的交互关系。除此之外,还需要约定好协议之间不能随意相互交互,只能是相邻的层之间才可以交互。上层协议调用下层协议,下层协议给上层提供服务。

        协议分层的优点

        · 降低了使用的成本,使用某个协议的时候,不需要关注其他协议的实现细节

        · 降低整个体系的耦合性,以便可以灵活的变更某个层次的协议

        当前互联网体系的现状就是“协议分层”的效果。其实分层就类似于面向接口编程,定义好两层间的接口规范,让双方遵循这个规范来对接。在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类(使用方,使用服务)。对于使用方来说,不需要关心提供方是如何实现的,只需要使用接口即可;对于提供方来说,利用封装特性,隐藏了实现的细节,只需要开放接口即可,这样可以更好地扩展和维护。

        当前常见的两种互联网的协议分层有:OSI七层网络模型和TCP/IP五层网络模型。

OSI七层网络模型

        OSI即 Open System Interconnection,开放互联系统,OSI七层网络模型把网络从逻辑上分为了七层,自上而下分别为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。各层具体功能如下所示:

        · 应用层:针对特定应用的协议。应用层协议通过在网络通信的高层提供功能,确保各种应用(如电子邮件(SMTP)、文件传输(FTP、SFTP)、远程登录(SSH)等)的顺利运行。每种协议都针对特定的应用场景进行了优化,保证了数据传输的有效性与安全性。

        · 表示层:表示层负责设备固有数据格式和网络标准数据格式的转换,它确保了来自应用层的数据可以被正确地传输,并能被接收方理解。

        · 会话层:会话层负责不同计算机之间的通信管理,负责建立和断开通信连接并管理传输层以下的分层。 会话层主要关注会话的管理和控制,而传输层则负责数据的可靠传输,确保数据完整性和无差错的传输。

        · 传输层:传输层负责管理两个节点之间的数据传输。负责可靠传输(确保数据被可靠的传输到目标地址)

        · 网络层:负责地址管理与路由选择,网络层的主要任务是通过路由选择和地址管理来确保数据包能够从源主机传输到目标主机。

        · 数据链路层:数据链路层负责互联设备之间传送和识别数据帧,也就是根据网络层规划好的路径进行具体的实施。

        · 物理层:物理层位于数据链路层和传输介质之间,主要负责数据的传输和接收。它直接与硬件设备(如网卡、传输介质)打交道,确保数据在物理介质上能够正确地传输。

        然而 OSI 七层模型既复杂又不实用,因此在实际组建网络时并没有使用这种方式,而是使用OSI 七层模型中的部分分层,即 TCP/IP 五层(四层)模型来进行网络组建。

TCP/IP 五层(四层)模型

        TCP/IP 五层模型自上而下分别为:应用层、传输层、网络层、数据链路层、物理层,而TCP/IP 四层模型自上而下分别为:应用层、传输层、网络层、数据链路层,这是因为物理层考虑得比较少。TCP/IP 五层模型是将OSI七层模型中的应用层、表示层、会话层融合到了一起,其它层的功能与 OSI 七层模型中一致。在此处再次说明TCP/IP 五层模型每一层的作用及常用的协议:

        · 应用层:应用层负责程序间的沟通,为应用程序提供网络通信接口,定义数据格式和交互规则,常见的协议有:SMTP(电子邮件传输)、Http/Https(网页浏览)、FTP(文件传输)、SSH(安全远程登陆)、DNS(域名解析)

        · 传输层:传输层负责两台主机之间的数据传输。例如传输控制协议(TCP协议,面向连接、可靠传输(如网页、文件下载)),用户数据报协议(UDP协议:无连接,低延迟(如视频通话))。

        · 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识⼀台主机,并通过路由表的⽅式规划出两台主机之间的数据传输的线路(路由)。

        · 数据链路层:数据链路层负责设备之间的数据帧的传送和识别。例如⽹卡设备的驱动、帧同步(就是说从⽹线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就⾃动重发)、数据差错校验等⼯作。有以太⽹、令牌环⽹,⽆线LAN等标准。

        · 物理层:负责光/电信号的传递⽅式。⽐如现在以太⽹通⽤的⽹线(双绞线)、早期以太⽹采⽤的的同轴电缆(现在主要⽤于有线电视)、光纤,现在的wifi⽆线⽹使⽤电磁波等都属于物理层的概念。

        从传输层到物理层的过程,和企业管理十分类似。传输层就相当于企业中的董事长,其制定一个发展目标;而网络层相当于公司的高管,根据这个目标来规划出具体的实现方案,就相当于网络层路径规划和路由选择的过程;数据链路层相当于是员工,实施高管制定的具体实现方案;物理层相当于是办公所用到的基础设施。

网络设备所在的分层

        · 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,其在 TCP/IP 五层模型的下四层工作;

        · 对于一台传统的路由器(三层路由器),其实现了从网络层到物理层,在 TCP/IP 五层模型的下三层。然而随着网络设备的不断发展,目前也有四层路由器;

        · 对于一台传统的交换机(二层交换机),其实现了从数据链路层到物理层,在 TCP/IP 五层模型的下两层。目前也有三层交换机和四层交换机。

        · 对于集线器,它只实现了物理层。

封装和分用

        · 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报(datagram),在链路层叫做帧(frame)。

        · 应⽤层数据通过协议栈发到⽹络上时,每层协议都要加上⼀个数据⾸部(header),称为封装 (Encapsulation)。

        · 首部信息中包含了⼀些类似于首部有多⻓,载荷(payload)有多⻓,上层协议是什么等信息。        

        · 数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部,根据⾸部中的 "上层协议字段" 将数据交给对应的上层协议处理。 

        此处以通过 QQ 来发送 “你好” 消息给另一个人为例来叙述网络通信中的封装和分用:

        发送方视角

        1. 发送方在输入框输入 “你好” 字符串,点击发送按钮。此时 QQ 应用程序会取出输入框中的 “你好” 内容,并将其构造成一个 “应用数据包” 。“应用层数据包” 的构建需要使用应用层的网络协议,这个协议描述了 “应用层数据包” 的构造,此处的网络协议通常由程序员自己定义。

        此处假设这个数据包的格式为:发送者 QQ 号;接收者 QQ 号;发送时间;发送正文\n,那么 1 中的 “应用层数据包” 可以构建为:1582654;6542512;2025-05-15 21:36;你好\n

        网络传输中通常使用 “二进制的字符串” 来进行传输,因此需要将此处的数据包序列化为二进制字符串。此处为了方便起见,不对其进行转换,但实际的传输中是需要进行转换的。

        2. 在通过应用层的网络协议完成 “应用数据包” 的构建和序列化后,QQ 应用程序会调用操作系统提供的 API (传输层给应用层提供的 API)。通常操作系统会提供一个类似于 “发送数据” 这样的 API,然后应用程序会将上述构建好的应用层数据包作为参数传进来,此时应用层数据包就到了系统内核中传输层代码部分了。此时传输层会将上述的应用层程序包进一步封装成一个传输层数据包,计算机网络中的封装实际上就是 字符串 拼接

        传输层的协议有很多,其中最主要的是 UDP 协议和 TCP 协议,我们假设此处使用 UDP 协议,那么此时 UDP 协议就会构建出 “传输层数据包”,如下所示:

        此处的 UDP 报头包含了 UDP 协议相关的一些信息,就比如发送者的端口号,接受的端口号等等。

        3. 传输层构造好数据之后,会继续调用 网络层 提供给传输层的 api,将数据进一步交给网络层进行处理。由于网络层和传输层都是系统内核中实现好的,其调用过程我们不需要关心。

        网络层同样有很多协议,其中最主要的就是 IPv4 协议,简称为 IP 协议。

        IP 协议会将上述的 “传输层数据包” 进一步封装,构造出 “网络层数据包”,如下所示:

        此处的 IP 报头包含很多信息,其中最主要的信息是发送方的 IP 地址和接收方的 IP 地址。

        4. 网络层会继续调用数据链路层的 api,将 “网络层数据包” 交给数据链路层进行处理,此处以数据链路层中的 以太网(即平时插网线上网的方式)为例。

        此时 以太网 会将 “网络层数据包” 进一步封装为 “数据链路层数据包”,如下所示:

        5. 上述得到的数据会进一步交给物理层(硬件设备),此时网卡会针对上述的二进制数据进行真正的传输操作,需要将二进制数据转换为 光信号/电信号/电磁波等。

        以上就是网络通信中的封装过程。

        接收方视角

        1. 接收方物理层收到光电信号,会将光电信号还原成二进制数据/

        2. 物理层将转换回二进制的数据交给数据链路层。与上述发送方视角对应,此时以太网拿到这个数据包后,就会对这个数据包进行解析,拿出这里的报头和载荷,根据报头中的信息进行一些处理。根据这个报头信息决定这个数据包是丢弃还是转发或是自己保留(向上解析)。数据链路层拿到的数据包如下所示:

        3. 数据链路层解析后的数据会交给网络层,当网络层协议拿到这个数据包后,IP 协议也会对这个数据包进行解析,取出 IP 报头和载荷,也是需要根据报头信息决定这个数据包是丢弃还是转发或者是保留(给上层协议) 。网络层拿到的数据包如下所示:

        4. 当数据传到传输层后,UDP 协议也要针对数据进行解析,取出 UDP报头和载荷,此处也需要将载荷中的内容进一步交给应用程序进行处理,其依赖 UDP 报头中的“接收者端口号” 来进行数据发送。传输层拿到的数据包如下所示:

        5. 此时数据发送到接收者 QQ 应用程序这里,QQ 就需要针对数据包来进行反序列化,之后再对反序列化后的数据进行进一步的逻辑处理。QQ接收到的“应用层数据包”如下所示:

        以上以 QQ 发送消息为例,来对网络通信中的封装和分用进行了描述。 

 

 

相关文章:

网络原理 | 网络基础概念复习

目录 网络中的重要概念 IP地址 端口号 协议 五元组 协议分层 OSI七层网络模型 TCP/IP 五层(四层)模型 网络设备所在的分层 封装和分用 网络中的重要概念 IP地址 IP地址主要用于标识网络主机、其他网络设备的网络地址。在网络数据传输中&#…...

Vsan数据恢复——Vsan上虚拟机不可用,虚拟机组件信息破坏的数据恢复

Vsan数据恢复环境: 一台采用VsSAN分布式文件系统的存储设备由于未知原因关机重启。管理员发现上层的虚拟机不可用,存储内的数据丢失。 Vsan数据恢复过程: 1、将故障存储设备断电,将存储内的硬盘编号后取出。硬件工程师检测后没有发…...

V837s-LAN8720A网口phy芯片调试

目录 前言 一、LAN8720A 芯片概述 二、硬件连接 三、设备树配置 四、内核配置 五、网口调试 总结 前言 在嵌入式系统开发中,网络连接是至关重要的一部分。v837s开发板搭载了LAN8720A系列的网口PHY芯片,用于实现以太网连接。在开发过程中,对于网口的稳定性和性能的调试至…...

C++(12):using声明

目录 一、定义 二、核心用法示例 示例 1:单独引入 std::string 和 std::coun 示例 2:在局部作用域中使用 using 声明 三、对比 using namespace std(不推荐) 四、关键注意事项 1. 名称冲突问题 2. 作用域规则 3. 头文件中的陷阱 五、最佳实践总结 六、完整安全示…...

Xinference 命令大全:从模型部署到管理

Xinference 是一个高性能、分布式的模型推理框架,支持多种大语言模型(LLM)、嵌入模型(Embedding)和图像生成模型。本文将详细介绍 Xinference 的常用命令,涵盖模型启动、管理、监控及 API 调用,帮助你快速掌握其核心功能。 1. 安装与启动 Xinference 1.1 安装 Xinferen…...

如何在线免费压缩PDF文档?

PDF文件太大,通常是因为内部嵌入字体和图片。怎么才能将文件大小减减肥呢,主要有降低图片清晰度和去除相关字体两个方向来实现文档效果。接下来介绍三个免费压缩PDF实用工具。 (一)iLoveOFD在线转换工具 iLoveOFD在线转换工具&a…...

在Rocky Linux 9.5上部署MongoDB 8.0.9:从安装到认证的完整指南

mongodb 的部署 #安装依赖 yum -y install libcurl openssl #安装mongodb yum -y install https://repo.mongodb.org/yum/redhat/9/mongodb-org/8.0/x86_64/RPMS/mongodb-org-server-8.0.9-1.el9.x86_64.rpm #启动服务 systemctl start mongod.service && system…...

Unix Bourne Shell

本文来源 : 腾讯元宝 Unix Bourne Shell(简称sh)是Unix系统中最经典的命令行解释器(shell),由Stephen Bourne于1977年在贝尔实验室开发,并成为后续众多shell(如bash、ksh等&#xff…...

如何在 AWS 上构建支持 AVIF 的前端图片优化方案

一、为什么使用 AVIF 图片格式? 优势点 说明 高压缩率 在相似质量下,AVIF 文件比 JPEG/PNG/WebP 更小,能有效节省带宽和存储空间。 更高画质 即使在低码率下也能保持清晰细节,减少压缩带来的马赛克或模糊问题。 支持透明度 …...

Linux系统进行环境开发环境配置

一. 使用fishros(鱼香肉丝)配置开发环境 对于初学者来说,最难的关卡莫非是开发环境的的搭建,特别是在Ubuntu系统上ROS系统安装时后出现的各种报错以及失败,本篇博客讲述了ROS系统的一键安装过程,适用于18.04及以后的Ubuntu系统版本…...

前端npm的核心作用与使用详解

一、npm是什么? npm(Node Package Manager) 是 Node.js 的默认包管理工具,也是全球最大的开源代码库生态系统。虽然它最初是为 Node.js 后端服务设计的,但如今在前端开发中已成为不可或缺的基础设施。通过npm,开发者可以轻松安装、管理和共享代码模块。 特性: 依赖管理…...

软考软件评测师——软件工程之系统维护

一、系统质量属性 可维护性 衡量软件系统适应修改的难易程度,包括修复缺陷、扩展功能或调整规模的效率。计算公式为:系统可用时间占比 1/(1平均修复时间),其中平均修复时间(MTTR)指排除故障所需的平均耗时。 可靠性 vs 可用性 可靠性&…...

CSRF攻击 + 观测iframe加载时间利用时间响应差异侧信道攻击 -- reelfreaks DefCamp 2024

参考: https://0x90r00t.com/2024/09/30/3708/ 题目信息 有些事情最好还是保持低调。当然,除非你是个真正的怪胎。 注意:该网站通过HTTPS提供服务 标志格式:DCTF{}题目实现了一个类似视频网站的东西 在其提供的数据库中…...

火山RTC 8 SDK集成进项目中

一、SDK 集成预备工作 1、SDK下载 https://www.volcengine.com/docs/6348/75707 2、解压后 3、放在自己项目中的位置 1)、include 2)、lib 3)、dll 暂时,只需要VolcEngineRTC.dll RTCFFmpeg.dll openh264-4.dll, 放在intLive2…...

spring boot Controller 和 RestController 的区别

spring boot Controller 和 RestController 的区别 5.3.1常用注解 Spring MVC控制器中常使用的注解有如下几种。 Controller Controller 标记在类上。使用Controller 标记的类表示是Spring MVC的Controller对象。分发处理器将会扫描使用了该注解的类,并检测其中的…...

mavgenerate 在 win11 下环境搭建注意问题

开发随笔 mavgenerate 是mavlink配套的协议生成工具,mavgenerate 在 win11 下环境搭建注意问题: 1、Python 就使用文件包当中的版本,由于python 版本能与 future 及 pip 之间存在特定的组合关系,故不推荐下载使用最新版本 2、安…...

SSM项目集成redis、Linux服务器安装redis

在SSM(Spring Spring MVC MyBatis)项目中引入Redis主要分为以下步骤,确保配置正确并能在业务中灵活使用: 1. 添加Redis依赖​​ 在Maven的pom.xml中添加Spring Data Redis和Jedis(或Lettuce)依赖&#…...

sqli-labs靶场第七关——文件导出注入

一:目标 通过sql注入将php代码写入网站目录,通过这个php文件执行命令 二:确认前置条件 %secure_file_priv% 首先我们需要Mysql是否允许导出文件 先尝试在网页中sql注入,检查导出权限 ?id1)) union select 1,secure_file_pr…...

python使用matplotlib无法显示中文字体报错

python使用matplotlib字体报错 当我们使用python使用matplotlib总是出现报错,图片中文变成方框 findfont: Font family WenQuanYi Micro Hei not found. findfont: Font family Heiti TC not found. findfont: Font family [SimHei] not found. Falling back to De…...

VTEP是什么

VTEP(VXLAN Tunnel Endpoint,VXLAN 隧道端点)是 VXLAN(Virtual Extensible LAN)网络中的关键组件,用于处理 VXLAN 流量的封装和解封装。以下以可读的 Markdown 格式详细解释 VTEP 的定义、功能、实现方式以…...

React Native简介

React Native 是由 Meta(原 Facebook)开源的跨平台移动应用开发框架,基于 React 和 JavaScript,允许开发者使用同一套代码库构建 iOS 和 Android 原生应用。通过 JavaScript 调用原生组件实现高性能渲染。 跨平台开发 共享 80%-9…...

边缘计算模块

本文来源 :腾讯元宝 边缘计算模块是一种部署在网络边缘(靠近数据源)的集成化硬件/软件设备,用于实时处理本地数据,减少云端依赖,提升响应速度与安全性。以下是其核心要点: ​​1. 核心组成​​ …...

策略模式-枚举实现

策略模式的实现方法有很多,可以通过策略类if,else实现。下面是用枚举类实现策略模式的方法。 定义一个枚举类,枚举类有抽象方法,每个枚举都实现抽象方法。这个策略,实现方法是工具类的很实现,代码简单好理解 枚举实现…...

C++算法(22):二维数组参数传递,从内存模型到高效实践

引言 在C程序设计中,二维数组的参数传递是许多开发者面临的棘手问题。不同于一维数组的相对简单性,二维数组在内存结构、类型系统和参数传递机制上都存在独特特性。本文将深入探讨静态数组、动态数组以及STL容器三种实现方式,通过底层原理分…...

LeetCode LCR 015. 找到字符串中所有字母异位词 (Java)

LCR 015. 找到字符串中所有字母异位词 题目描述 给定两个字符串 s 和 p,要求找到 s 中所有是 p 的变位词(字母相同但排列不同)的子串,并返回这些子串的起始索引。例如: 输入 s "cbaebabacd", p "a…...

幼儿学前教育答辩词答辩技巧问题答辩自述稿

### 📘《幼儿园大班活动开展存在的问题及解决策略》📝 我的论文题目是《幼儿园大班活动开展存在的问题及解决策略》📖。我将从论文框架、研究内容、需要解决的问题、研究结论这四部分来阐述我的论文📝。 论文框架由绪论&#x1f4…...

双目立体视觉

文章目录 1,前言2,原理3,组成部分3.1,数字图像采集。3.2 ,相机标定。3.3,图像预处理与特征提取。3.4 ,图像校正。3.5 ,立体匹配。3.6 ,三维重建。 4,主要的算…...

机器人弧焊二八混合气体节约

焊接技术在现代工业生产中作为关键环节之一,其效率和成本直接影响到整个制造流程的经济性与环保性。近年来,随着节能减排理念深入人心,各行业都在积极探索绿色制造方案。在焊接领域,二八混合气体的应用结合WGFACS智能流量调节系统…...

Linux进程通讯和原子性

在Linux系统中,进程间通信(IPC)和原子性是并发编程中的核心问题。以下是对这些概念的详细分步解释: 一、进程间通信(IPC)方法 1. 管道(Pipe) 匿名管道:用于父子进程等有…...

深度学习之用CelebA_Spoof数据集搭建一个活体检测-一些模型训练中的改动带来的改善

实验背景 在前面的深度学习之用CelebA_Spoof数据集搭建一个活体检测-模型搭建和训练,我们基于CelebA_Spoof数据集构建了一个用SqueezeNe框架进行训练的活体2D模型,采用了蒸馏法进行了一些简单的工作。在前面提供的训练参数中,主要用了以下几…...

Oracle APEX IR报表列宽调整

1. 问题:如何调整Oracle APEX IR报表列宽 1-1. 防止因标题长而数据短,导致标题行的文字都立起来了,不好看。 1-2. 防止因数据太长而且中间还没有空格,把列撑开的太宽也不换行,不好看。 2. 解决办法 针对如上问题解…...

6大核心记忆方法

以下是结合脑科学原理和高效学习策略总结的 6大核心记忆方法,帮助你摆脱“学完就忘”的困境: 一、间隔重复与分散学习 遵循艾宾浩斯遗忘曲线:学习后20分钟遗忘58%,1天后遗忘66%。通过设定复习节点(如学后1天、3天、1周…...

conda更换清华源

1、概览 anaconda更换速度更快、更稳定的下载源,在linux环境测试通过。 2、conda源查看 在修改之前可以查看下现有conda源是什么,查看conda配置信息,如下: cat ~/.condarc 可以看到你的conda源,以我的conda源举例&am…...

5月15日星期四今日早报简报微语报早读

5月15日星期四,农历四月十八,早报#微语早读。 1、中国至越南河内国际道路运输线路正式开通; 2、免签国1,中乌(兹别克斯坦)互免签证协定6月生效; 3、杭州“放大招”支持足球发展:足…...

网络损伤仪功能介绍与应用场景剖析

以下是关于 网络损伤仪(Network Impairment Emulator) 的核心功能介绍及其应用场景的详细说明: 一、网络损伤仪的核心功能 带宽限制(Bandwidth Throttling) 模拟不同网络带宽(如从1Mbps到10Gbps&#xff09…...

超时检测机制和心跳包机制(Heartbeat)

一、超时检测机制 1. I/O 函数超时设置 1.1 select/poll/epoll 的超时参数 select c struct timeval timeout {3, 0}; // 3秒超时 int n select(maxfd1, &readfds, NULL, NULL, &timeout); if (n 0) printf("select timeout\n"); // 超时无事件poll c …...

经典卷积神经网络

目录 经典卷积神经网络 一、卷积神经网络基础回顾 二、LeNet:开启 CNN 先河 三、AlexNet:突破性进展 四、ZFNet:继承与优化 五、GoogLeNet:引入 Inception 模块 六、VggNet:深度与简单结构的融合 七、ResNet&a…...

Reactor模型详解与C++实现

Reactor模型详解与C实现 一、Reactor模型核心思想 Reactor模式是一种事件驱动的并发处理模型,核心通过同步I/O多路复用实现对多个I/O源的监听,当有事件触发时,派发给对应处理器进行非阻塞处理。 关键特征: 非阻塞I/O&#xff…...

观测云产品更新 | 安全监测、事件中心、仪表板AI智能分析等

观测云更新 安全监测 新增 SIEM 功能模块:实时分析企业各类系统(如服务器、应用、网络设备)的日志和事件数据,自动发现潜在威胁,帮助团队迅速定位异常,充分发挥安全监控中枢的作用。 注意:目…...

【HTML】个人博客页面

目录 页面视图​编辑 页面代码 解释&#xff1a; HTML (<body>): 使用了更加语义化的HTML5标签&#xff0c;例如<header>, <main>, <article>, <footer>。文章列表使用了<article>包裹&#xff0c;结构清晰。添加了分页导航。使用了Font…...

OrangePi Zero 3学习笔记(Android篇)10 - SPI和从设备

目录 1. 配置内核 2. 修改设备数 3. 修改权限 4. 验证 Zero 3的板子有2个SPI Master接口&#xff0c;其中SPI0接的是板载16MB大小的SPI Nor Flash&#xff0c;SPI1则是导出到26pin的接口上。 spi和i2c有点不同&#xff0c;spi是直接生成spi虚拟设备&#xff0c;所以在dev里…...

《Java 大视界——Java 大数据在智能电网分布式能源协同调度中的应用与挑战》

随着风电、光伏等分布式能源大规模接入电网&#xff0c;传统调度系统面临数据规模激增、响应延迟显著、多源异构数据融合困难等核心问题。本文聚焦Java生态下的大数据技术体系&#xff0c;深入探讨其在智能电网实时监测、负荷预测、资源优化配置等场景中的落地实践。通过分析Sp…...

基于正点原子探索者开发板的简易音乐播放器

1、概述 本次实验的名称叫做“基于正点原子探索者开发板的简易音乐播放器”。本实验的功能框图如下&#xff1a; 从图上我们可以清晰的看到本实验所需的实现的功能、以及每个功能需要怎么实现。 这次实验使用的是正点原子的探索者开发板&#xff0c;此开发板采用的MCU是STM32F4…...

【CF】Day59——Codeforces Round 914 (Div. 2) D

D. Set To Max 题目&#xff1a; Easy 思路&#xff1a; 简单题 由于题目的数据给的很小&#xff0c;所以我们可以用 n 的复杂度过&#xff0c;那我们来观察一下我们应该怎么操作 显然&#xff0c;如果 a[i] > b[i] 时是无法构造的&#xff0c;同时 a[i] b[i] 时就不用管…...

【Linux专栏】Linux进程间关系和守护进程

文章目录 1、进程间关系1.1 进程组1.2 组长进程 2、会话&#xff1f;2.1 查看会话2.2 创建会话 3、控制终端4、作业控制4.1 前台/后台进程 5、守护进程5.1 如何创建守护进程&#xff1f;5.2 杀掉守护进程 1、进程间关系 主要描述两个名称概念&#xff1a;即进程组和组长进程。…...

AutoVACUUM (PostgreSQL) 与 DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC (Oracle) 对比

AutoVACUUM (PostgreSQL) 与 DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC (Oracle) 对比 核心功能对比 特性PostgreSQL AutoVACUUMOracle GATHER_DATABASE_STATS_JOB_PROC主要目的空间回收 统计信息更新仅优化器统计信息收集底层机制MVCC(多版本并发控制)维护CBO(基于成本的…...

go依赖查询工具之godepgraph(分析main.go的依赖树)

文章目录 go依赖查询工具之godepgraph&#xff08;分析main.go的依赖树&#xff09;什么是服务间的隐式耦合&#xff1f;分析main.go的依赖树方法1. godepgraph (配合 Graphviz 可视化) - 最直观【推荐】方法2. go list go依赖查询工具之godepgraph&#xff08;分析main.go的依…...

市场差分探头信号输出形式的一些因素考量

在5G/6G通信、新能源汽车电控等高频测量场景中&#xff0c;差分探头的信号输出架构直接影响测试系统的信噪比与可靠性。根据IEEE仪器与测量协会2024年度报告&#xff0c;单端输出方案的市场渗透率较2020年提升42%&#xff0c;这一趋势背后蕴含着深刻的技术变革逻辑。 一、核心…...

SQL练习——day01

力扣——SQL练习总结 DENSE_RANK()窗口函数 这是排名函数的一种&#xff0c;它在处理相同值时&#xff0c;会给相同的值分配相同的排名&#xff0c;并且后续的排名不会跳过。比如有三个分数并列第一&#xff0c;那么它们的排名都是 1&#xff0c;接下来的分数排名就是 2&#…...

断点续传使用场景,完整前后端实现示例,包括上传,下载,验证

断点续传在多个场景中非常有用&#xff0c;包括但不限于大文件上传、跨国或跨区域文件传输、移动设备文件传输、备份和同步以及软件更新等。接下来&#xff0c;我将为你提供一个基于Java的后端实现示例&#xff0c;结合前端逻辑来完成整个断点续传的功能&#xff0c;包括上传、…...