FTP:文本传输协议

一.作用与功能

  1. 作用:用于文件的上传和下载
  2. 功能:(1)连接到FTP服务并操纵数据和数据的上传下载以及备份,其FTP服务器就是支持FTP协议的服务器;
    (2)可以访问物理远程服务器。

二.报文格式

  1. FTP指令
    (1)连接成功:220 Welcome to XFtpServer(libevent)\r\n
    (2)USER用户登录:a.USER root\r\n b. 230 Login successful.\r\n
    (3)PWD获取当前目录:a. PWD\r\n b. 257 “/” is current directory
    (4)CWD进入目录:a. CWD test\r\n b. 250 Directory success changed
    (5)CDUP返回上传目录:a. CDUP\r\n b. 250 Directory success changed
    (6)PORT客户端发送数据传送地址和端口:a. PORT 127.0.0.1.70.96\r\n b. 200 PORT command successful.\r\n c.端口计算方法(PORT n1,n2,n3,n4,n5,n6\r\n;port = n5*256+n6)
    (7)LIST获取目录:a. LIST\r\n b. 150 Here comes the directory listing.\r\n 450 file open failed. c.数据通道连接,传送文件数据给客户端
    d. 226 Transfer complete\r\n e. 关闭数据通道
    (8)RETR下载文件:a. RETR filepath\r\n b. 150 Transfer start.\r\n 450 file open failed c. 数据通道,读取上传文件,客户端发送结束会主动关闭数据通道
    d. 226 Transfer complete\r\n

三.工作原理

FTP是使用C/S架构在基于TCP的一种文件传输服务协议

  1. FTP服务器工作流程
  • (1)建立TCP连接
  • (2)打开21端口(协议控制端口),让客户端能连接起来
  • (3)等待客户端进程发送链接请求
  • (4)启动从属进程来处理客户端发来的请求;主进程与从属进程并发执行,从属进程对
    客户端的请求处理完毕后即终止。
  • (5)回到等待状态,继续接受其他客户端的请求。

这里得提一下,建立得TCP连接是有两个:一个是协议控制连接,一个是数据传输连接。

  1. FTP的工作模式:(命令通道和数据通道)
    (1)主动模式PORT
    a.客户端首先和服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令
    b.PORT命令包括了客户端用什么端口去接受数据
    (2)被动模式PASV
    FTP服务器收到Pasv命令后,随机打开一个临时端口用于传送数据

  2. 使用区别
    在实际得使用中,它们之间得联系是这样得:FTP Server <=> 防火墙 <=> FTP Client
    (1)主动模式PORT一般是用于FTP服务器在公网,客户端需要用snat转换去访问(snat是原地址转换)
    (2)被动模式PASV一般是用于FTP服务器在私网,客户端需要用dnat转换去访问(DNAT是目标地址转换)

四.再次顺便说一下HTTP与FTP得区别

  1. HTTP是面向网页的,FTP是面向文件的。
  2. 它们相同的地方在于都是应用层上的协议,都是在TCP的基础上运行的
  3. 端口不一样:HTTP默认端口一般是80;而FTP服务器端口是21
  4. HTTP只建立一个TCP连接;而FTP是建立连个TCP连接,一个用于协议控制,一个用于数据传输
  5. HTTP是无状态的,而FTP服务器在整个连接期间都是保存用户状态的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值