四、网络层(下)

news2024/11/24 20:38:59

4.9 CIDR

CIDR(Classless Inter-Domain Routing),是IPv4地址分配和路由表选择的一种灵活且高效的方法。

1992年,由于分类地址中的B类地址很快就被分配完了,且路由表中的表项也急剧增加,分类的IP地址并不能很好的利用地址空间。

所以CIDR结合了子网划分的经验,将网络号和子网号结合在一起作为网络前缀,与主机号组合在一起从新构成了一个二级地址。

看似回到了最开始的起点,但是由于网络前缀是变长的,所以这是一种能更加灵活的使用地址空间的方法。

其有两大特点就是:

    1. 消除了传统的ABC类地址以及划分子网的概念。
    2. 融合了子网地址与子网掩码,方便子网划分。

CIDR记法

IP地址后加上“/”,然后写上网络前缀(可以是任意长度的位数)。

例如:128.14.32.0/20

CIDR地址块

CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。

例子:128.14.35.7/20就是某一地址块中的一个地址

其二进制可以表示为:10000000 00001110 00100011 00000111

最小地址:10000000 00001110 00100000 00000000【主机号全零】

            128.14.32.0

最大地址:10000000 00001110 00101111 11111111【主机号全一】

            128.14.47.255

地址快:10000000 00001110 00100000 00000000【主机号全零】

            128.14.32.0

            “/20地址块”

地址掩码(子网掩码):11111111 11111111 11110000 00000000【将网络前缀除外的都变0】

地址空间大小:128.14.35.7/20的网络号占20位,剩下12位主机号,故其地址空间大小为212

构成超网

将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合

如图中,去到网络1和网络2假设都要走的是R1的接口a,那么路由表中的数据就要占两行 。

如此一来,路由器中的表项就会增加,不便于我们进行维护,所以要进行路由聚合。

方法:将网络前缀缩短,取所有网络地址的交集

最长前缀匹配

使用CIDR时,由于查找路由表项的方法是将地址掩码与IP地址按位相与,故查找路由表时可能得到几个匹配结果,我们应该选择网络前缀最长的路由。

其原理是前缀越长,地址块越小,路由越具体。

例子:

 

 

4.10 ARP

ARP全称Address Resolution Protocol,即地址解析协议。在进行网络通信时,每个设备都有一个唯一的MAC地址和IP地址,用来进行数据包的发送和接收。而ARP协议的作用就是根据IP地址找到对应的MAC地址,以确保正确交付数据到目标设备。

也就是解决下一跳走哪的问题。

ARP协议的使用过程

    检查ARP告诉缓存,有时对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中的所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20分钟更新一次)。

ARP协议的4种典型情况

    1. 主机A发给本网络上的主机B,用ARP找到主机B的硬件地址;
    2. 主机A发给另一网络上的主机B,用ARP协议找到本网络上的一个路由器(默认网关)的硬件地址;
    3. 路由器发给本网络的主机A,用ARP协议找到主机A的硬件地址;
    4. 路由器发给另一网络的主机B,用ARP找到本网络上的一个路由器的硬件地址。

ARP高速缓存

在请求目标主机的 MAC 地址时,每次获取目标主机 MAC 地址都需要发送一次 ARP 请求,然后根据响应获取到 MAC 地址。为了避免重复发送 ARP 请求,每台主机都有一个 ARP 高速缓存。当主机得到 ARP 响应后,将目标主机的 IP 地址和 MAC 物理地址存入本机 ARP 缓存中,并保留一定时间,这个缓存就是ARP缓存表。

默认网关

在TCP/IP网络中,默认网关又叫缺省网关或缺省路由器,英文名为Default Gateway,是子网与外网连接的设备,通常是一个路由器,而该路由器的IP地址即为网络配置参数的默认网关地址。通常地,IP地址192.168.1.X的默认网关是192.168.1.1。

数据传输的例子

  1. 假设现在是同一个局域网下,主机1给主机3发送文件

     2.传输层会为应用层的文件进行分段(根据文件大小决定是否分段)

    3.网络层会为传输层的段进行封装(加上IP地址),以及是否分片(取决于链路层的MTU

      4.数据链路层将网络层的数据进行封装,加上控制帧和MAC地址;

 

如果主机一的ARP高速缓存中没有主机三的MAC地址就会向主机三发送一个广播APR请求分组:此时也只会有主机三进行回应。

 

可以将这两个分组中的含义理解为:

-:“我的IP地址是IP1,我想要给IP地址为IP3的主机发送信息,我的物理地址是MAC1,请问三号主机你的MAC地址是什么呢?”

-:“我的IP地址是IP3,我的MAC地址是MAC3

5. 接下来物理层就会将链路层的数据放在链路上传播。

 

  1. 假设现在不在同一个局域网下主机1给主机5发送文件;

     2.传输层会为应用层的文件进行分段(根据文件大小决定是否分段);

    3.网络层会为传输层的段进行封装(加上IP地址),以及是否分片(取决于链路层的MTU);

    4.数据链路层开始对传输层的数据进行封装,加上IP地址和MAC地址以及控制帧;

但是由于不再一个局域网下,主机1不知道主机5的MAC地址,更不知道数据的下一跳在哪?

 

由于交换机和集线器都没有IP地址,所以主机一中的数据的下一跳只能是主机二,主机三,以及其对应的默认网关。

由于主机五和主机一不再同一局域网下,所以主机一的下一跳之能寄希望于默认网关;

即现在数据链路层该封装上的MAC地址为其下一跳(默认网关)的MAC地址MAC6,但是主机一并不知道,所以其该继续发送广播分组了。

 

“我现在的IP地址是IP1,我现在的MAC地址是MAC1,请问我的IP地址为IP6的默认网关你的MAC地址是什么?”

“我的IP地址是IP6,物理地址是MAC6。”

于是得到MAC6后就将其封装完成,交给物理层处理。

这时数据链路层上的数据就可以被物理层放在链路上传输了。

数据现在到了路由器,数据开始解封装和再封装;(由于路由器是属于网络层的设备,其最高支持三层,也就是说其会解封装到网络层再重新封装上IP与MAC地址)

这些不知道的MAC地址当然需要再次使用ARP协议进行获取。

最后数据被物理层送到主机5。

例题

 

4.12 ICMP

Internet Control Message Protocol ,网际控制报文协议。

看一下ICMP以及IGMP在TCP/IP协议栈中的位置,不难发现:

其主要起一个桥梁的作用,为了更有效的转发IP数据报和提高交付成功的机会。

主要作用:

ICMP协议支持主机或路由器:

    1. 差错或异常报告:发送特定ICMP报文。
    2. 网络探询。

ICMP报文

 

ICMP差错报文:

1.终点不可达:当路由器或者主机无法交付数据报时就向源点发送终点不可达报文。无法交付

2.源点抑制:当路由器或者主机由于拥塞而丢弃数据报时,就向源点发送抑制报文,使源点知道应当将数据报的发送速度放慢。拥塞丢数据

3.时间超过:当路由器收到生存时间TTL=0的数据报时,除了丢弃该数据报外,还要向源点发送时间超过报文。当终点不能在预定时间内收到一个数据报的全部数据片时,就把已收到的数据片全部丢弃,并向源点发送时间超过报文。TTL=0

4.参数问题:当路由器或目的主机收到的数据报首部有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。首部字段有问题

5.改变路由(重定向):路由器把改变路由报文发给主机,让主机知道下次应该将数据报发送给另外的路由器(可通过更好的路由)。值得更好的路由

ICMP差错报告报文数据字段

ICMP差错报告报文实际上就是一个IP数据报。

不发送ICMP差错报告报文的情况

    1. ICMP差错报告报文不再发送ICMP差错报告报文;
    2. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文;
    3. 对具有组播地址的数据报都不发送ICMP差错报告报文;
    4. 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。

ICMP询问报文

Ping就是应用了回送请求和回答报文。

ICMP的应用

Ping :测试两个主机之间的连通性,使用了ICMP回送请求和回答报文

Traceroute :跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文

4.13 IPv6

IPV6的由来

目前广泛应用的IPV4地址是上世纪70年代的产物,互联网的飞速发展,到2011年二月,IPV4地址已经耗尽,为了解决这个问题,有以下三种措施。

    1. 采用无分类编址CIDR,使IP地址的分配更加合理。
    2. 采用网络地址转换NAT方法节省全球的IP地址。
    3. 采用具有更大地址空间的新版本的IPV6。

前两种方法只是在延长IPv4的寿命,只有IPV6从根本上解决了IP地址耗尽的问题。

IPV6的特点

IPV6

IPv4

对比结果

1. 更大的地址空间:128bit

1.只有32bit

IPV6的地址空间是IPV4的2128-32=296倍,从长远来看,IPV6地址绝对够用

2. 扩展的地址结构层次

IPV6因为地址空间更大,所以可以划分更多的层次

3. 改进的选项,IPv6首部长度是固定的,其选项放在有效荷载中

3.IPV4所规定的选项是固定不变的

IPv6灵活可变

4. 灵活的首部格式,IPV6定义了许多可选的扩展首部。

IPV6可以提供比IPV4更多的功能,而且能提高路由的处理效率,这是由于路由器对扩展首部都不处理。

5. 允许协议扩充

5.不允许

IPv6可以不断扩充功能

6. 支持即插即用(即自动配置)

6.不支持

IPV6不需要使用DHCP

7. 支持资源的预分配

7.无

IPV6支持实时音/视频等要求保证一定带宽和时延的应用

8. IPV6只支持源主机分片,是端到端的,意思说IPV6在传输时不支持中途分片

8.允许传输路径中的路由分片

9. 固定的40B首部长度

9.IPV4首部长度可变且必须是4B的整数倍

10. 增大了安全性

身份鉴别和保密功能是IPV6的扩展首部

11.不与IPV4兼容,但是兼容其他协议兼容

11.亦是

IPV6需要在少数地方做出必要的修改,大部分是为了处理长地址

IPV6数据报

IPV6取消了检验和字段,这样就加快了路由器处理数据报的效率,。由于数据链路层会丢弃掉检测出差错的帧,传输层也有相应的差错处理机制,因此网络层的擦错检测就可以精简掉。

 

IPV6地址

目的地址分类

1.单播

传统的点对点通信

2.多播

一点对多点通信,数据报发送到一组计算机中的每一台

3.任播

IPV6增加的一类,任播的终点是一组计算机,但是数据报只交给其中一台,通常是距离最近的一台

IPV6地址记法

冒号十六进制表示法,每四位用一个十六进制数表示,并用冒号分隔每十六位。

4BF5:0000:0000:0000:BAF5:039A:BE8A:2170

4BF5:0:0:0:BAF5:39A:BE8A:2170

4BF5::BAF5:39A:BE8A:2170(相继的0值域可用双冒号代替)

地址分类

地址类型

二进制前缀

解释

未指明地址

::/128

不能做目的地址,只能做主机源地址

环回地址

::1/128

与IPV4相似,但是IPV6的环回地址仅有此一个

多播地址

FF00::/8

占IPV6地址空间的1/256

本地链路单播地址

FE80::/10

类似于IPv4中的私有IP地址

全球单播地址

除了上述外所有IPV6地址

用的最多的地址

IPV6全球单播地址采用三级结构:

与IPV4不同,IPV6地址的接口标识符有64位之多,足以对各种接口的硬件地址直接进行编址。这样,IPv6就可以直接从128位地址的最后64位中直接提取出相应的硬件地址,而不需要使用地址解析协议ARP进行地址解析。

IPV4到IPV6的过渡

从IPV4向IPV6过渡只能采用逐步演进的办法,同时还必须使新安装的IPV6系统能够向后兼容。IPV6系统必须能够接收和转发IPV4分组,并且能够为IPV4分组选择路由。

从IPV4过渡到IPV6的策略:

  1. 双协议栈
  2. 隧道技术,指IPV6数据报要进入IPV4网络时,把整个IPV6数据报封装为IPV4数据报的数据部分,使原来的IPV6数据报好像在IPV4网络的隧道中传输。当IPV4数据报离开IPV4网络时,再将其数据部分交给主机的IPV6协议。

4.14IP组播

单播,广播,组播

方式

特点

比喻

地址

单播

单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。

ABC类地址

广播

广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。

 

网络号特定,主机号全为1的地址

组播(多播)

当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。

D类地址:224~239

单播与多播对比

方式

特点

单播

在发送者和每一接收者之间需要单独的数据信道。

多播

组播提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器【运行组播协议的路由器】的支持)。

IP组播地址

IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)。

组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目的地址。源地址总是为单播地址。

  1. 组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。
  2. 对组播数据报不产生ICMP差错报文。
  3. 本非所有的D类地址都可以做为组播地址。

因特网范围内组播

①IGMP协议(网络层)

*让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组。

工作流程

②组播路由选择协议

由于在网络中主机可能随时都会退出或加入别的组播组,所以就需要组播路由协议进行找出以源主机为根节点的组播转发树

1.构造树可以避免在路由器中兜圈子,对不同的多播组对应不同的组播树;

2.同一个多播组,对不同的源点也会有不同的多播转发树。

组播路由选择协议常用的三种算法:

①基于链路状态的的路由选择

②基于距离向量的路由选择

③协议无关的组播(稀疏/密集)

硬件组播

同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧。组播MAC地址以十六进制值01-00-5E打头,余下的六个十六进制是根据IP组播组地址的最后23位转换得到的。

TCP/IP协议使用的以太网多播地址的范围是:

01-00-5E-00-00-0001-00-5E-7F-FF-FF.

由于不同的D类组播地址可能会映射出相同的MAC地址(MAC地址开头是01-00-5e,后23位来自D类IP地址,万一一样呢?),为了避免错误:

收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。

4.15移动IP

移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。

概念点

概念

含义

移动结点

具有永久IP地址的移动设备。

归属代理/本地代理

一个移动结点的永久“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。(家)

永久地址/归属地址/主地址

移动站点在归属网络中的原始地址。

外部代理/外地代理

在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。(工作的地方)

转交地址/辅地址

可以是外部代理的地址或动态配置的一个地址。

 

移动IP通信过程

        1.初到外界

 

 

 

 

 

 

        2.跳槽

 

        3.归家

 

4.16RIP

概述

Routing Information Protocol,该路由协议基于距离矢量算法,使用“跳数“(最大15)来衡量到达目的地址的路由距离。

由来

在出现动态路由之前,静态路由有几个问题无法解决:

(1)当网络拓扑结构和链路状态发生改变,需要对路由器的静态路由信息进行大范围修改,工作复杂度高。

(2)网络发生故障时,不能重选路由,很可能路由失败。

于是就出现了动态路由协议,路由器自动学习,自适应网络的变化,无需人工更改配置。

适用

RIP适用于小型网络,因为RIP是基于距离矢量的算法。由于其只能支持0-15跳,第十六跳会被标记成无限大或不可达。所以在整个网络中,只能有16个路由器相互成为RIP的邻居路由器,所以基于以上原理,RIP只使用于中小型网络。

步骤

①路由器向邻居节点宣告自己的路由;

②网络中的路由器从自己的邻居路由器得到路由信息,并将这些路由信息连同自己本地路由信息发送给其他邻居;

③这样一级级的传递下去以达到全网同步。

④每个路由器都不了解整个网络拓扑,它们只知道自己直接相连的网络情况,并根据从邻居得到的路由信息来更新自己的路由。

*每30秒就更新路由。

路由信息交换细节

1.仅和相邻路由器交换信息

2.交换的信息是自己的路由表

3.每30s交换一次路由信息,然后路由器根据新信息来更新路由表。若超过180s没有收到邻居路由器的通告,则判定邻居没了,并更新自己的路由表。

*路由器刚开始工作时,只知道直接连接的网络的距离距离为1,接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。

*经过若干次更新后,所有的路由器最终会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。

RIP报文格式

使用UDP传送数据。应用层协议。

距离向量算法

 

 

好消息传的快,坏消息传的慢

 

 

 

 

4.17OSPF

概述

Open Shortest Path First开放式最短路径优先是一种基于链路状态的动态路由协议。

“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的;

“最短路径优先”是因为使用的迪杰斯特拉提出的最短路径算法。

OSPF最主要的特征就是使用分布式的链路状态协议。

路由信息交换细节

和谁交换?

1.使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。广播

最终整个区域内所有路由器都得到了这个信息的一个副本。(广播

交换什么?

2.发送的信息就是与本路由器相邻的所有路由暴的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价--费用、距离、时延、带宽等)。

多久交换?

3.只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。

4.最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。

OSPF报文

OSPF直接使用IP数据报传送数据

链路状态路由算法

特点

通过划分区域对网络进行管理,分为骨干区域(area 0)和非骨干区域。

RIP与OSPF的对比

RIP特性

带来的问题

优化或解决的方式

逐跳收敛

收敛慢,故障恢复时间长

“收到更新->计算路由->发送更新”改为“收到更新->发送更新->计算路由”

传闻路由更新机制

缺少对全局网络拓扑的了解

路由器基于拓扑信息,独立计算路由表

最多有效跳数为15

环形路由中,使远端路由不可达

不限定跳数

以“跳数”为度量

存在选择次优路由的风险

将链路宽带作为选路参考值

30s刷新一下路由信息

30min刷新一下路由信息

OSPF五类报文

①Hello 发现和维护邻居关系

②Database Description 发现链路状态数据库摘要

③Link State Request 请求特定的链路状态信息

④Link State Update 发送详细的链路状态信息

⑤Link State ACK 发送确认报文

OSPF的七种状态

①Down State(失效)

该状态还没有进行hello包的收发,一旦进行hello的收发,则进入下一状态

②Init State(初始化)

接收到的hello包中并不存在本地的route-id,但是会将发送该hello包的邻居置为init状态,此时双方并没有建立双向通信,随着双方互相收发hello包,于是才会进入下一状态

③Two-way State(双向通信)

接收到的hello包中存在本地的route-id,则双方就会进入2-way双向通信状态。该状态也是OSPF最稳定的状态之一,它标志着邻居关系的建立,同时也是邻接关系建立的基础

④Exstart State(预启动)

使用类似helloDD报文进行主从关系(Master/Slave)选举,route-id数值大为主,优先进入下一状态。此时的DD报文是空的。

⑤Excharge State(准交换)

使用真正的DD报文进行数据库目录的共享

⑥Loading State(加载)

使用LSRLSULSAck去获取未知的LSA信息(LSDB同步)

⑦Full State(全毗邻)

邻接关系建立的标志,此时不再进行LSDB的同步

4.18BGP

概述

和谁交换?

与其他AS的邻站BGP发言人交换信息。

交换什么?

交换网络可达性的信息,既要到达某个网络所要经过的一系列AS

多久交换?

发生变化时更新有变化的部分。

交换信息过程

BGP所交换的网络可达性的信息就是要到达某个网络所要经过的一系列AS。当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由。

BGP协议格式

一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接,即通过TCP传送,然后在此连接上交换BGP报文会话(session),利用BGP会话交换路由信息。

BGP是应用层协议,借助TCP传送。

BGP协议特点

1.BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀,下一跳路由器,以及到达该目的网络所要经过的各个自治系统的序列。

2.在BGP刚刚运行时,BGP的邻站是交换整个的BGP路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络宽带和减少路由器的处理开销都有好处。

常用的BGP-4的四种报文

OPEN(打开)

用来与相邻的另一个BGP发言人建立关系,并认证发送方。

UPDATE(更新)

通知新路径或撤销原路径。

KEEPALIVE(保活)

在无UPDATE时,周期性证实邻站的连通性;

也作为OPEN的确认报文。

NOTIFICATION(通知)

报告先前报文的差错;

也被用于关闭连接。

4.19三种路由协议的比较

协议

RIP

OSPF

BGP

类型

内部

内部

外部

路由算法

距离-向量

链路状态

路径-向量

传递协议

UDP

IP

TCP

路径选择

跳数最少

代价最低

较好,非最佳

交换节点

和本节点相邻的路由器

网络中所有的路由器

和本节点相邻的路由器

交换内容

当前路由器知道的全部信息,即自己的路由表

与本路由器相邻的所有路由器的链路状态(也存在自己路由表中)

首次:整个路由表;

非首次:有变化的部分。

4.20网络层设备

路由器

输入端口的处理

输出端口的处理

分组丢失的原因

若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。

路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。

路由表和路由转发

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

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

相关文章

高校实训产品:教育AI人工智能实训与科研解决方案

保持前沿、提升就业、低成本的教育AI实训全场景方案 产品概述 AIGC实训云图站解决方案为高校提供了灵活、高效的人工智能实训平台。通过弹性裸金属调度技术和GPU虚拟化,实现高性能与低成本的兼顾,为学生和教师提供不受时间和空间限制的实操机会。平台涵…

Linux查看触摸坐标点的方法,触觉智能RK3562开发板,瑞芯微、全志等通用

平时遇到键盘、鼠标、触摸板等输入设备无响应等异常情况时,一般通过更换设备判断异常。但在遇到更换正常设备后,输入仍然异常的情况下,可以借助evtest工具查看内核的上报事件信息,协助定位问题所在。 本次使用的是触觉智能EVB356…

Yolo v11目标检测实战1:对象分割和人流跟踪(附源码)

一、运行效果演示 多目标跟踪 二、基本理论和核心概念 2.1 对象分割 对象分割是指将图像中的每个像素标记为属于某一特定对象或背景的过程。对于YOLO来说,对象分割是其功能的一个扩展,通过添加额外的分支来预测每个检测框内的像素级掩码,从…

Python画笔案例-073 绘制晃悠悠的海龟

1、绘制晃悠悠的海龟 通过 python 的turtle 库绘制 晃悠悠的海龟,如下图: 2、实现代码 绘制晃悠悠的海龟,以下为实现代码: """晃悠悠的海龟.py """ import time # 导入时间模块 import math # 导…

TypeScript 算法手册 【计数排序】

文章目录 1. 计数排序简介1.1 计数排序定义1.2 计数排序特点 2. 计数排序步骤过程拆解2.1 找出数组中的最大值2.2 创建计数数组2.3 统计每个数字出现的次数2.4 重建排序后的数组 3. 计数排序的优化3.1 处理负数3.2 对象数组排序案例代码和动态图 4. 计数排序的优点5. 计数排序的…

[VULFOCUS刷题]tomcat-pass-getshell 弱口令

tomcat-pass-getshell 弱口令 启动容器,打开网站 点开manageapp,输入弱口令 tomcat/tomcat 之后在下面上传jsp大马,首先生成一个jsp马 这里我直接使用github别人生成好的 tennc/webshell: This is a webshell open source project (github.…

Image-Text Co-Decomposition for Text-Supervised Semantic Segmentation

highlighted region-word pair contrastive loss (L h c l _{hcl} hcl​) 辅助信息 mmcv环境不好满足,不建议复现

理解无监督学习、无监督图像分割

系列文章目录 文章目录 系列文章目录一、无监督学习如何学习 能不能举一个非常具体的例子,带着运算过程的例子总结 二、在图像分割中呢,具体怎样实现无监督示例:使用自编码器和k-means进行无监督图像分割1. **数据准备**2. **构建自编码器**3…

小练--盲打学成在线

免责声明:本文仅做分享! 学成在线 (olin-yi.github.io) 目录 目录构造 基础公共样式 base.css index.html 版心居中 网页制作思路 CSS 实现思路 头部整体布局 logo 导航制作技巧(nav) 搜索区域(search&am…

Leetcode 2300. 咒语和药水的成功对数

1.题目基本信息 1.1.题目描述 给你两个正整数数组 spells 和 potions ,长度分别为 n 和 m ,其中 spells[i] 表示第 i 个咒语的能量强度,potions[j] 表示第 j 瓶药水的能量强度。 同时给你一个整数 success 。一个咒语和药水的能量强度 相乘…

进程的环境

进程环境 main 函数 当内核执行 C 程序时,在调用 main 函数之前先调用一个特殊的启动例程。可执行文件会将此启动例程指定为程序的起始地址 —— 这是由连接编辑器设置,而连接编辑器是由 C 编译器调用。启动例程从内核取得命令行参数和环境变量值&…

Nodejs多版本切换工具NVM

1 nvm介绍 NVM(Node Version Manager)是一个用于管理多个Node.js版本的工具,它允许用户在同一台计算机上安装和切换不同版本的Node.js。这对于开发者来说非常有用,因为不同的项目可能需要不同版本的Node.js环境。 NVM功能特性&a…

【Spring】Spring Boot项目创建和目录介绍

1 Spring Boot 介绍 Spring 让 Java 程序更加快速、简单和安全,Spring 对于速度、简单性和生产力的关注使其成为世界上最流行的 Java 框架 Spring 官方提供了很多开源的项目,覆盖范围从 Web 开发到大数据,Spring 发展到了今天,已…

使用Mac高频重复输入时别再傻傻的复制粘贴了,让快捷短语解放你的双手

你在使用Mac的时候,常用的句子、词语、代码都还在自己手动输入吗,当你需要高频的输入同样的内容,手动输入效率太低了,我发现一款实用的工具帮你解决这个问题,快捷短语-高频输入神器,更支持iCloud云备份。 快…

记录一个chatgpt接口站的明文密码泄露漏洞

前言 前段时间看到的一个chatgpt接口网站,注册过后,习惯性的F12看下请求包和响应包,于是就有了这篇文章。 漏洞 查看登录的一系列流量,除了前端界面相关的,一共有三个请求,分别是login,getle…

msvcr110.dll丢失怎么弄,详细介绍4种可靠解决方法

1. msvcr110.dll 简介 1.1 定义及作用 msvcr110.dll 是 Microsoft Visual C 2012 Redistributable Package 的一部分,它是一个动态链接库(Dynamic Link Library)文件,对于运行使用 Visual C 2012 编译的应用程序至关重要。这个库…

如何在 DAX 中计算多个周期的移动平均线

在 DAX 中计算移动聚合很容易。但是,计算一段时间内的移动平均值时会有一些陷阱。由于其中一些陷阱是定义问题,因此我们必须小心,不要选择错误的方法。让我们看看细节。欢迎来到雲闪世界。 添加图片注释,不超过 140 字&#xff08…

算法笔记(五)——分治

文章目录 算法笔记(五)——分治快排颜色分类排序数组数组中的第K个最大元素库存管理 III 归并排序数组交易逆序对的总数计算右侧小于当前元素的个数翻转对 算法笔记(五)——分治 分治算法字面上的解释是“分而治之”,就…

mindsearch run 本地服务

bing_browser.py ~/.conda/envs/mindsearch/lib/python3.10/site-packages/lagent/actions# vim bing_browser.py 修改提示词文件 MindSearch/mindsearch/agent/mindsearch_prompt.py # flake8: noqasearcher_system_prompt_cn """## 人物简介 你是一个可以…

易贝恩副总经理朱洪泽受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 北京易贝恩项目管理科技有限公司副总经理朱洪泽女士受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾,演讲议题为“从手动到智能:项目管理系统助力项目经理提升执行效率”。大会将…