《网络协议》01. 基本概念


title: 《网络协议》01. 基本概念
date: 2022-08-30 09:50:52
updated: 2023-11-05 15:28:52
categories: 学习记录:网络协议
excerpt: 互联网、网络互连模型(OSI,TCP/IP)、计算机通信基础、MAC 地址、ARP & ICMP、IP & 子网掩码、CIDR 表示方法、子网、超网、路由、网络 & 互联网 & 因特网、ISP、网络分类、上网方式、公网 & 私网(NAT,端口映射)。
comments: false
tags:
top_image: /images/backimg/SunsetClimbing.png


网络协议

  • 1:互联网 & 协议
    • 1.1:跨平台原理
    • 1.2:客户端与服务器
  • 2:网络互连模型
  • 3:计算机通信基础
    • 3.1:网线直连
    • 3.2:同轴电缆
    • 3.3:集线器
    • 3.4:网桥
    • 3.5:交换机
    • 3.6:路由器
  • 4:MAC 地址
    • 4.1:MAC 地址格式
    • 4.2:MAC 地址操作
  • 5:ARP & ICMP
  • 6:IP 地址
    • 6.1:IP & 子网掩码
    • 6.2:IP 地址分类
      • 6.2.1:A 类地址
      • 6.2.2:B 类地址
      • 6.2.3:C 类地址
      • 6.2.4:D 类地址
      • 6.2.5:E 类地址
    • 6.3:CIDR 表示方法
  • 7:子网
    • 7.1:等长子网划分
      • 7.1.1:C 类子网划分
        • 7.1.1.1:等分成 2 个子网
        • 7.1.1.2:等分成 4 个子网
        • 7.1.1.3:等分成 8 个子网
      • 7.1.2:B 类子网划分
      • 7.1.3:A 类子网划分
    • 7.2:变长子网划分
  • 8:超网
    • 8.1:合并 4 个网段
    • 8.2:合并网段的规律
    • 8.3:判断一个网段是子网还是超网
  • 9:路由
    • 9.1:路由表示例一
    • 9.2:路由表示例二
  • 10:数据包的传输过程
    • 10.1:第一个包的丢失
  • 11:网络 & 互联网 & 因特网
  • 12:ISP
  • 13:网络分类
    • 13.1:局域网
    • 13.2:城域网
    • 13.3:广域网
  • 14:上网方式
    • 14.1:电话线入户
    • 14.2:光纤入户
    • 14.3:网线入户
    • 14.4:家用无线路由器的逻辑结构
    • 14.5:常见接口
  • 15:公网 & 私网
    • 15.1:公网 IP
    • 15.2:私网 IP
    • 15.3:NAT
    • 15.4:端口映射


网络协议从入门到底层原理。

1:互联网 & 协议

互联网(internet)的出现,彻底改变了人们的生活方式,足不出户就可以购物、聊天、看电影、买车票、上班等。

在这里插入图片描述

数据是如何从一个设备传递到另一个设备的?

  • 这一切都是由网络协议来规定的。
  • 没有网络协议,就没有今天的互联网。

什么是协议

  • 协议就是通用的标准。
  • 如果没有一个国际通用的标准,那么相互之间的交互就会很麻烦。

1.1:跨平台原理

C/C++ 跨平台原理
使用平台相关的编译器生成对应平台的可执行文件。

在这里插入图片描述

Java 跨平台的原理

在这里插入图片描述

C/C++ 编译之后可直接生成平台对应的可执行文件
Java编译之后生成字节码文件。对于操作系统来说,不是可执行文件。

1.2:客户端与服务器

在这里插入图片描述

其中,后端使用 Java 的一种结构如下:

在这里插入图片描述

客户端向服务器请求:

http://IP地址:端口号/项目
例:
http://10.10.125.41:8080/qq/login/...

2:网络互连模型

  • 国际标准:OSI 参考模型(7层)
  • 实际应用:TCP/IP 协议(4层)
  • 学习研究:(5层)

为了更好地促进互联网络的研究和发展,国际标准化组织 ISO 在 1985 年制定了网络互连模型 OSI 参考模型(Open System Interconnect Reference Model)。

在这里插入图片描述

网络请求过程:不管什么协议,都是经过下列的 包装 + 解包 过程。

在这里插入图片描述

3:计算机通信基础

先不考虑无线连接的问题。

  • 需要得知对方的 IP 地址。
  • 最终是根据 MAC 地址(网卡地址),输送数据到网卡,被网卡接收。
    • 如果网卡发现数据的目标 MAC 地址是自己,就会将数据传递给上一层进行处理。
    • 如果网卡发现数据的目标 MAC 地址不是自己,就会将数据丢弃,不会传递给上一层进行处理。

在这里插入图片描述

3.1:网线直连

  • 需要用交叉线(不是直通线)
  • 同一网段

在这里插入图片描述

  • ping 走的是 ICMP 协议。
  • ARP 协议:已知 IP 地址,不知道 MAC 地址时,通过广播获取 MAC 地址。

右边出现的 3 个 ARP 包,实际上是一次完整的发送请求、接收响应的过程。
ICMP 包同理。

3.2:同轴电缆

同轴电缆(Coaxial),连接同一网段。

在这里插入图片描述

3.3:集线器

集线器(Hub),连接同一网段。

在这里插入图片描述

集线器相比同轴电缆唯一的优点:连着集线器的某一个设备中间线路出问题,不会影响到连着集线器的其他设备的通信。

3.4:网桥

网桥(Bridge)。还是连接同一网段。

在这里插入图片描述

能够通过自学习得知每个接口那侧的 MAC 地址,从而起到隔绝冲突域的作用。

3.5:交换机

交换机(Switch)。依旧是连接同一网段。

在这里插入图片描述

若全球所有设备都用交换机连接

  1. 他们必然处于同一网段,因此 IP 地址可能会不够用。
  2. 第一次发送数据包仍然需要 ARP 广播,耗费大量时间。
  3. 形成广播风暴,只要有一个设备发送 ARP 广播,全球设备都能收到。

3.6:路由器

路由器(Router)。路由器含有网关(Gateway),网关也有 IP 和 MAC 地址。

在这里插入图片描述

主机在发数据之前,首先会判断目标主机的 IP 地址跟它是否在同一个网段:

  1. 在同一个网段:ARP广播、通过交换机 / 集线器传递数据
  2. 不在同一个网段:通过路由器转发数据

在这里插入图片描述

4:MAC 地址

每个网卡都有一个 6 字节(48 bit)的 MAC 地址(Media Access Control Address)。

在这里插入图片描述

MAC 地址全球唯一,固化在网卡的 ROM 中,由 IEEE802 标准规定。

  • 前 3 字节:OUI(Organizationally Unique Identifier),组织唯一标识符。
    由 IEEE 的注册管理机构分配给厂商
  • 后 3 字节:网络接口标识符。
    由厂商自行分配

OUI 查询:可以根据 OUI 查询出对应的厂商。

  • http://standards-oui.ieee.org/oui.txt
  • https://mac.bmcx.com/

4.1:MAC 地址格式

  • Windows
    40-55-82-0A-8C-6D
  • Linux、Unix、Android、Mac、iOS
    40:55:82:0A:8C:6D
  • Packet Tracer
    4055.820A.8C6D

当 48 位全为 1 时(FF-FF-FF-FF-FF-FF),代表广播地址。

4.2:MAC 地址操作

查看 MAC 地址(Windows):
ipconfig /all

修改 MAC 地址

更改适配器选项 -> 属性 -> 配置 -> 高级 -> 网络地址

在这里插入图片描述

这里修改 MAC 地址只是以这个值作为 MAC 地址上网,网卡的 MAC 地址无法修改。
有时可通过修改 MAC 地址蹭网。

  • 当不知道对方主机的 MAC 地址时,可以通过发送 ARP 广播获取对方的 MAC 地址。
  • 获取成功后,会缓存 IP 地址、MAC 地址的映射信息,俗称:ARP 缓存

通过 ARP 广播获取的 MAC 地址,属于动态(dynamic)缓存。
存储时间比较短(默认是 2 分钟),过期就自动删除。

查看ARP缓存
arp -a [<IP>]

删除ARP缓存
arp -d [<IP>]

增加一条缓存信息(静态缓存):
arp -s <IP> <MAC 地址>

5:ARP & ICMP

ARP(Address Resolution Protocol,地址解析协议)

  • 通过 IP 地址获取 MAC 地址

RARP(Reverse Address Resolution Protocol,逆地址解析协议)

  • 使用与 ARP 相同的报头结构
  • 作用与 ARP 相反,通过 MAC 地址获取 IP 地址
  • 后来被 BOOTP、DHCP 所取代

ICMP(Internet Control Message Protocol,互联网控制消息协议)

  • IPv4 中的 ICMP 被称作 ICMPv4,IPv6 中的 ICMP 则被称作 ICMPv6
  • 通常用于返回错误信息。比如 TTL 值过期、目的不可达
  • ICMP 的错误消息总是包括了源数据并返回给发送者

6:IP 地址

IP 地址(Internet Protocol Address):互联网上的每一个主机都有 IP 地址。

  • 最初是 IPv4 版本,32 bit(4字节),2019 年 11 月 25 日,全球的 IP 地址已经用完
  • 后面推出了 IPv6 版本,128 bit(16字节)

这里先讨论 IPv4。

IP 按字节分为 4 部分:

在这里插入图片描述

6.1:IP & 子网掩码

IP 地址由两部分组成:

  • 网络标识(网络 ID)
  • 主机标识(主机 ID)

网络 id 相同的主机处在同一网段。

通过子网掩码(subnet mask)可以计算出网络 ID

  • 网络 ID = 子网掩码 & IP

主机所在的网段 = 子网掩码 & IP地址

在这里插入图片描述

IP 地址:192.168.1.10
子网掩码:255.255.255.0

	1100 0000 . 1010 1000 . 0000 0001 . 0000 1010
&	1111 1111 . 1111 1111 . 1111 1111 . 0000 0000
----------------------------------------------------
	1100 0000 . 1010 1000 . 0000 0001 . 0000 0000

网段:192.168.1.0  

例:

IP 地址:   130.168.1.10
子网掩码:  255.255.0.0
网段:      130.168.0.0

该网段最多有 256*256-2 个 IP 地址
130.168.0.0 代表网段
130.168.255.255 代表广播
网段和广播无法分配 IP 地址
  • 主机 ID 全为 0,表示主机所在的网段。
  • 主机 ID 全为 1,表示主机所在网段的全部主机(广播)。

可以尝试用广播 ping 某个网段的全部主机。

6.2:IP 地址分类

IP 地址分为 5 类。

  • A 类地址:默认子网掩码是 255.0.0.0,网络 ID 以 0 开头。
  • B 类地址:默认子网掩码是 255.255.0.0,网络 ID 以 10 开头。
  • C 类地址:默认子网掩码是 255.255.255.0,网络 ID 以 110 开头。
  • D 类地址:没有子网掩码,网络 ID 以 1110 开头。
  • E 类地址:保留为今后使用,以 1111 开头。

只有 A/B/C 类地址用来分配给主机。

6.2.1:A 类地址

默认子网掩码是 255.0.0.0,网络 ID 以 0 开头。

在这里插入图片描述

  • 网络 ID:
    • 0 不能用,127 作为保留网段。
    • 其中 127.0.0.1 是本地回环地址(Loopback),代表本机地址。
    • 第 1 部分可以分配的取值范围是:1 ~ 126。
  • 主机 ID:
    • 第 2、3、4 部分的取值范围是:0 ~ 255。
    • 每个 A 类网络能容纳的最大主机数是:256 * 256 * 256 - 2 = 2^24 - 2 = 16777214

6.2.2:B 类地址

默认子网掩码是 255.255.0.0,网络 ID 以 10 开头。

在这里插入图片描述

  • 网络 ID:
    • 第 1 部分的取值范围是:128 ~ 191
    • 第 2 部分的取值范围是:0 ~ 255
  • 主机 ID:
    • 第 3、4 部分的取值范围是:0 ~ 255
    • 每个 B 类网络能容纳的最大主机数是:256 * 256 - 2 = 2^16 - 2 = 65534

6.2.3:C 类地址

默认子网掩码是 255.255.255.0,网络 ID 以 110 开头。

在这里插入图片描述

  • 网络 ID:
    • 第 1 部分的取值范围是:192 ~ 223
    • 第 2、3 部分的取值范围是:0 ~ 255
  • 主机 ID:
    • 第 4 部分的取值范围是:0 ~ 255
    • 每个 C 类网络能容纳的最大主机数是:256 - 2 = 254

6.2.4:D 类地址

没有子网掩码,网络 ID 以 1110 开头。

在这里插入图片描述

  • 用于多播(组播)地址。
  • 第一部分取值范围:224 ~ 239。

6.2.5:E 类地址

保留为今后使用,以 1111 开头。

在这里插入图片描述

  • 保留为今后使用。
  • 第一部分取值是:240 ~ 255。

6.3:CIDR 表示方法

CIDR(Classless Inter-Domain Routing),无类别域间路由

子网掩码的 CIDR 表示方法:

  • 192.168.1.100/24,代表子网掩码有 24 个 1,也就是 255.255.255.0
  • 123.210.100.200/16,代表子网掩码有 16 个 1,也就是 255.255.0.0

计算工具:https://www.sojson.com/convert/subnetmask.html

7:子网

子网划分:借用主机位作子网位,划分出多个子网。

子网划分可以分为

  • 等长子网划分:将一个网段等分成多个子网,每个子网的可用 IP 地址数量一样。
  • 变长子网划分:每个子网的可用 IP 地址数量可以是不一样的。

子网划分的步骤

  1. 确定子网的子网掩码长度
  2. 确定子网中第 1 个、最后 1 个主机可用的 IP 地址

为什么要进行子网划分

  • 如果需要让 200 台主机在同一个网段内,可以分配一个 C 类网段,比如 192.168.1.0/24。
    • 共 254 个可用 IP 地址:192.168.1.1 ~ 192.168.1.254
    • 多出 54 个空闲的 IP 地址,这种情况并不算浪费资源
  • 如果需要让 500 台主机在同一个网段内,那就分配一个 B 类网段,比如 191.100.0.0/16。
    • 共 65534 个可用 IP 地址:191.100.0.1 ~ 191.100.255.254
    • 多出 65034 个空闲的IP地址,这种情况属于极大的浪费资源
  • 如何尽量避免浪费 IP 地址资源:合理进行子网划分。

7.1:等长子网划分

7.1.1:C 类子网划分

7.1.1.1:等分成 2 个子网

在这里插入图片描述

7.1.1.2:等分成 4 个子网

在这里插入图片描述

等分成 4 个子网的广播地址:

在这里插入图片描述

7.1.1.3:等分成 8 个子网

在这里插入图片描述

7.1.2:B 类子网划分

在这里插入图片描述

7.1.3:A 类子网划分

在这里插入图片描述

7.2:变长子网划分

如果一个子网地址块的长度是原网段的 (1/2)^n,那么

  • 子网的子网掩码,就是在原网段的子网掩码基础上增加 n 个 1。
  • 不等长的子网,子网掩码不同。

在这里插入图片描述

假设上图是对 192.168.0.0/24 进行变长子网划分

 - C 网段:子网掩码是 255.255.255.128/25
 - B 网段:子网掩码是 255.255.255.192/26
 - A 网段:子网掩码是 255.255.255.224/27
 - D 网段:子网掩码是 255.255.255.252/30
 - E 网段:子网掩码是 255.255.255.252/30

8:超网

超网:跟子网反过来,它是将多个连续的网段合并成一个更大的网段。

示例

  • 原本有 200 台计算机使用 192.168.0.0/24 网段,现在希望增加 200 台设备到同一个网段。
    • 200 台在 192.168.0.0/24 网段,200 台在 192.168.1.0/24 网段
    • 合并 192.168.0.0/24192.168.1.0/24 为一个网段:192.168.0.0/23(子网掩码往左移动1位)

在这里插入图片描述

思考:对于上面的例子,192.168.0.255/23 这个 IP 地址,可以分配给计算机使用吗?

由下图知,主机位不全为 0 或 1,所以可以。

在这里插入图片描述

192.168.0.255/24 与 192.168.1.255/23 则不能分配给计算机。

8.1:合并 4 个网段

子网掩码向左移动 2 位,可以合并 4 个网段。

在这里插入图片描述

如上图,将 192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24 合并为 192.168.0.0/22 网段。

思考:192.168.1.0/24、192.168.2.0/24 两个网段,能通过子网掩码向左移动 1 位进行合并吗?

在这里插入图片描述

答:不能。

8.2:合并网段的规律

  • 假设 n 是 2 的 k 次幂( k >= 1),子网掩码左移 k 位能够合并 n 个网段

在这里插入图片描述

  • 假设 n 是 2 的 k 次幂(k >= 1),如果第一个网段的网络号能被 n 整除,那么由它开始连续的 n 个网段,能通过左移 k 位子网掩码进行合并。

例如:

  • 第一个网段的网络号以二进制 0 结尾,那么由它开始连续的 2 个网段,能通过左移 1 位子网掩码进行合并
  • 第一个网段的网络号以二进制 00 结尾,那么由它开始连续的 4 个网段,能通过左移 2 位子网掩码进行合并
  • 第一个网段的网络号以二进制 000 结尾,那么由它开始连续的 8 个网段,能通过左移 3 位子网掩码进行合并

在这里插入图片描述

8.3:判断一个网段是子网还是超网

  • 首先看该网段的类型,是 A 类网络、B 类网络、C 类网络?
    • 默认情况下
    • A 类子网掩码的位数是 8(255.0.0.0)
    • B 类子网掩码的位数是 16(255.255.0.0)
    • C 类子网掩码的位数是 24(255.255.255.0)
  • 如果该网段的子网掩码位数比默认子网掩码,就是子网
  • 如果该网段的子网掩码位数比默认子网掩码,就是超网

例:

25.100.0.0/16 是 A 类子网
根据 25 判断出这是个 A 类网络,默认子网掩码 8 位。
由于该网段子网掩码 16 位,比默认多,所以是子网。

200.100.0.0/16 是 C 类超网
根据 200 判断出这是个 C 类网络,默认子网掩码 24 位。
由于该网段子网掩码 16 位,比默认少,所以是超网。

9:路由

在不同网段之间转发数据,需要有路由器的支持

默认情况下,路由器只知道跟它直连的网段,非直连的网段需要通过静态路由和动态路由告诉它。

  • 静态路由
    • 管理员手动添加路由信息
    • 适用于小规模网络
  • 动态路由
    • 路由器通过路由选择协议(比如 RIP、OSPF)自动获取路由信息
    • 适用于大规模网络

9.1:路由表示例一

让 4 台主机之间可以互相通信:

在这里插入图片描述

路由器 0 的路由表

在这里插入图片描述

路由器 1 的路由表

在这里插入图片描述

9.2:路由表示例二

让 4 台主机之间可以互相通信:

在这里插入图片描述

路由表

在这里插入图片描述

10:数据包的传输过程

这里仅仅是简述一下数据包的传输过程,之后介绍网络分层时,会再次详细讲解数据包的传输过程。

在这里插入图片描述

源 IP、目标 IP 没有变;源 MAC、目标 MAC 一直在变。

10.1:第一个包的丢失

如图,从 192.168.1.10/24 往 192.168.2.10/24 虽然可以 ping 通,但是丢失了第一个数据包。

在这里插入图片描述

原因:计算机0 往路由器发送了 ARP 包,路由器收到后回复了 ARP 包,从而计算机0 就开始发送 ICMP 包,路由器0 收到 ICMP 包后准备发往计算机1,但是路由器还不知道计算机1 的 MAC 地址,所以要往计算机1 发送 ARP 包,因此就把 ICMP 包给丢了,所以第一次 ping 会超时。

11:网络 & 互联网 & 因特网

  • 网络(Network
  • 互联网(internet
  • 因特网(Internet

在这里插入图片描述

全世界最大的互联网:因特网(Internet),将全世界所有的计算机都连接在一起。

  • 一般使用大写 I 开头的 Internet 特指因特网。
  • 日常生活中说的:你的电脑上不了网。其实就是指:你的电脑没有连接到因特网。

12:ISP

ISP(Internet Service Provider),Internet 服务提供商,比如移动、电信、网通、铁通等。

我们平时拉的宽带都是通过 ISP 连接到 Internet 的。

在这里插入图片描述

平时见到左边的下载列表,其实是给使用不同 ISP 的用户对应的选择。

在这里插入图片描述

13:网络分类

按照不同的分类方式,可以将网络分为以下几类:

  • 局域网(LAN)
  • 城域网(MAN)
  • 广域网(WAN)
  • 个人区域网(PAN)
  • 无线局域网(WLAN)
  • 全球局域网(GAN)
  • 虚拟局域网(VLAN)

按照网络的范围进行分类,可以分为:局域网、城域网、广域网等

13.1:局域网

局域网(Local Area Network,LAN)

  • 一般是范围在几百米到十几公里内的计算机所构成的计算机网络
  • 常用于公司、家庭、学校、医院、机关、一幢大楼等
  • 局域网中使用最广泛的网络技术叫:以太网(Ethernet)
  • 在电脑、手机上经常见到的一个英文 WLAN(Wireless LAN),意思是无线局域网。

13.2:城域网

城域网(Metropolitan Area Network,MAN)

  • 一般范围是数十公里到数百公里,可以覆盖一个城市

13.3:广域网

广域网(Wide Area Network,WAN)

  • 一般范围是几百公里到几千公里,可以覆盖一个国家。通常都需要租用 ISP 的线路。

14:上网方式

14.1:电话线入户

在这里插入图片描述

ADSL(Asymmetric Digital Subscriber Line),电话拨号上网。

  • 非对称数字用户线路,提供上、下行不对称的传输带宽
  • 猫(Modem),调制解调器,进行数字信号和模拟信号的转换

14.2:光纤入户

在这里插入图片描述

光猫(Optical Modem),光调制解调器,进行数字信号和光信号的转换。

14.3:网线入户

在这里插入图片描述

14.4:家用无线路由器的逻辑结构

在这里插入图片描述

14.5:常见接口

  • FastEthernet:快速以太网接口(100M)
  • GigabitEthernet:千兆以太网接口(1000M)
  • Serial:串行接口

15:公网 & 私网

IP 地址也分为:公网 IP、私网 IP(内网)。

为什么要分公网、私网?
IP 地址不够用。
便于管理。

15.1:公网 IP

公网 IP(Public)。

  • Internet 上的路由器中只有到达公网的路由表,没有到达私网的路由表
  • 公网 IP 由因特网信息中心(Internet Network Information Cetner,Inter NIC)统一分配管理
  • ISP 需要向 Inter NIC 申请公网 IP

15.2:私网 IP

私网 IP(Private),主要用于局域网。

下面是保留的私网网段:

  • A 类:10.0.0.0/8,1 个 A 类网络
  • B 类:172.16.0.0/16 ~ 172.31.0.0/16,16 个 B 类网络
  • C 类:192.168.0.0/24 ~ 192.168.255.0/24,256 个 C 类网络

15.3:NAT

NAT(Network Address Translation)。

私网 IP 想访问 Internet 需要进行 NAT 转换,借助公网 IP 上网。这一步可以由路由器完成。

特点

  • 节约公网 IP 资源
  • 隐藏内部真实 IP

分类

  • 静态转换
    手动配置 NAT 映射表
    一对一转换
  • 动态转换
    定义外部地址池,动态随机转换
    一对一转换
  • PAT(Port Address Translation),目前应用最广泛的 NAT 实现方式
    多对一转换,最大程度节约公网 IP 资源
    采用端口多路复用方式,通过端口号标识不同的数据流

15.4:端口映射

端口(0 ~ 65535)是每个软件的一个通讯进出口。

类似于 NAT。

端口映射,就是将内网主机的一个端口映射到外网主机的一个端口。当用户访问外网 IP 的这个端口时,外网主机自动将请求映射到内网对应的机器上。


无奈夜长人不寐,数声和月到帘栊。

——《捣练子令 · 深院静》(五代)李煜

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源DB-GPT实现连接数据库详细步骤

官方文档&#xff1a;欢迎来到DB-GPT中文文档 — DB-GPT &#x1f44f;&#x1f44f; 0.4.1 第一步&#xff1a;安装Minicoda https://docs.conda.io/en/latest/miniconda.html 第二步&#xff1a;安装Git Git - Downloading Package 第三步&#xff1a;安装embedding 模型到…

使用腾讯云轻量服务器安装AList

新人有免费两个月试用轻量服务器&#xff0c;使用云服务器商自带的webshell登录&#xff1b; 我这儿用docker安装Alist&#xff0c;因为服务器没自带docker&#xff0c;所以具体安装docker centos7.0最快速安装docker的方法 通过 Docker 部署 Alist 命令&#xff1a; docke…

学习笔记:利用CANOE Panel和CAPL脚本模拟主节点发送LIN通信指令

前一篇文章已经对CANOE如何模拟主节点和从节点进行LIN通信做了简单的记录&#xff0c;修改主节点发送的指令需要修改LIN ISC模块里的Frames帧对应的signal。这样改起来比较麻烦且不直观&#xff0c;幸好CANOE提供了Panel designer这样的工具&#xff0c;我们可以利用它设计自己…

第六章:Property-based Testing and Test Oracles

文章目录 Test OraclesActive and Passive Test OraclesTypes of Test OraclesFormal, executable specificationsSolved examplesMetamorphic oraclesAlternative implementations (备用实现)Heuristic oracles (启发式)The Golden Program!Oracle Deviation (Oracle偏差)T…

电动车展示预约小程序的作用如何

电动车可以说是现在出行常见的方法&#xff0c;覆盖年龄广几乎是每家必备&#xff0c;也有不小大小品牌和经销商&#xff0c;市场需求较高&#xff0c;但在实际经营中&#xff0c;对经销商来时也面临着一些痛点&#xff1a; 1、品牌传播产品展示难 不同品牌竞争很大&#xff…

安装 MinGW

实际上是将 GCC&#xff08;C语言编译器&#xff09; 移植到了 Windows 平台下。 1、网上下载 下载安装器 mingw-get-setup.exe&#xff0c;路径https://osdn.net/projects/mingw/ 2、打开点击install 3、选择路径continue 4、文件加载完成之后选择continue 5、勾选这两个 6…

关于 国产系统UOS系统Qt开发Tcp服务器外部连接无法连接上USO系统 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/134254817 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

【ES分词】

分词 #测试分词器 POST /_analyze {"text": "小米手机和华为手机都是国产mobilephone", "analyzer": "english" }不管analyzer是改成&#xff1a;standard还是chinese都无法实现中文分词。 处理中文分词一般采用IK分词器 安装链接&…

aosp定制android系统

目录 AOSP 准备工作(配置) 确定机型和版本 初始化 git安装 curl安装 同步源码 环境变量 创建aosp目录 指定同步版本 解下来安装编译需要的依赖 编译aosp源码 刷入系统 AOSP 全称 Android Open Source Project 是指Android开源项目&#xff0c;它是由Google主导的…

Thread类的基本操作(JAVA多线程)

线程是操作系统中的概念&#xff0c;操作系统内核实现了线程这样的机制&#xff0c;并提供了一些API供外部使用。 JAVA中 Thread类 将系统提供的API又近一步进行了抽象和封装&#xff0c;所以如果想要使用多线程就离不开 Thread 这个类。 线程的创建(Thread类) 在JAVA中 创建…

python图像处理 ——图像锐化

python图像处理 ——图像锐化 前言一、原理二、 空间域锐化滤波1.拉普拉斯算子&#xff08;Laplacian&#xff09;2.罗伯茨算子&#xff08;Roberts&#xff09;3.Sobel算子4.Prewitt算子5.Scharr算子 三、实验对比 前言 由于收集图像数据的器件或传输图像的通道存在一些质量缺…

浅谈电力物联网时代物联网技术在电力系统中的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定201801 摘要&#xff1a;在电力系统建设中&#xff0c;物联网的应用不仅促进了我国电力工业的发展&#xff0c;而且对我国的物联网技术也起到了一定的促进作用。随着物联网技术应用于电力系统&#xff0c;推动了中国工业的快速发展。因…

GCN火车票识别项目 P1 火车票识别项目介绍 Pytorch LSTM/GCN

从本节开始&#xff0c;我将带大家完成一个深度学习项目&#xff1a;用图卷积神经网络(GCN)&#xff0c;实现一个「火车票文字信息提取」的项目&#xff0c;由于火车票上每个节点文字不是等长的&#xff0c;所以还需要添加一个前置的 LSTM 来提取句子特征。 课前说明 1、这是…

Linux CentOS配置阿里云yum源

一&#xff1a;先备份文件&#xff0c;在配置失败时可以恢复 cd /etc/yum.repos.d mkdir back mv *.repo back 二&#xff1a;下载阿里云yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel…

网络工程师回顾学习

根据书本目录&#xff0c;写下需要记忆的地方&#xff1a; 参考之前的笔记&#xff1a; 网络工程师回答问题_one day321的博客-CSDN博客 重构第一部分需要记忆的&#xff1a; 第一章&#xff1a;计算机网络概论 计算机网络的定义和分类&#xff1a;计算机网络是指将地理位…

如何定义类

类是将数据和方法封装在一起的一种数据结构&#xff0c;其中数据表示类的属性&#xff0c;方法表示类的行为&#xff0c;所以定义类实际上就是定义类的属性与方法。用户定义一个类实际上就是定义一个新的数据类型。在使用类之前&#xff0c;必须先定义它&#xff0c;然后才可利…

软件测试需求分析是什么?为什么需要进行测试需求分析?

在软件开发中&#xff0c;软件测试是确保软件质量的重要环节之一。而软件测试需求分析作为软件测试的前置工作&#xff0c;对于保证软件测试的顺利进行具有重要意义。软件测试需求分析是指对软件测试的需求进行细致的分析和规划&#xff0c;以明确测试的目标、任务和范围&#…

2021年电工杯数学建模B题光伏建筑一体化板块指数发展趋势分析及预测求解全过程论文及程序

2021年电工杯数学建模 B题 光伏建筑一体化板块指数发展趋势分析及预测 原题再现&#xff1a; 国家《第十四个五年规划和 2035 年远景目标纲要》中提出&#xff0c;将 2030 年实现“碳达峰”与 2060 年实现“碳中和”作为我国应对全球气候变暖的一个重要远景目标。光伏建筑一体…

RABC权限模型与Spring Security

今天&#xff0c;我将带你进入一个充满策略和刺激的领域——权限之战。在这场战斗中&#xff0c;我们的主角是RABC权限模型&#xff08;Role-Based Access Control&#xff09;和Spring Security&#xff0c;他们将共同为我们打造一个安全稳定的世界。 权限模型&#xff1a;游戏…

通俗理解repartition和coalesce区别

官方的解释 reparation 返回一个具有恰好numPartitions分区的新RDD。 可以增加或减少此RDD中的并行级别。在内部,reparation会使用shuffle来重新分发的数据。 如果要减少此RDD中的分区数量,请考虑使用coalesce,这样可以避免执行shuffle。 coalesce 返回一个新的RDD,该RDD被…