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

全面解析计算机网络:从局域网基础到以太网交换机!!!

一、局域网的基本概念和体系结构

特点:

  1. 覆盖较小的地理范围
  2. 较低的时延和误码率
  3. 局域网内的各节点之间以“帧"为单位进行传输
  4. 支持单播、广播、多播
  • 单播(一对一发送帧):如 A->B
  • 广播(一对全部发送帧):如 A->B+C+D+E+F+G
  • 多播(一对部分发送帧):如 A->B+D+E

有线局域网

以太网(802.3):

物理层采用曼彻斯特编码 是从 1980 开始商用的

早期同轴电缆以太网特点:

  • 总线形拓扑结构
  • 同轴电缆(可用中继器连接多个同轴电缆网段)
  • CSMA/CD 协议

80 年代后期双绞线以太网特点:

  • 物理上星形,逻辑上总线形
  • 双绞线(用集线器连接)
  • CSMA/CD 协议

1994 年交换机以太网特点:

  • 物理上、逻辑上都是星形
  • 双绞线(用交换机连接)
  • CSMA/CD 协议或 NULL

半双工模式下,采用 CSMA/CD 争抢信道

全双工模式下,不用争抢信道,也就不需要使用 CSMA/CD 协议

90 年代后期光纤以太网特点:

(用于扩大以太网覆盖范围)

  • 点对点(用于中继器/集线器/交换机之间的传输,也就是说通常不会直接连接终端节点)
  • 光纤
  • NULL(用两条光纤实现全双工通信)

令牌环网

特点:

  • 环形
  • 同轴电缆或双绞线
  • 令牌传递协议

无线局域网

WIFI(802.11)

特点:

  • IEEE 802.11 定义为星形(1个AP+N 台移动设备)
  • 无线(Wireless)
  • CSMA/CA 协议

硬件架构

网络适配器(又名:网络接口卡、网卡)要点:

  • 负责把帧发送到局域网
  • 注:关于“将 IP 数据报(IP 分组)封装成帧”,有些系统由主机实现,有些系统由网络适配器负责。
  • 负责从局域网接收帧。

如果收到正确帧,就用“中断”通知 CPU;

如果收到异常帧,就直接丢弃

  1. 需要根据接入的局域网类型,按照标准实现数据链路层+物理层功能
  2. 需要完成数据的串/并行转换
  3. 需要支持帧缓冲

网络适配器的厂商可以找IEEE 公司花钱申请 MAC 地址段

IEEE 公司会给出高 24bit 作为厂商号,低 24bit 位厂商自由分配

网络适配器厂商就可以生产全球唯一的 MAC 地址给适配器

二、以太网与IEEE802.3

在IEEE 802的层次划分中 把数据链路层又分成了介质访问控制子层(MAC子层)逻辑链路控制子层(LLC 子层)

介质访问控制子层(MAC 子层):

  • 与访问传输介质有关的部分功能(如:组帧、差错检测、透明传输、介质访问控制等)

逻辑链路控制子层(LLC 子层):

  • LLC 子层的存在是为了兼容各种局域网技术(LLC 子层目前已名存实亡),目前有线局域网已被 802.3 垄断,无线局域网技术已被 802.11 垄断
  • 与访问传输介质无关的部分功能,由IEEE 802.2工作组(已解散)负责

IEEE 802.3 推出的以太网标准(物理层)

半双工 or 双工

同轴电缆

双绞线

光纤

集线器

交换机

只能半双工

速率<2.5Gbps 可支持半双工 or全双工(节点连接时协商)

速率>2.5Gbps 仅支持支全双工

只支持全双

默认连接的终端节点都可以全双工

连接的节点仅支持半双工模式

两种常见的 以太网 MAC 层 标准

  • DEC、Intel、Xerox 推出的 DIX Ethernet V2 标准
  • IEEE 802.3 推出的IEEE 802.3 标准

两种标准在“帧”格式上有细微差别。 市面上常用 V2 标准

V2 标准的 以太网 MAC 帧

记忆口诀:6 6 2 N 4,收发协数验

目的地址:接收方 MAC 地址,48bit

目的地址全1表示“广播帧

源地址:发送方 MAC 地址,48bit

类型:指明网络层协议

IP 数据报:

  • IP 数据报太长,就“分片”
  • IP 数据报太短,就“填充”

数据:46~1500 需要限制最长帧长

FCS:CRC 校验码

帧结尾定界采用“违规编码法”,且一个帧传完会留一段间隙

IEEE 802.3 标准的 以太网 MAC 帧

记忆口诀:6 6 2 N 4,收发长数验

单播帧、广播帧如何传播?

注:MAC 地址是数据链路层的概念。

路由器、交换机都有 MAC 地址,而集线器没有 MAC 地址

单播帧:

  • A ->C 仅 C 能收到并接收帧
  • A ->F E、F、G 能收到,仅F会接收帧
  • E ->A F、G、A 能收到,仅 A 会接收帧
  • E ->F F、G 能收到,仅F 会接收帧

广播帧(目的地址全为1):

  • A 发出广播帧,B、C、D、E、F、G、R 都能收到并接收帧
  • E 发出广播帧,A、B、C、D、F、G、R 都能收到并接收帧

注意:路由器 R 收到广播帧后,不会再转发至其他网络

有同一个局域网内的各节点才属于同一个“广播域”

  • 冲突域:如果两个节点同时发送数据,会导致冲突,则二者处于同一个“冲突域”
  • 广播域:如果一个节点发送广播帧,可以被另一个节点接收,则二者处于同一个“广播域”
  • 集线器不隔离冲突域,也不隔离广播域
  • 以太网交换机隔离冲突域,但不隔离广播域
  • 路由器隔离冲突域,也隔离广播域

三、VLAN(虚拟局域网)

一个大型局域网(如校园网)面临的问题

  1. 局域网内任何一个节点 发出的广播帧,都会被 广播至所有节点。可能 出现“广播风暴”
  2. 不安全,局域网内可能会有一些敏感节点

可将一个大型局域网分割成若干个较小的 VLAN,每个 VLAN 是一个广播域

  • 需要使用支持 VLAN 功能的以太网交换机来实现
  • 每个 VLAN 对应一个 VID

VLAN 划分方式:

基于接口

交换机内的数据结构。记录 VID 和接口号的映射关系

交换机 1

VLAN-10

VLAN-20

交换机 2

VLAN-10

VLAN-20

接口号

1,2,3,4,8

5,6,7,8

接口号

1,2,3

1,5,6,7

基于MAC地址

交换机内的数据结构。记录VID和MAC地址的映射关系

交换机 1

VLAN-10

VLAN-20

交换机 2

VLAN-10

VLAN-20

MAC地址

A,B,C,D,H,I

E,F,G,J,K,L

MAC地址

A,B,C,D,H,I

E,F,G,J,K,L

基于IP地址

交换机内的数据结构。记录VID和MAC地址的映射关系

交换机 1

VLAN-10

VLAN-20

交换机 2

VLAN-10

VLAN-20

IP地址

A,B,C,D,H,I

E,F,G,J,K,L

IP地址

A,B,C,D,H,I

E,F,G,J,K,L

注:这种方式可以让 VLAN 范围跨越路由器,让多个局域网的主机组成一个 VLAN(需要网络层功能支持)

802.1Q 帧的作用

  • 主机与交换机之间,传输标准以太网帧 6 6 2 N 4
  • 交换机与交换机之间,传输 802.1Q 帧 6 6 4 2 N 4
  • 如果帧的传输跨越 交换机,需指明 VID

在标准以太网帧的源地址之后,插入 VLAN 标签,得到 802.1Q 帧

802.1Q 标签类型:固定为 0x8100,表示这是 802.1Q 帧

VID(12 位):指明发送方所属 VLAN 的 VID

四、IEEE802.11 无线局域网

无线局域网分类:

  • 有固定基础设施无线局域网:如 802.11 无线局域网(WiFi)
  • 无固定基础设施移动自组织网络:如苹果隔空投送等

802.11 无线局域网的基本概念

  • 802.11无线局域网是星形拓扑,中心称为接入点(AP),也可称为无线接入点(WAP)
  • 基本服务集 BSS:1个基站(AP)+多个移动站
  • 服务集标识符 SSID:也就是无线局域网的名字,不超过 32bit
  • 基本服务区 BSA:指一个基本服务集能够覆盖的地理范围
  • 门户(Portal):可将 802.11 无线局域网接入 802.3 有线以太网

  • 扩展服务集 ESS:将多个 AP 连接到同一个分配系统,组成一个更大服务集
  • 漫游:一个移动站从一个基本服务集切换到另一个基本服务集,仍然可以保持通信

802.11 帧的分类

  • 数据帧
  • 控制帧:如 ACK、RTS、CTS 帧
  • 管理帧:如 探测请求/探测响应帧

802.11 局域网的数据帧格式

记忆口诀:

  1. 30 N 4 首数验,首部 3+1地址
  2. 九十比特表去来,帧的中转靠 AP
  3. 去往 AP 中起止,来自 AP 止中起

重点关注:

地址 1、2、3,地址4 在有固定基站的网络中没啥用

类型:①管理帧 00 ②控制帧 01 ③数据帧 10

子类型:①数据帧 0000 ②RTS 1011 ③CTS 1100 ④ACK 1101

去往来自 AP:01 表示来自 AP ;10 表示去往 AP

注意:在 802.11 无线局域网内,两个移动站之间不能直接通信,必须通过基站(AP)转发

  • 802.11 帧用于无线链路传输,通常是 AP 与移动站之间的传输
  • 在有线链路上通常使用太网帧格式,AP 与 AP 之间、AP 与路由器之间、AP 与以太网交换机之间使用有线链路
  • AP 通常具备“帧格式转换”功能。可以将在无线链路上传输的 802.11 帧格式,与有线链路上传输的以太网帧格式 相互转换

五、广域网

广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。

广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来达到资源共享的目的。如因特网(Internet是世界范围内最大的广域网。

广域网和局域网的区别和联系

点对点协议 PPP:

点到点协议(Point to Point Protocol,PPP)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。 这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

只支持全双工链路。

PPP 协议应满足的要求:

  • 简单: 对于链路层的帧,无需纠错,无需序号,无需流量控制。
  • 封装成帧:帧定界符
  • 透明传输:与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充。
  • 多种网络层协议:封装的IP 数据报可以采用多种协议。
  • 多种类型链路:串行/并行,同步/异步,电/光…..
  • 差错检测:错就丢弃。
  • 检测连接状态:链路是否正常工作。最大传送单元数据部分最大长度 MTU.
  • 网络层地址协商:知道通信双方的网络层地址。
  • 数据压缩协商

三个组成部分

  1. 一个将IP 数据报封装到串行链路(同步串行/异步串行)的方法。
  2. 链路控制协议 LCP:建立并维护数据链路连接。身份验证
  3. 网络控制协议 NCP:PPP 可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP 来配置,为网络层协议建立和配置逻辑连接。

状态图

  • 当线路处于静止状态时,不存在物理层连接。
  • 当线路检测到载波信号时,建立物理连接,线路变为建立状态。此时,LCP 开始选项商定,商定成功后就进入身份验证状态,
  • 双发身份验证通过后,进入网络状态。这时,采用NCP配置网络层,配置成功后,进入打开状态,然后就可进行数据传输。
  • 当数据传输完成后,线路转为终止状态。载波停止后则回到静止状态。

  • 以太网交换机

网桥:

  • 工作在数据链路层,可以根据目的 MAC 地址转发帧
  • 两个端口

交换机:

  • 多端口的网桥

以太网交换机具有自学习功能:

交换表:初始为空,会记录 MAC 地址与端口号的映射关系

每收到一个帧,就会将发送方的 MAC 地址与端口号信息更新到交换表中

  • 如果不知道接收方在哪:就把帧广播到除了入口以外的其他端口
  • 如果知道接收方在哪:就把帧精准转发到某个端口的位置

交换表中的每一项都有对应的“有效时间”,过期自动作废

练习:

借助上述图片与 MAC 地址推导以下过程,写出对应的交换机1与交换机2的交换表

①E->A ②C->D ③H->E ④K-B ⑤B->广 ⑥L->B ⑦F->E

交换表1

MAC地址

端口号

E

6

C

3

H

8

K

8

B

2

L

8

F

6

交换表2

MAC地址

端口号

E

1

C

1

H

2

K

5

B

1

L

5

相关文章:

全面解析计算机网络:从局域网基础到以太网交换机!!!

一、局域网的基本概念和体系结构 特点: 覆盖较小的地理范围较低的时延和误码率局域网内的各节点之间以“帧"为单位进行传输支持单播、广播、多播 单播(一对一发送帧)&#xff1a;如 A->B广播(一对全部发送帧)&#xff1a;如 A->BCDEFG多播(一对部分发送帧)&#xff…...

《 C++ 点滴漫谈: 二十二 》操作符炼金术:用C++ operator重塑代码美学

摘要 C 的 operator 关键字和操作符重载是语言的核心特性之一&#xff0c;使开发者能够扩展内置操作符以适应自定义类型&#xff0c;从而实现更高效、直观的代码表达。本文全面解析了 operator 关键字的基本概念、支持重载的操作符范围及其使用场景&#xff0c;详细介绍了操作…...

Ubuntu 22.04 TLS 忘记root密码,重启修改的解决办法

1.想办法进入这个界面&#xff0c;我这里是BIOS引导的是按Esc按一下就行&#xff0c;UEFI的貌似是按Shift不得而知&#xff0c;没操作过。下移到Advanced options for Ubuntu&#xff0c;按enter 2.根据使用的内核版本&#xff0c;选择带「recovery mode」字样的内核版本&#…...

【LeetCode: 215. 数组中的第K个最大元素 + 快速选择排序】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

GraphRAG: Auto Prompt Tuning 实践

GraphRAG 的 Auto Prompt Tuning 功能是一个强大的工具&#xff0c;用于优化知识图谱的生成过程。以下是对该功能的详细介绍和分析&#xff1a; 自动提示调优&#xff08;Auto Prompt Tuning&#xff09; 1. 概念 GraphRAG 的自动提示调优功能旨在为特定领域的知识图谱生成创…...

提示词的艺术----AI Prompt撰写指南(个人用)

提示词的艺术 写在前面 制定提示词就像是和朋友聊天一样&#xff0c;要求我们能够清楚地表达问题。通过这个过程&#xff0c;一方面要不断练习提高自己地表达能力&#xff0c;另一方面还要锻炼自己使用更准确精炼的语言提出问题的能力。 什么样的提示词有用&#xff1f; 有…...

Tensor 基本操作1 | PyTorch 深度学习实战

目录 创建 Tensor常用操作unsqueezesqueezeSoftmax代码1代码2代码3 argmaxitem 创建 Tensor 使用 Torch 接口创建 Tensor import torch参考&#xff1a;https://pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html 常用操作 unsqueeze 将多维数组解套&#xf…...

CSS 的基础知识及应用

前言 CSS&#xff08;层叠样式表&#xff09;是网页设计和开发中不可或缺的一部分。它用于描述网页的视觉表现&#xff0c;使页面不仅实现功能&#xff0c;还能提供吸引人的用户体验。本文将介绍 CSS 的基本概念、语法、选择器及其在提升网页美观性方面的重要性。 什么是 CSS&…...

贪心算法(题1)区间选点

输出 2 #include <iostream> #include<algorithm>using namespace std;const int N 100010 ;int n; struct Range {int l,r;bool operator <(const Range &W)const{return r<W.r;} }range[N];int main() {scanf("%d",&n);for(int i0;i&l…...

CamemBERT:一款出色的法语语言模型

摘要 预训练语言模型在自然语言处理中已无处不在。尽管这些模型取得了成功&#xff0c;但大多数可用模型要么是在英语数据上训练的&#xff0c;要么是在多种语言数据拼接的基础上训练的。这使得这些模型在除英语以外的所有语言中的实际应用非常有限。本文探讨了为其他语言训练…...

解决 IntelliJ IDEA 项目包后出现“% classes”和“% lines covered”的问题

前言 在使用 IntelliJ IDEA 开发 Java 或其他支持的语言时&#xff0c;您可能会遇到项目包后面意外地出现了“% classes”和“% lines covered”的信息。这些百分比表示的是代码覆盖率&#xff08;Coverage&#xff09;&#xff0c;它们展示了您的测试覆盖了多少比例的类和代码…...

Matlab总提示内存不够用,明明小于电脑内存

目录 前言情况1&#xff08;改matlab最大内存限制&#xff09;情况2&#xff08;重启电脑&#xff09;情况3 前言 在使用matlab中&#xff0c;有时候需要占用的内存并没有超过电脑内存依旧会报错&#xff0c;提示内存不够用&#xff0c;可以尝试下面几种方法&#xff0c;总有一…...

Py之cv2:cv2(OpenCV,opencv-python)库的简介、安装、使用方法(常见函数、图像基本运算等)

1. OpenCV简介 1.1 OpenCV定义与功能 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库。它为计算机视觉应用程序提供了一个通用的基础设施&#xff0c;并加速了在商业产品中使用机器感知。作为BSD许可的产品&…...

leetcode707-设计链表

leetcode 707 思路 本题也是用了虚拟头节点来进行解答&#xff0c;这样的好处是&#xff0c;不管是头节点还是中间的节点都可以当成是中间节点来处理&#xff0c;用同一套方法就可以进行处理&#xff0c;而不用考虑太多的边界条件。 下面题目中最主要的实现就是添加操作addA…...

Linux操作命令之云计算基础命令

一、图形化界面/文本模式 ctrlaltF2-6 图形切换到文本 ctrlalt 鼠标跳出虚拟机 ctrlaltF1 文本切换到图形 shift ctrl "" 扩大 ctrl "-" 缩小 shift ctrl "n" 新终端 shift ctrl "t" 新标签 alt 1,…...

HTML<bdo>标签

例子 指定文本方向&#xff1a; <bdo dir"rtl"> This text will go right-to-left. </bdo> <!DOCTYPE html> <html> <body> <h1>The bdo element</h1> <p>This paragraph will go left-to-right.</p> …...

将IDLE里面python环境pyqt5配置的vscode

首先安装pyqt5全套&#xff1a;pip install pyqt5-tools 打开Vscode&#xff1a; 安装第三方扩展&#xff1a;PYQT Integration 成功配置designer.exe的路径【个人安装pyqt5的执行路径】&#xff0c;便可直接打开UI文件&#xff0c;进行编辑。 配置pyuic,如果下图填写方法使用…...

【C++】结构体(下)

4、结构体指针 作用&#xff1a;通过指针访问结构体中的成员 利用操作符“----->”可以通过结构体指针访问结构体成员。 示例&#xff1a; #include<iostream> #include<string> using namespace std; struct student {//姓名string name;//年龄int age;//分数…...

YOLOv10-1.1部分代码阅读笔记-dataset.py

dataset.py ultralytics\data\dataset.py 目录 dataset.py 1.所需的库和模块 2.class YOLODataset(BaseDataset): 3.class ClassificationDataset(torchvision.datasets.ImageFolder): 4.def load_dataset_cache_file(path): 5.def save_dataset_cache_file(prefix,…...

【电视盒子】HI3798MV300刷机教程笔记/备份遥控码修复遥控器/ADB/线刷卡刷/电视盒子安装第三方应用软件

心血来潮&#xff0c;看到电视机顶盒满天飞的广告&#xff0c;想改造一下家里的电视盒子&#xff0c;学一下网上的人刷机&#xff0c;但是一切都不知道怎么开始&#xff0c;虽然折腾了一天&#xff0c;以失败告终&#xff0c;还是做点刷机笔记。 0.我的机器 年少不会甄别&…...

Mixly米思齐1.0 2.0 3.0 软件windows版本MAC苹果电脑系统安装使用常见问题与解决

Mixly软件应用常见问题 Mixly米思齐编译或上传报错&#xff1f; 1、软件安装与驱动&#xff08;Mixly1-2&#xff09; 1-1 Windows版本 软件及驱动可以在Mixly群&#xff08;QQ群号621937623&#xff09;的群文件夹中找到&#xff0c;或到Mixly在线软件下载链接中重新下安装…...

在 QNAP NAS中使用 Container Station 运行 Docker 的完整指南

QNAP 为用户提供了一个名为 Container Station 的应用&#xff0c;它在 QNAP NAS 上将 Docker 和 LXC 结合在一起&#xff0c;通过图形化界面&#xff0c;让用户更轻松地在 NAS 上管理容器。本文将带你一步步了解如何在 QNAP NAS 上安装和使用 Container Station&#xff0c;以…...

Spark RPC 学习总结

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff1a;https://www.captainai.net/dongkelun 前言 本文从API层面学习总结Spark RPC,暂不涉及源码分析。 Spark 通信历史 最开始: …...

JAVA安全—JWT攻防Swagger自动化Druid泄露

前言 依旧是Java安全的内容&#xff0c;今天主要是讲JWT这个东西&#xff0c;JWT之前讲过了&#xff0c;是Java中特有的身份校验机制&#xff0c;原理我就不再多说了&#xff0c;主要是看看它的安全问题&#xff0c;至于Swagger和Druid顺便讲一下。 Druid泄露 Druid是阿里巴…...

深度学习核函数

一、核函数的基本概念 核函数在机器学习中具有重要应用价值&#xff0c;常用于支持向量机&#xff08;SVM&#xff09;等算法中。 核函数是面试中经常被考到的知识点&#xff0c;对于找工作和实际数据转换都有重要作用。 二、数据建模与核函数的作用 数据越多&#xff0c;可…...

【神经网络基础】

目录 一、神经网络的构成 1.1什么是神经网络&#xff1f; 1.2 激活函数 1.2.1 Sigmoid 1.2.2 Tanh 1.2.3 ReLU 1.2.4 softmax 1.2.5 其他激活函数 1.2.6 选择激活函数 1.3 参数初始化 1.4 模型构建 二、损失函数 2.1 分类问题 2.1.1多分类&#xff08;多分类交叉…...

一些面试常见问题及其回答参考

1、请你自我介绍一下你自己&#xff1f; 回答提示&#xff1a;一般人回答这个问题过于平常&#xff0c;只说姓名、年龄、爱好、工作经验&#xff0c;这些在简历上都有。其实&#xff0c;企业最希望知道的是求职者能否胜任工作&#xff0c;包括&#xff1a;最强的技能、最深入研…...

[JavaScript] 深入理解流程控制结构

文章目录 1. **if-else 语句**基本语法&#xff1a;示例&#xff1a;扩展&#xff1a;else if 2. **switch-case 语句**基本语法&#xff1a;示例&#xff1a;注意事项&#xff1a; 3. **for 循环**基本语法&#xff1a;示例&#xff1a;扩展&#xff1a;for-in 和 for-of 4. *…...

Mysql常见问题处理集锦

Mysql常见问题处理集锦 root用户密码忘记&#xff0c;重置的操作(windows上的操作)MySQL报错&#xff1a;ERROR 1118 (42000): Row size too large. 或者 Row size too large (&#xff1e; 8126).场景&#xff1a;报错原因解决办法 详解行大小限制示例&#xff1a;内容来源于网…...

高级java每日一道面试题-2025年01月19日-框架篇[Mybatis篇]-MyBatis 中见过什么设计模式 ?

如果有遗漏,评论区告诉我进行补充 面试官: MyBatis 中见过什么设计模式 ? 我回答: 1. 工厂模式&#xff08;Factory Pattern&#xff09; 定义&#xff1a;工厂模式是一种创建型模式&#xff0c;它提供了一种创建对象的最佳方式&#xff0c;将对象创建过程抽象化&#xff…...

C++,设计模式,【目录篇】

文章目录 1. 简介2. 设计模式的分类2.1 创建型模式&#xff08;Creational Patterns&#xff09;&#xff1a;2.2 结构型模式&#xff08;Structural Patterns&#xff09;&#xff1a;2.3 行为型模式&#xff08;Behavioral Patterns&#xff09;&#xff1a; 3. 使用设计模式…...

C/C++内存管理(超详解)

目录 1.C/C内存分布 2.C语言动态内存管理 2.1 malloc 2.2 free 2.3 calloc 2.4 realloc 3.C动态内存管理 3.1new/delete操作内置类型 3.2new/delete操作自定义类型 3.3operator new与operator delete函数 3.4定位new表达式(placement-new) 1.C/C内存分布 内存中是如…...

【前端】用OSS增强Hexo的搜索功能

文章目录 前言配置 _config.fluid.yml云端实时更新 local-search.xml解决 OSS.Bucket 的跨域问题 前言 原文地址&#xff1a;https://blog.dwj601.cn/FrontEnd/Hexo/hexo-enhance-local-search-with-oss/ 考虑到某著名云服务商提供的云服务器在两年的 99 计划后续费价格高达四…...

智慧校园平台中的信息处理与技术应用

随着信息技术的迅速发展&#xff0c;智慧校园平台已经成为现代教育领域的重要组成部分。智慧校园平台不仅能够提高教学效率&#xff0c;还能够改善学生的学习体验&#xff0c;以及优化学校的管理流程。为了实现这些目标&#xff0c;信息处理技术在智慧校园平台的应用中扮演了至…...

Spring MVC(一)

RestController RestController 是由 Controller 和 ResponseBody 两个注解构成的。 Spring 启动的时候会扫描所有包含 Controller 或者 RestController 注解的类&#xff0c;创建出对外的接口&#xff0c;这样外界就可以从这里与服务器实现交互&#xff0c;如果没有这个注解…...

【王树森搜索引擎技术】概要01:搜索引擎的基本概念

1. 基本名词 query&#xff1a;查询词SUG&#xff1a;搜索建议文档&#xff1a;搜索结果标签/筛选项 文档单列曝光 文档双列曝光 2. 曝光与点击 曝光&#xff1a;用户在搜索结果页上看到文档&#xff0c;就算曝光文档点击&#xff1a;在曝光后&#xff0c;用户点击文档&…...

imbinarize函数用法详解与示例

一、函数概述 众所周知&#xff0c;im2bw函数可以将灰度图像转换为二值图像。但MATLAB中还有一个imbinarize函数可以将灰度图像转换为二值图像。imbinarize函数是MATLAB图像处理工具箱中用于将灰度图像或体数据二值化的工具。它可以通过全局或自适应阈值方法将灰度图像转换为二…...

ThinkPHP 8的一对多关联

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…...

医工交叉合作信息汇总,第三期名单分享,近期需要联合申请基金以及课题合作的老师/同学重点关注一下!|合作信息·25-01-17

小罗碎碎念 之前出过两期医工交叉领域合作信息的汇总推送&#xff0c;最近一直没顾上这事&#xff0c;现在重新捡起来&#xff0c;并且把需求向所有的粉丝公开&#xff0c;直接在后台回复“合作信息”就可以获取表格。 截至目前为止&#xff0c;共收集了92条合作信息&#xf…...

深度学习中的张量 - 使用PyTorch进行广播和元素级操作

深度学习中的张量 - 使用PyTorch进行广播和元素级操作 元素级是什么意思&#xff1f; 元素级操作在神经网络编程中与张量的使用非常常见。让我们从一个元素级操作的定义开始这次讨论。 一个_元素级_操作是在两个张量之间进行的操作&#xff0c;它作用于各自张量中的相应元素…...

浅谈云计算20 | OpenStack管理模块(下)

OpenStack管理模块&#xff08;下&#xff09; 五、存储管理5.1 存储管理概述 5.2 架构设计5.2.1 Cinder块存储架构5.2.2 Swift对象存储架构 六、网络管理6.1 网络管理概述6.2 架构解析6.2.1 Neutron网络服务架构6.2.2 网络拓扑架构 6.3 原理与流程6.3.1 网络创建原理6.3.2 网络…...

GitLab集成Jira

GitLab与Jira集成的两种方式 GitLab 提供了两种 Jira 集成&#xff0c;即Jira议题集成和Jira开发面板集成&#xff0c;可以配置一个或者两个都配置。 具体集成步骤可以参考官方文档Jira 议题集成&#xff08;极狐GitLab文档&#xff09;和Jira 开发面板集成&#xff08;极狐G…...

如何用selenium来链接并打开比特浏览器进行自动化操作(1)

前言 本文是该专栏的第76篇,后面会持续分享python爬虫干货知识,记得关注。 本文,笔者将基于“比特浏览器”,通过selenium来实现链接并打开比特浏览器,进行相关的“自动化”操作。 值得一提的是,在本专栏之前,笔者有详细介绍过“使用selenium或者pyppeteer(puppeteer)…...

Docker私有仓库管理工具Registry

Docker私有仓库管理工具Registry 1 介绍 Registry是私有Docker仓库管理工具&#xff0c;Registry没有可视化管理页面和完备的管理策略。可借助Harbor、docker-registry-browser完成可视化和管理。Harbor是由VMware开发的企业级Docker registry服务。docker-registry-browser是…...

《Hands_On_LLM》8.1 语义搜索和 RAG 概述(Semantic Search and RAG)

说明 接下来的这三篇文章是《On Large Language Models》的第8章&#xff1a;语义搜索和检索增强生成&#xff08;Retrieval-Augmented Generation&#xff09;的翻译。 概述 搜索是最早被业界广泛采用的语言模型应用之一。在开创性论文《BERT&#xff1a;用于语言理解的深度…...

C++实现设计模式---迭代器模式 (Iterator)

迭代器模式 (Iterator) 迭代器模式 是一种行为型设计模式&#xff0c;它提供了一种方法&#xff0c;顺序访问一个聚合对象中的各个元素&#xff0c;而又不需要暴露该对象的内部表示。 意图 提供一种方法&#xff0c;可以顺序访问一个容器对象中的元素&#xff0c;而无需暴露其…...

skywalking的使用

面试常问的面试题&#xff1a; 你们的服务监控怎么做的&#xff1f; 其实就可以回答skywalking&#xff0c;skywalking是一个开源的分布式追踪与性能监视平台&#xff0c;特别适用于微服务架构、云原生环境以及基于容器&#xff08;如Docker、Kubernetes&#xff09;的应用部…...

【C语言系列】深入理解指针(1)

前言 总所周知&#xff0c;C语言中指针部分是非常重要的&#xff0c;这一件我们会介绍指针相关的内容&#xff0c;当然后续我还会出大概4篇与指针相关的文章&#xff0c;来深入的讲解C语言指针部分&#xff0c;希望能够帮助到指针部分薄弱或者根本不会的程序员们&#xff0c;后…...

医院挂号就诊系统设计与实现(代码+数据库+LW)

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装医院挂号就诊系统软件来发挥其高效地信息处理的作用&#…...

Mysql 主从复制原理及其工作过程,配置一主两从实验

主从原理&#xff1a;MySQL 主从同步是一种数据库复制技术&#xff0c;它通过将主服务器上的数据更改复制到一个或多个从服务器&#xff0c;实现数据的自动同步。 主从同步的核心原理是将主服务器上的二进制日志复制到从服务器&#xff0c;并在从服务器上执行这些日志中的操作…...