Reflection on Network Intelligence

Remember in my early days in networking industry, Cisco used to fight against Microsoft regarding where the network intelligence should be implemented. Microsoft at the time dominated the PC market and was pushing network features at end-point such as security, acceleration, QoS etc. Network vendors led by Cisco on the other hand wanted to weave most if not all network intelligence into network itself. As we know up till now, similar fights have never ended, just with player and battle fields changes. Unfortunately, this left us some confusing products and terms we still have to deal with up till now, such as UTM devices in the network but truly not a networking device, and over-kill TCP/IP stack deployed among end-points to accommodate worst network scenario where they are actually communicate in a close proximity LAN environment.

Arguments from either sides are valid to certain extent and I’m not making any judgement here. It just suddenly stuck me when I trying to solve a networking issue seemingly unsolvable with conflicting constrains. That is the starting point of my long journey of rethinking some of the basics in the networking industry. For such a long time we have isolate networking from other information technologies such as compute, storage. We define some protocols and implement some network infrastructures based on very OLD assumptions that we networking guys are only responsible to deliver data from A to B fast, reliable and effectively. The additional intelligence we want to baked into network are also for above purposes as well, such as TCP offload, in-network retransmit etc. We never question why we need to do that and unfortunately this holds true for other parts as well.

About 9 years ago I started moving my knowledge stack up from embedded network design into software defined networking (SDN), Intent Based Networking (IBN) and then networked applications. The higher I goes up the stack, the bigger the scope I can see, both problems and solutions, from interface to network element, to site, to multi-site, to global. During the transition, I learnt that something used to be so important even critical at local becomes irrelevant when looked at from a much bigger picture, such as pursuing zero drop rate at interface level, which has very little impact to application, our ultimate goal.

Along this line of thinking, I would argue that even if all parts are optimal, the combination may not be optimal. Why? It’s also strongly depends on how we partitioned the original problem, in other words, how parts are divided and their responsibility defined. We know know we need to optimize networking End-to-End to satisfy application needs rather than focus on some intermediate segment. What we also need to know is that there is NO fixed boundary among compute, storage and networking within an application. As I mentioned in the 1st post in NCS-Reflection series, rather than shipping data between compute and storage or between compute units, compute instructions can be shipped or triggered remotely instead under certain circumstance, totally changes the request and requirement for networking part.

To summarize, I think we should not talk about intelligence or optimization in an isolate matter, either just a network segment or network as a whole alone. Intelligence and optimization all must serve the benefit of application hence must be considered as a whole at application level before dividing into networking or computing portions. There is no need for network to exist if it doesn’t serve the compute and storage, on the other hand, if compute and storage treat networking part of interconnection, like ALU to Registers, CPU Core to memory and I/O systems, the world will just like a super big computer, with interconnection among compute nodes and storage nodes. If applications within a computer can be made agnostic (largely) to computer configuration, we sure can make them fly in this globally abstracted supper computer.

This is a challenging time for networking, but it’s also a perfect time for breaking away: Welcome to an era of converged compute, storage and networking, friend!