Advance Computer Network Review(1)——FatTree

这个系列是对21~22学年夏季学期高级计算机网络课程的复习提纲,这是本系列的第一篇:FatTree在数据中心中的使用,主要覆盖的内容如下:
1.拓扑结构和编址方案
2.路由算法,找出任意两个主机之间的路由路径
论文原文:《A Scalable, Commodity Data Center Network Architecture》SIGCOMM’08

一、拓扑结构和编址方案
首先这篇文章回顾了数据中心通信中存在的一些问题,然后针对这些问题提出了一种基于胖树(Fat Tree)的Clos拓扑来连接商品级以太网交换机。提出的架构如下,展示的是一个k元胖树(k=4)的架构图:
在这里插入图片描述
k元胖树架构具有如下特征:
1.有k个pods,每个pods包含2层,每一层包含有 k 2 \frac{k}{2} 2k个交换机。
2.每一个k口交换机, k 2 \frac{k}{2} 2k个端口直接在底部连接主机(hosts)剩下的 k 2 \frac{k}{2} 2k个端口向上连接到高层交换机
3.最顶层的 ( k 2 ) 2 {(\frac{k}{2})}^2 (2k)2核心交换机也拥有k个端口,且第i个端口正好连接到第i个pod,所以pod聚合层中的连续端口以 k 2 \frac{k}{2} 2k的跨步连接到核心交换机(?,这点需要理解)。
4.k元胖树中对于位于不同pod中的主机,有 ( k 2 ) 2 {(\frac{k}{2})}^2 (2k)2条最短路径可选,但只有其中一条会被选。


下面再来看看在这个架构中的编址方案,首先原文中明确说,块中所有的IP地址均取自私有地址空间10.0.0.0/8中。编址方法依照设备位于不同的层次,可以分为以下三种情况:
1.pod中的交换机,对于这类交换机,编址方案为10.pod.switch.1,pod就是它所在的pod号,switch就是它在自身的pod中的编号,这个编号遵循从左向右,自底向上(注意左右的优先级高于上下)的编址顺序,取值范围是[0,k-1]。比如对于上面的示意图中的pod2,由4个交换机构成的网格中,编制空间就是[0,3],左下的就是0,右下就是1,左上就是2,右上的就是3。

2.核心交换机,对于这类交换机,编制方案为10.k.j.i,k就是元数,在示意图中k就是4。原文中说(j, i)指的是交换机在 ( k 2 ) 2 {(\frac{k}{2})}^2 (2k)2构成的核心交换机网格中的坐标,范围是[1, k 2 \frac{k}{2} 2k],从左上角开始编址。那其实上面这个示意图中,我们完全可以将核心交换机层看作一个2x2的正方形网格来编址。

3.主机(host),主机的编址方案是10.pod.switch.ID,pod,switch的含义与1中相同,不再赘述。ID则标明的是主机在其所在子网中的位置,取值范围是[2, k 2 + 1 \frac{k}{2} + 1 2k+1],自左向右编址,因为1被交换机占据了,255不能用。这里原文中还提到一句,每一个低层次交换机都负责一个含有 k 2 \frac{k}{2} 2k个主机的/24子网(k < 256)。


二、路由算法
这部分来讨论一下在上述的架构中如何完成路由选择。
1.pod内部的信息交换
首先,在一个pod中的交换机(无论低级还是高级)都保有本pod所辖的所有子网前缀,这也就意味着如果是一个pod内部的信息转发。那么这个信息在被转发到pod的高层交换机时就会被转发到对应的子网。
在这里插入图片描述
2.pod之间的信息交换
本文中所用的路由表是两级的,第一级使用前缀匹配,第二级采用后缀匹配。前缀匹配项用于pod内部路由,后缀匹配项用于pod之间的路由,而二级表在一级表中的记录是0.0.0.0/0。
在这里插入图片描述
这里面就涉及到对两种设备路由表的生成,一是pod里面的交换机,还有一个是核心交换机,它们生成路由表的算法不同。

首先看pod里的交换机,这里面同样分两种情况,一是位于顶层的交换机,还有一种是位于底层的交换机

对于位于顶层的交换机,路由表生成算法如下:
其中3-5行这段代码是在为pod内部交换提供路由项,而6-9行是在pod之间的交换提供路由项,根据式子(i-2+z)mod(k/2)+(k/2)计算出的端口可以将跨pod访问指定主机的信息从正确的端口转发出去,模运算的目的是保证负载均衡
在这里插入图片描述
对于位于底层的交换机,它不需要负责转发到子网,只负责转发到指定主机,所以3-5行的逻辑可以抹去,当然第二行的交换机编号也要动一下
在这里插入图片描述
对于核心层的路由,路由表生成算法如下,其实就是对指定的pod,从指定的端口转发出去(之前说过核心交换机第i个端口正好连到第i个pod):
在这里插入图片描述
最后文中举了一个跨pod路由例子:
在这里插入图片描述
1.从10.0.1.2到10.0.1.1,由标准交换技术完成,因为10.0.0.1是源主机的网关。
2.10.0.0.1到10.0.2.1, 查二级路由表(后缀匹配,注意i=3),从相应端口传发出去。
3.10.0.2.1到10.4.1.2,查二级路由表,从相应端口转发出去。
4.从10.4.1.2到10.2.2.1,可以获得一级路由表中10.2.0.0/16的匹配,从而转发到pod2。
5.从10.2.2.1到10.2.0.1,因为此时已经和目的网络处于一个pod中,所以此时可以从一级路由表中获得匹配10.2.0.0/24。
6.从10.2.0.1到10.2.0.3,由标准交换技术完成。

这篇文章的梳理和学习到此结束。

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值