zoukankan      html  css  js  c++  java
  • BGP状态机

    状态机

    Idle

    BGP协议初始时是处于Idle状态。在这个状态时,系统不分配任何资源,也拒绝所有进入的BGP连接。只有收到Start Event时,才分配BGP资源,启动ConnectRetry计时器,启动对其它BGP对等体的传输层连接,同时也侦听是否有来自其它对等体的连接请求。Connect Retry 计时器会呈现级数级的增加

    Connect

    这个状态下BGP等待TCP完成连接,再决定后续动作:

    1. 若连接成功,本地清空ConnectRetry计时器,并向对等体发送OPEN报文,然后状态改变为OpenSent状态;
    2. 连接失败,BGP会继续侦听邻居发出的连接,重置 Connect Retry 计时器并将自己状态转移到 Active 状态
    3. Connect Retry时间超时,重置ConnectRetry计时器,再次试图与邻居建立TCP连接,BGP 保持 Connect 状态,出现其他事件转 入 Idle 状态。

    Active

    置于Active 状态时 BGP 试图与邻居建立一个 TCP 的连接;

    1. 如果 TCP 连接成功,BGP 将 Connect Retry 计时器清零,完成初始化,给邻居发送Open 消息并将状态置为 Open,hold 时间置为4mins 。
    2. 如果在 Active 状态,Connect Retry计时器超时回 Connect 状态并重置 Connect Retry 计时器。
    3. 如果试图与一个未知 IP 建立 TCP 会话,同时 Connect Retry 计时器重置,拒绝连接并保持 Active 状态。
    4. 任何一个事件都会导致重回 Idle

    OpenSent

    在此状态,已经发送了 open 消息,BGP 需要等待邻居发送的 open 消息包;

    1. 收到open消息,如果发现有差错,将给邻居发送一个 notification 消息并将状态置为 Idle 。
    2. 如果收到 open 包消息没错,将发送 keeplive 包给邻居,并建立IBGP或者EBGP状态置为 Open confire state 。
    3. 如果收到TCP断开消息则断开BGP连接重置 Connect Retry 计时器,状态置为 Active 。

    OpenConfirm

    这个状态下,BGP等待KEEPALIVE或NOTIFICATION报文。如果收到KEEPALIVE报文,则进入Established状态,如果收到NOTIFICATION报文,则变为Idle状态。

    1. 如果收到一个 keeplive 消息包,会将状态置为 Establish 。
    2. 如果收到 notification 消息包,会将状态置为 Idle 并断开 TCP 连接。
    3. 如果 hold 计时器超时,检测到一个差错或者有 stop 事件发生,BGP 将给邻居发送一个 notification 并断开连接,之后状态置为 Idle 。

    Established

    这个状态下, BGP可以和其他对等体交换UPDATE,NOTIFICATION,KEEPALIVE报文。如果收到了正确的UPDATE或KEEPALIVE报文,就认为对端处于正常运行状态,本地重置Hold Timer。如果收到NOTIFICATION报文,本地转到Idle状态。如果收到错误的UPDATE报文,本地发送NOTIFICATION报文通知对端,并改变本地状态为Idle。如果收到了TCP拆链通知,本地关闭BGP连接,并回到Idle状态。

  • 相关阅读:
    【洛谷6776】[NOI2020] 超现实树(思维)
    【洛谷6773】[NOI2020] 命运(线段树合并优化DP)
    【洛谷5467】[PKUSC2018] PKUSC(计算几何)
    【洛谷3688】[ZJOI2017] 树状数组(二维线段树)
    【BZOJ4543】[POI2014] Hotel加强版(长链剖分优化DP)
    【洛谷5466】[PKUSC2018] 神仙的游戏(FFT)
    【BZOJ4574】[ZJOI2016] 线段树(动态规划)
    【洛谷7114】[NOIP2020] 字符串匹配(Z函数)
    扩展 KMP(Z 函数)学习笔记
    最后的胡言乱语
  • 原文地址:https://www.cnblogs.com/hbgzy/p/15145947.html
Copyright © 2011-2022 走看看