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

【网络】网络入门

网络入门

  • 一、网络发展
  • 二、网络协议初识
    • 1、认识"协议"
    • 2、协议分层
    • 3、OSI七层模型
    • 4、TCP/IP五层(或四层)模型
  • 三、网络传输基本流程
    • 1、同局域网的两台主机通信
    • 2、跨网络的两台主机通信
  • 四、网络中的地址管理
    • 1、IP地址
    • 2、认识MAC地址

一、网络发展


独立模式:计算机之间相互独立

在早期的时候,计算机之间是相互独立的,此时如果多个计算机要协同完成某种业务,那么就只能等一台计算机处理完后再将数据传递给下一台计算机,然后下一台计算机再进行相应的业务处理,效率非常低下。

在这里插入图片描述

网络互联: 多台计算机连接在一起, 完成数据共享;

这时就有人就设法将这些计算机连接在一起,当某个业务需要多台计算机协同完成时,就可以将共享的数据放到服务器中进行集中管理,此时各个计算机就都能获取到这些共享的数据,所以各个业务在处理就能随时进行切换了。

在这里插入图片描述

局域网LAN: 计算机数量更多了, 通过交换机连接在一起;

网络雏形逐渐发展,连入这个网络中的机器变得越来越多,于是就出现了局域网的概念。

在局域网中有一种设备叫做交换机,交换机主要完成局域网内数据的转发工作,也就是在局域网内将数据从一台主机转发给另一台主机。各个局域网之间通过路由器连接起来,路由器主要完成数据的路由转发工作。

在这里插入图片描述

广域网WAN: 将远隔千里的计算机都连在一起

各个局域网之间通过路由器相互连接在一起,便组成了一个更大的网络结构,我们将其称之为广域网。实际局域网和广域网是一种相对的概念,我们也可以将广域网看作一个比较大的局域网。

在这里插入图片描述

二、网络协议初识

1、认识"协议"

计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息,要想传递各种不同的信息, 就需要约定好双方的数据格式。

“协议” 的本质是一种约定,通信双方只要曾经做过某种约定,之后就可以使用这种约定来完成某种事情,有了协议我们通信的数据才能被正常识别,通信才有意义。

为了让计算机能够相互顺畅的通信, 需要约定一个共同的标准,大家都来遵守,这就是网络协议。

2、协议分层

为了定制好协议,我们应该先分析网络通信的时候,有哪些问题会产生?有哪些需求要解决?要为什么会产生这些问题?

在这里插入图片描述

问题

  1. 怎么定位一台目标主机?
  2. 怎么进行数据转发,路径(路由)选择的问题?
  3. 长距离传输,数据异常的问题(丢失)?

为什么会产生上面的问题?单纯的是传输的距离变长了!!!

需求

  1. 定位一台目标主机
  2. 路径选择
  3. 解决数据异常的问题(丢失)

仔细分析需求我们就会发现,上面的需求的不同类型的需求,而且它们的问题解决是要有先后顺序的,只有定位了一台目标主机,才会有路径选择的问题,路径选择的问题解决了才会有数据异常的问题(丢失)的问题!

所以我们在解决问题时,要把相关的问题放在一起,做出解决方案,而不是眉毛胡子一把抓,这样我们做出的方案才是高内聚低耦合的解决方案,又由于上面的问题解决是要有先后顺序的,所以我们的解决方案一定是层状的,每一层都是高内聚低耦合的!

在这里插入图片描述

分层最大的好处在于“封装”,在分层情况下,将某层的协议进行替换后,通信双方之间是不会受到影响的

3、OSI七层模型

  • OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
  • OSI把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能就是帮助不同类型的主机实现数据传输;
  • OSI最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
  • 但是OSI既复杂又不实用,所以后来在具体实现的时候就对其进行了调整,于是就有了我们现在看到的TCP/IP四层协议。

OSI七层模型如下:

分层名称功能每层功能概览
应用层针对特定应用的协议在这里插入图片描述
表示层设备固有数据格式和网络标准数据格式的转换在这里插入图片描述
会话层通信管理、负责建立和断开通信连接(数据流动的逻辑通路)、管理传输层以下的分层在这里插入图片描述
传输层管理两个节点之间的数据传输、负责可靠性传输(确保数据被可靠地传送到目标地址)在这里插入图片描述
网络层地址管理与路由选择在这里插入图片描述
数据链路层互联设备之间传送和识别数据帧在这里插入图片描述
物理层以0/1代表电压的高低以及灯光的闪灭、界定连接器和网线的规格在这里插入图片描述

————————————————
版权声明:图片来自于为CSDN博主「2021dragon」的原创文章。

4、TCP/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.
TCP/IP通讯协议采用了5层的层级结构(将OSI的会话层,表示层,应用层三层进行压缩为一层,统一称为应用层),每一层都呼叫它的下一层所提供的网络来完成自己的需求.

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
  • 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
  • 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
  • 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层.

TCP/IP模型和计算机体系结构是什么关系呢?

在这里插入图片描述

  • 对于网络协议栈的的传输层最经典的协议是TCP协议,对于网络层最经典的协议是IP协议,所以TCP/IP协议其是在操作系统内部实现的!这两部分所有的操作系统都要相同,这样才能保证网络能够正常通信,但是对于网络协议的其他部分的实现就可以有不同,只要能够使传输层和网络层能正常工作就行。

  • 操作系统没有网络管理的大类,但是由于一切皆文件的思想,网卡在操作系统看来也是一种文件,所以从网卡中拿取数据就好像从文件中拿取数据一样,所以网络管理是隶属于文件管理的!


OSI参考模型与TCP/IP模型和计算机体系结构的关系

在这里插入图片描述

物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型.
一般而言:

  • 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器, 它实现了从网络层到物理层;
  • 对于一台交换机, 它实现了从数据链路层到物理层;
  • 对于集线器, 它只实现了物理层;

但是并不绝对. 很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发);


集线器

电磁信号在长距离传输过程中信号是会衰减的,而集线器的主要功能就是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。

需要注意的是,集线器属于纯硬件网络底层设备,基本上不具有类似于交换机的“智能记忆”能力和“学习”能力,也不具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送,也就是说,当集线器要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点。


三、网络传输基本流程


两台主机进行文件传输为例,此时各层对应的协议有以下协议:

在这里插入图片描述

两个主机通信的本质,是两个主机的OS与网络协议栈在通信,在网络通信时,每层都要有自己的协议!,协议的表现形式: 协议报头

类比到我们日常的网购中,我们买了东西,最后并不是直接收到了买到的商品,而是一个包裹,包裹上面贴着快递单。虽然这个快递单对于我们自己来说不是必须的,但是对于快递员来说是必须要有的。在物流体系中,快递单 + 商品,才是物流的主体。同理,在每一层协议中,协议报头 + 有效载荷才是协议的主体

数据包封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation).
  • 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息.
  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理.

1、同局域网的两台主机通信

在这里插入图片描述

当用户要将文件传输给另一台主机前,该文件数据需要先通过网络协议栈进行封装:

  1. 文件数据先交给应用层,应用层添加上对应应用层协议的报头信息后,将数据再交给传输层。
  2. 传输层收到数据后,再添加上对应传输层协议的报头信息,并将数据继续向下进行交付。
  3. 网络层收到数据后,再添加上对应网络层协议的报头信息,接着将数据再交给链路层。
  4. 链路层收到数据后,最后再添加上对应链路层协议的报头信息,至此数据封装完毕。

下图为数据封装的过程:
在这里插入图片描述

数据封装完毕后就可以通过局域网将其发送给对端主机了,而当对端主机收到数据后,对应也需要通过网络协议栈对该数据进行解包与分用:

  1. 链路层收到数据后,先将数据中对应链路层协议的报头信息提取出来,然后将剩下的数据交给网络层。
  2. 网络层收到该数据后,再将数据中对应网络层协议的报头信息提取出来,然后将剩下的数据继续向上进行交付。
  3. 传输层收到该数据后,再将数据中对应传输层协议的报头信息提取出来,然后将剩下的数据再交付给应用层。
  4. 应用层收到数据后,最后将数据中对应应用层协议的报头信息提取出来,至此便完成了数据的解包与分用。

下图为数据解包与分用的过程:

在这里插入图片描述

总结:

  • 任何一台主机在发送数据之前,该数据都要先自顶向下贯穿协议栈来完成数据的封装。
  • 在这个过程中,每一层协议都会都会把上层交给自己的数据作为自己的有效载荷,然后添加上自己对应的报头信息,继续向下传递。
  • 而任何一台主机收到数据后,都要先自底向上贯穿协议栈来完成数据的解包和分用,在这个过程中,每一层协议都会将对应的报头信息提取出来。
  • 在逻辑上,同层协议都认为自己在和对方的同层协议在通信,同层看到的数据是一样的。
  • 同层协议能够互相认识对方的报头。能做到:
    • 将报头进行和有效载荷的分离(解包)。
    • 将有效载荷交付给上层的哪一个具体协议(分用)。

局域网内数据是怎么进行传输的?

在一个局域网当中,除了当前正在进行通信的A主机和B主机以外,还可能会有其他的主机,那A主机是如何将数据成功发送给B主机的呢?

在这里插入图片描述

实际上,局域网内传输数据时是通过广播的方式进行传输数据,所以该局域网内的所有主机其实都能收到数据。

任何设备要通信,都需要有唯一的标示符,对于计算机也是如此,每台计算机都配有网卡,网卡在出厂时,就在内部被写入了sn号,也称MAC地址,此地址全球唯一。

在局域网中发送的数据实际叫做MAC数据帧,在这个MAC数据帧的报头当中会包含两个字段,分别叫做源MAC地址和目的MAC地址。

在局域网中进行通信的时候,每一个主机在收到一个MAC数据帧后,都会提取该MAC数据帧的报头,找到对应的目的MAC地址与自己的MAC地址进行比对。如果该MAC地址与自己的MAC地址不匹配,则直接将该MAC数据帧丢弃,只有MAC地址匹配时,该主机才会将该数据帧的有效载荷继续向上进行交付处理。

什么是碰撞?

当主机A在向主机B发送数据时,其他主机彼此之间可能也正在进行通信,甚至主机A在和主机B通信的同时也在和其他主机进行通信。

在这里插入图片描述

但同一局域网中的所有主机在通信时,使用的都是一个共同的通信信道,因此如果局域网内的多台主机同时进行通信,此时这些数据之间就可能会相互干扰。

每一个局域网都可以看作是一个碰撞域,如果某个主机发送出去的数据与其他主机发送的数据之间产生了干扰,我们就称这两台主机在该碰撞域中发生了碰撞。

如何判断发送出去的数据是否发生了碰撞?

因为发送到局域网当中的数据是所有主机都能够收到的,因此当一个主机将数据发送出去后,该主机本身也是能够收到这个数据的。当该主机收到该数据后就可以将其与之前发送出去的数据进行对比,如果发现收到的数据与之前发送出去的数据不相同,则说明在发送过程中发生了碰撞。

也就是说,主机实际是能够通过某种方式,知道曾经发送出去的数据是否发生了碰撞的。

发生碰撞后是如何处理的?

当一个主机发现自己发送出去的数据产生了碰撞,此时该主机就要执行“碰撞避免”算法。“碰撞避免”算法实际很简单:当一个主机发送出去的数据产生了碰撞,那么该主机可以选择等一段时间后,再重新发送该数据。这就像现实生活中的两个人同时想要说话,此时对方就都会说“你先说吧”,这实际上就是一种碰撞避免。

需要注意的是,实际在网络通信压力不大的时候发生碰撞的概率是不大的,我们不要太小瞧计算机的处理速度,也不要太小瞧网线传播数据的速度。

与碰撞相关的一种局域网攻击机制

如果局域网内的某台主机一直向该局域网内发送一些无用的数据,那么其他主机一发数据就会产生碰撞,此时该局域网也就瘫痪了,这实际就是局域网本身的一个攻击原理。但需要注意的是,这台一直发送“垃圾数据”的主机,必须要通过某种方式绕过“碰撞避免”算法,否则当其发送的数据产生碰撞后,该主机自己也会执行“碰撞避免”算法。


2、跨网络的两台主机通信

上面说的都是同一局域网内的主机之间的通信,那跨局域网的两台主机之间是如何进行通信的呢?

局域网之间都是通过路由器连接起来的,因此一个路由器至少能够横跨两个局域网。而这些被路由器链接的局域网都认为:该路由器就是本局域网内的一台主机,因此路由器可以和这些局域网内的任意一台主机进行直接通信。

跨网络的两台主机通信原理与局域网类似,但是还有一些重要的问题:

怎么确定我们要通信的两台主机是在同一个局域网内还是在两个不同的局域网内?

在这里插入图片描述

在网络中我们可以使用IP地址来标识不同主机,报文在自顶向下发送的时候,会经过网络层,在网络层中可以根据目的IP查询路由表,确定目标主机与自己在不在同一个网络,如果在就将报文发送给对应的主机,如果不在,报文就会通过内网被转发到路由器,由路由器进行转发。

采用不同通信标准的两个局域网内的主机,为什么能够正常通信?

例如上面的的两台分别在以太网与令牌环网的主机,当路由器接收到来自以太网的报文时,会对对应的报头进行解包,然后将剩下的数据向上交付给网络层,在网络层进行路由确定目标IP所在的网络,再将数据向下交付给对应的链路层,此时在链路层当中就会给该数据添加上令牌环对应的报头信息,然后再将该数据发送到令牌网当中,此时该数据就能够在令牌环网当中正常传输和解包了。

IP地址的好处

IP地址的存在除了帮助数据路由以外,还有一个很重要的作用,那就是屏蔽了底层网络的差异。对于通信主机双方的IP层及其往上的协议来说,它们并不需要关心底层采用的是以太网还是令牌环网,它们认为只要填写了源IP地址和目的IP地址就能够将数据发送出去,因此现在主流的网络也叫做“IP网络”。

四、网络中的地址管理

1、IP地址

  • IP协议有两个版本:IPv4和IPv6.
  • IP地址是在IP协议中, 用来标识网络中不同主机的地址;
  • 对于IPv4来说, IP地址是一个4字节, 32位的整数,而IPv6用128个比特位来标识IP地址
  • 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255。

2、认识MAC地址

  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48位, 6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  • 在网卡出厂时就确定了, 不能修改,mac地址通常是唯一的(虚拟机中的mac地址不是真实的MAC地址, 可能会冲突; 也有些网卡支持用户配置MAC地址).

MAC地址与IP地址的区别

  1. IP地址为报文定制最终地址,在数据转发的路上根据IP地址进行路径选择。

  2. MAC地址用来选择数据转发的下一站的设备地址,所以数据一路转发的过程中,转发数据的设备在变,所以MAC地址也会变,但是IP地址不会变。

在Linux中,我们可以使用ifconfig命令可以查看当前主机所对应的的MAC地址和IP地址。

在这里插入图片描述

相关文章:

【网络】网络入门

网络入门 一、网络发展二、网络协议初识1、认识"协议"2、协议分层3、OSI七层模型4、TCP/IP五层(或四层)模型 三、网络传输基本流程1、同局域网的两台主机通信2、跨网络的两台主机通信 四、网络中的地址管理1、IP地址2、认识MAC地址 一、网络发展 独立模式&#xff1a…...

GO-实现简单文本格式 文本字体颜色、大小、突出

毫无疑问GO的生态就是一坨大便。老子英文水平小学啊。 实现简单文本格式 文本字体颜色、大小、突出显示等。 创建要给docx文件容器【我估算的】 doc : document.New() defer doc.Close() doc.SaveToFile("simple.docx") 把容器保存为文件 设置标题 创建自然段…...

铅华洗尽,粉黛不施,人工智能AI基于ProPainter技术去除图片以及视频水印(Python3.10)

视频以及图片修复技术是一项具有挑战性的AI视觉任务,它涉及在视频或者图片序列中填补缺失或损坏的区域,同时保持空间和时间的连贯性。该技术在视频补全、对象移除、视频恢复等领域有广泛应用。近年来,两种突出的方案在视频修复中崭露头角&…...

latex,不带行号的algorithm

\usepackage{algorithm,algorithmic}\begin{algorithm} \caption{The Example Algorithm} \label{alg123} \begin{algorithmic} \STATE{\textbf{Input:} ...} \STATE{\textbf{Output:} ...} \IF{...} \STATE{...} \ENDIF \RETURN{...} \end{algorithmic} \end{algorithm}...

RocketMQ高性能核心原理与源码架构剖析

文章目录 一、源码环境搭建主要功能模块源码启动服务启动nameServer启动Broker发送消息消费消息 二、源码热身阶段NameServer的启动过程关注重点源码重点 Broker服务启动过程关注重点源码重点 Netty服务注册框架关注重点源码重点关于RocketMQ的同步结果推送与异步结果推送 Brok…...

MATLAB中zp2tf函数用法

目录 语法 说明 示例 质点弹簧系统的传递函数 zp2tf函数的功能是将零极点增益滤波器参数转换为传递函数形式。。 语法 [b,a] zp2tf(z,p,k) 说明 [b, a] zp2tf(z, p, k) 将一个分解的传递函数表示方式转换。 将单输入/多输出(SIMO)系统的多输出…...

解决:uniapp项目中调用小程序的chooseAddress() API失效

目录 问题描述 解决方案 问题描述 使用 Hbuilder X 编辑器和 uni-app 框架开发小程序项目,在调用小程序提供的 uni.chooseAddress() API实现选择收货地址的功能时,点击选择收货地址没有反应,获取不到用户收货地址,API失效了 …...

2023 项目组总结(待完善)

2023 项目组总结 目录概述需求: 设计思路实现思路分析1.JA项目2.XC项目3.XL 项目4.tydic 项目 总结 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better re…...

Chrome浏览器 键盘快捷键整理

名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 本篇笔记整理:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 〇、前言一、常用快捷键二、分类型快捷键表(…...

【JAVA】集合与背后的逻辑框架,包装类,List,Map,Set,静态内部类

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 collectionCollection创建collection使用泛型collection方法 Map 接口Map的存储结构HashMap和Tr…...

mac电脑版数字图像处理软件:ACDSee Photo Studio 9最新 for Mac

ACDSee Photo Studio 9是一款由ACD Systems开发的功能强大的照片管理和编辑软件,专为Mac用户提供一站式解决方案,方便用户轻松浏览、管理和编辑照片。该软件提供了许多实用的工具和功能,包括高效的导入和排序工具、强大的编辑工具、智能组织和…...

酷开系统 | 酷开科技让你放肆嗨唱,聆听内心最真实的声音

在这个喧嚣的城市里,每个人都像是一座孤岛,漂浮在茫茫人海之中,我们总是忙于奔波在各种琐事之间,渐渐忘记了内心深处的声音,我们压抑自己的情感,害怕被误解、被批评,然而真正的我们,…...

PC电脑 VMware安装的linux CentOs7如何扩容磁盘?

一、VM中进行扩容设置 必须要关闭当前CentOS,不然扩展按钮是灰色的。 输入值必须大于当前磁盘容量。然后点击扩展,等待扩展完成会提示一个弹框,点击确定,继续确定。 二、操作CentOS扩容——磁盘分区 第一步设置完成。那就启动 …...

redis极速的奥秘

文章目录 1.基于内存存储实现2.高效的数据结构3.合理的数据编码4.合理的线程模型5. 虚拟内存机制实现原理 1.基于内存存储实现 内存读写是比在磁盘快很多的,Redis 基于内存存储实现的数据库,相对于数据存在磁盘的 MySQL 数据库,省去磁盘 I/O…...

three.js之初识three.js

什么是three.js Three.js是一款运行在浏览器中的 3D 引擎(基于WebGL的API的封装) 什么是WebGL? WebGL(英语:Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和Open…...

二维码智慧门牌管理系统:地址管理的现代革命

文章目录 前言一、标准地址的革新二、广泛的应用前景 前言 在科技不断发展和社会进步的背景下,高效、精准、智能的管理系统已经成为当今社会的迫切需求。传统的门牌管理系统在应对这一需求方面已显得力不从心,因此,二维码智慧门牌管理系统的…...

BricsCAD 23 for Mac:轻松驾驭CAD建模的强大工具

如果你正在寻找一款功能强大、操作简便的CAD建模软件,那么BricsCAD 23 for Mac绝对值得你考虑。这款软件将为你提供一套完整的2D和3D设计解决方案,让你在Mac上轻松创建、编辑和修改图形。 一、BricsCAD 23的功能特点 高效的2D和3D建模:Bric…...

如何利用Web应用防火墙应对未知威胁

网络安全是一个永恒的话题,尤其是在未知威胁不断涌现的情况下。Web应用防火墙(WAF)是企业网络安全防线的重要组成部分,能够帮助企业在面对未知威胁时采取有效的防护措施。本文将探讨如何利用Web应用防火墙应对未知的网络威胁。 一…...

四、多线程服务器

1.进程的缺陷和线程的优点 1.进程的缺陷 创建进程(复制)的工作本身会给操作系统带来相当沉重的负担。 而且,每个进程具有独立的内存空间,所以进程间通信的实现难度也会随之提高。 同时,上下文切换(Cont…...

基于vue实现滑块动画效果

主要实现:通过鼠标移移动、触摸元素、鼠标释放、离开元素事件来进行触发 创建了一个滑动盒子,其中包含一个滑块图片。通过鼠标按下或触摸开始事件,开始跟踪滑块的位置和鼠标/触摸位置之间的偏移量。然后,通过计算偏移量和起始时的…...

ES6从入门到精通:前言

ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...