深度分析QCN(Congestion Notification)报文格式

在前面的《深度分析数据中心之QCN(Quantized CongestionNotification)技术》一文中对QCN(Quantized Congestion Notification)技术已经有详细的介绍,但是只是停留在理论讲解阶段,可能对QCN技术还不是很了解。今天我将从另一个角度来对QCN功能进一步讲解,通过分析QCN的报文内容帮助大家理解这个功能。需要提的一点是,据我了解目前这个功能还没有产商在市场上的产品有这个功能,只有星网锐捷的数据中心产品有这个功能,但是这个功能实际上最终是由终端来的实现降低数据源的速率,所以只有交换机支持不够的,希望网卡产商尽快推出QCN功能。
QCN由IEEE 802.1Qau文档定义,文档中约定的两种新的以太网报文类型:
(1)带CN-TAG 的数据报文定义如下图:

图1 CN-TAG报文定义

CN-TAG报文实际上是支持QCN功能的融合网络接口卡(CNA)接入到支持QCN域的网络中发送出带了CN-TAG的报文。和普通的报文区别是在发送的报文的以太头部增加了cn-tag字段:如上图QCN功能的Etype为22e9,这是标准定义的QCN etype。后面的FLOW-ID是唯一标识网卡发送的每一条流,当网络出现拥塞后,交换机会发出CNM报文(后面会说明该报文)通告数据源回暂停发送该流,在CNM=报文中会就会把FLOW-ID放入,当网卡收到CNM报文时就会通过该字段暂停相应流量。以达到精确控制具体报文流量的目的。
(2)CNM报文定义

图2 CNM报文定义

CNM消息中,PDU各字段(从PDU-TYPE开始都是PDU的内容)的封装格式如下图所示:

图3 CNM各字段的封装格式
每个字段的含义如下所示:

字段名

含义

Version

CNM消息的版本号,长度为4bit,占用第1个字节的高4位,默认值填充0;

ReservedV

CNM消息保留字段,长度为6bit,占用第1个字节的低4位,和第2个字节的高2位,默认值填充0;

Quantized Feedback

CNM消息的量化反馈值,长度为6bit,占用前2个字节的低6位;

Congestion Point Identifier (CPID)

拥塞点标识符,长度为8字节。为了保证标识符的唯一性,使用拥塞点设备的MAC地址作为高位6字节,低位2字节用于标识同一设备的不同端口或者不同优先级队列;

cnmQOffset

占用2个字节,表示拥塞点CP发送队列当前空闲可用的字节数;

cnmQDelta

占用2个字节,表示2次获取拥塞点CP发送队列可用字节数的差值;

Encapsulated priority

占用2个字节,第1个字节的高3位,填充触发CNM消息数据帧的优先级,其它位填充0;

Encapsulated destination MAC

address

占用6个字节,填充触发CNM消息数据帧的目的MAC地址;

Encapsulated MSDU length

占用2个字节,表示Encapsulated MSDU字段的长度;

Encapsulated MSDU

最多占用64个字节,填充触发CNM消息的数据帧的内容;
图4

结合实际报文分析,由于目前QCN功能技术太新,wireshark工具还没有更新相应字段解析,只能我们自己一个字段一个字段的分析:
见上图从e type :22e9开始逐一分析相应字段:0000两个字节表示上面所述的cn-tag的flow-id。从PDU-TYPE:22E7开始后面是属于PDU部分,按图3,4两部分解析:
06 d0:按图3,4所示表示如下字段

字段名

含义

Version

CNM消息的版本号,长度为4bit,占用第1个字节的高4位,默认值填充0;

ReservedV

CNM消息保留字段,长度为6bit,占用第1个字节的低4位,和第2个字节的高2位,默认值填充0;

Quantized Feedback

CNM消息的量化反馈值,长度为6bit,占用前2个字节的低6位;

00 03 43 e0 88 cf 04 73:

字段名

含义

Congestion Point Identifier (CPID)

拥塞点标识符,长度为8字节。
为了保证标识符的唯一性,使用拥塞点设备的MAC地址作为高位6字节,低位2字节用于标识同一设备的不同端口或者不同优先级队列;

以此推下去,其他字段就不分析了。

weinxin
DC Farm小程序二维码
扫一扫添加博客小程序
Jim

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar languh 0

      博主专业技术流,来支持下