应用层的文件传输协议(FTP)

先决条件: 应用层协议

null

文件传输协议(FTP)是一种应用层协议,用于在本地和远程文件系统之间移动文件。它运行在TCP之上,就像HTTP一样。为了传输文件,FTP并行使用两个TCP连接:控制连接和数据连接。

图片[1]-应用层的文件传输协议(FTP)-yiteyi-C++库

什么是控制连接? FTP利用控制连接发送用户标识、密码、更改远程目录的命令、检索和存储文件的命令等控制信息。控制连接在端口号21上启动。

什么是数据连接? 为了发送实际文件,FTP使用数据连接。数据连接在端口号20上启动。 FTP使用单独的控制连接,将控制信息发送到带外。一些协议在同一TCP连接中发送其请求和响应头行以及数据。由于这个原因,据说它们会在频带内发送控制信息。HTTP和SMTP就是这样的例子。

FTP会话: 在客户端和服务器之间启动FTP会话时,客户端会启动与服务器端的控制TCP连接。客户机通过此服务器发送控制信息。当服务器收到此消息时,它会启动到客户端的数据连接。一个数据连接只能发送一个文件。但控制连接在整个用户会话中保持活动状态。正如我们所知,HTTP是无状态的,即它不必跟踪任何用户状态。但是FTP需要在整个会话期间维护其用户的状态。

数据结构: FTP允许三种类型的数据结构:

  1. 文件结构- 在文件结构中,没有内部结构,文件被认为是连续的数据字节序列。
  2. 记录结构- 在记录结构中,文件由顺序记录组成。
  3. 页面结构- 在页面结构中,文件由独立的索引页面组成。

FTP命令- 一些FTP命令包括:

使用者 –此命令将用户标识发送到服务器。 通过 –此命令将用户密码发送到服务器。 CWD –此命令允许用户使用不同的目录或数据集进行文件存储或检索,而无需更改其登录或记帐信息。 RMD –此命令将路径名中指定的目录作为目录删除。 MKD –此命令将路径名中指定的目录创建为目录。 PWD –此命令导致在回复中返回当前工作目录的名称。 复述 –此命令使远程主机启动数据连接,并通过数据连接发送请求的文件。 斯托尔 –此命令导致将文件存储到远程主机的当前目录中。 列表 –发送显示目录中所有文件列表的请求。 流产 –此命令告诉服务器中止以前的FTP服务命令和任何相关的数据传输。 退出 –此命令终止用户,如果文件传输未进行,服务器将关闭控制连接。

FTP回复- 一些FTP回复是:

好的。 530未登录。 331用户名好的,需要密码。 225数据连接打开;没有正在进行的转移。 221服务关闭控制连接。 551请求的操作已中止:页面类型未知。 502命令未执行。 503错误的命令顺序。 504未对该参数执行命令。

  • 它适用于简单的文件传输,例如在引导期间。
  • 它使用UDP作为传输层协议。传输中的错误(数据包丢失、校验和错误)必须由TFTP服务器处理。
  • 它只使用一个通过知名端口69的连接。
  • TFTP使用一个简单的锁步协议(每个数据包都需要确认)。因此,吞吐量是有限的

FTP(文件传输协议)的优点:-

  • 速度是FTP(文件传输协议)的优点之一。
  • 文件共享也是FTP的优势之一,因为两台机器之间的文件可以在网络上共享。
  • FTP的效率更高。

FTP(文件传输协议)的缺点:-

  • 文件大小限制是FTP的缺点,只能传输2 GB大小的文件。
  • FTP不支持多个接收器。
  • FTP不加密数据这是FTP最大的缺点之一。

可靠和安全:FTP既安全又不安全。我们使用登录ID和密码使其安全,但它们可能会受到黑客的攻击。 匿名FTP: 在某些文件可供公众访问的网站上启用了匿名FTP。用户无需任何用户名或密码即可访问这些文件。相反,默认情况下,用户名设置为anonymous,密码设置为guest。在这里,用户访问非常有限。例如,用户可以复制文件,但不能浏览目录。

参考:https://en.wikipedia.org/wiki/File_Transfer_Protocol

本文由 阿希夫·乔汉 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享