Who cares about protocol complexity? It’s a topic reserved for the geeks with their heads in radix trees and deep math, right?
The protocols deployed on a network, whether used in the control plane or to carry data through the network, are actually systems in their own right—often complex systems—that interact with the other systems in the network along the same sorts of interaction surfaces discussed at the network and design levels. Because of these design surfaces, network engineers working “down in the protocols” need to know network design just as much as network architecture folks need to know protocol design.
This chapter aims to bring the complexity tradeoffs discussion to the world of protocol design, ...