常见协议之FTP协议

简介

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,可能导致代理的另一端没有来得及完成三次

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

本文链接:常见协议之FTP协议

转载声明:转载请注明来源:Linux TCP/IP Stack,谢谢!


发表评论

电子邮件地址不会被公开。 必填项已用*标注