FTP 被动模式下获取目录数据异常
今天测试反馈了一个问题:FTP 被动模式下获取目录数据异常!
正常的测试步骤:
1.客户端与服务器建立端口为21的命令链路
2.客户端登录上服务器
3.进入被动模式,获取服务器断的目录信息
4.服务器监听临时端口,且把临时端口发给 FTP 客户端
5.客户端主动发起链路建立请求到服务端指定监听的临时端口,并建立数据链路
6.进行相应的数据传输(获取目录,上传文件等)
7.数据传输结束,数据链路断开
8.命令链路断开
但是实际上由于FTP 客户端发起TCP链路建立请求到 FTP 服务器失败,从而导致了数据链路建立失败,影响到了后面的数据交互(获取目录信息、上传文件)。
服务器端的wireshark捉包:

分析:
这个时候服务端与客户端已经建立好了命令链路,在进行数据交互(获取目录信息)的时候,发生了异常。
客户端向服务器发送了SYN请求,服务器向客户端回复了ACK,但是之后客户端一直没有响应,因此服务器不断地向客户端重传
客户端的wireshark捉包:

分析:
客户端向服务器发送了SYN请求,但是服务器一直没有响应,因此客户端不断地向服务器重传
简单的来说就是:服务器向客户端回复的ACK包,客户端并没有收到
猜测原因:
1.客户端或者服务器端的防火墙偷悄悄的将 TCP SYN 处理掉了
2.运营商核心网的调度处理有关
3.未知原因
进一步测试:
1.使用不同的运营商:联通、电信、移动
2.不使用被动模式,而是使用主动模式
测试一:
联通: 正常电信: 异常
移动: 正常
测试二:
主动模式:正常
被动模式:异常
分析:
出现问题的范围就是 当客户端的运营商是电信 且使用被动模式时,与服务器的数据交互就可能发生异常
解决方法:
使用主动方式
本文章只作为简单的记录

浙公网安备 33010602011771号