ftp协议为明文可读协议,由0d0a切分内容,如下图所示
客户端请求数据格式:请求命令+空格+请求参数+\r\n
失败认证数据包

成功认证数据包
ftp认证过程

ftp认证过程
1.服务端->客户端 220响应

2.客户端->服务端 USER请求

3.服务端->客户端 331响应

4.客户端->服务端 PASS请求

5.服务端->客户端 530/230响应


服务端响应数据格式:响应码 + 空格 + 响应参数+\r\n
参考: