流控机制的解析

article/2025/8/25 6:09:07

流控是以太网的一项基本功能,可以防止在端口拥塞的情况下出现丢帧。在深入分析之前,先看一个简单的应用场景:

  端口A和B接收报文,端口C向外转发报文。如果端口A和B的收包速率之和大于端口C的带宽,那么部分报文就会缓存在设备内部的报文buffer中。当buffer的占用率达到一定程度时,端口A和B就会向外发送PAUSE帧,通知对端暂停发送一段时间。PAUSE帧只能阻止对端发送普通的数据帧,不能阻止发送MAC控制帧。

  以上的描述有个先决条件,那就是端口A和B工作在全双工模式下,并且使能了流控功能。另一方面,我们也一厢情愿地认为对端可以识别PAUSE帧,并可以做出适当的响应。换句话说,对端的端口也要开启流控功能。

  需要注意的是,有的以太网设备只能对PAUSE帧做出响应,但是并不能发送PAUSE帧。

  流控的基本原理不难理解,比较容易忽视的一点是--端口收到PAUSE帧之后,停止发送报文多长时间?其实,PAUSE帧中携带了时间参数。收到PAUSE帧的设备通过简单的解析,就可以确定停止发送的时长。对端设备出现拥塞的通常情况下,本端端口通常会连续收到多个PAUSE帧。只要对端设备的拥塞状态没有解除,相关的端口就会一直发送PAUSE.

  PAUSE帧的结构

  PAUSE帧的帧长为64字节,结构非常简单。如下所示:

 

  PAUSE帧的目的MAC地址是保留的MAC地址01-80-C2-00-00-01(MAC Control的PAUSE帧使用),源MAC则是发送PAUSE帧的设备的MAC地址。

  Length/Type域是十六进制数8808.

  MAC Control Opcode域的值是0x0001.其实,PAUSE帧是MAC控制帧的一种,其他类型的MAC控制帧使用不同的opcode值,此处不做详细说明。后面会谈到和PAUSE类似的PFC帧,PFC帧中该域的取值是0x0101.

  MAC Control Parameters域需要根据MAC Control Opcode的类型来解析。对于PAUSE帧而言,该域是个2字节的无符号数,取值范围是0~65535.该域的时间单位是pause_quanta,每个pause_quanta相当于512比特时间。

  流控的自协商

  现实中,大多数厂商的以太网交换机都有流控开关命令。部分厂商的设备可以在自协商功能中对流控进行协商,这种行为有IEEE标准作为依据。

  在自协商的信息中,有两个流控的比特位,即PAUSE和ASM_DIR,分别表示Symmetric PAUSE和Asymmetric PAUSE.Symmetric PAUSE表示既可以发送又可以接收PAUSE帧,而Asymmetric PAUSE表示只能发送或只能接收PAUSE帧。

  IEEE 802.3标准的28B.3中,描述了这两个比特位的解析方式。简单来讲,如果双方发送的协商信息中PAUSE位都是1,那么双方都能发送和接收PAUSE帧。如果有一方的PAUSE位是0,那么就需要根据ASM_DIR位的值结合PAUSE位的值来具体分析。

 

  半双工模式如何实现流控?

  在本文开头儿的地方说过,端口A和B要工作在全双工模式下,这是有原因的。如果端口工作在半双工模式下,那么PAUSE帧很可能和对端发送过来的报文产生冲突,对端收不到完好的PAUSE帧,也就无法实现PAUSE的功能。

  对于半双工模式的问题,业界常见的解决方式是"back pressure"或者"jamming"机制。对于这两种机制,笔者都没有找到相应的标准,或许本来指的就是同一种机制。半双工模式下,端口向外发送一些信号来占用链路,对端也就没有机会发送报文。这样,可以间接达到和流控类似的效果。

  基于优先级的流控(PFC)

  以太网的数据转发是尽力而为的,并不能保证传输过程中不丢包。像FTP这样的上层协议,通过自身的确认机制来保证数据的完整性,一旦发现报文丢失,可以要求对端重传。正因为如此,以太网的这种尽力而为的转发方式,长期以来也没有遇到过太大的问题。

  IEEE 802.3x流控虽然可以预防丢包,但是有一个不容忽视的问题。PAUSE帧会导致一条链路上的所有报文停止发送,在服务质量要求较高的网络中,这显然是不能接受的。由于这个原因,业界一度出现过对流控的反对声音。IEEE 802.1Qbb标准解决了这个问题。

  IEEE 802.1Qbb的核心思想是,针对同一链路上不同优先级的流量,单独发送PASUSE帧。当某一优先级的业务发生拥塞时,只让该类报文暂停发送,而其他类型的业务不受影响。IEEE 802.1Qbb可以针对特定优先级的流量实现流控功能,因此也被称为PFC(Priority-based Flow Control)。

  FCoE技术将Fiber Channel的数据帧封装在以太网帧中进行传输,FCoE的一个基本要求就是不能丢包。PFC成功地满足了FCoE的需求,同时也不会对其他业务造成影响。


http://chatgpt.dhexx.cn/article/hlgwUJcI.shtml

相关文章

Sentinel 三种流控效果

文章目录 流控效果1.快速失败2.warm up1)配置流控规则:2)Jmeter测试 3.排队等待1)添加流控规则2)Jmeter测试 .总结 流控效果 我们先来回顾一下流控模式有哪些: 流控模式说明直接统计当前资源的请求&#…

Sentinel流控规则之流控模式介绍

目录 1.直接模式 2.关联模式 3.链路模式 4.流控模式总结 参考: Sentinel限流规则-流控模式之链路模式【图文】_mb5fd869d1d8388_51CTO博客 SpringCloud Alibaba之Sentinel流控管理 - 知乎 (zhihu.com) Sentinel-流控模式之关联模式【图文】_mb5fdcae58218c5_…

串口使用系列学习之什么是流控

概念 在两个设备正常通信时,由于处理速度不同,就存在这样一个问题,有的快,有的慢,在某些情况下,就可能导致丢失数据的情况。  如台式机与单片机之间的通讯,接收端数据缓冲区已满,则…

串口流控(CTS/RTS)使用详解

1.流控概念 在两个设备正常通信时,由于处理速度不同,就存在这样一个问题,有的快,有的慢,在某些情况下,就可能导致丢失数据的情况。 如台式机与单片机之间的通讯,接收端数据缓冲区已满&#xff0…

数据治理--浅谈数据标准、元数据、主数据、数据模型

数据标准 数据标准:保障数据的内外部使用和交换的一致性、准确性的规范性约束(如命名、类型、值域等),通常包括了基础指标和计算指标 计算指标:即计算口径,如下单转化率、获客成本、复购率的具体计算的方式 如怎么定义一个人的性别、婚姻状况、健康状况,在不同的业务系…

什么是主数据?什么是主数据管理系统?

什么是主数据?什么是主数据管理系统? 什么是主数据? 企业主数据(Master Data)是用来描述企业核心业务实体的数据,比如客户、合作伙伴、员工、产品、物料单、账户等;它是具有高业务价值的、可以在…

客户主数据

1、KNA1(客户主文件的一般数据) 2、KNB1(客户主数据 (公司代码)) 3、KNVV(客户主记录销售数据) 4、KNVP(客户主记录伙伴功能) 5、KNVK(客户主要联系伙伴) 6、KNAS(客户主数据(一般地区的增值税登记号)) 7、KNB5(客户主记录 (催款数据)) …

企业的主数据建设方法论与实践 | 推荐收藏

本篇文章为亿信华辰《企业的主数据建设方法论与实践》视频直播稿件。 这次我的主题是企业的主数据建设方法论与实践,相信大家来听这场直播,都是对主数据建设比较感兴趣的,同时我也希望能够通过这样一场分享,给大家在主数据的建设…

BP 供应商主数据

BP 供应商S4 和ECC的区别: BP master 这个在SAP ECC6.0之前,SAP对供应商主数据,客户主数据是单独管理的,到了S4 HANA版本,所有的客户主数据和供应商主数据都叫BP 主数据, 通过不同的BP Role 来区分是供应商…

什么是主数据?有什么作用?

什么是主数据?有什么作用? 在说主数据之前,我们先来看一个场景再来看一个行业趋势到底什么是主数据?为什么说主数据管理是一切工作的起点?为了应对这些问题,我们需要引进主数据管理(MDM&#xf…

数据治理【主数据管理】

目录 1.摸家底 1.1 数据资源普查 1.2 主数据识别 1.3 数据管理能力评估 2.建体系 2.1 组织体系 2.2 标准体系 2.3 制度与流程体系 2.4 技术体系 2.5 安全体系 3.接数据 4.抓运营 4.1 主数据管理 4.2 主数据推广 4.3 主数据质量 4.4 主数据变现 我们知道主数据项目的建设是一个循…

主数据建设思路分享

J企主数据方案分享 (一):主数据现状、问题分析及客户诉求 J企的主数据实施业务方案已经签署,主数据平台开发方案也基本敲定,接下来推进历史数据规整方案和各业务系统优化方案的制定。 在此与各位同学分享主数据方案…

数据治理系列(三):主数据管理

主数据项目建设从方法上,分为以下四部,简单归结为12个字:“摸家底、建体系、接数据、抓运营”! 一、摸家底 摸家底需要全面调研和了解企业的数据管理现状,以便做出客观切实的数据管理评估! 1、数据资源普查 数据资源普查的方法常用的有两种,一种是自顶向下的梳理和调…

数仓建模—主数据管理

主数据管理 前面我们介绍过元数据管理,其实关于元数据我们称之为数据的数据,或者说是描述数据的数据,其实除了元数据之外,我们还有主数据,也就是元数据的描述对象。 元数据为大数据平台绘制数据地图、统一数据口径、标明数据方位、分析数据关系、管理模型变更及精确到字…

主数据项目交付最佳实践

任何规模的企业都会存在各种各样的数据问题,主数据管理早在十几年前就已经是企业信息化建设中的一部分,由于企业普遍对此缺乏正确的认识、系统个数较少、数据混乱现象不明显等原因,导致主数据管理这一手段并没有被企业真正的重视起来&#xf…

【数据治理】数据元、元数据、主数据、参考数据概述

【数据治理】数据元、元数据、主数据、参考数据概述 数据元 什么是数据元: 《GB/T 19488.1 电子政务数据元第1部分:设计和管理规范》 里是这样定义的: 数据元(Data element):又称数据类型,通…

MDM主数据管理平台开发精要

随着企业业务迅速发展,需要支撑业务运转的信息系统越来越多,各系统之间数据分散、重复,未完全形成业务闭环,数据孤立不能互通,数据统计不一致,企业主数据(组织、人员、项目、客户、供应商、产品…

一文理解主数据和参考数据

如果你准备要开展推动数据治理或者是数据质量的项目,那么你就有可能会听说到几个词:主数据和参考数据。一开始听到主数据这一词听起来就很高大上,而且非专业人士肯定不理解(即便是从事数据行业的朋友也很难参透)。这一…

主数据治理平台培训规程

主数据管理平台打通各业务链条,消除不同部门重复录入数据造成的数据冗余。统一数据语言,统一数据标准,实现数据同源、数据共享,最大程度提高数据的权威性。同时也可以作为公司内部业务运转、经营分析、决策制定的“通用语言”&…

主数据同步与分发实现

随着企业的发展,各项数据的权威性显得尤为重要,针对解决企业的基础数据治理以及传输问题,数通畅联开发出了MDM主数据管理平台。主数据治理方案可以将企业的组织、人员、客户、供应商等高度共享的数据进行统一管理,对需要的业务系统…