BGP (BGP4 or BGP-4):
Border Gateway Protocol
The Border Gateway
Protocol (BGP), runs over TCP, is an inter-Autonomous System routing
protocol. BGP is the only protocol that is designed to deal with a network of
the Internet's size, and the only protocol that can deal well with having
multiple connections to unrelated routing domains. It is built on experience
gained with EGP. The primary function of a BGP system is to exchange network
reachability information with other BGP systems. This network reachability
information includes information on the list of Autonomous Systems (ASs) that
reachability information traverses. This information is sufficient to
construct a graph of AS connectivity from which routing loops may be pruned
and some policy decisions at the AS level may be enforced.
BGP4 provides a new
set of mechanisms for supporting classless interdomain routing (CIDR). These
mechanisms include support for advertising an IP prefix and eliminates the
concept of network "class" within BGP. BGP-4 also introduces
mechanisms which allow aggregation of routes, including aggregation of AS
paths. These changes provide support for the proposed supernetting scheme.
Protocol Structure -
BGP Border Gateway Protocol
After a transport
protocol connection is established, the first message sent by each side via
BGP is an OPEN message. If the OPEN message is acceptable, a KEEPALIVE
message confirming the OPEN is sent back. Once the OPEN is confirmed, UPDATE,
KEEPALIVE, and NOTIFICATION messages may be exchanged. The format of each
type of messages could be found in the reference documents
Reference http://www.javvin.com/protocol/rfc1771.pdf : A Border Gateway Protocol 4 (BGP-4) http://www.javvin.com/protocol/rfc1772.pdf : Application of the Border Gateway Protocol in the Internethttp://www.javvin.com/protocol/rfc1773.pdf : Experience with the BGP-4 protocol
http://www.javvin.com/protocol/rfc1774.pdf : BGP-4 Protocol Analysis
|
EGP: Exterior Gateway Protocol Overview
Exterior Gateway Protocol (EGP) is for exchanging routing
information between two neighbor gateway hosts in a network of autonomous
systems. EGP is commonly used between hosts on the Internet to exchange routing
table information. EGP is based on periodic polling using Hello/I-Heard-You
(I-H-U) message exchanges to monitor neighbor reachability and Poll commands to
solicit Update responses. The routing table contains a list of known routers,
the addresses they can reach, and a cost metric associated with the path to
each router so that the best available route is chosen. Each router polls its
neighbor at intervals between 120 to 480 seconds and the neighbor responds by
sending its complete routing table. EGP-2 is the latest version of EGP.
A
more recent exterior gateway protocol, the Border Gateway Protocol (BGP) ,
provides additional capabilities than EGP.
Protocol Structure - ERP Exterior Gateway Protocol
Here are the EGP message types:
Name
|
Function
|
Request
|
Request
acquisition of neighbor and/or initialize polling variables
|
Confirm
|
Confirm
acquisition of neighbor and/or initialize polling variables
|
Refuse
|
Refuse
acquisition of neighbor
|
Cease
|
Request de-acquisition
of neighbor
|
Cease-ack
|
Confirm
de-acquisition of neighbor
|
Hello
|
Request neigbor
reachability
|
I-H-U
|
Confirm neigbor
reachability
|
Poll
|
Request
net-reachability update
|
Update
|
Net-reachability
update
|
Error
|
Error message
|
The common portion of the EGP message format:
8
|
16
|
24
|
32bit
|
Version
|
Type
|
Code
|
Status
|
Checksum
|
Autonomous System number
|
||
Sequence number
|
(The rest of the format is msg type specific.)
|
- Version -- The version number
of EGP. The current version is version 2.
- Type -- Identifies the message
type.
- Code -- Identifies the message
code.
- Status -- Contains
message-dependent status information.
- Checksum -- The EGP checksum is
the 16-bit one's complement of the one's complement sum of the EGP message
starting with the EGP version number field. When computing the checksum
the checksum field itself should be zero.
- Autonomous System Number --
Assigned number identifying the particular autonomous system.
- Sequence Number -- Send state
variable (commands) or receive state variable (responses and indications).