Python socket之tftp協議

來源:互聯網
上載者:User

標籤:開始   字串   序號   一個   檔案中   資料轉送   錯誤   python   存在   

1. TFTP協議介紹

TFTP(Trivial File Transfer Protocol,簡單檔案傳輸通訊協定)

是TCP/IP協議族中的一個用來在用戶端與伺服器之間進行簡單檔案傳輸的協議

特點:

  • 簡單
  • 佔用資源小
  • 適合傳遞小檔案
  • 適合在區域網路進行傳遞
  • 連接埠號碼為69
  • 基於UDP實現
2. TFTP下載過程

TFTP伺服器預設監聽69號連接埠

當用戶端發送“下載”請求(即讀請求)時,需要向伺服器的69連接埠發送

伺服器若批准此請求,則使用一個新的、臨時的 連接埠進行資料轉送

當伺服器找到需要現在的檔案後,會立刻開啟檔案,把檔案中的資料通過TFTP協議發送給用戶端

如果檔案的總大小較大(比如3M),那麼伺服器分多次發送,每次會從檔案中讀取512個位元組的資料發送過來

因為發送的次數有可能會很多,所以為了讓用戶端對接收到的資料進行排序,所以在伺服器發送那512個位元組資料的時候,會多發2個位元組的資料,用來存放序號,並且放在512個位元組資料的前面,序號是從1開始的

因為需要從伺服器上下載檔案時,檔案可能不存在,那麼此時伺服器就會發送一個錯誤的資訊過來,為了區分服務發送的是檔案內容還是錯誤的提示資訊,所以又用了2個位元組 來表示這個資料包的功能(稱為作業碼),並且在序號的前面

註:1.資料包格式是字串形式

2.需要表明大小端

3.其中定義資料包時的記憶體大小需要用struct模組格式化

 

Python socket之tftp協議

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.