We should teach the network how to serve the applications. Really?

In a recent blog post Marten Terpstra wrote:

We are teaching our applications how to behave uniformly. Or normal. And that's not normal. We should teaching the network how to serve the applications instead. However demanding or quirky they decide to be.

That’s definitely a noble engineering goal, the “only” problem is that I don’t know many customers who would be willing to foot the bill.

There was a car manufacturer that used that same motto – they would do whatever to please the customer, regardless of how demanding they were.

Source: Wikipedia

Guess what – they were bought by Volkswagen. In the meantime, what most travelers are willing to pay for is this:

Source: Wikipedia

Coming back to networking – ATM’s goal was to provide individual applications with whatever QoS they needed ... and if you've been in this industry long enough you know how well that ended. Solving application problems (or behavior) within the network is as expensive as building custom-tailored cars. No wonder everyone claims networking is overpriced.


  1. But the cost of re-engineering the network (even down to layer 1 see plexxi) could be falling. Maybe falling to the point of being automated (see SDN)

    We as network engineer maybe should be careful not to overvalue ourselves to the point of being neo-luddites.
    1. I'm not trying to overvalue myself (or any other networking engineer) - I was saying that networking is nothing more than plumbing (the less you see it, the better it works) more than a decade ago.

      The point I'm trying to make is that it's wrong to try to solve the application problems with networking kludges - you always get hurt in the long term.
    2. Right. The key terms being "application problems" and "networking kludges"

      We should be meeting "application needs" with flexible "network solutions".

      Historically it hasn't been possible to find anyone who knew what the network needs of an application really were until after it was live on the network already built based on guesses of needs. If the needs didn't match the guesses there were only 2 options 1) Hardware level redesign or 2) the aforementioned 'kludge' And even when the kludges worked they were just as inflexible to changes in application need as the original design guess.

      Then some kludges become over hyped fads.

      I see a future where applications can be monitored and the network can respond to these applications even down to the layer 1 level. There are many computer models in other industries and I don't see anything about a network that makes them harder to then model bridges or weather. It just hasn't been done before because the network was so static at a physical level and the applications were dynamic. In such a world it was good enough to guess and over build.

      We're not there today. But I think we are starting to see beginnings of this. We're getting to the point that automation in both network and applications are becoming cheap enough to where they can respond to each other, if we just had the right models behind them.

      I'm a network engineer today, but if I see automation headed my way, I best understand it, so I'm on the right side when the smoke clears.

      (I should probably say at this point my opinions probably do NOT reflect those of my employer)
    3. And we're yet again in perfect agreement ;)
    4. Ivan, thank you for responding to my post, having opinions and discussions is what progresses our solutions.

      I could not have said it better than John's response.

      Every demand based system in the world has a model of the needed demand. Some crude, some very sophisticated. We can do so much better than throwing bandwidth and even distribution of traffic at the problem. There is no reason the network needs to be as static as plumbing. We have L1, L2 and L3 abilities to direct traffic (heck we use them today, but only in the most simplistic way). And it does not have to be more expensive at all. Just smarter.
  2. Good conversation. But won't we eventually run into the fact that a packet-switched network is fundamentally a shared resource? Trying to optimize for all applications and variables at once will eventually lead us into a condition where some application needs are mutually exclusive of one another. Now, obviously, this would depend on the specific mix of applications on any given network.

    My point being, our networks should definitely be smarter, flexible and more dynamic than they are today. But we can never truly meet every applications needs at once and will have to still make compromises and set priorities. But we can get closer ;)

  3. Andrew, no disagreement. The network will have limits, but there are most certainly applications, or groups of applications that have specific needs, where others are far less picky.

    And because every network is different, every application mix is different, the user's requirements are different, we need to create a solution that can dynamically adjust to what is best given the resources and needs.
  4. Great posts Ivan, Marten, Andrew and John, in spirit of the discussion this article also lends credence to this topic with all the overlaying and masking that seems to be going on lately

    How agnostic is the network supposed to be or can it? Are we evolving further where the “plumbing” acts on intelligence in the packet(supplied from the app.) to enhance the app.(network inspects) or is the plumbing overlaid with the ability to act on the app. (in plumbing OS/ASIC or SDN magic) to enhance the app’s service without app level inspection? Another view is does the app. “pop” in the plumbing’s acting upon inspection element or does the plumbing just inspect the apps flow/stream to then “pop” in the data element for the rest of the plumbing to act upon to enhance the app’s service? Then is the app’s services enhanced hop by hop or pre planned/provisioned end to end for flow at ingress(again in plumbing at ASIC or SDN magic).

    “The point I'm trying to make is that it's wrong to try to solve the application problems with networking kludges - you always get hurt in the long term.”
    Ding a winter! LOL…

    One old adage I used to state in the early days was "are you designing your applications around the network or designing your network around your applications? DNP and SCADA type protocols come to mind when used in IP networks.

    Philosophical tug always…

Add comment