BGP的五种报文六种状态
BGP的五种报文
- Open报文:用于协商BGP参数,包括版本号,AS号等信息。在两个路由器之间建立了TCP会话之后开始交换Open信息以确认是否能形成邻居关系,是TCP建立后发送的第一个信息,类似OSPF中的DD报文。
- Update报文:用于BGP邻居间交换路由信息,其中包括撤销路由信息和可达路由信息以及其他路由属性,类似OSPF中的LSU报文。
- Keepalive报文:用于保持BGP邻居关系,周期性交换,用于判断对等体之间的可达性,类似OSPF中的Hello报文。
- Notification报文:差错通知,当BGP运行时发现错误,则BGP speaker会发送一个Notification报文来切断BGP邻居。
- Route-refresh报文:用于改变路由策略后刷新BGP路由表,请求BGP对等体重新发送路由信息,只有支持Route-refresh能力的BGP设备会发送和响应此报文。
BGP的6种状态机
- Idle(空闲)状态是BGP初始状态,在Idle状态下,BGP拒绝邻居发送的连接请求,只有在收到本设备的Start事件后,BGP才开始尝试和其他BGP对等体进行TCP连接,并转到Connect状态。
- Connect(连接)状态下,BGP启动连接Connect Retry(重传定时器),等待TCP完成连接。
- 如果TCP连接成功,那么BGP Speaker向对等体发送Open报文,并转至OpenSent状态。
- 如果TCP连接失败,那么BGP转至Active状态,反复尝试连接
- 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。
- 在Active(活跃)状态下,BGP总是试图建立TCP连接
- 如果TCP连接成功,那么BGP Speaker向对等体发送Open报文,并转至OpenSent状态。
- 如果失败,那么BGP继续停留在Active状态。
- 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。
- 在OpenSent(Open已发送)状态下,BGP Speaker 等待对等体回应的Open报文,并对Open报文中携带的AS号、版本号、认证码进行检查。
- 收到的OPen报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态。
- 如果收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。
- 在OpenConfirm(Open已确认)状态下,BGP Speaker等待对等体的Keepalive或Notification报文,如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。
- 在Established(连接已建立)状态下,表示邻居状态已建立,BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文。
BGP的五种报文六种状态的更多相关文章
- OSPF的五种报文
OSPF的五种报文 Hello报文 DD(Database Description)数据库描述报文 LSR(LinkState Request)链路状态请求报文 LSU(LinkState Updat ...
- xmlHttp.readyState的五种状态
自己简单的总结一下 深入的了解可以看其他道友的 O(∩_∩)O readyState有五种可能的值: 0 (未初始化): (XMLHttpRequest)对象已经创建,但还没有调用open()方法. ...
- 细说进程五种状态的生老病死——双胞胎兄弟Java线程
java线程的五种状态其实要真正高清,只需要明白计算机操作系统中进程的知识,原理都是相同的. 系统根据PCB结构中的状态值控制进程. 单CPU系统中,任一时刻处于执行状态的进程只有一个. 进程的五种状 ...
- ios应运程序的五种状态
ios应运程序的五种状态即转化 从apple的官方文档扣下来的 5状态: Not running The app has not been launched or was running but w ...
- jsp页面加载readyState的五种状态根据我们状态添加进度条
这段代码放在页面最下面 原文如下: document.onreadystatechange = subSomething;//当页面加载状态改变的时候执行这个方法. function subSomet ...
- 转 XMLHttpRequest().readyState的五种状态详解
转 http://javathinker.blog.ccidnet.com/blog-htm-itemid-1262479-do-showone-type-blog-uid-36384.html 在& ...
- Js--AJAX的小知识(一):ajax的五种状态
一.ajax的五种状态(readyState ) 0 - (未初始化)还没有调用send()方法 1 - (载入)已调用send()方法,正在发送请求 2 - (载入完成)send()方法执行完成,已 ...
- 五种情况下会刷新控件状态(刷新所有子FWinControls的显示)——从DFM读取数据时、新增加子控件时、重新创建当前控件的句柄时、设置父控件时、显示状态被改变时
五种情况下会刷新控件状态(刷新控件状态才能刷新所有子FWinControls的显示): 在TWinControls.PaintControls中,对所有FWinControls只是重绘了边框,而没有整 ...
- ServiceWork的五种状态
[ServiceWork的五种状态] installing.installed.activating.activated.redundant 参考:https://developer.mozilla. ...
随机推荐
- 【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
问题描述 App Service for Linux 资源创建完成后,通过FTP方式把 .jar包(logdemo.jar)包上传到 /site/wwwroot/ 文件夹后,在App Service的 ...
- Golang Sync.WaitGroup 使用及原理
Golang Sync.WaitGroup 使用及原理 使用 func main() { var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.A ...
- 详细介绍rar是什么由谁发明
RAR是一种专利文件格式,用于数据紧缩与归档打包,开发者为尤金·罗谢尔(俄语:Евгений Лазаревич Рошал,拉丁转写:Yevgeny Lazarevich Roshal),RAR的全 ...
- [Golang]Go语言入门笔记
跟着尚硅谷B站视频记的笔记 入门 go 编译和运行源代码 go build 编译源代码,生成可执行文件 go build -o newName.exe name.go go run 直接编译运行代码 ...
- 华为eNSP的防火墙(USG6000V)如何使用Web界面登入
文章目录 华为eNSP的防火墙(USG6000V)如何使用Web界面登入 前言 一.使用步骤 1.导入USG6000V的镜像包 总结 前言 在华为的eNSP的模拟器上如何使用Web界面去管理与使用模拟 ...
- Unicode 详细介绍
总结起来为啥需要Unicodey就是为了适应全球化的发展,便于不同语言之间的兼容交互,而ASCII不再能胜任此任务了 UTF-8 与UTF-16的区别 UTF-8的优缺点 程序员那么到底该如何选择呢? ...
- Winfrom中关于toolStrip工具栏中按钮背景的设置
在ToolStrip中可以存放很多种控件,一般来说,主要使用的是Button和DropDownButton,通常情况下,Button需要设置图片和文字,网上找了很多个方法都不太靠谱,自己试验了下,下面 ...
- git问题:gpg failed to sign the data fatal: failed to write commit object问题
今天用版本控制工具git提交时一直出现的问题:gpg failed to sign the data fatal: failed to write commit object, gpg是一个加密软件 ...
- 哈工大 计算机网络 实验一 HTTP 代理服务器的设计与实现
计算机网络实验代码与文件可见github:计算机网络实验整理 实验名称 HTTP 代理服务器的设计与实现 实验目的: 熟悉并掌握 Socket 网络编程的过程与技术:深入理解 HTTP 协议, 掌握 ...
- windows下CMD常用命令(url链接)
https://blog.csdn.net/LJFPHP/article/details/78818696