1.Fibre Channel 也就是“网状通道”的意思,简称FC,可以称其为FC协议。FC网络或FC互联。

2.像TCP/IP一样,FC协议集同样具备TCP/IP协议集以及以太网中的概念,比如FC交换、FC交换机、FC路由、FC路由器、SPF路由算法等。完全可以类比的看待TCP/IP协议以及FC协议,他们都遵循OSI模型。

FC协议体系物理层

1)具有比较高的速度,从1Gb/S、2Gb/S、4Gb/S到当前的8Gb/S

2)为了保证传输过程中的电直流平衡、时钟恢复和纠错等特性,其传输编码方式采用NMb编码方式。

3)为了实现远距离传输,传输介质起码要支持光纤。(铜线会受到距离的限制)。

4)FC协议中的物理层的电器子层名为FC0,编码子层名为FC1。

FC协议体系链路层

帧:将上层发来的一定数量的位流打包加头尾在进行传输。

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

1)FC协议在链路层也是成帧的。

2)FC协议定义了一系列的帧控制策略及对应字符——有序集(FC协议的字符集)

3)FC协议定义了一个24字节的帧头,其中包含了寻址功能和传输保障功能,网络层和传输层都用这24字节的信息来传递。

2.FC链路层流量控制

1)端到端的流量控制

2)缓存到缓存的流量控制

3.MTU(最大传输单元)

FC链路层的MTU可以到达2112字节

FC协议体系网络层——FC-AL和Fabric

1.FC-AL

1)仲裁环路(类似于以太网共享总线拓扑),一个环路能接入的最多节点是128个,由于专用地址、广播地址对地址的占用,最后只剩下127个实际可用的地址

2)仲裁环:是一个由所有设备“串联”形成的闭合环路,数据包按顺时针方向传输。通过旁路电路(Bypass Circuit)可将环路中故障接口短路,从而使得整个环路将这个故障的设备Bypass掉,不影响其他设备的工作。

3)接入环路的节点不管有多少,其带宽总是恒定的,即共享的环路带宽。

2.Fabric

Fabric拓扑和以太网的交换拓扑类似。

1)Fabric的意思是“网状构造”,这种拓扑其实是一种网状交换矩阵。

2)交换矩阵对于仲裁环路来说,其转发效率大大提高,连入这个矩阵的所有节点之间都可以进行点对点通信,加上包交换方式所带来的并发和资源充分利用的特性,使得交换架构获得的总带宽为所有端口带宽之和。

3)这种矩阵被做成集成芯片集成到专门的交换机上,然后辅以实现FC逻辑的其他芯片或CPU、ROM,就形成了一台用于Fabric交换的交换机。

4)FC交换拓扑寻址容量是2的24次方个地址。

3.寻址

1)WWNN

(1)像以太网端口MAC地址一样,FC网络中的每个设备自身都有一个WWNN,不管这个设备有多少个端口

(2)WWNN一般被写入设备的ROM中不能改变,某些条件下也可以通过运行在设备上的程序动态的改变。

2)WWPN

(1)FC设备的每个端口都有一个WWPN地址

(2)WWPN的地址长度是64位

3)WWPN和三个ID

(1)给每个连接到FC网络的接口分配一个Fabric ID,用这个ID而不是WWPN来嵌入链路帧中做路由。该ID长24位,高8位被定义为Domain区分符,中8位被定义为Area区分符,低8位定义为PORT区分符。这样WWPN被映射到Fabric ID。

(2)Domain ID 用来区分由众多交换机组成的大的FC网络中每个FC交换机本身。

(3)Area ID 用来区分同一台交换机上的不同端口组。

(4)PORT ID 用来区分一个Area中的不同Port

(5)经过这样的3段式寻址体系,可以区分一个大的Fabric中的每个交换机、交换机中的每个端口组及每个端口组中的端口。

4.寻址过程

1)编址过程

(1)当一个接口连接到FC网络中时,如果是Fabric架构,那么这个端口会发起一个登录注册到Fabric网络中的动作,也就是向目的Fabric ID 地址FFFFFE发送一个登录帧。

(2)交换机收到地址为FFFFFE的帧之后,会动态的给这个接口分配一个24位的Fabric ID ,并记录这个端口对应的WWPN,做好映射。

(3)此后这个端口发送的帧中不会携带其WWPN,而是携带其被分配的ID作为源地址。

(4)如果接口是连接到FC仲裁环网络中,那么整个环路上的节点会选出一个临时节点(根据WWPN号的数值,最小的优先级最高)。然后由这个节点发送一系列的初始化帧,给每个节点分配环路ID。这里是选出的临时节点先得到一个ID,然后再由这个临时节点向环路中的其他节点分配ID 。

2)寻址机制

(1)如果将几台交换机连接成一个FC网络,则他们会自动鞋上自己的Domain ID ,这个过程是通过选举出一个WWPN好最小的交换机来充当主交换机,由主交换机来向下给每个交换机分配Domain ID ,以确保不会冲突。

(2)寻址过程中的路由协议——SPF(最短路径优先)协议

(3)每个节点在登录到FC网络并被分配ID之后,会进行一个名称注册过程,也就是接口上的设备会向一个特定的目的ID(名称服务器)发一系列的注册帧,来注册自己,这样FC网络上的每个注册过后的节点信息都会被记录到那个特定的ID(名称服务器)上。节点被注册到名称服务器上之后,服务便会将网络上存在的其他节点信息告诉这个接口上所连接的设备。所以这个接口上的设备就知道了网络上的所有节点和资源。

3)ZONE

(1)为安全性考虑,可以对节点ID进行认为配置,让名称服务器只告诉某个设备特定的节点。这中叫做软ZONE

(2)就算是被隐藏了某个节点的ID,两个互不相识的节点也可以进行通信,是不经过交换机而直接通信,就像两台计算机直接用网线链接通信一样。但是如果两个节点间没有了物理连接,又互相隐藏了ID,则两者之间不可能进行通信了,这叫做硬ZONE。

(3)ZONE,即分区,同一个分区内的节点可以通信,不同分区之间的节点如果相互隐藏了ID则无法进行通信。

5.FC的链路层和传输层被合并成一层,统称为FC2

FC协议体系传输层

1.FC的传输层也与TCP类似,也对上层的数据流进行Segment,而在FC传输层,这种Segement被叫做Iformation Unit,并且通过FC的Exchange ID 来区分上层程序。

2.FC传输层将Unit提交给FC的下层进行传输,下层将每个Unit当作一个Sequence,并给与一个Sequence ID ,然后再讲这个Sequence再次分割成FC所适应的帧,并给每个帧赋予一个Sequence Count,这样便可以保证帧的排列顺序。

3.传输层还有一个重要的角色,即适配上层协议,FC会提供适配上层协议的接口。

4.FC也是通过发送ACK帧来向对方发送确认信息的。

5.FC传输层上定义的几种服务类型

1)Class 1 服务类型:面向连接的服务

2)Class 2 服务类型:端到端确认的保障传输服务

3)Class 3 服务类型:不提供确认

4)Class 4 服务类型:在一条连接上保留一定的带宽资源给上层应用。

FC协议的上三层

表现为各种Login过程、包括名称服务在内的各种服务等

小结

1.FC是一个高速高效,配置简单,不需要太多人为介入的网络。

2.FC协议的大部分逻辑被直接做到一块独立的硬件卡片当中,而不是运行在操作系统中,如果将部分协议逻辑置于主机上运行,会占用主机CPU内存资源

3.FC协议物理层到传输层的逻辑,大部分运行在FC适配卡的芯片中,只有小部分关于上层API的逻辑运行于操作系统FC卡驱动程序中,这样就使得FC协议的速度和效率都较TCP/IP协议高

FC网络学习笔记01的更多相关文章

  1. FC网络学习笔记02 -网络配置方法

    随着新一代飞机的综合化航电系统对通信需求的不断提高,传统的ARINC429.1553B总线的传输速率分别只有100Kbps和1Mbps,其带宽已远远不 论文联盟 http://Www.LWlm.cOm ...

  2. 软件测试之loadrunner学习笔记-01事务

    loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...

  3. Redis:学习笔记-01

    Redis:学习笔记-01 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 1. Redis入门 2.1 ...

  4. C++ GUI Qt4学习笔记01

    C++ GUI Qt4学习笔记01   qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概 ...

  5. SaToken学习笔记-01

    SaToken学习笔记-01 SaToken版本为1.18 如果有排版方面的错误,请查看:传送门 springboot集成 根据官网步骤maven导入依赖 <dependency> < ...

  6. PHP 学习笔记 01

    例子: 为什么要学PHP 主观原因: 前段时间在学校处理了毕业的一些事情,回到上海后开始了找工作的旅程.意向工作是WPF开发或者ASP.NET 作为后端的WEB开发. 陆陆续续一直在面试,其中有一家公 ...

  7. vue.js 2.0 官方文档学习笔记 —— 01. vue 介绍

    这是我的vue.js 2.0的学习笔记,采取了将官方文档中的代码集中到一个文件的形式.目的是保存下来,方便自己查阅. !官方文档:https://cn.vuejs.org/v2/guide/ 01. ...

  8. [原创]java WEB学习笔记01:javaWeb之tomcat的安装和配置

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. 学习笔记01:《开放平台产品成长之路-POP》

    当看到一些比较好的书籍和视频内容时,希望自己可以总价归纳下来,一方面是好的东西希望可以分享给大家,另一方面希望自己能很好的吸收并转化成掌握的知识,所以有了这个系列的学习笔记,共勉,今天的你比昨天更博学 ...

随机推荐

  1. 问自己----也是自己该怎么走的路(phper)

    1.首先看了PHP的源码API函数,对于许多口水仗的争论一笑而过,只是停留在脚本级别上的什么效率,安全...之争完全就是无稽之谈,没有深入理解API,所有的争论都是臆测和不科学的态度.你做了吗? 2. ...

  2. 要将表的限制条件写到与该表同级别的where中

    测试目的:将朱查询的限制条件放到子查询的where中,查看性能影响. 测试数据:create table t1 as select object_id,object_name from dba_obj ...

  3. ArrayList与LinkedList实现比较

    1.ArrayList实现是基于数组来实现的,这可由ArrayList的源码看出: public class ArrayList<E> extends AbstractList<E& ...

  4. OA学习笔记-002-Sruts2.1配置

    一.jar commons-fileupload-1.2.1.jarcommons-io-1.3.2.jarfreemarker-2.3.15.jarognl-2.7.3.jarstruts2-cor ...

  5. Android开发将List转化为JsonArray和JsonObject

    客户端需要将List<Object>转化为JsonArray和JsonObject的方法: 首先,List中的Object的属性需要是public: class Person { publ ...

  6. TDBGrideh表头自动排序设置

    自动显示标题行的升降排序标志符(▽降序△升序)并做相应排序DBGridEh组件可以在标题行单元格中显示小三角形升.降排序标志符图片,在运行时可点击标题行,图片自动切换并做相应排序. 具体属性设置如下: ...

  7. 【HDOJ】1512 Monkey King

    左偏树+并查集.左偏树就是可合并二叉堆. /* 1512 */ #include <iostream> #include <string> #include <map&g ...

  8. 【CF】7 Beta Round D. Palindrome Degree

    manacher+dp.其实理解manacher就可以解了,大水题,dp就是dp[i]=dp[i>>1]+1如何满足k-palindrome条件. /* 7D */ #include &l ...

  9. TeeChart的最小步长和最大步长

    /// <summary> /// 坐标轴的最大步长 /// </summary> public double MajorStep { get { return axis.Ca ...

  10. Java NIO原理及实例

    Java NIO是在jdk1.4开始使用的,它既可以说成“新I/O”,也可以说成非阻塞式I/O.下面是java NIO的工作原理: 1. 由一个专门的线程来处理所有的 IO 事件,并负责分发. 2. ...