2024年3月17日发(作者:)

FTP下载速率慢问题的常见原因以及解决方法

TCP参数简述:

在TCP/IP协议及用户常用桌面系统微软TCP/IP实现中,比较重要的参数如下:

 MTU─The Maximum Transfer Unit

 MSS─Maximum Segment Size

 TCP1323Opts─RFC1323TCPoptions:window scaling & timestamp

 MaxDupAcks─Maximum duplicate acknowlEGPRSments

 Sack─Selective AcknowlEGPRSment(TCP选择性确认(RFC2018))

 TCPWindowSize─TCP Window Size

下面对上述参数进行简单的解释:

1) MTU─The Maximum Transfer Unit

该参数决定网络接口的默认最大传输单位(MTU)。MTU是基础网络上传输的最大数据包

大小(字节)。它包括传输报头。当数值大于基础网络的默认值时,传输就会使用网

络默认MTU。数值小于88时,传输就会将MTU设为88。在以太网中,MTU=1500Bytes。

备注:Windows系统TCP/IP默认情况下使用PMTU(路径最大传输单位发现)检测,并查询驱动程序以

查找本地MTU大小。通常并不需要更改MTU参数

2) MSS─Maximum Segment Size

MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效率,TCP协

议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候需要减

去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes,所以MSS为1460。通

讯双方会根据双方提供的MSS值的最小值确定为这次连接的最大MSS值。

3)TCP1323Opts─RFC1323TCPoptions:windows caling & timestamp

该参数控制RFC1323时间戳与窗口缩放选项。默认情况下,启用时间戳与窗口缩放。

但是可以使用标志位进行控制。0位控制窗口缩放,1位控制时间戳。

在现场测试中,在设置TCP1323Opts为0x3的情况下,仍然可以看到下面两种情况:

A:不启用时间戳与窗口缩放;B:启用时间戳与窗口缩放(windowscale=0,也就是实际

上并没有对TCP窗口进行放大)

换句话说,目前终端操作系统在TCP1323Opts为0x3时,仍然有算法决定是否使用时

间戳,但不管什么时候,都没有对TCP窗口进行缩放。

4)MaxDupAcks─Maximum duplicate acknowlEGPRSments

该参数确定在启动快速重传那些在传输途中丢失的数据段之前,必须收到相同序号发

送数据段的重复应答次数。终端操作系统缺省值为2。实际上该参数只要不是一个很大

的值,对FTP下载速率的影响微乎其微。

5)Sack─Selective AcknowlEGPRSment(TCP选择性确认(RFC2018))

从Windows2000开始引入了一个重要的性能特性,称为“选择性确认”(Sack)。对于使

用大TCP窗口的连接来说,Sack尤其重要。在使用Sack之前,接收者仅能确认收到

的连续数据的最新序号,或接收窗口的左边沿。启用Sack时,接收者继续使用ACK

编号确认接收窗口的左边沿,但是它也可以分别确认收到的其它非相邻数据块。

启用Sack时,接收者可以确切通知发送者收到了哪些数据,以及数据在哪里丢失的。

然后发送者有选择地重新发送丢失的数据,而无须重发已成功收到的数据块。

该参数应该确保开启。

6)TCPWindowSize─TCP Window Size

该参数确定所提供的最大TCP接收窗口大小。接收窗口是指一个发送者在未收到确认

的情况下可以发送的字节数。总的来说,大的窗口可以改进高时延和高带宽网络上的

性能。要获得最大效率,接收窗口应是TCP最大段大小(MSS)的偶数倍。

Ftp下载中的常见问题以及解决方法:

服务器不能够正常登录:

确认FTP服务器运行状态是否正常,常见的FTP服务器是在WINDOWS XP系统下开

一个3CD或者Server-U软件,然后配置好相应的地址,连到我们的CORE SW上即可

(10.194.3.104的那个vlan) ,此种服务器不能正常登录,重启电脑,然后重新打开FTP

软件即可。

我们黑马机房使用的FTP-server是linux系统的,由于我们安装FTP-server的终端比

较老,各个方面的配置也比较落后,(内存比较小,CPU频率比较低等)有可能会出现死机

现象,一般把我们的终端重启即可。

简单介绍下FTP的安装以及优化方法:

首先我们优化了我们的FTP-SERVER,FTP-SERVER优化上主要是检查TCP/IP拥塞算

法是否设置为cubic,该算法对FTP丢包后的速率恢复非常快。

FTP-SERVER采用 linux version 3.2.33(1)-release操作系统自带的FTP-server

vsftpd-2.0.6-3,

如下的两个FTP的rpm应用包因该正常安装:

[root@localhost ~]# rpm -qa | grep ftp

9.i386

9.i386

使用如下命令检查TCP/IP拥塞算法是否设置为cubic:

[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_congestion_control