BGP鄰居關係創建過程的流程

BGP對等體創建過程當中,可能出現的一些狀態:ide

一、Idle:初始化狀態。當BGP進程初始化以後,進入Connect狀態,監聽TCP會話的創建。spa

二、Connect:本地路由器等待TCP會話創建的完成。若是該過程成功,本地路由器向對方發送Open信息,並進去OpenSent狀態;若是該過程失敗,本地路由器將重置ConnectRetry計時器,並進入Active狀態。若是當路由器處於Connect狀態時,計時器的值倒數爲0,本地路由器將嘗試另一條鏈接,重置計時器的值,而且仍舊處於Connect狀態。進程

三、Active:該狀態下,本地路由器嘗試向對方發起一條TCP會話,若是會話成功創建,本地路由器將發送Open信息,並進入到OpenSent狀態;若是鏈接失敗,將重置ConnectRetry計時器的值爲0,並回到Connect狀態;若是本地路由器從一個不預期的遠程路由器那裏收到一條鏈接請求,本地路由器將拒絕該鏈接仍舊處於Active狀態,並重置ConnectRetry計時器。路由

四、OpenSent:TCP會話成功創建後,將進入該狀態。本地路由器將發送Open信息,並等待對方給予Open信息作爲迴應。若是本地路由器從對方那裏收到了有效的Open信息,本地路由器將發送Keepalive信息給遠程路由器,雙方協商BGP會話參數,並進入到OpenConfirm狀態;若是在該狀態下,TCP會話忽然斷開,本地路由器將中斷BGP會話,重置ConnectRetry計時器,並回退到Active狀態。開發

五、OpenConfirm:當本地路由器收到對方迴應的有效Open信息,進入該狀態。本地路由器發送Keepalive信息,並等待對方給予迴應。it

六、Established:當本地路由器收到對方迴應的Keepalive信息後,BGP對等體會話關係徹底創建。class

--------------------------------------路由器

1.以TCP隨機的源端口@(1024~~50000)目的端口179(BGP)發送SYN包。(在此以前是Idle,此時是connect鏈接狀態一直到TCP三次握手成功)請求

2.對端收到第一個SYN後會以源端口179(BGP)目的端口@(1024~~50000)發送SYN 及 ACK。im

3.收到對端的ACK SYN後,仍是以TCP隨機的源端口@(1024~~50000)目的端口179(BGP)發送ACK包至此TCP三次握手結束。(若是三次握手成功就會直接進入打開發送狀態,沒成的話就會初始化TCP鏈接到Active狀態。)

4.結束TCP三次握手時本端還會發送BGP的OPEN 消息以TCP S D:179(此時應該是Opensent打開發送狀態狀態)

5.收到BGP的OPEN  消息後,會給對端以TCP S:179 D發送BGP的OPEN消息及KEEPALIVE消息。(此時是OpenConfirm打開確認狀態)

6.收到對端BGP的OPEN及KEEPALIVE消息後,會當即回覆個BGP的KEEPALIVE 消息以TCP S D:179。

7.收到對端的KEEPALIVE消息後會當即回覆個TCP的ACK包,以TCP S:179 D此時BGP鄰居已經創建。(此時事後纔算是Established創建狀態)

相關文章
相關標籤/搜索