FTP协议

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 

时间: 2024-10-08 08:08:06

FTP协议的相关文章

理解FTP协议

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/5186117.html FTP协议用于在本地文件系统与远程文件系统之间传送文件. FTP使用两个并行的TCP连接: 控制连接:控制连接用于在客户和服务器之间发送控制信息.如用户名和口令.改变远程目录的命令或上传和下载文件的命令. 数据连接:数据连接用于传送文件. TCP服务器在21端口上监听控制连接,如果有客户要

python之模块ftplib(FTP协议的客户端)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ftplib(FTP协议的客户端) #需求:快速进行ftp上传 ,下载,查询文件 from ftplib import FTP ftp = FTP() #设置变量 timeout = 30 port = 21 ftp.connect('192.168.1.188',port,timeout) # 连接FTP服务器 ftp.login('UserName','888888') # 登录 p

linux架构学习第二十八天之FTP协议以及vsftpd的使用

内容: 1.ftp协议 2.vsftpd的搭建及配置 一.FTP协议     1.FTP协议: FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".工作在第七层,而且是基于TCP协议传输数据. FTP工作原理与其它的应用协议有些不同.它是用两个端口进行通信的.一个端口用于命令交互.这个端口在用户连接之后一直保持:而另一个端口只是在数据传时打开(比如:上传文件,下载文件,获取服务端文件列表),在数据传输时有两种不同的模式,一是用户开

ftp协议详解

客户端与服务器之间,需要多条连接才能完成应用的协议,属于复杂协议.如FTP,PPTP,H.323和SIP均输入复杂协议. 这里主要介绍ftp协议的工作原理.首先,ftp通信协议有两种工作模式,被动模式和主动模式. 主动模式 以上图为例,假设客户端IP为192.168.2.10,服务器端IP为192.168.2.11,首先客户端使用端口1966连接服务器的21端口,接着客户端会发送一个含有PORT 192,168,2,10,19,137字符的数据包给服务器端. 服务器端接收到这个数据包之后,从PO

马哥教育第二十四ftp协议、vsftpd的高级应用、rpc概念及nfs的基本应用、samba及其基本应用

1.ftp协议及vsftpd的基本应用         文件共享服务:                 工作在应用层:ftp(file transfer protocol)                          应用层协议:tcp,                  工作在内核:nfs                 跨平台:samba           ftp工作在221号端口,传输数据:                  命令连接:文件管理类命令,始终在线的连接       

FTP协议的44种命令

FTP协议的44种命令:1) ? 说明:显示ftp命令的说明.后面可以加参数,是加需要解释的命令名,不加则显示包含所有命令列表. 2) append 说明:使用当前文件类型设置,将本地文件附加到远程计算机中.大概格式是 append local-file [remote-file] 其中local-file是说指定要添加的本地文件. remote-file是说指定要将local-file附加到远程计算机文件,要是省了这个,则是使用本地文件名做远程文件名. 3)ascii 说明:默认情况下,将文件

基于FTP协议的文件传输工具(SOCKET、FTP方面、MFC方面)

一.本课程是怎么样的一门课程(全面介绍) 1.简介:FTP(File Transfer Protocol),是文件传输协议的简称.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息.2.作用:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算

FTP协议总结

说明:本文仅供学习交流,转载请标明出处,欢迎转载! FTP协议(文件传输协议)建立在TCP协议的基础之上,用来从一个主机把文件复制到另外一个主机.在FTP客户机与服务器之间,采用来了两条TCP连接,这两条连接分别是控制连接和数据连接.在控制连接过程中,FTP服务器使用的端口号为21,在数据连接过程中,FTP服务使用的端口号为20,而客户机在整个过程中使用的端口号都是临时端口号,这两个临时端口号可以相同,也可以不同,当然在绝大多数情况下,这两个临时端口号都是不同的.在整个从连接的发起到数据传输的整

ftp协议基础

文件共享服务 ftp:应用层,可以跨平台,但对数据的编辑难以实现: nfs(Sun):内核,跨平台困难: samba:跨平台,在Linux或Unix实现CIFS(SMB)协议--即Unix通用文件系统协议: 现有的三类存储模型 DNS:直接附加存储,例如机箱内的硬盘: NAS:网络附加存储,通过网络文件服务器提供文件级别的共享存储,工作于应用空间,nfs和samba的CIFS就是NAS的实现: SAN:网络附加存储,通过网络文件服务器提供块级别的共享存储,工作于内核空间: ftp:Flie Tr