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。