上一讲简单介绍了routing和两种最小路径算法的使用,这节课讲了两种算法是如何糅合进协议中来实现具体使用的。

这一讲内容有AS的介绍,以及IGP和BGP协议。

Autonomous Systems

Internet具有的IP地址数量高达40亿..其中需要对20亿的地址做路由,这是非常可怕的事情!(根本存不下这么大的路由表)

Internet只是一个联合体,就像第一节说的有很多的ISP,他们互联起来组成一个大网,每个ISP独立网络的管理者希望控制自己内部的网络路由。所以,便产生了AS。

Autonomous Systems: Set of routers and networks managed by single ISP or large organization.

Hierarchical Routing

对路由器做一个区域上的聚合,称这个聚合为AS(自治系统);同一个AS内的路由器使用相同的路由协议进行路由,而从自治系统出去要经过网关(gateway)路由器,和其它网关进行对话。每个AS都分配了一个独一无二的16位或32位的AS number。(具体见RFC 1930)

AS内部使用common routing protocol(inter-AS routing),外部intra-AS routing

对自治域的比喻:一个国家内的路由,内部路由是自己任意调度,外部需要海关进行全球协议性的沟通

ISP级别的互连太多了,所以需要peer center(互联中心),大家都把光缆拉到这里。(大公司为了获得更好的服务,往往将自己接入transit AS或者peering center)

Intra-AS and Inter-AS routing

IGP and EGP

IGP,内部网关协议,属于内部AS协议;需要内部信息;关注更多的是性能;

EGP,外部网关协议,属于外部AS协议;需要外部信息;很多时候关注的是可达性;会有较大因素受外界影响而改变,”Policy may dominate over performance“(即现在两个大AS之间的“政治策略”) 。

Common Protocols

IGP有RIP,OSPF,IGRP(思科私有协议);

EGP有BGP,BGP的重要程度堪比IP协议,它将所有的ISP粘合起来。

为什么需要BGP?

Link-state and distance-vector not effective for exterior gateway protocol.

DV连自己经过了哪几个AS都不知道,而LS的洪泛对这么大的网络是难以控制的。

所以EGP用的是PV(path vector)路由算法,抽象出来就是bellman-ford。"The most concern is the ASs passed through."而且EGP的运行不单单依据PV,还依据policy。

IGP

RIP

RIP用的是DV路由算法。Distance metric的标准是跳数或者是router端口中的queue长度;Distance vectors每隔30秒就以RIP update message的形式发送出去;180s判断超时,即链路断开;DV通告使用UDP,周期性重复;

RIP路由表由应用级进程routed (daemon)管理;

OSPF

OSPF用的是LS路由算法,取代了RIP;详见RFC 2328;

每台路由器都保存到邻居的本地链路状态列表;路由器每10秒通过flooding将更新后的状态信息(advertisement)发送到整个AS;OSPF的信息是在IP层上而不是UDP。

OSPF的优点:


对最后一点稍加补充:

单个AS被继续划分为小的Area(用一个32位的ID表示),路由器只知道当前area的拓扑,这样可以限制路由器的flooding范围;

OSPF中链路权值的设置如下:

两种协议的比较

BGP

具体标准参见:RFC 8271

BGP为由AS的需求而提出的协议:隐私(如隐藏拓扑)、自主性、自由选择AS间路由等。

BGP的行为可划分为两个步骤:

  • 从邻居AS获取某个prefix的可达性信息;

  • 对包含了可达性信息的众多条路由信息进行选择,选出“最好”的路由;

  • basic idea:

  • BGP信息要做的事情:

在进行路由选择之前,某个AS中的路由器A想要知道另一个AS中的一个子网的前缀,则需要使用iBGP连接和eBGP连接将该前缀信息进行通告。(注意一条BGP连接并不直接对应物理上的一条链路)如下图,如果AS3想让附近的AS知道它的存在,就需要:


这个BGP报文又被称为路由,一条路由的特征为NEXT-HOP、AS-PATH、prefix三个部分,根据算法的不同还会加上一个优先级。其中,NEXT-HOP信息是该路由到达目标AS前的最后一个路由器出端口的IP地址,AS-PATH是其经过的AS路径信息,prefix就是需要知道的子网前缀。

两种选择算法

我们先来看一个例子,比较两种BGP选择算法:

在这个例子中,从AS1到前缀x有两条路由信息,3d:AS3 x2a: AS2 AS3 x

烫手山芋算法

这是一个自私的算法!我们拿路由器1b来举例。1b收到所有路由信息后,检查路由信息上的NEXT-HOP有2a3d两个,便查阅本地AS内部路由选择信息,找到通往这两个端口分别的最小开销:在图中分别为2和3—>选择开销为2的路由器2a,将这个端口I的地址和前缀x组合起来为(x,I)加到自身的转发表中。可以看到这个算法只顾着自己AS内的最小开销,只想尽快把packet送出AS,而不顾总体上的AS路由,是非常自私的。

路由选择算法

这个算法需要将路由信息加上优先级。(注意只有iBGP信息会加上这个)这个优先级信息是本地配置的,即对于多条路由信息,本地的AS网络管理员会对其进行优先级的区分,以让他们根据自己的policy来进行路由(policy的详细介绍见书本5.4.5):

配好优先级后,具体实现步骤如下:

BGP总结


计网学习笔记十 Internet Routing Protocols的更多相关文章

  1. Networking && Internet 计网学习笔记一

    Networking && Internet 计网学习笔记一 参考书籍: James F. Kurose, Keith W. Ross. 计算机网络-自顶向下方法 (7th). 机械工 ...

  2. 计网学习笔记二 Link Layer Service

    在上一周的计网学习了network和Internet的总论.在这一周开始的未来几讲将集中在链路层link layer,并且会有相应的计网lab完成.在这一讲中,我们主要关注链路层提供的服务. 课程资料 ...

  3. 计网学习笔记五 wireless && mobile networks

    老师把无线网络用一节课一遍过了-感觉没能学透,便课后自己总结,看书,找资料补充,把无线网络大概摸了个七七八八.虽然不算精细,但还能看!内容包括WLAN总概,WiFi-WLAN的实现,802.11规定的 ...

  4. 计网学习笔记六 Network Layer Overview

    这节课开始进入了网络层的学习,讲述了网络层提供的功能,还有路由器内部是什么样子的,以及virtual circuit网络和datagram网络的一点比较. 网络层有什么作用呢?用一句话来说,就是需要负 ...

  5. 计网学习笔记三 MAC与LAN

    在上一讲中,我们学习了链路层可以提供的服务:framing,link access,reliable delivery,error detection&correction.这一讲我们从lin ...

  6. 计网学习笔记七 IP protocol basic

    在这一节讲了IP协议的基本内容:包括IPv4提供的操作.数据报在IPv4下是怎么样的结构.数据报是怎样切片发送的.IPv4的编址方式有什么--IPv6在下一节讲网络层协议簇时细讲. IPv4协议的具体 ...

  7. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  8. Learning ROS for Robotics Programming Second Edition学习笔记(十) indigo Gazebo rviz slam navigation

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 moveit是书的最后一章,由于对机械臂完全不知,看不懂 ...

  9. python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置

    python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置Download JetBrains Python IDE :: PyCharmhttp://www. ...

  10. python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法

    python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法 同一台机器同时安装 python2.7 和 python3.4不会冲突.安装在不同目录,然 ...

随机推荐

  1. nginx 工作原理及特点

    本文为博主原创,未经允许不得转载: nginx 简介:是一个高性能 HTTP 和 反向代理 服务器. Nginx 特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中 ...

  2. React报错之Property does not exist on type 'JSX.IntrinsicElements'

    正文从这开始~ 总览 当组件名称以小写字母开头时,会导致"Property does not exist on type 'JSX.IntrinsicElements'"错误.为了 ...

  3. 无法访问Github仓库的极简治标法

    技术背景 由于IP原因,国内的IP访问Github仓库的时候会经常遇到一些困难,甚至存在无法Ping通的情况.尝试过FastGithub等方案,但还是会遇到各种各样的问题,导致情况越来越复杂. 但是转 ...

  4. org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 2

    1.报错 在运行SpringBoot项目时遇到报错: 17:44:47.558 [main] ERROR org.springframework.boot.SpringApplication -- A ...

  5. shell-命令行位置参数-$n

  6. [转帖]聊聊hikari连接池的leakDetectionThreshold

    http://www.manongjc.com/detail/52-hjoufmsfhtsqvgp.html 本文章向大家介绍聊聊hikari连接池的leakDetectionThreshold,主要 ...

  7. [转帖]关于面试时HA(RAC)会问到的一些问题

    1.什么是RAC(Real Application Cluster)? RAC(Real Application Cluster)是Oracle数据库的一种部署架构,它将多个数据库服务器连接在一起,共 ...

  8. [转帖]TiKV Control 使用说明

    https://docs.pingcap.com/zh/tidb/stable/tikv-control TiKV Control(以下简称 tikv-ctl)是 TiKV 的命令行工具,用于管理 T ...

  9. Jmeter学习之六_进行https证书处理的工作

    Jmeter 进行https证书处理的工作 背景 继续学习中,想着能够抓取一下https相关的信息 所以计划些一下处理过程 但是感觉自己这一块比较薄弱. 场景设计这一块应该是专业人去搞, 我这边先只是 ...

  10. [转帖]Linux中最全shell命令&常用注意事项

    在编辑linux脚本中不断的会用到复杂的脚本编辑,写文章记录. Linux命令大全(手册) – 真正好用的Linux命令在线查询网站 目录 推荐书籍: Linux常用命令 Linux 常用命令 在li ...