BGP路由选择实验

news2024/10/1 12:10:17

测试环境拓扑图

在这里插入图片描述
每一种规则测试完后记得恢复初始状态!!
各设备BGP Router_ID为loopback 0的地址。

AR1 配置

[V200R003C00]
#
 sysname AR1
#
interface GigabitEthernet0/0/0
 ip address 10.1.12.1 255.255.255.0 
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.255 
#
interface LoopBack66
 ip address 66.66.66.66 255.255.255.255 
#
bgp 100
 router-id 1.1.1.1
 peer 10.1.12.2 as-number 200 
 #
 ipv4-family unicast
  undo synchronization
  peer 10.1.12.2 enable
#

AR2 配置

[V200R003C00]
#
 sysname AR2
#
interface GigabitEthernet0/0/0
 ip address 10.1.12.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.1.23.2 255.255.255.0 
#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255 
#
bgp 200
 router-id 2.2.2.2
 peer 3.3.3.3 as-number 200 
 peer 3.3.3.3 connect-interface LoopBack0
 peer 10.1.12.1 as-number 100 
 #
 ipv4-family unicast
  undo synchronization
  peer 3.3.3.3 enable
  peer 3.3.3.3 next-hop-local 
  peer 10.1.12.1 enable
#
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 2.2.2.2 0.0.0.0 
  network 10.1.23.2 0.0.0.0 
#
return

AR3 配置

[V200R003C00]
#
 sysname AR3
#
interface GigabitEthernet0/0/0
 ip address 10.1.23.3 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.1.34.3 255.255.255.0 
#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255 
#
bgp 200
 router-id 3.3.3.3
 peer 2.2.2.2 as-number 200 
 peer 2.2.2.2 connect-interface LoopBack0
 peer 4.4.4.4 as-number 200 
 peer 4.4.4.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.2.2 enable
  peer 4.4.4.4 enable
#
ospf 1 router-id 3.3.3.3 
 area 0.0.0.0 
  network 3.3.3.3 0.0.0.0 
  network 10.1.23.3 0.0.0.0 
  network 10.1.34.3 0.0.0.0 
#

AR4 配置

[V200R003C00]
#
 sysname AR4
#
interface GigabitEthernet0/0/0
 ip address 10.1.45.4 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.1.34.4 255.255.255.0 
#
interface LoopBack0
 ip address 4.4.4.4 255.255.255.255 
#
bgp 200
 router-id 4.4.4.4
 peer 3.3.3.3 as-number 200 
 peer 3.3.3.3 connect-interface LoopBack0
 peer 10.1.45.5 as-number 300 
 #
 ipv4-family unicast
  undo synchronization
  peer 3.3.3.3 enable
  peer 3.3.3.3 next-hop-local 
  peer 10.1.45.5 enable
#
ospf 1 router-id 4.4.4.4 
 area 0.0.0.0 
  network 4.4.4.4 0.0.0.0 
  network 10.1.34.4 0.0.0.0 
#

AR5 配置

[V200R003C00]
#
 sysname AR5
#
interface GigabitEthernet0/0/0
 ip address 10.1.45.5 255.255.255.0 
#
interface LoopBack0
 ip address 5.5.5.5 255.255.255.255 
#
interface LoopBack66
 ip address 66.66.66.66 255.255.255.255 
#
bgp 300
 router-id 5.5.5.5
 peer 10.1.45.4 as-number 200 
 #
 ipv4-family unicast
  undo synchronization
  peer 10.1.45.4 enable
#

丢弃下一跳不可达的路由

测试方法:

1、将AR1和AR5上的loopback66接口地址宣告到BGP中。

2、预先已经在AR2和AR4上向AR3配置了peer 3.3.3.3 next-hop-local,所以AR3上会有两条去往66.66.66.66/32的路由。

在这里插入图片描述

可以看到,在默认情况下,BGP所有选路规则中前10条都无法比较出,直至匹配了Router_ID小的路由,所以选择了对等体2.2.2.2的路由,
而将4.4.4.4的路由标记为有效,但不是最优。
可以通过display bgp routing-table 66.66.66.66 32查看具体原因:(不是首选的Router_ID
在这里插入图片描述

3、将AR2上的next-hop-local配置undo,再次观察AR3的路由表情况。

[AR2-bgp]undo peer 3.3.3.3 next-hop-local

配置上述命令后可能需要等待更新周期才能看到路有变化,可使用下列命令进行刷新:
refresh bgp internal export|import 或者 refresh bgp external export|import
在这里插入图片描述
可以看到,原来优选了对等体2.2.2.2的路由现在下一跳地址变为了10.1.12.1,因为路由器会将从EBGP学习到的路由信息原封不动的发送给其他对等体,而peer 3.3.3.3 next-hop-local这条命令就是告诉其他对等体,我发给你们的路由,下一跳来找我。所以对于AR3来说10.1.12.1是不可达的,所以将该条路由标记为无效也不是最优的路由。从而选择了对等体4.4.4.4发来的。

1 优选Preferred-Value值最大的路由

恢复拓扑初始状态,查看AR3的BGP路由表信息:
在这里插入图片描述

测试方法:

1、在AR3上将来自对等体4.4.4.4的路由信息的PrefVal属性值调大。

[AR3-bgp]peer 4.4.4.4 route-policy PrefVal import 
Route-policy : PrefVal
  permit : 10 (matched counts: 2)
    Apply clauses : 
      apply preferred-value 100   #该路由策略的意思是直接将来自4.4.4.4对等体的所有路由的preferred-value属性值都标记为100

查看AR3的BGP 路由表信息。
在这里插入图片描述
可以看到,来自对等体4.4.4.4的路由的PrefVal属性值被标记为100,且被选为最优路由。
查看具体原因:
在这里插入图片描述
针对来自对等体2.2.2.2的路由,显示:PreVal不是最优的。

2 优选Local-Preference属性值最大的路由

先恢复初始配置。
AR3的初始BGP路由信息:
在这里插入图片描述
可以看到,初始的LocPrf属性值默认为100。

测试方法:

1、在AR3上对来自对等体4.4.4.4的路由,将其LocPrf调整为101。

[AR3-bgp]peer 4.4.4.4 route-policy LocPrf import
#
route-policy LocPrf permit node 10 
 apply local-preference 101 
#

观察AR3的BGP路由表信息:
在这里插入图片描述
可以看到,对等体4.4.4.4的路由的LocPrf属性值被标记为101,并成为最优路由。
查看具体原因:
在这里插入图片描述
针对对等体2.2.2.2的路由,显示不是最优的Local_Pref。

3 本地始发路由优于从对等体学习到的路由

本地始发具体规则为:
手动聚合>自动聚会>Network>import>从对等体学习到的路由
为了验证上述选路规则,本实验将从后往前匹配条件进行验证。
在初始情况下,AR3上的BGP路由表信息如下:
在这里插入图片描述
可以从NextHop信息看到,去往66.66.66.66/32的路由是来自不同对等体的

1、在AR3的lo66接口上配置该地址,并引入BGP中,查看AR3的BGP路由表信息。(测试import>从对等体学习到的)

相关命令如下:

	import-route direct route-policy 66
	
	Route-policy : 66
	  permit : 10 (matched counts: 10)
	    Match clauses : 
	      if-match ip-prefix 66
	    Apply clauses : 
	      apply as-path 200 additive  #确保AR3本地引入的相关属性与其他路与相同
	      apply local-preference 100  #同上
	
	Prefix-list 66
	Permitted 8
	Denied 0
	        index: 10               permit  66.66.66.66/32

确保之前的属性值(PreVal、LocPrf)相同的情况下: 在这里插入图片描述
此时可以看到,BGP路由表中对于66.66.66.66/32条目而言,选择了自身引入的路由为最优。
查看具体路由信息:
在这里插入图片描述

2、测试Network>import>从对等体学习到的路由

将AR3上配置的loopback66接口地址66.66.66.66/32使用Network宣告到BGP中。
在这里插入图片描述可以看到两条来自本地的66.66.66.66/32的路由,查看具体路由信息:
在这里插入图片描述
可以看到,最优选择了Network方式发布的路由。

3、测试自动聚合优于Network

为了测试更为直观,现在改为使用88.0.0.0/8 的路由条目作为测试,AR2、AR4上配置一条静态路由ip route-static 88.0.0.0 8 NULL 0,并引入BGP中。
在AR3BGP中宣告一条88.0.0.0 8的路由,同时配置两条静态路由:

ip route-static 88.0.0.0 255.0.0.0 NULL0
ip route-static 88.128.0.0 255.128.0.0 NULL0

观察AR3BGP路由表信息:
在这里插入图片描述

启用自动聚合功能:

[AR3-bgp]summary automatic

在这里插入图片描述
此时静态路88.128.0.0/9聚合后会被抑制,变为无效路由,查看具体路由信息:
在这里插入图片描述
可以看到,最终选了自动聚合的路由,而Network不是最优的路由类型。

4、测试手动聚合优于自动聚合

保持前面配置不变,在AR3的BGP视图中执行以下命令:

[AR3-bgp]aggregate 88.0.0.0 8 detail-suppressed

观察AR3的BGP路由表信息:
在这里插入图片描述
可以看到,此时又多了一条下一跳为127.0.0.1的88.0.0.0的路由。
查看具体的路由选择信息:
在这里插入图片描述
可以看到,优选了手动聚合路由。

4 优选AS_Path最短的路由

恢复初始配置,查看AR3 BGP 路由表:
在这里插入图片描述

测试方法:

对来自对等体2.2.2.2的路由,为其添加一个Path属性值100,使其成为次优路由:

	[AR3-bgp]peer 2.2.2.2 route-policy 66 import 
	Route-policy : 66
	  permit : 10 (matched counts: 16)
	    Match clauses : 
	      if-match ip-prefix 66
	    Apply clauses : 
	      apply as-path 100 additive

查看AR3路由表信息:
在这里插入图片描述
在这里插入图片描述

5 优选Origin属性最优的路由

恢复拓扑初始化配置,查看当前AR3的BGP路由表信息:
在这里插入图片描述
如上图所示,由于在 AR1、AR5上使用的是Network方式宣告的66.66.66.66/32的路由对应的Origin属性为i。

  • Origin属性相应关联:
    i - IGP —> Network
    e - EGP—> 该方式可以通过route-policy修改测试
    ? - incomplete—> import

测试方法:

1 将来自对等体2.2.2.2的路由使用路由策略将其Origin属性改为EGP。

[AR3-bgp]peer 2.2.2.2 route-policy 66 import
#
route-policy 66 permit node 10 
 apply origin egp 100
#

在这里插入图片描述
可以看到,此时对等体2.2.2.2的路由Origin属性改为了e,且变为了次优

2 保持前面的配置,在AR5上将原来的Network方式改为import方式引入BGP。

在这里插入图片描述
如上图所示,此时来自对等体4.4.4.4的路由Origin属性标记为了 ?,且成为了次优路径。
在这里插入图片描述

6 优选MED属性值最小的路由

恢复拓扑初始配置,查看AR3的BGP路由表信息。
在这里插入图片描述

测试方法:

将来自对等体2.2.2.2的路由的MED属性值改为1:

[AR3-bgp]peer 2.2.2.2 route-policy 66 import
#
route-policy 66 permit node 10 
 apply cost 1 
#
[AR3-bgp]compare-different-as-med  #允许比较来自不同AS的路由的MED属性(默认情况下BGP只会对来自同一AS的路由进行MED属性值的比较)

在这里插入图片描述
在这里插入图片描述

7 优选从EBGP学习到的路由

恢复初始配置,查看AR2的路由表信息:
在这里插入图片描述

测试方法:

在AR3上也宣告一条66.66.66.66/32的路由到BGP中,使得AR2可以从3.3.3.3通过IBGP学习到该路由。

并且要保证其他属性条件相同。

[AR3-bgp]network 66.66.66.66 32 route-policy 66
Route-policy : 66
  permit : 10 (matched counts: 5)
    Apply clauses : 
      apply as-path 200 additive

在这里插入图片描述
在这里插入图片描述

8 优选到Next-hop的IGP度量值最小的路由

恢复初始配置,查看AR3初始BGP路由信息:
在这里插入图片描述
可以看到,当前到两个对等体的IGP开销都为1。

测试方法:

因为AR2、AR3、AR4之间使用的是OSPF作为IGP

将AR3与AR2连接的接口的OSPF的开销值改为10。

	[AR3-GigabitEthernet0/0/0]ospf cost 10

在这里插入图片描述

如上图所示,AR3到达对等体2.2.2.2的IGP开销改为10后,变为了次优路由,提示:不是最优的IGP开销。

扩展-BGP路由负载分担

扩展:
当在前面的8条BGP路由匹配规则都无法比较出最优路由时,可以为该BGP路由设置负载分担,而BGP默认只对AS_Path完全相同的路由进行负载分担
可以使用:load-balancing as-path-ignore忽略AS_Path的不一致。

另外,在配置负载分担前,BGP自身虽然有多条次优路由,但设备只会选择最优的那条路由放进RIB和FIB中,如下图所示:
在这里插入图片描述
在公网中到达同一目的地的路由形成负载分担时,系统会首先判断最优路由的类型。

若最优路由为IBGP路由则只是IBGP路由参与负载分担,若最优路由为EBGP路由则只是EBGP路由参与负载分担,即公网中到达同一目的地的IBGP和EBGP路由不能形成负载分担。

[AR3-bgp]maximum load-balancing ibgp ?  #针对路由的IBGP或EBGP配置负载分担的数量
  INTEGER<1-8>  Specify maximum equal cost routes
[AR3-bgp]load-balancing as-path-ignore  #忽略AS_Path的不一致的路由的负载分担

在这里插入图片描述

9 优选Cluster_List最短的路由

恢复拓扑初始配置。

测试方法,拓扑做以下修改:

1、取消在AR1上宣告路由,只在AR5上宣告。
2、配置AR3为RR,AR4为AR3的客户端。
3、AR2与AR4之间配置基于回环接口的IBGP关系。

经过上面的修改后,在AR2上会收到AR4的BGP路由,和AR3反射过来的BGP路由66.66.66.66/32。
默认情况下,前面8条规则无法比较出最优路由,此时需要根据Cluster_List进行比较。
在这里插入图片描述
在这里插入图片描述
如上图所示,设备最终选择了来自对等体4.4.4.4的IBGP路由为最优,而对于来自对等体3.3.3.3的路由,以为来自对等体3.3.3.3的Cluster_List不为空。

在BGP(Border Gateway Protocol)中,Cluster_List(集群列表)是一种用于避免循环的路由属性。它用于解决以下情况:当一个路由反射器(Route Reflector)将一个路由反射给其他反射器时,可能会导致路由循环。

在BGP网络中,路由反射器用于简化路由器之间的BGP对等体关系。它们接收来自客户端路由器的路由信息,并将其反射给其他客户端路由器。当一个路由反射器将一条路由发送给其他反射器时,可能会遇到问题,因为路由信息可能会在不同的反射器之间循环传播。

为了解决这个问题,BGP引入了Cluster_List属性。当一个路由反射器接收到一条路由信息时,它会检查该路由的Cluster_List属性。Cluster_List是一个有序的集群标识符列表,用于跟踪路由信息的传播路径。
在BGP中,路由器使用Cluster_List属性来比较和处理路由信息。具体比较的方式如下:

  1. 当一个路由反射器收到一条路由信息时,它首先检查Cluster_List属性是否为空。如果为空,表示该路由是首次被反射,可以继续处理。

  2. 如果Cluster_List属性不为空,则路由反射器会检查列表中的集群标识符是否包含自己的集群标识符。如果集群标识符列表中包含自己的标识符,表示该路由已经经过当前的路由反射器处理过了,不再转发给其他反射器,从而避免了循环。

  3. 如果集群标识符列表中不包含自己的标识符,则路由反射器会将自己的集群标识符添加到Cluster_List属性的末尾,并将该更新后的路由信息发送给其他客户端路由器和反射器。

  4. 在转发路由信息时,路由反射器还需要更新AS_Path属性,以便其他路由器能够正确地了解路由信息的路径。通常,反射器会将自己的AS号添加到AS_Path属性中。

10 优选Router_ID最小的路由

恢复初始配置,观察AR3的BGP初始路由信息。
在这里插入图片描述
在这里插入图片描述
如果前面9条规则都匹配不上,默认会比较到Router_ID的大小,所以选择了Router_ID较小的2.2.2.2的路由。
但是,在比较该条规则下,还有一个潜在的规则:如果路由中携带有Originator_ID,则先比较Originator_ID,再比较Router_ID,同样,具有最小的Originator_ID值的路由为最优。

测试Originator_ID属性:

在第9条规则的测试图中,在Cluster_ID的上一行可以看到一条Originator_ID记录:
在这里插入图片描述

测试方法:

1、保持AS200中的配置不变,将AR1和AR5改到AS200下,IGP使用OSPF,并宣告各自的loopback0地址和接口地址段。
2、AR1与AR2设置为IBGP;AR4与AR5设置为IBGP。
2、将AR2设置为RR,AR1为AR2的客户端;
3、将AR4设置为RR,AR5为AR2的客户端;

经过上述的变更后,AR3上会学习到来自反射器AR2和AR4的路由,但是优选了来自对等体2.2.2.2的路由,因为其Originator_ID属性值较小,但此时好像也很难辨别究竟是不是Originator_ID选举规则生效。
在这里插入图片描述
上图中:
From:X.X.X.X (Y.Y.Y.Y) 不都是Router_ID的值,X是建立对等体时使用的地址,Y是对等体的Router_ID。
Original nexthop: 是该路由的下一条地址,因为在AR1、AR5上配置了peer X.X.X.X next-hop-local,所以显示的是该路由下一跳的回环接口地址(基于回环接口建立的IBGP)。
Originator_ID 其实就是对应对等体的Router_ID,当经过RR后会携带有Originator_ID属性,该属性映射到Router_ID。

在AR1的BGP视图下取消配置BGP的Router_ID,再次查看AR3的BGP路由表信息:
在这里插入图片描述
可以看到,此时来自反射器AR4的路由变为最优,因为Originator_ID属性值比来自反射器AR2的值小,提示信息依旧是显示不是最优的Router_ID值。

将AR5的BGP Router_ID也取消,再次查看AR3的BGP路由表信息:
在这里插入图片描述
如上图所示,因为Originator属性小,从而选择了来自反射器2.2.2.2的路由为最优,提示信息仍旧是:不是最优的Router_ID。
由此可见,其实Originator_ID相当于就是Router_ID,在携带该属性时,要优于Router_ID先比较。

11 优选具有最小IP地址的对等体通告的路由

更改拓扑信息:

在这里插入图片描述
在AR5上宣告66.66.66.66/32 都处于同一AS200,AR5和AR2设置为IBGP,AR5和AR4设置为IBGP。
将AR2和AR4设置为RR,且AR5分别是他们的客户端。
经过上述的变更后,AR3上会有两条路由,且前面10条选路规则也无法比较出最优路由,此时会选择具有较小IP地址的对等体(2.2.2.2)的路由:
10.1.23.2 < 10.1.34.4
在这里插入图片描述

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

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

相关文章

远程桌面连接怎么使用?

远程桌面连接是一种远程控制计算机的技术&#xff0c;它允许用户通过Internet或局域网远程访问另一台计算机的桌面界面。使用远程桌面连接技术&#xff0c;可以帮助用户在家里或在外出时访问工作计算机&#xff0c;或者在不同的地方协作完成任务。在本文中&#xff0c;我们将介…

k8s 基于MutatingWebhookConfiguration实现node超卖和sidecar注入

k8s 基于MutatingWebhookConfiguration实现node超卖和sidecar注入 源码在:https://github.com/Seaiii/MutatingWebhook我写了几个脚本&#xff0c;可以直接运行。 一、MutatingWebhookConfiguration原理 MutatingWebhookConfiguration 是 Kubernetes 中的一种资源对象&#…

【代码随想录】刷题Day31

1.分发饼干 455. 分发饼干 贪心的思路就是&#xff1a;小的饼干尽量去匹配胃口小的孩子&#xff0c;这样才能实现尽可能多孩子吃到。 那么代码就很好写了&#xff1a; 1.排序g和s&#xff0c;这样方便查找小的数 2.饼干的位置不停遍历&#xff0c;对应我们需要一个ret代表当前…

语义分割mask转json

文章目录 1 mask2json ——代码实现1.1 通过mask获取每个类别对应的灰度值1.2 mask 转 json 2 mask2json ——利用工具转2.1支持数据增强2.2 支持多种格式转换 本文介绍两种语义分割mask转json的方法&#xff1a; 方法1&#xff1a;是参考语义分割mask转json&#xff08;改进版…

教你用python的Streamlit库制作可视化网页应用

目录 步骤1&#xff1a;安装 Streamlit步骤2&#xff1a;创建一个新的 Python 文件步骤3&#xff1a;导入必要的库步骤4&#xff1a;编写应用程序代码步骤5&#xff1a;运行应用程序常用组件 当涉及到编写交互式应用程序时&#xff0c;Streamlit 是一个非常流行和强大的 Python…

图神经网络:处理点云

文章说明&#xff1a; 1)参考资料&#xff1a;PYG官方文档。超链。 2)博主水平不高&#xff0c;如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook和有关文献。超链。提取码8848。 文章目录 简单前置工作学习文献阅读Point的实现模型问题 简单前置工作学…

用项目管理思维来过5·20,真实太酷啦!

明天就是一年一度的520啦&#xff0c;阿道单身多年的同事刚京在四月成功使用SWOT分析模型相亲成功&#xff0c;牵手女嘉宾。二人眼看着就要迎来在一起后的第一个节日520&#xff0c;刚京却因为没有头绪而陷入了不知所措的焦虑。 团队成员齐上阵&#xff0c;用项目管理思维&…

使用 Apache Flink 开发实时 ETL

Apache Flink 是大数据领域又一新兴框架。它与 Spark 的不同之处在于&#xff0c;它是使用流式处理来模拟批量处理的&#xff0c;因此能够提供亚秒级的、符合 Exactly-once 语义的实时处理能力。Flink 的使用场景之一是构建实时的数据通道&#xff0c;在不同的存储之间搬运和转…

<组件封装:Vue + elementUi 通过excel文件实现 “ 批量导入 ” 表单数据,生成对应新增信息 >

Vue elementUi 通过excel文件实现 “ 批量导入 ” 表单数据&#xff0c;生成对应新增信息 &#x1f449; 前言&#x1f449; 一、封装组件对应API及绑定事件> Attributes> Event &#x1f449; 二、实现案例> HTML父组件模板> 子组件模板 &#x1f449; 三、效果演…

线程相关基础知识

一、相关概念 1.1 cpu 中央处理器&#xff08;central processing unit, 简称cpu &#xff09;&#xff0c;计算机系统的 运算 和 控制 核心 1.2 cpu核心数和线程数 cpu核心数指cpu 内核数量&#xff0c;如双核、四核、八核。 cpu线程数是一种逻辑的概念&#xff0c;就是模…

基于 SpringBoot + Redis 实现分布式锁

大家好&#xff0c;我是余数&#xff0c;这两天温习了下分布式锁&#xff0c;然后就顺便整理了这篇文章出来。文末附有源码链接&#xff0c;需要的朋友可以自取。 至于什么是分布式锁&#xff0c;这里不做赘述&#xff0c;不了解的可以自行去查阅资料。 文章目录 实现要点项目…

android13 FLAG_BLUR_BEHIND 壁纸高斯模糊,毛玻璃背景方案设计-千里马framework实战

hi,粉丝朋友们! 今天有个学员朋友&#xff0c;问到了一个高斯模糊相关问题&#xff0c;这个高斯模糊相关的需求我相对还是比较熟悉&#xff0c;下面来重点讲解一下新版本高斯模糊相关的实现。 更多framework干货知识手把手教学 Log.i("qq群"&#xff0c;“422901085…

[230528] 托福阅读真题|TPO66 13/30|整卷得分22/30|9:45~10:45|15:40~16:40

The Actor and the Audience P1 rehearsev 排练&#xff1b;排演anticipate v 预期&#xff1b;预料&#xff1b;预见 audiencen 观众brilliantadj 灿烂的&#xff1b;绝妙的rehearsaln 排练&#xff1b;预演&#xff1b;排演crumblev 崩塌stage frightn 怯场&#xff08;演员…

自动化测试框架?这应该是全网最全自动化框架总结了,你要的都有...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…

学术加油站|基于LSM-tree存储系统的内存管理,最大限度降低I/O成本

本文系北京理工大学科研助理牛颂登所著&#xff0c;本篇也是 OceanBase 学术系列稿件第 10 篇。欢迎访问 OceanBase 官网获取更多信息&#xff1a;https://www.oceanbase.com/ 「牛颂登&#xff1a;北京理工大学科研助理&#xff0c;硕士期间在电子科技大学网络空间安全研究院从…

资深老鸟总结,Selenium自动化测试实战小技巧,不要再走弯路了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Selenium4自动化测…

数据库小技能:数据报表

文章目录 I 需求1.1 补贴II 实现思路2.1 生成资金调节报表数据III Dto3.1 报表基本查询IV 接口I 需求 代理商调节活动汇总商户调节活动汇总激励金日月汇总数据源:活动流水表(上游回调) 1.1 补贴 调节活动补贴= D0补贴+T1补贴。(比如交易金额满足1000,转T1) 补贴金额 =…

图扑数字孪生智慧灯杆,“多杆合一”降本增效

前言 随着智慧城市建设的不断深入&#xff0c;智慧灯杆作为城市基础设施的重要组成部分&#xff0c;正在成为城市智能化和绿色化的重要手段之一。 效果展示 图扑智慧灯杆系统在城市道路照明领域引入信息化手段&#xff0c;通过构建路灯物联网&#xff0c;实现了现代化的路灯按…

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(下)

Gram-Schmidt正交化过程 到目前为止&#xff0c;我们都是在反复强调“对于无解的方程组Axb而言&#xff0c;如果矩阵A是标准正交矩阵的话&#xff0c;就怎么怎么好了。。。。”。因为&#xff0c;不论是求投影还是计算最小二乘的正规方程&#xff0c;他们都包含了。当A为标准正…

yolov4论文解读

数据层面上的数据增强 四张照片拼接成一张进行训练 相当于增大了batch-size&#xff0c;更适合于单GPU。 Mosaic data augmentation 马赛克数据增强 self-adversarial training(SAT) 自我对抗训练 DropBlock Label Smoothing 损失函数 由IOU改进到CIOU 网络结构 CSPNet&…