网络协议

关注公众号 jb51net

关闭
网络 > 网络协议 >

BGP协议-邻居PMTU检测介绍

脚本之家

BGP协议是运行在TCP之上的,所以TCP的参数设置会影响BGP的性能。在路由数目比较少的情况下TCP的参数调整可能对BGP性能影响不大,但是当路由数目比较巨大的时候调整TCP参数可以起到优化性能的作用。下面我们开始分析具体的优化方法。

首先我们来了解一下BGP协议包发送的方法,请看下图:

BGP与TCP数据传输格式

BGP首先需要把自己需要发送的数据告诉TCP,然后TCP根据数据的长度进行分段,分段大小由TCP协商的MSS值的大小决定,每个TCP分段对应着一个发出去的IP包。所以MSS参数的设置对于BGP数据传输的性能起着关键作用,如果设置过大可能会造成中间某台设备的IP层分片,BGP协议报文的传输其实是一个端到端的传输过程。 www.jb51.net

如果数据被分片了那么必然还需要重新组合恢复回来,这样会给接收者的CPU带来一定的负担,组包的过程降低了处理效率;如果MSS值设置过小,那么又会使网络的有效利用率很低,发送端和接收端对能够一次处理的报文进行多次处理,降低了效率。

通过BGP邻居PMTU检测可以解决前面提到的问题,在建立BGP邻居之前,路由器会自动发送一个PMTU报文来检测路径上的最大MTU,当得到这个值后TCP协议可以根据这个值来设定MSS的大小,发送报文时按照PMTU探测的结果,进而达到性能的最优。