【计网】计算机网络概述
第一章 计算机网络概述
- 1.2 因特网概述
- 1.2.1 网络、互联网和因特网
- 1.2.2 因特网发展的三个阶段
- 1.2.3 因特网的标准化工作
- 1.2.4 因特网的组成
- 1.3 三种交换方式
- 1.3.1 电路交换
- 1.3.2 分组交换
- 1.3.3 报文交换
- 1.3.4 三种交换的对比
- 1.4 计网的定义与分类
- 1.4.1 定义
- 1.4.2 分类
- 1.5 计网的性能指标
- 1.5.1 速率
- 1.5.2 带宽
- 1.5.3 吞吐量
- 1.5.4 时延
- 1.5.5 时延带宽积
- 1.5.6 往返时间
- 1.5.7 利用率
- 1.5.8 丢包率
- 1.6 计网体系结构
- 1.6.1 常见的计网体系结构
- 1.6.2 计网体系结构分层的必要性
1.2 因特网概述
1.2.1 网络、互联网和因特网
网络(Network):网络=结点(Node)+链路(Link)
- 结点可以是计算机(电脑,服务器),网络互连设备(路由器,交换机),其他具有网络功能的设备(打印机)
- 链路可以是有线或无线
互联网(Network of networks):多个网络由路由器相连,构成更大的网络
因特网(Internet):是世界上最大的互连网络,因特网常用一朵云来表示
主机(host):连接在因特网的各种通信设备
internet和Internet的区别:
- internet是一个通用名词,泛指由多个计算机网络互联而成的网络,它们之间可以使用任意的通信协议作为通信规则
- Internet是一个专用名词,特指当前全球最大、开放的由众多网络互相连接而成的计算机网络,它们之间必须采用
TCP/IP
协议作为通信规则
1.2.2 因特网发展的三个阶段
-
因特网服务提供者ISP(Internet Service Provider):提供给用户IP地址的角色,每个用户通过ISP提供的IP地址使用互联网,没有IP地址不可以使用互联网。
-
基于ISP的三个结构互联网
层级 | 名称 | 范围 | 用户 | 说明 |
---|---|---|---|---|
第一层 | 主干网(Internet backbone) | 国际性区域范围 | 第二层ISP+少部分大公司 | 拥有告诉链路+交换设备 |
第二层 | - | 区域性/国家性范围 | 第三层ISP | - |
第三层 | 本地ISP | 本地范围 | 校园网/企业网/住宅用户/无线移动用户等 | - |
- 一个ISP可以在因特网的拓扑上增添新层次,分支。如某个用户接入因特网,那么他也可以成为一个ISP,只需要购买调制解调器/路由器
- 相隔较远的两台主机间的通信经过多个ISP
1.2.3 因特网的标准化工作
1.2.4 因特网的组成
从功能上分为两个部分
- 边缘部分:由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享。
- 核心部分:由大量异构型网络和连接这些网络的路由器组成。这部分是为边缘部分提供连通性和数据交换服务,确保通信和资源共享功能的实现。
1.3 三种交换方式
1.3.1 电路交换
引入:
如果电话之间两两相连,那么随着电话数量增加电话之间的线也阶乘次增长,线的数量为 n ( n − 1 ) / 2 n(n-1)/2 n(n−1)/2,而设计为电话交换机线的数量为 n n n,大大减少了电话之间的线的数量。
电路交换(Circuit Switching):电话交换机接通电话的方式
补充:从通信资源的分配角度来看,交换(Switching) 就是按照某种方式动态地分配传输线路地资源
- 电路交换的三个步骤:
- 建立连接:分配通信资源
- 通话:一直占用通信资源
- 释放连接:归还通信资源
1.3.2 分组交换
- 分组交换的过程(以H6——>H2发送信息为例)
- 发送:H6主机发送一段报文(把表示信息的整段数据称为报文)给H2主机;
- 分割:较长的报文被划分成更小的等长的数据段;
- 加头:在每个数据段前加上控制信息组成的首部;
这样的信息构成分组/包,其中首部也称为包头 - 暂存+转发:分组交换机收到分组,先暂存,检查首部,查表转发;
- 去头+还原:H2主机收到分组,去掉其首部,将各数据段组合还原出原始的报文
角色 | 作用 |
---|---|
发送方 | 构造分组、发送分组 |
路由器 | 暂存分组、转发分组 |
接收方 | 接受分组、还原报文 |
【说明】以上过程只写了两种情况:
① 各分组从源到目的地有不同的路由(不同的路径)
② 分组乱序:分组从源到目的地出发顺序不一定与分组到达目的地接受顺序一致,顺序不一致的情况可能会出现分组丢失/误码/重复等特殊情况
1.3.3 报文交换
- 报文交换(Message Switching):与分组交换过程差不多,但是报文的大小不受限制
1.3.4 三种交换的对比
【说明】横坐标为时间
1.4 计网的定义与分类
1.4.1 定义
- 精确定义:暂无
- 简单定义:相互连接的,自治的计算机的集合
- 互连:计算机之间通过有线/无线的方式相互连接进行数据通信
- 自治:计算机有自己的软/硬件,可以独立运行
- 集合:至少两台及两台以上的计算机
根据定义下图是否为计算机网络?
终端机的定义:终端机即计算机显示终端,是计算机系统的输入、输出设备。(from 百度)
答:符合互连和集合,但是不符合自治,上图是运行分时系统的大型机系统
- 较好定义:计算机网络主要是由一些通用的、可编程的硬件互连而成,而这些硬件并非专门来是实现某一些特定目的。这些可编程的硬件能够用来传送多种不同类型的数据,并能够支持广泛和日益增长的应用。
- 计算机网络所连接的硬件,不限于一般的计算机,包括了智能手机等智能硬件
- 计算机网络并非专门用来传送数据,而是能够支持很多种应用。
1.4.2 分类
中央处理机之间距离很近(≤1m数量级),此时称之为多处理机系统,而非计算机网络
1.5 计网的性能指标
性能指标可以从不同的方面来度量计算机网络的性能。
1.5.1 速率
- 比特(bit):数据量单位,由0/1组成
8 bit =1 Byte(B)
1 KB=K·B = 2 10 2^{10} 210 B
1 MB=K·KB = 2 10 2^{10} 210· 2 10 2^{10} 210 B= 2 20 2^{20} 220 B
1 GB=K·MB = 2 10 2^{10} 210· 2 20 2^{20} 220 B= 2 30 2^{30} 230 B
1 TB=K·GB = 2 10 2^{10} 210· 2 30 2^{30} 230 B= 2 40 2^{40} 240 B - 速率/比特率/数据率:连接在计算机网络主机上在数字信道传送比特的速率
bit/s = b/s = bps
1 kb/s = k·b/s = 1 0 3 10^{3} 103 b/s
1 Mb/s = k·kb/s = 1 0 3 10^{3} 103 · 1 0 3 10^{3} 103 b/s = 1 0 6 10^{6} 106 b/s
1 Gb/s = k·Mb/s = 1 0 3 10^{3} 103 · 1 0 6 10^{6} 106 b/s = 1 0 9 10^{9} 109 b/s
1 Tb/s = k·Gb/s = 1 0 3 10^{3} 103 · 1 0 9 10^{9} 109 b/s = 1 0 12 10^{12} 1012 b/s
注意上述 K 和 k 并不相同,K= 2 10 2^{10} 210 ,k= 1 0 3 10^{3} 103
例题1:有一个待发送的数据块,大小为100MB,网卡的发送速率为100Mbps,则网卡发送完该数据块需要多少时间?
准确计算: 100 M B 100 M b p s = M B M b p s = 2 20 ∗ 8 b 1 0 6 b p s ≈ 8.388608 s \frac{100 MB}{100 Mbps} =\frac{MB}{Mbps} =\frac{2^{20}*8 b}{10^{6} bps}≈8.388608 s 100Mbps100MB=MbpsMB=106bps220∗8b≈8.388608s
平时估算: 100 M B 100 M b p s = B b p s = 8 b b p s = 8 s \frac{100 MB}{100 Mbps} =\frac{B}{bps}=\frac{8 b}{bps}=8s 100Mbps100MB=bpsB=bps8b=8s
1.5.2 带宽
- 带宽在模拟信号系统中的意义:信号所包含不同频率成分所占据的频率范围
单位:Hz,kHz,MHz,GHz - 带宽在计算机网络中的意义:用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”
单位:b/s,kb/s,Mb/s,Gb/s,Tb/s - 两种定义之间的联系:一条通信线路的“频率宽度”越宽,其所传输数据的“最高数据率”越高
1.5.3 吞吐量
- 吞吐量:单位时间内通过通过某个网络的数据量
受带宽/额定速率的影响
1.5.4 时延
网络时延由三个方面组成:发送时延,传播时延,处理时延
-
发送时延:源主机将分组输送到传输线路上的时间
计算公式: 分组长度 b 发送速率 b p s \frac{分组长度 b }{发送速率 bps} 发送速率bps分组长度b- 发送速率由三方面决定:网卡的发送速率,信道带宽,接口速率
- 发送速率由三方面决定:网卡的发送速率,信道带宽,接口速率
-
传播时延:将分组输送到链路上的时间
计算公式: 信道长度 m 电磁波传播速率 m / s \frac{信道长度 m}{电磁波传播速率 m/s} 电磁波传播速率m/s信道长度m- 自由空间中电磁波传播的速率: 3 ∗ 1 0 8 m / s 3*10^{8} m/s 3∗108m/s
- 铜线中电磁波传播的速率: 2.3 ∗ 1 0 8 m / s 2.3*10^{8} m/s 2.3∗108m/s
- 光纤中电磁波传播的速率: 2 ∗ 1 0 8 m / s 2*10^{8} m/s 2∗108m/s
-
处理时延:分组输送到路由器上暂存和转发的时间
计算公式:由于数据流量/路由器繁忙程度的动态变化,路由器软硬件的不同等因素,无法用一个公式计算出处理时延,所以此时延一般忽略不计
Q:忽略处理时延,发送时延占主导还是传播时延占主导?
A:不确定
举例子:1)若数据块长度为100MB,信道带宽为1Mb/s,传送距离为1000km,计算发送时延和传播时延
发送时延: 100 M B 1 M b p s = 100 ∗ 2 20 ∗ 8 b 1 0 6 b p s ≈ 838.8608 s \frac{100 MB}{1 Mbps} =\frac{100*2^{20}*8 b}{10^{6}bps}≈838.8608 s 1Mbps100MB=106bps100∗220∗8b≈838.8608s
传播时延: 1000 k m 2 ∗ 1 0 8 m / s = 1000 ∗ 1 0 3 m 2 ∗ 1 0 8 m / s = 0.005 s \frac{1000 km}{2*10^{8} m/s} =\frac{1000*10^{3}m}{2*10^{8} m/s}=0.005s 2∗108m/s1000km=2∗108m/s1000∗103m=0.005s
此时发送时延占主导
2)若数据块长度为1 B,信道带宽为1Mb/s,传送距离为1000km,计算发送时延和传播时延
发送时延: 1 B 1 M b p s = 8 b 1 0 6 b p s = 8 ∗ 1 0 − 6 s \frac{1 B}{1 Mbps} =\frac{8 b}{10^{6}bps}=8*10^{-6}s 1Mbps1B=106bps8b=8∗10−6s
传播时延: 1000 k m 2 ∗ 1 0 8 m / s = 1000 ∗ 1 0 3 m 2 ∗ 1 0 8 m / s = 0.005 s \frac{1000 km}{2*10^{8} m/s} =\frac{1000*10^{3}m}{2*10^{8} m/s}=0.005s 2∗108m/s1000km=2∗108m/s1000∗103m=0.005s
此时传播时延占主导
1.5.5 时延带宽积
时延带宽积:传播时延 ✖ 带宽
链路的时延带宽积又称为以bit为单位的链路长度
- 意义:若发送端连续发送数据,则在所发送的第一个bit即将到达终点时,发送端已经发送了时延带宽积个bit
1.5.6 往返时间
往返时间(RTT Round-Trip-Time):双向交互所用的时间
Q:如图所示一个问题
1.5.7 利用率
利用率包括两方面
- 信道利用率:某信道有百分之几的时间是被利用的
- 网络利用率:全网信道利用率加权平均
公式: D 0 D_0 D0表示网络空闲时的时延, D D D表示当前的时延, U U U表示利用率
D = D 0 1 − U D=\frac{D_0}{1-U} D=1−UD0- 当 U U U到达0.5,时延成倍增加;
- 当 U U U超过0.5,时延急剧增加;
- 当 U U U接近1,时延趋于无穷大;
若 U U U超过0.5,准备扩容,增大线路带宽; 若 U U U太低,会导致通信资源浪费,动态调整输入网络中的通信量。
1.5.8 丢包率
- 丢包率:在一定时间范围内,传输过程中 丢失分组数量 总分组数量 \frac{丢失分组数量 }{总分组数量} 总分组数量丢失分组数量
丢包率可以分为到接口丢包率,结点丢包率,链路丢包率,路劲丢包率,网络丢包率等 - 丢包率主要有两种情况
- 误码:分组在传输过程中出现误码后被结点丢弃
- 网络拥塞:分组到达一台队列已满的分组交换机时被丢弃
- 无拥塞时,路径丢包率为0
- 轻度拥塞时,路径丢包率为1%~4%
- 重度拥塞时,路径丢包率为5%~15%
- 误码:分组在传输过程中出现误码后被结点丢弃
1.6 计网体系结构
1.6.1 常见的计网体系结构
OSI
体系结构:是专家研究和提出的,但由于1)缺乏实际经验 2)复杂,效率低 3)周期长 4)层次划分的不合理等问题,实际应用中不使用该体系结构TCP/IP
体系结构:Inter公司结合实际经验给出的应用广泛的结构- 原理体系结构:是结合
OSI
体系结构和TCP/IP
体系结构的优点,给出的适用于教学的结构
- TCP/IP体系结构说明:
- 若用户主机接入因特网,必须要使用
TCP/IP
协议,而用户主机的操作系统通常都带有符合TCP/IP
体系结构的标准TCP/IP
协议族;路由器也需要带有TCP/IP
协议族,但没有运输层和网际层; - 在每一层中有各自的协议/内容
- 网络接口层:没有规定接口内容,可以是WIFI,以太网等
- 网际层:
IP
协议 - 运输层:
TCP
和UDP
协议 - 应用层:
HTTP
,SMTP
,DNS
,RTP
等
- IP协议和TCP+UDP协议的说明
IP
协议的作用:
IP over everything:向下将不同的网络接口互连
Everything over IP:向上向TCP
和UDP
协议提供网络互连服务TCP
和UDP
协议的作用:
向下:在享受IP
服务提供的网络互连服务的同时
向上:向应用层协议提供可靠的(TCP
)或不可靠的(UDP
)传输服务
- 若用户主机接入因特网,必须要使用
1.6.2 计网体系结构分层的必要性
-
分层的方法可以将复杂的问题拆成一个一个简单的问题,分而治之
-
物理层解决的问题:使用何种信号来传输比特的问题
- 用什么样的传输介质?(严格来说这个问题不属于物理层)
- 用什么样的网络接口?
- 用什么样的信号表示比特0和1?
-
数据链路层解决的问题:分组在一个网络/一条链路上传输的问题
- 如何标识主机?
问题描述:主机编址问题,主机的MAC地址 - 如何从信号所表示的一连串比特流中区分出地址和数据?
问题描述:B将信号发送出去,ACDE主机收到信号根据信号的地址与自身地址相对比来决定是否接收该信号,而在这个过程中怎么样识别地址 - 如何协调各主机争用总线的问题?
问题描述:B将信号发送给D,同时D将信号发送给B,出现的信号碰撞问题
- 如何标识主机?
-
网络层解决的问题:分组在多个网络/路由上传输的问题
- 如何标识网络中的主机?
问题描述:网络与主机共同编址的问题,IP地址,IP地址分为两个分前三段是网络地址,最后一段是主机地址 - 路由器如何选择分组+转发分组?
问题描述:由1.3中分组交换可以得知,分组可以经过不同的路径到达目的地,这就涉及到了分组怎么经过路由器,以及路由器如何将分组发送出去
- 如何标识网络中的主机?
-
传输层解决的问题:进程之间在网络上通信的问题
- 如何解决进程之间基于网络的通信问题?
问题描述:若服务器将信号发送给QQ进程,那么怎么确保不发送给浏览器进程呢 - 如何处理误码/丢包的情况?
- 如何解决进程之间基于网络的通信问题?
-
应用层解决的问题:应用进程交互来实现特定网络应用的问题
相关文章:
【计网】计算机网络概述
第一章 计算机网络概述 1.2 因特网概述1.2.1 网络、互联网和因特网1.2.2 因特网发展的三个阶段1.2.3 因特网的标准化工作1.2.4 因特网的组成 1.3 三种交换方式1.3.1 电路交换1.3.2 分组交换1.3.3 报文交换1.3.4 三种交换的对比 1.4 计网的定义与分类1.4.1 定义1.4.2 分类 1.5 计…...
docker和containerd从TLS harbor拉取镜像
私有镜像仓库配置了自签名证书,https访问,好处是不需要处理免费证书和付费证书带来的证书文件变更,证书文件变更后需要重启服务,自签名证书需要将一套客户端证书存放在/etc/docker/cert.d目录下,或者/etc/containerd/c…...
1-kafka单机环境搭建
本文介绍kafka单机环境的搭建及可视化环境配置,虽然没有java代码,但是麻雀虽小五脏俱全,让大家在整体感官上对kafka有个认识。在文章的最后,我介绍了几个重要的配置参数,供大家参考。 0、环境 kafka:2.8.…...
怎么进行mysql的优化?
MySQL 的优化是一个系统性的工作,涉及多个层面,包括查询优化、索引优化、配置优化、架构优化等。以下是一些常见的 MySQL 优化方法: 查询优化 避免全表扫描:确保查询能够使用索引,避免 SELECT *,只选择需要…...
yolov8,yolo11,yolo12 服务器训练到部署全流程 笔记
正在进行中,随时更新 一. Anaconda配置 1.安装anaconda (1)下载.sh文件 Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror (2)scp到服务器后,运行安装包 bash Anaconda3-2020.07-Linux-x86_64.sh (3)安装anacond…...
基于fast-whisper模型的语音识别工具的设计与实现
目录 摘 要 第1章 绪 论 1.1 论文研究主要内容 1.1.1模型类型选择 1.1.2开发语言的选择 1.2 国内外现状 第2章 关键技术介绍 2.1 关键性开发技术的介绍 2.1.1 Faster-Whisper数据模型 2.1.2 Django 第3章 系统分析 3.1 构架概述 3.1.1 功能构架 3.1.2 模块需求描述 3.2 系统开…...
FFmpeg+vvenc实现H.266的视频编解码教程
Linux系统:FFmpegvvenc实现H.266的视频编解码教程(视频压缩) 关键网址 ffmpeg目前支持libvvenc,因此配置好libvvenc只会在一些make、sudo make install命令时遇到问题,例如默认安装或配置路径指定错误、ffmpeg版本、v…...
Hive-01之数仓、架构、数据类型、DDL、内外部表
一、主题 hive的核心概念hive与数据库的区别hive的架构原理hive的安装部署hive的交互式方式hive的数据类型hive的DDL语法操作 二、要点 1.数据仓库的基本概念 1.数据仓库的基本概念 英文名称为Data Warehouse,可简写为DW或DWH。数据仓库的目的是构建面向分析的…...
NIO是什么?它与传统的IO有什么区别?
NIO(Non-blocking I/O)是Java 1.4版本引入的一种新的I/O模型,旨在解决传统IO模型的局限性,提高网络通信和文件操作的效率。本文将详细解释NIO的概念、与传统IO的区别,并通过示例代码展示其实际应用。 一、NIO的概念 …...
模块七_面向对象
模块七_面向对象 模块六回顾:1.概述:拥有功能性代码的代码块将来干开发一个功能就应该对应一个方法2.方法的通用定义格式:修饰符 返回值类型 方法名(参数){方法体return 结果}a.修饰符:public staticb.返回值类型:方法最终返回的结果的数据类型c.方法名:给方法取的名字,见名知…...
初识uniApp
详细思考一下uniApp这个跨平台开发框架。首先,我对uniApp还不是很了解,所以需要从基本概念开始,逐步深入。 什么是uniApp? 我记得uniApp是基于Vue.js的,可能是一个用来开发多个平台的应用的框架。用户可能想了解它是什…...
蓝桥 发现环
0发现环 - 蓝桥云课 找到环 不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。 为了恢复正常传输&am…...
Compose 手势处理,增进交互体验
Compose 手势处理,增进交互体验 概述常用手势处理Modifierclickable()combinedClickable()draggable()swipeable()transformable()scrollable()nestedScrollNestedScrollConnectionNestedScrollDispatcher 定制手势处理使用 PointerInput ModifierPointerInputScope…...
【愚公系列】《Python网络爬虫从入门到精通》036-DataFrame日期数据处理
标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...
FastAdmin 与其他后台框架的对比分析
FastAdmin 与其他后台框架的对比分析 引言 在现代Web开发中,后台管理系统是支持各种应用程序的核心部分。随着需求的多样化,许多后台框架应运而生。本文将对FastAdmin与其他常见后台框架(如Django Admin、Laravel Nova、AdminLTE࿰…...
自学微信小程序的第六天
DAY6 1、使用录音API首先需要通过wx.getRecorderManager()方法获取到一个RecorderManager实例,该实例是一个全局唯一的录音管理器,用于实现录音功能。 表32:RecorderManager实例的常用方法 方法名称 说明 start() 开始录音 pause() 暂停录音 resume() 继续录音 stop() 停止…...
KTV点歌系统
收藏关注不迷路!! 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多…...
(上)基于机器学习的图像识别——遥感图像分类(LeNet-5;AlexNet;VGGNet;GoogLeNet;ResNet)
遥感图像识别: 专业词汇: kernel:卷积 目录 遥感图像分类 1.1 LeNet-5 视频来源: 任务:使用什么网络实现遥感图像的分类 LeNet-5结构: 遥感图像分类 1.2 AlexNet(冠军) 视频…...
深入探索 STM32 微控制器:从基础到实践
一、引言 在当今的嵌入式系统领域,STM32 系列微控制器凭借其高性能、低功耗、丰富的外设以及广泛的应用场景,成为了众多开发者的首选。无论是在工业控制、智能家居、医疗设备,还是在消费电子等领域,STM32 都展现出了强大的生命力…...
windows下玩转vllm:在wsl下安装vllm
文章目录 前言安装wsl启动wsl的默认分发使用python部署vllm创建并激活虚拟环境直接说结论试错过程安装vllm简单测试一下,看看行不行附录,安装wsl安装ubuntu分发步骤 3: 设置用户和密码步骤 4: 更新系统步骤 5: 使用 WSL前言 当前,部署通义千问2.5-vl已经是一件箭在弦上,不…...
SGLang部署大模型
SGLang部署大模型 环境信息基础组件安装创建python虚拟环境安装python模块下载模型部署模型 显存需求较高, 本地4G显存0.5B都无法部署 支持多机多卡部署 支持GPU、CPU混合运行 支持运行格式pt,safetensors,npcache,dummy,gguf,bitsandbytes,layered 环境信息 机器01…...
Ubuntu 防火墙iptables和 ufw
文章目录 iptables 和 ufw 的区别Ubuntu 上使用 ufw 配置 iptables 和 ufw 的区别 iptables 和 ufw 是 Linux 系统中用于管理防火墙的工具,但它们的设计目标和使用方式有所不同。 iptables:功能强大,适合高级用户和复杂场景,但配…...
NAT 代理服务 内网穿透
🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 NAT 技术背景二:🔥 NAT IP 转换过程三:🔥 NAPT四:🔥 代理服务器🦋 正向…...
C++20 Lambda表达式新特性:包扩展与初始化捕获的强强联合
文章目录 一、Lambda表达式的历史回顾二、C20 Lambda表达式的两大新特性(一)初始化捕获(Init-Capture)(二)包扩展(Pack Expansion) 三、结合使用初始化捕获与包扩展(一&a…...
ES scroll=1m:表示快照的有效时间为1分钟。怎么理解
在Elasticsearch中,scroll1m 表示你创建的 scroll 上下文 的有效时间为 1分钟。这个参数控制了你可以在多长时间内继续使用这个 scroll_id 来获取更多的数据。 什么是 Scroll 上下文? 当你使用 scroll API 时,Elasticsearch 会为你的查询创…...
【IoU变体对比:WIOU、SIOU、EIOU、GIOU、CIOU】
IoU变体对比:WIOU、SIOU、EIOU、GIOU、CIOU 1. 基本概念与公式(1) GIOU (Generalized Intersection over Union)(2) CIOU (Complete Intersection over Union)(3) EIOU (Efficient Intersection over Union)(4) SIOU (Shape-Enhanced Intersection over Union)(5) W…...
【MySQL】数据库-图书管理系统(CC++实现)
一.预期功能 该图书管理系统设计提供基本的设计模版,涉及数据库的增删查改等操作,包含登录功能,图书管理功能,图书借阅功能,用户管理功能等基础功能,详细功能查看以下菜单表,共包含三个菜单&am…...
【leetcode hot 100 560】和为K的子数组
解法一:用左右指针寻找字串,如果和>k,则减少一个数(left);如果和<k,则加上一个数(right)。 class Solution {public int subarraySum(int[] nums, int k) {int nu…...
【漫话机器学习系列】110.线性可分(Linearly Separable)
线性可分与线性不可分的概念详解 1. 引言 在机器学习和模式识别领域,分类问题是一个重要的研究方向。在分类任务中,我们通常需要将不同类别的数据点分开,而如何进行分割是一个关键问题。线性可分(Linearly Separable)…...
单细胞分析(19)—— 单细胞转录组基因集评分方法
下面是每种基因集评分方法的原理介绍代码示例,适用于R语言和Python两种主流生信分析环境。可以直接应用于单细胞转录组(scRNA-seq)数据分析中。 🔬 单细胞转录组基因集评分方法(附代码示例) 在单细胞RNA测…...
【数据挖掘】Pandas
Pandas 是 Python 进行 数据挖掘 和 数据分析 的核心库之一,提供了强大的 数据清洗、预处理、转换、分析 和 可视化 功能。它通常与 NumPy、Matplotlib、Seaborn、Scikit-Learn 等库结合使用,帮助构建高效的数据挖掘流程。 📌 1. 读取数据 P…...
Spring Boot 中 @Transactional 注解全面解析
亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、Java 与 Python 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在未来…...
【网络】数据链路层(以太网帧格式、MTU、ARP)、NAT、内网穿透
文章目录 1. 数据链路层2. 以太网帧格式3. MTU3.1 认识MTU3.2 MTU 对于 TCP 协议的影响 4. 局域网通信原理5. ARP协议5.1 基本概念5.2 原理5.3 ARP 数据报的格式 6. NAT技术7. 内网穿透8. 内网打洞9. 代理服务器9.1 正向代理9.2 反向代理9.3 NAT VS 代理服务器 10.网络总结 1. …...
ASPNET Core笔试题 【面试宝典】
文章目录 一、如何在ASP.NET Core中激活Session功能?二、什么是中间件?三、ApplicationBuilder的Use和Run方法有什么区别?四、如何使TagHelper在元素这一层上失效?五、什么是ASP.NET Core?六、ASP.NET Core中AOP的支持…...
Harmony os next~鸿蒙原子化服务开发实战:天气卡片开发全解析
鸿蒙原子化服务开发实战:天气卡片开发全解析 一、原子化服务与HarmonyOS卡片概述 (1)原子化服务特性 HarmonyOS原子化服务具有独立入口(桌面图标/智慧搜索)、免安装、跨设备流转三大核心特性。服务卡片作为其可视化载…...
【pytest框架源码分析三】pluggy源码分析之hook注册调用流程
pluggy的hook调用,最重要的就是使用了__call__魔法函数,这个函数能够在我们调用实例时,自动调用这个函数,无需自己手动调用。 前面介绍了各个类的方法,这里简述下pluggy的调用流程(主要介绍主流程ÿ…...
Linux消息队列
msgget函数(类似于shmget) 是 Linux 系统中用于 创建或获取消息队列(System V Message Queue) 的系统调用。 #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h>int msgget(key_t key, int m…...
ChatGPT 提示词框架
作为一个资深安卓开发工程师,我们在日常开发中经常会用到 ChatGPT 来提升开发效率,比如代码优化、bug 排查、生成单元测试等。 但要想真正发挥 ChatGPT 的潜力,我们需要掌握一些提示词(Prompt)的编写技巧,并…...
对于动态线程池框架 Hippo4j 的思考
从 java 线程池探讨动态线程池框架的可行性以及扩展性 ThreadPoolExecutor 对外给用户暴露了很多 get、set 方法,get 方法可以让我直接获得一些线程池的运行时信息,比如线程池过去已经完成任务的总数量,线程池目前活跃线程数量等等ÿ…...
问deepseek: HYPRE BoomerAMG 有哪些参数可以进行性能调优
Hypre BoomerAMG 是一个高性能的多重网格预条件子,常用于求解大规模稀疏线性系统。为了优化其性能,可以调整以下关键参数: 1. AMG 参数 Coarsening (强连接阈值) strong_threshold: 控制强连接的阈值,通常在 0.25 到 0.6 之间&a…...
seacms v9 实现的MySQL注入
目录 过滤关键词information_schema 怎么办 一、环境搭建 二、环境分析 三、源代码分析 1、过滤程序 2、注入点 四、获取数据库名 五、获取数据库表名 六、获取表的列名 七、获取数据信息 过滤关键词information_schema 怎么办 1.、利用sys数据库(MySQL 5.…...
基于C#的CANoe CLR Adapter开发指南
一、引言 CANoe 是一款广泛应用于汽车电子开发和测试的工具,它支持多种编程接口,方便开发者进行自定义扩展。CANoe CLR Adapter 允许我们使用 C# 语言与 CANoe 进行交互,充分利用 C# 的强大功能和丰富的类库。本文将详细介绍如何基于 C# 进行…...
Vue 系列之:基础知识
什么是 MVVM MVVM(Model-View-ViewModel)一种软件设计模式,旨在将应用程序的数据模型(Model)与视图层(View)分离,并通过 ViewModel 来实现它们之间的通信。降低了代码的耦合度。 M…...
知识库功能测试难点
图表交互功能测试难点 知识库图表类型多,每种图表交互功能不同。像柱状图,可能有点击柱子查看详细数据、鼠标悬停显示数据提示等交互;折线图除了这些,还可能支持缩放查看不同时间段数据。多种交互操作在不同图表间存在差异&#x…...
一文掌握 Scrapy 框架的详细使用,包括实战案例
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 1. Scrapy 简介2. Scrapy 的核心组件3. 安装 Scrapy4. 创建 Scrapy 项目4.1 创建项目4.2 创建 Spider5. 编写 Spider5.1 定义 Item5.2 编写 Spider 逻辑6. 运行 Scrapy 爬虫6.1 运行爬虫6.2 保存爬取数据7. Scrapy 的高…...
奔图Pantum M7165DN黑白激光打印一体机报数据清除中…维修
故障描述: 一台奔图Pantum M7165DN黑白激光打印一体机开机自检正常,自检过后就不能工作了,按键面板无任何反应一直提示数据清除中…,如果快速操作的话也能按出菜单、功能啥的,不过一会又死机了,故障请看下图: 故障检修: 经分析可能是主板数据出现了问题,看看能不能快速…...
微服务架构与传统的单体架构有什么区别?微服务架构(Spring Cloud + Maven)强在哪?
微服务架构与传统的单体架构(Spring Boot Maven 项目)在设计和实现上有显著差异,主要体现在系统拆分方式、部署模式、技术栈选择、维护成本等方面。以下是具体对比: 1. 架构设计 维度单体架构微服务架构系统拆分所有功能模块集…...
二、QT和驱动模块实现智能家居----2、编译支持QT的系统
因为我们的Linux内核文件不支持QT系统(当然如果你的支持,完全跳过这篇文章),所以我们要从网上下载很多软件包,这里直接用百问网的软件包,非常方便。 一:Ubuntu 配置 1 设置交叉编译工具链 以…...
游戏引擎学习第128天
开始 然而,我们仍然有一些工作要做,渲染部分并没有完全完成。虽然现在已经能够运行游戏,而且帧率已经可以接受,但仍然有一些东西需要进一步完善。正在使用调试构建编译版本,虽然调试版本的性能不如优化版本࿰…...
【量化策略】套利交易策略
【量化策略】套利交易策略 🚀量化软件开通 🚀量化实战教程 技术背景与应用场景 在金融市场中,套利交易策略是一种利用市场价格差异来获取无风险利润的交易方式。这种策略通常涉及同时买入和卖出不同市场上的相同或相似金融产品࿰…...