为什么在 LabVIEW 中我用编程方式进行 FTP 传输非常慢?



主要软件:
主要软件版本: 7.1
主要软件修正版本: 7.1
次要软件: N/A

问题: 当使用 LabVIEW Internet 工具包中的 FTP VI 时,传输文件所需的时间比从 FTP 客户端所需的时间要长很多。

解答:
检查 All Functions>>Internet Toolkit>>FTP>>Get Multiple Files.vi 的在线帮助



注意 'Active' 端口的默认值是 TRUE 。这意味着主动,而不是被动,FTP 连接将要被建立。您也要注意到这个端口出现在每个 FTP VI 中以创建一个会话(所有顶层 FTP VI)。

FTP 基础
FTP 是基于 TCP 的专有服务。FTP 中没有 UDP 组件。FTP 使用两个端口,因此不是一个通常的服务。这两个端口是 'data' 端口以及 'command' 端口(也被称为控制端口)。传统上端口 21 做为命令端口,端口 20 做为数据端口。但是,当我们发现数据端口不总是端口 20,而是由模式决定的时候,混乱便由此产生。

主动 FTP
主动 FTP 模式是在防火墙普遍应用前设计出来的,LabVIEW 告诉服务器“你应当使用这个端口与我通信”,并且服务器尝试使用该端口进行通信。这类似于 LabVIEW 将电话号码给服务器。防火墙阻塞打进的电话,因此尝试打开连接时,由于 LabVIEW 不能听到服务器,因此您会收到错误信息。

被动 FTP
在被动 FTP 模式下,LabVIEW 询问服务器以获得一个端口,然后利用该端口连接到服务器。这类似于 LabVIEW 询问那个电话号码可以打通服务器。因为 LabVIEW 主动打出电话,防火墙允许这样做,您就可以设置传输文件。

在大多数有防火墙的情况下,您可以使用主动或者被动连接方式。有几篇文档讲述当使用主动会话方式时,服务器将选择并非最优的连接路由将极大地影响传输速率。因此,如果您的防火墙允许的话,被动 FTP 连接将恢复您的数据传输速率。

相关链接: [External: Slacksite.com] Active Vs. Passive FTP Connection

附件:


GetMultipleFilesVI.JPG


报告日期: 06/27/2006
最近更新: 07/12/2006
文档编号: 3R16JMFD