RIP路由协议的更新(电子科技大学TCP/IP第二次实验)

news/2024/4/20 12:24:03/文章来源:https://blog.csdn.net/weixin_53284122/article/details/129223328

一.实验目的

1、掌握 RIP 协议在路由更新时的发送信息和发送方式

2、掌握 RIP 协议的路由更新算法

二.预备知识

1、静态路由选择和动态路由选择

2、内部网关协议和外部网关协议

3、距离向量路由选择

三.实验原理

RIP 协议(RFC 1058)是一个基于距离向量路由选择的内部网关协议:每台路由器定期与邻居路由器交换各自路由表中的所有路由信息,使用Bellman-Ford 算法计算路由表。RIP 协议的路由度量(Metric)是到目的网络的跳数(hop count),最大跳数值为 15。

运行RIP 协议的路由器初始接入到网络上时,它的路由表中只有根据其接口上的 IP 配置信息获得的直连网络的直连路由。随着 RIP 路由信息的不断交换,互联网中的每台RIP 路由器最终会掌握整个互联网的知识,即 RIP 协议收敛。

RIP 协议有 2 种类型的报文:RIP 请求报文和RIP 响应报文,它们都封装在 UDP 数据报中广播发送。

RIP 请求报文可以询问特定路由项目或所有路由项目。当运行 RIP 协议的路由器刚接入网络中时,会广播发送一份询问所有路由项目的 RIP 请求报文。

RIP 响应报文可以是询问或非询问的。询问的 RIP 响应报文仅在回应RIP 请求报文时单播发送给请求者,发送的内容是请求报文中所请求的特定路由项目或整个路由表的路由项目。非询问的 RIP 响应报文则是定期的广播发送,发送的内容是整个路由表中的路由项目。RIP 响应报文中携带的RIP 路由通告信息只有目的网络地址和跳数值。

RIP 协议使用 3 个计时器来支持 RIP 协议的操作。

定期计时器(30 秒)控制定期的 RIP 路由通告,但为了避免出现整个互联网中的路由器同时更新而引起的过载问题,实际实现中路由器的 RIP 路由通告间隔通常是 25~35 之间的一个随机数。

截止期计时器(180 秒)管理 RIP 路由的有效性,路由器每次收到一条RIP 路由的更新信息,就复位该路由的截止期计时器。如果一条 RIP 路由的截止期计时器期满,则将该路由标记为无效,即将其跳数设置为 16,表示该路由的目的不可达。

路由器收到邻居通告的一条无效路由,或因为截至计时器期满而产生一条无效路由时,并不立即从路由表中清除无效路由,而是为该无效路由启动一个无用信息收集计时器(120 秒),并继续在定期的路由通告中通告跳数为 16 的无效路由。仅当无效路由的无用信息收集计时器期满时才将其清除。无用信息收集计时器使得邻居路由器能够获知某条路由是无效的。

RIP 协议存在缓慢收敛和不稳定的问题。为了解决这些问题,RIP 协议中采用了触发更新和水平分割方法。

触发更新是当网络有变化时,路由器立即发送更新信息;如果网络没有变化,则仍是定期发送更新信息。触发更新不会影响路由器的RIP 定期计时器。

水平分割是在发送路由信息时,路由器根据发送接口选择发送路由表中的路由信息,简单的说就是从某个接口收到的路由信息不能再从该接口发送出去。

四.实验内容

五.实验步骤

实验步骤详见TCP//IP实验指导书。由于步骤过长,就在此不在赘述。

六、实验数据及结果分析

1、步骤 2 中根据R1 路由表中的哪些信息可以确保实验网中的RIP 协议已经收敛? 为什么?

答:

1.连续多次输入show ip route路由命令之后,R1的路由表项不再发生变化。而且路由表项数量和拓扑中网络数量一致且没有差错。

2. 根据路由表中到达子网3的跳数,RIP路由算法收敛之后,到达子网3的条数应该为2

2、汇总 3 个子网上捕获的 RIP 报文。按照报文的捕获顺序,分阶段分析记录每个子网中每台路由器在两次拓扑变化(第 1 次拓扑变化:图 A到图B,第 2 次拓扑变化:图B到图 A)过程中发出的RIP 报文信息:

阶段 1:第 1 次拓扑变化开始前(RIP 已收敛)的 2 个周期的RIP 报文;

阶段 2:第 1 次拓扑变化时RIP 收敛过程中的所有 RIP 报文;

阶段 3:第 1 次拓扑变化时RIP 完成收敛后的 2 个周期的RIP 报文;

阶段 4:第 2 次拓扑变化时RIP 收敛过程中的所有 RIP 报文;

阶段 5:第 2 次拓扑变化时RIP 完成收敛后的 2 个周期的RIP 报文。

子网1:路由器R1

IP 分组首部

UDP数据包首部

源IP

172.16.1.1

目的IP

255.255.255.255

源端口

520

目的端口

520

RIP报文

阶段

命令

路由信息项1

路由信息项2

捕获时间

网络地址

跳数

网络地址

跳数

1

Response

172.16.2.0

1

172.16.3.0

2

18:26:04

Response

172.16.2.0

1

172.16.3.0

2

18:26:33

2

Response

172.16.2.0

16

172.16.3.0

16

18:34:52

Response

172.16.2.0

16

172.16.3.0

16

18:35:16

Response

172.16.2.0

16

172.16.3.0

16

18:35:43

3

-

-

-

-

-

-

4

Response

172.16.2.0

1

172.16.3.0

2

18:43:23

5

Response

172.16.2.0

1

172.16.3.0

2

18:43:38

Response

172.16.2.0

1

172.16.3.0

2

18:44:05

子网2:路由器R1

IP 分组首部

UDP数据包首部

源IP

172.16.2.1

目的IP

255.255.255.255

源端口

520

目的端口

520

RIP报文

阶段

命令

路由信息项1

路由信息项2

捕获时间

网络地址

跳数

网络地址

跳数

1

Response

172.16.1.0

1

-

-

18:26:33

Response

172.16.1.0

1

-

-

18:27:00

2

-

-

-

-

-

-

3

-

-

-

-

-

-

4

Request

Not specified

16

-

-

18:43:21

Response

172.16.1.0

1

-

-

18:43:38

5

Response

172.16.1.0

1

-

-

18:44:05

Response

172.16.1.0

1

-

-

18:44:32

子网2:路由器R2

IP 分组首部

UDP数据包首部

源IP

172.16.2.2

目的IP

255.255.255.255

源端口

520

目的端口

520

RIP报文

阶段

命令

路由信息项1

路由信息项2

捕获时间

网络地址

跳数

网络地址

跳数

1

Response

172.16.3.0

1

-

-

18:26:44

Response

172.16.3.0

1

-

-

18:27:13

2

Response

172.16.3.0

1

-

-

18:35:02

Response

172.16.3.0

1

-

-

18:35:31

Response

172.16.3.0

1

-

-

18:36:00

Response

172.16.3.0

1

-

-

18:36:30

Response

172.16.3.0

1

-

-

18:36:57

Response

172.16.3.0

1

-

-

18:37:24

Response

172.16.1.0

16

172.16.3.0

1

18:37:50

Response

172.16.1.0

16

-

-

18:37:52

Response

172.16.1.0

16

172.16.3.0

1

18:38:20

3

Response

172.16.3.0

1

-

-

18:38:49

Response

172.16.3.0

1

-

-

18:39:17

4

Response

172.16.3.0

1

-

-

18:43:21

Response

172.16.3.0

1

-

-

18:43:56

5

Response

172.16.3.0

1

-

-

18:44:05

Response

172.16.3.0

1

-

-

18:44:32

子网3:路由器R2

IP 分组首部

UDP数据包首部

源IP

172.16.3.2

目的IP

255.255.255.255

源端口

520

目的端口

520

RIP报文

阶段

命令

路由信息项1

路由信息项2

捕获时间

网络地址

跳数

网络地址

跳数

1

Response

172.16.1.0

2

172.16.2.0

1

18:34:06

Response

172.16.1.0

2

172.16.2.0

1

18:34:34

2

Response

172.16.1.0

2

172.16.2.0

1

18:35:02

Response

172.16.1.0

2

172.16.2.0

1

18:35:31

Response

172.16.1.0

2

172.16.2.0

1

18:36:00

Response

172.16.1.0

2

172.16.2.0

1

18:36:30

Response

172.16.1.0

2

172.16.2.0

1

18:36:57

Response

172.16.1.0

2

172.16.2.0

1

18:37:24

Response

172.16.1.0

16

172.16.2.0

1

18:37:50

Response

172.16.1.0

16

-

-

18:37:52

Response

172.16.1.0

16

172.16.2.0

1

18:38:20

3

Response

-

-

172.16.2.0

1

18:38:49

Response

-

-

172.16.2.0

1

18:39:17

4

Response

172.16.1.0

2

-

-

18:43:40

Response

172.16.1.0

2

172.16.2.0

1

18:43:56

5

Response

172.16.1.0

2

172.16.2.0

1

18:44:23

Response

172.16.1.0

2

172.16.2.0

1

18:44:52

子网3:路由器R3

IP 分组首部

UDP数据包首部

源IP

172.16.3.3

目的IP

255.255.255.255

源端口

520

目的端口

520

RIP报文

阶段

命令

路由信息项1

路由信息项2

捕获时间

网络地址

跳数

网络地址

跳数

1

-

-

-

-

-

-

2

Response

172.16.1.0

16

-

-

18:37:52

Response

172.16.1.0

16

-

-

18:38:16

Response

172.16.1.0

16

-

-

18:38:43

3

-

-

-

-

-

-

4

-

-

-

-

-

-

5

-

-

-

-

-

-

3、RIP 计时器分析:

-在本实验中,RIP 的定期计时器、截止期计时器和无用信息收集计数器实际上是多少秒?

在本实验当中,RIP的定期计时器是25~30秒之间的一个随机的值,截止期计时器是180秒,无用信息收集计数器是120秒。

-为什么定期计时器并不是RFC 中规定的固定值,而是一个时间范围内的随机值?

避免整个互联网内同一时间所有路由器同时更新造成过载的问题。

4、阶段 1 分析:

-该阶段中为什么在子网 3 上捕获不到路由器R3 的 RIP 报文?

因为启用了水平分割,从某个接口接收到的更新信息不允许再从这个接口发回去。R3上的路由信息都是从路由器172.16.3.3的接口上获取的,所以不会再从这个接口上转发出去,在子网3内就不会捕获到路由器R3的报文。

5、阶段 2 分析:

-分析子网 1 中路由器 R1 的 RIP 报文信息记录,根据哪一个 RIP 报文,可以推断出 R1 大约何时断开与子网 2 的连接的?为什么?

本人根据wireshark抓包获取的74号RIP报文,断开时间大概为18点34分52秒,绝对时间是528.375000秒。

原因此时R1在子网1内广播通告子网2,子网3都不可达,而且与上一条RIP报文的时间相差不到1s,说明是引起了触发更新,所以可以推断此时R1与子网2断开了连接。

-该阶段中记录的哪些 RIP 报文是触发更新报文?是如何推断出来的?

触发更新报文:R1在子网1中发送的74号报文,R2在子网2中发送的165号报文,R2在子网3中发送的158号的RIP报文,R3在子网3发送的159号报文。

推断的原因 1.与前一个周期性报文相差的时间为0-2s,小于25秒,并且仅仅通告发生故障的链路

2.在同一个子网内两个路由器通报的触发更新报文的时间应该相近,报文的序号也应该接近

-产生这些触发更新报文的原因分别是什么?

R1在子网1发送触发更新报文的原因是:R1与子网2断开连接,造成路由表项没有跟新,因此在子网1内通告子网2,子网3 不可达的信息。

R2在子网2和子网3发送触发更新报文的原因:R2路由表项中目的地址是子网1的路由表项超过截止期计时器时间,然后R2更新自己的路由表项子网1不可达跳数变为16,并向子网2和子网3内进行通告子网1不可达。

R3在子网3发送触发更新报文的原因:R3收到R2发送的子网1不可达的报文信息,进行更新自己的路由表项,并向子网3内通告子网1断开连接,不可达。

-RIP 的触发更新报文和定时更新报文在通告的路由信息数量上有何不同?

RIP的触发更新报文仅通告有变化的路由信息,而定时更新报文通告路由表中所有的信息除了因水平分割被过滤掉的路由表项信息

6、阶段 3 分析:

-路由器 R1、R2 和R3 在第 1 次拓扑改变时的RIP 收敛时间大概分别是多少秒钟?整个网络的RIP 收敛时间是多少秒钟?

R1在第一次改变拓扑之后的收敛时间约为60秒,R2和R3的收敛时间约为240秒。

整个网络的收敛时间为240秒。

-为什么 R1 对网络拓扑变化的更新时间要明显短于R2 和 R3?

因为R1与子网2断开之后,由于R1和子网2是直连的,R1立马可以检测到链路断开,因此R1的更新收敛时间就应该是无效路由信息更新的时间。而R2需要等待截止期计时器180秒之后确定路由表项过期之后,才能知道子网1不可达,之后会立刻产生一个触发更新报文通知R3而R3收到通知之后产生触发更新报文的时间和R2很接近。所以R1对网络拓扑变化的更新时间要明显短于R2 和 R3。

-该阶段中为什么在子网 1 中捕获不到路由器R1 的 RIP 报文?

水平分割。因为此时R1只连接了子网1,根据水平分割,从某个接口接收到的更新信息不允许再从这个接口发回去,所以在子网1内不会收到R1的RIP报文。

7、阶段 4 分析:

-分析子网 2 中路由器 R1 的 RIP 报文信息记录,根据哪一个 RIP 报文,可以推断出 R1 大约何时恢复与子网C 的连接的?为什么?

根据R1在子网2中于18:43:21721321发送的报文,可以推断出R1与子网2恢复了重连。

原因:此时路由器R1在子网2广播发出了Requset,路由器刚刚接入到一个子网的时候,它会在这个子网上发送一个询问所有路由信息的RIP请求报文。

-该阶段中记录的哪些 RIP 报文是触发更新报文?

R1在子网1上于18:43:23发送的128号RIP报文

R1在子网2上于18:43:38发送的217号RIP报文

R2在子网3上于18:43:40发送的244号RIP报文

-产生这些触发更新报文的原因分别是什么?

R1在子网1与子网2上发送触发更新报文的原因是:R1与子网2恢复连接之后即在子网2上发送请求所有路由信息的request的RIP报文。在收到邻居R2的响应报文之后,R1就在子网1中通告子网2和子网3路由的触发更新信息,并在子网2上通告子网1的触发更新信息。

R2在子网3上发送触发更新报文的原因是:R2收到R1通告的子网1路由的触发更新信息之后,更新自己的路由表,并在子网3上通告子网1的路由的触发更新信息。

-该阶段中为什么路由器R2会在子网2上发送单播和广播这两种RIP响应的分组?

发送单播RIP响应分组的原因是:R1向子网2内发送广播分组,R2对R1单播响应。

发送广播RIP响应分组的原因是:是RIP的周期性响应报文,是R2周期性的向子网2广播子网3的路由信息。

8、阶段 5 分析:

-路由器R1、R2 和R3 在第2 次拓扑改变时的RIP 收敛时间分别是多少秒钟? 整个网络的 RIP 收敛时间是多少秒钟?

R1在第二次拓扑改变期间时RIP的收敛时间大概是2秒,R2与R3在第二次拓扑发生变化时收敛时间大概分别22,24秒。整个网络的RIP收敛时间大概是24秒。

-比较 2 次拓扑变化时 RIP 的收敛时间,分析 RIP 协议对好消息(网络可达) 和坏消息(网络不可达)的传递哪一种更快?并分析产生这种现象的原因。

好消息的传递速度更快。

原因:对于坏消息的传播如果是直连网络会立即发现网络不可达,但是对于非直连的路由器需要等待180秒的截止计时器的时间直到路由表项过期,并且对路由表项进行无用信息收集计时器更新,而对好消息没有任何计时器的限制,直接进行触发更新。

综上,所以好消息的传递要快于坏消息。

七、实验结论

1、总结 RIP 协议的路由通告机制,即路由器何时发送 RIP 路由通告?发送哪些

内容?发送方式?

说明:询问响应不是路由通告机制。

通告类型

何时发送 RIP 路由通告

发送哪些内容

发送方式

定期更新

路由器每隔25~30秒(随机

向自己的每个端口发送出除水平分割之外的其他所有的路由表项

广播

触发更新

①网络发生变化时

截止期计时器到期没有收到RIP路由通告

对特定变化的路由表项进行发送

广播

  1. 总结 RIP 协议的路由更新算法,即路由器收到 RIP 响应报文后,如何更新自己的路由表?
  1. 首先检查RIP响应报文的有效性(检查端口,源IP地址)
  2. 然后处理RIP报文的信息:
  1. 先忽略非法的度量,地址和无用的区域
  2. 度量metric=min(metric+1,16)
  3. If 目的网络地址不在路由表里面就添加上这一条路由表项

     Else if 路由表中对应表项的下一跳和RIP报文的源IP相同,就将这一个路由表项替换掉。

     Esle if 收到报文里面的metric+1之后比原来路由表项里面的metric还小就进行更新这一条路由表项。

写成流程图如下:

 

3、总结 RIP 协议的 3 个计时器的工作原理:计时对象?何时启动?何时复位?何时终止?期满时对计时对象的处理?

(1)定期计时器:计时的对象是启动定期计时器的路由器。路由器启动就启动了定期计时器,定期计时器每隔25~35秒复位一次。只要路由器没有宕机,不会终止(或者说是到达设定时间之后)期满时的动作是通告自己的整个路由表。

(2)截止期计时器:计时的对象是1条RIP路由。启动时间是新的RIP路由表项被添加的时候。当收到这条路由变化更新的时候,进行复位,复位到180秒。期满时的动作为如果180秒之内没有收到更新的RIP路由信息,该路由就会被标记为过期,跳数变为16,同时终止截止期计时器。

(3)无用信息收集计时器:计时对象是跳数为16的路由表项,从某一路由表项变为16开始启动,不会自动进行复位,到达设定时间120秒后终止,期满时删除该路由表项。

八、总结及心得体会

1.通过本次实验,体会了整个RIP路由协议更新的整个过程,以及RIP协议的辅助触发更新和水平分割。

2.对距离矢量路由算法有了更加深入的认识。

3.对RIP的三个重要的计时器定期计时器、截止期计时器、无用信息收集计时器理解更深入了。

九、对本实验过程及方法、手段的改进建议

1.实验可以增加难度,相关RIP路由算法部分可以让学生们来进行实现。

2.相关实验报告可以增加模板,减少学生们这一部分的时间。

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

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

相关文章

【OC】块初识

Block简介 Blocks是C语言的扩充功能。可以用一句话来表示Blocks的扩充功能:带有自动变量的匿名函数。 匿名函数 所谓匿名函数就是不带有名称的函数。C语言的标准不允许存在这样的函数。例: int func(int count);它声明了名称为func的函数。下面的源代…

C++---线性dp---传纸条(每日一道算法2023.2.26)

注意事项: 本题dp思路与 “线性dp–方格取数” 一致,下方思路仅证明为什么使用方格取数的思路是正确的。 题目: 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。 一次素质拓展活动中,班上同学安排坐成…

3.7寸按键翻页工牌

产品参数 产品型号 ESL_BWR3.7_BLE 产品尺寸 (mm) 62.51066.5 显示技术 E ink 显示区域 (mm) 47.32(H)81.12(V) 分辨率 (像素) 280480 像素尺寸(mm) 0.1690.169 150dpi 显示颜色 黑/白 视觉角度 180 工作温度 0℃ - 50℃ 电池 500mAh ( Type-C 充电…

Overleaf推广奖励:增加合作者的数量、解锁Dropbox同步和项目修改历史

Overleaf推广奖励 Overleaf是一个LaTeX\LaTeXLATE​X在线编译器,它可以让你与合作者共同在线编辑文档。但是默认的免费账号仅能邀请一个合作者。那么如何增加合作者的数量呢? Overleaf推出了一个奖励计划,你邀请其他人注册Overleaf&#xf…

java地图导出——添加经纬线

概述 前面的文章Node实现切片的拼接和地图的导出和Java实现地图的导出分别讲述可如何在node和java中实现切片的拼接以及地图的导出。本文,书接前文,实现java导出时经纬度的添加。 实现后效果 实现 完整的实现思路流程如下图: 1. 根据切片…

数据挖掘概述

目录1、数据挖掘概述2、数据挖掘常用库3、模型介绍3.1 分类3.2 聚类3.3 回归3.4 关联3.5 模型集成4、模型评估ROC 曲线5、模型应用1、数据挖掘概述 数据挖掘:寻找数据中隐含的知识并用于产生商业价值 数据挖掘产生原因:海量数据、维度众多、问题复杂 数…

macOS使用CodeRunner快速配置fortran环境

个人网站:xzajyjs.cn 由于一些项目的缘故,需要有fortran的需求,但由于是M1 mac的缘故,不能像windows那样直接使用vsivf这种经典配置。搜了一下网上主流的跨平台方案,主要是gfortran,最近用Coderunner(主要…

MyBatis——增删改查操作的实现

开启mybatis sql日志打印 可以在日志中看到sql中执行的语句 在配置文件中加上下面这几条语句 mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl logging.level.com.example.demodebug查询操作 根据用户id查询用户 UserMapper: User…

Elasticsearch7.8.0版本进阶——自定义分析器

目录一、自定义分析器的概述二、自定义的分析器的测试示例一、自定义分析器的概述 Elasticsearch 带有一些现成的分析器,然而在分析器上 Elasticsearch 真正的强大之 处在于,你可以通过在一个适合你的特定数据的设置之中组合字符过滤器、分词器、词汇单 …

Lighthouse组合Puppeteer检测页面

如上一篇文章lighthouse的介绍和基本使用方法结尾提到的一样,我们在实际使用Lighthouse检测页面性能时,通常需要一定的业务前置条件,比如最常见的登录操作、如果没有登录态就没有办法访问其他页面。再比如有一些页面是需要进行一系列的操作&a…

傻瓜式minio使用指南

傻瓜式minio使用指南1. docker部署minio1.1 docker拉取minio镜像1.2 创建docker容器1.3 查看docker容器是否启动正常2.登陆minio2.1 账户、密码为原先设置minioadmin2.2 创建桶2.3 设置桶属性3.Java客户端使用3.1引入依赖3.2 使用3.3 结果1. docker部署minio 1.1 docker拉取mi…

C语言几种判断语句简述

C 判断 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 fals…

Linux系统下搭建maven环境

文章目录前述从官网下载安装包安装 maven修改maven配置修改环境变量测试前述 安装 maven 环境前,需要先安装 java 环境,如果没有安装 java 环境,可以参考:https://blog.csdn.net/weixin_45583303/article/details/118631855 从官…

【力扣周赛#334】6369. 左右元素和的差值 + 6368. 找出字符串的可整除数组 + 6367. 求出最多标记下标

目录 6369. 左右元素和的差值 - 前缀后缀和 ac 6368. 找出字符串的可整除数组 - 操作余数ac 6367. 求出最多标记下标 - 二分答案 贪心 6369. 左右元素和的差值 - 前缀后缀和 ac class Solution {public int[] leftRigthDifference(int[] nums) {int nnums.length;int[] re…

【JavaWeb】复习重点内容

✅✅作者主页:🔗孙不坚1208的博客 🔥🔥精选专栏:🔗JavaWeb从入门到精通(持续更新中) 📋📋 本文摘要:本篇文章主要分享JavaWeb的学习重点内容。 &a…

QT之OpenGL混合

QT之OpenGL混合1. 概述2. 实现2.1 丢弃片段2.1.1 Demo2.2 混合2.2.1 相关函数2.2.2 排序问题2.2.3 Demo1. 概述 OpenGL中,混合(Blending)通常是实现物体透明度(Transparency)的一种技术。 2. 实现 2.1 丢弃片段 在某些情况下,有些片段是只需要设置显…

ecology9-谷歌浏览器下-pdf.js在渲染时部分发票丢失文字 问题定位及解决

问题 问题描述 : 在谷歌浏览器下,pdf.js在渲染时部分发票丢失文字;360浏览器兼容模式不存在此问题 排查思路:1、对比谷歌浏览器的css样式和360浏览器兼容模式下的样式,没有发现关键差别 2、✔使用Fiddler修改网页js D…

SAP MM学习笔记1-SAP中扩张的概念,如何将一个物料从工厂A扩张到工厂B

MM中在创建物料的时候,最低也得创建如下5个view。 基本数据1 基本数据2 购买管理 会计1 会计2 1,扩张是什么 有时候,你想增加其他的View,比如保管场所 等,你不能用MM02来做编辑,要用MM01来做扩张。这就是扩…

【Linux】工具(2)——vim

本期博客我们进入到Linux环境下vim工具的学习:一、vim是什么📌Vim是一个超级超级强大的文本编辑器。Vim及前身VI,历史悠久(可能比多数读者的年龄更大),经历了几十年的考验和发展。Vim全称叫Vi IMproved. 而…

聚类算法(上):8个常见的无监督聚类方法介绍和比较

无监督聚类方法的评价指标必须依赖于数据和聚类结果的内在属性,例如聚类的紧凑性和分离性,与外部知识的一致性,以及同一算法不同运行结果的稳定性。 本文将全面概述Scikit-Learn库中用于的聚类技术以及各种评估方法。 本文将分为2个部分&…