FC协议读书笔记
- 格式:doc
- 大小:761.50 KB
- 文档页数:11
FC协议读书笔记
1、光纤通道的英文拼写是Fibre Channel;
2、FC的链路介质可以是光纤、双绞线或同轴电缆;
3、FC系统中设备的连接有三种拓扑方式:点对点方式(Point to Point)、交换方式(Fabric)、仲裁环方式(Arbitrated Loop);
4、FC协议栈模型可以用下图来表示:
FC-0:物理层,定制了不同介质,传输距离,信号机制标准,也定义了光纤和铜线接口以及电缆指标
FC-1:定义编码和解码的标准
FC-2:定义了帧、流控制、和服务质量等
FC-3:定义了常用服务,如数据加密和压缩
FC-4:协议映射层,定义了FC底层协议与高层协议之间的映射,SCSI协议的映射是通过FCP来完成的
5、WWN 是一个 64位的地址。WWN对于FC设备就像Ethernet的 MAC地址
一样,它们是由电器和电子工程师协会(IEEE)标准委员会指定给制造商, 在制
造时被直接内置到设备中去的。
对于光纤交换机,我们使用Node WWN来标示交换机,它是唯一的;对
于交换机的端口,我们使用Port WWN来标示交换机的端口。所以一个交换机有
一个Node WWN和多个Port WWN。
6、每个端口有它独有的 24位的地址。用这种 24 位地址方案,我们得到了一 个较小的帧头,这能加速路由的处理。在基于交换的光纤环境中,交换机它本身
负责分配和维持端口地址。 当含有某 WWN 的装置进入在某一个特定的端口
上登录到交换机时,交换机将会分配端口的地址到那一个端口,而且交换机也将
会维护那个端口地址和在那个端口上的设备的WWN 地址之间的关联。 交换机
的这一个功能是使用名字服务器(NAME SERVER)来实现的。
7、一个 24个位的端口地址由三个部份所组成:
Domain:交换机本身的地址。 一个字节最多允许 256个可能的地址。 因为有一
些地址被保留 (例如广播地址等),实际上只有 239个地址可用。
Area: 它提供 256个地址。用于一个交换机的一组端口,而不能跨交换机。
Port: 地址的最后部份提供 256个地址,用于识别相连的 N_Port 和 NL_Port。
可用的地址数目:Domain x Area x Ports =239 x 256 x 256=15,663,104个地址可以用。
二、FC-0层
三、FC-1层
四、FC-2层
1、光纤通道的数据单元叫做帧。一个光纤通道帧最大是2148字节。
光纤通道封装帧头
负载最多能有537个传输字(2112个字节),数据帧格式如下图所示。
帧内容域的数据长度是4字节的整数倍,当长度不足4字节的整数倍时将采用向内容域中填充1-3个字节,从而使其长度达到4字节的整数倍。内容域中字段描述如下图所示:
帧数据段中的可选报头是提供给FC-4层使用的
一个光纤通道字是4字节。在2148字节容量下,最多允许537字节。
帧头的组成部分,以及可选部分,列示如下:
SOF(1字):帧开始.
帧头(24字节): 帧头决定使用何种协议,以及源和目的地址。
可选ESP帧头(8字节):提供编码;包括SPI和ESP序列号
FC-2的帧格式
图4-3 帧内容 可选网络帧头(16字节):这样你可以将FC-SAN连接到非FC网络
可选关联帧头(32字节):不是光纤通道协议使用的,但可用于确定节点内的流程
可选设备帧头(最多64字节):不是光纤通道协议使用的,用于特定应用程序
载荷:数据,最多可达2048字节
可选填写字节(可变):用于保证数据载荷的大小不超过字节界限
可选ESP尾(可变):包含ESP检验值
CRC(4字节):一个帧头CRC(循环冗余校验)和光纤通道数据字段
帧结束(4字节):帧结束,并且表示是否是序列的最后一位
帧头字段的主要作用是唯一的标识帧。每个帧是由称为帧ID值的(S_ID,D_ID,OX_ID,RX_ID,SEQ_ID和SEQ_CNT)值来唯一地标识。
图 2. 光纤通道帧头
路由控制(1字节): 起到归类帧的作用,包括两个四位的子字段,即:路由子字段和信息子字段,路由控制字段 R_CTL 类别码如下表所示
R_CTL 类别码
路由 帧类型
0 设备数据帧
2 扩展链路服务
3 FC-4 链路数据
4 视频数据
5 扩展头
8 基本链路服务
c 链路控制帧
f 扩展路由
其他 保留
目的标识符(3字节):目的地光纤通道地址;
类专用控制/优先级(1字节):用于与服务类型有关的帧处理。这个字段只在第1类和第4类帧中才有意义;
源点标识符(3字节):来源地节点的光纤通道地址
类型(1字节):该字段和R_CTL字段共同标识出帧的具体类型。首先通过R_CTL字段标识出该帧是数据帧还是链路控制帧,再通过该字段进一步标识出帧的类型。例如当R_CTL=0xh, TYPE=0Ah 则表示该帧为承载SCSI协议的数据帧;
帧控制(3字节):控制帧处理的重要字段,对于不同的服务类型来说,相关的控制位有不同的值,同时控制字段的有效性也不同。F_CTL各字段的详细描述如下表所示:
F_CTL格式
控制字段 位 描述
交换上下文 23 0 交换发起端
1 交换响应端
序列上下文 22 0 序列发起端
1 序列响应端
第一个序列 21 0 交换的其它序列
1 交换的第一个序列
最后一个序列 20 0 交换的其它序列
1 交换的最后一个序列
结束序列 19 0 序列的其它数据帧
1序列的最后一个数据帧
结束连接
(Class 1 或 Class 6) 18 0 连接激活
1 连接挂起结束
(Class 1 或 Class
6中有效,在其它类型中忽略)
CS_CTL/优先级 17 0 字1的31~24位表示CS_CTL
1字1的31~24位表示优先级
序列Initiative 16 0 保持序列Initiative
1 传输序列Initiative
废弃 15
废弃 14 ACK形式
(Class1,Class2,Class6
有效) 13-12 00b 不需要额外提供
01b 需要Ack_1
10b 保留
11b 需要Ack_0
数据压缩(废弃) 11
数据加密(废弃) 10
序列重传
(Class1,Class6有效) 9 0 初始序列重传
1 序列重传
单向传输
(Class1,Class6有效) 8 0 双向传输
1 单向传输
连续序列条件
(当结束序列=1, 序列Initiative=0时有效) 7~6 00b 无信息
01b 实时序列
10b 快速序列
11b 延迟序列
终止序列条件 5~4 接收端响应帧
00b 连续序列
01b 异常终止序列,按异常中止处理
10b 停止序列
11b 实时序列重传请求
数据帧
00b 异常中止,丢弃多个序列
01b异常中止,丢弃一个序列
02b 无限缓存处理策略
11b丢弃多个序列,立即重传
相对偏移 3 0 一些帧定义的参数字段
1 参数字段,相对偏移
交换重组 2 交换重组保留
填充字节 1~0 净荷结束,不满4字节整数倍,填充
00b 填充0个字节
01b填充1个字节
10b填充2个字节
11b填充3个字节
序列ID(1字节):序列号,由序列发起端分配; 数据字段控制(1字节):表示是否有可选头部,以及其类型、大小。数据字段中定义的可选报头是:网络报头(Network Header)、关联报头(Association
Header)和设备报头(Device Header)。对应位与所定义的附加报头如下表所示。
附加报头
字段对应位Bit(s) 可选报头 可应用范围
23 保留 所有帧
22 0 = 无 ESP_Header 和 ESP_Trailer
1 = ESP_Header 和 ESP_Trailer 所有帧
21 0 = 无 Network_Header
1 = Network_Header 设备数据和视频数据帧
20 0 = 无 Association_Header
1 = Association_Header 设备数据和视频数据帧
19-18 保留 所有帧
17-16 00 = 无 Device_Header
01 = 16 Byte Device_Header
10 = 32 Byte Device_Header
11 = 64 Byte Device_Header 设备数据和视频数据帧
序列数(2字节):在一个序列中所传输的帧的数量;
发送端交换ID(2字节):由发送端进行指定,是除了FFFFh以外的值
回复端交换ID(2字节):由目标节点所指定
参数(4字节):此字段与帧类型有关。对链路控制帧而言,参数字段给出链路控制帧的特定类型。对数据帧而言,参数字段包含相对偏转值。这规定从ULP缓冲区与ULP基础地址的偏移。
2、FC-2层定义了4种数据传输单位:帧、帧序列、帧交换和数据包。
帧序列:表示一个上层协议数据单元,当上层协议的数据单元长度大于光纤通道数据帧负载的最大长度2112个字节时,则需要被分割成多个数据帧。序列是从一个节点端口向另外一个节点端口单向发送的一个或多个相关帧,每个帧都根据序列总数(SEQ-CNT)有一个在整个序列中唯一的序列标识(SEQ-ID);
帧交换:表示上层协议的一个操作。一个帧交换内只能有一个帧序列处于活动状态。交换是由一个或多个用作两个节点端口之间单一操作的非并发序列组成的.交换可以是单向的也可是双向的。不同交换之间可以有多个序列被同时激活;
数据包:由一个或若干个帧交换组成。