网络基础架构设计要“抽象”

网络
我们是时候离开由各种网络协议构成的小细节,这些网络协议一直在为复杂系统增加抽象层次,我们将创建一些全新的产品和运营模型。

常规网络基础架构设计是不是就像是“一堆协议”?加州伯克利大学教授Scott Shenker是这样说的。Shenker是一位网络专家,也是Nicira的合作创始人以及软件定义网络(SDN)的主要支持者。他认为,与计算机科学的其他学科不同,网络连接和网络规模仍然与其底层协议和标准紧密耦合,而没有足够的抽象。

他的论断有一定的道理,但是我认为一定要分清Shenker所指的大网络学科究竟是什么。毕竟,我们已经在主机间的通信关系上实现了抽象。开放系统互连(Open Systems Interconnection)模型本身就是一种抽象。例如,在编写聊天应用程序时,应用开发者不需要重建用于执行流量控制的TCP功能,也不需要重建用于执行主机间通信的IP。相反,他们可以使用协议栈提供的抽象概念。

为什么要在这些网络层上引入抽象?

我认为,Shenker的观点集中在如何将数据从一个网络传输到另一个网络,以及这个过程对于物理网络的依赖关系。我一直听到有人在质疑,为什么一定要在这些网络层上继续引入抽象呢?

如果您查看网络的核心协议会发现,这些技术的创建和改进过程很有技术含量。例如,边界网关协议(BGP)一直是保持网络连接互连网的基础。在路由器出现之初,它就一直存在,而且它已经被证明是一种可伸缩的解决方案。而且,行业一直在寻找突破协议规模限制的方法。例如,当路由表太大,无法保存在路由器的内存时,我们就可以使用路由汇总技术去解决路由表溢出的问题。那么,Shenker的观点到底是什么?如果行业一直都在解决面临的技术难题,那么为什么要纯粹为了改变而改变呢?

我认为,一定要理清问题抽象真正要解决的问题。但是,我并不清楚这个问题是什么。这才是真正的问题。我们已经被技术淹没,以至于只见树木不见森林。本文很好地从非技术角度阐述了如何使用抽象方法去解决问题。简而言之,抽象使我们更好地使用自己的重要思考技能,从更高层次看待一个问题,而不是直接进入问题的细节。解决路由表大小的问题就像停留在树木上。完整的SDN则致力于消除路由限制问题,在理论上实现一种支持更大容量的网络框架。

SDN是否是最终解决方案?

SDN是否是处理网络中缺少抽象的解决方法?不是。和路由汇总技术相似,SDN只是一种针对具体网络问题的方法,而不是一种使用抽象方法的解决方案。网络控制层面只是使用SDN处理的一个特定的抽象领域。我们还需要考虑设备层面。现在已经不能将Windows或Linux服务器的工作负载一对一关联到物理硬件上。现在,一个“Web服务器”已经不是一个物理设备;它只是一个概念。通过使用这种曾经的物理概念,然后经过“虚拟化”,或者说对它们进行抽象,我们就能够改进运营效果,创建新的服务模型,如基于基础架构即服务的私有云或公共云。

虚拟设备是这种功能的一种扩展。虚拟设备可以运行在公共云基础架构上,也可以运行在数据中心的一台白盒设备上,因为它们已经从物理硬件上抽象出去。因此,安装一个内容管理系统可能就是简单的下载一个虚拟设备,然后将它导入到云管理程序的虚拟化集群中。

我们是时候离开由各种网络协议构成的小细节了,这些网络协议一直在为复杂系统增加抽象层次,我们将创建一些全新的产品和运营模型。我们目前还无法看到这一点,因为我们现在仍然挣扎于各种协议之中。

责任编辑:蓝雨泪 来源: TechTarget中国
相关推荐

2013-09-09 09:28:20

网络架构SDN软件定义网络

2016-05-09 09:26:06

架构ios网络层

2013-05-27 10:58:28

Tumblr架构设计雅虎收购

2012-01-11 09:47:10

2013-09-27 17:45:36

锐捷Newton 1800交换架构设计

2023-07-05 08:00:52

MetrAuto系统架构

2015-06-02 04:17:44

架构设计审架构设计说明书

2015-06-02 04:34:05

架构设计

2019-11-25 10:58:19

Tomcat架构Web

2009-02-01 10:17:19

Java架构设计设计模式

2012-06-07 10:45:12

软件架构设计原则

2021-10-28 06:17:46

架构设计组件

2023-05-12 08:06:46

Kubernetes多云架构

2017-11-17 07:06:27

互联网分层架构APP

2009-07-10 09:31:57

MyEclipse U

2021-07-21 16:30:38

iOSAPP架构

2012-09-19 13:46:37

存储存储设计快速表态

2013-09-02 17:46:41

MVC架构设计MVC架构设计

2023-03-15 08:17:27

Kafka网络通信组件

2009-01-15 09:43:51

Web架构设计缓存
点赞
收藏

51CTO技术栈公众号