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. Windows Server 2008 R2文件服务器升级到Windows Server 2016

    Windows Server 2008 R2文件服务器升级到Windows Server 2016 用户单位有2台Windows Server 2008 R2的文件服务器,已经加入到域.域服务器另有两 ...

  2. word2vec 构建中文词向量

    词向量作为文本的基本结构——词的模型,以其优越的性能,受到自然语言处理领域研究人员的青睐.良好的词向量可以达到语义相近的词在词向量空间里聚集在一起,这对后续的文本分类,文本聚类等等操作提供了便利,本文 ...

  3. Airless Pump Bottle For The Rise Of Cosmetic Packaging Solutions

    Airless Pump Bottle    are used in the rise of cosmetic packaging solutions. According to the suppli ...

  4. PAT T1002 Business

    背包问题,把任务按截止日期排序,再按背包问题处理~ #include<bits/stdc++.h> using namespace std; ; struct node { int c; ...

  5. Netcat - 网络工具中的瑞士军刀

    nc的一些小应用,慢更新.... 1.一个简单的聊天工具,Client1和Client2之间,Client1安装了nc,监听8888端口,Client2用telnet Client1的8888端口即可 ...

  6. Intellij IDEA 快捷键 与 环境设置

    快捷键 Ctrl+Shift+F10,运行 Ctrl+Alt+O,导入包,自动修正 Ctrl+Alt+L,格式化代码 Ctrl+Y,删除一整行 Alt + Insert,生成get/set方法 Ctr ...

  7. Android音频录制MediaRecorder之简易的录音软件实现代码(转)

    原文:http://www.jb51.net/article/46182.htm Android音频录制MediaRecorder之简易的录音软件实现代码 这篇文章主要介绍了Android音频录制Me ...

  8. 「Luogu P3078 [USACO13MAR]扑克牌型Poker Hands」

    本题有\(O(N)\)的优秀做法,但是因为在考场上不一定能想到,就来分享一种\(O(N\log_2N)\)的做法.虽然有点慢,但是可以过. 前置芝士 线段树:提高组及以上必备内容,不会的同学可以学习一 ...

  9. [原]JointJS流程图

    最近项目上需要用流程图来做问题定界分析,之前有同事用jsPlumb做过,但是阅读代码后觉得比较麻烦,所以自己又找了一圈,找到一个叫Dagre-D3的开源类库,画出来的效果如下图,Dagre-D3最大的 ...

  10. R-CNN算法中NMS的具体做法

    假设有20类,2000个建议框,最后输出向量维数2000*20,则每列对应一类,一行是各个建议框的得分,NMS算法步骤如下: ① 对2000×20维矩阵中每列按从大到小进行排序: ② 从每列最大的得分 ...