专题十五:动态路由——BGP

一、BGP的基本概念

BGP(Border Gateway Protocol,边界网关协议)是一种用于在不同自治系统(AS)之间交换路由信息的外部网关协议(EGP)。通过TCP179端口建立连接。目前采用BGP4版本,IPv6协议中采用BGP4+。

BGP类型:

EBGP:运行在不同AS之间的BGP成为EBGP,为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。

IBGP:运行于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。

1.自治系统(AS)

  • AS1使用RIP作为内部网关协议(IGP)。

  • AS2使用OSPF作为内部网关协议(IGP)。

AS是指在一个实体管辖下的拥有相同选路策略的IP网络。BGP网络中的每个AS都被分配一个唯一的AS号,用于区分不同的AS。

公有 AS 号:公有 AS 号用于在互联网上可被路由的自治系统,这些 AS 号是全球唯一的,范围从 1 到 64511。

私有 AS 号:私有 AS 号范围是从 64512 到 65535,实际一般做实验或者大内网中使用AS 65535。

2.网部网关协议

AS1和AS2之间通过BGP(属于EGP)交换跨自治系统的路由信息。

3.协议分层逻辑

  • 内部网络:自治系统内部使用轻量级IGP(如RIP、OSPF)实现高效路由。

  • 外部互联:不同自治系统之间使用EGP(如BGP)实现策略控制和大规模路由交换。

二、BGP报文

如上图所示,BGP存在5种类型的报文,分别为Open、Update、Notification、Keepalive、Route-refresh,不同类型的报文拥有相同的头部(header)。5种报文各自起到作用及发送时间见下表:

报文名称作用发送时间
Open协商BGP对等体参数,建立对等体关系BGP TCP连接建立成功之后
Update发送BGP路由更新BGP对等体关系建立之后有路由需要发送或路由变化时向对等体发送Update报文
Notification报文错误信息,中止对等体关系当BGP在运行中发现错误时,发送Notification报文将错误通过给BGP对等体
Keepalive标志对等体建立,维持BGP对等体关系BGP路由器收到对端发送的Keepalive报文,将对等体状态置为已建立,同时后续定期发送Keepalive报文用于保持连接
Route-refresh用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新能力的BGP设备会发送和响应此报文当路由策略发生变化时,触发请求对等体重新通告路由
  • Open消息:是 TCP 连接建立后发送的第一个消息,用于建立 BGP 对等体之间的连接关系对等体在接收到 Open 消息并协商成功后,将发送 Keepalive 消息确认并保持连接的有效性。确认后,对等体间可以进行 Update、Notification、Keepalive和 Route-Refresh 消息的交换。

    应用:通过 TCP 建立 BGP 连接时,发送 OPEN 消息。
  • Update消息:用于在对等体之间交换路由信息

  • Update消息可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。

    应用:连接建立后,如果有路由需要发送或路由变化时,发送UPDATE消息通告对端。
  • Keepalive消息:BGP 会周期性的向对等体发出 Keepalive消 息,用来保持连接的有效性

  • 应用:稳定后要定时发送 KEEPALIVE 消息以保持 BGP 连接的有效性。
  • Notification消息:当 BGP 检测到错误状态时,就向对等体发出 Notification 消息,之后 BGP 连接会立即中断。

  • 应用:当本地 BGP 在运行中发现错误时,要发送 NOTIFICATION 消息通告 BGP 对等体
  • Route-Refresh消息:通过 OPEN 消息告知 BGP peer 本地支持路由刷新能力(Route-Refresh capability)。

  • 应用:ROUTE-REFRESH 消息用来通知对等体自己支持路由刷新

三、BGP状态机

1.BGP六种状态

BGP的状态有idle、connect、active、opensent、openconfirm、established六种状态。

Peer状态名称用途
ldle开始准备TCP的连接并监视远程对等体,启用BGP时,要准备足够的资源
Connect正在进行TCP连接,等待完成中,认证都是在TCP建立期间完成的。如果TCP连接建立失败则进入Active状态,反复尝试连接
ActiveTCP连接没建立成功,反复尝试TCP连接
OpenSentTCP连接已经建立成功,开始发送Open包,Open包携带参数协商对等体的建立
OpenConfirm参数、能力特性协商成功,自己发送Keepalive包,等待对方的Keepalive包
Established已经收到对方的Keepalive包,双方能力特性经协商发现一致,开始使用Update通告路由信息

2.BGP状态变换

BGP的状态有idle、connect、active、opensent、openconfirm、established六种状态。

(1)Idle状态是BGP初始状态。

在Idle状态下,BGP拒绝对等体发送的连接请求。只有在收到本设备的Start事件后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect状态。

Start事件是由一个操作者配置一个BGP过程,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起的。

任何状态中收到Notification报文或TCP拆链通知等Error事件后,BGP都会转至Idle状态。

(2)Connect状态

在Connect状态下,BGP启动连接重传定时器(Connect Retry),等待TCP完成连接。

如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。

如果TCP连接失败,那么BGP转至Active状态。

如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。

(3)Active状态

在Active状态下,BGP总是在试图建立TCP连接。

如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态。

如果TCP连接失败,那么BGP停留在Active状态。

如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。

(4)Opensent状态、openconfirm状态

TCP三次握手建立成功后,发送open报文建立对等体关系,此时的状态为

opensent状态,当收到对端回应的open报文,并且参数检查无误,在发送keepalive报文后进入openconfirm状态。

(5)established状态

进入openconfirm状态后,收到对端的keepalive报文后进入established状态。

四、BGP对等体

1.BGP对等体的概念

BGP发言者:运行BGP路由协议的路由器称为BGP发言者(BGP路由器);

BGP对等体:两个建立BGP会话(BGP的会话是基于TCP建立的)的路由器互为BGP对等体,BGP对等体之间可以交换路由表;

2.BGP对等体分类

BGP对等体可以按照两个路由器是否AS相同,分为EBGP对等体和IBGP对等体。

(1)IBGP:位于相同的AS的BGP路由器互为IBGP对等体关系;

(2)EBGP:位于不同的AS的BGP路由器互为EBGP对等体关系;

能够建立对等体的条件:

两个路由器指定建立对等体的地址必需可达;

TCP连接能够建立;

3.BGP对等体的建立

(1)TCP连接建立

假设BGP路由器R1先启动,则R1先发起建立TCP连接,通过3次握手完成TCP的连接建立。

(2)BGP路由器发送OPEN报文协商参数

三次握手建立完成后,R1和R2之间相互发送OPEN报文,用于建立对等体的参数协商。

OPEN报文参数:

  • 自身AS号;

  • hold time:用于协商后续keepalive报文发送时间;

  • BGP identifier:自身router id;

(3)BGP路由器发送keepalive报文完成对等体建立

参数协商正常后双方相互发送keepalive报文,收到对方的keepalive报文后对等体建立成功,同时后续定期发送keepalive报文用于保持连接。

(4)BGP路由器发送UPDATE报文通告路由

BGP对等体关系建立好了,就可以通过BGP update 报文通告路由到对等体。收到对方的keepalive报文后对等体建立成功,同时后续定期发送keepalive报文用于保持连接。

4.BGP对等体建立使用源地址

BGP默认使用出接口的IP地址建立对等体。

(1)在建立IBGP对等体关系时,建议使用loopback地址建立IBGP对等体。因为loopback地址稳定,可以借助内部IGP冗余保证可靠性。

例如上图:

R1和R2通过loopback地址建立IBGP对等体,如果R1和R2之间的物理链路断了,loopback地址的连通性也不会受影响,可以通过R3实现R1和R2的loopback地址的互通,那么R1和R2之间的对等体关系依然可以保持建立。如果通过接口建立的话,就会导致BGP对等体关系中断。

(2)在建立EBGP对等体关系时,建议使用直连地址建立EBGP对等体。如果使用loopback,需要注意EBGP多跳的问题。

五、BGP路由表

1.BGP对等体表

可以通过dis bgp peer 查看BGP对等体表;

(1)peer:对等体地址

(2)V:版本号

(3)AS:对等体AS号

(4)UP/DOWN:对等体存在up或者down的时间

(5)state:对等体状态

(6)prefRce:从该对等体收到的路由前缀数目

2.BGP路由表

可以通过display  bgp routing-table  查看BGP路由表;

如果到达同一个目的地存在多条路由,则将路由都进行罗列,但每个目的地只会优选一条路由。

通过display bgp routing-table ipv4-address { mask | mask-length } 可以显示指定IP地址/掩码长度的路由信息,在其中有关于该BGP路由的详细信息,如:路由始发者、下一跳地址、路由的路径属性等

六、BGP选路原则

当到达同一目的地存在多条路由时, BGP 依次对比下列属性来选择路由:

1.优选协议首选值(PrefVal)最高的路由。协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效。

2.优选本地优先级(Local_Pref)最高的路由。如果路由没有本地优先级,BGP选路时将该路由按缺省的本地优先级100来处理。

3.依次优选手动聚合路由、自动聚合路由、network命令引入的路由、import-route命令引入的路由、从对等体学习的路由。

4.优选AS路径(AS_Path)最短的路由。当AS_Path为空时,会优选AS_Path为空的路由。

5.依次优选Origin类型为IGP、EGP、Incomplete的路由。

6.对于来自同一AS的路由,优选MED值最低的路由。

7.依次优选EBGP路由、IBGP路由、LocalCross路由、RemoteCross路由。

8.优选到BGP下一跳IGP度量值(metric)最小的路由。

9.优选Cluster_List最短的路由。

10.优选Router ID最小的设备发布的路由。如果路由携带Originator_ID属性,选路过程中将比较Originator_ID的大小(不再比较Router ID),并优选Originator_ID最小的路由。

11.优选从具有最小IP Address的对等体学来的路由。

当到达同一目的地址存在多条等价路由时,可以通过 BGP 等价负载分担实现均衡流量的目的。形成 BGP 等价负载分担的条件是“BGP 选择路由的策略”的 1 至 8 条规则中需要比较的属性完全相同。

七、BGP路由生成

BGP路由是通过BGP命令通告而成的,而通告BGP路由的方法有两种:network和Import。

(1)network方式:

使用network命令可以将当前设备路由表中的路由(非BGP)发布到BGP路由表中并通告给邻居,和OSPF中使用network命令的方式大同小异,只不过在BGP宣告时,只需要宣告网段+掩码数即可,如:network 12.12.0.0 16。

(2)Import方式:

使用Import命令可以将该路由器学到的路由信息重分发到BGP路由表中,是BGP宣告路由的一种方式,可以引入BGP的路由包括:直连路由、静态路由及动态路由协议学到的路由。其命令格式与在RIP中重分发OSPF差不多。

八、BGP的配置

1.基本配置

需要在所有Router间运行BGP协议,RouterA、RouterB之间建立EBGP连接,RouterB、RouterC和RouterD之间建立IBGP全连接。
配置思路:
采用如下的思路配置BGP的基本功能:
(1)在RouterB、RouterC和RouterD间配置IBGP连接。
(2)在RouterA和RouterB之间配置EBGP连接。
配置步骤:
(1)配置各接口的IP地址

# 配置RouterA。
<Huawei> system-view
[Huawei] sysname RouterA
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] ip address 10.1.1.1 8
[RouterA-GigabitEthernet1/0/0] quit
其他路由器各接口的IP地址与此配置一致(略)。


(2)配置IBGP连接

# 配置RouterB。
[RouterB] bgp 65009  //配置as号
[RouterB-bgp] router-id 2.2.2.2
[RouterB-bgp] peer 172.16.1.2 as-number 65009   //配置对等体的IP地址及其所属的AS编号
[RouterB-bgp] peer 172.16.3.2 as-number 65009   //配置对等体的IP地址及其所属的AS编号
指定对等体的IP地址可以是以下三种:
直连对等体的接口IP地址。
直连对等体的子接口IP地址。
路由可达的对等体的Loopback接口地址。
# 配置RouterC。
[RouterC] bgp 65009 
[RouterC-bgp] router-id 3.3.3.3
[RouterC-bgp] peer 172.16.3.1 as-number 65009  
[RouterC-bgp] peer 172.16.2.2 as-number 65009
[RouterC-bgp] quit
# 配置RouterD。
[RouterD] bgp 65009
[RouterD-bgp] router-id 4.4.4.4
[RouterD-bgp] peer 172.16.1.1 as-number 65009
[RouterD-bgp] peer 172.16.2.1 as-number 65009
[RouterD-bgp] quit


(3)配置EBGP连接

# 配置RouterA。
[RouterA] bgp 65008
[RouterA-bgp] router-id 1.1.1.1
[RouterA-bgp] peer 192.168.1.1 as-number 65009
# 配置RouterB。
[RouterB-bgp] peer 192.168.1.2 as-number 65008
# 查看BGP对等体的连接状态。
[RouterB-bgp] display bgp peer


(4)配置RouterA发布路由10.1.0.0/8

# 配置RouterA发布路由。
[RouterA-bgp] ipv4-family unicast    //使能BGP的IPv4单播地址族视图
[RouterA-bgp-af-ipv4] network 10.1.0.0 255.0.0.0
[RouterA-bgp-af-ipv4] quit
# 查看RouterA路由表信息。
[RouterA-bgp] display bgp routing-table 


(5)配置BGP引入直连路由

# 配置RouterB。
[RouterB-bgp] ipv4-family unicast
[RouterB-bgp-af-ipv4] import-route direct   //引入直连路由
# 查看RouterA的BGP路由表。
[RouterA-bgp] display bgp routing-table

2.路由反射器的配置

2.1路由反射技术概述

BGP在AS之间的路由防环,是要依赖AS_PATH属性,但是AS_PATH属性只有路由在EBGP邻居之间传递时才会发生改变,在AS内部,AS_PATH是不会改变的,那么在AS内部的路由防环,就无法依赖AS_PATH了,因此BGP定义IBGP的水平分割规则:一台BGP路由器从它的IBGP邻居学习到的BGP路由不能再传递给任何IBGP邻居。由于存在IBGP水平分割原则,使得AS内的BGP路由器之间不得不两两建立IBGP连接(IBGP全互联),以求获得完整的BGP路由更新,然而这是个扩展性非常低的做法,同时也给网络设备带来了负担,解决IBGP扩展性问题的两种有效的办法是路由反射器及联邦。

路由反射器相比于联邦,优势在于,联邦中所有路由器都需要支持并理解联邦机制,而路由反射器只需要RR理解反射器机制即可,另外,路由反射器的实现机制也相对简单一些,并且对大型冗余性、层次性强的网络架构采用路由反射器的解决方案也是一个不错的选择。当然如果希望用各种EBGP机制来管理大规模AS,那么联邦将是一个更优的解决方案。

图片

在上图中,由于IBGP水平分割的限制,使得R4在收到IBGP邻居R3发来的路由更新后,不能在发送给另一个IBGP邻居R5。如此一来R5就无法正常学习路由,除非在R3-R5之间也建立一条IBGP连接。

图片

采用路由反射技术即可解决这个问题,首先我们定义一个RR,同时定义这个RR的Client。那么这时候当RR收到她的Client发送过来的路由,就可以像一面镜子一样,将路由反射给其他IBGP路由器。此刻R4作为RR,与它的Client R3就构成了一个路由反射簇。

思考路由反射器时,将簇当作一个逻辑的整体去考虑即可, RR和client共同构成反射簇,但是只有RR知道(配置只是在RR上完成)。注意RR只通告或反射它所知道的最佳路径。

为了维护一致的BGP拓扑,RR在反射路由的时候不修改某些BGP路径属性,这些属性包括NH、AS_PATH、LOCAL_PREF和MED,并且增加了ORIGINATOR和CLUSTER_LIST用于防环。

2.2路由反射规则
  • 如果路由学习自非client IBGP对等体,则反射给所有client

  • 如果路由学习自一client,则反射给所有非client IBGP邻居和除了该client以外的所有client(我司设备可以关闭RR在Client之间的路由反射行为)

  • 如果路由学习自EBGP邻居,则发送给所有client和非client IBGP邻居

注意红色关键字。注意反射和发送的区别。下面看几个例子:

图片

图片

2.3路由反射器的基本配置

互联IP的规划如图所示;所有路由器Loopback0口地址为x.x.x.x/32,x为设备编号。

AS123内跑一个OSPF,宣告直连接口,以及各自的Loopback0接口。

R1、R2、R3根据上图所示建立IBGP邻居关系。

在R1上引入11.11.11.0/24路由进BGP,初始情况下R2能够学习这条BGP路由,但是R3无法学习到。

将R2配置为RR,R1作为R2的Client,使得R3能够学习到11.11.11.0/24路由

# R1的配置-省略OSPF及接口的配置

[R1] bgp 123[R1-bgp] router-id 1.1.1.1[R1-bgp] peer 2.2.2.2 as-number 123[R1-bgp] peer 2.2.2.2 connect-interface loopback0[R1-bgp] network 11.11.11.0 24

# R2的配置-省略OSPF及接口的配置

[R2] bgp 123[R2-bgp] router-id 2.2.2.2[R2-bgp] peer 1.1.1.1 as-number 123[R2-bgp] peer 1.1.1.1 connect-interface loopback0[R2-bgp] peer 1.1.1.1 reflect-client[R2-bgp] peer 3.3.3.3 as-number 123[R2-bgp] peer 3.3.3.3 connect-interface loopback0

# R3的配置省略OSPF及接口的配置

[R3] bgp 123[R3-bgp] router-id 3.3.3.3[R3-bgp] peer 2.2.2.2 as-number 123[R3-bgp] peer 2.2.2.2 connect-interface loopback0

在R3上验证一下,查看路由11.11.11.0的详细信息:

另一个需要关注的配置是配置路由反射簇的Cluster_ID,这也是在RR上完成的配置。当RR反射一条路由时,如果该路由不存在Originator及Cluster_list属性,则插入这两个属性值,同时Cluster_list属性值中写入本路由反射簇的Cluster_ID,默认情况下,Cluster_ID为RR的RouterID,如果需要修改,可使用下面的命令。

如果RR在反射路由时,被反射路由中已经存在Cluster_List属性了,那么RR将自己的Cluster_ID插入到已有的CLuster_List中。


九、软考真题

2020年11月网络规划设计师:

下列哪种BGP属性不会随着BGP的Update报文通告被邻居()

A.PreVal

B.Next-hop

C.AS-Path

D.Origin

【解析】答案是A,PreVal是华为设备特有属性,仅本地有效。

2016年11月网络规划设计师:

当一条路由被发布到它所起源的AS时,会发生的情况是()

A.该AS在路径属性列表中看到自己的号码,从而拒绝接收这条路由

B.边界路由器把该路由传送到这个AS中的其他路由器

C.该路由将作为一条外部路由传送给同一AS中的其他路由器

D.边界路由器从AS路径列表中删除自己的AS号码并重新发布路由

【解析】答案是A,EBGP防止环路就是不接收带有本地AS号的路由。

2022年11月网络规划设计师:

以下关于IS-IS协议的描述中,错误的是()。

A.IS-IS使用SPF算法来计算路由

B.IS-IS是一种链路状态路由协议

C.IS-IS使用域(area)来建立分级的网络拓扑结构,骨干为area0

D.IS-IS通过传递LSP来传递链路信息,完成链路数据库的同步

【解析】答案是C,area分级网络是OSPF协议内容。

2021年11月网络工程师:

以下关于IS-IS路由协议的说法中,错误的是()

A.IS-IS是基于距离矢量的路由协议。

B.IS-IS属于内部网关路由协议

C.IS-IS路由协议将自治系统分为骨干区域和非骨干区域

D.IS-IS路由协议中Leve1-2路由器可以和不同区域的Leve1-2或者Leve1-1-2路由器形成邻居关系

【解析】答案是A。IS-IS是链路状态路由协议,采用SPF算法计算路由路径。

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

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

相关文章

【Flask开发】嘿马文学web完整flask项目第4篇:4.分类,4.分类【附代码文档】

教程总体简介&#xff1a;2. 目标 1.1产品与开发 1.2环境配置 1.3 运行方式 1.4目录说明 1.5数据库设计 2.用户认证 Json Web Token(JWT) 3.书架 4.1分类列表 5.搜索 5.3搜索-精准&高匹配&推荐 6.小说 6.4推荐-同类热门推荐 7.浏览记录 8.1配置-阅读偏好 8.配置 9.1项目…

在Mac上离线安装k3s

目录 首先是安装multipass。 1. 系统要求 2. 环境准备 本来想照着网上文档学习安装一下k3s&#xff0c;没想到在docker被封了之后&#xff0c;现在想通过命令行去下载github的资源也不行了&#xff08;如果有网友看到这个文档、并且知道问题原因的&#xff0c;请留言告知&am…

vscode+wsl 运行编译 c++

linux 的 windows 子系统&#xff08;wsl&#xff09;是 windows 的一项功能&#xff0c;可以安装 Linux 的发行版&#xff0c;例如&#xff08;Ubuntu&#xff0c;Kali&#xff0c;Arch Linux&#xff09;等&#xff0c;从而可以直接在 windows 下使用 Linux 应用程序&#xf…

基于源码分析 HikariCP 常见参数的具体含义

HikariCP 是目前风头最劲的 JDBC 连接池&#xff0c;号称性能最佳&#xff0c;SpringBoot 2.0 也将 HikariCP 作为默认的数据库连接池。 要想用好 HikariCP&#xff0c;理解常见参数的具体含义至关重要。但是对于某些参数&#xff0c;尽管官方文档给出了详细解释&#xff0c;很…

docker部署scylladb

创建存储数据的目录和配置目录 mkdir -p /root/docker/scylla/data/data /root/docker/scylla/data/commitlog /root/docker/scylla/data/hints /root/docker/scylla/data/view_hints /root/docker/scylla/conf快速启动拷贝配置文件 docker run -d \--name scylla \scylladb/…

golang 在windows 系统的交叉编译

基本交叉编译命令 GOOS目标操作系统 GOARCH目标架构 go build -o 输出文件名 包路径 编译 Linux 64位程序 set GOOSlinux set GOARCHamd64 go build -o myapp-linux main.go 编译 MacOS (Darwin) 64位程序 set GOOSdarwin set GOARCHamd64 go build -o myapp-macos main.go …

本地mock服务编写

确认有需要mock的接口文档后&#xff0c;本地可以mock服务编写&#xff1b; 用于测试UI事务、模拟对接组件等&#xff1b; 使用python FLASK可以轻松建立本地mock服务端&#xff0c;注册预期的接口响应&#xff01;flask会在接收端持续打印收到的请求&#xff01; 注意&#…

京东云智能体平台joybuilder v3.0.0测试

平台介绍&#xff1a; JoyBuilder 是京东云推出的 AI 原生应用开发平台&#xff0c;以下是对它的具体介绍&#xff1a; 开发方式便捷高效&#xff1a;将 AI 能力融入低代码平台&#xff0c;用户通过对话式交互方式&#xff0c;输入如 “创建客户反馈管理系统” 等需求&#x…

前端实现对接现成文件下载接口(xlsx)

针对于Ant Design 框架 1.在你的api文件下编写接口路径 import request from /utils/request import storage from storeimport {AUTHORIZATION} from /store/mutation-types const api {downloadVocabularyTemplate:/vocabulary/downloadVocabularyTemplate, }export funct…

TCPIP详解 卷1协议 六 DHCP和自动配置

6.1——DHCP和自动配置 为了使用 TCP/IP 协议族&#xff0c;每台主机和路由器需要一定的配置信息。基本上采用3种方法&#xff1a;手工获得信息&#xff1b;通过一个系统获得使用的网络服务&#xff1b;使用某种算法自动确定。 拥有一个IP 地址和子网掩码&#xff0c;以及 DN…

联想电脑开机出现Defalut Boot Device Missing or Boot Failed怎么办

目录 一、恢复bios默认设置 二、关机重启 三、“物理”方法 在图书馆敲代码时&#xff0c;去吃了午饭回来发现刚开机就出现了下图的问题&#xff08;崩溃&#xff09;&#xff0c;想起之前也发生过一次 这样的问题&#xff0c;现在把我用到的方法写在下面&#xff0c;可能对…

用户登陆UI

本节任务 完成用户登陆UI&#xff0c;点击登陆按钮跳转到应用主页 界面原型&#xff1a; 登陆页面&#xff1a; 登陆成功页面&#xff1a; 涉及知识点&#xff1a; 线性布局Image组件输入框复选框分割线按钮路由跳转背景色、内容对齐 1 新建项目 录入项目信息&#xff1a;…

linux多线(进)程编程——(1)前置知识

liunx多线程编程&#xff08;前置知识&#xff09;前置知识 前言 学习编程就像是修仙&#xff0c;分为宗门的正统修士&#xff08;计算机专业的学生&#xff09;&#xff0c;以及野修&#xff08;半路转码&#xff09;。正统修士有各大宗门的功法&#xff0c;保证一路修行畅通…

Npfs!NpFsdCreate函数分析之从NpCreateClientEnd函数分析到Npfs!NpSetConnectedPipeState

第一部分&#xff1a; 1: kd> g Breakpoint 5 hit Npfs!NpFsdCreate: baaecba6 55 push ebp 1: kd> kc # 00 Npfs!NpFsdCreate 01 nt!IofCallDriver 02 nt!IopParseDevice 03 nt!ObpLookupObjectName 04 nt!ObOpenObjectByName 05 nt!IopCreateFile 06…

【软件测试】bug 篇

本章思维导图&#xff1a; 1. 软件测试的生命周期 软件测试贯穿于整个软件的生命周期 流程阶段需求分析测试计划测试设计/开发测试执行测试评估上线运行维护具体工作内容1. 阅读需求文档 2. 标记可测试需求 3. 确定测试类型1. 制定测试范围 2. 选择测试工具 3. 分配资源1. 编写…

「Unity3D」图片导入选项取消Read/Write,就无法正确显示导入大小,以及Addressable打包无法正确显示的问题

如果在Edit -> Project Settings -> Editor中的“Load texture data on demand”勾选&#xff0c;就会让图片导入设置中&#xff0c;不勾选Read/Write&#xff0c;就无法正确显示纹理的大小数字。 更进一步的问题是&#xff0c;使用Addressable打包的时候&#xff0c; 如…

《MySQL从入门到精通》

文章目录 《MySQL从入门到精通》1. 基础-SQL通用语法及分类2. 基础-SQL-DDL-数据库操作3. 基础-SQL-DDL-表操作-创建&查询4. 基础-SQL-DDL-数据类型及案例4.1 数值类型4.2 字符串类型4.3 时间和日期类型 5. 基础-SQL-DDL-表操作-修改&删除5.1 DDL-表操作-修改5.2 DDL-表…

Vccaux_IO在DDR3接口中的作用

一、Vccaux_IO在DDR3接口中的作用 1.vccaux_io通常为FPGA的IO bank的辅助电源&#xff0c;用于支持特定电压的IO标准 2.在DDR3接口中&#xff0c;FPGA的IO bank需要DDR3芯片的电压(1.5v/1.35v)匹配 3.Vccaux_IO用于为FPGA的DDR3接口I/O Bank供电&#xff0c;其电压值、噪声和稳…

深入理解Apache Kafka

引言 在现代分布式系统架构中&#xff0c;中间件扮演着至关重要的角色&#xff0c;它作为系统各组件之间的桥梁&#xff0c;负责处理数据传递、消息通信、负载均衡等关键任务。在众多中间件解决方案中&#xff0c;Apache Kafka凭借其高吞吐量、低延迟和可扩展性&#xff0c;已…

【NLP】 21. Transformer整体流程概述 Encoder 与 Decoder架构对比

1. Transformer 整体流程概述 Transformer 模型的整个处理流程可以概括为从自注意力&#xff08;Self-Attention&#xff09;到多头注意力&#xff0c;再加上残差连接、层归一化、堆叠多层的结构。其核心思想是利用注意力机制对输入进行并行计算&#xff0c;从而避免传统 RNN …