1、背景

在网络中,链路故障的发生在所难免,为了降低故障带来的影响,就需要重新路由,将数据传输到合适的链路上。当因为链路故障发生处的不同,也有不同的解决方法。

AS(Autonomous System)内发生的故障如下图:

这种情况有现有的如下几种重路由方案:

上述的几种重路由可以达到亚秒级的重路由

如上几种重路由的方法有两个共同点:

  • 快速检测:硬件信号通告;
  • 快速恢复:使用预先计算的备份链路,而不是重新来计算链路;

2、要解决的问题

当故障发生在AS外时,如下图所示:

现有也有几种解决方案:

SWIFT是优化了BGP的解决方案,SWIFT为了缩短收敛时间,利用一些已更新的BGP更新(例如,它们共享相同的AS-PATH)这一事实,从收到的一些BGP更新中预测了整个远程失败的程度。但是,SWIFT的基本问题是,在相应的数据平面故障后,而第一次BGP更新可能需要O(分钟)才能传播。

综上,现有得方案在解决远程故障是很缓慢的,所需要的时间是分钟级,主要原因是要靠控制面来驱动重路由。

3、Blink

Blink:一个数据驱动的快速重路由框架,并基于可编程数据平面构建,目的为了实现远程故障亚秒级的收敛。

Blink利用TCP事件信号直接在数据平面上检测故障的发生。

TCP流在中断时表现的可预测的行为:在时间上按指数间隔反复传输相同的报文,而当多个流混合时,TCP流中断的重传行为变会变成明显的故障特征信号。

4、关键挑战

  • 1.数据平面的资源有限。无法跟踪所有的TCP应用流,如果采用随机采样,那常常会导致跟踪到无用流,例如传输很少的流;
  • 2.如果只发生暂时的拥塞,对任何重传的报文进行重新路由,那么可能会导致适得其反的流量变化,需要区分短暂的拥塞和链路故障。
  • 3.数据平面的故障信号并不提供发生故障的根本原因,如果在重新路由是不协调的路由决策,那么很容易导致一些问题的发生,例如:路由黑洞,环路,振荡。

5、解决思路

  • 1.使用流抉择器来解决跟踪流问题,该抉择器会自动驱逐不活动的流并将其替换成活动的流。因为活跃的流几乎会立即重传,而不活动的流可能根本不会重传。
  • 2.即使没有网络故障,短暂的拥塞也会导致TCP重传。Blink系统主要对破坏性事件作出反应,不受噪声和常规协议的影响。如下图所示
  • 3.随着TCP重传数量随着时间逐步减小,Blink系统在第一个TCP重传过程中,捕获到故障信号。
  • 数据平面重路由对于转发的正确性,只能通过尝试和观察来判断重路由的正确性,以数据驱动的方式来备份下一跳,验证流量是否恢复。

附录

论文地址:https://www.usenix.org/conference/nsdi19/presentation/holterbach
github源码地址:https://github.com/nsg-ethz/Blink

论文阅读:Blink-Fast Connectivity Recovery Entirely in the Data Plane的更多相关文章

  1. [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximati

    [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximation 本文结构 解决问题 主要贡献 主要 ...

  2. 【CV论文阅读】 Fast RCNN + SGD笔记

    Fast RCNN的结构: 先从这幅图解释FAST RCNN的结构.首先,FAST RCNN的输入是包含两部分,image以及region proposal(在论文中叫做region of inter ...

  3. 论文阅读:Fast, Scalable, and Programmable Packet Scheduler in Hardware

    摘要: 随着链接速度的提高和CPU扩展速度的放缓,软件中的数据包调度会导致较低的精度和较高的CPU利用率. 通过将数据包调度卸载到诸如NIC之类的硬件,可以潜在地克服这些缺点.然而为了保持软件分组调度 ...

  4. 论文阅读:Camdoop: Exploiting In-network Aggregation for Big Data Applications

    摘要: 大公司与中小型企业每天都在批处理作业和实时应用程序中处理大量数据,这会产生大量的网络流量,而使用传统的的网络基础架构则很难支持.为了解决这个问题已经提出了几种新颖的网络拓扑,旨在增加企业集群中 ...

  5. Fast R-CNN论文阅读笔记

    论文地址:Fast R-CNN R-CNN的缺陷 (1)训练是一个多级的流水线.R-CNN首先在候选目标上微调一个卷积神经网络,使用log loss.然后使用SVMs充当目标分类器,以取代softma ...

  6. YOLO 论文阅读

    YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...

  7. 快速人体姿态估计:CVPR2019论文阅读

    快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...

  8. [论文阅读] ALM-HCS(高对比场景自适应对数映射)

    [论文阅读] ALM-HCS(高对比场景自适应对数映射) 文章: Adaptive Logarithmic Mapping for Displaying High Contrast Scenes 1. ...

  9. 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)

    白翔的CRNN论文阅读 1.  论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...

随机推荐

  1. Monty Hall Problem (三门问题)

    最近有点忙,没怎么写程序...今天突然想起以前看到过的一个问题-三门问题,十分想用程序来模拟一下,于是实在忍不住了就模拟了这个游戏的实验,通过写程序更加加深了我对这个问题的理解,期间也查找了各种相关资 ...

  2. Python 基础之正则之二 匹配分组,正则相关函数及表达式修饰符

    四.匹配分组   [元字符] 分组符号 a|b   匹配字符a 或 字符b  (如果两个当中有重合部分,把更长的那个放前面) (ab)   匹配括号内的表达式 ,将()作为一个分组 num  引用分组 ...

  3. 设计模式课程 设计模式精讲 3-10 里氏替换原则coding

    1 代码演练 1.1 继承关系判别(是否是真正意义的继承) 1.2 入参控制 1.3 出参控制 1 代码演练 1.1 继承关系判别(是否是真正意义的继承)(其实我觉得这个例子有点牵强) 1.1.1 反 ...

  4. PAT A1131 Subway Map

    dfs,选择最优路径并输出~ 这道题难度非常炸裂,要求完完整整自己推一遍,DFS才算过关!思路:一遍dfs,过程中要维护两个变量,minCnt 中途停靠最少的站.minTransfer需要换成的最少次 ...

  5. linux下后台执行shell脚本nohup

    (一)使用nohup后台执行脚本 脚本执行结果记录到nohup.out文件中 (二)使用&后台执行脚本 使用&符号在后台执行命令或脚本后,如果你退出登录,这个命令就会被自动终止掉

  6. 【PAT甲级】1038 Recover the Smallest Number (30 分)

    题意: 输入一个正整数N(<=10000),接下来输入N个字符串,每个字符串包括至多8个字符,均为数字0~9.输出由这些字符串连接而成的最小数字(不输出前导零). trick: 数据点0只包含没 ...

  7. bfc作用

    作用 1.清浮动 2.不被浮动元素覆盖 3.阻止父子margin传递 触发条件: 1.float不为none 2.position不为static或relative 3.display:inline- ...

  8. 嵊州普及Day6T3

    题意:n个点,对于q个询问,有t秒及一个矩形的范围.在此矩形内的数每秒加1,若等于c,则下一秒变为0. 思路:t可能很大,%c+1就可以了.然后一个一个加起来就可以了. 见代码: #include&l ...

  9. python之对象基础

    目录 面向对象 1. 面向过程编程的优缺点 2. 面向对象编程的优缺点 3. 类 类和函数的区别 什么是类 现实世界中先有对象,后有类 python中先有类,再有对象 对象 如何实例化一个对象 对象属 ...

  10. 关于Redis 分布式 微服务 集群Cluster

    一:Redis 1,redis是一个高性能的键值对存储方式的数据库,同时还提供list,set,zset,hash等数据结构的存储. 2,Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集 ...