Whenever you surf the internet, you use BGP.
Let’s start with the very basics:
- BGP stands for Border Gateway Protocol.
- This is a routing protocol that enables the Internet to work.
Secondly, if BGP is a “routing protocol”, what does “routing” then mean? Well, routing is the process of selecting the best path to a destination (an IP address in our case) across one or multiple networks. To summarize, BGP is the protocol that ensures that you can get the best possible performance when you access a resource on the internet!
In the early days of Internet, only a small number of networks had to connect to each other. At that time, routing between them was quite static and easy. But as you know, the Internet expanded massively, making this static configuration impracticable.
This is why dynamic routing protocols were invented. In 1982, Eric C. Rosen from BBN Technologies defined EGP (Exterior Gateway Protocol). In 1984, David L. Mills formerly specified it . It was finally ratified under RFC 904.
EGP is a protocol for exchanging routing information between two neighbor gateway hosts in a network of autonomous systems. An autonomous system is a collection of networks under a common administrative domain.
EGP has three major functions:
- Establish a set of neighbors
- Check neighbors availability
- Inform neighbors about reachable networks within their autonomous systems
Even if EGP was a big step forward, it has some major limitations:
- EGP works supports only tree structure topologies and hence does not support multi-path network environments. This limits its efficiency as illustrated hereunder.
- Central management: This reduces its scalability, which is a major drawback in today’s fast growing Internet where no central authority controls it.
The BGP protocol
First let’s explain what an Autonomous System (AS) really is.
The Internet is a network of networks; it involves hundreds of thousands of smaller networks known as AS. Each of these networks consists in a large pool or routers run and administered by a single organization. Autonomous systems typically belong to Internet Service Providers (ISPs) or other large organizations (technology agencies, universities, government agencies, scientific institutions, …). Each AS is represented by a unique number called ASN (Autonomous System Number). Internet Assigned Numbers Authority (IANA) assigns ASNs to Regional Internet Registries (RIRs). These in turn assign them to ASNs owners.
In 2020, the number of ASNs nearly reaches 100.000. Already in the late 80’s, the number of AS grew in such a way that the limitations of EGP became more pronounced.
In June 1989, the first version of a new routing protocol was formalized. Its name is BGP, which stands for Border Gateway Protocol. The current version of BGP is version 4, published in 2006 under RFC 4271.
Compared to its predecessor EGP, BGP supports fully meshed topologies, making multi-paths routing possible. BGP is used to route traffic from AS to AS. In this case, we are talking about eBGP (external BGP). It makes intelligent routing decisions based on different parameters like reliability, speed and cost. The routing is said to be “policy-based”.
Within an AS, other routing protocols like OSPF, EIGRP and IS-IS can be freely used. More generally, we are talking about IGP (Interior Gateway Protocol) when it comes to routing within AS’s. iBGP (interior BGP) is also one protocol that you may use for this.
How BGP impacts the performance of your platform
As a conclusion BGP drives the network performance on public networks and hence has a direct impact on the digital experience of your users if they use internet to connect to your application.