计算机网络学习(十) 网络层 Ⅲ

1.路由选择算法

1.1 路由算法

  • 之前主要研究了网络层的转发功能,当分组到达一台路由器时,该路由器索引其转发表并决定该分组被指向的链路接口
  • 网络层还有至关重要的路由选择功能,不管网络层提供的是数据报服务(此时在给定源和目的地址之间的不同分组可能采用不同的路由) ,还是虚电路服务此时在给定源和目的地址之间的所有分组将采用相同路径) ,网络层都必须为分组选择一条最佳路径
  • 主机通常直接与一台路由器相连接,该路由器即为该主机的默认路由器 (default router) , 又称为该主机的第一跳路由器 (first- hop router)
  • 将源主机的默认路由器称作源路由器( source router) ,把目的主机的默认路由器称作目的路由器 (destination router)
  • 可以用图、边、节点(离散数学)来形式化描述路由选择问题。
  • 路由算法的分类一
    • 全局式路由选择算法 (global routing algorithm)
      • 所有的路由器掌握完整的网络拓扑和链路费用信息
      • 实践中,具有全局状态信息的算法常被称作链路状态 (Link State , LS) 算法,因为该算法必须知道网络中每条链路的费用
    • 分散式路由选择算法 (decentralized routing algorithm)
      • 路由器只掌握物理相连的邻居及链路费用
      • 以迭代、分布式的方式计算出最低费用路径
      • 例如,距离向量( Distance- Vector, DV) 算法
  • 路由算法的分类二
    • 静态路由选择算法 (Static routing algorithm)
      • 人工干预进行调整(如人为手工编辑一台路由器的转发表)
    • 动态路由选择算法 (Dynamic routing algorithm)
      • 能够当网络流量负载或拓扑发生变化时动态改变路由选择路径
  • 路由算法的分类三
    • 负载敏感算法 ( load-sensitive algorithm)
      • 链路费用会动态地变化以反映出底层链路的当前拥塞水平
      • 早期的 ARPAnet 路由选择算法就是负载敏感的
    • 当今的因特网路由选择算法都是负载迟钝的 (load-insensitive) ,因为某条链路的费用不明思地反映其当前(或最近)的拥塞水平。

1.2 链路状态路由算法

  • 在链路状态算法中,网络拓扑和所有的链路费用都是已知的,也就是说可用作 LS 算法的输入
  • 实践中这是通过让每个结点向网络中所有其他结点广播链路状态分组来完成的,其中每个链路状态分组包含它所连接的链路的特征和费用
  • 链路状态路由选择算法叫做 Dijkstra 算法(数据结构与算法,具体略)
  • 复杂性:n 个节点需要 n(n+1)/2 次比较,O(n^2)
  • 存在震荡可能

1.3 距离向量路由算法

  • 距离向量算法是一种迭代的、异步的和分布式的算法
    • 分布式:每个结点都要从一个或多个直接相连邻居接收某些信息,执行计算,将其计算结果分发给邻居
    • 迭代:此过程一直要持续到邻居之间无更多信息要交换为止
    • 异步:不要求所有结点相互之间步伐一致地操作。
  • 采用Bellman-Ford 算法(算法数据结构与算法,具体略)
  • 无穷计数问题:采用毒性逆转技术或定义最大度量

1.4 LS vs DV ?

  • 注:N 是结点(路由器)的集合,而 E 是边(链路)的集合
  • DV 和 LS 算法采用互补的方法来解决路由选择计算问题
    • 在 DV 算法中
      • 每个结点仅与它的直接相连的邻居交谈
      • 它为其邻居提供了从它自己到网络中(它所知道的)所有其他结点的最低费用估计
    • 在 LS 算法中
      • 每个结点(经广播)与所有其他结点交谈
      • 它仅告诉它们与它直接相连链路的费用
  • 报文复杂性
    • DV 算法
      • 要求在每次选代时,在两个直接相连邻 居之间交换报文
      • 当链路费用改变时, DV 算法仅当在新的链路费用导致与该链路相连结点的最低费用路径发生改变时,才传播己改变的链路费用
    • LS 算法
      • 要求每个结点都知道网络中每条链路的费用,这就要求要发送 O(NE)个报文
      • 无论何时一条链路的费用改变时,必须向所有结点发送新的链路费用
  • 收敛速度
    • LS 算法的实现是一个要求O(NE) 个报文的 O( N^2 ) 算法。 DV 算法收敛较慢,且在收敛时会遇到路由选择环路,还有无穷计数的问题
  • 健壮性: 如果一台路由器发生故障、行为错乱或受到破坏时情况会怎样呢?
    • DV 算法
      • 一个结点可向任意或所有目的结点通告其不正确的最低费用路径
      • 更一般地,每次迭代时,在 DV 算法中一个结点的计算会传递给它的邻居,然后在下次迭代时再间接地传递给邻居的邻居,一个不正确的结点计算值会扩散到整个网络
    • LS 算法
      • 对于 LS 算法,路由器能够向其连接的一条链路广播不正确费用(但是没有其他链路)
      • 一个结点也可损坏或丢弃它收到的任何 LS 广播分组
      • 但是一个 LS结点仅计算自己的转发表,这就意味着在 LS 算法下,路由计算在某种程度上是分离的,提供了一定程度的健壮性
  • 总之,两个算法没有一个是明显的赢家,它们的确都在因特网中得到了应用

1.5 层次路由选择

  • 将任意规模的网络抽象成图计算路由——过于理想化和简单化,原因如下:
    • 规模。随着路由器数目变大,涉及路由选择信息的计算、存储及通信的开销将高得不可实现。
    • 管理自治。每个网络的管理可能都期望自主控制其内网的路由,还要能将其网络与其他外部网络相连接。
  • 这两个问题都可以通过将路由器组织进自治系统 (Autonomous System, AS) 来解决
    • 在相同的 AS 中的路由器都全部运行同样的路由选择算法,且拥有彼此的信息,就像理想化那样。
    • 在一个自治系统内运行的路由选择算法叫做自治系统内部路由选择协议( intra- autonomous system routing protocol)
    • 不同自治系统内的路由器可以运行不同的AS内部路由协议
    • 将 AS 彼此互联是必需的,因此在一个 AS 内的某些路由器还将负责向在本 AS 之外的目的地转发分组,这些路由器位于AS的 “边缘”,被称为网关路由器 (gateway router) 。
  • 一个例子
    在这里插入图片描述
    • AS1具有4台路由器,1a、1b、1c 和 1d,这4台路由器的每一台都知道如何沿着优化路径转发到 AS1 内任何目的地的分组地,自治系统 AS2 和 AS3 类似
    • 路由器 1b、1c、2a 和 3a 都是网关路由器
    • 某些 AS 中的路由器,怎样知道该如何将分组路由选择到位于该 AS 外部的目的地呢?
      • 如果 AS 仅有一个网关路由器连接唯一一个其他 AS 的话,回答这个问题是容易的。因为该 AS 内部的 AS 路由选择协议已经决定了从内部路由器到网关路由器的最低费用路径,网关路由器一旦接收到分组,将分组向通向外部 AS 的一条链路转发。之后由该链路另一端的 AS 负责将该分组向其最终目的地路由选择。
      • 如果源 AS 具有两条或更多条链路(通过一台或更多台网关路由器)通向外部 AS ,如何解决这个问题?
        • 考虑在 AS1 中的一台路由器,它接收了 一个目的地在该 AS 外部的分组。路由器显然应当向它的两个网关路由器之一(1b 或 1c) 转发该分组
        • 为解决选择哪个网关,AS1 需要:①知道经 AS2 和 AS3 分别可达哪些目的地;②向 AS1 中的所有路由器传播这些可达性信息
        • 以上两个任务是由自治系统间路由选择协议( Inter- autonomous system routing protocol) 处理的。事实上,因特网中的所有 AS 都运行相同的 AS 间路由选择协议,该协议称为 BGP4
        • 因此每台路由器能够配置它的转发表以处理外部 AS 目的地
    • 假如 AS1 从 AS 间路由选择协议知道了子网 x 是可通过多个网关到达。如何选择?
      • 热土豆路由选择 (hot potato routing):发送分组的路由器通过 AS 内部路由协议确定自己到达每个网关的最小路径,在这些路径中选择最小的一条,即选择离自己最近的网关发送。

2.因特网中的路由选择

学习了因特网编址与 IP 协议以后,我们现在将注意力转到因特网路由选择协议上来,,因特网的路由选择协议包含了许多我们在本章前面学过的原理:LS、DV、自制系统

2.1自治系统间内的路由选择

  • 因特网采用层次路由
  • AS 内部路由选择协议又称为内部网关协议 (interior gateway protocol,IGP)
  • 常见的 AS 内部路由协议:
    • 路由选择信息协议 (Routing Information Protocol , RIP)
    • 开放最短路优先 (Open Shortest Path First , OSPF)

2.1.1 RIP

  • 路由选择信息协议 (Routing Information Protocol , RIP)
  • RIP 是最早的 AS 内部因特网路由选择协议之一,且目前仍在广泛使用。
  • RIP 是一种距离向量协议,其运行方式很像理想化的 DV 协议
    • 使用跳数作为其费用测度,即每条链路的费用为 1
    • 一条路径的最大费用被限制为 15
    • 路由选择更新信息在邻居之间通过使用一种 RIP 响应报文( RIP response message) 来交换,又被称作 RIP 通告( RIP advertisement) ,每 30 秒交换一次。
    • 响应报文包含了一个该 AS 内的最多 25 个目的子网的列表
    • 路由器维护一张称为路由选择表( routing table) 的 RIP 表(该路由器的距离向量和该路由器的转发表),转发表有三列:目的子网、下一台路由器、到目的地的总跳数
  • 例子:
    在这里插入图片描述
  • RIP 的链路失效与恢复
    • 超过 180 秒没有从邻居听到报文,则该邻居是不可达的:邻居死机了或者连接的链路中断了
    • 当这种情况发生时, RlP修改本地路由选择表,然后向相邻路由器(那些仍然可达的路由器)发送通告来传播该信息
    • 邻居再依次向外发送通告(如果转发表改变)
  • RIP 路由表的处理
    • RIP 路由表是利用一个称为 route-d(daemon)的应用层进程进行管理
    • 通告报文周期性地通告 UDP 数据报发送
      在这里插入图片描述

2.1.2 OSPF

  • 开放最短路优先 (Open Shortest Path First , OSPF)
  • 就像 RIP 一样, OSPF 路由选择也被广泛用于因特网的 AS 内部路由选择
  • 采用链路状态路由算法
    • 每当一条链路的状态发生变化时(如费用的变化或连接/中断状态的变化),路由器就会向自治系统内所有其他路由器广播链路状态信息
    • 即使链路状态未发生变化,它也要周期性地 (至少每隔 30 分钟一次)广播链路状态。
    • 每个路由器构造完整的网络(AS)拓扑图
    • 路由器在本地运行 Dijkstra 算法,确定以自身为根结点的到所有子网的最短路径树
    • 各条链路费用是由网络管理员配置的
    • OSPF 通告包含在 OSPF 报文中,该 OSPF 报文直接由 IP 承载
  • OSPF 的优点(RIP 不具备)
    • 安全。所有的 OSPF 报文都可以被认证,防止恶意入侵
    • 允许使用多条相同费用的路径。这就是说,当多条相等费用的路径存在时,无需仅选择单一的路径来承载所有的流量
    • 对单播与多播路由选择的综合支持。多播 OSPF(MOSPF)与 OSPF 利用相同的网络拓扑数据
    • 支持对大规模 AS 分层
  • 分层的 OSPF
    • 两层分级:局部区(Area)、主干区(Backbone)
    • 每个区域都运行自己的 OSPF 链路状态路由选择算法,链路状态的通告仅限于区域内,每个路由器掌握所在区的详细拓扑
    • 在一个 Area 内,一台或多台区域边界路由器 (area border router) 负责为流向该区域以外的分组提供路由选择
    • 主干区域的主要作用是为 AS 内其他区域之间的流量提供路由选择
    • 主干总是包含了 AS 内的所有区域边界路由器,并且可能还包含了一些非边界路由器
    • AS 内的区域间的路由选择要求分组首先路由到区域边界路由器,再通过主干路由到位于目的区域的区域边界路由器,然后再路由到最终目的地。

2.2自治系统间的路由选择

  • 跨越多个 AS 的源和目的对之间是如何确定路径的?—— 边界网关协议 (Border Gateway Protocol , BGP) 版本 4 是当今因特网中域间路由选择协议事实上的标准。
  • BGP 为每个 AS 提供了进行以下工作的手段:
    • 从相邻 AS 处获得子网可达性信息
    • 向本 AS 内部的所有路由器传播这些可达性信息
    • 基于可达性信息和 AS 策略,决定到达子网的"好"路由
  • BGP 使得每个子网向因特网的其余部分通告它的存在,BGP 确保了在因特网中的所有 AS 知道该子网以及如何到达那里

2.2.1 BGP 基础

  • BGP 极其复杂,而且许多问题仍没有得到很好理解,但我们至少需要获得该协议工作原理的初步知识。
  • 在 BGP 中,路由器对通过使用 179 端口的半永久 TCP 连接来交换路由选择信息
  • 对于每条 TCP 连接,位于该连接端点的两台路由器称为 BGP 对等方 (BGP peers),沿着该连接发送所有 BGP 报文的 TCP 连接称为 BGP 会话( BGP session)
  • 跨越两个 AS 的 BGP 会话称为外部 BGP 会话 (external BGP session,eBGP) ,在同一个AS 中的两台路由器之间的 BGP 会话称为内部 BGP会话( inlemal BGP session,iBGP)
    在这里插入图片描述
  • BGP 使得每个 AS 知道经过其相邻 AS 可达哪些目的地。 在 BGP 中,目的地不是主机而是 CDIR 化的前缀 (prefix) ,每个前缀表示一个子网或一个子网的集合。
  • 如上图,在网关路由器 3a 和 1c 之间使用 eBGP 会话, AS3 与 AS1 相互交换可达的前缀列表; AS 中的网关路由器接收到 eBGP 学习到的前缀后,使用 iBGP 会话来向该 AS 中的其他路由器发布这些前缀
  • 当一台路由器得知一个新前缀时,它为该前缀在其转发表中创建一个项

2.2.2 路径属性和 BGP 路由

  • 在 BGP 中,一个自治系统由其全局唯一的自治系统号 (Autonomous System Numher, ASN)
  • 当一台路由器通过 BGP 会话通告一个前缀时,它在前缀中包括一些 BGP 属性 (BGP attribute) 。 用 BGP 术语来说,带有属性的前缀被称为一条路由 (route)
  • 其中两个重要属性:
    • AS-PATH(AS 路径):包含前缀通告已经经过的AS序列,如 AS 67,AS 17。
      • 当一个前缀传送到一个 AS 时,该 AS 将它的 ASN 增加到 AS-PATH 属性中
      • 路由器使用该 AS-PATH 属性来检测和防止循环通告;
      • 如果一台路由器看到它的 AS 被包括在该路径列表巾,它将拒绝此通告
      • 路由器也使用 AS-PATH 属性在多条路径中选择相同的前缀。
    • NEXT-HOP(下一跳):开始一个 AS-PATH 的路由接口,指向下一跳 AS,可能从当前 AS 到下一跳 AS 存在多条链路。总而言之,路由器使用 NEXT-HOP 属性正确地配置它们的转发表。
  • 当一台网关路由器接收到一台路由器通告时,它使用其输入策略 ( import policy) 来决定是否接收或过滤该路由、是否设置某种属性
    • 设置某种属性如路由器偏好程度
    • 滤掉一条路由,因为该 AS 可能不希望通过在该路由的 AS-PATH 中的某个 AS 发送流量

2.2.3 BGP 路由选择

  • BGP 使用 eBGP 和 iBGP 向在 AS 中的所有路由器发布路由。根据这种发布,路由器可能知道到达任何一条前缀的多条路由,在这种情况下路由器必须在可能的路由中选择一条。,BGP 顺序地调用下列消除规则,直到留下 一条路由:
    • 本地偏好(preference)值属性:
      • 路由被指派一个本地偏好值作为它们的属性之一
      • 本地偏好可能由该路由器设置或可能由在相同 AS 中的另一台路由器学习到
      • 这是一条由 AS 的网络 管理员决定的决策,具有最高本地 偏好值的路由将被选择
    • 最短 AS-PATH:
      • 在余下的路由中 (所有都具有相同的本地偏好值) ,具有最短 AS-PATH 的路由将被选择
      • 如果该规则是路由选择的唯一规则的话,则 BGP 将使用一种距离向量算法来决定路径,其中距离测度使用 AS 跳的数目而不是路由器跳的数目
    • 最近 NEXT-HOP 路由器:
      • 在余下的路由中(所有者都具有相同的本地偏好和相同的 AS-PATH 长度),将选择具有最靠近 NEXT-HOP 路由器的路由
      • 最靠近是指具有最低费用路径的费用的路由器,它由 AS 内部算法来决定,该进程经常被称为热土豆路由选择。
    • 如果仍留下多条路由,该路由器使用 BGP 标识符来选择路由

2.2.4 路由选择策略

一个简单的例子说明 BGP 路由选择策略的某些基本概念。
在这里插入图片描述

  • A、B、C 是提供商网络 / AS(provider network / AS),X、W、Y 是客户网络 / AS(customer network / AS)
  • W、Y 是桩网络(stub network / AS):只与一个其他 AS 相连。 所有进入桩网络的流量必定是去往该网络,所有离开桩网络的流量必定源于该网 络
  • X 是多宿桩网络(multi -homed stub network):链接两个其他 AS,就像 W 和 Y 一样, X 自身必定是进人/离开 X 的所有流量的源/目的地。
  • 这种桩网络的行为是如何被实现和强制实现的呢? X 如何防止转发 B 与 C 之间的流量呢?—— 控制 BGP 路由的通告方式:
    • X 不期望经过他路由 B 到 C 的流量,因此 X 不会向 B 通告任何一条到达 C 的路由。
    • X 如果(向其邻居 B 和 C) 通告它没有通向 (除自身以外)任何其他目的地的路径,那么它将起到一个桩网络的作用
    • 这个简单的例子说明了如何使用一条选择的路由通告策略来实现客户/提供商关系。
  • A 向 B 通告一条路径:AW
  • B 向 X 通告一条路径:BAW
  • B 不会向 C 通告路径 BAW ,因为 W 和 C 均不是 B 的客户,B 路由 CBAW 没有任何收益
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机网络课后习题答案(老师划出的) 第一章 概述 1-10 试在下列条件下比较电路交换和分组交换。要传送的报文共x(bit),从源站到目的站共经过k 段链路,每段链路的传播时延为d(s),数据率为C(bit/s)。在电路交换时电路的建立时间为s(s)。在分组交换时分组长度为p(bit),且各结点的排队等待时间可忽略不计。问在怎样的条件下,分组交换的时延比电路交换的要小?(提示:画一下草图观察k段链路共有几个结点) 答:对电路交换,当t=s 时,链路建立;当t=s+x/C,发送完最后一bit;当t=s+x/C+kd,所有的信息到达目的地。对分组交换,当t=x/C, 发送完最后一bit;为到达目的地,最后一个分组需经过k-1 个分组交换机的转发,每次转发的时间为p/C,所以总的延迟= x/C+(k-1)p/C+kd所以当分组交换的时延小于电路交换x/C+(k-1)p/C+kd<s+x/C+kd 时,(k-1)p/C<s 1-17 收发两端之间的传输距离为1000km,信号在媒体上的传播速率为2.3×108 m/s。试计算以下两种情况的发送时延和传播时延:(1) 数据长度为107bit,数据发送速率为100kbit/s,传播距离为1000km,信号在媒体上的传播速率为2×108m/s。(2) 数据长度为103bit,数据发送速率为1Gbit/s,传输距离和信号在媒体上的传播速率同上。 答:(1):发送延迟=107/(100×1000)=100s 传播延迟=1000×1000/(2×108)=5×10-3s=5ms (2):发送延迟=103/(109)=10-6s=1us传播延迟=1000×1000/(2×108)=5×10-3s=5ms 第二章 物理层 2-04 试解释以下名词:数据、信号、模拟数据、模拟信号、基带信号、带通信号、数字数 据、数字信号、码元、单工通信、半双工通信、全双工通信、串行传输、并行传输。 答:数据:是运送信息的实体。 信号:则是数据的电气的或电磁的表现。 模拟数据:运送信息的模拟信号。 模拟信号:连续变化的信号。 基带信号:来自信源的信号。 带通信号:经过载波调制后的信号。 数字信号:取值为有限的几个离散值的信号。 数字数据:取值为不连续数值的数据。 码元:在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形 单工通信:即只有一个方向的通信而没有反方向的交互。 半双工通信:即通信和双方都可以发送信息,但不能双方同时发送(当然也不能同时接收)。 这种通信方式是一方发送另一方接收,过一段时间再反过来。 全双工通信:即通信的双方可以同时发送和接收信息。 基带信号(即基本频带信号)——来自信源的信号。像计算机输出的代表各种文字或图像文 件的数据信号都属于基带信号。 带通信号——把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道 中传输(即仅在一段频率范围内能够通过信道)。 2-07 假定某信道受奈氏准则限制的最高码元速率为2000 码元/秒。如果采用振幅调制,把 码元的振幅划分为16 个不同等级来传送,那么可以获得多高的数据率(b/s)? 答:80000 b/s 2-16 共有4 个站进行码分多址CDMA 通信。4 个站的码片序列为: A:( -1 –1 –1 +1 +1 –1 +1 +1) B:( -1 –1 +1 -1 +1 +1 +1 -1) C:( -1 +1 –1 +1 +1 +1 -1 -1) D:( -1 +1 –1 –1 -1 –1 +1 -1) 现收到这样的码片序列:(-1 +1 –3 +1 -1 –3 +1 +1)。问哪个站发送数据了?发送数据 的站发送的1 还是0? 答:S•A=(+1-1+3+1-1+3+1+1)/8=1, A 发送1 S•B=(+1-1-3-1-1-3+1-1)/8=-1, B 发送0 S•C=(+1+1+3+1-1-3-1-1)/8=0, C 无发送 S•D=(+1+1+3-1+1+3+1-1)/8=1, D 发送1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值