BGP协议:邻居建立报文思考

最近刚刚了解到BGP协议。从各类文档和教材中都可以看到BGP协议依靠TCP传输,首先通过TCP三次握手建立连接,发送open报文,然后发送keepalive报文。 

 但是在实际抓包过程中,我发现BGP邻居的建立并不是简单的三次握手这么简单

 

1.在设备开启BGP后(R1)会有功能后即具备监听179端口能力,设备在指定邻居后等待32秒开始向邻居发送TCP建立连接请求报文对应图中3-8号报文,但是如果对端没有开启BGP协议则会显示为端口被拒绝。

2.当对端(R2)开启BGP协议后,R2具备监听179端口能力。但是此时R2并没有配置邻居信息,因此R2会通过置位RST回复R1请求即对应9-12号报文。

3.当R2指定邻居信息后,R2具备了建立连接的能力,R1发送的TCP连接会经历3次握手,此时R1建立TCP成功,具备发送open报文能力发送了Open报文。

4.但是R2(本人猜测)虽然具备了处理TCP的能力,但是R2的状态机并没有到达OpenSent状态,因此R2发送FIN置位并通过ACK置位确认了R1发送的Open报文。

5.R1收到FIN置位,为R2回复ACK,此时R1建立的链接已经经历了两次挥手(TCP建立连接3次握手,4次挥手)

6.为保证状态一致,R2发送与R1建立连接的TCP请求,R2与R1通过三次握手建立连接;

7.R2通过TCP建立连接成功后具备了发送open报文的能力,R1就会回复ACK对Open报文进行确认,同时置位FIN结束掉R1与R2建立的链接。

8.R2对FIN置位消息进行确认,R1向R2建立的TCP连接经过完整的四次挥手断开连接。此时还剩下R2向R1发起的TCP请求。双方都具备发送open报文的能力并经过了ACK确认,因此进入下一个阶段。


由于本人尚处学习之中,欢迎各位专家批评指正提出意见。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值