Once we get set in our ways we sometimes forget that things don’t always behave the way we expect them to behave because we are the ones that are causing the problems. We create protocols and applications that try to do a thing because we don’t realize we’re working counter to the underlying network.
One great example of this comes from a recent post from Ivan Pepelnjak courtesy of an old post from Dan Hughes. Dan’s original post posits that TCP is the most expensive part of your data center because we’ve spent a generation trying to write software to overcome issues that TCP handles naturally. We’re trying to override the retry behavior when, in fact, we should be embracing it instead. If we do, as Ivan and Dan point out so eloquently:
You don’t need to buy the whole lot from one vendor, you can use commodity, or whoever suits you best. And you don’t need any of this crazy L2 networking that people are using to leave landmines all over the network. You can build a nice simple hierarchical L3 network. You can just put one firewall in each location, and have it advertise a default.
Read more here: TCP Is the Most Expensive Part of Your Data Center