常见协议基础知识总结--FTP协议
2024-10-19 20:50:30
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,可能导致代理的另一端没有来得及完成三次
握手就被断开,从而导致数据传输失败;
最新文章
- js 小知识
- python线程锁
- 转 。。。。一个不规则的按钮 虽然已经不适用于cocos2dx3.0以上版本 but思路就应该是这个样子滴
- HTTP方法简介
- Jmeter 快速入门教程(三-2) -- 设置集结点
- Java中ArrayList和LinkedList区别
- 数据库通用Jdbc操作
- CALayer -- 备忘
- Installing Windows Identity Foundation on Windows 8 - The Certificate for the signer of the message is invalid or not found.
- fabric自动化部署django
- KeyEvent
- 规范 : angular ui router path &; params
- Pandas系列(十四)- 实战案例
- HDOJ2017_字符串统计
- How to describe the wind sprial in computer system?
- BAT编程
- Android 目录结构
- Tomcat7出现HTTP Status 500 - java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl的解决
- c++多继承浅析
- python中 decimal不能直接应用于float数据