The software defined battle against complexity
When we think about complexity in modern IP networks, where does the complexity reside? Is it the WAN? Is it the data center? Is it the backbone? Is it at the edge? Or maybe complexity is present end-to-end, compounding itself with every network barrier we cross. Why? Because users only care about the end-to-end service. Most people don’t say a switch is slow or a router is slow. They say that the internet, the end-to-end service, is slow.
Let’s take the access layer, particularly Wireless LAN as an example. WiFi normally lies at the network edge and the edge is rarely considered very complex. Everyone has setup a WiFi router at home, how hard can it be, right? If it doesn’t work, add more WiFi routers or upgrade the internet pipe. The underlying truth is that WiFi is very, very complex. Mostly this is because WiFi uses RF as the transmission medium and this medium is ever changing. The medium is also shared with everyone else, making it nearly impossible to create a static, predictable network. And yet despite all the hidden complexity, it (when done right) works.
WiFi vendors have long been working on handling this complexity inside their own products. Long before the market started adopting the term SDN, WiFi vendors already developed mechanisms to treat network traffic differently based the identity of the connected user. Mechanisms to adapt to and avoid WiFi interference were also developed, as were mechanisms that would select the most efficient combination of WiFi channels. Handoff mechanisms had to be developed so that the applications could use the network without interruptions during a transition between radios. Sometimes these mechanisms require dynamic creation of tunnels, that would tunnel the traffic back to its original subnet. All of this is happening transparently and if the implementation is good enough, the user will experience good service, despite the underlying complexity and dynamic nature of wireless communications. In a way, many principles behind some WiFi technologies are not unlike what we consider Software Defined Networking today.
In networking, complexity can rarely be eliminated and a battle against complexity is often a losing one, unless we at one point decide to completely redefine a lot of networking protocols used today. However, complexity can be hidden and attempts at hiding complexity have been underway for a while now. Some new attempts are happening today, often under the guise of Software Defined Networking, which obviously already outgrew its strict definition of Software Defined, where a feature, previously implemented in hardware, would now be implemented in software. Instead, Software Defined should be thought of as an architecture that hides underlying network complexity. When applied end-to-end, it is simply called Software Defined Networking, but when addressing complexity of intermediate hops, we get expressions like SDDC, SD-WAN, SD-LAN and possibly others. But in the end, Software Defined is very much about handling complexity.