FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分。
1、FTP服务器。
2、FTP客户端。
其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。
扩展资料
FTP屏蔽了各计算机系统的细节,因而适合在异构网络中任意计算机之间传送文件。FTP只提供文件传送的一些基本服务,它使用TCP可靠地运输服务,FTP主要功能是减小或消除在不同系统下处理文件的不兼容性。
FTP使用客户端-服务器模型,一个FTP服务器进程可以为多个客户进程提供服务。FTP服务器有两大部分组成:一个主进程,负责接受新的请求;还有若干从属进程,负责处理单个请求。
参考资料来源:百度百科—FTP协议
FTP是仅基于TCP的服务,不支持UDP。 与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21-命令端口和20-数据端口。但当我们发现根据(FTP工作)方式的不同数据端口并不总是20时,混乱产生了。
主动FTP
主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>;1023)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:
任何端口到FTP服务器的21端口 (客户端初始化的连接 S<-C)
FTP服务器的21端口到大于1023的端口(服务器响应客户端的控制端口 S->C)
FTP服务器的20端口到大于1023的端口(服务器端初始化数据连接到客户端的数据端口 S->C)
大于1023端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口 S<-C)
被动FTP
为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。
在被动方式FTP中,命令连接和数据连接都由客户端,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N >; 1023和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P >; 1023),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:
从任何端口到服务器的21端口 (客户端初始化的连接 S<-C)
服务器的21端口到任何大于1023的端口 (服务器响应到客户端的控制端口的连接 S->C)
从任何端口到服务器的大于1023端口 (入;客户端初始化数据连接到服务器指定的任意端口 S<-C)
服务器的大于1023端口到远程的大于1023的端口(出;服务器发送ACK响应和数据到客户端的数据端口 S->C)
你可能已经知道,当FTP(文件传输协议)命令通过网络时,他们默认使用21端口。你也知道端口20也会在FTP协议中使用。不幸的是,大部分FTP数据会话并没有准确的使用端口20。
然而,你可以跟踪FTP会话,注意通过网络的端口命令。当你观察这个解码时,你看到最陌生的命令序列:
PORT 10,2,0,2,4,31
这是什么意思呢?首先,让我们看一下端口命令的目的,然后,我们将解释命令中的这些数字。
端口命令
FTP通信使用两个端口号:命令端口号,默认为端口21;以及数据传输端口。这是端口命令开始活动地点。
端口命令由FTP客户发出,为数据建立二级连接(地址和端口)。在一些FTP实现中,端口20被用作数据传输,但是也有一些例外。典型的,在跟踪中你会发现数据正通过一个动态端口号(IANA规定其范围为49152~65535,但是很可能你发现你的应用正使用1024以上的其他端口——这一范围过去是动态端口号范围)。
一个FTP客户发送一个端口给FTP服务器,并确定客户将会在那个端口监听数据通道连接。在收到端口命令后,服务器建立一个新的TCP连接,连接正使用该TCP端口值的客户。
在单独的一次FTP会话中,你可以看到大量的端口命令被发送——一个新的数据通道必须被建立以传送目录列表,执行文件的读取操作。
畸形数据
在端口命令后,你会发现一系列的六个数据——这些数据表示用于建立数据传输连接的IP地址和端口号。前4个数据(如例子中的10,2,0,2)表示客户ip地址。接下来的数据4,15表示客户端口号。
4,15?
奇怪。当你观察你的跟踪时,你将注意到服务器在客户端口1039上建立一次连接。我们怎么从4,15得到1039呢?是这样,为了解释和传送4,15的值到一个端口号,接收者必须作一些十进制数到十六进制数的转换——例如,
第一个数字(4)转换为十六进制(0x04)
第二个数值(15)转换为十六进制(0x0F)
现在将整个十六进制字节(0x040F)从十六进制转换为十进制(1055)。十六进制数040F等于十进制数1039当试图将两个十进制值转换成一个(415=0X019F)时,大部分会受到阻碍。你必须分离这些值,单独的转换成十六进制,然后合并并转换为十进制。
现在我们知道,当在线观察另外的端口命令时,你必须能够猜到数据传送过程将用到那个端口。
FTP是一种上传和下载用的软件。我用的不多,以前自己做网页时用FTP把我电脑里的东西,传到网上的免费空间,它也可以用来下载文件,只要有地址。
FTP定义如下:
FTP(File Transfer Protocal),是用于Internet上的控制文件的双向传输的协议。同时,它也是一个应用程序。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。
传输文件的一般步骤如下:
1在本地电脑上登陆到国际互联网,
2搜索有文件共享主机或者个人电脑(一般有专门的FTP服务器网站上公布的,上面有进入该主机或个人电脑的名称,口令和路径)
3当与远程主机或者对方的个人电脑建立连接后,用对方提供的用户名和口令登陆到该主机或对方的个人电脑.
4在远程主机或对方的个人电脑登陆成功后,就可以上传你想跟别人分享的东东或者下载别人授权共享的东东(这里的东东是指能放到电脑里去又能在显示屏上看到的东东)
5完成工作后关闭FTP下载软件,切断连接.
为了实现文件传输,用户还要运行专门的文件传输程序,比如网际快车就有这方面的功能,其它还有很多专门的FTP传输软件,各有各的特色.
FTP(FileTransfer Protocol,文件传输协议)是Internet上使用非常广泛的一种通讯协议。它是由支持Internet文件传输的各种规则所组成的集合,这些规则使Internet用户可以把文件从一个主机拷贝到另一个主机上,因而为用户提供了极大的方便和收益。FTP通常也表示用户执行这个协议所使用的应用程序。FTP和其它Internet服务一样,也是采用客户机/服务器方式。使用方法很简单,启动FTP客户端程序先与远程车机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。目前Windows操作系统环境中最常用的FTP软件有CUTFTP。FTP有一个根本的限制,那就是,如果用户未被某一FTP主机授权,就不能访问该主机,实际上是用户不能远程登录(Remote Login)进入该主机。也就是说,如果用户在某个主机上没有注册获得授权,没有用户名和口令,就不能与该主机进行文件的传输。而Anonymous FTP(匿名FTP)则取消了这种限制