文件传送协议FTP

FTP协议是在互联网早期阶段使用的文件传输协议,现在使用逐渐减少,所以需要简单了解一下。

1 FTP(File Transfer Protocol)协议

  文件传送协议FTP只提供文件传送的一些基本服务,它使用TCP可靠的传输服务。FTP主要功能是减少或消除在不同操作系统(硬、软件体系都可以不同)之间的文件传输能力。

  FTP是基于客户服务器方式。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。

依照FTP协议提供服务,进行文件传送的计算机就是FTP服务器。
连接FTP服务器,遵循FTP协议与服务器传送文件的计算机就是FTP客户端。

  FTP服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有若干个从属进程,负责处理单个请求。

  主进程的工作步骤如下:

(1) 打开熟知端口(端口号为21),使客户进程能够连接上。常用的熟知端口号(系统端口号)在传输层协议概述介绍过。
(2) 等待客户进程发出连接请求。
(3) 启动从属进程处理客户进程发来的请求。从属进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
(4) 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并行进行的。

  下图表示了FTP的工作情况,图中的圆柱表示系统中运行的进程。


  在进行文件传输时,FTP的客户和服务器之间要建立两个并行的TCP连接:
  (1) 控制连接:以客户服务器方式建立连接。服务器以被动方式打开熟知的端口号21,等待客户的连接。客户则以主动方式打开TCP端口21,来建立连接。控制连接在整个会话期间始终保持打开状态等待客户与服务器之间的通信。该连接用于将命令从客户传给服务器并传回服务器的应答。如用户标识、口令、改变远程目录的命令等。

  (2) 数据连接用于传输文件。服务器端控制进程在接收到FTP客户发来的文件传输请求后,就创建数据传送进程数据连接,用于连接客户端和服务器端的数据传送进程。在传输完毕后关闭数据传送连接,并结束运行。由于FTP使用了一个分离的控制连接,因此FTP的控制信息是带外(out of band)传送的。

  FTP协议使用两个独立的连接的好处是使协议更加简单和更容易实现,同时在传输文件时可以利用控制连接对文件的传输进行控制。如客户可以在文件传输的过程中发送"请求终止传输"。

2 FTP的两种工作方式

  FTP支持两种工作模式:PASV(被动模式)和PORT(主动模式)

  (1) PORT模式
  Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

  (2) PASV模式
  Passive模式在建立控制通道的时候和PORT模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个临时端口(也叫自由端口,端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

更多的信息可以参考这篇博客:FTP文件传输协议两种模式-主动模式和被动模式

  由于FTP使用了两个不同的端口号,所以数据连接和控制连接就不会混乱。

3 FTP的命令和回答

  FTP命令由4个大写字母ASCII字符组成,有些还具有可选参数,常见的命令如下(斜体为可选参数):

  (1) USER username:用于向服务器传送的用户标识。

  (2) PASS password:用于向服务器发送用户口令。

  (3) LIST:用于请求服务器回送当前远程目录中的所有文件列表。该文件列表是经一个数据连接传送的,而不是在控制TCP连接上。

  (4) RETR filename:用于从远程主机当前目录检索(即get)文件。该命令引起远程主机发起一个数据连接,并经该数据连接发送所请求的文件。

  (5) SORT filename:用于在远程主机的当前目录上存放(即put)文件。

  (6) PORT n1,n2,n3,n4,n5,n6:客户端的IP地址(n1.n2.n3.n4)和端口(n5×256 + n6)。

例如,PORT 140,252,13,34,4,150,其前4个数就是客户的点分十进制IP地址,即140.252.13.34。后两位指明16bit端口号,(4,150)所表示二进制为(00000100 10010110)——> 4 × 256 + 150 = 1174

  贯穿控制连接,在用户发出命令和FTP发送的命令之间通常是一一对应关系。每个命令都对应一个从服务器向客户的回答。回答是一个3位数字,后跟一个可选信息。常见的回答如下:

  (1) 331:Username OK,Password required(用户名OK,需要口令)。

  (2) 125:Data connection already open;transfer starting(数据连接已打开,开始传送)。

  (3) 425:Can't open data connection(无法打开数据连接)。

  (4) 452:Error writing file(写文件差错)。

4 匿名FTP

  使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上传或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。

  互联网中有很大一部分FTP服务器被称为“匿名”(Anonymous)FTP服务器。这类服务器的目的是向公众提供文件拷贝服务!
器,不要求用户事先在该服务器进行登录注册,也不用取得FTP服务器的授权

  Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“anonymous”登录FTP服务,就可以访问远程主机上公开的文件。

5 TFTP

  简单文件传送协议TFTP(Trivial File Transfer Protocol),它是一个很小且很容易实现的文件传送协议。TFTP也使用客户服务器方式,但是它使用UDP数据报。

  TFTP的优点:
  (1) 适用于UDP环境。例如当需要将程序或文件同时向许多机器下载时就往往使用TFTP。
  (2) TFTP代码所占的内存比较小。

6 小结

  本文完

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349