BGPで交換されるメッセージは5種類あります。BGPセッション開始時に交換されるメッセージ。自AS番号、ルータID、BGPVersionなどの情報が含まれます。BGPの経路情報の交換に使用されるメッセージ。経路の追加や削除が発生した場合に送信される。BGPセッションの切断やエラーを検知した場合に送信されるメッセージ。生存確認を行うときに交換されるメッセージ。Ciscoでは通常60秒おきに定期的に送信されます。OSPFのHelloとは動作が違い、相手ルータがKeepaliveを受信したからといってそれに応答することはありません。相手ルータに対し全ての経路情報を要求するメッセージ。それぞれのメッセージフォーマットの先頭につく固定サイズのヘッダーです。BGPコネクションに認証を使用する場合に使う。認証を使用しない場合はすべて"1"が入る。ヘッダを含むメッセージ全体の長さをオクテット単位で定義されます。メッセージのタイプコードが定義されます。TCPセッションが確立された後に送られる最初のメッセージ。自AS番号、自ルータID、BGPバージョンなどが含まれる。BGPのバージョンが入ります。現在のBGPバージョンは"4"です。自AS番号が入ります。生存確認タイマー値が定義されます。この時間を過ぎても相手ルータからKeepaliveが受信されなかった場合、NOTIFICATIONメッセージを送信しBGPセッションを切断します。Time値が異なった場合小さい方の時間を適用します。相手ルータのBGP識別子が定義されます。通常BGPスピーカーは自分自身に割り当てられたIPアドレスをBGP識別子として使用する。この値はBGPの起動時に決定され、すべてのインターフェースとすべてのBGPピアに対して同じになります。オプションパラメーターフィールドの全体の長さを定義します。この値が"0"だったらオプションパラメーターは存在しません。さまざまなオプションを定義する場合に使用します。BGPピア同士の経路情報の転送に使用します。Routesフィールドの長さを定義します。Routesが無いことを意味します。利用不能となった経路情報を定義します。複数経路定義することも可能です。Attributeフィールドの長さを定義します。Information)が無いことを意味します。パス属性という、BGPメトリックに関する情報を定義します。利用可能な経路情報を定義します。新規に追加された経路情報はこのフィールドに定義されます。複数経路定義する事も可能です。エラーが検出された時に送信されます。このメッセージが送信されたあとBGPピアが切断されます。Messageを調査することで何が原因でエラーが発生したかを知ることが出来ます。エラーの種類を定義します。エラー通知のさらに詳細な内容を定義します。エラーに関するデータが含まれます。エラーコードは以下のように定義されています。Message)を送ることによりBGPセッションを切断することなく、経路をリフレッシュする事が可能です。