9
如果没有使用STRUcture指令,文件结构就被假定是缺省的。文件和记
录结构必须被所有的FTP实现以“文本”文件(比如,ASCII或EBCDIC类
型的文件)的方式承认。文件的格式影响它的传输模式(参看传输模式一
节)和它的解释和存储。
文件的“自然的”格式依赖于主机的存储。一个源代码文件通常在IBM
的大型机中是以固定长度的记录存储的,而在DEC TOPS-20机上它是以分隔
(比如用<CRLF>来分隔)成行的字符流存储的。如果想让文件在完全不同
的站点传输,就必须有办法让一个站点承认另一个站点关于该文件的结构
表示。
有些站点是面向文件的,还有些站点是面向记录的,如果从一个主机
到另一个文件结构不同的主机传送文件时就会出问题。如果一个文本文件
以记录结构传送,而接收方的主机却是面向文件的,那么这个主机就必须
对该文件进行基于记录结构的转换。显然,这样的转换很有效,但是这个
转换的过程必须也是可逆的。
在一个文件以文件结构传送到面向记录的主机时,存在一个问题,该
主机要用什么标准把文件划分成记录以便于本地处理。如果需要这样的划
分,那么FTP在执行时使用的行结束符,对ASCII文件用<CRLF>,对EBCDIC
文件用<NL>作为分隔符。如果FTP的实现采用了这个技术,它就必须准备
好在这个文件要重新转成文件结构时,能进行逆转换操作。
3.1.2.1 文件结构
如果没有使用STRUcture指令,文件结构就被假定是缺省的。
文件结构没有内部的结构,被认为是数据字节的连续序列。
3.1.2.2 记录结构
记录结构必须被所有的FTP实现以“文本”文件(比如,ASCII或EBCDIC
类型的文件)的方式承认。
记录结构的文件由连续的记录组成。
3.1.2.3 页结构
为了传送不连续的文件,FTP定义了一种页结构。这样的文件结构已
知的往往是“随机存取文件”或“holey文件”。这种结构有时候通过其他信
息把文件联系成一个整体(比如,一个文件描述符),或者是文件的一部分
(比如,页面存取控制)。在FTP里,这些文件的部分成为页。
为了提供不同的页大小和关联信息,每个页在传送时附加一个页头。
页头定义了下列域:
页头长度:包含这个字节在内的页头的逻辑字节数。最小的页头长是4。
页索引:该部分在文件中的逻辑页编号。这不是页的传输序列号,该
索引用来指出文件的这一页。
数据长度:页中数据的逻辑字节数。最小的数据长度是0。
页类型:页的类型。定义了如下类型:
0 = 最后页