【计算机网络】75 张图详解:网络设备、网络地址规划、静态路由(万字长文)

news2024/10/6 6:40:49

75 张图详解:网络设备、网络地址规划、静态路由

  • 1.网络设备
    • 1.1 交换机
    • 1.2 路由器
  • 2.网络地址规划
    • 2.1 IP 地址
    • 2.2 分类地址
    • 2.3 子网掩码
    • 2.4 无类地址
    • 2.5 子网划分
      • 2.5.1 示例一
      • 2.5.2 示例二
    • 2.6 超网合并
  • 3.静态路由
    • 3.1 路由表
    • 3.2 直连路由
    • 3.3 静态路由
    • 3.4 默认路由
    • 3.5 网关和默认网关
  • 4.实战演练
    • 4.1 静态路由实验
      • 4.1.1 实验拓扑图
      • 4.1.2 实验要求
      • 4.1.3 实验步骤
      • 4.1.4 实验总结
    • 4.2 浮动静态路由实验
      • 4.2.1 实验拓扑图
      • 4.2.2 实验要求
      • 4.2.3 实验步骤

1.网络设备

大刘的电脑 A 和小美的电脑 B 可以通过 网线 连接起来,组成一个网络。A 发出来数据,B 都能接收到。反之 A 可以接收 B 发出来的所有数据。

在这里插入图片描述

1.1 交换机

没过多久,隔壁老王的电脑 C、阿丽的电脑 D、敏敏的电脑 E 也要加入到网络中来。只使用网线连接是搞不定的了,搞不定的问题就用 分层 的办法处理。

在这里插入图片描述
于是就有了二层网络设备 交换机,交换机提供网络互联功能。

在这里插入图片描述

交换机可以接入多台电脑,那么它是如何识别不同的电脑呢?又是如何进行数据转发呢?

每个电脑网卡的 MAC 地址 都是不一样的,电脑发送数据时,数据头部携带网卡的 MAC 地址,用 MAC 地址标识来不同的电脑。交换机就可以识别数据头部的 MAC 地址来区分不同的电脑。

在这里插入图片描述
交换机除了能识别不同的电脑,还需要找到电脑连接的 交换机端口,才能顺利的把数据从相应端口发送出去。交换机通过 自学机制,把学习到的设备 MAC 地址和交换机端口号添加到 MAC 地址表,并根据 MAC 地址表进行数据 转发

在这里插入图片描述

1.2 路由器

随着韩国棒棒的电脑 F、美国山姆的电脑 G、印度三三的电脑 H 等等的陆续加入,网络规模越来越大。交换机需要记录的 MAC 地址表也越来越多,需要的交换机也越来越多。但是交换机的 容量和性能有限,MAC 地址表无法记录全世界电脑的 MAC 地址和对应的端口号,MAC 地址表太大也无法快速查找到对应的 MAC 地址表项。

在这里插入图片描述
交换机搞不定的问题,就用分层的办法处理。

在这里插入图片描述
于是就有了三层网络设备 路由器,路由器可以把全世界的网络连接起来。

在这里插入图片描述
局域网内的网络连接可以使用 交换机,例如一个公司内的网络或者一个校园内的网络通过交换机连接。不同区域的局域网互联使用 路由器,那么如何区分不同的网络区域呢?又是如何跨网络区域进行数据转发的呢?

MAC 地址 是烧录到网卡上的,也叫硬件地址,可以标识某一台设备,但无法用来标识某一个网络区域。为了区分不同的网络区域,IP 地址 闪亮登场。IP 地址由 网络号主机号 两部分组成,网络号可以标识网络区域,网络号相同的主机位于同一个网络区域内,即相同网段内。不同的网络区域使用不同的网络号。主机号标识相同网段内的不同主机,不允许相同网段内出现重复的主机号。在整个网络中通过设置网络号和主机号,保证每台主机的 IP 地址不会重复出现,即 IP 地址具有唯一性。

在这里插入图片描述
路由器有多个端口,分别连接不同的网络区域,不同网络区域的 IP 地址 网络号不同。它通过识别目的 IP 地址的 网络号,再根据 路由表 进行数据转发。

在这里插入图片描述

2.网络地址规划

2.1 IP 地址

IP 地址由 32 位二进制数组成,为方便查看和记录,使用十进制数表示。

在这里插入图片描述
常用二进制数与十进制数的转换

在这里插入图片描述
分配给主机使用的分类地址有 A 类B 类C 类,分类地址使用的是固定网络位数,A 类 8 位网络号,B 类 16 位网络号,C 类 24 位网络号。既可以通过判断 分类地址类型( A 类、B 类、C 类其中之一)识别出网络号,也可以通过 子网掩码 识别出网络号。

在这里插入图片描述

2.2 分类地址

A 类地址 第一位以 0 0 0 开头,可变化的网络位有 7 7 7 位,即 128 128 128 个 A 类地址。其中 0 0 0 127 127 127 属于 特殊地址,可用的 A 类地址就是 128 − 2 = 126 128 - 2 = 126 1282=126 个。

可变化的主机位有 24 24 24 位,即 16777216 16777216 16777216 个主机地址。其中主机位全为 0 0 0 和主机位全为 1 1 1 分别为 网段地址广播地址,不能分配给主机使用,每个 A 类地址可用的主机地址就是 16777216 − 2 = 16777214 16777216 - 2 = 16777214 167772162=16777214 个。

A 类地址的范围是 1.0.0.0126.255.255.255

A 类地址子网掩码是 255.0.0.0,也可写作 /8

在这里插入图片描述
B 类地址 前两位以 10 10 10 开头,可变化的网络位有 14 14 14 位,即 16384 16384 16384 个 B 类地址。其中 128.0 128.0 128.0 191.255 191.255 191.255 属于 特殊地址,可用的 B 类地址就是 16384 − 2 = 16382 16384 - 2 = 16382 163842=16382 个。

可变化的主机位有 16 16 16 位,即 65536 65536 65536 个主机地址。其中 网段地址广播地址 不能分配给主机使用,每个 B 类地址可用的主机地址就是 65536 − 2 = 65534 65536 - 2 = 65534 655362=65534 个。

B 类地址的范围是 128.0.0.0191.255.255.255

B 类地址子网掩码是 255.255.0.0,也可写作 /16

在这里插入图片描述
C 类地址 前三位以 110 110 110 开头,可变化的网络位有 21 21 21 位,即 2097152 2097152 2097152 个 C 类地址。其中 192.0.0 192.0.0 192.0.0 223.255.255 223.255.255 223.255.255 属于 特殊地址,可用的 C 类地址就是 2097152 − 2 = 2097150 2097152 - 2 = 2097150 20971522=2097150 个。

可变化的主机位有 8 8 8 位,即 256 256 256 个主机地址。其中 网段地址广播地址 不能分配给主机使用,每个 C 类地址可用的主机地址就是 256 − 2 = 254 256 - 2 = 254 2562=254 个。

C 类地址的范围是 192.0.0.0223.255.255.255

C 类地址子网掩码是 255.255.255.0,也可写作 /24

在这里插入图片描述
网段地址 是主机号全为 0 0 0 的地址,表示某个网段,比如:网段地址 192.168.10.0/24 表示的是网络号为 192.168.10 的所有地址。

广播地址 是主机号全为 1 1 1 的地址,向同一个网段中的所有主机发送数据包的一个地址,比如:网段地址 192.168.10.0/24 的广播地址是 192.168.10.255

在这里插入图片描述
分类地址保留了几个可以自由使用的私网地址。私网地址不能在公网上出现,只能用在内部网络中,所有的路由器都不转发目标地址为私网地址的数据报。

分类地址私有地址范围
A 类地址10.0.0.010.255.255.255
B 类地址172.16.0.0172.31.255.255
C 类地址192.168.0.0192.168.255.255

举个栗子

  • A 类私网地址 10.10.10.10

可推算出:10.10.10.10 的网段地址是 10.0.0.0/8,子网掩码是 255.0.0.0,广播地址是 10.255.255.255,第一个可用地址是 10.0.0.1,最后一个可用地址是 10.255.255.254,可用地址范围是 10.0.0.1 ~ 10.255.255.254

  • B 类私网地址 172.20.20.20

可推算出:172.20.20.20 的网段地址是 172.20.0.0/16,子网掩码是 255.255.0.0,广播地址是 172.20.255.255,第一个可用地址是 172.20.0.1,最后一个可用地址是 172.20.255.254,可用地址范围是 172.20.0.1 ~ 172.20.255.254

  • C 类私网地址 192.168.30.30

可推算出:192.168.30.30 的网段地址是 192.168.30.0/24,子网掩码是 255.255.255.0,广播地址是 192.168.30.255,第一个可用地址是 192.168.30.1,最后一个可用地址是 192.168.30.254,可用地址范围是 192.168.30.1 ~ 192.168.30.254

在这里插入图片描述

2.3 子网掩码

子网掩码 必须和 IP 地址一起使用,子网掩码也是由 32 32 32 位二进制数组成,网络位为 1 1 1,主机位为 0 0 0。子网掩码和 IP 地址进行 与( AND )运算,得到这个 IP 地址的网段地址。换句话说,IP 地址有多少位网络号,子网掩码就有多少位取 1,其余都取 0 。

在这里插入图片描述
子网掩码可以使用十进制数表示,还可以使用斜线记法表示。

在这里插入图片描述
根据 IP 地址和子网掩码计算网段地址,先将 IP 地址和子网掩码转换成二进制数,然后将 IP 地址与子网掩码二进制数一位一位的做 AND 运算,再将结果转换为十进制,就是 网段地址

在这里插入图片描述
与( AND )运算:IP 地址和子网掩码的二进制数,逐位进行计算。只有当 IP 地址和掩码都是 1 时,运算结果为 1 。其余情况计算结果都为 0 。

在这里插入图片描述

2.4 无类地址

分类地址使用的是固定网络位数,可分配的主机 IP 地址也是固定的。但是在实际使用网络时,需要的 IP 地址数量却是各不相同。

举个栗子:一个公司有 500 台电脑,需要分配 500 个 IP 地址。如果分配一个 C 类地址,一个 C 类地址的可用 IP 地址数量是 254 个,可用地址不够使用。如果分配一个 B 类地址,一个 B 类地址的可用 IP 地址数量是 65534 个,会造成大量的 IP 地址浪费。

再来个栗子:一个家庭有 2 台电脑需要上网,如果分配一个 C 类地址也很浪费,但是没有比 C 类范围更小的地址。

为了解决地址浪费问题,可使用 CIDR无类域间路由)和 VLSM可变长子网掩码)技术。

VLSM 可以对 A 、 B 、 C 类地址进行划分,划分成各种类型大小的网络,可用主机地址数量可以灵活变化大小。划分分类地址的过程也叫 子网划分

在这里插入图片描述
CIDR 可以把多个分类地址进行聚会到一起,生成一个更大的网段,以减少路由器中路由条目的数量,减轻路由器的负担。分类地址合并的过程也叫 超网合并

在这里插入图片描述
子网划分后或超网合并后的网段地址,不再是固定的网络位数,这种网络位数可变的网段地址也叫做 无类地址。无类地址只能通过 子网掩码 识别出网络号。

在这里插入图片描述

2.5 子网划分

子网划分 是从 IP 地址主机位的最左边开始,把主机位划入网络位,得到多个子网地址。主机位变成网络位的部分叫做 子网号,划分后的子网数量等于 2 2 2 N N N 次方, N N N 等于子网号的位数。

在这里插入图片描述
即每把一位主机位变成网络位,一个网段地址就变成两个子网地址,子网地址的地址数量只有原来网段地址的一半。

在这里插入图片描述

2.5.1 示例一

举个栗子:一个学校有 150 150 150 台电脑,有三个电脑室,每个电脑室 50 50 50 台电脑。使用私有地址 192.168.0.0/24 给每个电脑室都分配一个网段地址。

网络规划步骤:

(1)每个电脑室 50 50 50 台电脑,计算出子网地址的 主机位 6 6 6 位。

在这里插入图片描述
(2)计算子网地址的 网络位,即 32 − 主机位 = 26 32 - 主机位 = 26 32主机位=26 位。

(3)使用私网地址 192.168.0.0/24 分配三个主机位同为 26 26 26 位的子网地址。子网号有 2 2 2 位,因此可以划分出 4 4 4 个大小相同的子网地址。

在这里插入图片描述
(4)按照子网号从小到大的顺序,分配 3 3 3 个子网地址给电脑室使用。即分配 192.168.0.0/26192.168.0.64/26192.168.0.128/26 这三个子网地址。

在这里插入图片描述

2.5.2 示例二

再来个栗子:一个公司有 157 157 157 人,市场部 100 100 100 人,技术部 50 50 50 人,行政部 4 4 4 人,财务部 3 3 3 人,每人一台办公电脑。使用私有地址 192.168.100.0/24 分别为每个部门划分网络地址。

网络规划步骤:

(1)按照需要 IP 地址数量,从大到小依次进行子网划分。先计算有 100 100 100 人的市场部所需子网的主机位是 7 7 7 位。

在这里插入图片描述
(2)计算市场部所需子网地址的网络位,即 32 − 主机位 = 25 32 - 主机位 = 25 32主机位=25 位。

(3)使用私网地址 192.168.100.0/24 分配第一个主机位为 25 25 25 位的子网地址,即 192.168.100.0/25

在这里插入图片描述
(4)保证与第一个子网地址不重复的前提下,使用未分配的子网值最小的子网地址,计算第二个需要分配的子网地址。即使用 192.168.100.128/25 分配第二个子网地址给技术部( 50 50 50 人)使用。重复步骤 ( 1 ) (1) 1~ ( 3 ) (3) 3 ,计算出第二个子网的主机位是 6 6 6 位,网络位是 26 26 26 位,第二个子网地址是 192.168.100.128/26

在这里插入图片描述
(5)保证与前面两个子网地址不重复的前提下,使用未分配的子网值最小的子网地址,计算第三个需要分配的子网地址。即使用 192.168.100.192/26 分配第三个子网地址给行政部( 4 4 4 人)使用。重复步骤 ( 1 ) (1) 1~ ( 3 ) (3) 3,计算出第三个子网的主机位是 3 3 3 位,网络位是 29 29 29 位,第三个子网地址是 192.168.100.192/29

(6)依次类推,计算给财务部( 3 3 3 人)使用的第四个子网地址。得出第四个子网的主机位是 3 3 3 位,网络位是 29 29 29 位,第四个子网地址是 192.168.100.200/29

在这里插入图片描述

2.6 超网合并

与子网划分相反,把一些小网络组合成一个大网络就是超网合并。

在这里插入图片描述

192.168.3.64/26 和 192.168.3.128/26 可以合并吗?

192.168.3.64/26192.168.3.128/26 不能合并。

在这里插入图片描述
当子网掩码向左移动一位时,网络号不相同,无法合并;

在这里插入图片描述
当子网掩码向左移动两位是,网络号是相同了,但是合并了四个网段,非 192.168.3.64/26192.168.3.128/26 合并。

在这里插入图片描述
结论:子网掩码左移一位,且网络号相同,能够合并两个网段;左移两位,且网络号相同,能够合并四个网段;左移三位,能够合并八个网段。依次类推。

在这里插入图片描述

3.静态路由

路由器在收到数据包时,会识别目的 IP 地址的 网络号,来查询路由表的 路由条目,根据最长匹配的路由条目,来判断应该从哪个 接口 转发数据包。路由表中有匹配的路由条目才会发送数据,无匹配的路由条目则直接丢弃。

在这里插入图片描述

3.1 路由表

路由表由路由条目组成,路由条目 包含 目的地址下一跳出接口 等。

在这里插入图片描述

  • 目的地址Destination / Mask)表示目的网段地址或目的 IP 地址。目的地址既可以是直连在路由器接口上的网段地址,也可以是其它路由器上的网段地址或 IP 地址。

  • 下一跳 / 出接口NextHop / Interface)表示转发目的地址的数据包时,下一跳设备的接口 IP 地址,或者是将数据包从哪个接口转发出去。

  • 协议类型Proto,Protocol 简写 )表示路由条目的获取方式,一共有三种方式。

(1)直连路由:路由器直接连接的路由条目,只要接口配置了 IP 地址,接口状态正常,就会自动生成对应的直连路由。

在这里插入图片描述
(2)静态路由:通过命令手动添加的路由条目就是静态路由。

在这里插入图片描述
(3)动态路由:通过路由协议从相邻路由器动态学习到的路由条目。

在这里插入图片描述
优先级PrePreference 简写 )表示有多条去往同一个目的地址的路由条目,根据路由条目的类型,选择优先级最高的路由条目添加到路由表里面。

在这里插入图片描述
路由优先级的 值越小,代表这种类型的路由 优先级越高

在这里插入图片描述
路径开销Cost)表示通过同一种路由类型学习到多条去往同一个目的地址的路由条目,选择路径开销最小的路由条目添加到路由表里面。

在这里插入图片描述

3.2 直连路由

直连路由 是唯一一种自动向路由表中添加路由条目。这种路由条目指向的目的网络是路由器接口直连的网络,直连路由的路由优先级和路径开销值都是 0 0 0

为了保障直连路由的可用性,路由器只会把 状态正常的接口 所连接的网络,作为直连路由放入自己的路由表中。

在这里插入图片描述

3.3 静态路由

默认情况下,路由器只会自动生成直连路由。对于非直连网络,路由器并不知道要如何转发才能到达非直连网络。这时,我们就可以手动添加 静态路由,告诉路由器如何转发去往某个网络的数据包。

静态路由的默认 路由优先级 60 60 60,还可以手动调整静态路由的优先值。静态路由的 路径开销值 0 0 0。路由器静态路由配置命令:

ip route-static destination-address mask-length nexthop-address

在这里插入图片描述
通过 目的地址相同下一跳或出接口不同 的两条静态路由实现数据流量的 负载分担,路由器会同时使用这两条静态路由条目转发数据包。但是在实际网络环境中,不推荐使用,因为数据报文往返路径不对称,会导致上层应用受影响。

在这里插入图片描述
通过 目的地址相同路由优先级不同 的两条静态路由实现 路由备份,当优先级高的路由条目出现问题时,路由器就会使用另一条优先级低的路由条目来转发数据包。

在这里插入图片描述

优点:

  • 对比动态路由,静态路由条目不会被自动删除,路由条目更稳定。
  • 只要手动添加,就会出现对应的静态路由,路由器也会使用这条静态路由转发数据包,路由条目更可控。
  • 配置去往某个网络的静态路由,只需要在路由器上添加一条简单的命令就可以实现,更容易部署。

缺点:

  • 在越大型网络中,配置和维护路由协议的工作量越大,出差的概率就越大。在大型网络中,静态路由只能作为动态路由的补充,因为静态路由的扩展性差。
  • 动态路由可以自动删除失效的动态路由条目。而静态路由无法反映拓扑变化,必须进行手动干预删除失效静态路由,否则路由器仍会按照配置的静态路由进行数据包转发。

3.4 默认路由

路由器只能转发有路由条目的数据包,对于网络未知的数据包,只能选择丢弃。实际上,我们也不可能知道所有网站或者应用程序的 IP 地址,需要使用一种特殊的路由条目解决这个问题。

路由转发的 最长匹配原则 是:当匹配目的 IP 地址的路由条目有多条时,路由器会选择子网掩码最长的路由条目,也就是最精确的路由条目来转发数据包。

在这里插入图片描述
我们通常会配置一条 0.0.0.0/0 的静态路由,根据最长匹配原则,可以匹配任何目的 IP 地址的数据包,保证任何数据包都能被转发出去;同时,只要路由器上还有任何一条可以匹配目的 IP 地址的路由条目,这条路由条目一定比 0.0.0.0/0 更精确,于是路由器会用更精确的路由条目来转发数据包。这就是 静态默认路由,也是静态路由的一种。

在这里插入图片描述

一般家用路由器上除了本地直连路由外就只设置个默认路由,把去往互联网的流量都转发给运营商的路由器。

3.5 网关和默认网关

两个网络之间要实现通信,必须要通过 网关。网关通常位于有路由功能的设备上,网关的 IP 地址可以是路由器的某个接口的 IP 地址,也可以是三层交换机 VLAN 端口的 IP 地址。

一台主机可以有多个网关,当一台主机找不到可用的网关时,数据包可以发送给 默认网关。其实主机上配置的默认网关就是默认路由。

在这里插入图片描述

4.实战演练

4.1 静态路由实验

4.1.1 实验拓扑图

在这里插入图片描述

  • PC 表示电脑 / 主机
  • RT 表示路由器

4.1.2 实验要求

  • 使用 ENSP 模拟器
  • PC1 能 Ping 通 PC2
  • PC1 和 RT1 使用网段 1 互联:192.168.1.0/24
  • PC2 和 RT2 使用网段 2 互联:192.168.2.0/24
  • RT1 和 RT2 使用网段 3 互联:192.168.3.0/24

4.1.3 实验步骤

(1)分配 IP 地址,并把 IP 地址配置到 PC 和 RT 的接口上。

在这里插入图片描述

  • PC1 的 E0/0/1 口配置 192.168.1.1/24

在这里插入图片描述

  • PC2 的 E0/0/1 口配置 192.168.2.2/24

在这里插入图片描述

  • RT1 的 G0/0/1 口配置 192.168.1.10/24,RT1 的 G0/0/0 口配置 192.168.3.10/24

在这里插入图片描述

  • RT2 的 G0/0/1 口配置 192.168.2.20/24,RT2 的 G0/0/0 口配置 192.168.3.20/24

在这里插入图片描述
(2)PC1 分别 Ping 网段1 、网段2 、网段3 的 IP 地址,结果只能 Ping 通同网段的 192.168.1.10,其余不同网段的 IP 地址都无法 Ping 通。其它主机和路由器也是只能 Ping 通同网段的 IP 地址。

在这里插入图片描述
(3)打通从 PC1 到 PC2 的路由,即 PC1 配置默认网关,RT1 配置到达 192.168.2.0/24 网段的静态路由。

在这里插入图片描述
在这里插入图片描述
(4)PC1 还是只能 Ping 通同网段的 192.168.1.10,其余不同网段的 IP 地址都无法 Ping 通。检查各个设备的路由表,发现 PC1 的报文可以发送到 PC2,但是 PC2 和 RT2 没有回程路由,即 PC2 和 RT2 没有到达 PC1 的路由表项,返程报文无法到达 PC1。

在这里插入图片描述
(5)打通从 PC1 到 PC2 的回程路由,即 PC2 配置默认网关,RT2 配置到达 192.168.1.0/24 网段的静态路由。

在这里插入图片描述

在这里插入图片描述
(6)PC1 Ping PC2 成功,并使用 tracert 命令查看网络路径。

在这里插入图片描述

4.1.4 实验总结

配置路由时,需要在通信双方都进行配置,不要忘记配置回程路由。

4.2 浮动静态路由实验

4.2.1 实验拓扑图

在这里插入图片描述

4.2.2 实验要求

  • 使用 ENSP 模拟器
  • 在静态路由实验的基础上,新增一条网线连接 RT1 和 RT2 ,使用网段 4 :192.168.4.0/24
  • 配置浮动静态路由
  • 配置等价静态路由

4.2.3 实验步骤

(1)RT1 的 GE0/0/2 口和 RT2 的 GE0/0/2 口分别配置网段 4 的 IP 地址。

在这里插入图片描述
在这里插入图片描述
(2)通过修改静态路由优先级,使一条路由成为备份条目的路由,这就是浮动静态路由。在 RT1 上配置从 192.168.4.0/24192.168.2.0/24 的浮动静态路由,并且优先级设置为 50 50 50

  • 新增浮动路由前,查看 RT1 上 192.168.2.0/24 的路由条目。

在这里插入图片描述

  • 新增浮动路由后,查看 RT1 上 192.168.2.0/24 的路由条目。

在这里插入图片描述

  • 路由优先级的值越小,静态路由的优先级越高,静态路由的默认路由优先级为 60 60 60。因此新增优先级为 50 50 50 的静态路由为主路由条目,原来优先级为 60 60 60 的静态路由为备份路由。

(3)当一台路由器上有两条不同的路径去往同一个网络的优先级相同的静态路由时,路由器就会同时使用这两条路由来转发流量,这就是等价静态路由。在 RT1 上配置从 192.168.4.0/24192.168.2.0/24 的等价静态路由,即使用默认优先级的值 60 60 60

在这里插入图片描述

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

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

相关文章

OpenCV之怀旧色、冰冻滤镜、熔铸滤镜

怀旧色 源码&#xff1a; void huaijiu(Mat& src,Mat& dst) {for (int h 0;h < src.rows;h ){uchar *d1 src.ptr<uchar>(h);uchar *d2 dst.ptr<uchar>(h);for (int w 0;w < src.cols;w ){int w3 3*w;int r d1[w3 2];int g d1[w3 1];int …

这种长海报制作技巧大揭秘,让你的作品与众不同

制作吸引人的长图海报&#xff0c;是许多人在社交媒体、广告宣传、活动策划等场合中经常需要面对的任务。然而&#xff0c;对于不熟悉设计软件的人来说&#xff0c;这可能是一个挑战。幸运的是&#xff0c;现在有许多在线工具和模板可以帮助我们解决这个问题。下面&#xff0c;…

索引-动图演示存储过程

索引 二叉树存储过程演示 BThree存储过程 sql二级索引搜索过程 Id是唯一键&#xff0c;聚集索引 只存在一个 Name是二级索引 可以存在多个 第一种效率更高&#xff0c;不需要回表

C语言经典100例题(56-60)--画圆;画方;画线

目录 【程序56】题目&#xff1a;画图&#xff0c;学用circle画圆形 【程序57】题目&#xff1a;画图&#xff0c;学用line画直线。 【程序58】题目&#xff1a;画图&#xff0c;学用rectangle画方形。 【程序59】题目&#xff1a;画图&#xff0c;综合例子。 【程序60】题…

idea移除许可证

目录 一、介绍 二、操作步骤 一、介绍 当自己的idea日期要到了&#xff0c;又想续上&#xff0c;但是覆盖不了之前的日期&#xff0c;新的没办法生效。那么就要把原先的许可证先移除&#xff0c;再重新续上新的。 二、操作步骤 1.点击idea的右上角的这个展开 2.选择帮助…

二叉搜索树经典笔试题【力扣、牛客】

文章目录 1.根据二叉树创建字符串2. 二叉树的层序遍历3.二叉树的层序遍历Ⅱ4.二叉树的最近公共祖先1.法一&#xff1a;定位p、q在左还是右 分类讨论2.法二&#xff1a;利用stack求出p、q路径 求相交值 5.二叉搜索树与双向链表1.法一&#xff1a;递归&#xff1a;递归过程修正指…

基础篇之环境搭建

文章目录 一、安装依赖包二、SDK源码包下载三、分块文件合并四、更新SDK五、可能存在的问题与解决方案5.1 contains uncommitted changes5.2 app/QLauncher: UnicodeDecodeError5.3 Cannot checkout app/QLauncher 六、软件包下载6.1 下载地址6.2 使用方法 一、安装依赖包 sud…

PowerDesigner 逆向工程以及IDEA中UML插件

1、MySQL数据库连接&#xff08;JDBC方式&#xff09; 1.1 新建一个pdm&#xff0c;dbms选择mysql 1.2 Database - Connect 选择数据库连接 1.3 配置连接信息 数据库连接这里是通过一个配置文件来获取连接信息的&#xff0c;首次的话因为没有&#xff0c;所以我们需要选择…

git 推送出现fatal: The remote end hung up unexpectedly解决方案

在使用git更新或提交项目时候出现 "fatal: The remote end hung up unexpectedly " 的报错&#xff1b; 报错的原因原因是推送的文件太大。 下面给出解决方法 方法一&#xff1a; 修改提交缓存大小为500M&#xff0c;或者更大的数字 git config --global http.po…

01_网络编程_传统IO

网络编程 1.什么是网络编程 在网络通信协议下&#xff0c;不同计算机上运行的程序&#xff0c;进行的数据传输。 如果想把一个计算的结果&#xff0c;或者是电脑上的文件通过网络传递给你的朋友&#xff0c;就需要用到网络编程。 在实际生活中&#xff0c;网络通信无处不在…

javabasic

计算机基础 一、学前知识 1. 计算机组成 2. 进制的概念 &#xff08;1&#xff09;二进制的存储 计算机不管是内存还是硬盘&#xff0c;都是以二进制的形式存储。如同一张巨大的表格&#xff0c;里面都是由0和1组成。 二进制&#xff1a;逢2进1 基数为2&#xff0c;数值部分…

DP读书:《openEuler操作系统》(二)操作系统的发展史

操作系统的发展历史 操作系统的发展历史手工操作时代批处理系统多道程序系统分时操作系统CTSSMULTICS的历史UNIX和Linux的历史Debian系列Red Hat系列 DOS和Windows的历史DOS的历史&#xff1a;Windows的历史&#xff1a; Android和iOS的历史Android&#xff1a;iOS&#xff1a;…

MCU软核 3. Xilinx Artix7上运行cortex-m3软核

0. 环境 - win10 vivado 2018.3 keil mdk - jlink - XC7A35TV12 1. 下载资料 https://keilpack.azureedge.net/pack/Keil.V2M-MPS2_DSx_BSP.1.1.0.pack https://gitee.com/whik/cortex_m3_on_xc7a100t 2. vivado 2018 Create Project -> Next -> -> Project n…

web安全漏洞-SQL注入攻击实验

实验目的 学习sql显注的漏洞判断原理掌握sqlmap工具的使用分析SQL注入漏洞的成因 实验工具 sqlmap是用python写的开源的测试框架&#xff0c;支持MySQL&#xff0c;Oracle&#xff0c;PostgreSQL&#xff0c;Microsoft SQL Server&#xff0c;Microsoft Access&#xff0c;I…

2023微信头像生成小程序源码/基于skyline+vue3+t

微信头像生成小程序&#xff0c;基于skylinevue3t该项目已适配微信小程序隐私政策&#xff0c;截图、获取头像等诸多新的接口 如何使用&#xff1a; 将代码导入到HBuilderX开发工具&#xff0c;可无需修改任何代码&#xff0c;运行并编译到微信开发者工具 skyline需要使用微…

C++ 的继任者:Carbon Language | 开源日报 0911

carbon-language/carbon-lang Stars: 31.1k License: NOASSERTION Carbon Language 是一个实验性的 C 继任者项目。它旨在提供与 C 相当的性能&#xff0c;并具有低级访问位和地址的功能&#xff0c;以及与现有 C 代码进行互操作、快速可扩展构建等特点。该项目还强调了以下核…

io概述及其分类

一、IO概念 • I/O 即输入Input/ 输出Output的缩写&#xff0c;其实就是计算机调度把各个存储中&#xff08;包括内存和外部存储&#xff09;的数据写入写出的过程&#xff1b; I : Input O : Output 通过IO可以完成硬盘文件的读和写。 • java中用“流&#xff08;stream&am…

太牛啦!Python入门到精通 只用了3个多月

最近 GitHub 热榜上持续有一个这样的 Python 项目&#xff0c;自称「100天从新手到大师」。目前 Star 数量已有 19000 多。 作者在开头列出了 Python 的一些应用领域 作者的计划目录 Day01~15 - Python语言基础 Day16~20 - Python语言进阶 Day21~30 - Web前端入门 Day31~3…

基于RuoYi-Flowable-Plus的ruoyi-nbcio项目的formdesigner文件上传与回显处理

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 本节说明ruoyi-nbcio项目的formdesigner文件上传与回显处理&#xff0c;不过目前还只实现oss的formdesigner的文件上传与回显功能。 1、前端方面 formdesigne…

IDEA中Debug测试的基本使用

Debug简介 Debug是用来追踪代码&#xff0c;通常在程序运行中出现异常的时候启动debug模式可以分析定位异常发生的位置&#xff0c;以及在运行过程中参数的变化&#xff0c;通常我们也可以启动Debug模式来跟踪代码的运行流程去学习三方框架的源码 Debug与Junit的区别 Debug与JU…