BGP邻居发现如下图:
先启动BGP的一端发起TCP连接,RTB先启动BGP协议,RTB使用随机端口号向RTA的179端口发起TCP连接。
BGP报文如下:
前三个包不难看出并没有包含任何BGP信息。
那么为什么BGP运行在TCP之上?
BGP协议被设计运行在AS之间传递路由, AS之间是广域网链路数据包在广域网上传递是可能出现不可预测的链路拥塞或丢失等情况,因此BGP使用TCP作为其承载协议来保证可靠性。
BGP使用TCP封装建立邻居关系,端口号为179, TCP采用单播建立连接,因此BGP协议并不像RIP和OSPF一样使用组播发现邻居。单播建立连接也使BGP只能手动指定邻居。
邻居建立过程图如下:
BGP一共包含5种报文:
①OPEN
是TCP连接建立后发送的第一个报文,用于建立BGP邻居之间的连接关系。BGP邻居在接收到Open报文并协商成功后, 将发送keepalive报文确认并保持连接的有效性。确认后, BGP邻居间可以进行Updat