网络操作系统和 SDN 控制器有什么区别?

网络工程 专用网
2021-07-05 01:12:33

我一直试图理解 NOS 和 SDN 控制器之间的区别,因为在许多来源中,这个术语可以互换使用。例如:https : //arxiv.org/pdf/1406.0440.pdf

但随后我去寻找支持 OpenFlow 的交换机,我发现它们运行的​​是“网络操作系统”,例如PicOS或 Cumulus Linux,并且它们还与Ryu等 SDN 控制器兼容这让我相信这是两个不同的名称。NOS 位于数据平面中转发设备的硬件上,而 SDN 控制器则位于具有以太网连接的单独的商用硬件平台上。

这些曾经是一个可以互换的术语,但后来变成了两个独立的东西吗?或者 PicOS 和 Ryu 做的事情本质上是一样的?

3个回答

欢迎来到NE!我们希望您能成为这个社区的贡献者。

你提到的术语,像很多网络术语一样,通常由系统制造商定义,他们可以随意使用它们来销售他们的产品。换句话说,这些定义并不精确,并且会随着时间而改变。不同的制造商可以不同地使用相同的术语。对于像 SDN 这样的新兴技术来说尤其如此。

在SDN的背景下,它们不同的东西。NOS 是在物理交换机硬件上运行的操作系统(和专有硬件驱动程序位)。控制器是一个应用程序(或应用程序套件),可以在同一 NOS 或任何其他操作系统中运行,可以在交换机硬件、专用硬件或某个虚拟机上运行。在第一种情况下,您将所有东西都折叠成一个传统的(尽管要复杂得多)开关。

换句话说,NOS 就像任何其他操作系统一样——ubuntu、centos、windows——一个显着的例外是,NOS 带有与硬件接口所必需的供应商特定的专有位。虽然可以为任何随机操作系统/发行版构建驱动程序,但对源代码的访问极其有限。Broadcom(等)作为他们的“开源”NDK 发布的是一个非常糟糕的笑话。

网络操作系统 (NOS) 是一个旨在抽象出较低级别网络细节的概念。Windows 或 Linux 操作系统都为计算机执行此操作,并且都是操作系统。操作系统带来的优势是我们不再需要用二进制或汇编程序进行编程,并且程序可以在使用相同操作系统的计算机之间移植。

SDN 是一个 NOS 的实现。网络运营商不再通过在每台服务器或交换机上安装规则来对网络进行编程。他们(理想情况下)应该能够与源自 SDN 控制器的抽象进行交互,并将网络实现细节留给 SDN 控制器(作为选择的 NOS)。

在某个时候,可能会有第二个广为人知的 NOS 与 SDN 竞争。