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

        FTP是应用层的一个文件传输协议,使用了两个并行的TCP来传输文件,一个是控制连接(21)一个是数据连接(20)     
        在介绍FTP的工作原理时候,通常会讲到两个信道(控制信道、数据信道)和两种模式(主动模式、被动模式)
    控制信道和数据信道,可以初步的理解为控制信道是创建会话的必要条件,通常传输控制信息,如口令,用户标识,存放、获取文件等命令,而数据信道则是临时创立的,它通常被用来传输文件。当发送完文件之后数据连接会自动关闭。
        至于两种模式,主动和被动可以站在服务器的角度去理解:我(服务器)主动发起请求,我就是主动的,反之同理。举例:
    主动模式:
        控制信道:客户端(端口随机)  -----> 服务器21端口
        数据信道:客户端(端口随机)  <----- 服务器20端口
    在主动模式下,客户端向服务器的FTP端口21发起连接请求,服务器接收连接后,创建一条命令链路。当需要传输数据时,客户端在链路上用PORT命令告诉服务器:"我打开了X端口,需要你连接我"。接着服务器从20端口向客户端的X端口发起连接请求,之后双方可以利用数据通道来传输数据
    被动模式:
        控制信道:客户端(端口随机)  -----> 服务器21端口
        数据信道:客户端(端口随机)  <----- 服务器随机端口
    被动模式下控制信道的传输方式和主动一致,但是在需要数据传输的时候,服务器在控制信道上用PASV的命令告诉客户端,我开启了XX端口,你过来连接我,之后服务器被动等待客户端连接它的XX端口,创建连接后开始传输数据
     
    在创建连接的过程中,有很多FTP独有的命令。例如在被动模式下的控制信道,经过三次握手后,客户端会向服务器发送PASV命令,意为:你是否支持被动模式,服务器如果支持则会返回227:a,b,c,d,e,f。其中a,b,c,d为IP地址。端口为e*256+f,到了第二信道,双方的通信端口都是随机的,这样较为安全。
     
    总结:
    在学FTP时候需要知道:
    1.多信道协议
    2.两种模式工作
    3.当有防火墙的时候,需要转换IP端口,防火墙做了什么?
  • 相关阅读:
    vscode中执行gulp task的简便方法
    5G即将到来,你还会购买4G手机吗?
    小屏幕手机汇总
    NoSQL数据库的分布式算法详解
    如何在网页界面设计中正确的留出空白空间?
    iconfont的三种使用方式
    MySQL修改密码方法汇总
    Docker镜像与容器
    微观经济学
    经营的原点 书评
  • 原文地址:https://www.cnblogs.com/Tempt/p/11815648.html
Copyright © 2011-2022 走看看