BGP的五种报文
  1. Open报文:用于协商BGP参数,包括版本号,AS号等信息。在两个路由器之间建立了TCP会话之后开始交换Open信息以确认是否能形成邻居关系,是TCP建立后发送的第一个信息,类似OSPF中的DD报文。
  2. Update报文用于BGP邻居间交换路由信息,其中包括撤销路由信息和可达路由信息以及其他路由属性,类似OSPF中的LSU报文。
  3. Keepalive报文用于保持BGP邻居关系,周期性交换,用于判断对等体之间的可达性,类似OSPF中的Hello报文。
  4. Notification报文差错通知,当BGP运行时发现错误,则BGP speaker会发送一个Notification报文来切断BGP邻居。
  5. Route-refresh报文:用于改变路由策略后刷新BGP路由表,请求BGP对等体重新发送路由信息,只有支持Route-refresh能力的BGP设备会发送和响应此报文。
BGP的6种状态机
  1. Idle(空闲)状态是BGP初始状态,在Idle状态下,BGP拒绝邻居发送的连接请求,只有在收到本设备的Start事件后,BGP才开始尝试和其他BGP对等体进行TCP连接,并转到Connect状态。
  2. Connect(连接)状态下,BGP启动连接Connect Retry(重传定时器),等待TCP完成连接。
    • 如果TCP连接成功,那么BGP Speaker向对等体发送Open报文,并转至OpenSent状态。
    • 如果TCP连接失败,那么BGP转至Active状态,反复尝试连接
    • 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。
  3. Active(活跃)状态下,BGP总是试图建立TCP连接
    • 如果TCP连接成功,那么BGP Speaker向对等体发送Open报文,并转至OpenSent状态。
    • 如果失败,那么BGP继续停留在Active状态。
    • 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。
  4. OpenSent(Open已发送)状态下,BGP Speaker 等待对等体回应的Open报文,并对Open报文中携带的AS号、版本号、认证码进行检查。
    • 收到的OPen报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态。
    • 如果收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。
  5. OpenConfirm(Open已确认)状态下,BGP Speaker等待对等体的Keepalive或Notification报文,如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。
  6. Established(连接已建立)状态下,表示邻居状态已建立,BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文。

BGP的五种报文六种状态的更多相关文章

  1. OSPF的五种报文

    OSPF的五种报文 Hello报文 DD(Database Description)数据库描述报文 LSR(LinkState Request)链路状态请求报文 LSU(LinkState Updat ...

  2. xmlHttp.readyState的五种状态

    自己简单的总结一下 深入的了解可以看其他道友的 O(∩_∩)O readyState有五种可能的值: 0 (未初始化): (XMLHttpRequest)对象已经创建,但还没有调用open()方法. ...

  3. 细说进程五种状态的生老病死——双胞胎兄弟Java线程

    java线程的五种状态其实要真正高清,只需要明白计算机操作系统中进程的知识,原理都是相同的. 系统根据PCB结构中的状态值控制进程. 单CPU系统中,任一时刻处于执行状态的进程只有一个. 进程的五种状 ...

  4. ios应运程序的五种状态

    ios应运程序的五种状态即转化  从apple的官方文档扣下来的 5状态: Not running The app has not been launched or was running but w ...

  5. jsp页面加载readyState的五种状态根据我们状态添加进度条

    这段代码放在页面最下面 原文如下: document.onreadystatechange = subSomething;//当页面加载状态改变的时候执行这个方法. function subSomet ...

  6. 转 XMLHttpRequest().readyState的五种状态详解

    转 http://javathinker.blog.ccidnet.com/blog-htm-itemid-1262479-do-showone-type-blog-uid-36384.html 在& ...

  7. Js--AJAX的小知识(一):ajax的五种状态

    一.ajax的五种状态(readyState ) 0 - (未初始化)还没有调用send()方法 1 - (载入)已调用send()方法,正在发送请求 2 - (载入完成)send()方法执行完成,已 ...

  8. 五种情况下会刷新控件状态(刷新所有子FWinControls的显示)——从DFM读取数据时、新增加子控件时、重新创建当前控件的句柄时、设置父控件时、显示状态被改变时

    五种情况下会刷新控件状态(刷新控件状态才能刷新所有子FWinControls的显示): 在TWinControls.PaintControls中,对所有FWinControls只是重绘了边框,而没有整 ...

  9. ServiceWork的五种状态

    [ServiceWork的五种状态] installing.installed.activating.activated.redundant 参考:https://developer.mozilla. ...

随机推荐

  1. Solution -「CF 1392G」Omkar and Pies

    \(\mathcal{Description}\)   Link.   给定两个长度为 \(K\) 的 \(01\) 串 \(S,T\) 和 \(n\) 组操作 \((a_i,b_i)\),意义为交换 ...

  2. 有个姑娘叫history

    文章目录 常用参数 history的一些用法 修改history命令默认保存的数量 来给history穿衣服 让我们重新认识一下history history命令用于显示用户以前执行过的历史命令,并且 ...

  3. docker安装sentinel-dashbord

    查找 sentinel-dashboard docker search sentinel-dashboard pull 镜像 docker pull bladex/sentinel-dashboard ...

  4. 什么,有狗快跑!慢着,这次手把手教你怎么过安全狗!(sql注入篇)

    前言 在记忆里上次绕安全狗还是在上次,开开心心把自己之前绕过狗的payload拿出来,发现全部被拦截了,事情一下子就严肃起来了,这就开整. 环境 本次环境如下sqli-lab的sql注入靶场 网站安全 ...

  5. const 和指针之间的姻缘

    const和指针到底有何姻缘呢? char const *p = NULL; //char const 和 const char 是一样的,p 是一个指向常整型的指针变量 ,指针变量的值不能改变 ch ...

  6. base家族在线解密工具

    http://www.atoolbox.net/Tool.php?Id=934 https://ctf.bugku.com/tools

  7. Ibgreslock漏洞利用

  8. 【C#】AssemblyLoadContext 加载程序集

    使用 .NET Core 3.0 的 AssemblyLoadContext 实现插件热加载 一般情况下,一个 .NET 程序集加载到程序中以后,它的类型信息以及原生代码等数据会一直保留在内存中,.N ...

  9. 数据结构与算法入门系列教程-C#

    数据结构与算法入门系列教程 (一)为啥要学习数据结构与算法 曾经我也以为自己很牛逼,工作中同事也觉得我还可以,领导也看得起我,啥啥啥都好,就这样过了几年,忽然发现自己学新东西没劲.时代都变了,而我还只 ...

  10. 通过修改profile 来修改账号的过期时间

    转至:https://blog.csdn.net/xxzhaobb/article/details/80026028 查看账号的过期时间 SYS@test>select username,exp ...