FTP协议
FTP即文件传输协议是应用层提供交互式会话系统,基于TCP连接的,FTP客户端和服务器之间是可靠的、面向连接的、为数据提供可靠保证,标准连接端口端口是21,数据传输端口是20。
FTP主要作用:让用户连接上一个远程计算机(这些计算机运行着FTP服务器程序),来查看远程计算机有什么文件,将远程计算机的文件拷贝到本地计算机上(下载-get),或将本地计算机文件送到远程计算机上(上传-put)。
FTP的协议的特点:
- 支持C/S模式,一个FTP服务器可以同时给多个客户端传送数据。
- 是一个应用程序
- 传送分为并行的两部分:控制连接和数据连接。
- 传输方式有两种:ASIIC传输模式和二进制传输模式。
- 工作方式有两种:Standard(PORT方式—主动方式)和Passive(PASV方式—被动方式)。
FTP协议运行的具体过程:
- 服务器首先运行一个本地的FTP主服务进程,当客户输入open或者ftp命令后,指定一个远程计算机,客户端打开随机端口(端口号大于1024,假设为x)建立TCP连接,客户建立一个控制进程。
- 服务器接收到客户端请求后打开端口21,建立控制进程,双方进入会话状态。
- 客户端需要进行传输数据时,监听端口(X+1),建立一个客户端的数据进程,通过控制连接将端口号发送给服务器的控制进程。
- 服务器收到后打开端口20,建立一个数据传输进程,并向客户端数据进程发送连接请求,数据传输进程建立,双方建立数据连接,开始传输数据。
在建立控制进程时(客户):源端口为客户端的端口X,远程端口为服务器的端口21。
在建立数据进程时(服务器):源端口为服务器的端口20,远程数据端口为客户端的(X+1)。
FTP的两种工作方式:
- Port模式即主动方式,客户首先和服务器的TCP21端口建立控制连接(客户端的端口是一个随机大于1024的端口),通过这个通道发送命令,客户端需要接受数据时在这个通道上发送PORT命令,PORT命令包括了客户端用什么端口接收数据,在传送数据时,服务器通过自己的TCP20端口连接至指定的端口发送数据。然后需要建立数据进传输程和数据连接来传送数据,上面我们描述的过程就是主动方式。
- Passive模式及被动方式,客户和服务器建立控制连接后,客户发送的是Pasv命令,服务器收到Pasv命令后,随即打开一个临时端口(也叫自由端口,端口号大于1023,小于65535),并同时客户端在这个端口传送数据请求,客户端连接到服务器的此端口然后FTP通过这个端口传送数据,不需要再建立数据连接。
FTP和匿名FTP
一般的FTP在访问远程计算机都需要登录用户ID和口令,获得权限后,才可以传送文件,否则无法传输。
匿名的FTP则是系统管理建立了一个特殊的用户ID名为anonymous,Internet上的任何人任何地方都可以使用该用户的ID。匿名FTP只适用于提供这项服务的FTP服务器。
参考:http://blog.csdn.net/bear_huangzhen/article/details/41806903
http://www.cnblogs.com/li0803/archive/2010/11/16/1878833.html
时间: 2024-10-08 08:08:06