BGP基础


一、BGP产生背景
- BGP定义:边界网关协议(BGP)是自治系统间的动态路由协议,属于外部网关协议(EGP)。
- 自治系统(AS):由统一管理、运行同一IGP协议的路由器组成,通常采用相同路由策略。
- AS编号:
- 2字节:范围0-65535,0和65535保留;公有AS为1-64511,私有AS为64512-65535。
- 4字节:公有AS为65536–4199999999,私有AS为4200000000–4294967294。
二、路由协议的分类
- IGP:包括RIP、OSPF、IS-IS。
- EGP:即BGP。
三、BGP协议特性
1. 负责在自治系统间传递路由,AS内部路由扩散依靠IGP。
2. 是路径矢量协议,一跳为一个自治系统,路由在AS间传递时下一跳会变化,在AS内部传递时下一跳不变。
3. 具有AS防环机制,通过AS_PATH属性,当路由的AS_PATH中包含本AS编号时不学习该路由。
4. 基于TCP协议传输,端口号179,需手动配置邻居。
5. 第一次网络收敛发送完整路由表,后续只发送增量更新。
6. 有多种属性可控制路由选择。
7. 支持路由聚合。
8. 可进行路由过滤和路由策略配置。
四、BGP基本术语
- BGP Speaker:运行BGP协议的路由器。
- BGP Peer:相互存在TCP连接、交换路由信息的BGP Speaker。
- BGP对等体:
- EBGP对等体:跨AS的邻居,一般物理直连,从其获得的路由会向所有对等体通告。
- IBGP对等体:同一AS内部的邻居。
- 邻居可以直连,也可以非直连。
五、BGP规划问题(路由黑洞)
- 产生原因:IBGP邻居之间存在未运行BGP协议的路由器,无法获得BGP路由,导致数据包被丢弃。
- 解决方法:
- BGP引入IGP。
- 在黑洞路由器上配置目的网段的静态路由。
- 建立IBGP全连接(存在IBGP水平分割机制,从IBGP邻居学习的路由不传递给其他IBGP邻居)。
- 使用BGP路由反射器(无视IBGP防环机制,减少邻居关系数量)。
- 采用BGP联盟(减少邻居关系数量,受IBGP水平分割限制)。
六、BGP环路问题(水平分割) 
- EBGP水平分割:通过AS_PATH属性防环,学习到的路由中若有本地AS号则拒绝学习。
- IBGP水平分割:路由器从一个IBGP对等体学习到的BGP路由,不会通告给其他IBGP对等体。
七、BGP消息种类
- 头部信息:包含标记(解决协议兼容性)、长度(指示报文长度)、类型(指示报文类型)。
- 数据包种类:
- Open:建立BGP对等体连接,携带route-id,包含保持时间、可选参数等。
- Keepalive:周期性发送以保持连接有效性,默认每60秒发送,超时时间180秒。
- Update:携带路由更新信息,包括要撤销和新增的路由及相关属性。
- Notification:检测到错误状态时发送,之后关闭BGP连接。
- Router-refresh:改变路由策略后,要求对等体重发指定地址族的完整路由表,仅支持该能力的路由器会响应。
八、BGP状态机
- Idle:空闲状态,停留30秒,准备TCP连接并监视远程对等体。
- Connect:TCP连接中,连接失败进入Active状态。
- Active:TCP主动连接方,连接未成功则反复尝试。
- OpenSent:成功建立TCP连接,发送open报文,等待对方open报文。
- OpenConfirm:收到open报文,发送Keepalive报文,等待第一个Keepalive报文。
- Established:收到Keepalive报文,成功建立邻居关系。
九、BGP邻居建立条件
- IBGP:
- 物理口建邻:建议使用直连接口地址。
- 环回口建邻:对方接口有IP地址且TCP可达,更新源地址需与指定邻居地址一致,无需直连。
- EBGP:
- 物理口建邻:建议使用直连接口地址。
- 环回口建邻:对方接口有IP地址且TCP可达,可修改最大跳数实现非直连,更新源地址需与指定邻居地址一致。
- 注意:默认IBGP邻居间数据包TTL为255,EBGP为1,环回建立EBGP邻居需修改TTL值。
十、BGP基本配置
1. 启动与创建连接:启动BGP,配置router-id,指定对等体及AS号,创建地址族并使能交换路由信息能力。
2. 优化连接:指定建立TCP连接的源接口,设置EBGP对等体最大跳数。
3. 生成路由:将本地路由发布到BGP路由表,或引入其它路由协议的路由。
4. 查看命令:display bgp peer(查看对等体信息)、display bgp routing-table(查看路由表)。

BGP选路及属性


一、BGP路由选路原则(13条)
1. 丢弃下一跳(NEXT_HOP)不可达的路由。
2. 优选Preferred-value值最大的路由(默认0,取值0~65535,H3C和华为私有属性)。
3. 优选本地优先级(LOCAL_PREF)最高的路由。
4. 依次选择network命令生成的路由、import-route命令引入的路由、聚合路由。
5. 优选AS路径(AS_PATH)最短的路由。
6. 依次选择ORIGIN属性为IGP、EGP、Incomplete的路由。
7. 优选MED值最低的路由。
8. 依次选择从EBGP、联盟EBGP、联盟IBGP、IBGP学来的路由。
9. 优选下一跳度量值(通过IGP到达下一跳的度量)最低的路由。
10. 优选CLUSTER_LIST长度最短的路由。
11. 优选ORIGINATOR_ID最小的路由。
12. 优选Router ID最小的路由器发布的路由。
13. 优选IP地址最小的对等体发布的路由。
二、BGP负载分担时的选路
1. 背景:BGP默认选出唯一最优路由,可通过配置命令或路由策略修改属性实现负载分担,如 maximum load-balancing 2 允许最多2条等价路径。
2. 与IGP的区别:
- IGP通过自身路由算法,对度量值相等的路由进行负载分担。
- BGP无路由计算算法,基于选路规则有条件地实现负载分担。
三、BGP路由的发布策略
- 只将最优路由发布给对等体(默认发布BGP路由表最优路由,配置 active-route-advertise 则发布IP路由表最优路由)。
- 只发布自己使用的最优路由。
- 从EBGP获得的路由向所有BGP对等体发布。
- 从IBGP获得的路由不向IBGP对等体发布(IBGP水平分割),但会发布给EBGP对等体。
- BGP连接建立后,向新对等体发布所有满足条件的路由,后续仅在路由变化时发布更新。
四、BGP属性(控制选路的方法)
1. 公认属性(所有路由器必须识别)
公认必遵属性(BGP路由必须携带)
- AS_path:记录路由经过的AS编号,用于AS防环,选路时AS_PATH短的优先。
- next-hop:下一跳地址。向EBGP邻居发布路由时,下一跳为EBGP邻居地址;向IBGP邻居发布时,下一跳不变,可通过命令修改为本地地址。
- origin:描述路由来源,属性值优选顺序为IGP>EGP>Incomplete。
公认可选属性(所有路由器识别,非必须携带)
- local-perference:本地优先级,仅在IBGP邻居间传递,默认值100,值大的优先,用于AS内选择离开本AS的最佳路由。
- Atomic-aggregate:自动聚合属性,BGP支持自动或手动聚合。
2. 可选属性
可选传递属性(路由器可不识别,但会传递)
- aggregator:手动聚合属性。
- community:团体属性。
可选非传递属性(路由器可不识别,且不传递)
- clustor_list:集群列表。
- originator_id:集群ID。
- MED:多出口鉴别器,用于判断流量进入AS的最优路径,仅在相邻AS间传递,默认值0(network路由)或原IGP的cost(引入路由),值小的优先。
3. preferred-value
- 首选项,H3C和华为私有属性,默认0,取值0~65535,值大的路由优先。
五、属性控制的选择建议
1. 影响下游所有路由器选路:使用AS-PATH。
2. 影响本AS内部某个路由器选路:使用Local-preference。
3. 影响下游某一个AS的路由器选路:使用MED。
4. 影响某一台路由器选路:使用preferred-value。
六、属性控制方法
通过路由策略实现,对匹配的路由用 Apply 子句修改属性,在邻居的入/出方向调用策略,空节点允许其他网段通过。

BGP对等体组、聚合、路由反射器、联盟、团体属性


一、大规模BGP网络的问题
- BGP对等体众多,配置和维护复杂。
- BGP路由表庞大,对设备性能要求高。
- IBGP全连接导致邻居数量过多,管理难度大。
- 路由变化频繁,引发频繁的路由更新。
二、解决大规模BGP网络问题的方案
问题类型 解决方法 
BGP对等体众多 对等体组、BGP团体 
BGP路由表庞大 BGP路由聚合 
IBGP全连接(邻居过多) 路由反射器、BGP联盟 
路由变化频繁 BGP路由衰减 
三、对等体组
- 定义:具有相同属性的对等体集合,可简化配置。
- 分类:
- IBGP对等体组:同一AS内的对等体组成。
- EBGP对等体组:同一外部AS的对等体组成(不常用,因多外部AS需多组配置)。
- 配置示例:
- IBGP对等体组: [R2-bgp]group in internal ,再将对等体加入组并配置属性。
- EBGP对等体组: [Router-bgp]group group-name external ,设置AS号并加入对等体。
四、BGP路由聚合
- 作用:减小路由表规模。
- 类型:
- 自动聚合:仅对引入的IGP路由生效,汇总到主类(易产生黑洞),华为默认关闭,配置命令 [r1-bgp]summary automatic 。
- 手工聚合:可精确汇总,可在任意路由器配置,常用命令:
-  aggregate 172.16.0.0 16 :基本聚合(明细路由仍通告)。
-  aggregate 172.16.0.0 16 detail-suppressed :抑制明细路由。
-  aggregate 172.16.0.0 16 as-set :汇总路由继承明细路径属性。
-  aggregate 172.16.0.0 16 suppress-policy 策略名 :选择性抑制明细路由。
五、路由反射器
- 定义:能将从IBGP邻居学习的路由反射给其他IBGP邻居,替代IBGP全连接。
- 角色:
- RR(路由反射器):核心设备,负责反射路由。
- Client(客户机):与RR建立IBGP邻居,无需知晓RR存在。
- 非客户机:与RR建立IBGP邻居,但不被视为客户机。
- 反射规则:
- 从非客户机接收的路由,仅反射给客户机。
- 从客户机接收的路由,反射给所有客户机和非客户机(排除始发者)。
- 从EBGP接收的路由,反射给所有客户机和非客户机。
- 防环机制:
- Cluster_list:记录经过的反射器集群ID,含本机ID则丢弃路由,短列表优先。
- Originator_ID:路由始发者的Router ID,收到与自身ID相同的路由则忽略,值小优先。
- 配置示例: [R2-bgp]peer 3.3.3.3 reflect-client (指定客户机); [R2-bgp]reflector cluster-id 2.2.2.2 (配置集群ID)。
六、BGP联盟
- 定义:将一个AS划分为多个子AS,子AS内IBGP全连接,子AS间建立联盟内部EBGP连接,解决IBGP连接激增问题。
- 注意点:
- 子AS使用私有AS编号。
- 与外部AS仍建立正常EBGP邻居。
- 跨子AS的EBGP邻居需修改下一跳为本机。
- 配置示例: [R2-bgp]confederation id 200 (申明主AS); [R2-bgp]confederation peer-as 65002 (申明联盟同伴子AS)。
七、BGP团体属性(Community)
- 定义:路由的标记,用于批量匹配具有相同特征的路由。
- 表达格式:32位二进制,可表示为十进制或“AS号:自定义值”(前16位AS号,后16位自定义)。
- 公认团体属性:
- Internet:默认,可通告给所有对等体。
- no-advertise:不可通告给任何对等体。
- no-export:不可通告给外部AS(可通告给联邦EBGP)。
- no-export-subconfed:不可通告给外部AS及联邦EBGP。
- 配置示例:通过路由策略打标记, [R1-route-policy]apply community no-export ,并启用通告 [R1-bgp]peer 100.1.1.2 advertise-community 。
八、BGP路由衰减(Route Dampening)
- 作用:解决路由振荡问题。
- 原理:路由每振荡一次加惩罚值(默认1000),超过抑制阈值(默认2000)则抑制路由;惩罚值每半衰期(默认15分钟)减半,低于重用阈值(默认750)则重新启用。
- 配置命令: [bgp 100]dampening (默认参数); dampening 15 750 2000 10000 (自定义参数:半衰期、重用阈值、抑制阈值、最大惩罚值)。

BGP综合实验

一、实验拓扑

二、实验需求

1、AS1中存在两个环回,一个地址为192.168.1.0/24,该地址不能在任何协议中宣告;AS3中存在两个环回,一个地址为192.168.2.0/24,该地址不能在任何协议中宣告,最终要求这两个环回可以ping通;

2、R1-R8的建邻环回用x.x.x.x/32表示;整个AS2的IP地址为172.16.0.0/16,请合理划分;并且其内部配置OSPF协议;

3、AS间的骨干链路IP地址随意定制;

4、使用BGP协议让整个网络所有设备的环回可以互相访问;

5、减少路由条目数量,避免环路出现;

三、实验步骤

1.IP地址配置

[R1]int g 0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24
[R1-GigabitEthernet0/0/0]int l 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q
[R1]int l 1
[R1-LoopBack1]ip add 192.168.1.1 24


[R2]int g 0/0/0 
[R2-GigabitEthernet0/0/0]ip add  12.1.1.2 24
[R2-GigabitEthernet0/0/0]int g 0/0/1
[R2-GigabitEthernet0/0/1]ip add 172.16.1.1 30
[R2-GigabitEthernet0/0/1]int g 0/0/2
[R2-GigabitEthernet0/0/2]ip add 172.16.1.21 30
[R2-GigabitEthernet0/0/2]int l 0
[R2-LoopBack0]ip add 2.2.2.2 32


[R3]int g 0/0/0
[R3-GigabitEthernet0/0/0]ip add 172.16.1.2 30
[R3-GigabitEthernet0/0/0]int g 0/0/1
[R3-GigabitEthernet0/0/1]ip add 172.16.1.5 30
[R3-GigabitEthernet0/0/1]int l 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3-LoopBack0]int l 1
[R3-LoopBack1]ip add 172.16.3.1 24


[R4]int g 0/0/0
[R4-GigabitEthernet0/0/0]ip add 172.16.1.6 30
[R4-GigabitEthernet0/0/0]int g 0/0/1
[R4-GigabitEthernet0/0/1]ip add 172.16.1.9 30
[R4-GigabitEthernet0/0/1]int l 0
[R4-LoopBack0]ip add 4.4.4.4 32
[R4-LoopBack0]int l1
[R4-LoopBack1]ip add 172.16.4.1 24

[R5]int g 0/0/0
[R5-GigabitEthernet0/0/0]ip add 172.16.1.22 30
[R5-GigabitEthernet0/0/0]int g 0/0/0
[R5-GigabitEthernet0/0/0]int g 0/0/1
[R5-GigabitEthernet0/0/1]ip add 172.16.1.17 30
[R5-GigabitEthernet0/0/1]int l 0
[R5-LoopBack0]ip add 5.5.5.5 32
[R5-LoopBack0]int l 1
[R5-LoopBack1]ip add 172.16.5.1 24

[R6]int g 0/0/0
[R6-GigabitEthernet0/0/0]ip add 172.16.1.18 30
[R6-GigabitEthernet0/0/0]int g 0/0/1
[R6-GigabitEthernet0/0/1]ip add 172.16.1.13 30
[R6-GigabitEthernet0/0/1]int l 0
[R6-LoopBack0]ip add 6.6.6.6 32
[R6-LoopBack0]int l 1
[R6-LoopBack1]ip add 172.16.6.1 24

[R7]int g0/0/0
[R7-GigabitEthernet0/0/0]ip add 172.16.1.14 30
[R7-GigabitEthernet0/0/0]int g 0/0/2
[R7-GigabitEthernet0/0/2]ip add 172.16.1.10 32
[R7-GigabitEthernet0/0/2]ip add 172.16.1.10 30
[R7-GigabitEthernet0/0/2]int g 0/0/1
[R7-GigabitEthernet0/0/1]ip add 78.1.1.1 24
[R7-GigabitEthernet0/0/1]int l 0
[R7-LoopBack0]ip add 7.7.7.7 32
[R7-LoopBack0]int l 1
[R7-LoopBack1]ip add 172.16.7.1 24

[R8]int g 0/0/0
[R8-GigabitEthernet0/0/0]ip add 78.1.1.2 24
[R8-GigabitEthernet0/0/0]int l 0
[R8-LoopBack0] ip add 8.8.8.8 32
[R8-LoopBack0]int l 1
[R8-LoopBack1]ip add 192.168.2.1 24

2.AS2内部配置OSPF协议

[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]net 172.16.1.1 0.0.0.0
[R2-ospf-1-area-0.0.0.0]net 172.16.1.21 0.0.0.0
[R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0

[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]net 172.16.1.2 0.0.0.0
[R3-ospf-1-area-0.0.0.0]net 172.16.1.5 0.0.0.0
[R3-ospf-1-area-0.0.0.0]net 3.3.3.3  0.0.0.0
[R3-ospf-1-area-0.0.0.0]net 172.16.3.0 0.0.0.255

[R4]ospf 1 router-id 4.4.4.4 
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]net 172.16.1.6 0.0.0.0
[R4-ospf-1-area-0.0.0.0]net 172.16.1.9 0.0.0.0
[R4-ospf-1-area-0.0.0.0]net 172.16.4.0 0.0.0.255

[R5]ospf 1 router-id 5.5.5.5
[R5-ospf-1]area 0
[R5-ospf-1-area-0.0.0.0]net 172.16.1.22 0.0.0.0
[R5-ospf-1-area-0.0.0.0]net 5.5.5.5 0.0.0.0
[R5-ospf-1-area-0.0.0.0]net 172.16.5.0 0.0.0.255
[R5-ospf-1-area-0.0.0.0]net 172.16.1.17 0.0.0.0

[R6]ospf 1 router-id  6.6.6.6
[R6-ospf-1]area 0
[R6-ospf-1-area-0.0.0.0]net 6.6.6.6 0.0.0.0
[R6-ospf-1-area-0.0.0.0]net 172.16.1.18 0.0.0.0
[R6-ospf-1-area-0.0.0.0]net 172.16.1.13 0.0.0.0
[R6-ospf-1-area-0.0.0.0]net 172.16.6.0 0.0.0.255

[R7]ospf 1 router-id 7.7.7.7
[R7-ospf-1]area 0
[R7-ospf-1-area-0.0.0.0]net 7.7.7.7  0.0.0.0
[R7-ospf-1-area-0.0.0.0]net 172.16.1.14 0.0.0.0
[R7-ospf-1-area-0.0.0.0]net 172.16.1.10 0.0.0.0
[R7-ospf-1-area-0.0.0.0]net 172.16.7.0 0.0.0.255

检查配置

R2

R3

R7

3.BGP配置

[R1]bgp 1

[R1-bgp]peer 12.1.1.2 as-number 2

[R1-bgp]network 1.1.1.1 32

[R2]bgp 64512

[R2-bgp]confederation id 2

[R2-bgp]peer 12.1.1.1 as-number 1

[R2-bgp]confederation peer-as 64513

[R2-bgp]peer 172.16.1.3 as-number 64512

[R2-bgp]peer 172.16.1.3 connect-interface LoopBack 0

[R2-bgp]peer 172.16.1.3 next-hop-local

[R2-bgp]peer 172.16.0.22 as-number 64513

[R2-bgp]peer 172.16.0.22 next-hop-local

[R3-bgp]bgp 64512

[R3-bgp]confederation id 2

[R3-bgp]peer 172.16.1.2 as-number 64512

[R3-bgp]peer 172.16.1.2 connect-interface LoopBack 0

[R3-bgp]peer 172.16.1.4 as-number 64512

[R3-bgp]peer 172.16.1.4 connect-interface LoopBack 0

[R3-bgp]peer 172.16.1.6 reflect-client

[R4]bgp 64512

[R4-bgp]confederation id 2

[R4-bgp]peer 172.16.1.3 as-number 64512

[R4-bgp]peer 172.16.1.3 connect-interface LoopBack 0、

[R5]bgp 64513

[R5-bgp]confederation id 2

[R5-bgp]confederation peer-as 64512

[R5-bgp]peer 172.16.0.21 as-number 64512

[R5-bgp]peer 172.16.0.21 next-hop-local

[R5-bgp]peer 172.16.1.6 as-number 64513

[R5-bgp]peer 172.16.1.6 connect-interface LoopBack 0

[R5-bgp]peer 172.16.1.6 next-hop-local

[R6]bgp 64513

[R6-bgp]confederation id 2

[R6-bgp]peer 172.16.1.5 as-number 64513

[R6-bgp]peer 172.16.1.5 connect-interface LoopBack 0

[R6-bgp]peer 172.16.1.7 as-number 64513

[R6-bgp]peer 172.16.1.5 connect-interface LoopBack 0

[R6-bgp]peer 172.16.1.17 reflect-client 

[R7]bgp 64513

[R7-bgp]confederation id 2

[R7-bgp]peer 34.1.1.2 as-number 3

[R7-bgp]peer 172.16.1.6 as-number 64513

[R7-bgp]peer 172.16.1.6 connect-interface LoopBack 0

[R7-bgp]peer 172.16.1.6 next-hop-local

[R8]bgp 3

[R8-bgp]peer 34.1.1.1 as-number 2

[R8-bgp]net 8.8.8.8 32

查看是否ping通

4.减少路由条目

[R2]ip route-static 172.16.0.0 16 NULL 0
[R2]bgp 64512
[R2-bgp]net 172.16.0.0 16

[R7]ip route-static 172.16.0.0 16 NULL 0
[R7]bgp 64513
[R7-bgp]net 172.16.0.0 16

5.配置GRE环境(因为AS1中存在两个环回,一个地址为192.168.1.0/24,该地址不能在任何协议中宣告;AS3中存在两个环回一个地址为192.168.2.0/24,该地址不能在任何协议中宣告,最终要求这两个环回可以ping通,故使用GRE)

[R1]int t 0/0/0
[R1-Tunnel0/0/0]ip add 11.1.1.1 24  
[R1-Tunnel0/0/0]tunnel-protocol gre    
[R1-Tunnel0/0/0]source 1.1.1.1  
[R1-Tunnel0/0/0]destination 8.8.8.8
[R1]ip route-s    
[R1]ip route-static 192.168.2.0 24 11.1.1.2

[R8]int t 0/0/0
[R8-Tunnel0/0/0]ip add 11.1.1.2 24  
[R8-Tunnel0/0/0]tunnel-protocol gre
[R8-Tunnel0/0/0]source 8.8.8.8
[R8-Tunnel0/0/0]description     
[R8-Tunnel0/0/0]destination 1.1.1.1   
[R8]ip route-static 192.168.1.0 24 11.1.1.1

实验测试全网通

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

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

相关文章

全栈:如何判断自己应该下载哪个版本的Tomcat

版本兼容性矩阵 https://tomcat.apache.org/whichversion.html https://tomcat.apache.org/download-11.cgi 介绍一下这些版本的不同点: 一、按系统选(优先看这个) 1.Windows 系统(普通使用,非服务自启&#xff09…

Redis的Linux安装

可以直接命令下载 wget http://download.redis.io/releases/redis-5.0.4.tar.gz下载好之后解压缩,并且重命名为redis 由于redis是c语言编写的,所以我们需要先安装gcc,安装的命令如下:yum -y install gcc 安装成功后输入 : gcc -v…

14-netty基础-手写rpc-提供方(服务端)-06

netty系列文章: 01-netty基础-socket02-netty基础-java四种IO模型03-netty基础-多路复用select、poll、epoll04-netty基础-Reactor三种模型05-netty基础-ByteBuf数据结构06-netty基础-编码解码07-netty基础-自定义编解码器08-netty基础-自定义序列化和反序列化09-n…

连续时间和数字之间频率的偏差以及相位补偿

接下来需要讲解在连续时间域下的角频率以及在离散化后的数字角频率。上面可以知道模拟角频率和数字的区别 接下来介绍相位 相位单位是弧度无频偏: 对于数字来说是对连续信号采样后的结果,数字的角频率 ,就是相位的递增量,表示每个…

《Git从入门到精通:告别版本管理混乱》

坚持用 清晰易懂的图解 代码语言,让每个知识点变得简单! 🚀呆头个人主页详情 🌱 呆头个人Gitee代码仓库 📌 呆头详细专栏系列 座右铭: “不患无位,患所以立。” 《Git从入门到精通&#xff1a…

小红书开源多模态视觉语言模型DOTS-VLM1

项目简介与模型基本介绍 DOTS-VLM1 是由小红书希实验室(Rednote HiLab)开源的多模态视觉语言模型(Vision-Language Model, VLM),旨在推动视觉与语言理解的融合研究。DOTS-VLM1 采用主流的编码-融合-解码架构,支持图片与文本的联合理解与生成,适用于图文问答、图片描述、…

【Git】企业级使用

🔥个人主页: 中草药 🔥专栏:【中间件】企业级中间件剖析 基本概念 Git 有三个核心区域,分别是工作区、暂存区和版本库,理解这三个区域是掌握 Git 的基础。​ ​ 工作区就是我们电脑里能看到的文件目录&…

Druid学习笔记 02、快速使用Druid的SqlParser解析

文章目录前言本章节源码描述认识作者官方文档快速入门demo案例引入依赖获取到SQL的AST(抽象语法树)使用visitor完成表、字段、表达式解析汇总总结一、简介1.1、和Antlr生成Parser的区别1.2、Druid SQL Parser的使用场景二、各种语法支持三、性能四、Druid SQL Parser的代码结构…

时间复杂度计算(以for循环为例)

本文理论内容来自严蔚敏版《数据结构(C语言版 第2版)》 *本文仅为复习时的总结,描述不准确、过程不严谨之处,还请理解 一、算法的相关概念 首先复习一下算法的定义及5个重要特性 其次是算法的评价标准 可以看到 时间复杂度 属于算法评价标准中的高效性…

图论(1):图数据结构

目录 一、图的定义 1.1 图的基本概念 1.2 图的分类 (1)按边的方向: (2)按边的权值: (3)按边的数量和类型: (4)按连通性: 1.3 图…

等保测评-Nginx中间件

Nginx *排查有无Nginx中间件,可使用以下命令: ps -ef | grep nginx、netstat -nutlp *确认Nginx中间件有运行,查看其目录: find / -name nginx.conf、ps -ef | grep Nginx *确认好目录后,查看版本: …

Milvus向量数据库版本升级

创建时间:2025-3-11 更新时间:2025-8-8 作者:薄刀刀、散装DBA 联系方式:bulkdba,1511777 背景:当前版本无法使用分组搜索功能,通过升级版本解决,计划将milvus升级到2.4.15&#xf…

若依前后端分离版学习笔记(六)——JWT

在上一节已经提到了传统Session认证和JWT认证内容,这一节对JWT进行更加详细的了解。 一 JWT介绍 1、传统的session认证 1.1 传统session认证流程 1.用户向服务器发送用户名和密码 2.服务器通过验证后,在当前对话(session)中保存相…

如何永久删除三星手机中的照片?

如果你计划出售你的三星 Galaxy 手机,或者整理其接近满容量的存储空间,你可能会担心如何从设备中移除照片和其他文件。这对于确保你的个人信息保持安全至关重要,即使你选择通过各种平台捐赠或出售旧手机也是如此。在本文中,我们介…

【数字图像处理系列笔记】Ch06:图像压缩

一、基础知识信源编码器:减少或消除输入图像中的编码冗余、像素 间冗余以及心理视觉冗余。 数据的冗余 一、空间冗余(Spatial Redundancy)1. 定义图像中相邻像素间的强相关性导致的冗余 —— 同一区域内相邻像素的像素值(如灰度、…

windows线程基础

Windows线程机制详解 线程的基本概念 在Windows操作系统中,线程是程序执行的最小单位。每个进程至少包含一个线程(主线程),但可以创建多个线程来并行执行任务。线程与进程的主要区别在于: 资源分配:进程拥有…

Numpy科学计算与数据分析:Numpy随机数生成入门

Numpy随机数生成实战 学习目标 通过本课程,学员将掌握如何使用Numpy库生成不同类型的随机数,包括随机整数、随机浮点数以及从特定分布中抽样的方法。本课程将通过理论讲解与实践操作相结合的方式,帮助学员深入理解Numpy在随机数生成方面的强…

使用 C# 通过 .NET 框架开发应用程序的安装与环境配置

文章目录1. .NET介绍2. IDE2.1 Rider 安装2.2 Visual Studio 安装3. SDK安装与环境配置3.1 单独下载安装 .NET SDK3.2 Visual Studio 工作负荷安装SDK4. 相关问题4.1 我以前使用 Unity 写 C# 脚本不需要额外的编译器,为什么现在需要?1. .NET介绍 .NET 是…

Scikit-learn - 机器学习库初步了解

目录1. 主要算法分类1.1 监督学习 (Supervised Learning)1.2 非监督学习 (Unsupervised Learning)1.3 半监督学习 (Semi-Supervised Learning)1.4 强化学习 (Reinforcement Learning)1.5 遗传算法 (Genetic Algorithm)2. 选择合适的机器学习模型2.1 分类 (Classification)2.2 回…

关于 idea 里 properties 文件的中文乱码问题

背景 你会发现 properties 文件里的中文可能会出现乱码。 这个因为 properties 规范是使用 iso-8859-1 存储的,不支持中文(也不支持西欧里法语、德语里奇怪的字母) properties 的标准制定于很早,所以没考虑这么多,prop…