8.1FC网络

Fibre Channel也就是网状通道,简称FC。也可以称为FC协议,FC网络、FC互联

注意: Fibre Channel不是Fiber Channel,后者是光纤通道与网状通道没有任何联系

8.1.1 物理层

采用同步串行的方式,,传输编码采用了NMB的编码方式。

8.1.2 链路层

1.字符编码,以及FC帧结构

FC协议定义了一个24Bde帧头。24B的帧头不但包含了寻址功能,而且包含了传输功能。网络层和传输层的逻辑都用这24B的信息来传递。

2.链路层流量控制

FC定义了两种流控策略,一种为端到端的流控,另一种为缓存到缓存的流控。端到端流控比缓存到缓存流控要上层和高级。在一条链路的两端,首先面对链路的一个部件就是缓存。接收电路将一帧成功接收后,就放入缓存中。如果由于上位程序处理缓慢而造成缓存已经充满,FC协议还有机制来通知发送方减缓发送,如果链路的一端是FC终端设备,另一端是FC交换机,则二者之间的缓存到缓存的流量控制只能控制这个FC终端到FC交换机之间的流量。

而通信的最终目标是网络上的另一个PC终端,这之间可能经历了多个FC交换机和多条链路。而如果数据流在另外一个FC终端发生拥塞,则这个FC终端就必须通知发起端降低发送频率,这就是端到端的流量控制。

3.MTU

一般情况下,以太网的MTU位1500B,而FC链路层的MTU可以到2112B这样,FC链路层相对以太网的效率又提高了。

8.1.3 网络层

1.拓扑

与以太网类似,FC也提供了两种网络 拓扑模式,FC-AL和Fabric

FC-ALFC-AL 拓扑类似于以太网总线拓扑,但是连接方式不是总线,而是一条仲裁环路(Arbitral Loop)。每个FC AL设备首尾相连构成了一个环路。一个环路最多节点是128个,实际上是使用了一个字节的寻址容量,但是只用到了这个字节经过81b编码之后奇偶平衡(0和1的个数相等)的值,也就是256个值中的134个来寻址,这些筛选出来的地址又被广播地址,装也地址占用了, 最后只剩下127个实际可用的地址。

FC-AL设备接入一个仲裁环境,仲裁环是一个由所有设备串联形成的闭合回路,如果某个设备发生故障,每个接口的旁路电路。就会自动将这个接口短路,从而使整个环路将这个故障Bypass掉。不影响其他设备。任何时刻数据帧只能按照一个方向向下游传输。

Fabric另一种Fabric拓扑和以太网交换拓扑类似。Fabric意思为网状构造,表明这种拓扑是一个网状交换矩阵。交换矩阵的架构对于仲裁环路来说,其转发效率大大提高了。

连入这个矩阵的所有节点之间都可以同事进行点对点通信,加上包交换方式所带来的并发和资源充分利用的特性,使得交换的交换架构获得的总带宽为所有端口带宽之和。

2.寻址

任何网络都需要寻址机制,FC网络中,每个设备自身都有一个WWNN(Word Wide Node Name),不管这设备上有多少个FC端口,设备始终拥有一个固定的WWNN来代表自身,FC设备每个端口都有一个WWPN(Word Wide Port Name),这个地址是世界范围内唯一的,世界上没有两个接口地址是相同的。

WWNN每个FC设备都被赋予一个WWNN,这个WWNN一半情况写入ROM不会改变。

WWPN和三个IDWWPN地址的长度是64位,比以太网的MAC地址还要长出16位。为了提升速度,FC协议决定在WWPN之上再映射一层寻址机制,给每个FC网络中的接口分配一个Fabric ID这个ID长24位,高八位被定义成Domain区分符,中8位被定义为Area区分符,低8位定义为PORT区分符。

  • Domain ID用来区分一个由众多交换机组成的大的FC网络中每个FC交换机本身,一个交换机上所有的接口的Fabric ID都具有相同的高8位,即Domain ID。Domian ID同时也用来区分这个交换机本身,一个Fabric中所有交换机都拥有不同的Domain ID。一多交换机组成的Fabric中,Domain ID是自动被主交换机分配给各个交换机的。根据WWNN号和一系列的选举帧的传送,WWNN最小者获胜成为主交换机,然后这个主交换机向所有其他的交换机分配Domain ID,这个过程其实就是一系列的特殊帧的传送、解析、判断
  • Area ID 用来区分同一台交换机上的不同端口组,比如1、2、3、4端口属于Area1,5、6、7、8端口署于Area2,每个芯片可以管理多个FC端口。
  • Port ID :用来区分一个同Area中的不同Port

3.寻址过程

1.地址映射

既然定义了两套机制,那么就要有地址映射机制。当勇哥接口连接到Fc网络中时,如果是Fabric架构,那么这个接口会法医一个登录注册到Fabric网络的动作,也就是向目的的Fabric ID地址FFFFFE发送一个登录帧,成为FLOGIN。交换机收到的地址为FFFFFE的帧之后,会动态给这个接口分配一个24b的Fabric ID,并记录这个接口对应的WWPN,做好映射。此后这个接口发出的帧中不会携带WWPN,而是携带被其分配的ID作为源地址。
如果接口时连接到FC仲裁网络中,那么整个环路上的节点会选出一个临时节点,然后由这个节点发送一系列初始化帧,给每个节点分配环路ID。

2.寻址机制 

编制之后就要寻址,寻址牵扯到路由的概念。

一个大的FC网络中,一般有多台交换机相互连接,它们可以链式级联,也可以两辆连接,甚至任意连接,就像IP网络中的路由器连接一样,但是FC网络不需要太多的人工介入。如果将几台交换机连接成一个FC网络,则他们会自动地协商自己的Domain ID。对于寻址过程,这写交换机上会运行相应地路由协议。最广泛使用地就是SPF协议,是一种很健壮的路由协议。FC地链路层和网络层被合并成一层,统称FC2

8.1.4 传输层

FC地传输层同样也与TCP类似,也对上层地数据流进行Segment,FC利用Exchange ID来区分,每个Exchange(上层程序)发过来地数据包,被FC传输层分割成Infiormation Unit,也就是相当于TCP分割成Segment。然后FC传输层将这些Unit提交给FC的下层进行传输。下层将每个Segment当成一个Sequence,并给予一个SequenceID,然后将这个Sequence再次分割成FC所适应的帧,给每个帧赋予一个Sequence Count ,这样便可以保证帧的排列顺序,接收方接收到帧之后,会组合成Sequence,然后根据Sequence ID来顺序提交给上层协议处理。

在传输层上,FC定义了几种服务类型,也就是类似TCP、UDP

FC传输层被定义为FC4。

8.1.5 上三层

与网络传输无关

8.1.6小结

FC协议的大部分逻辑被直接做到一块独立的硬件卡片当中,而不是运行在操作系统当中。只有小部分关于上层API的逻辑运行于操作系统的FC卡驱动程序当中。

8.2 FC协议中的其中端口类型

七种:N、L和NL端口被用于终端节点。F、FL、E和G端口在交换机中实现。

8.2.1 N端口和F端口

N端口和F端口专用于Fabric交换架构当中。连入FC交换机的终端节点的端口为N端口,对镜交换机上的的端口为F端口。

8.2.2 L端口

L端口指仲裁环上各个节点的端口类型(LOOP)。换路上所有的设备可一个通过一个FCAL的集线器相连,以布线方便,故障排除容易。

1.私有环

这个FC是封闭的,只能在这个环中所包含的节点之间相互通信,儿不能和环外的任何节点通信

2.开放环

环内节点可以和环外节点通信,可以把环作为一个单元,连接到FC交换机上,从而使环内节点可以和位于FC交换机上的其他N节点通信。

8.2.3 NL端口和FL端口

NL端口是开放环中的一类端口,具有N端口和L端口的能力。NL端口支持交换式光纤网络登录和环仲裁。而FL端口事FC交换机上用于连接开放仲裁环节后的中介端口。

开放环内可以同时存在NL节点和L节点,而只有NL节点才能和环外的、位于FC交换结构中的多个N节点或者其他类型的节点通信。NL节点也可以同时和L节点通信。

开放环的融合机制

FC-SW设备的工作方式是它会登录到网络(FLOGI),并在Name Server 中注册PLOGI。设备要传输数据时先会到Name Server查询Target 设备,然后到目标设备进行注册(PRLI)最后传输数据

FC-AL的设备工作方式与此完全不同,在环路的初始化(LIP)过程中,生成一个环路上所有设备地址的列表,被称作AL_PA,并存储在Loop中每个设备上。当设备要与目标主机通信时,会到AL_PA中查询目标主机,然后根据地址进行通信。

要让一个私有环中的设备和Fabric中的设备达到互相通信,必须采用协议转换措施,因为FC和FC Fabric是两套不同的逻辑体系。

采用MAP模式使环内任何L节点可以和任何N节点之间就像对方和自己使同类一样通信,也就是说环内的L节点看待环外的N节点就像是一个不折不扣的L节点。反过来,环外的N节点看待环内的L节点就像是一个N节点一样。这个功能是通过在交换机的FL端口实现的,相当于一个N-L协议转换。当然,也涉及到寻址MAP。套给每个环内地址,去一个环外的名字注册到名称服务器。给N节点取一个AL地址,参与环的初始化。

同样是将环接入Fabric,开放环的扩展性就比私有环接入强。具有NL端口的设备既能和环内的L端口设备通信,又能和环外的N端口设备通信,同时具有N和L端口的逻辑,这一切都不需要仿真MAP,只需要一个Tunnel过程即可。而环内的L节点如果想与环外的N的口通信,由于L节点自身没有N端口的逻辑,必须经过FL端口的MAP过程,所以,称具有NL端口的设备为Public设备,即开放设备。而称具有L端口的设备为Private设备,即不开放设备。

8.2.4 E端口

E端口是专门用于连接交换机的端口。因为交换机之间的级联,需要在级联线路上承载一些控制信息,比如选举协议、路由协议

8.2.5 G端口

G端口比较特殊它是万能端口,可以转换为以上任意端口

终端节点端口编制规则

各种终端节点端口(N、N、L)的FCID地址都是3B长。

N的口只是用高2B;L端口只是用低1B;NL端口使用全部3B

任何设备都可以接入FC网络,单设备上必须有FC接口才行。

【存储知识学习】第八章-Fibre Channel协议-8.1 FC网络和8.2FC协议中七种端口类型-《大话存储》阅读笔记相关推荐

  1. 【存储知识学习】第四章-七种RAID-《大话存储》阅读笔记

    目录 一.重要概念 1.汉明码 2.布尔逻辑运算 3.扇区.块.段.条带.条带长度和深度 4.读/写IO 5.大/小块IO 6.连续/随机IO 7.顺序/并发IO 8.持续/间断IO 9.稳定/突发I ...

  2. 【存储知识学习】第十章- 存储架构演进过程《大话存储》阅读笔记

    10.5.1 第一阶段:全整合阶段 所有的部件和模块都在同一个机箱当中,是DAS结构. 10.5.2  第二阶段:磁盘外置阶段 是将磁盘置于服务器机箱外部的情况.这种架构依然属于DAS架构,因为存储系 ...

  3. 【存储知识学习】第十章- NAS和SAN《大话存储》阅读笔记

    10.1 NAS 10.1.1 两种访问方式的后端存储网络 10.1.2 网络文件系统 LINU和UNIX系统使用NFS协议,上层协议利用TCP/IP协议进行传输的.这种文件系统不是运行在本地,而是网 ...

  4. 【存储知识学习】第三章磁盘原理与技术3.8并行传输和串行传输and3.9 IOPS和带宽-《大话存储》阅读笔记

    3.8并行传输和串行传输 3.8.1并行传输 并行传输要求通信双方的距离足够短,因为只有等线上所有数据到达之后才能传送下一轮数据,导线电阻不均衡,会导致达到对方的速度会出现差距. IO延迟:控制器将I ...

  5. 【存储知识学习】第三章磁盘原理与技术3.4硬盘接口技术和SCSI硬盘接口--《大话存储》阅读笔记

    3.4硬盘接口技术 硬盘的物理接口包括以下几种: 用于ATA指令系统的IDE接口(PATA) 用于ATA指令系统的SATA接口 用于SCSI指令系统的并行SCSI接口 用于SCSI指令系统的串行SCS ...

  6. 【存储知识学习】第八章-Fibre Channel协议《大话存储》阅读笔记

    8.5 引入FC的优势 8.5.1 提高扩展性 一台盘阵如果只能提供一个FC前端接口,同样可以连接多台主机,办法是把它们都连接狂一台FC交换机上.引入包交网络之后,首先时速度提升一大截,其次时由于包交 ...

  7. 【存储知识学习】第六章-磁盘阵列-《大话存储》阅读笔记

    目录 6.1 外置机柜 6.2 结合RAID卡实现外置磁盘阵列 6.3独立的外部磁盘阵列 6.4 双控制器的搞安全性磁盘阵列 1.Active-Standby 2.Dual-Activate 3.脑分 ...

  8. 【存储知识学习】第五章-5.4虚拟磁盘和5.5卷管理层-《大话存储》阅读笔记

    目录 5.4 虚拟磁盘 5.4.1 RAID组再划分 5.4.2同一通道存在多种类型的RAID组 5.4.3操作系统如何看待逻辑盘 5.4.4控制器如何管理逻辑磁盘 5.5卷管理层 5.5.1-5.5 ...

  9. 【存储知识学习】第五章-5.1-5.3 RAID磁盘阵列-《大话存储》 阅读笔记

    目录 5.1操作系统中配置RAID 5.2 RAID卡 5.2.1 RAID卡的结构 5.2.2 RAID卡的初始化和配置过程 5.2.3通道RAID卡 5.2.4无驱RAID卡 5.2.5 RAID ...

最新文章

  1. 如何使用 Cockpit 管理你的树莓派
  2. fastjson获取json方法
  3. XP 风格的可拖动列、可排序、可改变宽度的DataGrid的例子
  4. bzoj1202[HNOI2005]狡猾的商人
  5. 七种常见分布式事务详解(2PC、3PC、TCC、Saga、本地事务表、MQ事务消息、最大努力通知)
  6. mysql-ubuntu16.04彻底卸载mysql
  7. 快速傅里叶变换(FFT)——按时间抽取DIT的基
  8. 并行算法 Parallel Algorithm -- 提高执行效率
  9. Java并发(八)——Fork/Join
  10. JAVA动态加载JAR包执行程序
  11. sdk manager的列表怎么消失了_腾讯安全SDK的Dll Dump研究
  12. 微信支付一面(C++后台)
  13. LoadRunner教程(8)-LoadRunner 负载生成器
  14. 程序员修炼之道(通俗版)——第八章
  15. Keil编译出现 “no source“: Error: command-line: #564: cannot open解决方法
  16. Little Gyro and Sets(第二届中国计量大学ACM程序设计竞赛个人赛)
  17. 广义相对论-学习记录5-第三章-张量分析与黎曼几何2
  18. unity 3d孤岛求生案例代码解析
  19. 【动态规划】区间动态规划
  20. -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义

热门文章

  1. linux C语言 socket如何判断socket_fd对应的socket是否断开?(是否连通、是否正常连接)recv()、tcp_info TCP_ESTABLISHED、keepalive
  2. 海康摄像头 海思AI芯片(Hi35XX): 图像jpg转.bgr
  3. ubuntu cmake交叉编译时报错:没有那个文件或目录
  4. C语言linux gettimeofday()函数和time()函数的区别(后者只能得到秒级系统时间,前者能得到毫秒甚至微秒级系统时间)
  5. 牛客 华为机试(我的代码记录)
  6. visual studio快捷键 Qt creator快捷键
  7. 【正则化】csdn markdown python 批量给文本行行头添加“•”符号,“- ”(实心圆)
  8. 绘制不同光照条件下识别率多项式拟合曲线图(暂未找到最佳拟合曲线)
  9. linux——Firewalld与iptables的基本配置
  10. phpcms v9 index.php,【转】phpcms v9中tags列表页url用拼音作为路径的方法