在大规模组网方面,IETF主张TRILL(Transparent Interconnection of Lots of Links (trill))协议,而IEEE主张对STP(Spanning Tree Protocol)扩展。TRILL主要针对以太网STB协议的缺点,即STB无法利用交换机之间私有的可用路径,因此路由不会总是最短和最快的,而且收敛时间比较长,直接导致未落扩展性不好,以及对链路故障比较敏感。IEEE的最短路径桥接技术,是对多路径STP的扩展,也使用的是链路状态技术,以让交换机学习最短路径和动态调整拓扑。两种技术标准都有产业界巨头的强力支持,而其他巨头要么站队,要么同时支持这两种协议。值得一提的是,很多企业对这两种尚未完成的标准,竟然已经做了各自私有的扩展。
在虚拟接入方面,目前也已经出现了两种解决思路,一是在标准以太网帧中增加一段专用的标记(VN-Tag),用以区分不同的虚拟化网络接口(VIF),以识别特定虚拟服务器的流量。这种方案需要对服务器和交换机同时做修改,需要配合做工作,才能够识别和处理VIF。另外一种方案是修改生成树协议和重用Q-in-Q,以便解决STP中规定的数据帧不能发往收到这个帧的端口的问题,因为这在虚拟化环境中是允许的;在基本的802.1q标记外增加了一层表示不同虚拟机的定义,在VLAN之外能够通过Q-in-Q区分不同的虚拟机。
上面所讨论的“网络”,是云计算中涉及到的IP层和下层技术,如果将网络新技术的讨论范围向上延伸,那么为云计算提供可靠性服务的TCP(传输控制协议)技术,也需要一些重大变革了。面向云计算的TCP至少涉及到三个问题,一个是动摇了互联网核心设计理念,第二个是需要为TCP已有的通信模式再增加一种新的类型,第三个是TCP中的拥塞避免和控制机制的改进。
“端到端透明”是TCP/IP的核心设计理念,它假设网络是不可靠(IP协议)的,因此将所有可靠性的机制(TCP协议)都放在了终端上。这一理念的基本假设是如果网络不可靠,那么通信终端必须是可靠的,否则只能中断通信服务了。因此,通信终端不可靠的问题,不在传统TCP/IP协议的考虑范围内。但从云计算的角度看,如果云计算的一个服务器(通信终端)宕机了,应该允许用户将云服务自动切换到另一台服务器(从TCP的角度看,指不同IP地址的服务器)上去,以保证服务的连续性和可靠性,但TCP协议显然做不到。云计算中的服务可靠性问题,是靠应用层还是需要设计新的面向云计算的TCP,目前还处于理论探讨阶段。
第二,需要在TCP协议中引入Incast拓扑模型。Incast是many-to-one的一种通信模式,当一个父服务器向一组节点(服务器集群或存储集群)发起一个请求时,云计算服务器集群中的节点都会同时收到该请求,并且几乎同时做出响应,很多节点同时向一台机器(父服务器)发送TCP数据流,从而产生了一个“微突发流”。这种情况主要发生在云计算数据中心,尤其是那些以向外扩展的方式实现的分布式存储和计算应用(如Hadoop, MapReduce, HDFS等)。目前已经提出了Data center TCP(DCTCP)的技术标准方案,来应对这一问题。
第三,越来越多的人认为,云计算的终端也需要参加云计算的服务,因为没理由只使用云服务器上的资源,白白浪费掉终端上日益丰富而廉价的计算和存储资源。要解决这一问题,就涉及到了云终端和云服务器之间,计算、存储和通信三种资源的协商问题。虽然传统TCP协议也在服务器和终端之间做通信流量速率的协商,但存在两个明显的缺点:1)传统TCP的资源能力协商是隐式的,靠推测实现的,不是显式的;2)没有区分计算资源和存储资源,与网络资源在经济方面的差异性。
作者简介:
何宝宏:工业和信息化部电信研究院互联网研究领域主席,通信标准研究所互联网中心主任。中国通信标准化协会IP与多媒体工作委员会副主席,ITU-T SG16 (多媒体)、ITU-T IPTV-GSI和IETF国内对口组组长