码迷,mamicode.com
首页 > 其他好文 > 详细

FTP协议

时间:2016-08-24 19:13:32      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

FTP协议

FTP即文件传输协议是应用层提供交互式会话系统基于TCP连接的,FTP客户端和服务器之间是可靠的、面向连接的、为数据提供可靠保证,标准连接端口端口是21,数据传输端口是20

FTP主要作用:让用户连接上一个远程计算机(这些计算机运行着FTP服务器程序),来查看远程计算机有什么文件,将远程计算机的文件拷贝到本地计算机上(下载-get),或将本地计算机文件送到远程计算机上(上传-put)

FTP的协议的特点:

  1. 支持C/S模式,一个FTP服务器可以同时给多个客户端传送数据。
  2. 是一个应用程序
  3. 传送分为并行的两部分:控制连接和数据连接。
  4. 传输方式有两种:ASIIC传输模式和二进制传输模式。
  5. 工作方式有两种:Standard(PORT方式—主动方式)和Passive(PASV方式—被动方式)。

FTP协议运行的具体过程:

                技术分享

  1. 服务器首先运行一个本地的FTP主服务进程,当客户输入open或者ftp命令后,指定一个远程计算机,客户端打开随机端口(端口号大于1024,假设为x)建立TCP连接,客户建立一个控制进程
  2. 服务器接收到客户端请求后打开端口21,建立控制进程,双方进入会话状态。
  3. 客户端需要进行传输数据时,监听端口(X+1),建立一个客户端的数据进程,通过控制连接将端口号发送给服务器的控制进程。
  4. 服务器收到后打开端口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 

FTP协议

标签:

原文地址:http://www.cnblogs.com/zhuzhu2016/p/5804096.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!