计算机网络常见体系结构、分层必要性、分层设计思想以及专用术语介绍

计算机网络体系结构

从本此开始,我们就要开始介绍有关计算机网络体系结构的知识了。内容包括:

  1. 常见的计算机网络体系结构

  2. 计算机网络体系结构分层的必要性

  3. 计算机网络体系结构的设计思想

  4. 举例说明及专用术语

计算机网络体系结构是计算机网络课程中的重点和难点,它的抽象概念较多。建议大家阅读学习时多思考,这些概念的理解对后面的学习帮助会很大。


1、常见的计算机网络体系结构

1.1 OSI体系结构

为了使不同体系结构的计算机网络都能互连,国际标准化组织于1977年成立了专门机构研究该问题。不久,他们就提出了一个试图使各种计算机在世界范围内互连成网的标准框架,也就是著名的开放系统互联参考模型,简称为OSI。该模型是一个七层协议的体系结构,从下往上依次是:物理层、数据链路层、网络层、运输层、会话层、表示层、应用层,如下图所示。

它是法律上的国际标准。

1.2 TCP/IP体系结构

到了20世纪90年代初期,但这时英特网已抢先在全世界覆盖了相当大的范围。英特网从1983年开始使用TCP/IP协议族,并逐步演变成TCP/IP参考模型。该模型是一个四层协议的体系结构,从下往上依次是:网络接口层、网际层、运输层、应用层,如下图所示。

它是事实上的国际标准。


1.3 标准制定与市场关系

在过去制定标准的组织中,往往以专家学者为主,但现在许多公司都纷纷挤进各种各样的标准化组织,使得技术标准有着浓厚的商业气息。一个新标准的出现有时不一定反映出其技术水平是最先进的,而是往往有着一定的市场背景。从这种意义上说,能够占领市场的就是标准。

OSI标准失败的原因可归纳为以下几点:

  1. OSI的专家们缺乏实际经验,他们在完成OSI标准时没有商业驱动力。

  2. OSI的协议实现起来过分复杂,而且运行效率很低。

  3. OSI标准的制定周期太长,因而使得按OSI标准生产的设备无法及时进入市场。

  4. OSI的层次划分也不太合理,有些功能在多个层次中重复出现。


1.4 体系结构对比

对比这两个体系结构可以看出:

  1. TCP/IP体系结构相当于将OSI体系结构的物理层和数据链路层合并为了网络接口层。

  2. 并去掉了会话层和表示层。

另外由于TCP/IP在网络层使用的协议是IP协议(IP协议的中文意思是网际协议),因此TCP/IP体系结构的网络层常称为网际层

大多数用户每天都有接入英特网的需求,这就要求用户的主机必须使用TCP/IP协议。当然了,即使用户的网络不需要接入因特网,也可以使用TCP/IP协议。

在用户主机的操作系统中,通常都带有符合TCP/IP体系结构标准的TCP/IP协议族。而用于网络互联的路由器中,也带有符合TCP/IP体系结构标准的TCP/IP协议族,只不过路由器一般只包含网络接口层和网际层。


1.5 TCP/IP体系结构特点

TCP/IP体系结构的网络接口层并没有规定什么具体的内容,这样做的目的是可以互联全世界各种不同的网络接口。例如:

  • 有线的以太网接口

  • 无线局域网的WiFi接口

而不限定仅使用一种或几种网络接口。因此本质上TCP/IP体系结构只有上面的三层。

IP协议是TCP/IP体系结构网际层的核心协议。TCP和UDP是TCP/IP体系结构运输层的两个重要协议。TCP/IP体系结构的应用层包含了大量的应用层协议,例如HTTP、SMTP、DNS、RTP等,即便大家是计算机网络的初学者,对HTTP这个缩写词也不会陌生,因为每当我们打开浏览器,在地址栏输入网址时,就会看到它。

IP协议可以将不同的网络接口进行互连,并向其上的TCP协议和UDP协议提供网络互联服务。而TCP协议在享受IP协议提供的网络互联服务的基础上,可向应用层的相应协议提供可靠传输的服务。UDP协议在享受IP协议提供的网络互联服务的基础上,可向应用层的相应协议提供不可靠传输的服务。

IP协议作为TCP/IP体系结构中的核心协议,一方面负责互联不同的网络接口,也就是“IP over everything”;另一方面为各种网络应用提供服务,也就是“Everything over IP”。

IP协议和TCP协议是其中非常重要的两个协议,因此用TCP和IP这两个协议来表示整个协议大家族,常称为TCP/IP协议族

顺便提一下,在嵌入式系统开发领域,TCP/IP协议族常称为TCP/IP协议栈。这是因为TCP/IP协议体系的分层结构与数据结构中的栈在图形画法上是类似的。


1.6 折中方案:五层协议体系结构

由于TCP/IP体系结构为了将不同的网络接口进行互连,因此它的网络接口层并没有规定什么具体的内容。然而,这对我们学习计算机网络完整体系时就会缺少一部分内容。

因此在学习计算机网络原理时,我们往往采取折中的办法,也就是综合OSI和TCP/IP的优点,采用一种五层协议的原理体系结构

五层协议的原理体系结构从下到上依次为:物理层、数据链路层、网络层、运输层、应用层,如下图所示。

可以看出,五层协议的原理体系结构将TCP/IP体系结构的网络接口层又重新划分为了物理层和数据链路层。


学到这里,我们对计算机网络体系结构有了初步的了解,同时也产生了更多的疑问。例如:

  1. 计算机网络体系结构为什么要分层?

  2. 各层的主要任务是什么?

下面,我们就来继续介绍计算机网络体系结构分层的必要性,逐步解开这些疑惑。


2、计算机网络体系结构分层的必要性

现在,我们就以前面介绍的五层协议的原理体系结构为例,介绍计算机网络体系结构分层的必要性。


2.1 分层设计的意义

计算机网络是个非常复杂的系统。早在最初的ARPANET设计时,就提出了分层的设计理念。分层可将庞大而复杂的问题转化为若干较小的局部问题,而这些较小的局部问题就比较容易研究和处理。

下面我们按照由简单到复杂的顺序来看看,实现计算机网络要面临哪些主要问题,以及如何将这些问题划分到相应的层次,层层处理。


2.2 两台计算机通过网线连接

首先来看最简单的情况:两台计算机通过一条网线连接起来。对于这种最简单的情况,我们需要考虑以下问题:

  • 采用怎样的传输媒体(介质),例如这是我们常见的双绞线网线。

  • 在计算机上采用怎样的物理接口来连接传输媒体,例如这是RJ45以太网接口。

  • 还有需要考虑的问题是使用怎样的信号来表示比特0和1,例如使用这样的方波信号,低电平表示0,高电平表示1。

解决了这些问题,两台计算机就可以通过信号来传输比特0或1了。我们可以将这些问题划归到物理层

这里我们需要说明两点:

  1. 严格来说,传输媒体并不属于物理层,它并不包含在体系结构之中。

  2. 计算机网络中传输的信号并不是我们举例的方波信号。我们之所以举例成方波信号是为了让初学者容易理解,在学习本身就不容易理解的概念——抽象的计算机网络体系结构时,不让其他技术细节再给大家造成学习障碍。


2.3 简单扩展:总线型网络

实用的计算机网络一般都由多台主机构成。例如主机A、B、C、D通过总线互联,构成了一个总线型网络。

假设我们已经解决了物理层的问题,也就是说主机间可以发送信号来传输比特0或者1了。我们来看看在这样一个总线型的网络上,还面临什么需要解决的问题。

如图所示,主机A要给主机C发送数据,但是表示数据的信号会通过总线传播到总线上的每一个主机。

那么问题来了:

  1. 主机C如何知道该数据是发给自己的,自己要接受?

  2. 而主机B和D又如何知道该数据并不是发送给自己的,自己应该拒绝?

这就很自然地引出了如何标识网络中各主机的问题,也就是主机编址问题,如MAC地址。

大家可能听说过网卡上的MAC地址,其实它就是主机在网络中的地址。主机在发送数据时,应该给数据附加上目的地址。当其他主机收到后,根据目的地址和自身地址来决定是否接收数据。

这就又引出了一个问题:目的主机如何从信号所表示的一连串比特流中区分出地址和数据?也就是需要解决分组的封装格式问题。

另外,对于总线型的网络还会出现下面这种典型的问题:

如上图所示,某个时刻总线是空闲的(也就是没有主机使用总线来发送数据),片刻之后,主机B和D同时向总线发送数据,这必然会造成信号碰撞。因此,如何协调各主机征用总线也是必须要解决的问题。

需要说明的是,这种总线型的网络早已淘汰,现在常用的是使用以太网交换机将多台主机互联形成的交换式以太网,如下图所示。

那么以太网交换机又是如何实现的呢?我们将这些问题全部划归到数据链路层

到这里大家可能会发现,只要解决了物理层和数据链路层各自所面临的问题,我们就可以实现分组在一个网络上传输了。没错,确实是这样。

但是我们每天都会使用的英特网是由非常多的网络和路由器互连起来的。仅解决物理层和数据链路层的问题还是不能正常工作。


2.4 多网络互连:小型互联网示例

我们来看这个例子:这是一个由三个路由器、四个网络互联起来的小型互联网。我们可以把它看作是英特网中很小的一部分。

在之前的例子中,仅有一个网络,我们不需要对网络进行标识。而在本例中有多个网络,很显然,我们面临着如何标识各网络以及各网络中各主机的问题。换句话说,也就是网络和主机共同编制的问题

相信大家一定听过IP地址。例如下图标识的网络N1中各设备的IP地址。

该类IP地址的前3个十进制数用来标识网络,第四个十进制数用来标识主机在本地网络中的位置。网络N1的网络号为192.168.1,该网络上的笔记本电脑、服务器以及路由器接口的IP地址的前三个数应该都是192.168.1,因为他们都在网络N1上,而第四个十进制数分别为1、2、254,各不相同,用来标识他们自己。网络N2上各设备的IP地址也是同理。


2.5 路由问题:路径选择与转发

我们再来看另一个问题:源主机与目的主机之间的传输路径往往不止一条。分组从源主机到目的主机可走不同的路径。这样就引出了路由器如何转发分组的问题,以及如何进行路由选择的问题。我们将这些问题全部划归到网络层

至此我们解决了物理层、数据链路层以及网络层各自的问题,则可以实现分组在网络间传输的问题。

但是对于计算机网络应用而言,这仍然不够。


2.6 应用通信:进程间交互问题

例如,假设这台主机中运行着两个与网络通信相关的应用进程:一个是浏览器进程,另一个是QQ进程;这台服务器中运行着与网络通信相关的服务器进程。某个时刻主机收到了来自服务器的分组,那么这些分组应该交给浏览器进程处理呢?还是应该交给QQ进程处理?

这就引出了我们如何标识与网络通信相关的应用进程,进而解决进程之间基于网络通信的问题。

另外,如果某个分组在传输过程中出现了误码,或者由于路由器繁忙导致路由器丢弃分组,换句话说,若出现传输错误,应该如何处理?这也是需要解决的问题。

我们将这些问题全部划归到运输层

至此我们解决了物理层、数据链路层、网络层以及运输层各自的问题,则可以实现进程之间基于网络的通信。


2.7 实现网络应用:应用层功能

在此基础上,我们只需制定各种应用层协议,并按协议标准编写相应的应用程序,通过应用进程间的交互,即可完成特定的网络应用。

比如支持万维网应用的HTTP协议、支持电子邮件的SMTP协议、支持文件传送的FTP协议等。

我们将这些问题全部划归到应用层


2.8 总结各层问题

至此我们将实现计算机网络所需要解决的各种主要问题分别划归到了原理体系结构的五个层次之中:

请大家思考一下这样一个问题:假设你是一名程序员,要编程解决实现计算机网络所面临的所有软件问题,那么你是愿意将这些问题全部放在一个模块中编程实现呢?还是愿意将它们划分到不同的模块中逐模块编程实现?

相信你一定会选择后者。


3、计算机网络体系结构分层思想举例

接下来,我们将通过一个具体的网络通信实例来看看计算机网络体系结构的分层处理方法。


3.1 网络拓扑与通信场景

假设网络拓扑如下图所示:

  • 主机属于网络N1。

  • Web服务器属于网络N2。

  • N1和N2通过路由器互联。

我们使用主机中的浏览器来访问Web服务器。当输入网址后,主机会向Web服务器发送请求,Web服务器收到请求后会发回相应的响应。主机的浏览器收到响应后,将其解析为具体的网页内容显示出来。

需要说明的是,我们给出的只是一个简化的示意过程。这是因为本次介绍的重点是计算机网络体系结构分层处理方法,而不是浏览器和Web服务器的实际交互过程。

主机和Web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与Web服务器中的Web服务器应用进程之间的基于网络的通信。

那么,体系结构的各层在整个过程中起到怎样的作用呢?


3.2 主机端的封装过程

我们从主机端,按体系结构自顶向下的顺序来看:

3.2.1 应用层

应用层按HTTP协议的规定构建一个HTTP请求报文。这是该报文的内容,如下图。应用层将HTTP报文交付给运输层处理。

3.2.2 运输层

运输层给HTTP请求报文添加一个TCP首部,使之成为TCP报文段。下图是TCP报文段的首部格式。该首部的作用主要是为了区分应用进程以及实现可靠传输。运输层将TCP报文段交付给网络层处理。

3.2.3 网络层

网络层给TCP报文段添加一个IP首部,使之成为IP数据报。下图是IP数据报的首部格式。该首部的作用主要是为了使IP数据报可以在互联网上传输,也就是被路由器转发。网络层将IP数据报交付给数据链路层处理。

3.2.4 数据链路层

数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧。

假设网络N1是以太网,IP数据报右边是以太网帧首部的格式。该首部的作用主要是为了让帧能够在一段链路上或一个网络上传输,能够被相应的目的主机接收。IP数据报左边是以太网帧尾部的格式,其作用是为了让目的主机检查所接收到的帧是否有误码。数据链路层将帧交付给物理层。

3.2.5 物理层

物理层将帧看作是比特流

由于网络N1是以太网,因此物理层还会给该比特流前面添加前导码。这是前导码的内容,其作用是为了让目的主机做好接收帧的准备。

物理层将添加有前导码的比特流变换成相应的信号,发送到传输媒体。然后信号通过传输媒体到达路由器。


3.3 路由器的处理过程

然后我们来看路由器的处理过程:

3.3.1 物理层

物理层将信号变换为比特流。

然后去掉前导码后将其交付给数据链路层。

这实际上交付的是帧数据。

3.3.2 数据链路层

数据链路层将帧的首部和尾部去掉后,将其交付给网络层。

这实际上交付的是IP数据报。

3.3.3 网络层

网络层解析IP数据报的首部,从中提取出目的网络地址,然后查找自身的路由表,确定转发端口以便进行转发。

网络层将IP数据报交付给数据链路层。

3.3.4 数据链路层(再次封装)

数据链路层给IP数据报添加一个首部和一个尾部,使之成为帧。

数据链路层再次将帧交付给物理层。

3.3.5 物理层        

物理层将帧看作是比特流。由于网络N2是以太网,因此物理层还会给该比特流前面添加前导码。物理层将添加有前导码的比特流变换成相应的信号,发送到传输媒体。


3.4 Web服务器的处理过程

信号通过传输媒体到达Web服务器,接着以同样类似的方式逐层解封,我们再来简单看外部服务器的处理过程:

  • 物理层 物理层将信号变换为比特流,然后去掉前导码后将其交付给数据链路层。这实际上交付的是帧数据。

  • 数据链路层 数据链路层将帧的首部和尾部去掉后,将其交付给网络层。这实际上交付的是IP数据报。

  • 网络层 网络层将IP数据报的首部去掉后,将其交付给运输层。这实际上交付的是TCP报文段。

  • 运输层 运输层将TCP报文段的首部去掉后,将其交付给应用层。这实际上交付的是HTTP请求报文。

  • 应用层 应用层对HTTP请求报文进行解析,然后给主机发回HTTP响应报文。

与之前的过程类似,HTTP响应报文需要在外部服务器层层封装,然后通过物理层变换成相应的信号,再通过传输媒体传输到路由器。路由器转发该响应报文给主机。


3.6 主机端的接收与解封

主机通过物理层将收到的信号转换为比特流之后,再通过逐层解封,最终取出HTTP响应报文。

到这里,对于计算机网络体系结构的分层处理思想的讲述就结束了。


4、计算机网络体系结构中的专用术语

前面我们通过一个简单的应用实例讲述了计算机网络体系结构的分层思想。相信大家已经对计算机网络体系结构有了初步的认识。

接下来,我们将对计算机网络体系结构中的专用术语进行介绍,以便大家对计算机网络体系结构有更深入的理解。

需要说明的是,这些专用术语来源于OSI的七层协议体系结构,但也适用于TCP/IP的四层体系结构和五层协议原理体系结构

我们将这些专用术语中最具代表性的三个作为分类名称,它们分别是:


4.1 实体

实体是指任何可发送或接收信息的硬件软件进程

例如这是通信双方的五层原理体系结构,我们在他们的各层中用标有字母的小方格来表示实体。

有了实体的概念,我们再来看对等实体。对等实体是指通信双方相同层次中的实体。例如图中实体A与实体F为对等实体,实体B与实体G为对等实体,以此类推。

那么按照对等实体的定义,请大家思考一下:

  1. 通信双方的网卡是不是对等实体呢?

  2. 通信双方中正在进行通信的应用进程是不是对等实体呢?

回答是肯定的。因为首先根据实体定义可知,双方的网卡都是实体,其次网卡在双方都处于相同层次,因此是对等实体。应用进程同理。


4.2 协议

协议是控制两个对等实体进行逻辑通信的规则的集合。

例如:

  • 应用层对等实体在应用层协议的控制下进行逻辑通信

  • 运输层对等实体在运输层协议的控制下进行逻辑通信

  • 网络层对等实体在网络层协议的控制下进行逻辑通信

  • 以此类推

需要注意的是,之所以称为逻辑通信,是因为这种通信其实并不存在,它只是我们假设出来的一种通信。目的在于方便我们单独研究体系结构某一层,而不用考虑其他层。

例如,当我们研究运输层时,我们可以假设运输层的对等实体在进行逻辑通信,而不用顾及其他层。

计算机网络协议有三个要素,分别是语法、语义以及同步

4.2.1 协议三要素:语法

定义通信双方所交换信息的格式

例如下图是IP数据报的格式,其中的小格子称为字段或域,表示字段的长度单位是bit(比特)

语法就是定义了这些小格子的长度和先后顺序。换句话说,语法定义了所交换信息有哪些字段,以及以何种顺序构成

需要说明的是,我们没有必要记住每种分组的格式,只要我们能看懂它们的格式说明就可以了。

当然了,如果大家将来会从事计算机网络相关的开发、教学研究等工作,像IP数据报、TCP报文段、HTTP报文等这些常见的分组格式,相信大家在学习和研究过程中自然而然就会记住了。

4.2.2 协议三要素:语义

定义通信双方所要完成的操作

比如前面举的应用实例:主机要访问远程Web服务器,它会构建一个HTTP的GET请求报文,然后将其发送给Web服务器。Web服务器收到该报文并进行解析,知道这是一个HTTP的GET请求报文,于是就在自身内部查找所请求的内容,并将所找到的内容封装在一个HTTP响应报文中发回给主机。主机收到HTTP响应报文后,对其进行解析,取出所请求的内容,并由浏览器解析显示。

这个例子就可以体现出通信双方收到分组后完成怎样的操作,这是HTTP协议的语义所规定的

4.2.3 协议三要素:同步

定义通信双方的时序关系(双方同时要相互进行的操作关系?)。请注意并不是指时钟频率同步。

例如TCP采用三报文握手建立连接的过程。要想进行运输层TCP实体间的逻辑通信,首先必须建立连接。从连接建立的过程就可以看出,TCP客户端和TCP服务器之间的时序关系以及各自的状态转换。只有双方建立连接后才能进行TCP数据传输。如下图

这个例子可以充分体现计算机网络协议三要素中的同步。


4.3 服务

有了协议的概念,我们再来介绍服务

在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。换句话说,要实现本层协议,还需要使用下面一层所提供的服务。

例如下图所示状态:

物理层对等实体在物理层协议的控制下向数据链路层提供服务;

数据链路层对等实体享受物理层提供的服务,并在数据链路层协议的控制下进行逻辑通信,给网络层提供服务;

网络层对等实体享受数据链路层提供的服务,并在网络层协议的控制下进行逻辑通信,给运输层提供服务;

运输层对等实体享受网络层提供的服务,并在运输层协议的控制下进行逻辑通信,给应用层提供服务;

应用层对等实体享受运输层提供的服务,并在应用层协议的控制下进行逻辑通信,给其上层也就是用户提供服务。

很明显,协议是水平的,而服务是垂直的

需要特别注意的是:

实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。换句话说,下层的协议对上层的实体是透明的。

这就好比我们肯定看得见手机为我们提供的各种服务,但我们只是享受这些服务,而没有必要弄懂手机的工作原理。


4.4 服务访问点

服务访问点,是指在同一系统中,相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。

例如:

  • 数据链路层的服务访问点为帧的类型字段

  • 网络层的服务访问点为IP数据报首部中的协议字段

  • 运输层的服务访问点为端口号

上层要使用下层所提供的服务,必须通过与下层交换一些命令,这些命令称为服务原语


4.5 PDU和SDU

在计算机网络体系结构中,对通信双方所交互的数据包有专门的术语:

我们把对等层次之间传送的数据包称为该层的协议数据单元(Protocol Data Unit),英文缩写词为PDU

例如:

  • 物理层对等实体逻辑通信的数据包称为比特流

  • 数据链路层对等实体逻辑通信的数据包称为

  • 网络层对等实体逻辑通信的数据包称为分组,如果使用IP协议,也称为IP数据报

  • 运输层对等实体逻辑通信的数据包一般根据协议而定:使用TCP协议则称为TCP报文段;使用UDP协议则称为UDP用户数据报

  • 应用层对等实体逻辑通信的数据包一般称为应用报文

上述各层数据包可以统称为协议数据单元(PDU)。


我们把同一系统内层与层之间交换的数据包称为服务数据单元(Service Data Unit),英文缩写词为SDU。如下图红色框出部分。

多个服务数据单元(SDU)可以合成为一个协议数据单元(PDU),一个服务数据单元(SDU)也可以划分为几个协议数据单元(PDU)。


OK,讲到这里,关于计算机网络体系结构的相关专业术语也讲述完毕了。也使我们更深入地了解了计算机网络体系结构以及其中的一些专用术语。

最后,整理一下所讲述的常用专业术语,如下图所示


5、小结

到这里我们计算机网络体系结构的四大板块内容就结束了。相对来说,这些内容比较抽象。

如果大家一时无法完全理解,可以不用钻牛角尖,暂时放过去。随着后续课程的学习,大家会感觉到计算机网络体系结构不再抽象难懂,它的分层思想是多么优美的设计哲学,其中的这些术语又是多么的贴切。


以上便是本次文章的所有内容,欢迎各位朋友在评论区讨论,本人也是一名初学小白,愿大家共同努力,一起进步吧!

鉴于笔者能力有限,难免出现一些纰漏和不足,望大家在评论区批评指正,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/82857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】“多态”特性

文章目录 一、多态的概念二、多态的定义实现1. 多态的构成条件1.1 虚函数1.2 虚函数的重写 2. 多态的调用3. 虚函数重写的其他问题3.1 协变3.2 析构函数的重写 三、override和final关键字四、重载/重写/隐藏的对比五、纯虚函数和抽象类六、多态的原理 C的三大主要特性&#xff…

2025.5.27学习日记 linux三剑客 sed与正则表达式

sed是Stream Editor(字符流编辑器)的缩写,简称流编辑器。 sed是操作、过滤和转换文本内容的强大工具。 常用功能包括结合正则表达式对文件实现快速增删改查 , 其中查询的功能中最常用的两大功能是过 滤 ( 过滤指定字符串)、取行(取出指定行)。 注意sed和awk使用单引号,双引号…

文科小白学习Linux系统之安全管理

目录 前言 一、SELinux安全上下文 1、SELinux 简介 2、基础操作命令 1. 查看SELinux状态 2. 切换工作模式 3、安全上下文(Security Context) 1. 查看上下文 2. 修改上下文 chcon命令 semanage 命令 4、SELinux布尔值(Booleans&am…

企业内训系统源码开发详解:直播+录播+考试的混合式学习平台搭建

在企业数字化转型的大潮中,员工培训早已不再是传统教室中的一场场“走过场”,而是通过技术驱动的“系统化能力提升”。尤其在知识更新换代加速、竞争压力日益激烈的背景下,企业越来越倾向于建设自主可控、功能灵活、支持多种学习形态的内训平…

智能化报销与精细化管理:购物小票识别系统全面提升企业运营效率

在现代企业管理中,购物小票的处理一直是财务和运营管理中的一项挑战。尤其在企业费用报销、会员管理、库存监控等环节,手动整理与核对小票不仅耗时费力,还容易产生错误。随着人工智能技术的发展,企业亟需一种高效、智能的解决方案…

毫秒级数据采集的极致优化:如何用C#实现高性能、无冗余的实时文件写入?

在工业控制、通信系统或高频交易领域,毫秒级数据采集的精度直接决定系统性能。但一个棘手问题常被忽视:如何处理同一毫秒内的重复数据? 若简单写入所有数据,会导致文件臃肿、分析效率骤降;若处理不当,又可能…

NLua性能对比:C#注册函数 vs 纯Lua实现

引言 在NLua开发中,我们常面临一个重要选择:将C#函数注册到Lua环境调用,还是直接在Lua中实现逻辑? 直觉告诉我们,C#作为编译型语言性能更高,但跨语言调用的开销是否会影响整体性能?本文通过基准…

go并发与锁之sync.Mutex入门

sync.Mutex 原理:一个共享的变量,哪个线程握到了,哪个线程可以执行代码 功能:一个性能不错的悲观锁,使用方式和Java的ReentrantLock很像,就是手动Lock,手动UnLock。 使用例子: v…

【HarmonyOS5】DevEco Studio 使用指南:代码阅读与编辑功能详解

⭐本期内容:【HarmonyOS5】DevEco Studio 使用指南:代码阅读与编辑功能详解 🏆系列专栏:鸿蒙HarmonyOS:探索未来智能生态新纪元 文章目录 前言代码阅读代码导航功能代码折叠语法高亮跨语言跳转代码查找 快速查阅API接口…

【Python 深度学习】1D~3D iou计算

一维iou 二维 import numpy as npdef iou_1d(set_a, set_b):# 获得集合A和B的边界 x1, x2 set_ay1, y2 set_b# 计算交集的上下界low max(x1,y1)high - min(x2, y2)# 计算交集if high - low < 0:inter 0else:inter high - low# 计算并集union (x2 -x1) (y2 - y1) - in…

SpringBoot Controller接收参数方式, @RequestMapping

一. 通过原始的HttpServletRequest对象获取请求参数 二. 通过Spring提供的RequestParam注解&#xff0c;将请求参数绑定给方法参数 三. 如果请求参数名与形参变量名相同&#xff0c;直接定义方法形参即可接收。(省略RequestParam) 四. JSON格式的请求参数(POST、PUT) 主要在PO…

智能防护实战:从攻击成本看企业安全降本增效

1. 网络攻击的低成本与高回报陷阱 暗网中&#xff0c;一次完整的网络钓鱼攻击仅需30美元/月起步&#xff0c;而勒索软件攻击成本平均1000美元&#xff0c;却能导致企业损失高达445万美元&#xff08;IBM 2023年数据&#xff09;。例如&#xff0c;信用卡信息每条仅售10美元&am…

大语言模型 20 - MCP 在客户端中使用 Cursor Cline 中配置 MCP 服务

MCP 基本介绍 官方地址&#xff1a; https://modelcontextprotocol.io/introduction “MCP 是一种开放协议&#xff0c;旨在标准化应用程序向大型语言模型&#xff08;LLM&#xff09;提供上下文的方式。可以把 MCP 想象成 AI 应用程序的 USB-C 接口。就像 USB-C 提供了一种…

MySQL 在 CentOS 7 环境下的安装教程

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习Mysql的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…

WPF的基础设施:XAML基础语法

XAML基础语法 1 控件声明与属性设置1.1 特性语法&#xff08;Attribute Syntax&#xff09;1.2 属性元素语法&#xff08;Property Element Syntax&#xff09;1.3 特殊值标记扩展 2 x:Name与Name的区别3 注释与代码折叠4 实用技巧集合5 常见错误排查 XAML( Extensible Applic…

机器学习笔记【Week3】

一、逻辑回归&#xff08;Logistic Regression&#xff09; 与线性回归的区别&#xff1a; 问题类型输出类型举例回归问题连续实数房价预测、气温预测分类问题离散类别&#xff08;0 或 1&#xff09;是否患病、是否点击广告、是否合格 我们希望构建一个模型&#xff0c;根据…

6.4.2_3最短路径问题_Floyd算法

Floyd弗洛伊德 膜拜大佬&#xff0c;给大佬鞠躬鞠躬鞠躬。。。。。。。。。 Floyd算法 ----解决顶点间的最短路径&#xff1a; 过程&#xff1a; 如下&#xff1a; 初始化(没有中转点)&#xff1a;2个邻接矩阵A和path&#xff0c;第一个是没有中转点的2个顶点之间的最短路径…

uniapp|实现多端图片上传、拍照上传自定义插入水印内容及拖拽自定义水印位置,实现水印相机、图片下载保存等功能

本文以基础视角,详细讲解如何在uni-app中实现图片上传→水印动态编辑→图片下载的全流程功能。 目录 引言应用场景分析(社交媒体、内容保护、企业素材管理等)uniapp跨平台开发优势核心功能实现​图片上传模块多来源支持:相册选择(`uni.chooseImage`)与拍照(`sourceType:…

2021年认证杯SPSSPRO杯数学建模B题(第二阶段)依巴谷星表中的毕星团求解全过程文档及程序

2021年认证杯SPSSPRO杯数学建模 B题 依巴谷星表中的毕星团 原题再现&#xff1a; 依巴谷卫星&#xff08;High Precision Parallax Collecting Satellite&#xff0c;缩写为 Hip-parcos&#xff09;&#xff0c;全称为“依巴谷高精度视差测量卫星”&#xff0c;是欧洲空间局发…

行为型:解释器模式

目录 1、核心思想 2、实现方式 2.1 模式结构 2.2 实现案例 3、优缺点分析 4、适用场景 5、注意事项 1、核心思想 目的&#xff1a;针对某种语言并基于其语法特征创建一系列的表达式类&#xff08;包括终极表达式与非终极表达式&#xff09;​&#xff0c;利用树结构模式…