好文章。
值得注意的是:
FCoE和原来FC的协议架构上比较去掉了FC-0和FC-1,而用以太网802.3的物理层PHY和逻辑链路层MAC来代替,往上再加了FCoE Mapping。
FC-0定义的是物理接口,如光纤、铜缆;FC-1定义的是8B/10B的编码。
这样的代替有什么意义呢?
首先FC-0和物理层PHY差别并不大,FC-1定义的8B/10B编码在以太网里也是类似的。所以并不是FC-0和FC-1的问题所在。
其次,来看看IEEE对以太网技术推动的发展历史(Google下来的,供参考)
========================================================================
1、千兆以太网技术原理
1.1 早期以太网技术
以太网:IEEE802.3定义了10Mbps的以太网标准,采用载波监听和冲突检测(CSMA/CD) 协议,以半双工方式运行。从80年代末开始以太网取得了巨大的成功。10BaseT是运行在3类或 更高类别的双绞线上的以太网,10Base2/5是运行在同轴电缆上的以太网,10BaseFL是运行在 光纤上的以太网。由于冲突检测的协议要求一个512位的时间槽保证无错误的检测到冲突,所以 以太网的距离覆盖范围受到了限制,10BaseFL最大的覆盖距离为2km,10BaseT在一个网段内的 最大覆盖距离为100m。
快速以太网:IEEE802.3u定义了100Mbps的快速以太网标准,它可以用半双工的方式运行 CSMA/CD协议,也可以有全双工的方式。由于快速以太网对以太网的后向兼容性,在90年代的 中后期,快速以太网成为局域网中的主流技术。100BaseTX是运行于5类双绞线上的快速以太网, 100BaseFX是运行于光纤上的快速以太网。对于以半双工方式运行的快速以太网,同样也有距离 覆盖范围的限制,并且由于快速以太网以100Mbps的速率运行,时间槽长度同样是512位,所以 它的最大距离覆盖范围是以太网的1/10,为200m。但是对于全双工方式运行的快速以太网, 在理论上就不再有距离的限制,而实际受限于电或光信号的衰减。如实际中运行在单模光纤上 的100BasFX SMF的全双工快速以太网最大覆盖距离可达20km以上。
1.2 千兆以太网协议
1998年6月在千兆以太网联盟的推动下IEEE正式发布了千兆以太网标准IEEE 802.3。把以太网的速率提高到了1000MbPs。而在此之前的1997年,就已经有很多的厂商迫不及待地推出了千兆以太网的产品,结网络界带来了全新的解决方案。到了现在的2000年,我们已经可以很清晰地看到,不仅以太网和快速以太网在桌面和工作组级网络中打败了ATM,在城域网中,千兆以太网也凭借其良好的兼容性和优异的性价比占据了绝对的上风。
1.2.1 半双工千兆以太网 MAC层协议
对于快速以太网来说,512位的时间槽内电波或光可以传输400m远,如果在千兆以太网中, 512位的时间槽内电波或光的传输距离则只有40m远,采用星型拓扑结构的半双工千兆以太网的 覆盖半径只有20m。这样的距离覆盖范围在实际中无法得到大规模推广。为了解决这个问题, IEEE对以太网的MAC层协议作了第一次重大修改:载波扩展和帧突发。
(1)载波扩展
为了使千兆以太网的距离覆盖范围达到实用标准,半双工千兆以太网时间槽长度扩展到了 4096位,这样半双工千兆以太网的距离覆盖范围扩展到了160m。为了兼容以太网和快速以太网 中的帧结构,半双工千兆以太网的最小帧长度仍需要保持为64byte。但考虑到时间槽长度为51 byte,为了能够匹配时间糟的长度,当某个DTE发送小于512byte帧时,半双工千兆以太网MAC 将在正常发送数据之后发送一个载波扩展序列直到一个时间精结束。例如:某DTE发送一个64 byte帧,MAC将会在其后加入512-64=448byte的载波扩展序列。如果DTE发送的帧长度大于512 byte,则MAC不做任何改变。
在载波扩展的情况下,解决了半双工千兆以太网距离覆盖范围的问题,但引入了一个新的问题:对于长度较小的以太网帧的发送效率降低了。对于一个64byte的帧来说,尽管发送速度较快速以太网增加了10倍,但发送时间增加了8倍。这样的效率并未比快速以太网提高多少,为了解决半双工千兆以太网的效率问题,IEEE又引入了帧突发这种技术。
(2)帧突发
帧突发的工作方式如下:对于 DTE发送的第一个小于512byte的帧,依然使用载波扩展到 512byte,但随后发送的小于512byte的短帧不再使用载波扩展,而是加入96bit的帧间隔序列后连续发送短帧,最长可以突发到65536位。这种做法可以成立的原因在于一个正确配置的网络环境里,如果某个DTE开始发送数据后,其他 DTE都可以通过载波监听协议检测到其信号并抑制本身的数据发射。使用了帧突发的半双工千兆以太网的效率得到了改善,当一个DTE连续的突发64byte帧并突发持续65536位时,其效率约为72%。
1.2.2 全双工千兆以太网MAC层协议
在全双工千兆以太网中,由于每个千兆以太网DTE在通信时独占一个信道,因此不需要考虑以太网的冲突问题。自然,全双工千兆以太网也不受时间槽长度的限制,从而也没有距离覆盖范围的限制。
与半双工方式相比,全双工千兆以太网的MAC层的区别主要有以下几点:
(1)在接受活动中帧的发送不会被推迟
(2)全双工方式下的冲突指示将被忽略
(3)没有载波扩展,最小帧长度仍为64字节
(4)没有帧突发
在全双工交换式以太网中,如果多个输人端口同时向一个输出瑞口输出数据,那么将会在输出端口产生拥塞,这时一些输入喘口发送的帧将会被丢弃。如果在以太网帧上承载的是TCP /IP协议的数据包,那么TCP的传输机制会自动重发被丢弃的数据包,可以想象每个产生了丢包的输入端口都将重新发包,引发新一轮的拥塞和丢包,结果是导致网络的吞吐率大幅下降。 为了避免丢包(丢帧)和重发现象的发生,IEEE在MAC层引入了802.3x流量控制协议来避免丢包现象发生。
流量控制的原理是当交换机检测到发生拥塞的端口之后,就会向输入端口发送暂停帧,通知其抑制发送的流量,最后达到消除拥塞。流量控制并不能提高整个交换机的数据吞吐能力, 但是避免了在交换机内的丢包现象。
========================================================================
从上面的介绍可以看到, IEEE对以太网的MAC层协议做了几点增强:
- 载波扩展和帧突发
- 802.3x流量控制协议
这样才使以太网可以实现无丢帧的数据交换。这是FC承载的基础,如果没有这点,FCoE无从谈起。
其三,我们一直说FC over Ethernet(FCoE)中的Ethernet,其实并不只用在以太网上。现在在长途线路如SDH(同步数字线路)已经可以实现以太网帧的直接封装传输了。就是说在我们周围的数字世界中,采用以太网帧封装的数据是无处不在的,而以太网帧再叠加在不同介质上也无处不在,如:
Ethernet over SDH
Ethernet over Cable
Ethernet over Coax
IP over Ethernet (毫无疑问了, 嘿嘿)
VoIP over Ethernet over SONET/SDH
PPP over Ethernet (每天都在用着)
Power over Ethernet
Audio over Ethernet (这是欧洲一家做音响的厂商提出来的,将来我们就可以不用买昂贵的纯银音响线来连接音箱了)
SONET/SDH over Ethernet (TDM over Ethernet)
ATA over Ethernet(这可是和存储有关系的)
所以,再来一个FC over Ethernet就一点也不奇怪了!