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