BGP协议分析之报文和状态机

BGP是一种自治系统间的动态路由发现协议,它的基本功能是在自治系统间自动交换无环路的路由信息。与OSPF和RIP等在自治区域内部运行的协议对应,BGP是一类EGP(Edge Gateway Protocol)协议,而OSPF和协议。

BGP是在EGP应用的基础上发展起来的。EGP在此以前已经作为自治区域间的路由发现协议,广泛应用于NFSNET等主干网络上。但是,EGP被路由环路问题所困扰。BGP通过在路由信息中增加自治区域(AS)路径的属性,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的策略。同时,随着INTERNET的飞速发展,路由表的体积也迅速增加,自治区域间路由信息的交换量越来越大,都影响了网络的性能。BGP支持无类型的区域间路由CIDR(Classless Interdomain Routing),可以有效的减少日益增大的路由表。

BGP运行时刻分别与本自治区域外和区域内的BGP伙伴建立连接(使用Socket)。与区域内伙伴的连接称为IBGP(Internal BGP)连接,与自治区域外的BGP伙伴的连接称为EBGP(External BGP)连接。本地的BGP协议对IBGP和EBGP伙伴使用不同的机制处理。

1、BGP协议的层次位置

BGP使用Socket服务建立连接,端口号为179。

2、BGP的消息结构

BGP有4种类型的消息。分别为OPEN,UPDATE,KEEPALIVE和NOTIFY。它们有相同的消息头。

⑴消息头结构:

Marker : (16字节) 鉴权信息

Length : (2字节) 消息的长度

Type : (1字节) 消息的类型

0 :OPEN

1 :UPDATE

2 :NOTIFICATION

3 :KEEPALIVE

⑵OPEN消息结构:

消息头加如下结构 :

Version :(1字节) 发端BGP版本号

My Autonomous System :(2字节无符号整数) 本地AS号

Hold Time :(2字节无符号整数) 发端建议的保持时间

BGP Identifier :(4字节) 发端的路由器标识符

OptParmLen :(1字节) 可选的参数的长度

Optional Parameters :(变长) 可选的参数

时间: 2024-10-18 14:36:25

BGP协议分析之报文和状态机的相关文章

DNS多点部署IP Anycast+BGP实战分析

DNS多点部署IP Anycast+BGP实战分析 DNS领域的多点部署大多采用IP Anycast+BGP方式,采用这种方式不需要额外采购设备,部署灵活多样.但像其他所有技术一样,IP Anycast+BGP技术只有在适当的领域和范围内才能发挥它的最大优势. Internet不断发展,上网人群数量增加,多数网站或DNS等服务在使用单节点提供服务的情况下,无论服务器性能还是接入带宽都不足以承载大量的用户服务请求; 而在国内运营商网络之间访问缓慢的问题一直存在; 此外,服务的高可用性也逐渐被重视.

monkeysocks开发日志:TCP协议分析及架构规划

jsocks的改造 首先对公司一个项目进行了代理,测试结果:从开始启动到完成,只有4.7M的网络流量,本地空间开销不是问题. 今天把jsocks修改了下,将build工具换成了maven,并独立成了项目https://github.com/code4craft/jsocks.后来算是把record和replay功能做完了,开始研究各种协议replay的可能性. replay时候,如何知道哪个请求对应响应包是个大问题.开始的方式是把request报文的md5作为key,response作为valu

OmniPeek 基础之协议分析

  Ominpeek介绍   Ominpeek 官网: http://www.wildpackets.com  Ominpeek一款网络抓包工具,或者说网络协议分析工具.不是管是前端开发.后端开发或都测试人员.为了解数据是否正常的传递,经常会用到网络数据包拦截软件来进行分析. Ominpeek 与我们常用的HttpWatch.Fildder 略有不同.HttpWatch 是基于浏览器的插件,拦截HTTP的数据包,而Ominpeek是基于网卡底层扫描的.计算机与外界的交流必经过网卡,也就是说它能拿

网络协议分析第十章答案

问题描述 网络协议分析第十章答案 在rip中,如果不知道一个报文段的长度,如何判定一个报文包含几个路由条目,udp的最大长度是多少 解决方案 每一层协议都会有长度字段,这样才能解析数据包等 解决方案二: 网络协议分析

Ethereal协议分析系统介绍

Ethereal是一个开放源码的网络分析系统,也是是目前最好的开放源码的网络协议分析器,支持Linux和windows平台. Ethereal起初由Gerald Combs开发,随后由一个松散的Etheral团队组织进行维护开发.它目前所提供的强大的协议分析功能完全可以媲美商业的网络分析系统,自从1998年发布最早的0.2版本至今,大量的志愿者为Ethereal添加新的协议解析器,如今Ethereal已经支持五百多种协议解析.很难想象如此多的人开发的代码可以很好的融入系统中:并且在系统中加入一个

LoadRunner使用技巧:协议分析

在做性能测试的时候,协议分析是困扰初学者的难题,选择错误的协议会导致Virtual User Generator 录制不到脚本:或录制的脚本不完整,有些应用可能需要选择多个协议才能完整的记录 客户端与服务器端的请求. 最简单的办法就去跑去问开发人员我们的程序用什么协议通讯.当然,有时候为了面子,不好意思去问(也为装X) ,那就只能自己动手去被测系统所使用的协议. 优秀的第三方协议分析工具还是挺多的,如:MiniSniffer .Wireshark .Ominpeek 等:当然他们除了帮你分析协议

基于单采集器实现的多种流协议分析

网络业界基于流(Flow)的分析技术 主要有NetFlow.sFlow.cFlow和NetStream四种.NetFlow是Cisco公司的独有技术,它既是一种流量分析协议,又是一种流交换技术,同时也是业界主要的IP计费方式.通过NetFlow可以回答有关IP流量方面的问题,比如谁在什么时间.在什么地方.使用何种协议.访问谁.具体的流量是多少等.Netflow协议的主要版本有V5.V8和V9.其中应用较为广泛的是V5和V8版本.NetFlow凭借Cisco网络产品市场占有率的优势而成为当今应用最

RTSP协议分析

RTSP 协议分析1.概述:  RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetworks公司提交的IETF RFC标准.该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据.类似HTTP协议的流控制协议.它们都使用纯文本来发送信息,而且rtsp协议的语法也和HTTP类似,和HTTP协议相比RTSP协议所不同的地方是,RTSP协议是有状态的协议,而HTTP是无状态的协议.

RTP协议分析

  目录(?)[-] 第1章     RTP概述 RTP是什么 RTP的应用环境 相关概念 流媒体 第2章     RTP详解 RTP的协议层次 传输层的子层 应用层的一部分 RTP的封装 RTCP的封装 RTP的会话过程 第3章     相关的协议 实时流协议RTSP 资源预定协议RSVP 第4章     常见的疑问 怎样重组乱序的数据包 怎样获得数据包的时序 声音和图像怎么同步 接收缓冲和播放缓冲的作用 第5章     实现方案 第6章     参考资料   RTP协议分析 第1章.