How Did Software Defined Networking Start?
Software-Defined Networking is clearly a tautological term – after all, software defined networking device behavior ever since we stopped using Token Ring MAUs and unmanaged hubs. Open Networking Foundation claims it owns the definition of the term (which makes approximately as much sense as someone claiming they own the definition of red-colored clouds), but I was always wondering who coined the term in the first place.
I finally found the answer in a fantastic overview of technologies and ideas that led to OpenFlow and SDN published in December 2013 issue of acmqueue. According to that article, SDN first appeared in an article published by MIT Technology Review that explains how Nick McKeown and his team at Stanford use OpenFlow:
Frustrated by this inability to fiddle with Internet routing in the real world, Stanford computer scientist Nick McKeown and colleagues developed a standard called OpenFlow that essentially opens up the Internet to researchers, allowing them to define data flows using software--a sort of "software-defined networking."
You did notice the “a sort of” classification and quotes around SDN, didn’t you? It’s pretty obvious how the article uses “software-defined networking” to illustrate the point… but once marketing took over all hope for reasonable discussion was lost, and SDN became even more meaningless as cloud.
The TR article was written by a journalist. At about the same time, McKeown gave a talk at IEEE Infocom with Software Defined Networking[1] as the title. So it wasn't just a phrase used to illustrate a point. He was using the term to describe what they wanted to accomplish with openflow.
1. http://yuba.stanford.edu/~nickm/talks/infocom_brazil_2009_v1-1.pdf
Personally I don't want my router/switch to be bossed around by a dictator controller no matter who is doing the central programming. If the controller gets hacked or fails your whole network is dead. I want my router/switch to be able to think independently and react appropriately to changes in network conditions.