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

Linux 计算机网络基础概念

目录

0.前言

1.计算机网络背景

1.1 独立模式

1.2 网络互联

1.3 局域网(Local Area Network,LAN)

1.4 广域网(Wide Area Network,WAN)

2.协议

2.1什么是协议

2.2协议分层和软件分层

2.3 OSI七层网络模型

2.3.1 OSI七层模型的分层结构

2.3.2每一层的职责与特点

2.3.3 OSI模型的优势

2.4 TCP/IP协议五层/四层模型

2.4.1五层模型结构

2.4.2四层模型结构

2.4.3各层功能详解

2.4.4 TCP/IP模型的特点与优势

2.5 TCP/IP协议与操作系统的关系

2.5.1操作系统中的TCP/IP协议栈

2.5.2 TCP/IP协议栈的实现与操作系统功能

3.网络传输基本流程

3.1局域网通信原理(以“以太网”为例)

3.1.1MAC地址

3.1.2数据包封装和分用

3.2跨网络传输

3.2.1 IP地址

3.2.2 IP地址和MAC地址的区别

4.小结


(图像由AI生成) 

0.前言

在Linux专栏的前几篇博客中,我们讨论了Linux系统的基础知识,如文件系统、权限管理和进程控制等内容。本篇将聚焦于Linux环境下的计算机网络基础知识。网络是现代计算不可或缺的一部分,深入理解网络原理与协议有助于更好地掌握Linux网络工具与服务。

1.计算机网络背景

计算机网络的发展经历了从单机独立运行到全球互联的漫长过程,每个阶段都体现了技术进步和需求驱动。以下是其主要发展阶段的介绍:

1.1 独立模式

在计算机刚出现的早期,计算机以单机模式运行,所有的计算任务和数据处理都在一台机器上完成。这种模式下,数据传输主要依靠物理介质(如磁带、软盘)在设备之间进行,效率低且不方便。

特点:

  • 无需网络连接。
  • 仅能进行本地运算和存储。
  • 数据交换需要依赖外部存储介质。

1.2 网络互联

随着计算机数量的增加,用户对设备之间数据共享和通信的需求变得强烈。点对点连接成为可能,通过简单的连接线缆让两台计算机直接进行数据通信,这是网络互联的雏形。

特点:

  • 实现了点对点的简单数据传输。
  • 通信范围受限,仅适用于少量计算机。

1.3 局域网(Local Area Network,LAN)

局域网的出现是计算机网络发展的里程碑。通过交换机、集线器等网络设备,局域网可以将多个设备连接在同一网络中,实现资源共享和高效通信。局域网通常覆盖有限的地理范围,如一个办公室或校园。

特点:

  • 通信范围通常在一个建筑或校园内。
  • 数据传输速度快(以太网早期速度为10 Mbps,现在可达Gbps)。
  • 支持多台设备的高效连接。

1.4 广域网(Wide Area Network,WAN)

当局域网的范围进一步扩展时,通过路由器连接多个局域网形成的广域网成为可能。广域网覆盖范围可以非常广泛,从一个城市到整个国家,甚至全球。互联网就是最大的广域网。

特点:

  • 通信范围广泛,可覆盖全球。
  • 使用路由器和多种协议(如IP)实现不同网络之间的互联。
  • 支持跨地域的大规模通信。

总而言之,计算机网络的背景发展从独立模式网络互联,再到局域网广域网,体现了技术和需求的不断演进。如今,网络已经从最初的简单连接发展为复杂的全球互联网,成为现代社会的基础设施之一。这为Linux等操作系统在网络服务领域的应用奠定了重要基础。

2.协议

网络协议是计算机网络正常运行的核心,其存在确保了设备之间的数据传输能够准确无误地完成。在本节中,我们将介绍协议的基本概念及其分层设计理念。

2.1什么是协议

网络协议(Protocol)是指通信双方为完成数据交换所共同遵守的一套规则和约定。这些规则包括数据的格式、传输方式、错误处理以及断开连接等内容。

简单来说,协议就像人与人之间的语言规则。例如,当两个人通过相同的语言交流时,信息才能准确传递;同样,计算机网络中的协议确保了不同设备能够理解和处理数据。

网络协议的核心作用包括:

  • 标准化:使不同厂商的设备能够互联互通。
  • 规范性:定义了数据在传输过程中的行为。
  • 可靠性:通过校验和重传机制,确保数据正确传输。

举例:

  • HTTP协议:定义了网页浏览器与服务器之间的通信规则。
  • TCP协议:确保数据在传输中无错误且按顺序到达。

2.2协议分层和软件分层

网络通信是一个复杂的过程,为了降低设计难度并提高效率,网络协议通常采用分层设计的理念。分层设计将复杂的通信任务划分为若干独立的功能模块,每个模块专注于特定任务。

协议分层的特点:

  1. 模块化设计
    每一层完成特定功能,互不干扰。例如,传输层关注数据的可靠传输,而物理层则负责信号的传递。

  2. 接口标准化
    各层之间通过接口传递数据和信息,无需了解其他层的具体实现。例如,应用层无需关注底层硬件如何工作。

  3. 便于开发与维护
    协议的分层设计使得开发者可以专注于某一层的优化,而不影响其他层。

协议分层 vs. 软件分层
协议分层与操作系统的软件分层理念相似。例如,在Linux系统中:

  • 操作系统的分层包括内核层、硬件抽象层和用户层。
  • 协议的分层则对应了从物理传输到应用服务的不同阶段。

二者的共同点在于通过分层实现复杂任务的简化和模块化。例如:

  • 协议分层:物理层负责电信号传输,传输层确保数据可靠到达。
  • 软件分层:驱动程序负责硬件控制,用户应用只需调用接口。

通过分层设计,网络协议不仅实现了多厂商设备的互通,还为Linux等操作系统提供了结构化的网络通信支持。

2.3 OSI七层网络模型

OSI(Open Systems Interconnection)模型是国际标准化组织(ISO)提出的网络通信框架,是一种理论上的参考模型,用于定义网络通信的结构和分层。

OSI模型将网络通信划分为七个层次,从硬件传输到应用服务,层与层之间通过标准接口交互。其核心目的是规范和简化不同设备、协议之间的通信,促进互联互通。

2.3.1 OSI七层模型的分层结构

OSI模型的七层自下而上分别为:物理层数据链路层网络层传输层会话层表示层应用层

层次主要功能示例协议/设备
应用层面向用户,提供网络服务接口,如文件传输、邮件、远程登录等。HTTP、FTP、SMTP
表示层数据格式的转换、加密、解密和压缩,确保不同设备之间的数据表示一致。JPEG、GIF、TLS
会话层管理会话建立、维持和断开,如数据同步和传输控制。NetBIOS、RPC
传输层提供端到端的可靠数据传输和错误检测,确保数据完整到达目标端。TCP、UDP
网络层负责路由和逻辑地址(IP)的分配,确保数据能跨网络到达目标设备。IP、ICMP、IGRP
数据链路层负责数据帧的组装、传输与错误检测,在局域网中完成数据的正确传输。Ethernet、PPP、Wi-Fi
物理层负责比特流的传输,定义物理介质(如光纤、电缆)和信号规范(如电压、频率)。光纤、网线、无线信号

2.3.2每一层的职责与特点

  1. 物理层

    • 传输比特流,通过信号在物理介质上传递数据。
    • 定义设备接口、信号电压、传输速率等硬件标准。
  2. 数据链路层

    • 将数据封装成帧,进行物理地址(MAC地址)识别。
    • 提供数据链路的错误检测和恢复功能。
  3. 网络层

    • 负责逻辑寻址(如IP地址)和路由选择。
    • 支持数据包在多个网络之间的转发。
  4. 传输层

    • 提供端到端的通信服务,确保数据完整性和可靠性。
    • 实现流量控制和错误校验。
  5. 会话层

    • 管理应用程序之间的会话,控制会话的建立、维护和终止。
    • 支持数据同步与断点续传。
  6. 表示层

    • 负责数据的语法和语义表示转换,解决设备间的兼容性问题。
    • 提供加密与解密、数据压缩功能。
  7. 应用层

    • 面向用户提供网络服务,如浏览网页、发送邮件、文件下载等。
    • 是用户与网络交互的接口。

2.3.3 OSI模型的优势

  1. 标准化
    OSI模型为网络设备的设计和通信协议的开发提供了统一的标准。

  2. 模块化
    每层功能独立,便于开发和维护。例如,物理层的改进不会影响传输层的功能。

  3. 互通性
    不同厂商的设备只需遵循OSI标准即可互联互通。

2.4 TCP/IP协议五层/四层模型

TCP/IP模型是现代计算机网络中最广泛使用的协议参考模型,其设计基于OSI模型,但更加实际和简化。TCP/IP模型定义了网络中通信协议的分层方式,帮助实现不同设备之间的互联互通。

2.4.1五层模型结构

TCP/IP协议模型在实际中通常被描述为五层模型,其从上到下分别为:应用层传输层网络层数据链路层物理层

层次主要功能示例协议/设备
应用层面向用户提供网络服务,如文件传输、邮件、远程登录等。HTTP、FTP、SMTP
传输层提供端到端的可靠数据传输和错误检测,确保数据完整到达目标端。TCP、UDP
网络层负责路由和逻辑地址(IP)的分配,确保数据能跨网络到达目标设备。IP、ICMP、ARP
数据链路层管理数据帧的传输,包括错误检测和纠正,确保局域网内数据的正确传输。Ethernet、PPP、Wi-Fi
物理层定义物理介质、信号传输方式和接口规范,将比特流通过网络介质传输。网线、光纤、无线信号

2.4.2四层模型结构

在某些场景下,TCP/IP模型也被描述为四层模型,主要合并了物理层与数据链路层,称为网络接口层

层次主要功能示例协议/设备
应用层提供用户直接使用的网络服务接口。HTTP、FTP、DNS
传输层提供端到端通信的可靠性和流量控制。TCP、UDP
网络层负责数据包的寻址和路由。IP、ICMP
网络接口层包含数据链路层和物理层的功能,处理数据帧的传输与硬件接口。Ethernet、Wi-Fi

2.4.3各层功能详解

  1. 应用层

    • 面向用户的最高层,提供文件传输、电子邮件、网页浏览等功能。
    • 典型协议包括:HTTP(网页浏览)、FTP(文件传输)、DNS(域名解析)。
  2. 传输层

    • 负责端到端的数据传输,提供可靠的传输保障(TCP)或无连接服务(UDP)。
    • TCP协议:确保数据按顺序到达且无丢失。
    • UDP协议:提供快速但不保证可靠性的传输。
  3. 网络层

    • 负责跨网络的数据传输,提供逻辑地址(IP地址)和路由选择功能。
    • 典型协议包括:IP(数据包传输)、ICMP(网络诊断)。
  4. 数据链路层(或网络接口层)

    • 负责局域网内数据帧的传输和物理地址(MAC地址)的管理。
    • 典型协议包括:以太网协议(Ethernet)。
  5. 物理层

    • 处理数据比特流的实际传输,包括电缆、光纤和无线信号的介质规范。
    • 定义接口标准和信号类型,如网线的RJ45接口。

2.4.4 TCP/IP模型的特点与优势

  1. 简化设计
    与OSI模型相比,TCP/IP模型更简洁,四层或五层的划分更适合实际应用。

  2. 广泛应用
    TCP/IP是互联网的核心协议,几乎所有网络设备和系统都支持。

  3. 实用性强
    TCP/IP模型基于现实需求设计,直接面向网络通信的具体问题,如IP寻址、端到端可靠传输。

2.5 TCP/IP协议与操作系统的关系

TCP/IP协议与操作系统的关系紧密,现代操作系统(如Linux、Windows、macOS)都内置了对TCP/IP协议栈的支持。操作系统通过实现协议栈,为应用程序提供网络通信的底层支持,使开发者无需关心具体的网络实现细节。

2.5.1操作系统中的TCP/IP协议栈

TCP/IP协议栈是操作系统中处理网络通信的核心部分,它实现了TCP/IP协议模型的各个层次功能:

  1. 用户空间与内核空间

    • 应用层(用户空间):提供诸如HTTP、FTP、DNS等协议支持,供用户直接调用。
    • 传输层及以下(内核空间):内核负责实现TCP/IP协议的传输层、网络层和数据链路层功能,如TCP的可靠传输、IP寻址和路由等。
  2. 网络接口
    操作系统通过网络接口(如Socket API)向应用程序暴露通信接口,使开发者可以调用这些接口实现网络通信。例如,在Linux中,开发者通过socket()函数创建套接字进行通信。

  3. 驱动程序支持
    数据链路层和物理层功能需要硬件设备(如网卡)的支持,操作系统通过网卡驱动程序控制这些硬件设备,完成比特流的实际传输。

2.5.2 TCP/IP协议栈的实现与操作系统功能

  • 数据封装与解封装
    操作系统根据TCP/IP协议对数据进行封装(从应用层到物理层)和解封装(从物理层到应用层),实现数据在网络中的发送与接收。

  • 多任务与网络通信
    操作系统支持多任务环境,可以同时为多个应用程序提供网络服务,利用TCP和UDP端口区分不同任务的数据。

  • 安全性与防护
    操作系统通过防火墙(如Linux的iptables)和加密协议(如TLS/SSL)保护网络通信的安全性。

Linux系统对TCP/IP协议的支持非常全面,其内核中集成了完整的协议栈,广泛应用于服务器、路由器和嵌入式设备中。Linux内核中的netfilter框架还支持网络包过滤和流量控制,使其成为网络管理的强大工具。

3.网络传输基本流程

计算机网络的传输过程可以看作是数据在协议栈中经过逐层处理,从发送方的应用层到达接收方的应用层。这个过程分为两种主要场景:局域网通信和跨网络通信。

3.1局域网通信原理(以“以太网”为例)

局域网(Local Area Network, LAN)是网络的基础单元,用于在一个受限范围内连接多个设备。以太网是局域网中最常用的通信技术,其核心是通过MAC地址标识设备并实现数据帧的传输。

以太网通信的基本原理包括以下几个步骤:

  1. 设备标识(MAC地址)
    每台设备都有唯一的MAC地址,用于区分局域网中的各个节点。

  2. 数据封装和分用
    数据在发送前需要被封装为以太网帧,包含发送方和接收方的MAC地址,接收方根据这些信息解析数据。

  3. 广播与单播

    • 广播:当发送方不知道接收方的MAC地址时,会发送广播帧,所有设备都会接收到,但只有目标设备响应。
    • 单播:一旦目标设备的MAC地址被确定,通信转为单播形式。

3.1.1MAC地址

MAC地址(Media Access Control Address)是局域网中唯一标识每台设备的硬件地址,嵌入在网卡中,由网卡制造商分配,长度为48位(6字节),通常表示为十六进制格式(如00:1A:2B:3C:4D:5E)。

MAC地址的特点:

  1. 唯一性:全球范围内唯一,确保每台设备都能被独立标识。
  2. 局域网作用:用于局域网内的数据帧传输,类似于快递的收件人地址。
  3. 静态性:通常不会随设备的网络环境变化而改变,但可以通过软件手段伪装或修改。

作用机制:

在以太网通信中,发送方通过MAC地址标识目标设备。如果发送方不知道目标设备的MAC地址,会使用ARP协议(地址解析协议)进行查询,将IP地址解析为对应的MAC地址。

3.1.2数据包封装和分用

数据在局域网中的传输以“数据帧”为单位,封装与分用是关键过程。

数据封装

发送方的应用程序生成的原始数据需要逐层封装,直至变为适合传输的以太网帧。以太网帧的结构包括:

  1. 帧前导码(Preamble):用于同步通信。
  2. 目标MAC地址:指明接收设备。
  3. 源MAC地址:指明发送设备。
  4. 类型字段:标明上层协议(如IPv4或IPv6)。
  5. 数据字段:实际传输的数据。
  6. 帧校验序列(FCS):用于检测传输错误。

完整的封装流程:

  1. 应用层数据 → 传输层(加TCP/UDP头部)
  2. 传输层数据 → 网络层(加IP头部)
  3. 网络层数据 → 数据链路层(加以太网头部,封装成帧)
  4. 数据链路层数据 → 物理层(转换为电信号/无线信号传输)。

(图片来自网络传输基本流程 数据包的封装分用_四层网络如何封包-CSDN博客,侵删) 

数据分用

接收方接收到以太网帧后,按相反顺序逐层解析数据:

  1. 物理层:将电信号还原为帧。
  2. 数据链路层:解析以太网帧,确认目标MAC地址与自身匹配。
  3. 网络层:提取IP包,解析目标IP地址。
  4. 传输层:提取TCP/UDP数据,确认端口号匹配。
  5. 应用层:最终交付给对应的应用程序。

封装与分用的关系

  • 封装:发送数据时,逐层增加协议头部,类似打包快递。
  • 分用:接收数据时,逐层解析协议头部,类似拆开快递。

3.2跨网络传输

局域网内的通信主要依赖于MAC地址,而当数据需要从一个网络传输到另一个网络时(例如跨越不同的子网或路由器),就需要依靠IP地址完成跨网络的寻址和数据传递。

跨网络传输的关键是路由机制:在数据传输过程中,每个网络设备(如路由器)根据目标IP地址选择数据包的下一跳,直到数据到达最终的目标设备。

3.2.1 IP地址

IP地址(Internet Protocol Address)是逻辑地址,用于在网络层标识网络中的设备。IP地址不同于MAC地址,它可以动态分配,并与网络位置相关。IP地址是实现跨网络通信的核心。

IP地址的格式

IP地址分为两种版本:

  1. IPv4:由32位二进制组成,通常表示为四段十进制格式,如192.168.1.1
  2. IPv6:由128位二进制组成,通常表示为八段十六进制格式,如2001:0db8:85a3:0000:0000:8a2e:0370:7334

IP地址的分类

  • 私有地址:用于局域网内部通信(如192.168.0.0/1610.0.0.0/8)。
  • 公有地址:用于互联网通信,由互联网服务提供商(ISP)分配。
  • 子网划分:通过子网掩码区分网络部分和主机部分,例如192.168.1.0/24表示子网的前24位用于网络标识。

IP地址的功能

  1. 唯一性:确保每个设备在网络层都有唯一的标识。
  2. 路由寻址:用于路由器决定数据包的转发路径。
  3. 动态分配:通过DHCP协议自动分配IP地址,简化网络管理。

IP地址的工作原理

  1. 数据发送前,设备会通过ARP协议解析目标IP地址对应的MAC地址。
  2. 如果目标设备不在同一局域网内,路由器会根据目标IP地址选择最佳路径,将数据包转发到下一跳设备。
  3. 数据包最终到达目标设备后,目标设备通过IP头部确认数据是为其而来。

3.2.2 IP地址和MAC地址的区别

IP地址和MAC地址在网络通信中有不同的作用和特性,二者的区别如下:

属性MAC地址IP地址
定义硬件地址,用于标识网络设备的物理接口(网卡)。逻辑地址,用于标识网络中的设备,随网络位置动态变化。
层级数据链路层(Layer 2)网络层(Layer 3)
作用范围局域网内部通信,设备通过MAC地址直接通信。跨网络通信,通过路由器转发数据包。
分配方式制造商在设备生产时分配,全球唯一(如00:1A:2B:3C:4D:5E)。动态分配(DHCP)或静态配置(如192.168.1.1)。
固定性通常固定于网卡,可以通过软件伪装修改。与网络位置相关,可随时变更。
格式48位,十六进制表示。IPv4(32位)或IPv6(128位),十进制/十六进制表示。
使用场景局域网内的设备寻址与通信。跨网络的设备寻址与路由。

协同工作

  • 在局域网通信中,设备通过MAC地址直接相互通信。
  • 在跨网络通信中,IP地址用于定位目标网络中的设备,MAC地址用于设备之间的实际数据传递。
  • ARP协议:当设备知道目标IP地址但不知道对应的MAC地址时,会使用ARP协议完成IP到MAC地址的解析。

4.小结

本篇博客围绕Linux计算机网络基础,从计算机网络的发展背景,到协议分层模型的基本概念,再到局域网和跨网络的通信原理进行了系统讲解。我们从MAC地址和IP地址的作用入手,分析了数据封装与分用的过程,阐明了局域网内通信和跨网络传输的关键机制。通过这些内容,不仅能理解网络通信的底层原理,还能为Linux系统的网络管理和开发奠定扎实的理论基础。

相关文章:

Linux 计算机网络基础概念

目录 0.前言 1.计算机网络背景 1.1 独立模式 1.2 网络互联 1.3 局域网(Local Area Network,LAN) 1.4 广域网(Wide Area Network,WAN) 2.协议 2.1什么是协议 2.2协议分层和软件分层 2.3 OSI七层网络模型 2.3…...

qt QGraphicsEllipseItem详解

1、概述 QGraphicsEllipseItem是Qt框架中QGraphicsItem的一个子类,它提供了一个可以添加到QGraphicsScene中的椭圆项。QGraphicsEllipseItem表示一个带有填充和轮廓的椭圆,也可以用于表示椭圆段(通过startAngle()和spanAngle()方法&#xff…...

Python websocket

router.websocket(/chat/{flow_id}) 接口代码,并了解其工作流程、涉及的组件以及如何基于此实现你的新 WebSocket 接口。以下内容将分为几个部分进行讲解: 接口整体概述代码逐行解析关键组件和依赖关系如何基于此实现新功能示例:创建一个新的…...

【MySQL-5】MySQL的内置函数

目录 1. 整体学习的思维导图 2. 日期函数 ​编辑 2.1 current_date() 2.2 current_time() 2.3 current_timestamp() 2.4 date(datetime) 2.5 now() 2.6 date_add() 2.7 date_sub() 2.8 datediff() 2.9 案例 2.9.1 创建一个出生日期登记簿 2.9.2 创建一个留言版 3…...

深度学习笔记之BERT(三)RoBERTa

深度学习笔记之RoBERTa 引言回顾:BERT的预训练策略RoBERTa训练过程分析静态掩码与动态掩码的比较模型输入模式与下一句预测使用大批量进行训练使用Byte-pair Encoding作为子词词元化算法更大的数据集和更多的训练步骤 RoBERTa配置 引言 本节将介绍一种基于 BERT \t…...

C++知识点总结(59):背包型动态规划

背包型动态规划 一、背包 dp1. 01 背包(限量)2. 完全背包(不限量)3. 口诀 二、例题1. 和是质数的子集数2. 黄金的太阳3. 负数子集和4. NASA的⻝物计划 一、背包 dp 1. 01 背包(限量) 假如有这几个物品&am…...

C++:反向迭代器的实现

反向迭代器的实现与 stack 、queue 相似&#xff0c;是通过适配器模式实现的。通过传入不同类型的迭代器来实现其反向迭代器。 正向迭代器中&#xff0c;begin() 指向第一个位置&#xff0c;end() 指向最后一个位置的下一个位置。 代码实现&#xff1a; template<class I…...

webGL入门教程_04vec3、vec4 和齐次坐标总结

vec3、vec4 和齐次坐标总结 1. vec3 和 vec4 1.1 什么是 vec3 和 vec4&#xff1f; vec3&#xff1a; GLSL 中的三维向量类型&#xff0c;包含 3 个浮点数&#xff1a;(x, y, z)。常用于表示三维坐标、RGB 颜色、法线、方向等。 vec4&#xff1a; GLSL 中的四维向量类型&…...

uniapp中父组件数组更新后与页面渲染数组不一致实战记录

简单描述一下业务场景方便理解: 商品设置功能,支持添加多组商品(点击添加按钮进行增加).可以对任意商品进行删除(点击减少按钮对选中的商品设置进行删除). 问题: 正常添加操作后,对已添加的任意商品删除后,控制台打印数组正常.但是与页面显示不一致.已上图为例,选中尾…...

优化 Conda 下载速度:详细的代理配置和网络管理策略

优化 Conda 下载速度&#xff1a;详细的代理配置和网络管理策略 为了彻底解决使用 Conda 下载 PyTorch 时遇到的速度问题&#xff0c;并确保下载过程稳定可靠&#xff0c;这需要一个详细、综合的技术方案。让我们更深入地分析问题原因&#xff0c;然后详尽地解释采取的解决策略…...

服务器遭受DDoS攻击后如何恢复运行?

当服务器遭受 DDoS&#xff08;分布式拒绝服务&#xff09;攻击 后&#xff0c;恢复运行需要快速采取应急措施来缓解攻击影响&#xff0c;并在恢复后加强防护以减少未来攻击的风险。以下是详细的分步指南&#xff1a; 一、应急处理步骤 1. 确认服务器是否正在遭受 DDoS 攻击 …...

MFC音视频播放器-支持电子放大等功能

前言 本播放器在VS2019下开发&#xff0c;使用ffmpegD3D实现视频播放渲染功能。同时本播放器支持录像功能、截图功能、音视频播放功能、码流信息显示、电子放大功能等。D3D的渲染同时支持surface和texture两种方式&#xff0c;电子放大功能是在D3D Texture方式下进行实现。以下…...

c语言编程1.17蓝桥杯历届试题-回文数字

题目描述 观察数字&#xff1a;12321&#xff0c;123321 都有一个共同的特征&#xff0c;无论从左到右读还是从右向左读&#xff0c;都是相同的。这样的数字叫做&#xff1a;回文数字。 本题要求你找到一些5位或6位的十进制数字。满足如下要求&#xff1a; 该数字的各个数位之…...

el-table 纵向 横向 多级表头

<el-table :data"tableData" class"diaTable":span-method"handleSpanMethod"border:header-cell-style"{background:#292929,color:#fff}"><!-- 纵向表头 --><el-table-column label"纵向表头" width"…...

uniapp开发微信小程序笔记8-uniapp使用vant框架

前言&#xff1a;其实用uni-app开发微信小程序的首选不应该是vant&#xff0c;因为vant没有专门给uni-app设置专栏&#xff0c;可以看到目前Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本&#xff0c;并由社区团队维护 React 版本和支付宝小程序版本。 但是vant的优…...

分布式项目使用Redis实现数据库对象自增主键ID

hello。大家好&#xff0c;我是灰小猿&#xff0c;一个超会写bug的程序猿&#xff01; 在分布式项目中&#xff0c;数据表的主键ID一般可能存在于UUID或自增ID这两种形式&#xff0c;UUID好理解而且实现起来也最容易&#xff0c;但是缺点就是数据表中的主键ID是32位的字符串&a…...

npm-运行项目报错:A complete log of this run can be found .......npm-cache_logs\

1.问题 没有找到对应的某种依赖&#xff0c;node_modules出现问题。 2.解决 (1)查看对应依赖是否引入或者是由于合并分支错误 引入js或依赖不存在。谨慎删除依赖包 (2)查找对应引入依赖进行安装最后解决方法-删除依赖包清除缓存 npm cache clean --force (2)重新向同事引入…...

SolarCube: 高分辨率太阳辐照预测基准数据集

太阳能作为清洁能源在减缓气候变化中的作用日益凸显&#xff0c;其稳定的供应对电网管理至关重要。然而&#xff0c;太阳辐照受云层和天气变化的影响波动较大&#xff0c;给光伏电力的管理带来挑战&#xff0c;尤其是在调度、储能和备用系统管理方面。因此&#xff0c;精确的太…...

华为小米苹果三星移动设备访问windows共享文件夹windows11

如果移动设备和windows电脑都在同一个局域网内&#xff0c;可以用移动设备访问windows11的共享文件夹 1、设置共享文件夹 2、添加everyone用户即可 3、查看ip地址 4、在华为手机上点击文件管理&#xff0c;里面有个网上邻居 5、正常情况下&#xff0c;华为手机会扫描到同一局域…...

网络安全三防指南:只防病毒不安全

5月17日&#xff0c;瑞星全球反病毒监测网截获一个恶性病毒&#xff0c;由于该病毒的破坏能力和当年著名的CIH病毒几乎完全一样&#xff0c;因此瑞星将该病毒命名为“新CIH”病毒。被“新CIH”感染的电脑&#xff0c;主板和硬盘数据将被破坏&#xff0c;致使电脑无法启动&#…...

论文概览 |《Urban Analytics and City Science》2023.05 Vol.50 Issue.4

本次给大家整理的是《Environment and Planning B: Urban Analytics and City Science》杂志2023年5月第50卷第4期的论文的题目和摘要&#xff0c;一共包括19篇SCI论文&#xff01; 论文1 Data analytics and sustainable urban development in global cities 全球城市的数据…...

【ROS2】ROS2 C++版本 与 Python版本比较

ROS 系列学习教程(总目录) ROS2 系列学习教程(总目录) 目录 一、功能包的构建方式二、功能包组织结构三、代码编写四、性能与效率五、兼容性六、应用场景 目前ROS开发主要使用 C 和 Python 语言&#xff0c;这里会分别实现并讲解。 相较于ROS1&#xff0c;ROS2的 C 和 Python …...

物联网射频识别和RFID开发(一):RFID基础—概念、应用

一、RFID的发展历史 二、RFID与物联网 &#xff08;一&#xff09;物联网与RFID的关系 物联网的基本思想是美国麻省理工学院在1999年提出的&#xff0c;其核心思想是为全球每个物品提供唯一的电子标识符。这种电子标识符就是现在经常提到的“电子产品编码(Electronic Product …...

JVM:即时编译器,C2 Compiler,堆外内存排查

1&#xff0c;即时编译器 1.1&#xff0c;基本概念 常见的编译型语言如C&#xff0c;通常会把代码直接编译成CPU所能理解的机器码来运行。而Java为了实现“一次编译&#xff0c;处处运行”的特性&#xff0c;把编译的过程分成两部分&#xff0c;首先它会先由javac编译成通用的…...

webpack5 的五大核心配置(二)

webpack主要构成部分&#xff1a; entry 入口output 出口loaders 转化器plugins 插件mode 模式devServer 开发服务器 webpack.config.js 配置文件基本格式 module.exports{//入口文件entry:{},//出口文件output:{},//module rules loadersmodule{};//插件plugins:[],//开发…...

【查询基础】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…...

git push使用

推送指定分支 将当前分支推送远程 git push origin HEAD:<branch-name> 这里的 HEAD 是一个特殊的指针&#xff0c;它指向当前分支的最新提交。这条命令会将当前分支的更改推送到远程的 master 分支。 示例 git push origin HEAD:main 当前分支是test&#xff0c;远…...

【iOS】多线程基础

【iOS】多线程基础 文章目录 【iOS】多线程基础前言进程与线程进程进程的状态进程的一个控制结构进程的上下文切换 线程为什么要用线程什么是线程线程和进程的关系线程的上下文切换 线程和进程的优缺点 小结 前言 笔者由于对于GCD不是很了解&#xff0c;导致了项目中网络请求哪…...

常用网站网址

目录 1.docker hub2.csdn 1.docker hub https://image.cgdcgd.cc/ 2.csdn https://www.csdn.net/ ​...

go语言切片

切片 切片是一种数据结构&#xff0c;这种数据结构便于使用和管理数据集合。切片是围绕动态数组的概念构建的&#xff0c;可以按需自动增长和缩小。切片的动态增长是通过内置函数 append 来实现的。这个函数可以快速且高效地增长切片。还可以通过对切片再次切片来缩小一个切片的…...

昆明网上房地产官网/百度惠生活怎么优化排名

0x01 起因及想法 起因:好久没更新博客了&#xff0c;我在乌云社区看到一篇代码审计的整体学习思想如下&#xff1a; 学习代码审计目标&#xff1a;能独立完成对一个CMS代码安全的监测 思路&#xff1a; A、通读全文代码&#xff0c;从功能函数代码开始阅读&#xff0c;例如incl…...

景观设计公司利润/谷歌优化是什么意思

ftp服务很重要&#xff0c;这里介绍ftp在linux上不连接mysql数据库的搭建方法&#xff0c;ftp也可以连接mysql&#xff0c;有时间再生成文档。先说明ftp的基本原理&#xff1a;FTP &#xfffd;File Transfer Protocol 文件传输协议。能够在网络上提供文件传输服务&#xff0c;…...

无锡企业做网站/接app推广

一、正常流程下的拦截器&#xff08;全部放行&#xff09; 1.springMVC中拦截器实现这个接口HandlerInterceptor 第一个拦截器 HandlerInterceptor1 public class HandlerInterceptor1 implements HandlerInterceptor {//进入 Handler方法之前执行//用于身份认证、身份授权//比…...

乌鲁木齐人才网/搜索引擎优化的技巧

计算机操作系统期末考试题目及答案(选择题)答案绝对正确广药师姐一、单项选择题(本大题共20小题&#xff0c;每小题2分&#xff0c;共40分)。1位示图方法可用于()A、盘空间的管理B盘的驱动调度C、文件目录的查找D页式虚拟存贮管理中的页面调度凡是有盘空间三个字就选2.下列关于…...

凡客建站登陆/网络运营与推广

1. Is_numeric类型转换缺陷 PHP提供了is_numeric函数,用来判断变量是否为数字。PHP弱类型语言的一个特性,当一个整型和一个其他类型行比较的时候,会先把其他类型intval数字化再比。 来看看代码: 访问之 首先对GET方式提交的参数id的值进行检验。id通过is_numeric函数来…...

画册设计1p一般多少钱/网站seo优化

数位DP 什么是数位DP 数位DP是DP的一种&#xff0c;顾名思义&#xff0c;按每一个数位来进行DP。 什么时候使用 题目的要求与一个数字相关&#xff0c;并且它能通过每一个数位来进行转移。 例题&#xff1a;求所有nnn位数中能被mmm整除的数的个数。 怎么使用 一般的DP是多…...