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. 我们一起来学Shell - 初识shell

    文章目录 Shell 的分类 `bash` `csh` `ksh` `tcsh` `sh` `nologin` `zsh` Shell 能做什么 bash 环境变量文件 `/etc/profile` ...

  2. Spring Boot部署之jar包运行

    上篇阐述了Spring Boot war部署项目,本篇阐述另一种运行方式:jar包运行. 一.打jar包 1.修改pom.xml配置 2.执行package(对于module执行package之前需要 ...

  3. Nginx-反向代理服务器

    概述 Nginx是一款轻量级的Web服务器.反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用. 优点 nginx是多进程的,不会出现并发问题,不用加锁.一个进程出问题 ...

  4. 微服务从代码到k8s部署应有尽有系列(十四、部署环境搭建)

    我们用一个系列来讲解从需求到上线.从代码到k8s部署.从日志到监控等各个方面的微服务完整实践. 整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中 ...

  5. 【基础篇】js对本地文件增删改查--改

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

  6. CobaltStrike逆向学习系列(7):Controller 任务发布流程分析

    这是[信安成长计划]的第 7 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 Controller->TeamServer 0x02 TeamServer->Beacon ...

  7. 2021年都要过去啦,你还在用Excel做数据可视化效果吗?

    2021年都要过去啦,你还在用Excel做数据可视化效果吗?古语有云,"工欲善其事,必先利其器",没有专业的工具,前期准备的再好也是白搭.现在运用数据可视化工具于经营活动中的企业是 ...

  8. Thread、ThreadPool 和 Task

    对 C# 开发者来说,不可不理解清楚 Thread.ThreadPool 和 Task 这三个概念.这也是面试频率很高的话题,在 StackOverflow 可以找到有很多不错的回答,我总结整理了一下 ...

  9. gurbi安装

    1,下载相应版本gurobi,msi文件,双击安装.注意安装路径,一般默认,否则容易出错. 2,注册gurobi账号,在校园网下电脑终端运行许可grbgetkey 3,添加许可路径到系统path 4, ...

  10. java8 如何优化CAS的性能

    场景引入 经常都会有下面这段代码,多个线程同时修改一个变量,造成线程不安全,代码如下: public class ThreadCASDemo implements Runnable { static ...