4.1.2 FTP数据传输模式
在FTP的数据传输中,传输模式将决定文件数据会以什么方式被发送出去。一般情况下,网络传输模式有3种:将数据格式化后传送、压缩后传送、不做任何处理进行传送。当然不论用什么模式进行传送,在数据的结尾处都是以EOF结束。在FTP中定义的传输模式有以下几种。
1.二进制模式
二进制模式就是将发送数据的内容转换为二进制表示后再进行传送。这种传输模式下没有数据结构类型的限制。
在二进制结构中,发送方发送完数据后,会在关闭连接时标记EOF。如果是文件结构,EOF被表示为双字节。其中第一个字节为0,而控制信息包含在后一个字节内。
本书中如无特别说明,均采用该模式进行传输数据。
2.文件模式
文件模式就是以文件结构的形式进行数据传输。文件结构是指用一些特定标记来描述文件的属性以及内容。一般情况下,文件结构都有自己的信息头,其中包括计数信息和描述信息。信息头大多以结构体的形式出现。
计数信息:计数指明了文件结构中的字节总数。
描述信息:描述信息是负责对文件结构中的一些数据进行描述。例如,其中的数据校验标记是为了在不同主机间交换特定的数据时,不论本地文件是否发生错误都进行发送。但在发送时发送方需要给出校验码,以确定数据发送到接收方时的完整性、准确性。
在文件结构中,既可以用记录结构,也可以用相对应的数据表示。文件的信息头结构如表4.1所示。
表4.1 文件的信息头结构
|
文件信息头计数信息大小< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> |
文件信息头描述信息大小 |
|
计数信息占16位字节 |
描述信息占8位字节 |
描述信息是由字节中的位特定标记值来说明。列举几个特定标记值及其意义,如表4.2所示。
表4.2 特定标记值及意义
|
标 记 值 |
意 义 |
|
64 |
表示文件的结束符标记EOF |
|
32 |
表示文件中有可疑错误 |
|
16 |
表示具有重发标记的文件 |
由表4.2可知,描述信息中可能存在多个标记值,所以必须将需要用到的标记都进行设置。
3.压缩模式
在这种模式下,需要传送的信息包括一般数据、压缩数据和控制命令。
一般数据:以字节的形式进行传送。
压缩数据:包括数据副本和数据过滤器。
控制命令:用两个转义字符进行传送。
注意:此种传输模式请参考其他相关书籍,本书不再进行深入讲解。
在FTP数据传输时,发送方必须把数据转换为文件结构指定的形式再传送出去,而接收方则相反。因为进行这样的转换很慢,所以一般在相同的系统中传送文本文件时都采用二进制流表示比较合适。