网络架构设计实现中的复杂性探讨01
Posted Milestone_wan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络架构设计实现中的复杂性探讨01相关的知识,希望对你有一定的参考价值。
本文基于Russ White 驾驭复杂的网络和自顶向下的网络设计等书籍,结合实际部署相关经验总结对网络架构设计和演进进行相关的可行性探讨。
1.网络设计的复杂性:复杂性两种直觉:①复杂性就是不理解 ②复杂性就是庞大臃肿
三元权衡的复杂性:
- CAP定理:不懂的请google
- 快速、廉价和优质:这是一个众所周知的问题,对于任何领域来说,如果希望廉价和优质,那么就需要花费大量的时间;如果希望快速和优质,那么就需要花费更多的成本;如果希望廉价和快速,那么就得牺牲质量。这种关系适用用所有事物,包括软件和硬件。
- 快速收敛、稳定性和简单的控制面:网络架构中,缩短收敛时间总是会增加控制面的复杂性,或者导致网络的不稳定,从而更容易出现故障。
网路架构中的复杂性建模:
网络设计中相关解决方案的有效性和稳健性、复杂性关系图如下所示,随着业务和网络规模及复杂性递增,解决方案可能到达相关瓶颈期,就会面临稳定性的挑战。
- 状态:减少状态总是朝着更少的优化或更多交互表面方向移动
- 速度:增加速度和反馈的方向会朝着更多的状态方向移动。
- 交互面:减少交互表面始终朝着更少的优化或更多状态方向移动。
- 优化
- 优化速度:可以通过增加控制面中的状态来优化网络收敛速度,但这样做必然会增加这两层网络之间的交互面,从而增加复杂性。
- 优化状态:可以优化网络让控制面携带尽可能少的状态。
- 优化交互面:可以按照严格的层次化方式构建网络,使得层与层之间的交互达到最少。但是这样做必然会降低收敛速度,从而导致网络可能运行在次优状态,并增加叠加式逻辑层正常操作所需要携带的状态量。
网络架构中三碗面
- 管理平面
- 控制平面
- 转发平面
如果网络的设计模式面向可预测问题,那么面对不可预测问题(基于前面的僵化效应)时就会变得脆弱不堪。对于一个网络来说,如果网络最强大的能力能够处理不可预测问题,那么就一定能够处理可预测问题,那么就一定能够处理可预测的问题,也就意味着网络不必为了处理可预测的问题提供过于健壮性的解决方案(虽然解决方案不过于健壮对于避免僵化效应来说确实有必要,但是对于解决不可预测问题来说却又显得力不从心)
常用模型:
- 分组流模型:
- 面向状态的模型:
- 面向API的模型:
- 面向策略的模型:
下面就实际网络设计架构,试图分析在常见的数据中心CLOS结构下DCN和DCI结构实践层面,按照模型进行分析对比和逐步形成相关HLD/LLD的过程展示给相关读者(作者水平有限,如果错漏之处欢迎各位大佬指正):
以上是关于网络架构设计实现中的复杂性探讨01的主要内容,如果未能解决你的问题,请参考以下文章