用FTP傳輸下載診斷事件與相關動作

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。    

                        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章