java網路程式設計之TFTP(一)

2021-07-23 19:40:01 字數 1251 閱讀 7033

**

tftp使用了udp套接字,效率比較高,但是也要求tftp為資料傳輸的不可靠負責。

tftp伺服器在69埠上監聽到來的資料報,客戶端使用乙個隨機的埠號

tftp作用:許多無盤工作站使用tftp來載入它們需要的來自伺服器的檔案。

每個資料報有乙個操作碼opcode(16 bits),表示包的型別,有五種

1——rrq——-請求讀

2——wrq——-請求寫

3——dat——-檔案資料

4——ack——-確認,繼續進行傳輸

5——err——–發生錯誤

請求讀或寫資料報包包括操作碼(opcode)、檔名(由0位元組終止)和模式串(由0位元組終止)

文字檔案的模式是netascii ,二進位制檔案的模式是8位的二進位製組(octet)

檔案資料報文包括操作碼、塊編號、資料(0–512位元組)

ack資料報包括操作碼、塊編號

err資料報包括操作碼、差錯碼、差錯資訊(由0位元組終止),用於伺服器不能處理讀請求或寫請求

的情況。在檔案傳輸的過程中的讀和寫也會導致傳送這種報文,接著停止傳輸。

tftp的工作過程

tftp的工作過程很像停止等待協議,傳送完乙個檔案塊後就等待對方的確認,確認時應指明所確認的塊號。傳送完資料後在規定時間內收不到確認,就要重發資料pdu,傳送確認pdu的一方若在規定時間內收不到下乙個檔案塊,也要重發確認pdu。這樣保證檔案的傳送不致因某乙個資料報的丟失而告失敗。

客戶端需要執行的任務步驟:

1、傳送rrq或wrq請求到伺服器的69埠

2、等待乙個資料報或者是ack包。這個包將包含乙個69以外的新埠號。

3、接收到資料報,就以ack包響應,接收到ack包,就傳送下乙個資料報。

4、準備處理超時錯誤或者是err包

伺服器端需要執行的任務步驟:

1、監聽69埠上的rrq或者wrq請求。

2、對每乙個合法請求,建立乙個套接字(也可能是乙個新執行緒)。對rrq請求,以初始的資料報響應,對wrq請求,發出對第0塊的確認。

3、接收到ack包,以下乙個資料報來響應,接收到資料報,以ack包來響應。

4、準備處理超時錯誤或者err包。

java網路程式設計之SOCKET

建立物件的時候就會建立連線 try socket socket new socket time.nist.gov 13 catch ioeception ex 可選的 socket.setsotimeout 150000 從socket中讀取資料 inputstream in socket.geti...

Java網路程式設計之Socket

網路模型 tcp協議與udp協議區別 網路程式設計的本質是兩個裝置之間的資料交換,當然,在計算機網路中,裝置主要指計算機。資料傳遞本身沒有多大的難度,不就是把乙個裝置中的資料傳送給兩外乙個裝置,然後接受另外乙個裝置反饋的資料。現在的網路程式設計基本上都是基於請求 響應方式的,也就是乙個裝置傳送請求資...

Java網路程式設計之傳輸控制協議

一 概述 tcp使用更低層的 lower level 的ip通訊協議在兩台計算機之間建立連線。這種連線提供了乙個允許位元組流傳送和接收的介面,並且採用 透明的方式把資料轉換為ip資料報。資料報 datagram 的問題之一是不能保證資料報到達目的地。tcp解決了這個問題,它提供了 的資料位元組 的送...