HCIP BGP选路规则总结

选路前提条件

多条BGP路由目标相同,且均可优(下一跳可达、同步关闭),具有相同的优先级(管理距离)。

1、优选Preference_Value值最高的路由(私有属性,仅本地有效)。

        不传递  权限最高属性    可以干涉EBGP/IBGP选路

2、优选本地优先级(Local_Preference)最高的路由。

        IBGP邻居关系间传递    只能,最常干涉IBGP关系的选路

3、优选手动聚合>自动聚合>network>import>从对等体学到的。

4、优选AS_Path短的路由。

        EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;

5、起源类型IGP>EGP>Incomplete。

        起源属性 i优于e优于?; 可在控制层面任意接口修改;

6、对于来自同一AS的路由,优选MED值小的。

        默认为0,宣告或重发布(关闭自动汇总)路由时携带本地到达目标的cost

        最常用于干涉EBGP选路的属性

7、优选从EBGP学来的路由(EBGP>IBGP)。

8、优选AS内部IGP的Metric最小的路由。

9、优选Cluster_List最短的路由。

10、优选Orginator_ID最小的路由。

11、优选Router_ID最小的路由器发布的路由。

12、优选具有较小IP地址的邻居学来的路由。

属性

华为和cisco均存在6种基本属性   第一种均为私有属性 

                                           传播范围                 默认值              大优或小优

1、Preference_Value          不传播                      0                         大优

华为设备的私有属性

修改命令

[r3-bgp]pe 2.2.2.2   preferred-value   1     

本地从邻居2.2.2.2处学习到的所有路由优先值修改为1;

                                   传播范围                   默认值              大或小优

2、本地优先级      IBGP邻居关系间               100                    大优

第一个公有属性,也是最常用于干涉IBGP选路,最常使用的属性,

修改命令

[r4-bgp]default local-preference  101

本地所有传输到IBGP的路由条目,其中本地优先级修改为101;

3、as-path 

优选经过AS数量较少路径;该属性的自动添加是在EBGP邻居关系间进行;

修改命令,需要要用到路由策略

如下图演示

cf877950f3c14910b863cf810e125e9b.png

在bgp宣告了1.1.1.0/24网段

在R3上面查看1.1.1.1经过的AS,并且优先选的192.168.2.1为下一跳

d312935a4a8540ab9f0b09f0bbf8017c.png

 现在修改路径给加几个AS,让选路优先走192.168.4.1为下一跳,就在R2上面去做一个路由策略,修改它的AS- PATH。

[R2]ip ip-prefix 1 permit 1.1.1.0 24	
[R2]route-policy 1 permit node 10
Info: New Sequence of this List.
[R2-route-policy]if-match ip-prefix 1
[R2-route-policy]apply as-path 100 100 100 additive #增加几个已有的AS
[R2-route-policy]q	
[R2]route-policy 1 permit  node 20
Info: New Sequence of this List.
[R2-route-policy]q
[R2]bgp 100
[R2-bgp]peer 192.168.1.1 route-policy 1 import 

再去R3上查看,达到要求,优选的是192.168.4.1为下一跳。备选路192.168.1.1的AS-PATH经过了几个刚才添加的AS号。

6e0c8e286a994585ab214b43704513e9.png

注:as-path 属性又用于EBGP的水平分割,若人为添加的as号,在网络后端实际存在,将导致这些路由无法进入这些AS;解决方案:反复添加已经经过的AS编号;

4、起源属性  

条目的产生方式      

network  宣告本地路由表中的任意路由  i

import   将本地通过其他协议学习的路由重发布到BGP协议中  ?

egp     早期的ebg协议学习的路由重发布到BGP协议中      e

该属性的修改可以在整个控制层面流量经过的任意接口修改;

也是需要使用路由策略来进行。

5、MED

多出口的鉴别属性    BGP协议默认不存在cost;MED就是人为的利用路由器优选路径的规则—先比较管理距离(华为为优先级),若一直再比较度量值(华为为cost)

BGP协议在特定条件下携带本地到达目标的cost值;本地宣告(重发布)自己路由表中的路由后,将其传递给本地的ebgp邻居,将携带cost值;对于其他AS的设备学习到从同一个as传递过来的路由,优选MED最小的路径;

管理员可以在控制层面传递路由的过程中,手工修改MED;最常用于干涉ebgp选路;

常常用于AS1干涉AS2对AS1的选路;

445709a8a35946888f43e9917bb97572.png

同样先去R3上面看1.1.1.0/24网段,此时看MED是没有人任何值,优选的也是192.168.2.1为下一跳。

c941669e914d4c0babacb9c9f6f79079.png 

现在修改MED值,让选路优先走192.168.4.1为下一跳,则需要把192.168.2.1这一跳的MED值改大,同样在R2上面去做策略,我这里是改的10。

[R2]route-policy 2 permit node 10
Info: New Sequence of this List.
[R2-route-policy]if-match ip-prefix 1
[R2-route-policy]apply cost 10 
[R2-route-policy]q
[R2]route-policy 2 permit node 20
Info: New Sequence of this List.
[R2-route-policy]q
[R2]bgp 100
[R2-bgp]peer 192.168.1.1 route-policy 2 export 

ac42a7bc0a644f9a97487048a1597e32.png

 查看修改后的BGP路由表,把192.168.2.1下一跳的MED值改大了后,就优选192.168.4.1为下一跳。

由于实际工程中,管理员只能在一个AS中配置,故无法通过查看BGP表来判断选路结果,可以通过扩展ping来解决

BGP扩展选路规则

BGP的社团属性

BGP的扩展属性   默认大多数厂商的产品在BGP协议中不携带社团属性

例:控制传播范围的社团属性

[r1]route-policy com permit node 10

[r1-route-policy]apply community no-advertise  针对所有的流量修改属性

[r1]bgp 1

[r1-bgp]peer 12.1.1.2 route-policy com export

默认华为设备也不传递社团属性,故使用社团属性时,必须定义传递性 

[r1-bgp]peer 12.1.1.2 advertise-community   逐跳行为,每台设备均需开启传递性

no-advertise  接收到的条目中若存在该社团属性,将不再传递该路由

no-export   接收到的条目若存在该社团属性,将不传递给下一个AS

no-export-subconfed  接收到的条目若存在该社团属性,将不传递给下一个小AS

若网络没有小AS,仅存在大AS时no-export和no-export-subconfed作用一致

附件

选路规则

华为BGP选路规则

思科BGP选路规则

第0条

下一跳是否可达,如果不可达则不参与选路

BGP 向IBGP对等体发布import引入的IGP路由时, 将下一跳属性改为自身的接口地址,而非IGP中的下一跳地址。

peer next-hop-invariable命令有以下作用:

BGP Speaker在向EBGP对等体发布路由时不改变下一跳(该命令配置在EBGP对等体间时,只对×××v4和×××v6路由生效,对于其他类型的路由都不生效)。

BGP Speaker在向IBGP对等体发布引入的IGP路由时使用IGP路由的下一跳地址。

下一跳是否可达,如果不可达则不参与选路

BGP 向IBGP对等体发布引入的IGP路由时, 下一跳仍然保持IGP的下一跳不变

第1条

比较协议首选值Pref_Val,数值高优选,本地始发和邻居传递过来的都为0。该属性本路由器有效,是华为私有属性

比较Weight值,数值高者优选,本地始发为32768。该属性本路由器有效,是思科私有属性

第2条

local-pref本地首选项(越大越优先),该参数在本AS内传递。

始发路由器的local-pref值为空,传递给AS内IBGP邻居后变为100;本地优先级(Local_Pref)属性仅在IBGP对等体之间交换,不通告给其他AS。

如果路由没有local-pref值,BGP选路时将该路由按缺省的local-pref值100来处理

使用命令为default local-preference本机向所有IBGP邻居发布的所有路由设置一个缺省的Local_Pref

使用命令为apply local-preference为本机向任意IBGP邻居发布的任意路由设置Local_Pref,并且可以为不同的路由设置不同的Local_Pref

当路由同时应用default local-preference和apply local-preference命令时,apply local-preference命令的配置优先生效。

local-pref本地首选项(越大越优先),这个参数在本AS内传递。

始发路由器的local-pref值为100

本地优先级(Local_Pref)属性仅在IBGP对等体之间交换,不通告给其他AS。

第3条

本地始发路由优先,优先顺序如下:手动聚合路由,自动聚合路由,network宣告路由,从import-route命令引入的路由

本地始发路由优先,优先顺序如下:network宣告路由,从IGP引入的路由,手动聚合路由,自动聚合路由,

    

 /

AIGP,

AIGP(Accumulated Interior Gateway Protocol Metric)属性是一个比较新的BGP属性,用于传递并累加IGP Metric值,该属性是可选非过渡属性,IANA(Internet Assigned Numbers Authority)为AIGP分配的属性类型码是26。

在VRP5的实现中,AIGP属性只能通过路由策略添加,若不设置,则路由缺省不携带AIGP属性。在路由传递中,AIGP属性会根据建立邻居所依赖IGP路由的Metric增加其AIGP值。

在路由选路过程中:携带AIGP属性的路由优于未携带AIGP属性的路由,而如果都存在AIGP属性,则比较AIGP属性与其下一跳的IGP Metric之和,优选该值较小的。

在BGP引入、接收或发送路由时,可以人为通过路由策略里的apply aigp { cost | inherit-cost }命令设置AIGP属性值的大小。

思科资料详见链接

第4条

比较as-path,长度短者优先,AS_Path属性有四种形式,分别是:AS_Sequence、AS_Set、AS_Confed_Sequence和AS_Confed_Set。

一个as-set被计数为1,而不管“set”中包含多少个as

忽略该条:bestroute as-path-ignore

比较as-path,长度短者优先,AS_Path属性有四种形式,分别是:AS_Sequence、AS_Set、AS_Confed_Sequence和AS_Confed_Set。

一个as-set被计数为1,而不管“set”中包含多少个as

忽略该条:bgp bestpath as-path ignore

第5条

比较路由起源属性,IGP(0)>EGP(1)>Incomplete(3)

不完全的(Incomplete):路由信息是从其他渠道学习到的。不完全路由并不是说该路由有何缺陷,只是确定该路由来源的信息不完全而已。比如:BGP通过重分发机制学习到的路由将携带不完全路由来源属性,这是因为没有办法确定该路由的来源。

比较路由起源属性,IGP(0)>EGP(1)>Incomplete(3)

第6条

比较MED值,越小越优先

一、MED值产生过程如下:

1.通过network和import命令注入到BGP中的路由是直连路由则MED值为0,传递给IBGP和EBGP邻居也为0

2.通过network和import命令注入到BGP中的路由为非直连IGP路由那么MED值为IGP的cost值,传递给IBGP和EBGP邻居也为IGP的cost值(只有在边界路由器上network和import的路由在传递给EBGP邻居时才会携带MED值)

3.通过aggregate命令注入到BGP中的路由的MED值为空,传递给IBGP和EBGP邻居也为空

二、MED值传播范围:

1. 在本AS的边办路由器上宣告路由时传递给其他AS的EBGP邻居后,在下一AS范围内继续传递,但不会再传递给第三个AS。

2. 在AS内BGP Speaker上通告的路由的MED值会在本AS内传递;当边界路由器再通告给EBGP邻居时会清除MED值,如果要强制边界BGP路由器将从IBGP学来的路由通告给EBGP邻居时携带MED值,需要在边界路由器上配置route-policy并apply cost-type internal,然后边界路由器会把本路由器上的BGP路由到下一跳的cost值作为MED值传递给EBGP邻居,(而非当前边界路由器上看到的的MED值)

三、其他:

1.默认情况下BGP路由器只比较来自相同AS的MED值,使用compare-different-as-med命令,BGP将强制比较来自不同AS的路由的MED值。

使用deterministic-med将消除路由接收顺序对选路结果的影响。

2.在接收到的BGP路由没有MED值时按0来处理,执行bestroute med-none-as-maximum命令后,没有MED值时按最大值4294967295来处理,这主要是为了对旧标准的兼容

3.命令default med命令只对本设备上用import-route命令引入的路由和BGP的聚合路由生效

比较MED值,越小越优先

一、MED值产生过程如下:

1.通过network和import命令注入到BGP中的路由是直连路由那么MED值为0,传递给IBGP和EBGP邻居也为0

2.通过network和import命令注入到BGP中的路由为非直连IGP路由那么MED值为IGP的cost值,传递给IBGP和EBGP邻居也为IGP的cost值(只有在边界路由器上network和import的路由在传递给EBGP邻居时才会携带MED值)

3.通过aggregate命令注入到BGP中的路由的MED值为空,传递给IBGP和EBGP邻居也为空

二、MED值传播范围:

1. 在本AS的EBGP路由器上宣告路由时传递给其他AS的EBGP邻居后,在下一AS范围内继续传递,但不会再传递给第三个AS。

2. 在AS内BGP Speaker上通告时在本AS内传递;当从IBGP邻居学到的路由通告给EBGP邻居时会清除MED值,如如果要强制边界BGP路由器将从IBGP学来的路由通告给EBGP邻居时携带MED值,需要在边界路由器上配置route-map并set metric-type internal,然后边界路由器会把本路由器上的BGP路由到下一跳的cost值作为MED值传递给EBGP邻居,(而非当前边界路由器上看到的的MED值)

三、其他:

1.默认情况下BGP路由器只比较来自相同AS的MED值,使用bgp always-compare-med命令,BGP将强制比较来自不同AS的路由的MED值。

使用bgp deterministic-med将消除路由接收顺序对选路结果的影响。

2.在接收到的BGP路由没有MED值时按0来处理,执行bgp bestpath missing-as-worst命令后,MED值按最大值4294967294来处理,这主要是为了对旧标准的兼容

3.使用命令default med命令只对本设备上用import-route命令引入的路由和BGP的聚合路由生效。

第7条

邻居类型,EBGP优于IBGP

PE上某个×××实例的×××v4路由的ERT匹配其他×××实例的IRT后复制到该×××实例,称为LocalCross;从远端PE学习到的×××v4路由的ERT匹配某个×××实例的IRT后复制到该×××实例,称为RemoteCross

EBGP优于联邦EBGP(联邦eBGP和联邦iBGP不具有可比性,不比较。因为联邦ebgp和联邦ibgp都被看做内部路径没有差别)。如果都是EBGP对等体收到的路由条目或者都是从IBGP对等体收到的路由条目或者分别从联邦EBGP和联邦IBGP对等体收到的条目则继续向下一步进行。

邻居类型, EBGP优于IBGP

EBGP优于联邦EBGP(联邦eBGP和联邦iBGP不具有可比性,不比较。因为联邦ebgp和联邦ibgp都被看做内部路径没有差别)。如果都是EBGP对等体收到的条目或者都是从IBGP对等体收到的条目或者分别从联邦EBGP和联邦IBGP对等体收到的条目则继续向下一步进行。

第8条

比较到下一跳的IGP Cost值,数值小者优选

使用命令bestroute igp-metric-ignore可忽略该选路规则

比较IGP Cost值,数值小者优选

第9条

前面的选路规则都一致时可以手工等价负载均衡,手工负载均衡时as-path要完全相同,不仅是长度相等。

携带标签的BGP路由与不携带标签的BGP路由不能形成负载分担。

1.配置maximum load-balancing ebgp number命令后,仅EBGP路由参与负载分担;配置maximum load-balancing ibgp number命令后,仅IBGP路由参与负载分担。不配置[ ebgp | ibgp ]时,EBGP和IBGP路由都参与负载分担,且参与负载分担的路由条数相同。

2.配置maximum load-balancing number命令后,无论是否形成负载分担,在发布路由时会将下一跳修改为本端地址。但是在路由反射器和BGP联盟场景下,对于非本地路由,不修改下一跳为本端地址。

3.配置maximum load-balancing [ ebgp | ibgp ] number命令后,无论是否形成负载分担,在发布路由时都不会强制将下一跳修改为本端地址。

4.配置maximum load-balancing [ ebgp | ibgp ] number ecmp-nexthop-changed命令后,只有形成负载分担时,才会将发布路由的下一跳修改为本端地址。

5.携带标签的BGP路由与不携带标签的BGP路由即使满足上述条件,也不能形成负载分担。

6.load-balancing as-path-ignore命令用来设置路由在形成负载分担时不比较路由的AS-Path属性

7.在 BGP-×××实例IPv4地址族视图、BGP-×××实例IPv6地址族视图下执行命令maximum load-balancing eibgp

在BGP-×××实例视图下,配置maximum load-balancing eibgp命令后,在判断BGP私网路由是否等价时,路由的EBGP/IBGP类型不作为判断条件,EBGP和IBGP路由都可以形成负载分担。

前面的选路规则都一致时可以手工等价负载均衡,手工负载均衡时as-path要完全相同,不仅是长度相同。

1.使用命令maximum-paths [ibgp] number,如果没有使用ibgp参数,那么只对ebgp路由负载分担

  第10条

                  无

当多条都是从EBGP收到的路由时(仅ebgp路由,联邦EBGP对等体不算,因为是内部路径),BGP优先使用最先收到的路由条目(最老的路径),该选路规则一般不使用。

如果以下任一条件为真,该条选中规则将会被忽略:

1.启用了bgp bestpath compare-routerid

2.多条路径具有相同的路由器ID,因为这些路由都是从同一台路由器发过来的

3.当前没有最佳路径。

第11条

比较Cluster_list长度,越短越优先,该选路规则仅仅出来在BGP RR环境中

缺省情况下,BGP在选择最优路由时Cluster-List优先于Originator-ID,使用命令bestroute routerid-prior-clusterlist后,BGP在选择最优路由时Originator-ID将优先于Cluster-List。

比较Router-id的大小,越小越优先

如果路径包含RR属性,那么在路径选择过程中就用originator-id来代替router-id进行比较

第12条

比较Router-id的大小,越小越优先

如果路径包含RR属性,就用originator-id来代替router-id进行比较

缺省情况下,BGP在选择最优路由时Cluster-List优先于Originator-ID,使用命令bestroute routerid-prior-clusterlist后,BGP在选择最优路由时Originator-ID将优先于Cluster-List。

reflect change-path-attribute命令使能路由反射器通过出口策略修改路由路径属性

比较Cluster_list长度,越短越优先,该选路规则仅仅出来在BGP RR环境中

第13条

比较下一跳对等体的连接地址,这是BGP配置中的peer IP地址,越小越优先

比较下一跳对等体的连接地址,这是BGP配置中的neighbor IP地址,越小越优先

第14条

                  无

BGP自定义路径选择过程:BGP Cost Community(BGP成本团体)的扩展团体属性提供了自定义最佳路径选择过程的方式。这个自动路径选择过程插入在BGP选路规则的第8条之后(优先到下一跳IGP-cost最低的路径),或第3条后,首选成本值最低的路径,该条一般不使用,使用时需要再查询详细资料

 

 

 

 

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

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

相关文章

【IDEA+Spark Streaming 3.4.1+Dstream监控套接字流统计WordCount保存至MySQL8】

【IDEASpark Streaming 3.4.1Dstream监控套接字流统计WordCount保存至MySQL8】 把DStream写入到MySQL数据库中 Spark 3.4.1MySQL 8.0.30sbt 1.9.2 文章目录 【IDEASpark Streaming 3.4.1Dstream监控套接字流统计WordCount保存至MySQL8】前言一、背景说明二、使用步骤1.引入库2…

【数字IC基础】低功耗设计

低功耗技术 功耗构成静态功耗(漏电功耗)动态功耗翻转功耗(Switch Power)短路功耗(Internal Power) 不同类型的标准单元的功耗 低功耗设计方法降低芯片工作电压多阈值工艺方法电源门控(Power Gating)多电压域(Multi-Voltage Domain)体偏置门控时钟一个简单…

IDEA SpringBoot项目引入外部jar并打包

1、首先,我们再pom.xml中导入依赖包时,打包可以正常进行。 但如果我们引入了第三方的外部jar包(这里需要先把jar包添加到该项目依赖库中,这里不做演示),如图 2、导致打包时报错,程序包不存在或…

SpringBoot 配置文件

一、配置文件作用 整个项目中所有重要的数据都是在配置文件中配置的,比如: 数据库的连接信息(包含用户名和密码的设置); 项目的启动端口; 第三方系统的调用秘钥等信息; 用于发现和定位问题的…

android app控制ros机器人四(调整界面布局)

半吊子改安卓,记录页面布局调整: 在ros-mobile基础上顶端增加一行,用于显示app名称和logo图像;修改标签页。 添加文字简单,但是替换图标长知识了,开始只是简单的把mipmap各个文件夹下的图片进行替换&…

MFC第二十六天 CRgn类简介与开发、封装CMemoryDC类并应用开发

文章目录 CRgn类简介与开发CRgn类简介CRgn类区域管理开发CRgn类区域管理与不规则形状的选取 封装CMemoryDC类并应用开发CMemoryDC.h封装CMemoryDC开发游戏透明动画CFlashDlg.hCFlashDlg.cpp 封装CMemoryDC开发游戏动画 附录四大窗口CDC派生类 CRgn类简介与开发 CRgn类简介 CR…

Qt 6. 其他类调用Ui中的控件

1. 把主类指针this传给其他类,tcpClientSocket new TcpClient(this); //ex2.cpp #include "ex2.h" #include "ui_ex2.h"Ex2::Ex2(QWidget *parent): QDialog(parent), ui(new Ui::Ex2) {ui->setupUi(this);tcpClientSocket new TcpClient…

mysql重置和修改密码 Ubuntu系统

忘记密码要重置密码 cat /etc/mysql/debian.cnf/etc/mysql/debian.cnf这个只有Debian或者Ubuntu服务器才有,里面有mysql安装后自带的用户,作用就是重启及运行mysql服务。我们用这个用户登录来达到重置密码的操作 使用上面的那个文件中的用户名和密码登…

【腾讯云Cloud Studio实战训练营】React 快速构建点餐页面

前言: Cloud Studio是一个在线的云集成开发环境(IDE),可以让开发人员在浏览器中轻松地开发、测试、调试和部署应用程序。它提供了基于云的计算资源和工具,例如代码编辑器、编译器、调试器、版本控制系统和项目管理工具…

IDEA超强XSD文件编辑插件-XSD / WSDL Visualizer

前言 XSD / WSDL Visualizer可以简化XML架构定义(XSD)和WSDL文件编辑过程; 通过使用与IntelliJ无缝集成的可视化编辑器,转换处理XSD和WSDL文件的方式。告别导航复杂和难以阅读的代码的挫败感,迎接流线型和直观的体验。 插件安装 在线安装 IntelliJ IDE…

第三方控价服务流程

控价是一项需要技术和经验双重协作才能完成好的工作,技术指的是监控价格,经验指的是治理乱价,二者缺一不可,很多品牌会选择自己去完成,自己开发系统,组建治理团队,成本相对更高,也有…

LabVIEW开发高压航空航天动力系统爬电距离的测试

LabVIEW开发高压航空航天动力系统爬电距离的测试 更多电动飞机MEA技术将发电,配电和用电集成到一个统一的系统中,提高了飞机的可靠性和可维护性。更多的电动飞机使用更多的电能来用电动替代品取代液压和气动系统。对车载电力的需求不断增加,…

Emacs之设置行号前景颜色(字体颜色)/背景颜色/光标颜色/背景透明度(一百二十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

Python+Selenium+Unittest 之selenium10--元素定位9-find_elements()

前面说了find_element()的几种定位方式,这次说下find_elements()的用法。 find_elements()从字面上就能看出比find_element()多了s,在英语中多s一般指某个单词的复数形式,在selenium中也是同理,find_element()是用来定位一个元素的…

节能延寿:ARM Cortex-M微控制器下的低功耗定时器应用

嵌入式系统的开发在现代科技中发挥着至关重要的作用。它们被广泛应用于从智能家居到工业自动化的各种领域。在本文中,我们将聚焦于使用ARM Cortex-M系列微控制器实现低功耗定时器的应用。我们将详细介绍在嵌入式系统中如何实现低功耗的定时器功能,并附上代码示例。 嵌入式系…

常见的数据结构(顺序表、顺序表、链表、栈、队列、二叉树)

线性表(Linear List)  1.什么是线性表 2.线性表的特点 3.线性表的基本运算 顺序表 1.什么是顺序表 2.时间复杂度: 链表 1.什么是链表 2.单向链表 3. 双向链表 4.ArrayList和LinkedList的使用 栈Stack  1.什么是栈  2.栈的基本方法 队列…

机器学习入门之 pandas

pandas 有三种数据结构 一种是 Series 一种是 Dataframe import pandas as pd import numpy as np score np.random.randint(0,100,[10,5])score[0,0] 100Datascore pd.DataFrame(score)subject ["语文","数学","英语","物理&quo…

Day01-作业(HTMLCSS)

作业1:通过HTML的标签及CSS样式,完成如下企业简介html页面的制作 A. 最终效果如下: B. 文字素材如下: 企业简介传智教育(股票代码 003032),隶属江苏传智播客教育科技股份有限公司,注册资本4亿元&#xff0…

918. 环形子数组的最大和;2531. 使字符串总不同字符的数目相等;1238. 循环码排列

918. 环形子数组的最大和 核心思想:其实这题不加环形很好做,就是一个动态规划或者贪心就能够解决。加了环形我们应该怎么考虑呢,无非就是两种,第1种是子数组只包含首尾的一个,我们直接求子数组的最大连续和即可&#…

服务器运行python程序的使用说明

服务器的使用与说明 文章目录 服务器的使用与说明1.登录2.Python的使用2.1 服务器已安装python32.2 往自己的用户目录安装python31.首先下载安装包2.解压缩3.编译与安装 2.3 新建环境变量2.4 测试 3 创建PBS作业并提交 1.登录 windowsr打开运行命令窗口,在运行框中…