BGP使用有限狀態機建立鄰居,* * *有六種狀態。BGP的運行過程是根據資源和事件的要求在這六種狀態之間進行轉換。它們是:
1.閑置的
BGP協議最初處於空閑狀態。在這種狀態下,系統不會分配任何資源並拒絕所有傳入的BGP連接。僅當接收到啟動事件時,分配BGP資源,啟動ConnectRetry計時器,啟動到其他BGP對等體的傳輸層連接,並且還監視是否有來自其他對等體的連接請求。
2.連接
在這種狀態下,BGP等待TCP完成連接。如果連接成功,則本地清除ConnectRetry定時器,並向對等方發送OPEN消息,然後狀態更改為OpenSent狀態;否則,在本地重置ConnectRetry計時器,監聽對等方是否啟動了連接,並進入活動狀態。
3.活躍的
在這種狀態下,BGP初始化TCP連接以獲得對等體。如果連接成功,將在本地清除ConnectRetry計時器,並向對等方發送OPEN消息,狀態將更改為OpenSent。
4.打開發送
在這種狀態下,BGP等待對等體的OPEN消息。收到消息後,檢查消息。如果發現錯誤,向本地對等方發送通知消息,並將狀態更改為空閑。如果消息正確,BGP發送KEEPALIVE消息並進入OpenConfirm狀態。
5.打開確認
在這種狀態下,BGP等待KEEPALIVE或通知消息。如果收到KEEPALIVE消息,它將進入建立狀態,如果收到通知消息,它將進入空閑狀態。
6.確定的
在這種狀態下,BGP可以與其他對等方交換更新、通知和保持活動消息。如果接收到正確的UPDATE或KEEPALIVE消息,則認為對端處於正常操作中,並且本地重置HoldTimer。如果收到通知消息,本地切換到空閑狀態。如果收到不正確的更新消息,則在本地發送通知消息以通知對端,並將本地狀態更改為空閑。如果收到TCP斷開通知,BGP連接將在本地關閉並返回空閑狀態。