FTP协议的基本概念

网络 网络管理
这里我们主要对FTP协议的基本内容进行了阐述,通过文章我们从三个方面进行讲述:基本概念,工作原理和传输模式。希望对大家有所帮助。

网络中的数据传输时一个复杂的过程,完成一个简单的数据传输,其实经过了很多道协议的规范和作用。那么现在我们就来介绍一下FTP协议,这个远程文件传输协议。

1. 什么是FTP协议

FTP协议(File Transfer Protocol)即远程文件传输协议,是一个用于简化IP网络上系统之间文件传送的协议,FTP是TCP/IP的一种具体应用,它工作在OSI模型的第7层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,FTP建立的就是一个可靠的连接。采用FTP协议可使 Internet用户高效地从网上的FTP服务器下载大信息量的数据文件,将远程主机上的文件拷贝到自己的计算机上。以达到资源共享和传递信息的目的。由于FTP的使用使得Internet上出现大量为用户提供的下载服。Internet成为了一个巨型的软件仓库。

2. FTP工作原理

FTP有两个过程一个是控制连接,一个是数据传输。FTP协议不像HTTP协议一样需要一个端口作为连接(默认时HTTP端口是80,FTP端口是21)。FTP协议需要两个端口,一个端口是作为控制连接端口,也就是FTP的21端口,用于发送指令给服务器以及等待服务器响应;另外一个端口用于数据传输端口,端口号为20(仅用PORT模式),是用建立数据传输通道的,主要作用是从客户向服务器发送一个文件,从服务器向客户发送一个文件,从服务器向客户发送文件或目录列表。

3. FTP的传输模式

FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问Internet, 你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。

FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。

ASCII传输方式假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。

二进制传输模式在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的***有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。

责任编辑:佟健 来源: 互联网
相关推荐

2010-08-23 16:58:17

DHCP协议

2010-07-07 15:17:40

LDAP协议

2009-03-20 11:46:10

MGCP协议网关

2010-06-29 13:00:49

EIGRP协议

2010-06-12 14:12:22

RSVP协议

2010-06-08 16:52:38

CANopen总线协议

2010-07-02 10:50:53

NetBIOS协议

2010-06-29 15:58:26

Linux SNMP协

2010-07-07 17:32:45

2010-06-08 16:11:10

SPI总线协议

2010-09-10 12:44:59

CLNP无连接网络协议

2010-06-21 18:04:08

2010-07-02 11:48:30

RS-232C协议

2011-03-28 11:05:17

ODBC

2022-11-24 14:06:51

网络蓝牙

2014-04-16 15:11:19

Spark

2012-09-11 14:39:03

Moosefs

2012-12-03 17:12:10

HDFS

2010-07-12 09:43:38

Symbian开发

2009-08-18 10:34:31

Java入门基本概念
点赞
收藏

51CTO技术栈公众号