1、FTPTCP参数的选择和优化上海移动GPRS端到端数据业务性能评估与优化 FTP业务TCP参数的选择和优化2007年5月21日摘要在GPRS网络中,FTP,接收邮件等大数据量TCP传输业务的性能主要由无线信道的性能决定,但由于GPRS信道的特殊性(长时延,时延变化大,可用带宽可能发生变化等),TCP参数的选择对TCP的性能也会产生影响。我们使用上海GPRS网络中的FTP测试服务器,对不同的TCP参数进行了一系列测试,分析了各参数对TCP性能的影响,从中选择了一组适合GPRS特性的TCP参数。FTP测试服务器:服务器操作系统:Solaris 8FTP服务器软件:proftpd1. 测试环境和设备
2、 42. 影响GPRS传输性能的TCP特性 43. TCP参数的选择和分析 4. 最大分段长度(MSS)和路径MTU发现(PMTU) 5. TCP接收和发送窗口的尺寸(rcvbuf,sndbuf) 7. TCP慢启动初始窗口的尺寸(tcp_slow_start_initial) 7. Selective Acknowledgments(SACK) 10. TCP时间戳选项(timestamp option) 11. TCP快速恢复算法参数 114. 结论 131.测试环境和设备我们在上海GPRS网络的FTP测试服务器上进行了测试和优化:FTP测试服务器:服务器操作系统:Solaris 8FTP
3、服务器软件:proftpd测试终端:class 10(42)GPRS卡。为了同时测试EDGE性能,我们同时使用了class 10(42)的EDGE手机进行了测试。2.影响GPRS传输性能的TCP特性以下TCP参数可能会对GPRS的TCP传输性能产生影响 最大分段长度(MSS)和路径MTU发现(PMTU) TCP接收和发送窗口的尺寸(rcvbuf,sndbuf) TCP慢启动初始窗口的尺寸(tcp_slow_start_initial) Selective Acknowledgments(SACK) TCP时间戳选项(timestamp option) TCP快速恢复算法参数我们对以上TCP参数
4、进行了测试和分析,从中选择出了一组适合GPRS网络环境的参数。3.TCP参数的选择和分析3.1.最大分段长度(MSS)和路径MTU发现(PMTU)当前的TCP协议栈大多数都缺省支持路径MTU发现(PMTU)。在开启PMTU的情况下,TCP协议栈根据接口的MTU值设定MSS,并将IP包头的DF位设为1,这样,当数据包在传输路径上遇到较小的接口MTU值,需要拆分时,路由设备将向源主机发送一个错误提示,源主机会根据这个提示减少MSS值。最终,源主机会找到一个适合整个传输路径的MSS值。在上海GPRS FTP服务器上,PMTU已经打开,但FTP软件将MSS值设定在1024 Bytes,这样,在实际FT
5、P传输中,MSS为1024,但在数据丢包重传时,又会使用系统缺省值1460,这样会产生两个问题影响传输效率: 使用较小的分段(1024)传输数据会产生较多的数据包,会增加传输时延 使用MSS 1460重传丢失的数据包(1024)会导致一部分数据重复发送,降低了传输效率。如下图所示:针对以上问题,我们重新设置了FTP软件,MSS值使用PMTU发现的MSS值(1460),以提高传输效率,解决了以上的两个问题。3.2.TCP接收和发送窗口的尺寸(rcvbuf,sndbuf)FTP Server的缺省接收和发送窗口尺寸为(8k),考虑导EDGE开通后传输带宽大大增加,8k的窗口尺寸偏小。针对这个问题,
6、我们将FTP Server的接收和发送窗口尺寸增加导32k。3.3.TCP慢启动初始窗口的尺寸(tcp_slow_start_initial)TCP在启动时,以这个值作为初始的拥塞窗口尺寸,然后在收到ACK后增加拥塞窗口的尺寸,直到到达拥塞避免阶段。由于GPRS网络的包时延较大,TCP慢启动需要较长的时间,为了使TCP能尽早以最大带宽发送数据,应该使用较大的慢启动初始窗口尺寸。此外,由于GPRS网络时延可能会在较大的范围内发生变化,少数情况下,太大的时延会导致虚假超时现象(Spurious timeouts)。在这种情况下,TCP协议会认为数据包已丢失,再次启动慢启动过程。较大的慢启动初始窗口
7、可以使传输尽快恢复到最高速率。Solaris系统中初始窗口的取值范围为14。以下两图分别显示了初始窗口值为2和4时的FTP通过率,从中可以看出,取值为4时,FTP传输启动和恢复的速度明显快于取值为2时。初始窗口值为2时的FTP通过率初始窗口值为4时的FTP通过率但如果初始窗口尺寸设置大较大,可能导致传输频繁的拥塞,影响传输的效率,下图显示了初始窗口尺寸为4时的次序号-时间图,从图中可以看出,TCP在慢启动后的一段时间后达到拥塞控制阶段,没有发生频繁拥塞的情况。初始窗口尺寸为4是较为合适的选择。3.4.Selective Acknowledgments(SACK)SACK可以在TCP可选头结构中
8、确认(ACK)虽多4块的数据,这样当传输过程中多个数据分段丢失时,发送端可以在一个回程时间内(RTT)重传多个数据块,提高重传效率。SACK功能应该打开。3.5.TCP时间戳选项(timestamp option)TCP时间戳选项在TCP选项头中加入了数据包的时间戳,以使主机能更精确的估计数据包的时延。但此选项会使每个TCP数据包多处12 bytes的选项头,也就是多了%的额外负载。我们测试了TCP时间戳选项打开的传输速率,发现时间戳选项并没有带来明显的好处,不建议打开此选项。3.6.TCP快速恢复算法参数缺省情况下,TCP协议栈会在收到3个duack(重复ack)后启动慢启动算法,我们测试了
9、将此参数(tcp_dupack_fast_retransmit)改为2的情况,看是否能减少网络拥塞。下图显示了tcp_dupack_fast_retransmit为2和3时的FTP通过率:tcp_dupack_fast_retransmit 为2时的FTP通过率tcp_dupack_fast_retransmit为3时的FTP通过率根据测试结果,tcp_dupack_fast_retransmit为2和3时,系统通过率变化不大,因此建议保持缺省值3。4.结论根据以上的分析和测试,我们给出了一组适合GPRS环境的TCP参数值: 最大分段长度(MSS)和路径MTU发现(PMTU)打开服务器的PMTU功能,使用PMTU的发现值作为MSS值(1460) TCP接收和发送窗口的尺寸(rcvbuf,sndbuf)将FTP服务器的TCP接收和发送窗口的尺寸设为32K或更高 TCP慢启动初始窗口的尺寸(tcp_slow_start_initial)TCP慢启动初始窗口的尺寸设置为4 Selective Acknowledgments(SACK)打开SACK功能 TCP时间戳选项(timestamp option)关闭TCP时间戳选项 TCP快速恢复算法参数保持tcp_dupack_fast_retransmit的缺省值3
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1