用FTP传输下载诊断事件与相关动作

来源:互联网 发布:双代号网络计划规则 编辑:程序博客网 时间:2024/05/22 11:59

1、为FTP的传输连接打开一个TCP套接字

2、依据获取到的连接回应

             如果获取到FTP的积极响应,发送FTP USER 命令:把user的值设成“anonymous”

             错误条件:如果接收到FTP的消极响应或是出现超时,把DiagnosticsState设置成Error_InitConnectionFailed 并终止测试。

3、依据接受到的“enter password”请求

              发送PASSWORD命令:输入密码作为anoymous 登录的密码

              错误条件:如果“enter password”请求失败或是超时,把DiagnosticsState设置成Error_PasswordRequestFailed 并终止测试。

4、依据password回应

              如果回应是“successfully logged in”,发送TYPE命令:设置传输模式

              错误条件:如果回应不是“successfully logged in”,把DiagnosticsState设置成Error_LoginFailed 并终止测试。

5、依据接收的传输模式回应

              如果传输模式设置成功,发送PASV命令来请求把服务器设置成消极模式。

              错误条件:如果传输模式回应失败或是超时,把DiagnosticsState设置成Error_NoTransferMode 并终止测试。

6、依据接收到的消极模式回应

             如果消极模式回应是成功的,请求建立FTP数据连接

             把TCPOpenRequestTime设置为当前时间

             错误条件:如果消极模式回应失败或超时,把DiagnosticsState设置成Error_NoPASV 并终止测试。

7、依据接收到的TCP数据连接回应:(FTP数据连接)

              如果成功建立,把TCPOpenResponseTime设置成当前时间。

              错误条件:如果连接不能打开或超时,把DiagnosticsState设置成Error_Response 并终止测试。

              发送SIZE命令:表明将要下载文件的大小

8、依据接收到的SIZE命令回应

             用字节记录文件长度,发送RTRV命令请求文件内容

             把ROMTime设置成当前时间

             错误条件:如果接收到服务器对SIZE命令的无效回应,或是出现超时,把DiagnosticsState设置成Error_IncorrectSize 并终止测试。

9、依据接收到FTP数据连接的第一个单元的数据(例如:文件的第一部分内容)

              把BOMTime设置成当前时间

              记录以太网在该端口接收到的字节数,该数与后来的TotalBytesReceived的计算有关

              错误条件:如果FTP传输超时,把DiagnosticsState设置成Error_Timeout 并终止测试。

10、依据接收到的FTP数据连接的最后的一个数据包

                把EOMTime设置成当前时间

                记录以太网在该端口接收到的字节数,计算TotalBytesReceived。

11、一旦EOMTime被设置:

           把DiagnosticsState设置成Completed

           服务器关闭连接,或者出现超时时发送RESET flag。    

                        

0 0