Open Source vs Open Networking vs SDN What's the Difference
The open source, open networking and SDN (software-defined networking) are very commonly seen together in the networking. They all relate to the concept of open that some people think there is no difference between them. Practically, something can be open source but not open networking and vice versa. What’s more, being software-defined could be both open source and open networking or neither. So figuring out the concepts of open source, open networking and SDN, and the difference between them is of significant importance.
Open source, open networking and SDN (software-defined networking), these three terms are often intertwined together. Though they are similar types of technology, the context separating them are usually blurred, which often confuses a lot of people. This post will give a thorough introduction to open source and make a comparison of open source, open networking, and SDN.
Figure 1: Open source vs open networking vs SDN
What Is Open Source?
Open source is a term indicating that something is publicly accessible. It most commonly refers to the software or a program whose source code can be freely used, modified, and shared by anybody.
This term originated from software development, which referred to a specific approach to creating computer programs. With the development of the Internet, the demand for reworking plenty of source code is increasing. When the source code is opened to the public, people can freely view, learn, share, modify or possibly improve the software when they have access to that code. It is convenient for creating diverse communication paths and interactive technical communities. It also can help construct multiple network equipment such as Ethernet switches. Therefore, open source draws more and more attention. What’s more, many people join open source projects, including developers, engineers, service providers, vendors, etc. which focus on developing specific software.
Usually, open source software (program or application) accords with a license such as Apache or General Public License (GNU). The license defines terms and conditions for using or changing the open source software, for instance, a copyright statement within the code, a requirement to redistribute the licensed software only under the same license or to preserve the name of the authors. Users must agree upon all the agreements when using the open source software.
Figure 2: Open source
Open Networking vs Open Source: Is There Any Difference Between Them?
Just as their names imply, both open networking and open source hinge on the concept of being open. Well, Is there any difference between them? The answer is yes.
To understand the difference between open networking and open source, we’d better get to know the open networking first. Open networking is based on open standards (such as the OpenFlow protocol) and bare-metal hardware with flexible choices of networking operating system (OS). It aims at breaking down the propriety nature of software and hardware to deliver an agile, scalable and programmable network, which can adapt to the varying requirements. Therefore, users can choose OS freely such as Cumulus Networks' Cumulus Linux, Big Switch Networks' Switch Light, and Pica8's PicOS installed on commodity hardware or vendor hardware. Though these network OSs are commonly based on Linux, they are not needed to be open source.
To summarize, open source is any software or program available for public use and modification, while open networking is based on software designed to create more flexibility, interoperability and automation for networking devices.
Figure 3: open networking
SDN vs Open Source: Are They the Same Thing?
SDN and open source play important roles in helping achieve open networking, but they are definitely not the same thing.
SDN is often regarded as an architecture that decouples the control plane from the packet-forwarding (data) plane within the network. In this case, network configuration and management can be made from a central location instead of connecting every specific switch or server through the network. This allows enterprises and service providers to respond quickly to changing business requirements.
One of the major components of SDN is the SDN controller. It communicates with applications through northbound application programming interfaces (APIs). While it communicates with switches or routers using southbound interfaces such as OpenFlow. Since the OpenFlow protocol is an example of a pervasive open source component of networking, some people hold that SDN is the same as open source software. Actually, most SDN architectures remain using proprietary or open source software on third-party or commodity hardware.
In addition, as stated, SDN allows for open networking. This makes some people consider that SDN is open source as well. Actually, SDN can be done in a more limited environment without open networking, let alone open networking is not necessarily open source.
All in all, SDN itself is not open source. It is valued for its ability of functional separation, network virtualization, and automation through programmability.
Figure 4: SDN
Does Open Source Software Equal Free Software?
As mentioned above, open source software is publicly accessible so that some people may mistake it for free software. In fact, open source is not necessarily free, though it is freely available to anyone to use. Usually, open source software vendors charge money for their open source software. Well, open source software is commonly less costly than proprietary vendor’s software, and it's available through open source licenses from the developers.
But in some cases, according to the open source license, vendors need to release their source code if they charge the software. This may be not good for open source programmers. Additionally, some vendors find that charging for software services and support can be more valuable than for the software itself. Therefore, some open source vendors offer their software for free, but charge for helping customers install, use and troubleshoot software. You can choose the way that pays for open source software itself or for relating services according to your real needs.