深入理解计算机网络分层结构

news2024/10/7 18:27:57

一、 为什么要分层?

计算机网络分层的主要目的是将复杂的网络通信过程分解为多个相互独立的层次,每个层次负责特定的功能。这样做有以下几个好处:

  • 模块化设计:每个层次都有清晰定义的功能和接口,使得网络系统更易于设计、理解和维护。

  • 标准化协议:分层结构促进了协议的标准化和统一,不同厂商和组织之间的设备和软件可以更好地互操作。

  • 故障隔离:分层结构使得故障定位和排除更加容易,因为每个层次都相对独立,故障往往局限在特定的层次。

二、OSI参考模型(不需要关注)

OSI(Open Systems Interconnection,开放系统互联)参考模型是最经典的网络分层模型之一,它将计算机网络分为七个层次:

  1. 物理层(Physical Layer):负责传输原始比特流,主要关注物理介质、电压规范、数据传输速率等。

  2. 数据链路层(Data Link Layer):负责将比特流转换为数据帧,进行错误检测和纠正,并管理物理介质的访问。

  3. 网络层(Network Layer):负责数据包的路由和转发,实现不同网络之间的通信。

  4. 传输层(Transport Layer):提供端到端的可靠数据传输,负责数据的分段和重组,同时处理传输中的错误和拥塞控制。

  5. 会话层(Session Layer):管理会话的建立、维护和终止,提供数据传输的同步和控制功能。

  6. 表示层(Presentation Layer):负责数据的格式转换、加密解密、数据压缩和编码等,以确保不同系统之间的数据交换的可靠性和兼容性。

  7. 应用层(Application Layer):提供网络服务和应用程序的接口,包括电子邮件、文件传输、远程登录等。

但是现在基本是存在教科书,实际情况使用很少的。

三. TCP/IP模型

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)模型是另一种常用的网络分层模型。

标准定义的TCP/IP模型为四层模型,没有对网络接口层进行明确的细分。

但是我们在使用TCP/IP模型时,一般会网络接口层分为链路层物理层来使用

3.1 四层分层

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)模型是另一种常用的网络分层模型,它将网络分为四个层次:

  1. 网络接口层(Network Interface Layer):负责将数据帧转换为比特流,并管理物理介质的访问。

  2. 网络层(Internet Layer):负责数据包的路由和转发,实现不同网络之间的通信。

  3. 传输层(Transport Layer):提供端到端的可靠数据传输,负责数据的分段和重组,同时处理传输中的错误和拥塞控制。

  4. 应用层(Application Layer):提供网络服务和应用程序的接口,包括HTTP、FTP、SMTP等。

3.2 五层分层

尽管TCP/IP模型在理论上包含四个层次,但在实际应用中通常会将网络接口层和网络层合并为一个层次,形成了五层模型。这种五层模型更符合实际网络系统的设计和管理需求。

TCP/IP模型将网络分为五个层次:

  1. 物理层(Physical Layer):负责传输原始比特流,主要关注物理介质、电压规范、数据传输速率等。

  2. 数据链路层(Data Link Layer):负责将比特流转换为数据帧,进行错误检测和纠正,并管理物理介质的访问。

  3. 网络层(Network Layer):负责数据包的路由和转发,实现不同网络之间的通信。

  4. 传输层(Transport Layer):提供端到端的可靠数据传输,负责数据的分段和重组,同时处理传输中的错误和拥塞控制。

  5. 应用层(Application Layer):提供网络服务和应用程序的接口,包括电子邮件、文件传输、远程登录等。

四 应用层

应用层是TCP/IP模型中的最顶层,也是用户与网络之间直接交互的层次。它负责处理特定应用程序的通信细节,为用户提供各种网络服务和应用。以下是应用层的一些重要特点和功能:

  1. 提供应用服务:应用层提供了各种不同类型的网络应用服务,例如电子邮件、文件传输、远程登录、网页浏览等。每种服务都使用特定的应用层协议来实现。

  2. 定义应用层协议:应用层协议规定了通信双方在数据交换过程中所采用的语法、语义和规则。常见的应用层协议包括HTTP、FTP、SMTP、POP3、IMAP、DNS等。

  3. 数据格式转换:应用层负责将用户数据转换为适合在网络上传输的格式,并在接收端将其转换回原始格式。例如,Web浏览器将HTML、CSS和JavaScript等文件转换为可在Internet上传输的数据包。

  4. 用户界面:应用层为用户提供了与网络应用程序交互的用户界面,如图形用户界面(GUI)或命令行界面(CLI),使用户能够方便地使用各种网络服务。

  5. 身份认证和授权:一些应用层协议包括身份认证和授权机制,以确保通信双方的身份合法性,并限制对网络资源的访问权限。例如,在电子邮件服务中,用户需要通过用户名和密码进行身份验证才能发送和接收邮件。

总的来说,应用层为用户提供了各种网络服务和应用,并在用户和网络之间建立了桥梁,使得用户能够方便地访问和利用网络资源。

4.1 应用层协议

应用层协议规定了通信双方在数据交换过程中所采用的语法、语义和规则。常见的应用层协议包括HTTP、FTP、SMTP、POP3、IMAP、DNS等。

4.1.1 DNS (Domain Name System,域名系统)

DNS(Domain Name System,域名系统)位于TCP/IP模型中的应用层,负责将域名(如example.com)转换为相应的IP地址(如192.0.2.1)。

虽然DNS提供了一种机制来解析域名和IP地址之间的映射关系,但它更加适合归类为应用层,而不是传输层或网络层。这是因为DNS协议是基于UDP或TCP协议的。UDP和TCP协议都是传输层的一部分,它们负责在网络中传输数据,而DNS协议则是在这些传输层协议之上实现的。

换句话说,DNS协议利用了UDP或TCP协议来在网络中传输数据,但DNS本身更关注的是提供域名解析服务,而不是直接参与数据的传输。因此,DNS更适合被归类为应用层,因为它主要为特定应用程序(如Web浏览器、电子邮件客户端等)提供服务,而不是直接在网络中传输数据。

DNS的主要功能包括:

  1. 域名解析:DNS负责将用户提供的域名转换为对应的IP地址。当用户在浏览器中输入一个域名时,浏览器会向DNS服务器发送查询请求,以获取该域名对应的IP地址,从而建立连接并访问相应的网站或服务器。

  2. 分布式数据库:DNS采用分布式数据库的方式来存储域名和IP地址之间的映射关系,这使得DNS系统具有高可靠性和可扩展性。DNS数据库分布在全球各地的DNS服务器上,并通过层级结构进行管理和查询。

  3. 域名解析缓存:为了提高解析效率和减轻DNS服务器的负载,DNS客户端和服务器通常会缓存最近解析的域名和IP地址映射关系。这样,当再次查询相同域名时,可以直接从缓存中获取结果,而无需再次向DNS服务器发送查询请求。

总的来说,DNS作为域名解析系统,提供了一种方便的机制来管理和解析域名与IP地址之间的映射关系,从而帮助用户访问互联网上的各种网络资源。由于其功能和特性,DNS通常被归类为应用层。

4.1.2 HTTP(Hypertext Transfer Protocol,超文本传输协议)

HTTP(Hypertext Transfer Protocol,超文本传输协议)用于在客户端和服务器之间传输超文本数据,如HTML页面、图片、视频等。

  • HTTP是一种无状态的协议,即每个请求与响应之间都是独立的,服务器不会保存客户端的状态信息。
  • HTTP使用TCP协议作为其传输层协议,默认端口是80。
  • HTTP的通信过程是客户端向服务器发送请求,服务器接收并处理请求后返回响应给客户端。
  • HTTP的请求方法包括GET、POST、PUT、DELETE等,其中GET用于获取资源,POST用于提交数据等。
  • HTTP的请求和响应消息格式是纯文本,由请求行、请求头、空行和消息体组成。

4.1.3 HTTPS(Hypertext Transfer Protocol Secure,安全超文本传输协议)

HTTPS(Hypertext Transfer Protocol Secure,安全超文本传输协议),用于在客户端和服务器之间传输超文本数据,如HTML页面、图片、视频等。

  • HTTPS是HTTP的安全版本,它通过在HTTP和TCP之间添加SSL/TLS协议层来提供加密通信和身份验证。
  • HTTPS使用了公钥加密算法和数字证书,通过在通信过程中对数据进行加密和验证来保护数据的安全性和完整性。
  • HTTPS的默认端口是443。
  • HTTPS在性能上稍逊于HTTP,因为加密和解密过程会增加额外的计算开销和网络延迟。
  • HTTPS协议可以防止中间人攻击(Man-in-the-middle attack)和窃听攻击,保护了用户的隐私和数据安全。

总的来说,HTTP和HTTPS都是应用层协议,用于在客户端和服务器之间传输超文本数据,但HTTPS在安全性方面更加强大,适用于对数据安全性要求较高的场景,如网上银行、电子商务等。

4.1.4 FTP(File Transfer Protocol,文件传输协议)

FTP(File Transfer Protocol,文件传输协议)是一种用于在计算机网络中传输文件的标准网络协议。它允许用户在网络上共享文件,并提供了一种可靠的、可扩展的方法来上传和下载文件。

以下是FTP协议的主要特点和工作原理:

  1. 客户端-服务器模型

    • FTP采用了客户端-服务器模型。客户端是请求文件传输的用户端,服务器是存放文件的主机端。
    • 客户端通过FTP客户端软件(如FileZilla、WinSCP等)连接到FTP服务器,并发送FTP命令来请求文件的传输。
  2. 传输模式

    • FTP支持两种传输模式:ASCII模式和二进制模式(也称为二进制模式)。
    • ASCII模式适用于文本文件的传输,它会将文本文件中的行尾字符进行转换,以适应不同操作系统的格式。
    • 二进制模式适用于非文本文件(如图像、音频、视频等)的传输,它直接将文件的二进制数据传输到目标系统。
  3. 连接方式

    • FTP可以使用两种不同的连接方式:主动模式和被动模式。
    • 主动模式下,客户端在随机端口上向服务器的标准端口(通常是21)发送连接请求,然后服务器通过一个随机端口向客户端回送数据。
    • 被动模式下,客户端在随机端口上向服务器的标准端口(通常是21)发送连接请求,然后服务器也在一个随机端口上回送数据,客户端再连接到该端口上获取数据。
  4. 安全性

    • FTP协议本身不提供数据加密,所有的数据传输都是明文的,包括用户的登录信息和文件内容。
    • 为了增强安全性,可以使用FTPS(FTP Secure)或SFTP(SSH File Transfer Protocol)等安全的FTP协议替代原始的FTP协议。FTPS添加了SSL/TLS加密层,而SFTP使用SSH协议进行安全传输。

总的来说,FTP协议是一种常用的文件传输协议,它提供了可靠的文件传输服务,但在安全性方面存在一些缺陷,可以通过使用加密和身份验证等措施来加强安全性。

4.1.5 POP3(Post Office Protocol version 3,邮局协议第3版)

POP3(Post Office Protocol version 3,邮局协议第3版)是一种用于电子邮件服务的协议,它是最常用的接收邮件协议之一。POP3允许用户通过电子邮件客户端软件(如Outlook、Thunderbird等)从邮件服务器上下载邮件到本地计算机上。

以下是POP3协议的主要特点和工作原理:

  1. 客户端-服务器模型

    • POP3采用了客户端-服务器模型。邮件客户端通过POP3协议连接到邮件服务器,并发送命令来管理和获取邮件。
  2. 邮件下载

    • 用户使用邮件客户端软件通过POP3协议连接到邮件服务器上的收件箱(Inbox),然后可以使用命令来获取邮件。
    • POP3协议通常会将服务器上的邮件下载到用户的本地计算机上,并从服务器上删除已下载的邮件,但也可以选择不删除邮件而只是将其标记为已读。
  3. 邮件删除

    • 默认情况下,POP3会从服务器上删除已下载的邮件,因此邮件只存在于本地计算机上。
    • 可以通过设置邮件客户端来保留邮件的备份副本或者延迟删除邮件,以便在多个设备上访问邮件。
  4. 连接和认证

    • 客户端通过TCP连接到邮件服务器的标准端口(通常是110),然后发送用户凭据进行身份验证。
    • 一旦认证成功,客户端可以使用一系列命令来管理邮箱,如获取邮件、删除邮件、获取邮件数量等。
  5. 安全性

    • POP3协议本身是不加密的,所有的通信都是明文的,包括用户的登录信息和邮件内容。
    • 为了增强安全性,可以使用POP3S(POP3 Secure)协议,它在POP3协议上添加了SSL/TLS加密层,保护了用户的隐私和数据安全。

总的来说,POP3协议是一种用于接收邮件的协议,它允许用户通过电子邮件客户端软件从邮件服务器上下载邮件到本地计算机上,并提供了简单的邮件管理功能。

五、传输层

传输层协议是计算机网络体系结构中的一个关键组成部分,负责在网络中的不同节点之间提供可靠的数据传输服务。传输层协议主要有两个经典的协议:TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)。

以下是对TCP和UDP的简要解释以及它们的主要特点:

  1. TCP(传输控制协议)

    • TCP是一种面向连接的、可靠的传输层协议,它确保数据的可靠传输,以及数据的顺序传输。
    • TCP通过三次握手建立连接,确保数据传输的可靠性。在数据传输过程中,如果数据丢失或损坏,TCP会重新传输数据,直到接收方确认正确接收。
    • TCP提供流量控制和拥塞控制机制,以避免网络拥塞和数据丢失。
    • TCP适用于需要高可靠性和顺序传输的应用,如网页浏览、文件传输、电子邮件等。
  2. UDP(用户数据报协议)

    • UDP是一种无连接的、不可靠的传输层协议,它不保证数据的可靠传输和顺序传输。
    • UDP通过数据报的方式发送数据,不需要建立连接,因此传输效率较高。
    • UDP不提供流量控制和拥塞控制机制,因此在网络拥塞或丢包情况下可能会丢失数据。
    • UDP适用于实时应用,如视频流、音频流、在线游戏等,对传输延迟和带宽要求较高的场景。

除了TCP和UDP之外,还有一些其他的传输层协议,如SCTP(Stream Control Transmission Protocol,流控制传输协议)、DCCP(Datagram Congestion Control Protocol,数据报拥塞控制协议)等,它们提供了不同的特性和应用场景,用于满足不同类型的通信需求。传输层协议在计算机网络中扮演着至关重要的角色,它们为上层应用提供了可靠的数据传输服务,支撑着互联网的正常运行。

六、 网络层

网络层是计算机网络体系结构中的一个重要组成部分,位于数据链路层和传输层之间,负责实现主机之间的数据传输和路由选择。它主要解决了数据如何在网络中传输的问题,并提供了一种在不同网络之间传输数据的机制。

以下是网络层的主要功能和特点:

  1. 数据传输服务:网络层负责将数据从源主机传输到目的主机,它通过使用一系列网络协议和算法来实现数据的可靠传输。

  2. 路径选择和转发:网络层通过路由选择算法来确定数据包的传输路径,选择最佳的路径是根据不同的标准,例如最短路径、最小拥塞等。

  3. 地址分配和转换:网络层使用 IP 地址来唯一标识网络中的每个设备,它负责为每个设备分配唯一的 IP 地址,并且在数据包传输过程中负责将逻辑地址转换为物理地址。

  4. 分段和重组:在传输大数据时,网络层将数据分段成较小的数据包进行传输,并在目的主机上重组这些数据包,以提高传输效率和可靠性。

  5. 流量控制和拥塞控制:网络层通过流量控制和拥塞控制算法来管理网络中的数据流量,以确保网络的稳定运行和高效利用。

网络层的主要协议是 IP 协议(Internet Protocol),它是互联网中最常用的网络层协议,负责在全球范围内传输数据。除了 IP 协议之外,还有一些其他的网络层协议,例如 ICMP(Internet Control Message Protocol)、ARP(Address Resolution Protocol)等,它们在网络中起着不同的作用,共同构成了网络层的功能和特点。

6.1 IP(Internet Protocol)协议

IP(Internet Protocol)协议是网络层中最重要的协议之一,它是互联网中数据通信的基础。IP 协议定义了在网络中传输数据的格式、规则和流程,它为每个设备分配一个唯一的 IP 地址,并负责将数据包从源主机传输到目的主机。

下面详细介绍 IP 协议的主要特点和功能:

  1. 面向无连接:IP 协议是一种无连接的协议,每个数据包都是独立的,不需要在发送之前建立连接。这意味着每个数据包都必须携带完整的目的地地址信息,路由器根据目的地地址来转发数据包。

  2. 分组交换:IP 协议使用分组交换的方式传输数据。数据被分割成称为数据包(或者 IP 数据报)的小块,并通过网络中的路由器逐跳传输。这种方式相比于电路交换和消息交换更加高效,能够更好地利用网络资源。

  3. 无状态:IP 协议是无状态的,每个数据包都是独立处理的,路由器不会保留任何关于前一数据包的信息。这种设计简化了路由器的设计和实现,并且提高了网络的可扩展性。

  4. 提供最佳传输路径:IP 协议通过路由选择算法来确定数据包的传输路径,选择最佳路径是根据不同的标准,例如最短路径、最小拥塞等。这样可以确保数据包能够以最快的速度到达目的地。

  5. IP 地址:IP 协议使用 IP 地址来唯一标识网络中的每个设备。IPv4 地址是一个 32 位的二进制数,通常用点分十进制表示,例如 192.168.1.1。IPv6 地址则是一个 128 位的二进制数,通常用冒号分隔的十六进制表示,例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334。IP 地址分为网络部分和主机部分,网络部分用于识别网络,主机部分用于识别主机。

  6. 错误检测:IP 协议在数据包头部添加了一些用于错误检测和纠正的字段,例如校验和字段,用于检测数据包在传输过程中是否出现了错误。

  7. 片段和重组:当数据包太大无法一次传输时,IP 协议会将数据包分割成较小的片段进行传输,并在目的主机上重组这些片段。这样可以提高数据传输的效率和可靠性。

IP 协议是互联网中最基础的协议之一,它为各种应用层协议提供了底层的数据传输服务,是构建互联网的重要基石

七、数据链路层

数据链路层是计算机网络体系结构中的第二层,位于物理层之上、网络层之下,主要负责在直接相连的两个节点之间传输数据。它的功能包括数据的帧封装、物理地址的寻址、数据的传输和错误检测等。

下面详细介绍数据链路层的主要特点和功能:

  1. 数据帧封装:数据链路层将网络层传递下来的数据封装成数据帧(Frame),添加帧头和帧尾等控制信息。帧头包含了目标地址和源地址等信息,帧尾通常包含了错误检测和纠正的校验码。

  2. 物理地址寻址:数据链路层使用物理地址(MAC 地址)来唯一标识网络中的每个设备。MAC 地址是一个 48 位的二进制数,通常用 12 个十六进制数字表示,例如 00:1A:2B:3C:4D:5E。在数据链路层中,通常通过 MAC 地址来确定数据帧的目标设备,并将数据帧发送到目标设备的物理地址。

  3. 数据传输:数据链路层负责将数据帧从一个节点传输到另一个节点。它通过物理层提供的传输介质(例如以太网、Wi-Fi 等)来实现数据的物理传输。

  4. 错误检测:数据链路层通过在数据帧中添加校验码等字段来检测数据传输过程中是否发生了错误。常用的校验方法包括 CRC(Cyclic Redundancy Check)等。

  5. 流量控制:数据链路层通过流量控制来管理数据的传输速率,以防止发送方发送数据速度过快而导致接收方无法处理。常见的流量控制方法包括停止-等待协议、滑动窗口协议等。

  6. 访问控制:数据链路层负责控制多个设备共享同一物理传输介质的访问。在共享介质的网络中,通常会使用一些访问控制协议(如 CSMA/CD、CSMA/CA 等)来协调各个设备的传输行为,以避免冲突和碰撞。

常见的数据链路层协议包括以太网(Ethernet)、无线局域网(Wi-Fi)、PPP(Point-to-Point Protocol)等。这些协议通常针对不同的网络环境和需求设计,但它们都遵循了数据链路层的基本功能和特点,为网络通信提供了可靠的基础支持。

八、物理层

物理层是计算机网络体系结构中的最底层,负责传输原始比特流(bits)并管理物理连接的层级。物理层的主要任务是实现数据在传输介质上的传输,以及确保设备之间的物理连接能够正常进行。

以下是物理层的主要特点和功能:

  1. 传输介质

    • 物理层管理传输介质,包括双绞线、光纤、无线电波等不同类型的物理媒介。它定义了在这些介质上传输数据比特流的方式和规范。
  2. 数据编码

    • 物理层负责将数字数据转换为适合于传输介质的模拟信号或数字信号。这涉及到数据的编码、调制和解调过程,以确保数据能够在传输介质上传输并正确解释。
  3. 物理连接

    • 物理层管理设备之间的物理连接,包括连接器、电缆、接口等。它定义了连接的标准和规范,以确保设备之间能够正确连接并进行通信。
  4. 数据传输速率

    • 物理层定义了数据传输的速率,通常以比特率(bits per second,bps)来衡量。传输速率取决于传输介质的特性和设备的能力。
  5. 信道复用

    • 物理层负责信道的复用,即多个设备共享同一传输介质的过程。常见的信道复用技术包括时分复用(Time Division Multiplexing,TDM)和频分复用(Frequency Division Multiplexing,FDM)等。
  6. 物理拓扑

    • 物理层定义了网络的物理拓扑结构,即设备之间的物理连接方式。常见的物理拓扑包括星型、总线型、环型、树型等。

物理层的工作直接影响着整个计算机网络的性能和可靠性。它提供了数据传输的基础,为上层协议(如数据链路层、网络层、传输层和应用层)提供了可靠的数据传输服务。

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

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

相关文章

放弃powershell? 启动 sqlps!免杀| 红队攻防

0x00 前言 sql server 默认安装后,会发现有一个 sqlps.exe: 此文件本身自带微软签名: sqlps的功能,竟然是!启动 powershell??? 而且由于此文件无依赖,因此可以单独取出在…

刷题之Leetcode206题(超级详细)

206.反转链表 力扣题目链接(opens new window)https://leetcode.cn/problems/reverse-linked-list/ 题意:反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路 如果再定义一个新的链表&#xff0…

18 进程替换

目录 1.什么是进程替换 2.替换原理 3.替换函数 4.函数解释 5.具体应用 6.makefile构建多个文件 7.运行自己程序 8.运行其他语言程序 9.简易shell 什么是进程替换 fork之后的父子程序共享代码,如果子进程想执行一个全新的程序。就用进程替换来完成这个功能&#x…

python3高级特性

1. 装饰器 装饰器是 Python 的一种高阶函数,它可以在不修改函数内部代码的情况下,给函数增加额外的功能。 案例:记录函数执行时间的装饰器 import time def timing_decorator(func): def wrapper(*args, **kwargs): start_time time.t…

Spring高手之路17——动态代理的艺术与实践

文章目录 1. 背景2. JDK动态代理2.1 定义和演示2.2 不同方法分别代理2.3 熔断限流和日志监控 3. CGLIB动态代理3.1 定义和演示3.2 不同方法分别代理(对比JDK动态代理写法)3.3 熔断限流和日志监控(对比JDK动态代理写法) 4. 动态代理…

SpringBoot多模块项目整合Shiro报错No bean of type ‘org.apache.shiro.realm.Realm‘ found.

环境 依赖版本 spring-boot-dependencies 2.7.6 shiro-spring-boot 1.13.0 问题 项目启动报错 *************************** APPLICATION FAILED TO START ***************************Description:No bean of type org.apache.shiro.realm.Realm found.Action:Please …

007Node.js安装自启动工具supervisor运行js文件

在vscode中,某些运行中的程序修改xx.js文件后,通过CtrlC终止再重新运行。supervisor是自启动工具,会不停的查看你的文件,一旦发现有修改,就立马重新载入运行。 我们可以通过安装supervisor代替node命令运行xx.js。终端…

卷积神经网络原来是这样实现图像识别的

积神经网络原来是这样实现图像识别的 图像识别是非常有趣和具有挑战性的研究领域。本文阐述了卷积神经网络用于图像识别的概念、应用和技术。 什么是图像识别,为什么要使用它? 在机器视觉领域,图像识别是指软件识别人物、场景、物体、动作和图…

单例模式以及常见的两种实现模式

单例模式是校招中最常考的设计模式之一. 设计模式其实就是类似于“规章制度”,按照这个套路来进行操作。 单例模式能保证某个类在程序中只存在唯一 一份实例。而不会创建出多个实例,如果创建出了多个实例,就会编译报错。而不会创建出多个实…

数据库SQL语言实战(二)

目录 检索查询 题目一 题目二 题目三 题目四 题目五 题目六 题目七 题目八 题目九(本篇最难的题目) 分析 实现(两种方式) 模板 总结 检索查询 按照要求查找数据库中的数据 题目一 找出没有选修任何课程的学…

【算法刷题 | 二叉树 06】4.10( 路径总和、路径总和 || )

文章目录 13.路径总和13.1问题13.2解法一:递归13.2.1递归思路(1)确定递归函数参数以及返回值(2)确定终止条件(3)确定递归逻辑 13.2.2代码实现 14.路径总和 ||14.1问题14.2解法一:递归…

【设计模式】聊聊观察者设计模式原理及应用

原理 观察者模式属于行为模式,行为模式主要解决类和对象之间交互问题。 含义:在对象之间定义一个一对多的依赖,当一个对象状态改变时,所有依赖的对象会自动通知。 被依赖的对象被观察者(Observable) ,依赖的对象观察…

2024年广东省网络系统管理样题第3套网络部署部分

2024年广东省网络系统管理样题第3套网络部署部分 模块A:网络构建 极安云科专注职业教育技能培训4年,包含信息安全管理与评估、网络系统管理、网络搭建等多个赛项及各大CTF模块培训学习服务。本团队基于赛项知识点,提供完整全面的系统性理论教…

欧拉回路算法

1 基本概念 1.1 欧拉路径和欧拉回路 欧拉路径:欧拉路是指从图中任意一个点开始到图中任意一个点结束的路径,并且图中每条边通过的且只通过一次。 欧拉回路:欧拉回路是指起点和终点相同的欧拉路。 注意:如果欧拉回路,那么一定存在…

基于51单片机的无线病床呼叫系统设计—LCD1602显示

基于51单片机的无线病床呼叫系统 (仿真+程序+原理图+设计报告) 功能介绍 具体功能: 1.病人按下按键,LCD1602显示对应的床位号; 2.多人同时呼叫,显示屏同时显示&#xf…

5、JVM-G1详解

G1收集器 -XX:UseG1GC G1 (Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器. 以极高概率满足GC停顿时间要求的同时,还具备高吞吐量性能特征. G1将Java堆划分为多个大小相等的独立区域(Region),JVM目标…

001vscode为什么设置不了中文?

VSCode中文插件安装 在VSCode中设置中文的首要步骤是安装“Chinese (Simplified) Language Pack for Visual Studio Code”扩展插件。这一过程十分简单,只需打开VSCode,进入扩展市场,搜索“ Chinese (Simplified) Language Pack ”然后点击…

C语言高质量编程之assert()和const

目录 编程中常见的错误 assert() const 编程中常见的错误 在编程中我们通常会遇到三种错误形式,分别是:编译型错误,链接型错误,运行时错误。 编译型错误: 在编译阶段发生的错误,绝大多数情况是由语法错误…

【Golang学习笔记】从零开始搭建一个Web框架(二)

文章目录 模块化路由前缀树路由 前情提示: 【Golang学习笔记】从零开始搭建一个Web框架(一)-CSDN博客 模块化路由 路由在kilon.go文件中导致路由和引擎交织在一起,如果要实现路由功能的拓展增强,那将会非常麻烦&…

第二期书生浦语大模型训练营第三次作业

任务一:在茴香豆 Web 版中创建自己领域的知识问答助手 构建个人回答助手 进入web页面,传输属于自己的文件,此处进行输入大量投资领域资料,构建个人投资者问答助手 回答示例 茴香豆缺陷 此处会发现茴香豆仍然存在一些缺点&#…