1 / 37

高级计算机网络

高级计算机网络. 北京邮电大学继续教育学院  授课教师 : 孙斌 sunbin@bupt.edu.cn 2003 年. 第五讲 网络层. 网络层介绍 功能、模型与服务 路由选择算法 拥塞控制和流量控制 具体网络层介绍 IP. 网络层. 网络层. 网络层. 数据链路. 数据链路. 数据链路. 数据链路. 物理层. 物理层. 物理层. 物理层. 网络 2. 网络 1. 路由器 R. 主机 B. 主机 A. 网络层模型. B. A. 网络层连接. 数据链路层连接. 数据链路层连接. 网络层功能.

kelda
Download Presentation

高级计算机网络

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 高级计算机网络 北京邮电大学继续教育学院  授课教师: 孙斌 sunbin@bupt.edu.cn 2003年 http://www.bupttc.com

  2. 第五讲 网络层 • 网络层介绍 • 功能、模型与服务 • 路由选择算法 • 拥塞控制和流量控制 • 具体网络层介绍 • IP http://www.bupttc.com

  3. 网络层 网络层 网络层 数据链路 数据链路 数据链路 数据链路 物理层 物理层 物理层 物理层 网络 2 网络 1 路由器R 主机 B 主机 A 网络层模型 B A 网络层连接 数据链路层连接 数据链路层连接 http://www.bupttc.com

  4. 网络层功能 • 基本功能:实现端到端的网络连接,屏蔽不同子网技术的差异,向上层提供一致的服务。 • 主要功能: • 为通过网络连接的主机之间提供分组交换功能。----服务的提供 • 路由选择和转发。----路由的选择 • 分组的分段与重组,差错控制、顺序化、流量控制。----拥塞的控制 http://www.bupttc.com

  5. 网络层服务的设计目标 • 通信应该与通信子网技术无关 • 通信子网的数量、类型和拓扑结构对于传输层来说是透明的 • 传输层所能得到的网络地址应该是采用统一的编号方式,即使跨越了多个LAN和WAN。 http://www.bupttc.com

  6. 服务的种类和实现的方法 • 服务的种类: • 面向连接的服务:ATM • 无连接的服务:IP • 实现的方法: • 虚电路 • 数据报 http://www.bupttc.com

  7. 虚电路与数据报的比较 虚电路 数据报 不需要 需要 是否需要建立连接 完整地址 VC标识 分组中的目的地址 要为每个虚电路 保存一个路由表 只需一个很简单 的路由表 路由器中的路由表 在VC建立时选路, 所有分组路由相同 每个分组独立选路, 路由可能不同 选路 所有经过该路由器 的VC都将终止 路由器故障的影响 几乎不受影响 拥塞控制 易于实现 很难实现 差错控制和流量控制 由子网负责 由主机负责 http://www.bupttc.com

  8. 虚电路的路由表(交换表) 路由表在建立虚电路(虚呼叫)时确定。 分组在传送时只需携带虚电路号,虚电路号只具有本地意义, 根据虚电路建立顺序由各主机、各结点自主排序, 入出口号不一定相同。 http://www.bupttc.com

  9. 虚电路路由表建立过程示例 H2 H3 B 入口 出口 D 入口 出口 B C A 0 E 0 B 0 H4 0 A 1 D 0 H1 A B 1 E 0 D H4 3 H2 0 D 1 E E 0 H4 1 A 2 C 0 A 入口 出口 C 0 H4 2 H5 H1 0 B 0 1 依次建立5条VC: VC1:A--B--E VC2:A--B--D VC3:B--D--E VC4:C--E--D VC5:A--B--C--D 2 H1 1 B 1 C 入口 出口 E 入口 出口 5 H1 2 B 2 H3 0 E 0 B 0 H5 0 4 B 0 D 0 D 0 H5 1 C 0 D 0 http://www.bupttc.com

  10. 结点A的路由表 H2 H3 输出线 目的站 B 1 B C 1 C 2 D 1 H1 A D H4 E 2 2 E H5 数据报的路由表 每个分组都需要携带完整的目的地址。 每个结点保存一个到网内其他结点的输出线选择表 虚电路与数据报的权衡: (1) 路由器内存与带宽 (2) 虚呼叫时间与地址分析时间 http://www.bupttc.com

  11. 子网提供的服务与子网结构无关 子网类型 虚电路 数据报 上 层 类 型 ATM之上的IP 无连接 IP之上的UDP 面向连接 IP之上的TCP ATM之上的AAL1 http://www.bupttc.com

  12. 路由的选择 • 理想的路由选择算法的要求:正确、简单、能够自适应(健壮性:Robustness)、稳定、公平、 最佳 • 路由选择算法的分类: • 分类原则:路由选择算法能否随着网络的通信量或拓扑结构的变化而自适应地进行调整 • 分类: • 非自适应路由算法(静态路由):最短路由选择、扩散法、基于流量的路由选择 • 自适应路由算法 :孤立的路由选择、距离矢量路由选择、链路状态路由选择 http://www.bupttc.com

  13. 路由技术 • 性能标准: hop,distance,delay,speed,cost • 何时路由判断: session,packet • 何地路由判断: distributed,centralized,source • 策略:fixed,adaptive,random,flood • 更新时间( adaptive):period,topology change,load change • 网络信息的来源:all node ,adjacent, node along route http://www.bupttc.com

  14. 最短路由选择(shortest path)( Dijkstra算法 1959) • 目的:求从源结点到网络中其他各结点的最短路径。 • 步骤: (1)初始化:建立一个结点集合N,只包含源结点A;对其他各结点v,与源结点的距离 D(v)= l(A,v), 若A与v直接相连  , 若A与v不直接相连 (2)找一个D(v)值最小的结点w,加入集合N,对所有不在N中的节点, 用D(v)和D(w)+l(w,v)中较小的值更新原有的D(v) (3)重复步骤(2),直到所有结点都加入集合  http://www.bupttc.com

  15. 7 B C 2 2 7 3 3 2 A E F D 1 2 2 6 4 G H 最短路由选择示例 D(B) D(C) D(D) D(E) D(F) D(G) D(H) N 初始化 { A } 2    6(A)  { A, B } 9  4  6(A)  { A, B, E } 9  6 5(E)  { A, B, E, G } 9  6 9(G) 9  8(F) { A, B, E, G, F } { A, B, E, G, F, H } 9 10 10 { A, B, E, G, F, H, C } { A, B, E, G, F, H, C, D } http://www.bupttc.com

  16. 7 B C 2 2 3 7 3 2 A E F D 1 2 2 6 4 G H 7 B C 2 2 2 A E F D 1 2 2 G H 最短路由选择示例 结点A的路由表 后继结点 目的结点 B B B C 最短路径树 B D E B F B G B H B http://www.bupttc.com

  17. 扩散法(flooding) • 方法:向除来端之外的所有端口转发 • 问题:如何限制分组无穷多个分组兜圈子? • 解决方法: • 每个分组头包含站点计数器,每经过一个站点减1,为0时,扔掉分组。 • 记录下分组扩散路径,重复的被丢弃。为防止记录表无限扩大,增加计数器k,低于k的被丢弃。 • 选择性扩散法(selective flooding):向正确方向发送。 http://www.bupttc.com

  18. 扩散法的性能 • 尝试所有可能的路由(健壮) • 至少有一个数据包使用最短路径(建立VC) • 遍历所有的节点(用于路由信息的分发) http://www.bupttc.com

  19. 基于流量的路由选择(flow-based routing) • 即考虑拓扑结构又考虑载荷的静态路由选择算法。 • 基本想法:对某一给定的线路,如果已知载荷量和平均流量,就可以计算出该线路上的平均分组延迟,从而可以计算出整个网络的平均分组延迟,于是,路由选择问题就归结为如何找到产生网络延迟最小的路由选择算法。 • 必须知道的参数: • 网络拓扑 • 各线路容量 • 临时的一种路由选择算法 http://www.bupttc.com

  20. 基于流量的路由选择举例 目的 B 20 C 20 10 D A 20 20 20 10 E 50 F Kb/s 源 分组/s 路由 http://www.bupttc.com

  21. 基于流量的路由选择举例 其中: 1/ =平均分组长度=800比特 线路平均时延: T=1/( C-) 用处:可以脱机计算出平均延迟最小的算法。 http://www.bupttc.com

  22. 孤立的路由选择(Hot-potato算法) • 策略: Min ( 等待队列长度 + 到目的地址偏移值 )。 • 特点:尽快转发,只根据结点本身的状态决定路由选择。 • 优点:对网络负载的变化适应性好。 • 缺点:对拓扑变化适应不好,易产生“兜圈子” M N L、M、N、P的 偏移分别为:0,3,6,9, K收到的分组应转发给L L P 结点K 来自X http://www.bupttc.com

  23. 距离矢量路由选择(distance vector routing)RIP • 动态路由选择算法,每个结点周期性地和周围结点交换网络状态信息,根据新的状态更新路由。 • 策略:每个结点i保持2个向量:时延向量Di、后继结点向量Sj。 Di = [ dij ] dij 表示结点i到结点j的最小时延的当前值 Sj = [ sij ] sij 表示结点i到结点j的当前最小时延路由的后继结点 • 周期性地测试延迟,交换延迟清单,修改向量值:dij = Min ( dik + dkj ) • sij = k, 使( dik + dkj )最小的k http://www.bupttc.com

  24. 距离矢量路由选择示例 A I H K SJ DJ A 8 A 0 24 20 21 36 31 28 12 20 A B A B C D 25 18 36 C 19 28 I 40 27 8 24 F G D 20 H E H 7 30 22 E 14 17 I 20 19 40 F I 23 30 I J K L 18 31 6 31 18 H G H H 20 0 19 12 17 I 21 0 14 22 10 I 9 11 7 10 -- J 0 24 22 22 0 6 K K K 29 33 9 9 15 L JA=8 JI=10 JH=12 JK=6 J 的路由表 http://www.bupttc.com

  25. 距离矢量路由选择  优点:对网络负载和拓扑的变化适应性都很好  问题:(1) 链路时延采用等待队列+常数偏移来计算, 没有考虑数据率或分组长度的不同,不够准确 (2) 分组进入结点时,要经过处理才进入等待队列 (3) 等待队列的瞬时值不能代表平均时延 (4) 无穷计算问题 (5) 周期性的状态信息交换极大地增加了网络中的业务开销 http://www.bupttc.com

  26. B C D A 链路AB故障 1 2 3 开始 3 2 3 1次交换信息之后 3 4 3 2次交换信息之后 5 4 5 3次交换信息之后 4次交换信息之后 5 6 5 5次交换信息之后 7 6 7 无穷计算问题  对好消息(增加链路)传播很快, 对坏消息(链路失效)传播时间可 能无限 B C D A 新增加结点A 开始    1   1次交换信息之后 1 2  2次交换信息之后 3次交换信息之后 1 2 3 http://www.bupttc.com

  27. B C D A 链路AB故障 1 2 3 开始  2 3 1次交换信息之后   3 2次交换信息之后   3次交换信息之后 无穷计算问题的解决  水平分割算法:不向最短路径上的后继结点报告到某结点的距离 (设置为 ) http://www.bupttc.com

  28. 思考:在下图,如果CD断,将发生什么情况? A B C D http://www.bupttc.com

  29. 链路状态路由选择(link state routing) • 1979年后,距离矢量算法被链路状态路由选择代替。原因: • 延迟的度量 • 消耗过多的时间用于记录信息。 • 目前比较常见的链路状态路由选择: • OSPF(open shortest path first):开放最短路径优先 • IS-IS(intermediate system –intermediate system):中间系统至中间系统 http://www.bupttc.com

  30. 链路状态路由选择的操作 • 发现它的邻居结点,并知道其网络地址。 • 测量到各邻居结点的延迟或开销。 • 组装一个分组以告知它刚知道的所有信息。 • 将这个分组发送给所有其他路由器。 • 计算到其他每个路由器的最短路径。 http://www.bupttc.com

  31. B 2 C 4 3 A 6 1 。。。。。。 5 7 E 8 F http://www.bupttc.com

  32. 确认标志 发送标志 http://www.bupttc.com

  33. 分级路由选择 • 当网络增大的时候,路由器中的选择表会按比例增大,因此,选择分级路由选择。 • N个路由器的子网中,最优级数为lnN,其中每个路由器需要的表项总数为elnN。 http://www.bupttc.com

  34. 移动主机的路由选择 • 永久性的主方位(home location),永久性的主地址。 • 外地代理(foreign agent),主代理(home agent) • 登录过程: • 外地代理广播分组,宣布自己的地址 • 登录后,给出永久地址、当前数据链路层地址、安全信息 • 外地代理与主代理联系,发送主机信息,确认主机。 • 主代理检查安全信息 • 外地代理得到主代理确认后,开出一个表项,通知移动主机已经登录完成。 http://www.bupttc.com

  35. 分组的转发过程 1、分组被送入移动主机的本地地址 发送者 主代理 3、把外地代理的地址给发送者 4、随后的分组被转给外地代理 2、分组被转给外地代理 隧道 外地代理 http://www.bupttc.com

  36. 广播路由选择 • 源端发送分组到每一个目的端。 • 扩散 • 多目的路由选择(multidestination routing) • 生成树(spanning tree) • 逆向路径转发(reverse path forwarding) http://www.bupttc.com

  37. 多点播送路由选择(multicast routing) • 生成树:修剪过的生成树。 • 对于距离矢量路由选择算法,采用逆向路由转发。发送PRUNE消息给发送者。 • 核心基本树(core-base tree):先将消息发给核心,然后有核心沿生成树发给组成员。 http://www.bupttc.com

More Related