Dzming.Li

应用层

6.3 FTP

6.3.1 FTP协议的工作原理

FTP等待客户端通过这个连接。每一个客户连接上之后,会fork出一个进程来接受用户的指令和下载。剩下一个进程继续等待连接。显然FTP是有状态的。

FTP是一种非常古老的协议,同时承担了当时远程文件管理和文件内容传输的责任。

在今天其实大家都不推荐用FTP了,而且主流的浏览器也已经放弃了FTP的支持,这是因为FTP不加密,容易遭受攻击让用户下载到病毒软件。ftp协议没法断点续传。对于这种情况async更合适。此外ftp对于想要改动服务器上的某一行文件也不适合。这种时刻应该用NFS.

6.3.2 控制连接与数据连接

FTP的交互和文件传输全都使用TCP

FTP提供一些比如ls和cd之类的简单指令,这些都依赖控制连接传输。

数据连接的端口是20. 控制连接的端口是21, 数据连接是通过控制连接打开的。

每一次数据

FTP这种控制连接与数据连接分开的方式被称为带外控制。而数据和命令放在一起的,比如HTTP被称为带内控制。