PFC原理

原理:
FC(IEEE 802.3X协议)缺点:一旦链路被暂停,发送方就不能再发送任何数据包,如果是因为某些优先级较低的数据流引发的暂停,结果却让该链路上其他更高优先级的数据流也一起被暂停了,其实是得不偿失的。它虽然也能达到无丢包的要求,但它会阻止一条链路上的所有流量,它会暂停整条链路。

基于优先级的流量控制(PFC)是对暂停机制的一种增强。

PFC在基础流控IEEE 802.3X基础上进行扩展,允许在一条以太网链路上创建8个虚拟通道并为每条虚拟通道指定一个 IEEE 802.1P的相应优先级允许单独暂停和重启其中任意一条虚拟通道,同时允许其它虚拟通道的流量无中断通过。这一方法使网络能够为单个虚拟链路创建无丢包类别的服务,使其能够与同一接口上的其它流量类型共存。

PFC将流控的粒度从物理(端口)细化到(8个虚拟通道),分别对应Smart NIC硬件上的8个硬件发送队列(这些队列命名为Traffic Class,分别为TC0,TC1,…,TC7),在RDMA不同的封装协议下,也有不同的映射方式。

PFC将一个端口虚拟为8个(假设)不同优先级的队列,比如T0队列,下游交换机对应的T0队列的输入端口队列长度超过预先设定的门限Xoff时,下游交换机会触发PFC,并向上游交换机发送PAUSE帧,这个暂停帧是让上游交换机的T0队列暂停放数据包,而其它的队列T1–T7都还正常发送数据包。当下游交换机入端口队列长度低于另一设定的门限Xon时,下游交换机的T0队列发送RESUME帧,让上游交换机中的T0队列恢复发送数据包。

上游设备接收到反压信息,会根据反压信息指示停止发送或延迟发送数据,并将数据存储在本地端口 buffer,如果本地端口 buffer 消耗超过阈值,则继续向上游反压,如此一级级反压,直到网络终端设备,从而消除网络节点因拥塞造成的丢包。

按理说,只要在Xoff之前预留足够的缓存空间可以容纳PAUSE帧生效之前到达的数据包就可以保证缓存始终不会溢出,从而实现无损网络。不同优先级的流量暂停发送的时间长度不同。

总结:

1 T0–T7每一个队列都是独立的,互不影响。

2 PFC暂停的是T0–T7中的某一个队列,而不是整个端口。

3 PFC将流控的粒度从物理端口细化到8个虚拟通道。

疑问:

1 以前说的拥塞会触发PFC,PFC会暂停端口。其实不是暂停上游端口,而是暂停某一个发送队列,对吗?还是暂停端口呢?

2 PFC是对链路虚拟还是对端口虚拟,成为8个。PFC暂停的是端口还是虚拟出来的8个队列中的一个队列?

我这样理解对吗?只有一个端口,但是PFC对链路虚拟出来了8个链路。

PFC暂停的时候是暂停端口还是队列呢?

我总结一下,弄成一段话。用自己的话说出来。

3 交换机有几个缓存队列?1个还是2个。一整个队列还是入口队列和出口队列?

4 我现在看到的只有,下游交换机的入口队列,上游的出口队列。上游的出口队列出有PFC功能吗?有。有Xon和Xoff功能吗?不知道。

若是2个队列,一个交换机中,上游端口和下游端口,之间有关系吗?数据包之间的多少有关系吗?

比如说,下游发送PAUSE到上游交换机,上游交换机的出口队列暂停了,出口队列满了,怎么半?这个交换机的入口队列怎么反应的呢?出口会对入口发送暂停信息吗?然后入口在对其上游的交换机发送PAUSE信息吗?

PFC基于优先级的流量控制原理相关推荐

  1. 【RDMA】无损网络和PFC(基于优先级的流量控制)

    目录 前言 一.为什么会产生拥塞 二.PFC如何实现流控 三.PFC死锁 四.利用ECN实现端到端的拥塞控制 五.ECN交互过程 总结 原文:<我们为什么需要RDMA?为什么需要无损网络?> ...

  2. 【RDMA】无损网络和PFC(基于优先级的流量控制)|ECN

    目录 前言 一.为什么会产生拥塞 二.PFC如何实现流控 三.PFC存在的问题 四.利用ECN实现端到端的拥塞控制 五.ECN交互过程 QC-QCN (网络工程师必会) (待续) PFC和ECN对比* ...

  3. tc流量控制原理和实现

    备注:部分内容和图片来源于网络,侵删~ 一.概念 TC (traffic control), linux基于ip的流量限制 二.原理 2.1 原理图 三.规则 3.1 流量控制方式 流量控制包括以下几 ...

  4. tcpdump使用实例——基于ip统计流量

    自由转载 ^_^ 同时请注明原文出处:http://www.cnblogs.com/wangvsa/archive/2012/07/16/2593551.html tcpdump - dump tra ...

  5. 基于Python模仿流量攻击的方法对字节编码攻击

    基于Python模仿流量攻击的方法对字节编码攻击 一.总目标 NIDS 配置:FE(bytes encoding)+ ML(textCNN) 二.PGA(FE knowledge==100%) 2.1 ...

  6. Nachos进程数量限制128、ID号分配以及基于优先级的调度算法详解

    文章目录 写在前面 运行环境配置 最大线程限制 实现可回收的线程ID机制 基于优先级的先来先服务调度算法 修改完毕的nachos我已经上传了,需要的话可以点击这里下载,积分不够可以私信我,CSDN设置 ...

  7. matlab创新开放性实验,基于MATLAB 的自动控制原理实验仿真系统的设计

    基于MATLAB 的自动控制原理实验仿真系统的设计 基于MATLAB 的自动控制原理实验仿真系统的设计 田晴,张茁 (河北联合大学电气工程学院,河北唐山063000) 摘要:MATLAB的图形用户界面 ...

  8. 排班算法 java_【算法】基于优先级的排班算法实现

    场景:在大学的里,有不少社团组织会要组织中的成员值班,当然这个值班时间是学生无课的时间才会被安排值班. 假设现有如下需求:一天中有3个时间段要有人值班,每周周一到周五都要值班,就是共有15个值班段,每 ...

  9. ansible 建 kubernetes 证书签名请求_基于优先级规则、数字证书和信任管理的车联网安全模型...

    1. 背景 1.1 IoV带来的好处 邻近车辆可以通过共享位置,来避免发生车祸; 车辆可以分享位置以及目的地,通过最优化算法,来避免对某条道路得过度使用,协调缓解交通拥堵; 电动汽车可以在电动汽车充电 ...

最新文章

  1. python学习------文件处理
  2. 自定义JSP中的Taglib标签之四自定义标签中的Function函数
  3. (软件工程复习核心重点)第四章总体设计-第三节:启发规则
  4. 前端跨域,nginx反向代理的解决方案
  5. GeoServer注意点
  6. android SpannableString使用详解
  7. HDU 12O3 I NEED A OFFER!
  8. linux如何实现c语言程序,在Linux下如何利用C语言来实现一个Sniffer
  9. 服务器 IIS主机的Rewrite伪静态组件下载与配置
  10. CM安装部署介绍说明-尚硅谷大数据培训
  11. MSDN 离线版 支持VS2015 VS2017 VS2019 (镜像本地安装,非目录替换法)
  12. 电梯plc的io分配_用PLC构成液体混合控制系统IO分配及梯形图编程
  13. 主板检测卡c5_用诊断卡 搞定主板故障
  14. java面向对象怎样建类和对象_java面向对象(上)-- 类与对象、类的封装
  15. 爬虫项目5[爬取拉钩网招聘数据]
  16. android系统移植之按键驱动篇
  17. php二码合一,PS4slim二码合一怎么看
  18. CorelDRAW X3中文版服装创意设计视频教程
  19. OC8051内部逻辑分析(1)
  20. Canny边缘检测原理及C++实现

热门文章

  1. 【性能测试】性能测试的概念和术语介绍 性能测试分类(了解每种测试的目的)
  2. 睡觉也在爬虫之二(爬一组图片)
  3. http://playground.tensorflow.org游乐场摆弄网络思考
  4. CentOS7-搭建Ftp服务
  5. sqlserver2000企业版安装
  6. Win10 SQL Server 2012 企业版 安装教程
  7. 微信域名weixin.com天价成交!是腾讯吗?
  8. wms地图绘制工具_WMS/WMTS
  9. html网游戏页设计,网页版游戏设计.html
  10. 学生成绩管理系统-设计文档