BGP协议-邻居PMTU检测介绍
发布时间:2016-12-21 来源:查字典编辑
摘要:BGP协议是运行在TCP之上的,所以TCP的参数设置会影响BGP的性能。在路由数目比较少的情况下TCP的参数调整可能对BGP性能影响不大,但...
BGP协议是运行在TCP之上的,所以TCP的参数设置会影响BGP的性能。在路由数目比较少的情况下TCP的参数调整可能对BGP性能影响不大,但是当路由数目比较巨大的时候调整TCP参数可以起到优化性能的作用。下面我们开始分析具体的优化方法。
首先我们来了解一下BGP协议包发送的方法,请看下图:
BGP与TCP数据传输格式
BGP首先需要把自己需要发送的数据告诉TCP,然后TCP根据数据的长度进行分段,分段大小由TCP协商的MSS值的大小决定,每个TCP分段对应着一个发出去的IP包。所以MSS参数的设置对于BGP数据传输的性能起着关键作用,如果设置过大可能会造成中间某台设备的IP层分片,BGP协议报文的传输其实是一个端到端的传输过程。
如果数据被分片了那么必然还需要重新组合恢复回来,这样会给接收者的CPU带来一定的负担,组包的过程降低了处理效率;如果MSS值设置过小,那么又会使网络的有效利用率很低,发送端和接收端对能够一次处理的报文进行多次处理,降低了效率。
通过BGP邻居PMTU检测可以解决前面提到的问题,在建立BGP邻居之前,路由器会自动发送一个PMTU报文来检测路径上的最大MTU,当得到这个值后TCP协议可以根据这个值来设定MSS的大小,发送报文时按照PMTU探测的结果,进而达到性能的最优。