What makes for a successful protocol ? Which protocol is successful and why ?
Have you ever been asked these questions ?
As an engineer you cannot say I believe Protocol X is successful or Protocol Y is not.
There is nothing like ‘ I believe ‘. There should always a science behind your reason.
As a network engineers we follow the standards before we make our justification. There are many standard organisations but mainly IETF, IEEE , ITU and 3GPP are the ones which we follow as network engineers.
According to IETF RFC 5218 , successful protocol has two main criteria :
- It should meet the original design goals
- It should be widely deployed
So, we should look for these two criteria to evaluate whether a particular protocol is successful.
Let me give you couple examples:
IP and MPLS.
But let’s first consider IPv4.
Initial goal of IPv4 was to provide global reachability. It did a very good job, though you can argue layering breaks the global reachability. (Or with more and more CDN networks today, do we really need global addressing ? Let’s discuss this in a separate post)
And IPv4 is very widely deployed.
Thus, if the question whether an IPV4 is successful, it is clearly successful.
On the other hand, IPv6 initial design goal was to provide more IP address space. As probably all know that IPv4 address space already run out and none of the RIR provides an IPv4 address space (Maybe AFRINIC still provides, I haven’t checked for some time)
IPv6 definitely provided more address space thus initial design goal is achieved. But unfortunately although it is 20 years old protocol, still the IPv6 adoption is slow and it is not widely deployed.
That’s why although the initial design goal is achieved, since it is not widely deployed, IPv6 is not a successful protocol (Yet)
What about MPLS ?
Do you think MPLS is a successful protocol ?
Before you say yes, please remember what was the initial goal of MPLS ?
MPLS initial design goal is to increase the forwarding performance of the routers. IPv4 is 32 bits and required complex algorithm (Patricia/Radix tree and the lots of methods made it simpler though and longest match routing was much easier afterwards) to forward the packet, but this was 20 years ago. On the other hand, MPLS header 32 bits but only 20 bit is used for forwarding and made the forwarding easier.
Almost any modern vendor device today can process IPv4 packets as much efficient as MPLS, but still MPLS is widely enabled.
But then why MPLS is still used ? Mainly for VPNs and the Traffic Engineering.
VPN can be provided with IP as well but lack of Intserv QoS adoption, MPLS TE justifies the usage of MPLS rather than IP for those who want to provide SLA guarantee in case of link, node or SRLG failures.
No one today deploy MPLS to have better forwarding performance. But the initial goal of MPLS was that. That’s why although an MPLS is widely deployed, since it is not used to provide its initial design goal, MPLS is not a successful protocol. Maybe with more and more IPv6, people deploy MPLS to provide forwarding performance again ?
Let me know your thoughts on the comment box below.