《大话存储》第13章-IP与FC融合的结果

13.1 FC的窘境

  • FC的扩展性问题
    • FC为什么扩展性差?因为如果通信双方距离太远的话,需要自己架设光缆,或者租用电信的专线光缆,这两者成本都很高。
    • E1线路有自己的编码格式,不能将电信部门接入的光纤直接插到FC设备上,因为两端的编码方式不同,不能和局端的设备建立连接,所以需要增加一个协议转换设备(协议隧道封装设备),将E1协议解封装,转换成协转设备后面的协议逻辑。目前已经存在FC over Sonet、FC over ATM等协转设备了,不过这些专线的扩展性仍然不强,而且这种方案以及对应的设备也非常昂贵和稀少。
    • 目前看来,如果要扩展FC网络,让相隔很远的两地之间用上FC协议,最好的办法就是自己架设专用光缆。可是自己架设光缆也只能在自己可控的范围内,比如一个大厂区之内,但是如果实在市内,或者两个城市/省之间,私自架设光缆是绝对禁止的。
  • 解决方案
    • 首先,要走出去,就一定要租用电信部门的线路。电信提供了两种线路:一种是接到Internet的线路,也就是接入电信部门的Internet运营网络,通信的双方都接入,并且使用TCP/IP通信;另一种就是光缆专线,也就是通信双方都接入电信部门的专用传输骨干网络,这条专线端到端的带宽由接入提供商保证,只要两端的设备支持,其上可以运行任何上层协议。上层帧会被底层封装协议(比如E1等)再成帧传送到电信部门骨干传输网络中。
    • 虽然Internet接入可以获得100Mb/s或者1000Mb/s的速率,但是这只是本地带宽,端到端的带宽,以现在的电信部门TCP/IP网络环境,除非购买接入商的QOS或者MPLS TE服务,否则没有人能够保证两点间的通信带宽(速率)。
    • 而专用线路虽然保证了带宽,但是只能承受E1等低速专线,且价格相对Internet接入要贵很多。而且目前只有V35-E1封装解封设备和E1-以太网封装解封设备,并没有E1-FC封装解封设备。而V35串口和以太网这两种二层协议,都普遍被用来承载IP协议,所以目前来说,E1一般用来承载IP作为网络层协议。有些路由器自带E1封装解封模块,可以不用外接协转,但是这些都是IP设备,和FC丝毫没有关系。
    • 可以看出,FC如果脱离了”后端专用“这四个字到开放领域,显然是无法生存的。而IP SAN,则软硬通吃,只要有IP的地方,不管其下层是什么链路协议,就可以部署IP SAN。TCP/IP统一了下层凌乱的各种协议。

13.2 协议融合的迫切性

  • FC不可扩展,TCP/IP扩展性很强,如果把FC协议封装到TCP/IP协议中来传输,是不是也可以获得TCP/IP的扩展性呢?这个想法比较大胆,因为FC本身也是作为一种可以传输其他协议的协议,FC甚至可以承载IP,作为IP的链路层,那么为什么现在却反过来需要用IP来承载呢?
  • Protocol over Protocol,PoP,即一种协议被打包封装或者映射到另一种协议之上。这种思想在网络协议领域中经常使用,姑且称之为”协议融合“。

(1).以太网和TCP/IP——不能不说的故事

  • 以太网是一个网络通信协议。前面讲到以太网是可以寻址的,也就是说它涉及了OSI第三层网络层的内容。大家都连接到一个以太网环境中,不需要任何其他上层协议,就可以区分开对方,进行通信。既然这样,为何我们总是说以太网+TCP/IP协议二元组,而不是仅仅说以太网,或者TCP/IP协议?
  • 因为以太网和TCP/IP协议是逻辑上分开的,它们各自是不同的协议体系,那么为什么总是把它们组合起来说呢?它们之间有什么割舍不断的恩恩怨怨呢?这其中原因,还要从IP讲起。

(2).IP本位

  • IP就是一个身份标志,是用来与其他人区别的一个ID。以太网协议中规定的MAC地址,从原理上讲,就足够用来区分网络中各个节点了。但是MAC寻址有两个缺点:一是MAC地址太长,48b,用于路由寻址时效率太低;二是世界上并不是每个环境中都用以太网来建立网络,除了以太网,还有其他各种方式的网络系统,各自有各自的寻址方式,如果要让所有类型的网络之间无障碍的相互通信,就需要一个统一的规范。
  • 我们给每个网络设立一个网络地址兑换设备,也就是协议,将统一的IP地址兑换成这个网络的自用私有地址,用这种方式实现各种类型网络的相互连通。网络中的兑换机制,是通过ARP协议实现的,ARP协议可以将一种网络地址映射成另一种网络地址。每种网络想要用IP来统一,都必须运行各自的ARP协议。
  • 数据包带着IP地址到了服务器所在的局域网之后,会通过局域网的路由器发出ARP请求,来把IP地址再兑换成服务器所在局域网络的地址。如果服务器所在的局域网是以太网,则对应成MAC地址,然后通过以太网交换设备,找到这个MAC地址所在的交换机端口,将数据包发向这个端口,从而被服务器收到。
  • 为什么要经过多次兑换呢?首先把IP转换成域名,是为了方便记忆,不必记忆那些复杂的IP地址;其次把MAC转换为IP,是为了天下统一,相互流通。
  • 其实整个Internet不仅仅都是以太网,以太网适合局域网联网通信,但是不适合广域网情况,广域网的联网协议,比如PPP、HDLC、ATM等,也像以太网一样各有各的寻址体系。在一个Internet上有这么多种不同地址的网络,它们之间若要相互融合、寻址,就必须在各种地址之间,相互翻译、转换、映射,数据包每经过一种网络,就转换一次,这样非常麻烦。IP地址的出现使得所有联网的节点,不管用的是以太网,还是Frame Relay,统统都分配一个IP地址给每个节点,对外最终以IP地址作为寻址地址,而将IP地址再映射到自己所在网络的所使用的地址上。
  • 用来进行地址映射的程序,称为Address Resolution Protocol,即ARP。ARP不仅仅代表以太网中的IP地址和MAC地址的映射,它代表任何种类地址之间的映射对应关系,从这一点来说,DNS协议也应该归入广义的ARP协议中。
  • IP统治了OSI的第三层,将原来占据第三层的凌乱地址种类统一了。映射到(承载于)以太网的IP,称为IPoE;映射到帧中继的IP,称为IPoFR;映射到ATM的IP,称为,IPoA等。从此一种新的概念诞生了:PoP,即Procotol over Procotol。

(3).IP缺乏传输保障功能

  • IP统一了天下还不够,因为IP最大的作用就是寻址和路由以及适配链路层MTU,并不提供其他功能,而作为一个健全的网络传输协议,必须具有传输保障功能。而以太网是一个面向无连接的网络,不保障数据一定会传送到对方,不管目的端口有没有收到,源端口只管向外发送。
  • 端到端,是相对于“过路”来说的。过路是指在两个终端之间通信路径上的网络设备之间的路径。链路层的传输保障就是一种过路保障,因为链路层只保证相连的两个设备之间传送数据正常无误,但是不能保障通信最终端接收和发送的数据正常无误。因为在一个典型的包交换网络中,数据包一般都是一跳一跳地被传送的,每一跳两端的设备用链路层协议进行传输保障。
  • 但是最终目的是要让通信的最终两端无误地收到数据,才能算作真正的传输保障,即端到端的保障。而FR协议所做的,只是在过路的时候保障链路正确传输。如果链路正确传输给了终端,而终端到最终上层的某个环节出错了,那么数据同样也是错误的,所以,要实现端到端的传输保障,一定要在最终传输终端上运行一个侦错的纠错逻辑,用来发现链路层所发现不了的错误。
    在这里插入图片描述

(4).TCP保驾护航

  • TCP作为一个程序运行在通信的两个终点,监控终端最终发送和接收到的数据包的顺序、缓存区、校验等信息,检查是否出现丢包、阻塞等事件,一旦发现错误,立刻纠错重发数据包。
  • TCP不是运行在通信路径上的,而是运行在通信终点的两端设备上。即使过路链路保障机制再健全,TCP也是有必要的,因为数据包只有被终端正确接收到,才能算真正的传输保障。
  • 所以,在IP之上,又凌驾了一层TCP逻辑,用来保障端到端的无误传输。而FR等链路层协议的保障机制,只能保障本段链路传输无误。不能保障端到端的正确收发,所以只能沦为数据链路层协议的角色了,用来承载IP和TCP。
  • 协议之间也是在互相利用、排挤、吞并及融合,以适应不同的应用环境,不可能为每一种应用环境都设计一种协议,协议之间互相利用、融合,才是最好的解决办法。

最佳拍档——TCP/IP和以太网:因为以太网使用的太广泛了,而OSI的第三层、第四层,也几乎被IP、TCP给统一了,所以以太网+TCP/IP,当然就成了一堆好搭档了。


13.3 网络通信协议的四级结构

  • Payload层:
    • Payload是协议所承载的与本协议逻辑无关的最终数据,是通信终端通过本协议最终需要传送给对方的数据。Payload也就是协议所运输的货物,Payload层中的数据,既可以是最终应用产生的数据,也可以是另一种协议的信息表示层+Payload数据。如果Payload封装的是最终应用产生的数据,则表示这个协议是直接被上层应用程序来调用,从而完成程序之间的远程网络通信的。
    • 如果Payload封装的是另一种协议的信息表示层+Payload数据,那么就证明这个协议此时正在承载那个协议。即协议A封装了协议B,或者协议A承载了协议B,或者说协议B is over协议A(BoA)。后面还有一种协议被Map(映射)到另一种协议,而不是被封装,这种融合方式称为AmB,是彻底的协议转换,而不是仅仅做隧道封装。
  • 信息表示层:
    • 就是附加在Payload数据之外的一段数据,也称作协议开销,因为这段数据和最终应用程序无关,是运行在通信双方的通信协议用来交互各自的状态,从而使对方做出正确动作的一段重要信息。
  • 交互逻辑层:
    • 最重要的一层,是一个协议的灵魂。这一层其实就是运行在通信双方协议系统上的动作程序代码逻辑,根据对方传送过来的信息表示层数据来做出相应的动作逻辑,再生成自己的信息表示层发送给对方,然后对方再做相同的处理判断动作,就这样完成通信双方之间的正确动作。
    • 交互逻辑层其实就是协议的设计思想。交互逻辑层对于每种协议都不相同,但是很多都类似,可以说网络通信协议基本思想都是类似的,因为他们所实现的目的都是一样的,就是将数据通过网络传输到目的地。正因为如此,各种协议的交互逻辑层才可以相互融会贯通,将一种协议的逻辑,映射翻译到另一种协议的逻辑,从而将各种协议的优点结合起来,完成目标。
    • 协议逻辑层一般都是运行在通信双方两端的,但是想IP路由协议等,通信双方经过的路径上的所有设备,也都需要运行,因为IP包是一跳一跳被接收并且转发的。
  • 寻址层:
    • 是帮助协议来找到需要通信的目标的一套编址和寻址机制。比如IP地址、MAC地址、DLCI地址、电话号码等。如果是点对点传输协议,则可以忽略此层,因为不需要寻址。而且不同协议之间的寻址层,可以互相映射翻译。
    • 以上的这四层,是任何一个网络通信协议所必须具备的。
  • 通信协议的相似性:
    • 相似性是通信协议之间相互融合的一个条件。而协议之间相互融合的另一个促成因素,就是协议使用广泛程度不同,有时如果要完成一个目标,不得不借用某种协议。
    • 就像TCP/IP协议,TCP/IP协议占领了全球Internet的领地。如果有一种协议想跨越地域或国家来进行通信,但是自己又无能为力,因为它首先没有专门为它准备的物理线路,其次它的设计,也不适合大范围、长距离的广域网环境,那么它只能来租用TCP/IP协议,将自己封装到IP包中传输。

13.4 协议融合的三种方式

  • 调用关系:
    • Use:一种协议完全利用另一种协议。
    • 比如TCP调用IP,因为TCP没有寻址功能,所以它利用IP来寻址。而IP又可以调用以太网,因为IP只有寻址功能,没有链路传输的功能,所以它利用以太网提供的链路传输。
  • 隧道关系:
    • Tunnel:一种协议将另一种协议的完整数据包全打包隧道封装到新协议数据包中。
    • 进行协议转换的设备根本就不需要去理解内层协议到底是什么东西、想干什么,只要将数据包统统打包发出去。Tunnel的出现,往往是由于被Tunnel的协议虽然和外层协议都在某一方面具有相似甚至相同的功能,但是在某些特定的条件下,被Tunnel协议不比外层协议表现得优秀,不适合某种特定的环境,而这种环境,恰恰被外层协议所适合。
  • 映射关系:
    • Map:进行映射翻译,只将原来协议的Payload层数据提取出来,重新打包到新协议数据包中。
    • 是比Tunnel更复杂、更彻底的协议融合方式。就是将内层协议的部分或者全部逻辑,映射翻译到外层协议对应的功能相似的逻辑上,而不是仅仅做简单的封装。
    • Map相对于Tunnel,是内层协议的一种最彻底的融合,它将两种协议的优点,融合得天衣无缝。内层协议的Payload层在Map动作中是不会改动的,因为Payload层的数据只有两端通信的应用程序才能理解。

未完待续~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值