1 / 75

路由新进展

路由新进展. 罗忠文 http://xgxy.cug.edu.cn/rjgcx/lzw 内容取自 UCB 的教程 24035234@qq.com. 尝试本科生研究 ?. Work at cutting edge of EECS 课外见教授 , 研究生 看你是否享受研究生 将你的 résumé 写得更有竞争力. Prof. Armando Fox 将有一个非正式的报告 “ 开始本科研究 ”. 路由三位一体( Holy Trinity ) : LS, DV, PV. 通常是一个完整的故事 但我们知道如何做得更好 一些现在部署的技巧 一些未部署的研究建议

ata
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. 路由新进展 罗忠文 http://xgxy.cug.edu.cn/rjgcx/lzw 内容取自UCB的教程 24035234@qq.com

  2. 尝试本科生研究? • Work at cutting edge of EECS • 课外见教授, 研究生 • 看你是否享受研究生 • 将你的résumé写得更有竞争力 Prof. Armando Fox 将有一个非正式的报告“开始本科研究”

  3. 路由三位一体(Holy Trinity): LS, DV, PV • 通常是一个完整的故事 • 但我们知道如何做得更好 • 一些现在部署的技巧 • 一些未部署的研究建议 • 这是我们今天要谈论的问题…..

  4. 今天的另一目的 • EE122 (CS version)算法是空虚的(vacuous) • AIMD 是智能深度的高点 (ugh) • 今天描述的算法并非显然 • 算法简单, 但其特性非显然 • 你将证明两个结果(作为课程练习) • 5分钟, 以小组为单位, 试着给出推导 • 我将给出证明的轮廓

  5. 路由挑战: 弹性 • 基本路由算法依赖于长时一致性或者全局收敛以确保传输 • LS: 路由器需要有对网络的相同图景 • PV/DV: 如果算法还未收敛,可能循环 • 随着网络增长, 这变得困难并要花更长时间 • 需要一致/收敛 和时间表! • 失效检测和恢复间有滞后 • 滞后是获得99.999%可靠性的最大障碍

  6. 今天用到的技术手段(Hacks) • 预配置备份路径 • 当链路失效时, 路由器有一个备份路由可用 • 对于单个失效非常有帮助 • 对于多点失效保护有限 • 没有系统方案 • ECMP: 等费用多路径(Equal-Cost Multipath) • 与备份类似,但可用性更窄 • 在几个“最短路径”间选择

  7. 今天的解决方案 • 多路径 (one slide) • 失效携带包 • 沿有向无环路由(Routing-along-DAGs) • 防止策略震荡 (if time)

  8. 多路径路由 • 多路径: • 为每个源-目标对,提供多于一条路径 • 允许端点从多个里面选择一个 • 优点: 如果一条路径无法用,可使用另一条 • 缺点: 当端结点检测到失效时,延时 (RTT) • 由于端到端的考虑,因此绝对需要 • 但不是基础范型转变 • 部分解决方案,但还需要更多可靠路由

  9. 基本问题 在链路失效后,我们能否完全消除“重新收敛”的需要? 即, 我们能否容忍失效而没有损失?

  10. 携带失效包Failure-Carrying Packets(FCP)

  11. FCP 方案: 第1步 • 确保所有路由器对网络有一致的视图 • 但此视图可能过时 • 如果不要求时间线,一致性比较容易 • 使用可靠泛滥 • 每个映射(map)拥有序列号 • 路由器将此数写到包头中,从而包根据相同的“映射map”来路由 • 路由器可对此记数器减一, 不增加它 • 最终所有路由器对路由包使用相同的图 • 此获得了一致, 但不是时间线….

  12. FCP方案: 第2步 • 在包中携带失效信息! • 使用此信息来“修复fix”本地映射 • 当包到达,并且路径计算出的一致状态中下一跳已经挂掉, 将失效信息插入到包头中 • 然后假定该链路挂掉,计算新的路径 • 如果失效继续, 它将出现在下次的一致网络图景中 • 然后就不需要在包头中了

  13. 示例: FCP路由 B D IP packet A F source destination C E

  14. (D,F) (C,E) (C,E) IP packet IP packet 示例: FCP路由 B D IP packet A F source destination C E

  15. 课堂练习: 证明此工作 • 激发一组讨论,说明为什么这保证了连接性 • 在什么情况下此保证有效?

  16. 证明要点(Keys to Proof) • 死端: 只要映射加失效还有连接,无死端 • 环路: 假定环路. 环路上的结点都共享相同的 “一致”映射加上一组在包头中的失效. 因此,他们计算相同的路径. 矛盾

  17. 正确性的条件 • 考虑包发送前直到TTL时间到从而包失效,从上次一致映射以来的一组网络变化 • 如果所有网络状态的交汇处,在变化过程中都是连接的,那么FCP将发送包

  18. FCP的特性 • 确保包发送 • 只要在失效过程中,路径存在 • 主要概念改变 • 不再仅仅依赖于协议来保持状态一致 • 携带在包中的信息确保最终路由计算一致 • 此做法将在下一个设计中重现…. • Ion’s Stoica’s thesis!

  19. OSPF-overhead FCP-lossrate 结果: OSPF vs. FCP • 和FCP不同, OSPF无法同时提供低扰动和高可用性 OSPF-lossrate Overhead [msgs/sec per link]

  20. Bkup-state Bkup-lossrate FCP-state FCP-lossrate 结果: 路径备份Backup-paths vs. FCP • 和FCP不同, 路径备份(Backup-paths)无法同时提供低状态和丢包率

  21. FCP的问题 • 需要改变包头 • 从而包头可能变长 • 需要快速重新计算路由 • 可以预计算公共情形, 但最差情况计算很不好 • 没有处理流量工程 • 哪是什么?

  22. 流量工程Traffic Engineering (TE) • 连接性是必要的,但不充分 • 还需要提供合适的服务 • 需要路径上的连接不要过载 • 拥塞控制降低了丢包率, 但需要通过均衡负载来给连接提供合适的带宽 • 流量工程是在网络上分布负载的一种方式 • 即, 并非所有的包都走“最短路径”

  23. 5 Minute Break Questions Before We Proceed?

  24. 沿有向无环图的路由Routing Along DAGs(RAD)

  25. 避免重新计算: Take II • 不用进行全局重新计算来从失效中恢复 • 支持局部自适应流量工程 • 包头没有任何改变等 • 或需要主要立即(on-the-fly)路由重算

  26. 背景 • 仅关注单个目标的路由表 • 可以是一个前缀,或者单个地址 • 今天我们对指定路径计算路径 • 存在从每个源到这个目标路径 • 当路径损坏, 需要重算路径 • 我们一切麻烦的根源!

  27. 我们的方案: 改变模式 路由计算从源到目的的路径 如果链路失效, 所有受影响的路径必须重算 从路径到 有向无环图 (DAG) Path DAG X X • 包可在任何 DAG出口链路发送 • 每次失败后不用重新进行全局计算

  28. DAG特性 • 确保无环 • 对于失效恢复,本地决策 • 自适应负载平衡 X X 0.7 0.3

  29. 负载平衡 • 采用本地决策: • 选择使用哪个出口链路 • 决定如何在这些链路间分发负载 • 发回(Push back)当所有出口链路都阻塞时 • 在入口链路向上游结点发送拥塞信号 • 理论: • 当所有流量流向单个目标时,本地负载平衡产生最优throughput • 仿真: • 在一般设置下,本地负载平衡挖最优

  30. 基于DAG的路由 • 本质上是一个“备份路径”的原则范例 • 能容忍很多失效 • 可扩展 • 容易理解和管理

  31. 计算DAG • DAG当且仅当链路方向遵循总的顺序 • 为目标v计算DAG是简单的: • 基本上是最短路径计算 • 和打破平局一致的方法 • 按d.i排序,其中d是距离而i是标号

  32. 关于连接性如何? • 多出口链路改进连接性 • 但RAD能给出“完美的”的连接性吗? • 如果所有出口链路失效,该结点断开 • 即使其下的图还是连接的 • 如何修复此?

  33. 链接逆转 • 如果所有向外链路失效,逆转传入链路为传出 X X X X

  34. RAD算法 • 当包到达, 在任何出口链路发出 • 当出口链路失效 (或逆转) • 如果存在其他出口链路, 什么都不做 • 如果不存在其他出口链路,逆转所有入口链路 • 即, 将它们变成出口

  35. 链路反转特性 • 确保连接性! • 如果图是连接的, 链路反转过程将恢复DAG中的连接性 • 这在无线文献中已经知道 • 现在被应用于有线网络中

  36. 课堂练习: 证明此工作 • 开发一组争议,为何此保证连接性 • 在何种环境下,确保成立?

  37. 证明要点 • 要求: 算法永远不要产生死端 • 如果有链路, 就使用它 • 环路: • 假定网络开始时没有环路 • (即, 我们有一个DAG) • 链路逆转不会产生一个环路 • 因为反转结点不会是环路的一部分 • 因此, 拓朴永远不会在有环存在的状态 • 我们是否已经完成证明了呢?

  38. 否, 链路反转可能不终结 • 必须证明拓朴到达固定点 • 如果底下的图是连接的 • 没有到达固定点意味着反转结点会永远继续 • 因为网络大小有限, 此过程必然在结点反转中循环 • 我们如何证明这是不可能的?

  39. 事实1 • 如果结点有到目标的路径,那么它将不会反转自己. • 结论: 有到达目标的路径的结点集合是非降的

  40. 事实2 • 一个结点做第二次链路反转,其所有邻居也必然反转其链路. • 因此,做反转的结点集合是扩展集 • 只能重新反转所有反转结点,如果过程到达网络边界 • 但一旦此过程碰到的结点连接到源,从而结束. QED.

  41. RAD小结 • 本地响应导致: • 确保连接性 • 接近最优负载平衡 • 可以被用于L2 和/或 L3 • 不改变包头

  42. 为什么RAD是不够的? • 链路反转是在“控制面” • 需要花时间计算 • 包在此过程中可能丢失… • 和FCP路由重新计算完全一样的问题 • 工作于控制面速度,而非数据面速度 • 有何建议?

  43. 数据驱动的连接性 (DDC) • 按行为来定义链路反转特性,从而能以数据速度发生 • 事件: 包以“反”方向到达 • 行为: 将此链路从出口集中移去 • 可能行为: 所有端口“弹回”包 • 可以在硬件层做 • 今天的交换机就是这样做的….

  44. 策略争议解决方案Policy Dispute Resolution

  45. 问题: 策略振荡 • 策略振荡是: • 固有的 • 很难预先确定 • 涉及域策略的微妙的相互作用 • 正确性不成问题, 但偏好有冲突 • 因此,不能只是定义它们 • 需要新的方案

  46. 目标 • 不泄露任何ISP策略 • 分布式, 在线争议检测和解决 • 路由器会选择最偏好的路由,如果不存在引起振荡的争议 • 考虑到瞬态振荡,不要永久把路拉入黑名单

  47. 由于策略产生的固有振荡 1 2 3 依赖于策略的相互作用 “1”到达“0”更偏好 “1 3 0”而非 “1 0” 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0 47

  48. 由于策略产生的固有振荡 1 2 3 初始: 结点 “1”, “2”, 和 “3” 仅知道到 “0”的最短路径 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0 48

  49. 由于策略产生的固有振荡 1 2 3 “1” 向“2”公告其路径“1 0” 1 3 0 1 0 advertise: 1 0 0 2 1 0 2 0 3 2 0 3 0 49

  50. 由于策略产生的固有振荡 1 2 3 1 3 0 1 0 0 2 1 0 2 0 3 2 0 3 0 50

More Related