中文版翻译得很难理解,这里总结一下。

1、BGP的任务

前面已经讲到了AS内的路由协议,比如OSPF,那么假如两个路由器不在同一个AS内呢?这就要用到BGP。

BGP的一个重要任务是不同AS间的路由,不过BGP也可以进行AS内的路由(后面也会提到)。

2、BGP中的前缀

BGP中的分组不会被路由到特定的IP,而是会路由到前缀(prefix)。这个前缀代表了一个或者一组子网。

前缀是CIDR化的,CIDR确保了前缀能唯一地确定一个子网或者子网组。

3、BGP中转发表的信息表示

一个路由器可能有多个接口,转发表需要的信息是子网+接口号。
前缀的形式可以是这样的:138.16.68/22(没错就是IP协议中的子网,不过我不清楚这是否是唯一的前缀形式)

具体的信息可能是(x,l),x代表前缀,l代表接口号。

4、BGP的作用

1)、使每个路由器都能路由器从临近AS获得可达性信息。

可达性信息(NLRI),也就是该路由器所有能抵达的子网前缀,这些子网前缀的顺序也包含着路径信息,形式如下:

该作用确保了网络的每一个路由器都能得知其中每一个子网的存在。

2)、使路由器能获得到每个可达前缀的最优路径。

BGP提供了确定路由的方法。

5、如何发布BGP路由信息

这一部分介绍这么一个问题:假如网络中增加了一个子网,网络中的其他部分是如何得知该子网的存在呢?


如图是3个AS,AS3包含一个子网,它的前缀是x。
每个路由器中都包括网关路由器和内部路由器。所谓网关路由器,指的是某个接口与其他AS中的路由器相连。图中的1c, 2a, 2c, 3a是网关路由器。

AS1和AS2如何得知前缀x的存在呢?

从AS的层面:

首先,AS3需要告知AS2 前缀x的可达信息,这里表示为AS3 x

AS2接着告诉AS1前缀x的可达信息,这里表示为AS2 AS3 x

通过以上过程,所有的AS(即其中的每个路由器)不仅得知了x 的存在,而且知道了x的路径。

从路由器的层面

发送接收信息的肯定是路由器而非自治系统。所以再从路由器层面重新考虑一下前面的传播过程:

在路由器之间是通过TCP连接传输BGP信息的。
在一个AS内部,路由器建立的是iBGP连接,在不同AS之间,路由器之间建立的是eBGP连接
注意:一个iBGP连接未必对应着一条物理链路,iBGP的连接是比较复杂的,但是一个eBGP一定对应着一条物理链路

发送方 接收方 BGP类型 BGP信息
3a 2c eBGP AS3 x
2c AS2中的每个路由器(包括2a) iBGP AS3 x
2a 1c eBGP AS2 AS3 x
1c AS1中的每个路由器 iBGP AS2 AS3 x

通过以上过程,所有的路由器都能得到x的可达信息。

不过,实际情况中,到达AS1的路径可能不是唯一的,这样到达AS1的x的可达信息也可能有区别,这样就需要选择更好的路由路线。

6、确定最佳路由


首先再介绍一些BGP中的术语:

路线:前缀+BGP属性叫做路由

什么是BGP属性呢?有两个比较重要的属性: AS-PATH和NEXT-HOP

AS-PATH是什么?就是该BGP信息传播时所经过的所有AS,比如在前面的AS2 AS3。这其实就确定了一条路由。路由器在接收BGP信息时,假如收到了当前AS的值则会拒收,以此来避免环路发生。

NEXT-HOP是什么?它是与当前AS-PATH中起始的路由器接口的IP地址。
在上图中,可以看到AS1直接相连的路由器是2a和3d,那么AS1中的路由器会接收到这样的BGP信息:

路由器2a的最左侧接口的IP地址:AS2 , AS3 : x
路由器3d的最左侧接口的IP地址:AS3: x

注意到NEXT-HOP的特点:

  • 它不属于当前AS
  • 当前当前AS一定与它所在的子网相连(是否与该接口相连呢?)

1)热土豆路由选择协议

思想:仅考虑将分组送出当前AS的开销。
在上例中,热土豆路由选择协议会选择一条到达NEXT-HOP开销最小的路线。

(建议把热土豆协议翻译成烫山芋协议。在该协议中,分组被视为烫手的山芋,赶紧扔到其他AS再说,至于之后分组怎么传播他就不管了,那是其它AS的事情)

注意,在热土豆选择协议中,在同一个AS的不同路由器上,即便是相同的前缀,也可能有不同的路由。

2)BGP的路由选择算法

BGP的路由选择算法比较复杂,但他用到了热土豆选择协议的一部分。

路由选择算法的输入是需要路由的前缀以及通往该前缀的所有路由。
(说白了就是要在这些已知路由中选择一个最好的)

而选择的步骤是这样的:

  • 1、一条路由会被加上本地偏好(local preference)的属性。前面提到过路由有AS-PATH和NEXT-HOP属性,现在有三个属性了。本地偏好属性可能是直接在路由上设置的,也可能是从相邻路由器中得到值。这个值根本上是由管理员制定的策略的决定的。具有最高本地偏好的路由将被选择。
  • 2、最高本地偏好的路由假如有多个,则选择AS-PATH最短的路线。假如没有设计其他规则的话,则使用距离向量算法来选择最优路径。(注意:使用距离向量算法时,代价是AS之间的跳数而非路由器之间的跳数
  • 3、假如本地偏好和AS-PATH筛选后仍有多个路由,则使用热土豆选择协议,即选择与NEXT-HOP最近的路由。
  • 4、如果还是有多条路由,则使用BGP选择器来选择(具体的书上也没说)

计算机网络-自顶向下方法 7th 5.4 BGP协议总结相关推荐

  1. 计算机网络自顶向下方法 第六章 链路层和局域网 6.3 多路访问链路和协议

    计算机网络自顶向下方法总结6.3多路访问链路和协议 目录 6.3 多路访问链路和协议 6.3.1 信道划分协议 6.3.2 随机接入协议 6.3.3 轮流协议 6.3.4 DOCSIS:用于电缆以太网 ...

  2. 《计算机网络—自顶向下方法》 Wireshark实验(二):HTTP协议分析

    HTTP 协议工作于客户端-服务端架构上.浏览器作为 HTTP 客户端通过 URL 向 HTTP 服务端即 WEB 服务器发送所有请求. WEB 服务器有:Apache服务器,IIS服务器(Inter ...

  3. 《计算机网络——自顶向下方法》学习笔记——网络层:数据平面

    计算机网络--网络层:数据平面 网络层:数据平面 网络层概述 转发和路由选择:数据平面和控制平面 网络服务模型 路由器工作原理 输入端口处理和基于目的地转发 交换 输出端口处理 何处出现排队 分组调度 ...

  4. 计算机网络自顶向下方法知识点整理(部分)

    1-2物理媒体 1.双绞铜线 由两根绝缘的铜线组成,以规则的螺旋状排列. 无屏蔽双绞线(UTP)10Mbps~10Gbps 最终作为高速LAN联网的主导性解决方案也常用于住宅因特网接入 2.同轴电缆 ...

  5. 计算机网络自顶向下方法,第7版—第1章习题

    原博客: 计算机网络自顶向下方法,第7版--习题解答 只在原文的基础上加了一点自己的答案,其他没变,有些数学公式复制失败,建议去看原博客. 本文包含了 *Computer Networking A T ...

  6. 《计算机网络 自顶向下方法》 第2章 应用层 Part1

    常见的应用层协议有哪些?  HTTP(HyperText Transfer  Protocol):超文本传输协议 FTP(File Transfer Protocol):文件传输协议 SMTP(Sim ...

  7. 计算机网络自顶向下方法(二)——应用层

    不作理想的巨人,行动的矮子 文章目录 写在前面 应用层协议原理 网络应用程序体系结构 客户-服务器(C/S)体系结构 对等体(P2P)体系结构 C/S和P2P体系结构的混合体 进程通信 分布式进程通信 ...

  8. 计算机网络-自顶向下方法-笔记【第3章-传输层】

    计算机网络-自顶向下方法-笔记[第3章-传输层] 学习的课程及图片来源:中科大郑烇.杨坚全套<计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)>课 ...

  9. 计算机网络自顶向下方法 第三章 运输层 3.4 可靠数据传输原理

    计算机网络自顶向下方法总结3.4可靠数据传输原理 目录 3.4 可靠数据传输原理 3.4.1 构造可带数据传输协议 3.4.2 流水线可靠数据传输协议 3.4.3 回退N步 3.4.4 选择重传 3. ...

最新文章

  1. MySQL 批量插入:如何不插入重复数据?
  2. 计算机二级ppt为客户制作演示文稿,计算机二级ppt真题:制作介绍北京ppt
  3. 和每个人密切相关的人工智能的应用
  4. JAVA定时任务的简单实现
  5. 2021安装VSCode教程并创建第一个项目,同时设置成中文语言(超详细)
  6. linux打开pkg文件怎么打开,linux中怎么打开tar.rar.gz文件
  7. 【原创】ESXI6.7+ikuai爱快搭建软路由(非常详细)
  8. flv.js简单使用示例
  9. shared_preferences本地存储操作
  10. 基于STM32的0.96寸OLED显示屏显示数据
  11. 打开视频文件提示服务器异常,视频解析服务器异常
  12. 福斯数据服务平台产品白皮书
  13. Abaqus怎么关闭和显示节点单元编号
  14. 【原创题】皮卡丘的兄弟姐妹
  15. 程序员:用代码改变世界
  16. python做工资条_4种工资条制作方法,总有一款适合你
  17. 运用arcGIS ArcPy推求管网节点高程
  18. vue实现俄罗斯方块初级版本
  19. 基数排序(基数排序)
  20. c语言中能否将打开多个文件的行为放入循环中

热门文章

  1. 独家 | 一文读懂Adaboost
  2. windows与虚拟机中的Ubuntu共享文件夹
  3. Linux系统管理第七周作业【Linux微职位】
  4. linux ssh 推送文件_通过SSH实现Windows与linux之间传输文件
  5. VIM插件: NERDTREE[树形目录]安装与使用
  6. 系统搜索资源就停止服务器,SQL Server (MSSQLSERVER) 服务启动不了,系统日志显示由于下列服务特定错误而终止: 找不到映像文件中指定的资源名。...
  7. (JAVA版)冒泡排序
  8. 排序合并连接(sort merge join)的原理
  9. 使CEdit处于全选状态
  10. Aspose-words结合Freemarker实现word邮件合并功能,批量处理word模板文件