XMODEM檔案傳輸協議


XMODEM是由Ward Christensen於1977年開發的一種標準檔案傳輸協議。它傳送包含資料的資料塊,並等待接收塊確認。XMODEM在硬體和軟體中都有使用。

  • XMODEM是一種半雙工通訊協議,具有有效的錯誤檢測機制。

  • 它將原始資料分成一系列資料包傳送給接收方,以及其他資訊,允許接收方確定資料包是否正確接收。

  • 檔案傳輸完成後,會在最後一個數據塊後傳送一個檔案結束符。這個字元不在資料包內,而是單獨傳送一個位元組。

  • 由於檔案長度不是協議的一部分,所以最後的資料包會用已知的字元填充,這些字元可以丟棄。

  • 檔案一次傳輸一個數據報。計算資料包校驗和,並與接收方在資料包末尾找到的校驗和進行比較。當接收方向傳送方傳送確認訊息時,將傳送後續的資料包。

  • 如果校驗和有問題,接收方會發送一條訊息請求重新發送。

  • 接收到否定反饋後,傳送方會重新發送資料包,並在發出傳輸失敗之前嘗試連續傳輸大約十次。

傳輸方法

  • 接收方控制傳輸,即在接收方傳送第一個NAK之前,傳送方不會發送任何資料。傳送方等待接收方傳送NAK位元組。

  • NAK位元組是接收方準備好開始的訊號。這是指示檔案傳輸準備好開始的第一個位元組。

  • 如果接收方響應時間過長或發生錯誤,傳送方將停止等待或“超時”。檔案傳輸將在超時後重新啟動。

  • 如果接收方由於缺少EOT字元而在等待資料時10秒內沒有收到有效的資料包,也會發送NAK。

接收方執行以下功能,並一次傳輸一個數據包

假設傳送的資料包編號與實際資料包編號相同,即檢查資料包中的第二個位元組。

  • 如果出現差異,則傳送CAN位元組以取消傳輸。接收資料包後計算資料包校驗和,並與從傳送方接收到的資料包末尾的校驗和進行比較。

  • 如果條件SUM = CHECKSUM為真,則接收方向傳送方傳送ACK位元組,指示按順序傳送下一個資料包。

  • 如果情況不理想,則傳送NAK位元組,表示傳送方將重新發送位元組。

  • 當傳送方傳送EOT位元組而不是SOH位元組時,接收方傳送NAK位元組。

  • 如果傳送方之後立即傳送另一個EOT,接收方傳送ACK位元組,傳輸完成。

  • 接收方可以透過傳送CAN位元組隨時取消傳輸,而傳送方只能在資料塊之間透過傳送CAN位元組來取消。

更新於:2021年10月28日

2K+ 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告