What does it take to Implement a Network Protocol?
Network Protocol Development

What does it take to Implement a Network Protocol?

Routing Protocols are the heart of Networking. They power the Data Center Switching, Internet, clouds, and anything which involves data flow across two machines interconnected directly or indirectly.

There are several routing protocols that are in existence — each one id developed to address the specific routing requirement. The way the routing protocols internally work — they are classified into two wide categories popularly known as — Distance Vector and Link State Routing Protocol.

Distance Vector Routing Protocol includes — EGP( Exterior Gateway Protocol ) and BGP ( Border Gateway Protocol ). It is BGP that essentially powers up the entire internet. Link State Routing Protocol, on the other hand, includes — OSPF ( Open Shortest Path First ), and ISIS ( Intermediate-System to Intermediate-System ), RIP (Routing Information Protocol ).

So, what is the end goal of a typical Routing Protocol? Why are they required? Where do they position in the market today?

Routing protocol runs on Routers. Routing protocols help routers to exchange information among themselves in a way that each router would end up building the routing table which is consistent and keep changing as the network topology changes ( due to link failures etc ). Routing protocols, once deployed, don't need any human interference in keeping the traffic flow from several sources to destinations along the most optimum path in the network. Without routing protocol in place, the admin would need to configure the routes manually in all router machines in the network which is seemingly next to impossible task to do if the network grows just beyond several 10s of machines. Hence, Routing Protocols are the automated solution to this problem. Routing protocol keeps on exchanging several pieces of information among routers in a way that each router reacts to network topology change of any kind, accidental or by admin config, such that routing tables of all routers stay updated and consistent all the time.

These protocols are over 2 decades old, yet they continue in demand in the industry. With the explosion of the internet and Network equipment connected to the internet, Routing protocols need to be continuously enhanced to meet the ever-increasing scale requirements of the network. Moreover, Customer is growing smart and want their network up and running 24x7, new features to Routing Protocol are being added gradually by several companies to meet the specific requirements of the customers.

Routing Protocol is highly standardized, IETF ( Internet Engineering Task Force ) ensures that there must be no ambiguity in understanding the routing protocol behavior and inter-operability is maintained across devices of different vendors. RFC ( Request for Comment ) are special official documents that are released/revised from time to time which define exactly how the behavior of a Routing protocol should be. Companies implementing routing protocol have to ensure that implementation compliance fully with RFCs of that protocol.

Companies maintain a dedicated team of engineers as per the protocol complexity and size. For example, BGP would have a separate team of 7–10 members responsible for the development and maintenance of BGP protocol alone. A typical protocol such as BGP is a non-trivial piece of software that may span across a million lines of codes approximately. As of today, all core routing protocols are implemented and supported in C by telecom companies. The reason is — Speed, and interaction with the underlying Hardware ( Application Specific Integrated Circuits ASICS ) is made native, and the design of the routing protocol is non-object-oriented in nature. They usually cannot be modeled into the classes-objects paradigm, hence non-OOP language such as C is still the best choice by the telecom industry for core network component development.

The best thing about Telecom/Network Dev domain is that — their tech stack does not change that frequently, like the front-end framework/tech stack changes every 4–5 years. Cisco/Junipers and other telecom giants have been continuously developing their networking equipment using more or less the same tech stack over decades from the beginning and just one programming language — C. It is essentially the Network Operating System Development where tech stack change is not feasible after the project is growing to a certain point. You will probably never see the Linux kernel fully reimplemented in Rust in your lifetime.

How to become a network protocol dev/test engineer?

In my 10 years of experience in a routing development domain, I have worked in 4–5 protocols so far — IGMP/MLD ( L2 Multicast ) , PIM ( L3 Multicast ), ISIS ( L3 unicast ), Segment Routing and Traffic Engineering ( SRTE ). It does not require much effort to start a career in the Networking Core Development Domain. In my case, I didn't choose this career path, but the career path chose me ( Campus placements ).

Here I am listing the pre-requisites required to become and grow as a Network Core dev engineer :

  1. C ( must be expert, no compromise ), good to know a bit of C++
  2. OS Concepts, knowledge of Multi-threading, Manual Memory Mgmt skills
  3. Networking basic concepts, and network troubleshooting skills
  4. Experience working in Linux/Unix Environment
  5. And of course, if you are a dev you need to deal with DS/ALGO.

Where can I practice to become a Network Protocol Developer, is there any course that teaches not just theory about Network Protocols, but actually how to implement one from scratch?

Ohh yes, CSEPracticals exactly has the right set of courses to address this query. Though theoretical knowledge of network protocol can be obtained from several resources present all over the internet — books, Online Courses, online training, and labs are also available easily, what was missing is learning the Core-development of networking protocols. To date, I have not seen the course which exactly addresses this exclusive requirement of the developers. Having said that, CSEPracticals offer the course on Routing Protocol Development from start to finish, and from absolute scratch. The protocol chosen is IGP ( Interior Gateway Protocol ) as a case-study example. Need not worry, we cover the required theory first before we begin the implementation.

Complete Course : https://www.csepracticals.com/proto-deva

Website : https://www.csepracticals.com?link=92

Tgram Group (1k+) : https://t.me/telecsepracticals

要查看或添加评论,请登录

社区洞察

其他会员也浏览了