FTP协议是一种基于客户端和服务器的文件传输协议,属于应用层协议,基于传输层的TCP协议;

FTP主要分成主动模式和被动模式两种传输方式,

方式是相对服务器而言的,服务器主动发起数据连接即主动方式,使用固定的20端口,客户端主动发起数据连接就是被动方式:

主动模式(PORT方式):

FTP客户端随机一个非特权端口N,与ftp服务器的21端口(控制或者命令端口)建立连接;当客户端需要传输数据的时候,会发送

PORT命令道服务端,其中包含有客户端本地打开的数据接收监听端口(N+1),服务器端收到PORT后,会使用20数据端口,与客户端

的数据端口建立连接,然后发送数据;

被动模式(PASV方式):

FTP客户端随机一个非特权端口N,与ftp服务器的21端口(控制或者命令端口)建立连接;当客户端要传输数据的时候,会发PASV

命令道服务器,服务器收到命令之后,开启一个非特权端口监听,并且将该端口传送给客户端,客户端会使用端口

N+1来与服务器端口建立连接,然后发送数据;

防火墙设置的时候,一般不允许外部发起的连接;会导致在服务器PASV模式或者客户端PORT模式无法连接的情况;

在某些四层代理实现漏洞中,当服务器以主动模式建立连接,并且快速发送数据,然后fin,可能导致代理的另一端没有来得及完成三次

握手就被断开,从而导致数据传输失败;

最新文章

  1. js 小知识
  2. python线程锁
  3. 转 。。。。一个不规则的按钮 虽然已经不适用于cocos2dx3.0以上版本 but思路就应该是这个样子滴
  4. HTTP方法简介
  5. Jmeter 快速入门教程(三-2) -- 设置集结点
  6. Java中ArrayList和LinkedList区别
  7. 数据库通用Jdbc操作
  8. CALayer -- 备忘
  9. Installing Windows Identity Foundation on Windows 8 - The Certificate for the signer of the message is invalid or not found.
  10. fabric自动化部署django
  11. KeyEvent
  12. 规范 : angular ui router path & params
  13. Pandas系列(十四)- 实战案例
  14. HDOJ2017_字符串统计
  15. How to describe the wind sprial in computer system?
  16. BAT编程
  17. Android 目录结构
  18. Tomcat7出现HTTP Status 500 - java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl的解决
  19. c++多继承浅析
  20. python中 decimal不能直接应用于float数据

热门文章

  1. MySQL☞length函数
  2. 用jsp实现省市区三级联动下拉
  3. 在阿里云上遇见更好的Oracle(四)
  4. Spark概念介绍
  5. django之上传文件和图片
  6. BZOJ 4029 HEOI2015 定价 数位贪心
  7. HDU 3699 A hard Aoshu Problem(暴力枚举)(2010 Asia Fuzhou Regional Contest)
  8. python中字典的循环遍历的两种方式
  9. Mac下安装OpenCV问题
  10. 算法(12)Best Time to Buy and Sell Stock II