zoukankan      html  css  js  c++  java
  • FTP协议

            FTP协议是TCP/IP协议族提供的用于将文件从一台主机复制到另一台主机的标准机制,是Internet上最常用的应用层协议之一。FTP工作于客户端——服务器模式,其不同于其他客户端——服务器应用的一个显著特点是FTP采用在主机之间建立两个TCP连接的方式来实现数据传输,一个连接用于控制信息的传输,另外一个连接用于数据传输。

      FTP连接包括用于控制的TCP连接和用于数据传输的TCP连接,这两个连接使用完全不同的端口和策略。

      1,控制连接。

      控制连接的建立和普通的客户端——服务器模式的连接建立过程完全相同,包括以下两个步骤:

    1)服务器在TCP的21端口上监听客户端的连接请求(即被动打开)。

    2)客户端使用一个临时端口连接到服务器的21端口上(即发起主动打开);

    随后在整个FTP会话过程中,控制连接都一直保持,用于客户端和服务器之间进行命令的请求和应答。

      2,数据连接

      数据连接本质上和控制连接的建立完全相同,但是分为了两种不同的模式,即主动模式和被动模式。

      1)主动模式

      客户端通过在控制连接上发送PORT命令,告诉服务器客户端将在某个临时端口(比如51000)上监听服务器的数据连接请求,服务器收到PORT命令后,从20端口发起主动连接到客户端的该临时监听端口,从而建立数据TCP连接。

      2)被动模式

      客户端通过在控制连接上发送PASV命令,请求服务器告诉服务器将在哪个临时端口(比如40000)上监听客户端的数据连接请求。服务器受到PASV命令后,在该临时端口上进行监听,并将监听端口发送给客户端,客户端从该应答中获得服务器的数据连接监听端口,然后从客户端的一个临时端口发起主动连接到服务器的该临时端口,从而建立数据TCP连接。

      3,数据连接上的通信

      为了消除不同主机上之间文件系统的差异,FTP通过定义传输文件的类型、数据的结构和传输模式来实现这一目的。

      1)文件类型

      FTP可以在数据连接上传输下面3中类型的文件:

    ASCII文件,这是传输文本文件的默认类型。每个被传输的字符都按NVT ASCII格式进行编码,发送方负责将文件转换为NVT ASCII码,接收方负责从NVT ASCII码转换为它自己的表示方式。(未完待续~)

  • 相关阅读:
    < high performance web sites > 阅读小记
    Gimp制作圆角透明图片
    iphone开发小记
    Android开发小记
    双网卡绑定(suse)
    xen虚拟机操作整理
    linux网络相关命令使用
    lua协程并发下载简单测试
    linux使用技巧(shell/vi/screen)
    爬虫之scrapy框架
  • 原文地址:https://www.cnblogs.com/ymy124/p/2427785.html
Copyright © 2011-2022 走看看