Clos网络的初步分析(一)

前言

好好学习研究一下Clos网络的念头由来已久,本来计划在三月上旬把文章写完。但最近针对云的理解和认识,在内部写了一个长篇大论,占了很大的精力,所以就拖到了现在。


一、为什么会出现Clos网络?

Clos网络架构,出现之初只是为了解决电话交换网络的需求。在那个年代,电信联盟圈子里,遇到问题的解法之一就是:电路怎么办、结构怎么办。
计算机网络圈,在面对类似以太网aloha冲突时,往往会通过设计CSMA/CD、CSMA/CA这种载波侦听多路访问的冲突控制或避免机制予以应对。我们当年学习计算机网络时,涉及到局域网络,也通常只会看到核心、汇聚、接入三层,以及各种STP生成树协议,甚至根本就不知道还有Clos这个人。
但从什么时候开始,Clos网络架构被计算机网络积极引入并得到大面积应用?通常的说法是,针对数据中心内部东西向流量占比达到80%且需要极高的可用通信带宽等情况,STP生成树始终不能很好解决,因此Clos网络架构被引入进来,并在计算机网络圈里形成了一个新的名词:叶脊网络(spine-leaf)。在实际工作中,相信很多人都做过相关的实现。
但是,Clos网络架构由何而来,重点解决的究竟是什么问题,感觉有的人并不是非常清楚,因此在这里把自己的学习理解记录下来,希望能够有所帮助。

二、什么是Clos网络?

1953年,贝尔实验室研究员Charles Clos发表了一个文章《a study of Non-blocking Switching Network》(实际的文章收录时间是1952年10月)。虽然名字里有switching network,但实际上这是一个针对电话交换网络,采用多级设备实现无阻塞电话交换的方法。
个人看完之后的一个感受就是:我刚刚学习了一篇数学文章。这个文章的原文,有兴趣的朋友可以留言索取。
当时的背景是,电话交换网络设备已经由人工交换机发展为步进制交换机,再进化为纵横式交换机。而纵横式交换机基于开关矩阵原理设计而成。下面贴一张手画的矩阵示意图。

Clos网络的初步分析(一)_第1张图片
假设一个矩阵有3个输入、3个输出,为了实现任意的输入和输出之间随时可以通信,矩阵交叉点(crosspoint)就需要有至少3*3=9个点。如果有N个用户,那么就会意味着交叉点将达到N^2。如果将这种要求放到一台交换机之上,相当于是既要极大提升能力,同时还要控制好成本。既要我美艳又要我杀人不眨眼,显然是很困难的。
那么Clos的思想是什么呢?就是如何通过多个小规模、低成本的单元,来构建复杂、大规模的网络。也就是,通过增加低成本设备的数量,在不依赖单体设备的高性能、高可靠前提下,通过略显复杂的网络架构设计,来实现无阻塞的通信诉求。
当我们将矩阵由一个平面拓展到三个平面的立体结构时,交叉点数量C(3)=6N^(3/2)-3N。与前面的N2相比,数量极大减少,也就意味着显著降低了对于单台设备的性能要求。有兴趣的可以通过学习原文来了解为什么会是这个结论。这里只贴一张手画的示意图。

Clos网络的初步分析(一)_第2张图片
简要总结一下Clos网络的特点:
1.无阻塞
2.设备数量多
3.可有效降低对单体设备性能的要求

你可能感兴趣的:(数据中心网络架构,网络协议)