FTP

  • 本地FTP和远端FTP的交互
  • 用户在本地文件系统登陆,提供一个用户标识和口令。在提供了这种授权信息后,用户就能从本地文件系统向远程主机文件系统传送文件。用户通过一个FTP用户代理与FTP交互。该用户首先提供远程主机的主机名,使本地主机的FTP客户进程建立一个到远程主机FTP服务器进程的TCP连接。将用户密码传输给远端FTP服务器,一旦该服务器向该用户授权,用户可以将存放在本地文件系统中的一个或者多个文件复制到远程文件系统(反之亦然)。

  • FTP和SMTP - 图1

  • FTP使用了两个并行的TCP连接来传输文件,

    • 控制连接:控制连接用于在两主机之间传输控制信息,如用户标识、口令、改变远程目录的命令以及“存放(Pul)”和“获取(get)”文件的命令。
    • 数据连接。数据连接用于实际发送文件。
  • 数据连接和控制连接的区别

  • 当FTP的服务器端从该连接上收到一个文件传输的命令后(无论是向还是来自远程主机),就发起一个到客户端的TCP数据连接,FTP在该数据连接上准确地传送一个文件,然后关闭该连接。在同一个会话期间,如果用户还需要传输另一个文件,FTP则打开另一个数据连接。因而对FTP传输而言,控制连接贯穿了整个用户会话期间,但是对会话中的每一次文件传输都需要建立一个新的数据连接(即数据连接是非持续的)。
  • FTP常见命令
  • FTP和SMTP - 图2
  • ————————————————————————————
  • SMTP运行过程
  • FTP和SMTP - 图3
    • Alice调用她的邮件代理程序并提供Bob的邮件地址撰写报文,然后指示用户代理发送该报文。
    • Alice的用户代理把报文发给她的邮件服务器,在那里该报文被放在报文队列中。
    • 运行在Alice的邮件服务器上的SMTP客户端发现了报文队列中的这个报文,它就创建一个到运行在Bob的邮件服务器上的SMTP服务器的TCP连接。在经过一些初始SMTP握手后,SMTP客户通过该TCP连接发送Alice的报文。
    • 在Boh的邮件服务器上,SMTP的服务器端接收该报文。Bob的邮件服务器然后将报文放入Bob的邮箱中。