应用层之FTP

Posted chen-jack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了应用层之FTP相关的知识,希望对你有一定的参考价值。

  1.FTP是什么

  ftp是一个应用层的文件传输协议。在一个典型的ftp会话中,用户可以一台主机箱另一台主机传输(或接受来自远程主机)的文件。

  2.建立一个典型的ftp会话需要什么

  用户通过一个ftp用户代理与ftp交互

  1.该用户首先要提供远程主机的主机名,使本地主机的ftp客户端进程建立一个到远程主机ftp服务器进程的tcp连接

  2.接着用户需要提供用户名和密码作为ftp命令的一部分在该tcp连接上传送

  若用户名和密码是正确的,则用户就可以将存放在本地文件系统中的一个或多个文件复制到远程文件系统中(反之亦然)。

  3.ftp与http的异同

    相同点:

  1.两者都是应用层上的文件传输协议

  2.两者都是运行在tcp上的

  区别:

  1.ftp使用了两个并行的tcp连接,http只有一个tcp连接。

   ftp是用的两个tcp连接,一个是控制连接,一个是数据连接

    控制连接用于在两主机之间传送控制信息。如用户名标识、口令、“存放(put)”和“获取(get)”文件的命令等。

    数据连接用于实际传输一个文件。

   http协议是在传输文件的同一个tcp连接中发送请求和响应首部行的。

  4.ftp传输文件

    用户主机与远程主机开始一个ftp会话时,ftp的客户端首先在服务器21号端口与服务器端发起一个用于控制的tcp连接。客户端可以通过该控制连接发送控制命令

    当服务器端从控制连接收到一个文件传输的命令后,就发起一个到客户端的数据连接用于传输文件,文件传输完毕后该数据连接就关闭了,但是控制连接不关闭。

    当有一个新的文件传输命令后,就又建立一个新的数据连接。

  5.常见ftp命令

    USER username  :向服务器发送用户标识

    PASS password:用于向服务器发送用户口令

    LIST: 向服务器请求当前远程目录中的所有文件列表,该文件列表是经过一个新的数据连接返回给客户端的

    RETR filename : 获取文件

    STOR filename: 向服务器端上传文件

  

以上是关于应用层之FTP的主要内容,如果未能解决你的问题,请参考以下文章

应用层协议实现系列——FTP服务器之设计与实现

SuperSocket应用之FTP源码解析

网络协议之FTP协议

计算机网络之应用层_part -3

第十章 网络文件共享服务之ftp

端口漏洞之21(FTP)