当前位置:网站首页>BGP中的状态机
BGP中的状态机
2022-07-02 06:08:00 【火锅就要吃红锅】
BGP状态机

Idle 初始状态
BGP协议初始时是处于Idle状态,开始准备TCP的连接并监视远程对等体。在这个状态时,系统不分配任何资源,也拒绝所有进入的BGP连接。只有收到Start Event时,才分配BGP资源,启动ConnectRetry计时器,启动对其它BGP对等体的传输层连接,同时也侦听是否有来自其它对等体的连接请求。Connect Retry 计时器会呈现级数级的增加
Connect 连接状态
这个状态下BGP等待TCP完成连接,再决定后续动作:
- 若连接成功,本地清空ConnectRetry计时器,并向对等体发送OPEN报文,然后状态改变为OpenSent状态;
- 连接失败,BGP会继续侦听邻居发出的连接,重置 Connect Retry 计时器并将自己状态转移到 Active 状态
- Connect Retry时间超时,重置ConnectRetry计时器,再次试图与邻居建立TCP连接,BGP 保持 Connect 状态,出现其他事件转 入 Idle 状态。
Active 激活状态
正在进行TCP连接,等待完成中,认证都是在TCP建立期间完成的。
- 如果 TCP 连接成功,BGP 将 Connect Retry 计时器清零,完成初始化,给邻居发送Open 消息并将状态置为 Open,hold 时间置为4mins 。
- 如果在 Active 状态,Connect Retry计时器超时回 Connect 状态并重置 Connect Retry 计时器。
- 如果试图与一个未知 IP 建立 TCP 会话,同时 Connect Retry 计时器重置,拒绝连接并保持 Active 状态。
- 任何一个事件都会导致重回 Idle
OpenSent 参数协商状态
在此状态,TCP连接已经建立成功,开始先邻居发送Open消息包,同时BGP等待邻居发送的 open 消息包;Open包携带参数协商对等体的建立。
- 收到open消息,如果发现有差错,将给邻居发送一个 notification 消息并将状态置为 Idle 。
- 如果收到 open 包消息没错,将发送 keeplive 包给邻居,并建立IBGP或者EBGP状态置为 Open confire state 。
- 如果收到TCP断开消息则断开BGP连接重置 Connect Retry 计时器,状态置为 Active 。
OpenConfirm 参数验证状态
这个状态下,参数、能力特性协商成功,自己发送Keepalive包,BGP等待KEEPALIVE或NOTIFICATION报文。如果收到KEEPALIVE报文,则进入Established状态,如果收到NOTIFICATION报文,则变为Idle状态。
- 如果收到一个 keeplive 消息包,会将状态置为 Establish 。
- 如果收到 notification 消息包,会将状态置为 Idle 并断开 TCP 连接。
- 如果 hold 计时器超时,检测到一个差错或者有 stop 事件发生,BGP 将给邻居发送一个 notification 并断开连接,之后状态置为 Idle 。
Established 建立成功
这个状态下, **已经收到对方的Keepalive包,双方能力特性经协商发现一致,**BGP可以和其他对等体交换UPDATE,NOTIFICATION,KEEPALIVE报文。
- 如果收到了正确的UPDATE或KEEPALIVE报文,就认为对端处于正常运行状态,本地重置Hold Timer。
- 如果收到NOTIFICATION报文,本地转到Idle状态。
- 如果收到错误的UPDATE报文,本地发送NOTIFICATION报文通知对端,并改变本地状态为Idle。
- 如果收到了TCP拆链通知,本地关闭BGP连接,并回到Idle状态。
边栏推荐
- 脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四
- 步骤详解 | 助您轻松提交 Google Play 数据安全表单
- I/o multiplexing & event driven yyds dry inventory
- Ti millimeter wave radar learning (I)
- Lambda expressions and method references
- Eco express micro engine system has supported one click deployment to cloud hosting
- 数据库学习总结5
- Community theory | kotlin flow's principle and design philosophy
- 深度学习分类网络 -- AlexNet
- 借力 Google Cloud 基础设施和着陆区,构建企业级云原生卓越运营能力
猜你喜欢
随机推荐
Keepalived installation, use and quick start
Error creating bean with name 'instanceoperatorclientimpl' defined in URL when Nacos starts
Test case
keepalived安装使用与快速入门
Some descriptions of Mipi protocol of LCD
Redis Key-Value数据库【初级】
Cookie plugin and localforce offline storage plugin
500. Keyboard line
页面打印插件print.js
数据回放伴侣Rviz+plotjuggler
外部中断无法进入,删代码再还原就好......记录这个想不到的bug
Lambda 表达式 和 方法引用
使用HBuilderX的一些常用功能
Let every developer use machine learning technology
CNN可视化技术 -- CAM & Grad-CAM详解及pytorch简洁实现
脑与认知神经科学Matlab Psytoolbox认知科学实验设计——实验设计四
How vite is compatible with lower version browsers
PHP inner class name is the same as the inner class method name
深度学习分类网络 -- AlexNet
Detailed notes of ES6








