最近在项目中需要测试FTP功能的连接,大概了解了下什么是FTP

FTP

FTP

File Transfer Protocol,文件传输协议,用于在网络上进行文件传输的协议,它工作在应用层,使用TCP传输而不是UDP

为什么使用TCP而不是UDP?通过TCP的可靠性连接,为数据传输提供可靠保证

FTP协议的通信双方,一方称为FTP Client,另一方为FTP Server,它们在传输文件前,首先要建立连接,建立连接就必须要知道IP地址和端口号。与一般的C/S应用有所不同,一般的C/S只会使用一个端口号建立socket连接,这个socket连接既要处理客户端和服务器的命令信息,又要处理数据信息。而FTP协议中是把命令和数据分开传送,提高效率

既然FTP要把命令和数据分开传送,就需要两条连路,客户端和服务器各自需要两个socket,各自需要两个端口

FTP需要两个端口,一个用来发送命令,一个用来传输数据

命令端口

负责发送FTP命令和接收响应信息,FTP命令有“登录”、“改变目录”、“删除文件”等

数据端口

负责数据传输,比如显示目录、上传、下载文件等

FTP有两种工作模式,一种主动模式,一种被动模式

主动模式

Standard,又称为PORT模式,是由服务器主动发起数据传输通道的连接请求

Client和Server使用主动模式时

  • Server端创建两个socket监听在端口20和21上,20是数据端口,21是命令端口
  • Client端创建socket监听在一个随机端口N上(N > 1024),N是一个命令端口,用这个socket发起连接,连接Server的命令端口21,同时Client创建另一个socket监听在端口N+1,这是一个数据端口
  • Client命令通道的连接建立后,会告知Server端Client的数据端口是N+1
  • Server端会通过数据端口20主动连接Client的数据端口N+1

被动模式

Passive,又称为PASV模式,是由客户端主动发起数据传输通道的连接请求

Client和Server使用被动模式时

  • Client端创建两个socket监听在两个随机端口N和N+1(N > 1024),N是命令端口,N+1是数据端口
  • Client端通过命令端口连接Server的命令端口21,提交PASV命令给Server
  • Server收到命令后,创建一个socket并监听在数据端口P(P > 1024),同时通过命令通道告知Client端Server的数据端口是P
  • Client收到后,通过数据端口N+1主动连接Server的数据端口P

总结

  • 客户端和服务器要么同时使用主动模式,要么同时使用被动模式
  • 主动模式和被动模式的判断是基于服务器是否发起数据端口连接请求
  • 主动模式与被动模式的区别:

工具

不管是FTP Server还是FTP Client,都有很多现成的工具,省去了自己编写脚本的烦恼

WinSCP

Windows系统下的FTP Client工具,支持被动模式

如何设置

注意

  • 连接FTP前,需要确保双方能ping通

  • 不论是命令端口的连接还是数据端口的连接,它们都是TCP连接,有的FTP Client主机或者Server主机的防火墙不允许外部的TCP连接请求(拒收SYN包),所以如果FTP不能连接成功,需要检查双方的防火墙


一文了解什么是FTP协议相关推荐

  1. FTP协议中的登录 上传 下载 新建目录 删除目录 的wireshark包分析(一文看完TCP包分析,附源文件,ppt,操作视频)

    ​​​​​​​目录 一原理 二.FTP登录 三.FTP下载 四.FTP上传 五.FTP新建目录 六.FTP删除目录 一原理 前言:TCP/IP四层模型和OSI模型对照,以及FTP在模型中的位置. • ...

  2. [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

  3. 万维网服务器协议提供web,万维网的HTTP和FTP协议.doc

    万维网的HTTP和FTP协议.doc 万维网的HTTP和FTP协议 摘 要:20世纪40年代以来,人们就梦想能拥有一个世界性的信息库.在这个信息库中,信息不仅能被全球的人们存取,而且能轻松地链接到其他 ...

  4. FTP协议及工作原理

    1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文 ...

  5. (需求实战_01)_shell脚本 ftp协议下载文件

    文章目录 一.需求文档说明 二.脚本解释/说明 三.脚本内容 3.1. 案例脚本 3.2. 案例脚本升级 一.需求文档说明 序号 要求 说明 ① 协议 使用ftp协议远程下载 ② 文件类型 .zip ...

  6. FTP协议的分析和扩展

    2019独角兽企业重金招聘Python工程师标准>>> FTP协议的分析和扩展 出处: http://elly.blogdriver.com/index.jsp >> 1 ...

  7. loadrunner ftp linux,loadrunner ftp协议使用详细步骤

    loadrunner ftp协议使用详细步骤 大家好,我会给大家讲解两种编写方式,手动和录制.^_^ 1.首先要了解loadrunner中几个FTP函数 在loadrunner联机帮助文档的索引中,输 ...

  8. FTP协议(指令集)

    FTP协议采用一系列简单的协议来完成文件传输的各种任务,在发送命令的时候,总是在命令的最后加上一个回车换行符,在VB中可以用"vbcrlf"来实现,vc中以"/r/n&q ...

  9. FTP 协议解析与实现

    正文: 一.FTP通信原理简述 1.1 FTP简介 FTP是基于TCP/IP协议的一个应用协议.主要实现在不同的计算机之间的数据共享.FTP 采用的是C/S模式.客户既可以下载文件也可以上传文件.当然 ...

最新文章

  1. react-native安装Ant Design
  2. 2021年需要学习Python的自动化测试框架有哪些?你知道吗?
  3. golang中的目录操作
  4. 京东刘海锋:过去十年架构领域最重要的三个变化
  5. java application_applet_Java程序可以分为JavaApplication和JavaApplet两类。()
  6. Leetcode每日一题:191.number-of-1-bits(位1的个数)
  7. Git的安装以及常用的命令总结
  8. python文件管不了_Python文件_管道与模块编写
  9. TCPIP详解3.8ifconfig
  10. Android 蓝牙终端交互管理
  11. CI框架源码解析五之钩子类文件Hooks.php
  12. 吃货在东京 -- 记那段吃不饱的日子 之二 丰州的雪花牛肉
  13. Java高级编程9-姜国海 网络应用编程
  14. 关于二代测序中duplication产生和占比问题的探讨
  15. 维度建模之缓慢渐变维
  16. 方框加对勾怎么输入_Word文档里的□(方框)里怎么加入√(对勾)?
  17. 例7.14 有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后,能求出平均分、最高分和最低分。
  18. 微信跳转到关注公众号万能链接
  19. 算法[第四版]-图灵程序设计丛书-笔记
  20. python药学应用_Python数据分析实例一:医院药品销售数据

热门文章

  1. this 引用逸出
  2. WEBRTC 对华为,宝利通硬件,SIP视频会议系统的互通互联,扩容方案分析
  3. 实例4,循迹模块的使用和循迹小车的实现
  4. 客户端到服务器的通信过程
  5. 华为思科华三锐捷各种数通资料整理
  6. css引入外部自定义字体
  7. 投入产出分析软件研发成功
  8. bat:‘锘緻echo’ 不是内部或外部命令,也不是可运行的程序 或批处理文件
  9. 【高手分享:AMD双核电脑安装补丁后的问题】
  10. Dell显示器改USB端口供电能力