OSI Layers in Routing Protocols

Now and then, someone rediscovers that IS-IS does not run on top of CLNP or IP and claims that, therefore, it must be a layer-2 protocol. Even vendors’ documentation is not immune.

Interestingly, most routing protocols span the whole seven layers of the OSI stack, with some layers implemented internally and others offloaded to other standardized protocols.

No routing protocol reinvents physical or data link layers. If it did, you couldn’t run it inline (on the same links as the user traffic).

IS-IS uses its own network layer. OSPF, EIGRP, RIP, and BGP run on top of IP1.

That does not make IS-IS a layer-2 protocol. If anything, you could call it a layer-3 protocol, OSPF a layer-4 protocol, and BGP a layer-5 protocol. But seriously, whatever.

OSPF and EIGRP use their own transport layers to implement reliable packet delivery. RIP uses UDP and hopes for the best, and BGP uses TCP because you can’t fool around when dealing with a million table entries.

Most routing protocols have a session layer. The session layer provides mechanisms for managing sessions between applications, synchronization points, and resynchronization. The HELLO messages and keepalives clearly belong to this layer. You might even claim that the OSPF database exchange phase provides a resynchronization service.

Every single routing protocol defines data structures that are exchanged between adjacent routers. Somehow, these data structures have to be sent over the transport layer connection, and at least those protocols using TLVs have a presentation layer. Even the convention that the bytes of the IP addresses are sent in network order is a presentation-layer convention.

Finally, we’re getting to the application layer – a distributed database of reachability information that the routers can use to build their forwarding tables.

Want to know more? Explore routing protocols section of the How Networks Really Work webinar.


  1. That’s why you can run OSPF but not IS-IS over ARCNET↩︎

2 comments:

  1. Let's settle on is-is is layer 3 adjacent!

    But really, I strongly believe the OSI model is due for a 2024 revision of the standard, to reflect reality more accurately.

    Replies
    1. > to reflect reality more accurately

      OK, I'm biting ;) There are (at least) three aspects to the OSI model:

      1. The split of functionality into layers and grouping of functions by layers.
      2. The API between layers
      3. The implementation of individual layers (protocols)

      I think we can agree that #2 and #3 are obsolete. Now, which part of #1 do you think does not reflect reality?

    2. I would need to sit down and spend hours (months) if I were to actually propose a formal (or informal) revision to the OSI spec with all the proper thought out processes and paradigms in the picture — Something that most people definitely wouldn't be willing to do, as the ROI is practically nil (unless some big names in the industry work together to make it happen, maybe).

      That being said: "The split of functionality into layers and grouping of functions by layers." That's what formal document states to my understanding, but we often just group protocol to layers instead of function to layers. This can be evident based on the fact that BGP is a "layer 7" protocol, even though, it's actual functionalities spans the various layers (as you said so yourself).

      This type of confusion/debate could probably be cleared up once and for all in a revised version of the OSI model.

      "The API between layers" I'm not sure I understand what you mean here. The OSI model doesn't define the software/programming aspect of an OSI stack to my knowledge, and seems to be supported here from day one: https://en.wikipedia.org/wiki/OSI_model#Programming_interfaces

      Programming/implementation (writing code, firmware, hardware etc) has always been independent of the OSI model and spec altogether. As the OSI is supposed to be a “reference model” for an “abstraction” of the network functionality in a hierarchical fashion.

      "The implementation of individual layers (protocols)" This ties in with the first point, a protocol may span the layers, for various functionalities.

      So maybe, a revised version of the OSI, could instead of saying "BGP is layer 7 protocol", it could be more like "BGP function A, B, C etc are in layer 3,4 ,5 ,6 ,7 respectively". Or maybe the "7 layer" needs to be re-done completely, and it could be more than 7 or less, I don't know… As this require months worth of time investment to properly form a coherent proposal. Just speaking out my thoughts on this, may or may not be accurate/realistic.

  2. Rexford, Zave authored this great paper. We hwve to remember when OSI worked on the layering model a lot was not well understood about how services would evolve over packet networks.

    https://cacm.acm.org/research/the-compositional-architecture-of-the-internet/

    Replies
    1. Thanks a million. Another must-read article!

Add comment
Sidebar