BNT8000仪表在一例户文件传输带宽不足问题的分析与解决实际应用

本案例TCP引发的视频流丢包原因分析与模拟验证案例是由沈阳市分公司所属专业运维-集客支撑部提供,根据他们通过使用BNT仪表,在实际运维过程中遇到的问题及通过BNT仪表来解决现场运维问题的经验交流。

 摘要:TCP协议的吞吐量会受到传输电路时延的制约:两端操作系统内TCP窗口尺寸需要与传输电路的带宽时延积匹配,TCP的吞吐量才能达到电路的带宽。当电路时延不变,电路带宽增大导致带宽时延积增大,而两端用户操作系统内TCP窗口尺寸没有同步调整匹配的情况下,TCP吞吐量将小于电路带宽。这会导致用户感知差异,有可能需要与用户沟通协调以达成对问题的一致理解。

关键词:以太网电路,TCP协议,窗口,时延,带宽,带宽时延积,TCP吞吐量,用户感知

(一)案例背景

随着网络的演进、用户业务的发展,专线电路的数量越来越多,带宽越来越大,而同时电路传输时延却受限于地理距离、设备组网等原因无法进一步缩短,这导致传输电路的“带宽时延积”不断增大。

TCP协议是操作系统中非常关键的传输协议,能为上层应用程序提供可靠的远程数据传输支持,是用户远程办公系统、ERP等系统中文件传输、图片传输、重要数据传输的重要基础。TCP协议的吞吐量决定了远程文件传输的速度,直接影响到用户感知。

为了能使TCP吞吐量接近或达到传输电路的开通带宽,就要求用户两端操作系统内TCP窗口尺寸要与传输电路的“带宽时延积”匹配,或者使用多线程传输。但由于用户众多,而各自所使用的操作系统版本不一,不少操作系统版本无法对TCP窗口尺寸做出合适的调整,同时应用程序数量庞大,不少应用程序没有使用多线程传输,就导致这部分用户的TCP吞吐量达不到电路的开通带宽,用户感知不佳,从而引发维护事件。

(二)案例描述

某用户租用的一条跨省专线电路,带宽20M,开通运行多年,状态一直良好。由于用户本身通信业务量增长,逐渐感到电路带宽吃紧,遂申请将电路带宽提升到50M。我司在数据配置和设备调试好之后,将其电路带宽提升到50M。

1.问题的提出

电路提速后不久就出现了问题:用户反映电路带宽达不到50M。其测试方法是在专线电路两端内网的两台电脑之间传送大文件,其软件界面显示的传送带宽达不到50M。用户反映提速之前电路带宽是20M的时候,也是用同样的方法测试过带宽,那时是可以达到20M的,因此用户认为提速后带宽不达标。

2.排查和测试

近年来电路带宽逐步提升,出现了很多关于带宽方面的纠纷。为谨慎起见,在确认用户所反映的现象之后,首先排查我方的问题。经与电路对端对等部门同事协调,先做环路测试。对端打环,本端挂表测试;然后本端打环,对端挂表测试。

经多次测试和确认,带宽完全能达到50M。同时测得电路的往返时延为78毫秒左右,抖动指标4微秒左右,说明电路的时延很稳定。用RFC2544从64到1518的包测过,丢包率都能达到0.00%。这说明电路在配置开通方面应该是没有问题的。

 

再次放通电路,让用户测试,用户反映问题依然存在。会不会是用户的问题呢?为了排除这个可能性,我们与远端的同事协调,两边都用我们自己的笔记本电脑,安装用户的文件传送软件(飞秋),测试文件传送速度。

测试结果,软件界面上显示的传送带宽约为2.5MB/s,跟用户电脑测试时所显示的结果很相近,折算成比特的带宽约为20Mb/s左右,确实没有达到50Mb/s。使用仪表做的环路测试,和使用电脑做的文件传送测试,在本端和对端都反复进行过多次,结果依然不变。

3.搭环境验证

经过反复的探讨以及查找资料,逐渐将焦点锁定到“时延”上来。直观地讲,局域网跟广域网最大的一点区别就在于时延,本地局域网中两台电脑之间的时延只有几毫秒,而这条跨省的广域网电路,时延高达70多毫秒,这个差别是巨大的。因此决定用仪表工具来试探一下时延带来的影响。

如图所示,就在本地将两台笔记本电脑通过仪表串接在一起,端口模式设置为百兆自适应,在仪表上设置两个网口之间的转发时延,用来模拟长途广域网电路的时延。仪表设置的是单向时延,往返时延需要乘以2。在两台笔记本电脑上运行文件传送软件,观察传送带宽。逐步加大仪表上的转发时延,依次观察文件传送带宽,寻找二者之间的相互关系。进行了5次测试,其中一次的截图如下:

其中折算网口带宽这样计算:11.2*1024*1024*8*(1518+20)/1460=98.97e6,这个折算中包含了帧头、帧尾和帧开销。在这个计算中,11.2MB/s代表每秒钟传送的TCP载荷字节数,1024*1024代表M,8代表从Byte转换成bit,(1518+20)字节代表以太网帧的全部长度(14字节MAC头+20字节IP头+20字节TCP头+1460字节TCP载荷+4字节帧校验和+20字节帧间开销),1460字节代表每个以太网帧中TCP载荷部分的字节长度,经过这个换算就得到以bit/s为单位的、从网线上看到的带宽占用值。

从表格中可以清晰地看出,随着往返时延的增加,文件传送带宽逐渐减小,折算得到的网口带宽也同步逐渐减小。这是在百兆网口上进行的测试,可见即使是100M的带宽,其时延的增大也会显著影响到传送带宽!尤其是往返时延80毫秒的这一行,所得到的带宽跟我们在这条实际的跨省专线上所测得的带宽符合的非常好。

这说明,用户用文件传输软件所测得的传送带宽达不到50M,并不是我们专线传输电路的带宽达不到50M,而是由于电路高时延的影响所导致的结果。

TCP协议的吞吐量会受到传输电路时延的制约:两端操作系统内TCP窗口尺寸需要与传输电路的带宽时延积匹配,TCP的吞吐量才能达到电路的带宽。当电路时延不变,电路带宽增大导致带宽时延积增大,而两端用户操作系统内TCP窗口尺寸没有同步调整匹配的情况下,TCP吞吐量将小于电路带宽。

进一步地,我们猜测这个文件传送软件的底层是基于单连接的TCP。为此在同样的实验环境上,在两台电脑上运行iperf软件来测试一下TCP的吞吐量。(iperf软件是一款可以运行在PC上的带宽测试软件,通过命令行方式运行,-s参数表示服务器端,-c参数表示客户端,-i表示屏幕信息刷新的时间间隔秒)。

在一台电脑上执行命令:iperf3-s-i1

另一台电脑上执行命令:iperf3-c192.168.1.83-i1

依次在仪表上设置不同的转发时延,然后运行iperf,观察测试结果。其中一次的截图如下:

 注:iperf软件显示的Bandwidth值,只包含TCP载荷部分,而没有包含以太网的帧头、帧尾以及帧开销,所以比特带宽的显示值与表格-1中的比特带宽值略有差别。

对比表格-1与表格-2中的“传送带宽”这一列的值,趋势相同并且值也很接近,从而验证了这个猜测:该文件传送软件的底层是基于单连接的TCP。对于TCP协议,带宽时延积增大,而两端用户操作系统内TCP窗口尺寸没有同步调整匹配的情况下,TCP吞吐量将小于电路带宽。这就解释了用户在软件上看到的文件传送带宽小于传输电路开通带宽的现象。

4.改善的方法

在这样的长时延、大带宽电路上,为了得到更大的传送吞吐量,可以采用两种方法:扩大TCP窗口尺寸,或者采用多线程(多连接)传输。对这两种方法,分别用iperf进行验证。

(1)往返时延保持80毫秒,扩大TCP窗口到1M字节:
iperf3-c192.168.1.83-i1-w1M其中-w参数用来控制TCP窗口尺寸,它是这样计算得来的:100Mb/s的目标带宽,80毫秒(0.08秒)的往返时延,二者的乘积(带宽时延积)转换成字节(除以8),就是:100*1000*1000*0.08/8,约为1M字节。

得到的结果如下:

 可以看到传送带宽已经达到92.2Mb/s,远大于采取窗口尺寸默认值的18.9Mb/s。

(2)往返时延保持80毫秒,采用多线程传输:
iperf3-c192.168.1.83-i1-P7其中的-P参数用来控制并发的线程数。

 可以看到带宽已经达到97.6Mb/s,远大于单线程的18.9Mb/s。可见这两种方法确实可以提高传送的吞吐量。

5.与用户沟通及解决

确认了现象的原因以及改善的思路,经过与用户的技术人员沟通,一方面展示了RFC2544的测试结果,证明传输电路的可靠性,并说明了时延的影响,争取客户的理解。同时建议用户使用多线程文件传输软件进行测试,采用FTP方式,在一端电脑上起FTP服务器,在另一端电脑上使用filezilla的FTP客户端,其内部使用多线程技术,经过实际操作,测得的文件下载带宽接近50Mb/s,用户能够接受这个结果,问题得以解决。

(三)分析总结

在小带宽的时候,电路传输带宽与用户感知带宽关系相对比较简单和直接,一般我们维护好电路传输带宽,基本上就可以了,对用户的技术部分几乎可以忽略。

 1.电路的时延和带宽

对于一类传输电路来说,其两点间的地理距离、传输设备组网一旦确定,时延相对来说就是固定不变的。但是电路的带宽却随着时间、技术以及用户需求的增长而不停地扩大,这就导致“带宽时延乘积”增大,使时延的因素凸显出来,从而影响用户感知。如果能通过新的组网技术使电路的时延明显缩短,则有可能获得很好的用户感知改善。

2.操作系统和窗口尺寸

TCP的窗口尺寸是操作系统的内核参数,能否调整、如何调整都与操作系统的版本密切相关。由于用户数量庞大,而各自所使用的操作系统版本不一,不少操作系统版本无法对TCP窗口尺寸做出合适的调整,这会对我们的维护以及与用户的沟通造成一些影响。过大的窗口尺寸也未必是好事,一方面需要消耗内存资源,另一方面,当出现丢包的时候,TCP重传的代价会非常大。

3.应用程序和多线程

是否使用多线程是由应用程序以及系统库决定的。应用程序浩如烟海,其是否使用多线程传输也很难从外部界定,但这个因素却能显著影响用户感知,这给我们的运维工作带来了不确定的影响。

4.与用户的关系

在这种背景下,由于电路技术部分与用户技术部分已经密切联系在一起,共同影响用户感知,这就对我们的运维工作提出了更高的要求:一方面在技术上要拓宽视野和范围,以便能在众多因素存在的网络现状中发现和解决问题,另一方面在与用户的沟通技巧上也需要进一步提升,以便能更好地处理好用户关系,有效地完成运维工作。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值