Border Gateway Protocol version 4
The Border Gateway Protocol version 4 (BGP4) is a distance vector protocol. Most other distance vector protocols (such as RIP) exchange tables with cost and direction. However, BGP tables store the actual route to the destination autonomous systems (AS) by indicating the sequence of AS numbers to follow. Because the BGP tables contain complete routing information, each BGP router can construct a complete graph of AS connectivity. Routing loops can therefore be eliminated.
In another departure from most other routing protocols, BGP uses TCP rather than the User Datagram Protocol (UDP), to transport messages. Two routers employing BGP establish a TCP connection and exchange their entire BGP routing tables; after that, only incremental routing table updates are exchanged. The router sends periodic keepalive messages to its neighbors to maintain the integrity of the TCP connection; these messages are usually transmitted every 30 seconds.
BGP4 also supports policy-based routing. Routing policies are determined by the administrator of each AS and specified in BGP configuration files. These policies usually reflect political, security, legal, or economic issues rather than technical ones. While routing policies do not affect the routing protocol, per se, they are taken into account when determining the route of packets. Consider this example: The administrators of the Canadian Internet have a policy that says that packets originating at a host in Canada, that are being sent to another host in Canada, cannot leave the Canadian network. Suppose the best route, technically, from a host in Vancouver, British Columbia to a host in Montreal, Quebec would take packets through a system in Chicago. Based on the policy, packets would be prohibited from following this “best” path.
Finally, BGP4 also supports Classless Interdomain Routing (CIDR). To overcome the limitations of IP’s Class A, B, and C address structure (with their implied 8, 16, and 24 bit NETID masks, respectively), CIDR allows the use of arbitrary length subnet masks. Prior to CIDR, routing tables only had to list a network’s IP address; with CIDR, the tables must also list a network’s IP 32 bit subnet mask. While this might appear to double the size of the routing table, remember that CIDR allows address consolidation, which dramatically reduces the number of network entries in the table in the first place.
BGP version 4, the current implementation of BGP, is described in RFC 1771. The use of BGP in the Internet is described in RFC 1772.