高可靠性——TSN 802.1Qci协议介绍
TSN协议族根据实现功能可以分为:定时与同步、延时、可靠性和资源管理四个类别,往期的时间同步——TSN协议802.1AS介绍一文向大家介绍了定时与同步功能的核心——802.1AS协议,而在基于TSN工具的时间同步分析(七种延时,一次厘清)一文中讨论了评价时间同步精度的七个指标,本文则将介绍实现可靠性功能中的802.1Qci协议。
简介
IEEE 802.1 Qci全称Per-Stream Filtering and Policing(以下使用简称PSFP),即对每个数据流采取过滤和控制策略,以确保输入流量符合规范,从而避免由故障或恶意攻击(如Dos攻击)引起的异常流量问题。本文将通过分析异常流量问题,阐释可行的过滤控制策略,以及为什么Qci推荐使用对每个数据流(Per-stream)的过滤控制策略,最后介绍PSFP的基本工作过程。
异常流量问题
异常流量是指发送端或交换机发送了过多流量,或是在错误的时间发送流量,这样就占用了其他流量的带宽,导致这些流量的带宽和时延都无法保证,甚至会影响到整个网络。
下图展示了基本的异常流量现象,图中T1、T2是两个发送节点,L1、L2、L3作为三个接收节点,B1、B2是两个Bridge设备,红色、绿色分别表示T1、T2发送的数据流;这里T1发送的数据流超出其规定的带宽,导致同样从B1流出的T2数据流受到影响,使得接收节点L3接收数据的带宽和延迟要求没有满足。
为了解决上述的异常流量现象,可以在异常流量进入Bridge设备时采取过滤和控制策略,如下图所示:
图中,在B1输入端口处引入过滤器,过滤器会对经过的异常流量采取限制措施,使得在B1输出端口处各流量均能满足其带宽要求。
过滤和控制策略
在对流量的限制上,有多种过滤和控制策略,按照过滤方式可以分为:
- 对单个流量过滤(以下简称单流)
- 对单个流量类(Traffic class)过滤(以下简称单类)
按照控制方式可以分为:
- 限流
- 阻断
组合起来就有四种过滤和控制策略,接下来分析这些策略。需要注意的是,过滤和控制都是针对有带宽要求的流量,即不适用于BE(Best Effort)数据流。
1. 单类+限流
如图所示,每个交换节点的输入端口均设置了单类过滤器,在输出端口设置有基于信用的整型器(CBS);图中的红、蓝、绿三种颜色表示的流量均属于同一流量类,因此,在B1的单类过滤器处,由于红色流量发生异常,导致总的流量类带宽为35+20超出40Mbit/s的限额,从而触发限流控制策略,使得红色流量实际输出带宽为30Mbit/s,蓝色流量实际输出带宽变为10Mbit/s;在B2输入端口处,红、绿、蓝流量均满足了单类过滤器的要求,但在输出端口处,红、绿流量之和为30+55超出了75Mbit/s整型要求,使得绿色流量的最终输出变为45Mbit/s。
由此可以看出,单类+限流的过滤控制策略不能隔绝异常流量的影响,在上图中蓝、绿流量自身没有异常但最终仍受到红色异常流量的影响。
2. 单类+阻断
如图所示,通过改变控制方式为阻断,可以确保绿色流量的带宽要求,但蓝色流量因为与红色流量同属一个流量类,因此也被阻断。
再考虑另一情况:
同样是单类+阻断的过滤控制,但是仅红色流量异常变为30Mbit/s,而蓝色流量此时没有数据发送,所以对于B1的单类过滤器无法检测出红色流量的异常;在B2输出端口,由于CBS限制使得红色流量变为25Mbit/s,而绿色流量变为50Mbit/s,由此可以看出单类检测会存在不能彻底检测异常流量的情况,也就无法隔绝异常流量对其他流量的影响。
3. 单流+限流
如图所示,采用单流+限流的方式,成功限制了异常流量,并且其他流量没有受到影响;但是,由于采用限流的方式,这意味着存在选择性丢包的情况,即数据可能发生错误,而接收端会认为接收到的是正常的流量。
4. 单流+阻断
最后是单流+阻断的过滤控制策略,此时,仅有出现异常的流量受到影响,其他流量正常传输。
从以上四种过滤控制策略的对比可以看出,单类过滤仅需要实现更少的过滤器,但无法保证正常流量的带宽和延时要求;与之相对的,单流过滤可以确保仅异常流量受到控制,其他正常流量不受影响,但需要对每个流量都要实现单独的过滤器,这无疑需要更多开销;阻断控制相比限流控制更直接也更安全,一方面确保恶意流量无法进入,另一方面确保流入的数据是完整的。
PSFP支持以上四种过滤控制方式,但推荐采用的是单流过滤和阻断控制的组合,因为此种方式既隔绝异常流量、而不影响网络中其他流量,又能最大程度地保障数据的完整性。
PSFP工作过程
PSFP由图中Stream Filters、Stream Gates和Flow Meters三个表配合完成,下面就来简要介绍它们:
- Stream Filters,即流过滤器表,每个表项表示某个流对应的过滤器,与下文中的特定门控(Gate)和流量计(Meter)关联;
- Stream Gates,即流门控表,每个表项表示对某个流采取的门控措施(如,门控状态为关表示禁止对应流量流入);
- Flow Meters,即流量计表,每个表项表示对某个流的流量统计,当该流量超过了限制带宽则采取限流或阻断的控制。
下面介绍PSFP的基本工作流程:首先流过滤器根据其中定义的流标识(Stream ID)、优先级(Priority)信息,识别出流量是否遵循该过滤器,若由该过滤器控制,根据对应的门控决定是否允许流量流入,若允许流入,则由流量计中参数判断是否超出限额,若超出限额,根据配置决定采用限流还是阻断。
再来考虑PSFP的基本应用场景:
- 对于未知来源的流量,PSFP通过设置门控关闭,阻止可疑流量流入;
- 对于已知来源的异常流量,这里的异常表现不限于带宽(带宽超出预留带宽),还包括如:最大数据服务单元(SDU)长度超出要求等,PSFP可以选择阻断或限流;
由此,PSFP通过对入站流量的过滤和控制策略,提高了网络的可靠性。
结语
以上就是本次对802.1Qci协议介绍的全部内容了,总的来说,Qci 提供限制或阻断异常流量的功能,由此提升整体网络的健壮性和安全性。后续会带来更多TSN协议的解读,敬请期待。
此外,北汇信息提供TSN技术Workshop,其中对行业现状及趋势分析、根据应用场景提出TSN网络架构解决方案等内容,将有效地帮助客户迎接下一代E/E架构中时间敏感网络带来的挑战。
北汇信息还是TSN Systems在中国的独家合作伙伴,借助TSN Systems公司专业的TSN网络设备及分析软件,能够为下一代E/E架构中时间敏感网络提供系统级测试解决方案,包括系统设计测试、系统性能测试以及系统鲁棒性测试等。
参考文档:
IEEE Std 802.1Qci-2017
Ingress Policing IEEE 802.1 TSN Plenary November 10-15, 2013 – Dallas, USA
Time-Sensitive Networking (TSN) Profiles https://www.ieee802.org/1/tsn
高可靠性——TSN 802.1Qci协议介绍的更多相关文章
- 基于TSN 802.1AS协议的时间同步分析(7种延时,1次厘清)
前言 往期的时间同步--802.1AS协议介绍一文向大家介绍了802.1AS协议的基本内容,基于时间同步协议就能实现主节点与各从节点的时间同步,但是如何评价时间同步的优劣呢?这就需要我们通过一些时间同 ...
- RTP与RTCP协议介绍(转载)
RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完 ...
- TCP/IP 协议介绍
转自http://blog.jobbole.com/104886/ 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应 ...
- 802.11协议帧格式、Wi-Fi连接交互过程、无线破解入门研究
相关学习资料 Linux黑客大曝光: 第8章 无线网络 无线网络安全攻防实战进阶 无线网络安全 黑客大曝光 第2版 http://zh.wikipedia.org/wiki/IEEE_802.11 h ...
- RTP与RTCP协议介绍
转自:http://zhangjunhd.blog.51cto.com/113473/25481/ 本文主要介绍RTP与RTCP协议. author: ZJ 06-11-17 Blog: [url ...
- Python基础教程之udp和tcp协议介绍
Python基础教程之udp和tcp协议介绍 UDP介绍 UDP --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但 ...
- 第二章 ZAB协议介绍
ZAB ( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)是zookeeper数据一致性的核心算法. ZAB 协议并不像 Paxos 算法那样,是一种 ...
- [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
[转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) http://blog.csdn.net/tttyd/article/details/12032357 RTP ...
- kafka系列四、kafka架构原理、高可靠性存储分析及配置优化
一.概述 Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cl ...
随机推荐
- layui 如果调用 from 内嵌入的 iframe子页面方法
(人笨,占时想法的办法,不要骂,不要骂,怕了怕了,想到别的会来改的) 父页面; <%@ page language="java" contentType="text ...
- halcon基础算子介绍(窗口创建,算子运行时长,是否启用更新函数)
前言 halcon有有大约1500个算子,我总结一些简单大家用得到的算子,比如创建窗口的方式有3种,接下来结束这方式,及其异同点等! 1.窗口创建的三种方式 1.1使用dev_open_window算 ...
- springboot上传文件异常解决方案
配置文件加入: #配置文件传输 spring.servlet.multipart.enabled =true spring.servlet.multipart.file-size-threshold ...
- 【状压dp】Hamiton路径
描述 给定一张 n(n≤20) 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径. Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点 ...
- Linux下脚本文件第一行的作用
Linux下脚本文件第一行的作用 在Linux/Unix系统中,你可以在脚本hello.py顶部添加以下命令让Python脚本可以像SHELL脚本一样可直接执行: #! /usr/bin/env py ...
- CUDA计算矩阵相乘
1.最简单的 kernel 函数 __global__ void MatrixMulKernel( float* Md, float* Nd, float* Pd, int Width) { int ...
- Java 好用的东西
Java自带的一些好用的东西: 求一个数的每一位:(toCharArray) int i = 10;char[] s = String.valueOf(i).toCharArray(); 十进制转二进 ...
- mysql—MySQL数据库中10位或13位时间戳和标准时间相互转换
1.字符串时间转10位时间戳 select FLOOR(unix_timestamp(create_time)) from page; #create_time为字段名 page为表名 eg:sele ...
- Linux—Linux系统目录结构
登录系统后,在当前命令窗口下输入命令: ls / 你会看到如下图所示: 树状目录结构: 以下是对这些目录的解释: /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boo ...
- 8.7 进程间的通讯:管道、消息队列、共享内存、信号量、信号、Socket
进程间的通讯 进程间为什么需要通讯? 共享数据.数据传输.消息通知.进程控制 进程间的通讯有哪些类型? 首先,联系前面讲过的知识,进程之间的用户地址空间是相互独立的,不能进行互相访问,但是,内核空间却 ...