專利名稱:用于包括廣播功能的簡化文件傳輸協議的系統和方法
技術領域:
本發明涉及一種簡化文件傳輸協議的系統和方法(以下稱作“TFTP”),更具體地,涉及一種用于包括廣播功能的TFTP的系統和方法,其中將新選項添加到TFTP中,以允許多個客戶機與一個服務器相連,從而同時下載文件。
背景技術:
在大多數系統中,將數據表示為被稱作文件的單元。需要傳送文件和部分文件,以便在系統之間傳送數據。
在通過網絡互連的系統中,在一個系統的用戶希望從其它系統接收數據到他或她的系統,或從他或她的系統向其它系統傳送數據的情況下,即,當系統希望彼此進行通信的情況下,需要規則和規章來允許這些系統彼此進行通信。將所述規則和規章稱作協議。
此時,將請求數據傳輸的系統稱作客戶機系統,而將響應這種請求來提供服務的系統稱作服務器系統。通常,多個客戶機系統與一個服務器系統相連。
在計算機網絡中專用的語言是傳輸控制協議/因特網協議(TCP/IP)。基于TCP/IP的協議包括文件傳輸協議(FTP)、終端仿真協議(Telnet)、超文本傳輸協議(HTTP)等。
這里,文件傳輸協議(FTP)的目的是在FTP用戶的指令下,將一個文件或部分文件從一個系統傳送到其它系統。
大部分FTP被在線用戶交互的使用。由操作系統來仲裁FTP用戶之間的通信。該操作系統具有輸入/輸出(I/O)驅動器。如果系統A的用戶希望訪問系統B中的文件,則系統A中的FTP建立與系統B中FTP的連接。當然,這是邏輯連接。通過協議棧的各個層來形成用于控制信息和用戶數據的實際路徑。
同時,簡化文件傳輸協議(TFTP)是一種FTP。將其設計為比FTP更簡單并且只能由小型代碼來實現。在只讀存儲器(ROM)中能夠容易地實現TFTP,并且通常用作在無盤系統中下載操作系統圖像的協議。
一般地,FTP是一種利用TCP來按照可靠且面向連接的方式來發和接收文件的協議,而TFTP是一種利用用戶數據報協議(UDP)的非連接文件傳輸協議。當路由器下載配置文件和IOS圖像時主要使用TFTP。由于沒有安全選項,TFTP展示了比FTP更快的速度。
通過檢查兩個協議的內容可以理解TCP和UDP之間傳輸的差異。如上所述,TCP是一種面向連接的可靠協議,并且通過滑動窗口(sliding window)來控制流量。
此外,TCP利用序列號和批準號來進行控制。TCP重新發送沒有接收到應答(ACK)的所述數據,并且只有當接收到通知已經接收到數據的信號時,才發送下一個數據,以保證數據傳輸中的可靠性。
然而,與TCP不同,由于不具有檢查數據是否完好到達的功能(檢驗和(checksum)),UDP具有更快的傳輸速度,并且由于其不具有連接,因此UDP不必傳送控制幀,由此減小了網絡負荷。
由于UDP不具有確認過程或流量控制,應用程序必須充當以代替執行。可以認為UDP是單向傳輸。這是因為沒有通知數據成功到達的ACK(應答)碼的重新傳輸。
很久以前,設計上述TFTP協議來傳送小規模的文件。與因特網FTP相比,這很容易實現,具有服務器—客戶機配置并使用了IP/UDP。IETF RFC1350(Internet engineering task force request for comments1350)中已經定義了相關協議。
到目前為止,由于其易于傳送小規模程序的文件,正在廣泛使用利用該協議的多種系統。然而,由于512字節的固定數據傳輸和最大65535的塊大小的限制,不可能傳送32M字節(百萬字節)或更多的數據。
為了克服這些限制,后來添加了選項功能。通過允許這種功能來調整數據的傳輸大小,TFTP協議變得更有價值。該內容被標準化為RFC(請求評論)2347 TFTP選項擴展,RFC 2348Blocksize選項。
此外,RFC2090是使能多播的多播選項。然而,RFC2090是一種實驗版本而并沒有標準化。可以在服務器中實現,但不能在大多數客戶機中實現。
當前,Berkeley Software Distribution(Berkeley Software Design;BSD)、UNIX和Linux系列中均基本地提供了TFTP服務器—客戶機程序。在Windows系列中,有作為免費軟件的多個可用程序。
在較好實現了網絡功能的情況下,不能較好地使用該TFTP協議,但在按照基本方式啟動之后個人計算機(PC)或多個系統(即,幾乎具有網絡功能的所有設備)必須下載分組而沒有需首先需要操作系統(OS)的情況下,其有著廣泛應用。
由于采用了TFTP協議,基本上,服務器和客戶機按照一對一的方式進行操作,這不適于多個客戶機從一個服務器下載文件。
在PC(個人計算機)群環境中,或一個設備有多個模塊構成且在電源打開時每一個模塊必須從主模塊下載基本文件的環境中,網絡負荷增大且文件傳送錯誤也增大,這是由于如果多個客戶機試圖同時從服務器下載文件,則服務器試圖按照一對一的方式傳送文件。
為了克服此問題,RFC2090中定義了多播TFTP。然而,其處于實驗狀態且并沒有標準化,并且對于在客戶機實現非常復雜。
在RFC2090中定義的多播功能中,需要當傳輸時使用的多播IP地址,此外,由于如果客戶機進行連接的同時其它客戶機下載文件,則客戶機會從文件的中部下載文件,客戶機本身必須具有重新組合文件塊的功能。
然而,由于TFTP通常用于初始化啟動而不是正常網絡功能已經建立時,采用客戶機中已實現的程序只能進行最簡單的操作。
因此,在大多數TFTP功能中,即時增強了服務器程序使其具有復雜的功能也不存在問題。然而,由于作為客戶機的TFTP功能非常簡單,很難處理例如塊重新組合的功能。
在這種情況下,TFTP客戶功能按照塊數目(#)順序提供并提取數據分組和ACK分組,其中如果在傳輸期間丟失任意分組,則阻塞了客戶機的操作。文件傳輸本身停止或有定時器重新啟動。
此外,盡管采用了RFC2090來支持TFTP的多播,根據情況不必使用多播的可能性很高。在一個設備中建立內部網絡的環境中進行用于正常操作的文件傳輸的情況下,其中一個主要部分充當TFTP服務器且剩余部分充當TFTP客戶機,存在一對一傳輸花費過多時間并引起傳輸錯誤的高可能性。
然而,不必在內部分析并操作多播組。
發明內容
因此,設想本發明來解決上述和其它問題,本發明的目的是提供一種用于包括廣播功能的簡化文件傳輸協議的系統和方法,其中定義用于廣播的TFTP選項以添加廣播功能,當多個客戶機同時向一個服務器請求文件傳輸時,通過廣播來傳送文件,與使用多播相比,導致了簡單的操作。
本發明的另一個目的是提供一種利用廣播TFTP的方法和設備,使傳輸速度快于現有的一對一傳輸方式,這使得多個客戶機可以按照快而有效的方式從一個服務器下載文件。
本發明的另一個目的是除了廣播選項擴展以外,提供當添加塊大小選項時,塊大小大于之前的塊大小,以允許更快的文件傳輸。
本發明的另一個目的是提供最有效的文件傳輸,其中子網絡是廣播網絡,存在多個客戶機且需要同步文件傳輸。
本發明的另一個目的是提供最大傳輸操作效率,同時使所添加的功能最少,這是由于TFTP不用于其中所有網絡功能都實質上有效的設備。
本發明的另一個目的是提供一種用于包括廣播功能的簡化文件傳輸協議的系統和方法,所述功能易于實現、成本有效、安全且可靠。
根據本發明的一方面,為了實現上述和其它目的,提供了一種用于具有廣播功能的簡化文件傳輸協議(TFTP)的系統,所述系統包括多個客戶機系統,用于發送包括廣播選項的TFTP擴展讀請求消息,并且如果客戶機系統接收到通知客戶機系統是主客戶機的選項應答消息,則只要客戶機系統接收到數據就發送應答消息;以及服務器系統,用于響應接收到來自客戶機系統的擴展讀請求消息,發送選項應答消息,所述消息包括通知客戶機系統是否是主客戶機的擴展,廣播數據,然后,如果服務器系統接收到來自多個客戶機中被設置為主客戶機的客戶機系統的應答消息,則順序地廣播數據。
如果服務器系統在預定時間內沒有接收到來自主客戶機的應答消息,則服務器系統指定另一個客戶機作為主客戶機并發送通知另一個客戶機是主客戶機的應答消息,廣播數據,然后,如果服務器系統接收到來自新主客戶機的應答消息,則順序地廣播數據。
擴展讀請求消息包括操作碼字段,指示了用于消息類型的數值;文件名字段,具有利用ASCII(美國信息交換標準碼)編碼的文件名;模式字段,定義了傳輸模式;選項字段,用于支持廣播;以及掩碼位字段,用于定義選項字段的數值。
由服務器系統發送的選項應答消息包括操作碼字段,指示了用于消息類型的字段;廣播字段,用于支持廣播;以及通知掩碼位、端口號和是否是主客戶機的字段。
選擇首先發送讀請求消息的客戶機作為主客戶機。
根據實現上述目的的本發明的另一方面,提供了一種用于包括廣播功能的簡化傳輸擴展協議的方法,該方法包括第一步驟,由第一客戶機將擴展讀請求消息發送到服務器,以請求廣播文件傳輸;第二步驟,由服務器將通知第一客戶機是主客戶機的選項應答消息發送到第一客戶機;第三步驟,由第二客戶機將擴展讀請求消息發送到服務器,以請求廣播文件傳輸;第四步驟,由服務器將通知第二客戶機不是主客戶機的選項應答消息發送到第二客戶機;第五步驟,由服務器廣播數據,然后等待接收來自第一客戶機的應答消息;以及第六步驟,如果服務器接收到來自第一客戶機的應答消息,則由服務器重復進行第五步驟,直到服務器發送了所有剩余的數據。
該方法還包括第七步驟,如果服務器在一定時間內,沒有接收到響應從第一客戶機接收的數據的應答消息,則由服務器指定第二客戶機作為主客戶機;以及第八步驟,發送通知將第二客戶機指定為主客戶機的選項應答消息到第二客戶機,然后執行數據傳輸。
該方法還包括第九步驟,如果預定時間過去之后,服務器接收到來自另一個客戶機的擴展讀請求消息以請求廣播,由服務器通過新的簡化文件傳輸程序來按照一對一的方式進行處理,或分配新的廣播端口。
該方法還包括第十步驟,當在服務器中出現故障時,發送錯誤消息到每一個客戶機。
如果服務器不支持廣播選項功能,當服務器接收到來自任意客戶機的擴展讀請求消息以請求廣播文件傳輸時,服務器發送錯誤消息到相關客戶機。
根據本發明的另一方面,為了實現上述目的,提供了一種用于具有廣播功能的簡化文件傳輸協議(TFTP)的系統,所述系統包括多個客戶機系統,用于發送包括廣播選項和/或塊大小選項的TFTP擴展讀請求消息,并且如果客戶機系統接收到通知客戶機系統是主客戶機的選項應答消息,則只要客戶機系統接收到數據就發送應答消息;以及服務器系統,用于響應接收到來自客戶機系統的擴展讀請求消息,發送選項應答消息,所述消息包括通知客戶機系統是否是主客戶機的擴展和添加的塊大小信息,廣播數據,然后,如果服務器系統接收到來自多個客戶機中被設置為主客戶機的客戶機系統的應答消息,則順序地廣播數據。
如果服務器系統在預定時間內沒有接收到來自主客戶機的應答消息,則服務器系統指定另一個客戶機作為主客戶機并發送通知另一個客戶機是主客戶機的應答消息,廣播數據,然后,如果服務器系統接收到來自新主客戶機的應答消息,則順序地廣播數據。
擴展讀請求消息包括操作碼字段,指示了用于消息類型的數值;文件名字段,具有利用ASCII碼編碼的文件名;模式字段,定義了傳輸模式;一選項字段,用于支持廣播;掩碼位字段,用于定義選項字段的數值;以及第二選項字段和塊大小數值字段,用于支持塊大小。
由服務器系統發送的選項應答消息包括操作碼字段,指示了用于消息類型的數值;廣播字段,用于支持廣播;通知掩碼位、端口號和是否是主客戶機的字段;以及選項字段和塊大小數值字段,用于支持塊大小。
選擇首先發送讀請求消息的客戶機作為主客戶機。
根據實現上述目的的本發明的另一方面,提供了一種用于包括廣播功能的簡化傳輸擴展協議的方法,該方法包括第一步驟,由第一客戶機將擴展讀請求消息發送到服務器,以請求廣播文件傳輸;第二步驟,由服務器將通知第一客戶機是主客戶機并且包括塊大小信息的選項應答消息發送到第一客戶機;第三步驟,由第二客戶機將擴展讀請求消息發送到服務器,以請求廣播文件傳輸;第四步驟,由服務器將通知第二客戶機不是主客戶機并且包括重新定義的塊大小信息的選項應答消息發送到第二客戶機;第五步驟,由服務器按照重新定義的塊大小單位廣播數據,然后等待接收來自第一客戶機的應答消息;以及第六步驟,如果服務器接收到來自第一客戶機的應答消息,則由服務器重復進行第五步驟,直到服務器發送了所有剩余的數據。
該方法還包括第七步驟,如果服務器在一定時間內,沒有接收到響應從第一客戶機接收的數據的應答消息,則由服務器指定第二客戶機作為主客戶機;以及第八步驟,發送通知將第二客戶機指定為主客戶機的選項應答消息到第二客戶機,然后執行數據傳輸。
該方法還包括第九步驟,如果預定時間過去之后,服務器接收到來自另一個客戶機的擴展讀請求消息以請求廣播,由服務器通過新的簡化文件傳輸程序來按照一對一的方式進行處理,或分配新的廣播端口。
該方法還包括第十步驟,當在服務器中出現故障時,發送錯誤消息到每一個客戶機。
如果服務器不支持廣播選項功能和/或塊大小選項功能,當服務器接收到來自任意客戶機的擴展讀請求消息以請求廣播文件傳輸時,服務器發送錯誤消息到相關客戶機。
當結合其中相同參考符號表示相同或相似組件的附圖時,參考以下詳細說明能夠使本發明的更徹底的理解和許多附加優點易于顯而易見并變得能夠更好地理解,其中圖1是示出了用于包括廣播功能的簡化文件傳輸協議的系統配置的圖,將所述功能應用于本發明;圖2a是示出了本發明實施例中使用的重新定義的讀請求(RRQ)消息的結構圖;圖2b是示出了將實際數字數值應用到圖2a的消息格式中的情況的圖;圖3a是示出了由本發明中使用的服務器系統發送的選項應答(OACK)消息的結構圖;圖3b是示出了將實際數字數值應用到圖3a的消息格式中的情況的圖;圖4是根據本發明實施例的用于包括廣播功能的簡化文件傳輸協議的方法的流程圖;圖5是示出了在根據本發明實施例的用于包括廣播功能的簡化文件傳輸協議的方法中,當出現錯誤時的處理過程的流程圖;圖6a是示出了在本發明的另一個實施例中,將實際數字數值應用到重新定義使用的讀請求(RRQ)消息的情況的圖;圖6b是示出了在本發明的另一個實施例中,將實際數字數值應用到由服務器系統發送的重新定義使用的選項應答(OACK)消息的情況的圖;以及圖7是根據本發明另一個實施例的用于包括廣播功能的簡化文件傳輸協議的方法的流程圖。
具體實施例方式
下面,將參考附圖詳細說明本發明的優選實施例,以使本發明所屬領域的普通技術人員能夠容易地執行本發明。
圖1是示出了用于包括廣播功能的簡化文件傳輸協議的系統配置的圖,將所述功能應用于本發明。
參考圖1,用于包括廣播功能的簡化文件傳輸協議的系統包括服務器系統10和多個客戶機系統20a到20n。
作為示例,結合服務器系統10和客戶機20a來討論通常在簡化文件傳輸協議系統(TFTP)中進行的文件傳輸過程。
服務器系統10和客戶機20a通過網絡30互連,以提供并提取文件40。
此時,在服務器系統10上運行的TFTP系統14和在客戶機系統20a上運行的TFTP客戶機24a利用使用TCP的UDP和UDP的因特網協議(IPs)12和22a在以太網11上進行操作。
TFTP客戶機24a運行在系統20a上,其中系統20a中嵌入了TFTP客戶機24a,以開始與TFTP服務器14相連。TFTP客戶機24a發送讀/寫請求消息(RRQRead ReQuest/WRQWrite ReQuest)到TFTP服務器14,以建立與TFTP服務器14的連接。
此時,TFTP客戶機24a在TFTP客戶機側選擇用于TCP/UDP 23a的UDP端口,并將包含其自身IP地址和所選擇的端口號的讀/寫請求消息(RRQ/WRQ)通過該所選擇端口發送到TFTP服務器14。
TFTP服務器14在TFTP服務器側,通過用于TCP/UDP 13的UDP的端口69,選擇從TFTP客戶機24a發送的讀/寫請求消息(RRQ/WRQ)。
當接收到請求消息時,TFTP服務器14注冊TFTP客戶的IP(因特網協議)地址和端口號,并利用已注冊的IP地址和端口號將響應請求的應答消息(ACK)通過與當接收請求消息時所使用的相同的端口發送到TFTP客戶機24a。
TFTP客戶機24a通過之前選擇的用于TFTP客戶機側UDP 23的端口,接收由TFTP服務器14發送的應答消息(ACK),以建立兩個系統之間的連接。
如果建立了TFTP服務器14和TFTP客戶機24a之間的連接,通過兩個UDP端口在系統之間發送讀/寫請求消息(RRQ/WRQ)中由TFTP客戶機24a請求的文件40。
TFTP服務器14和TFTP客戶機24a保持相連,直到文件40的傳輸完成,并在傳輸完成之后關閉連接以端口TFTP服務器14和TFTP客戶機24a。
同時,對于這種典型的簡化文件傳輸協議系統,為了包括本發明的廣播功能,需要根據在RFC(請求評論)2347中定義的協議來定義新的選項并重新定義消息類型。
通常,讀請求消息(RRQ)是用于建立客戶機所需的連接以便從服務器讀取數據的消息。即,是用于下載文件的請求消息。此時,“1”是用于操作碼(OPC)的數值,這是RRQ的第一字段,并且文件名包括具有可變長度的字符串,伴隨著傳輸模式的定義字段。
寫請求消息(WRQ)是用于建立客戶機所需的連接以便向服務器寫入數據的消息。即,是用于上傳文件的請求消息。此時,“2”是用于作為WRQ中第一字段的OPC的數值。
同時,“3”是用于消息的OPC數值,用于傳輸數據塊,并且“4”是用于響應接收到數據塊的應答(ACK)消息的OPC數值。
當出現錯誤時,“5”是用于消息的OPC數值。當將選項添加到擴展TFTP的RRQ和WRQ消息中時,建議將“6”用于選項ACK消息的OPC數值(OACK;選項接受或不接受)。
圖2a是示出了本發明實施例中使用的重新定義的RRQ消息的結構圖。
參考圖2a,RRQ消息包括操作碼(OPC)字段31、文件名字段32、模式字段34、選項字段36和掩碼位字段38。
操作碼字段31的操作碼數值是1,文件名字段32的文件名包括具有可變長度的字符串。利用ASCII碼對文件名進行編碼,1字節字段33指示了其結束點。
模式字段34用于定義傳輸模式。在ASCII模式的情況下,用于模式字段的字符串是“netascii”,而在二進制文件的情況下是“octet”。1字節字段35指示了模式字段的結束點。
選項字段36是新定義的字段,用于支持廣播功能。使用的選項字符串是“broadcast”,1字節字段37指示了選項字段的結束點。
掩碼位字段38是新定義的字段,用于支持廣播功能。其定義了用于廣播選項的數值,并根據客戶機的廣播地址進行確定。對于各個類別,數值是8、16、24等。
因此,在按照廣播模式發送文件且廣播選項屬于類別C的情況下,可以如圖2b所示來定義RRQ消息。
圖2b是示出了將實際數字數值應用到圖2a的消息格式中的情況的圖。
參考圖2b,將操作碼定義為“1”,將文件名定義為“foofile”,將傳輸模式定義為octet,將選項字段定義為字符串“Broadcast”,將掩碼位字段定義為24位。
接下來,將說明服務器系統和客戶機之間的OACK消息。
圖3a是示出了由本發明中使用的服務器系統發送的OACK消息的結構圖。
參考圖3a,OACK消息包括操作碼(OPC)字段41、廣播字段42,1字節字段43,掩碼位、端口號和主客戶機(Mask bit,Port,和MC)字段44和1字節字段45。
操作碼字段41的操作碼數值是6。在廣播字段42中定義字符串“broadcast”,且1字節字段43指示了結束點。
掩碼位、端口號和主客戶機(Mask bit,Port,和MC)字段44定義了用于廣播選項的數值。其定義了由服務器系統10確定的廣播掩碼位、UDP端口號和主客戶機位。
如果該數值是可接受的,則掩碼位接受來自客戶機20a到20n的讀請求消息(RRQ)。否則,根據服務器系統10的廣播地址來確定掩碼位。
對于已經首先發送了讀請求消息(RRQ)并變為主機的客戶機24a到24n中的任意一個,將主客戶機(MC)位設為1,并對于其它客戶機設為0。主客戶機用于響應數據分組,發送應答消息。
這里,主客戶機是首先發送讀請求消息(RRQ)的客戶機。主客戶機向數據分組發送應答消息。其它客戶機不發送應答消息。
建議使用在RFC2347中重新定義的選項之一1768作為廣播UDP端口。將該端口號添加到從服務器發送到客戶機的OACK消息中,以便由客戶機進行解譯。客戶機能夠接受由服務器提供的其它端口號。
在響應從客戶機接收的包括廣播選項的消息(RRQ)發送應答廣播選項的OACK消息的情況下,可以如圖3b所示來定義OACK消息,其中選項包括廣播模式、類別C、1768的端口號和被設置位主機的對應客戶機(1主機,0非主機)。
作為參考,多播TFTP使用1758。
圖3b是示出了將實際數字數值應用到圖3a的消息格式中的情況的圖。
參考圖3b,可以將操作碼定義為“6”,將廣播選項字段定義為“broadcast”,以及將掩碼位和MC字段定義為“24,1768,1”,其中24是掩碼位,1768是UDP端口,以及1是MC字段。
在配置包括廣播功能的文件傳輸系統并且如上定義消息格式的情況下來說明實際的文件傳輸過程。
在討論操作之前,將客戶機系統24a定義為主客戶機,并將接收到來自主客戶機24a的讀請求消息(RRQ)之后,服務器系統10等待接收來自其它客戶機24b到24n的讀請求消息的時間定義為“T”。
此外,作為操作所需參數的“Ts”是向主客戶機24a發送數據之后,服務器系統10進行等待直到主客戶機24a應答數據的超時時間。當服務器系統10此時沒有接收到應答時,服務器系統10重新發送數據。
此外,作為操作所需的另一個參數,“n”是指示了服務器系統10向客戶機系統24a到24n重新發送廣播消息的次數的參數,“a”是指示了客戶機系統24a到24n等待接收來自服務器系統10的數據分組的臨界(marginal)時間的參數。
由于“n*A”是服務器系統10等待客戶機系統24a到24n的時間,設置客戶機系統24a到24n的等待超時時間比“n*A”大“a”。
如果主客戶機24a發送了包括“broadcast”選項字段的讀請求消息以通過廣播接收文件,服務器系統10響應接收到消息,返回OACK以接受“broadcast”選項,然后在“T”時間內等待來自其它客戶機系統24b到24n的文件傳輸請求。
主客戶機24a接收其中主客戶機位被設為“1”的OACK,識別主客戶機24a是用于廣播傳輸的主客戶機,發送ACK,然后等待數據。
如果來自其它客戶機系統24b到24n的讀請求消息在“T”時間之內到達服務器系統10,則服務器系統10發送OACK消息。經過“T”時間之后,服務器系統10接收來自其它客戶機系統24b到24n的應答(ACK)消息,并廣播數據。
此時,則主客戶機24a響應數據,發送應答消息,同時其它客戶機系統24b到24n不發送應答消息。當來自主客戶機24a的應答消息到達服務器系統時,服務器系統10發送下一個數據。
同時,如果當服務器系統10廣播正常數據時,停止了主客戶機24a,則服務器系統10在“A”時間內等待來自主客戶機24a的應答消息并且當沒有應答消息時,重新發送。
如果直到發送了“n”次數據仍沒有應答消息,則服務器系統10發送OACK,以授權另一個第二客戶機24b作為主客戶機。之后,服務器確認從新主客戶機24b發送的應答消息,從而繼續進行過程。
圖4是根據本發明實施例的用于包括廣播功能的簡化文件傳輸協議的方法的流程圖。
參考圖4,第一客戶機51a發送讀請求消息(RRQ)到服務器系統,以便下載文件。此時,消息分組已經新定義了具有“broadcast”選項的選項字段(100)。
服務器系統50接收第一讀請求消息,作為響應,發送OACK以接受這種“broadcast”選項(101)。然后,服務器系統50等待“T”時間,以查看是否出現了其它客戶機。此時,已經將OACK分組中的掩碼位、端口和主客戶機(MC)字段設置為“1”,以通知客戶機51a是主客戶機。
第一客戶機51a接收其中已經將主客戶機(MC)字段設為“1”的OACK,以識別51a是用于廣播傳輸的主客戶機,返回應答消息以響應OACK消息(104),并等待數據。
同時,第二客戶機51b在“T”時間內發送讀請求消息到服務器系統50(102),服務器系統50返回其中已經將主客戶機(MC)字段設為“0”的OACK(103)。作為響應,第二客戶機51b發送應答消息(105)。此時,由于已經將主客戶機(MC)字段設為“0”,第二客戶機51b識別第二客戶機51b不是主客戶機,并因此當接收到數據時,不發送應答消息。
接下來,服務器系統50在經過“T”時間之后廣播數據(106)。作為響應,只有作為主客戶機的第一客戶機51a發送應答消息(107),當接收到應答消息時,服務器系統50發送后續分組(108)。
同時,如果服務器系統在經過“T”時間之后接收到讀請求消息,則服務器系統利用新的TFTP程序,按照一對一的方式對其進行處理,或進行新的廣播TFTP過程,與傳統方式相同。
圖5是示出了在根據本發明實施例的用于包括廣播功能的簡化文件傳輸協議的方法中,當出現錯誤時的處理過程的流程圖。
參考圖5,與圖4相同,如果當廣播正常數據時,主客戶機停止,則服務器系統50在“A”時間內等待來自作為主客戶機的第一客戶機51a的應答,并當沒有接收到應答時,重新發送數據。
如果即使到服務器系統重新發送數據n次之后,服務器系統還沒有接收到應答,則服務器系統50發送OACK以授權第二客戶機51b作為主客戶機(208)。
此時,在客戶機側,客戶機接收到數據之后,具有n*(A+a)時間的定時器開始操作,由于第二客戶機已經接收到塊#(塊編號),則第二客戶機51b確認并放棄重新發送的數據分組。
同時,當接收到OACK時,第二客戶機51b確認第二客戶機51b是主客戶機,然后,重新發送應答消息(209,211和213)。
如果服務器系統50出現故障且客戶機不能接收任何分組,則在客戶機的n*(A+a)定時器超時的時刻,停止TFTP操作并輸出錯誤消息。
之后,將說明通過根據選項擴展協議重新定義塊大小和廣播選項以更快發送分組的實施例。
圖6a是示出了在本發明的另一個實施例中,將實際數字數值應用到重新定義使用的讀請求(RRQ)消息的情況的圖。
參考圖6a,將操作碼定義為“1”,將文件名定義為“foofile”,將傳輸模式定義為octet,將第一選項字段定義為字符串“Broadcast”,將掩碼位字段定義為24位,將第二選項字段定義為用于塊大小的字符串“blksize”,并且將塊大小字段定義為塊大小數值“1428”。
盡管在上述實施例中,當在服務器和客戶機之間使用利用廣播選項字段擴展的消息來發送和接收文件時,已經將塊大小固定為“512”并且已經發送和接收了512octet(字節),但由于在其它實施例中重新將塊大小定義為“1428”,因此當在服務器和客戶機之間使用發送和接收文件時的數據傳輸單位變為1428octet(字節)。
圖6b是示出了在本發明的另一個實施例中,將實際數字數值應用到由服務器系統發送的重新定義使用的選項應答(OACK)消息的情況的圖。
參考圖6b,可以將操作碼定義為“6”,將第一選項字段定義為“broadcast”,以及將掩碼位和MC字段定義為“24,1768,1”,將第二選項字段定義為“blksize”,以及將塊大小字段定義為“1428”。
因此,將對以下情況的實際文件傳輸過程進行說明已經配置了用于包括廣播功能的文件傳輸協議的系統并且已經如上所述重新定義了消息格式中的塊大小。
圖7是根據本發明另一個實施例的用于包括廣播功能的簡化文件傳輸協議的方法的流程圖。
參考圖7,第一客戶機51a發送讀請求消息(RRQ)到服務器系統,以便下載文件。此時,消息分組具有“broadcast”選項的新定義的選項字段(300)。
服務器系統50接收第一讀請求消息,接受“broadcast”選項,發送具有作為數據傳輸單位的重新定義為1428 octet的塊大小的OACK(301),然后,等待“T”時間,以查看是否出現了其它客戶機。此時,已經將OACK分組中的掩碼位、端口和主客戶機(MC)字段設置為“1”,以通知客戶機51a是主客戶機。
第一客戶機51a接收其中已經將主客戶機(MC)字段設為“1”的OACK,以識別51a是用于廣播傳輸的主客戶機并且已經將數據傳輸單位重新定義為1428octet,返回應答消息(ACK)以響應OACK消息(304),并等待數據。
同時,第二客戶機51b在“T”時間內發送讀請求消息(RRQ)到服務器系統50(302),服務器系統50發送其中已經將掩碼位、端口和MC字段的MC值設為“0”并且已經將塊大小重新定義為1428octet的OACK(303)。作為響應,第二客戶機51b發送應答消息ACK(305)。
此時,由于已經將主客戶機(MC)值設為“0”,第二客戶機51b不是主客戶機,并因此當接收到數據時,客戶機51b不發送應答消息。此外,由于第二客戶機51b已經識別了塊大小1428 octet信息,當接收到以1428 octet為單位的數據時,第二客戶機51b確定這是正常狀態。
之后,服務器系統50在經過“T”時間之后廣播以1428 octet為單位的數據(306),并且只有作為主客戶機的第一客戶機51a發送應答消息(307),當接收到來自作為主客戶機的第一客戶機51a的應答消息時,服務器系統50廣播寫一個分組(308)。
在第二實施例的情況下,由于可以重新定義廣播的塊大小,其優點在于實際的文件傳輸速度變得更快。
因此,如果服務器或客戶機支持如上所述的TFTP廣播選項,多個客戶機能夠從一個服務器快速下載文件。
然而,如果服務器不支持這種廣播選項,則可以出現以下操作。
首先,客戶機發送具有經檢查是廣播的選項字段的讀/寫(RRQ)消息到服務器,由于服務器不支持由該消息指示的廣播選項功能,服務器發送錯誤消息到相關客戶機。可選地,相關服務器可以發送選項應答(OACK)消息到添加了可支持功能的客戶機。此時,如果客戶機不接受這種功能,則服務器發送錯誤消息。
與上述不同,如果客戶不支持廣播選項,則會出現以下操作。
在這種情況下,由于當開始向服務器發送讀/寫(RRQ)消息時,客戶機不能自己選擇廣播選項,按照與已有技術相同的方式進行消息交換,而與服務器是否支持廣播選項無關。
同時,應當注意,盡管已經利用以下示例說明了本發明選擇多個客戶機中首先發送讀/寫消息(RRQ)的客戶機作為主機,并在接收到來自主客戶機的應答(ACK)消息之后順序地發送接下來的數據,本發明還可以應用到以下情況如果接收到來自多個客戶機的應答(ACK)消息或即時沒有接收到來自多個客戶機的應答(ACK)消息,仍然根據系統操作員的操作計劃來無條件地操作網絡,而無需選擇主客戶機。
盡管已經詳細地說明了本發明的優選實施例,本發明所屬領域的普通技術人員可以理解的是,在不脫離由所附權利要求限定的本發明的技術實質和范圍的前提下,可以對本發明進行多種修改或改變。因此,本發明的技術中包含了本發明將來變化的實施例。
如上所述,根據本發明,其優點在于利用廣播TFTP使傳輸速度快于現有的一對一傳輸方式,這使得對于多個客戶機可以按照快而有效的方式從一個服務器下載文件。
此外,在除了廣播選項擴展之外還添加了塊大小選項的情況下,比之前塊大小更大的塊大小允許更快的文件傳輸。
有利地,通過將本發明的方法應用到子網絡是廣播網絡、存在多個客戶機且需要同時文件傳輸的情況中,可以實現最有效的文件傳輸。
此外,有利地,由于TFTP沒有用于其中所有網絡功能都實質上有效的設備,因此可以使傳輸操作效率最大,同時使所添加的功能最少。
權利要求
1.一種用于具有廣播功能的簡化文件傳輸協議的系統,所述系統包括多個客戶機系統,用于發送包括廣播選項的所述簡化文件傳輸協議的擴展讀請求消息,并且當響應所述讀請求消息,接收到選項應答消息時,則只要客戶機系統接收到數據就發送應答消息;以及服務器系統,用于響應接收到來自所述客戶機系統的所述擴展讀請求消息,發送所述選項應答消息到所述客戶機系統,廣播所述數據,然后,當所述服務器系統接收到來自所述多個客戶機系統的所述應答消息,則順序地廣播所述數據。
2.一種用于具有廣播功能的簡化文件傳輸協議的系統,所述系統包括多個客戶機系統,用于發送包括廣播選項的所述簡化文件傳輸協議的擴展讀請求消息,并且當響應所述讀請求消息,接收到選項應答消息之后,順序地接收作為廣播的數據;以及服務器系統,用于響應接收到來自所述客戶機系統的所述擴展讀請求消息,發送所述選項應答消息到所述客戶機系統,并順序地廣播所述數據。
3.一種用于具有廣播功能的簡化文件傳輸協議的系統,所述系統包括多個客戶機系統,用于發送包括廣播選項的所述簡化文件傳輸協議的擴展讀請求消息,并且當所述客戶機系統接收到通知所述客戶機系統是主客戶機的選項應答消息時,只要所述客戶機系統接收到數據,就發送應答消息;以及服務器系統,用于響應接收到來自所述客戶機系統的所述擴展讀請求消息,發送所述選項應答消息,所述消息包括通知客戶機系統是否是主客戶機的擴展,廣播所述數據,然后,當所述服務器系統接收到來自所述多個客戶機中被設置為主客戶機的客戶機系統的所述應答消息時,順序地廣播所述數據。
4.根據權利要求3所述的系統,其特征在于當所述服務器系統在預定時間內沒有接收到來自所述主客戶機的所述應答消息時,所述服務器系統指定另一個客戶機作為主客戶機并發送通知所述另一個客戶機是主客戶機的應答消息,廣播所述數據,然后,當所述服務器系統接收到來自所述新主客戶機的所述應答消息時,順序地廣播所述數據。
5.根據權利要求3所述的系統,其特征在于所述擴展讀請求消息包括操作碼字段,指示了用于消息類型的數值;文件名字段,具有利用美國信息交換標準碼來編碼的文件名;模式字段,定義了傳輸模式;選項字段,用于支持廣播;以及掩碼位字段,用于定義選項字段的數值。
6.根據權利要求3所述的系統,其特征在于由所述服務器系統發送的所述選項應答消息包括操作碼字段,指示了用于消息類型的數值;廣播字段,用于支持廣播;以及通知掩碼位、端口號和是否是主客戶機的字段。
7.根據權利要求3所述的系統,其特征在于選擇首先發送所述讀請求消息的客戶機作為所述主客戶機。
8.一種用于包括廣播功能的簡化傳輸擴展協議的方法,該方法包括由多個客戶機將擴展讀請求消息發送到服務器,以請求廣播文件傳輸;由所述服務器將選項應答消息發送到所述多個客戶機;由所述服務器廣播數據,然后等待接收來自所述多個客戶機的應答消息;以及當所述服務器接收到來自所述多個客戶機的所述應答消息時,所述服務器重復進行所述廣播步驟,直到服務器發送了剩余數據。
9.一種用于包括廣播功能的簡化傳輸擴展協議的方法,該方法包括由多個客戶機將擴展讀請求消息發送到服務器,以請求廣播文件傳輸;由所述服務器將選項應答消息發送到所述多個客戶機;以及所述服務器順序地廣播數據到所述多個客戶機。
10.一種用于包括廣播功能的簡化傳輸擴展協議的方法,該方法包括由第一客戶機將擴展讀請求消息發送到服務器,以請求廣播文件傳輸;由所述服務器將通知所述第一客戶機是主客戶機的選項應答消息發送到所述第一客戶機;由第二客戶機將擴展讀請求消息發送到所述服務器,以請求廣播文件傳輸;由所述服務器將通知所述第二客戶機不是主客戶機的選項應答消息發送到所述第二客戶機;由所述服務器廣播數據,然后等待接收來自所述第一客戶機的應答消息;以及如果所述服務器接收到來自所述第一客戶機的所述應答消息,則由服務器重復進行所述廣播步驟,直到所述服務器發送了剩余的數據。
11.根據權利要求10所述的方法,其特征在于還包括當所述服務器在一定時間內,沒有接收到響應從所述第一客戶機接收所述數據的應答消息,則由所述服務器指定所述第二客戶機作為所述主客戶機;以及發送通知將所述第二客戶機指定為所述主客戶機的選項應答消息到所述第二客戶機,然后執行數據傳輸。
12.根據權利要求10所述的方法,其特征在于還包括當預定時間過去之后,所述服務器接收到來自另一個客戶機的所述擴展讀請求消息以請求廣播時,由所述服務器通過新的簡化文件傳輸程序來按照一對一的方式進行處理,或分配新的廣播端口。
13.根據權利要求10所述的方法,其特征在于還包括當在所述服務器中出現故障時,發送錯誤消息到每一個客戶機。
14.根據權利要求10所述的方法,其特征在于當所述服務器不支持所述廣播選項功能,當所述服務器接收到來自任意客戶機的所述擴展讀請求消息以請求廣播文件傳輸時,所述服務器發送錯誤消息到相關客戶機。
15.根據權利要求10所述的方法,其特征在于當所述服務器不支持所述廣播選項功能,當所述服務器接收到來自任意客戶機的所述擴展讀請求消息以請求廣播文件傳輸時,所述服務器發送經檢查只具有可支持功能的選項應答消息到所述客戶機。
16.一種用于具有廣播功能的簡化文件傳輸協議的系統,所述系統包括多個客戶機系統,用于發送至少包括廣播選項和塊大小選項之一的TFTP擴展讀請求消息,并且當接收到通知所述客戶機系統是主客戶機的選項應答消息時,則只要接收到數據就發送應答消息;以及服務器系統,用于響應接收到來自所述客戶機系統的所述擴展讀請求消息,發送所述選項應答消息到所述客戶機系統,然后,當所述服務器系統接收到來自所述多個客戶機的所述應答消息時,則以相關的塊大小單位來廣播所述數據。
17.一種用于具有廣播功能的簡化文件傳輸協議的系統,所述系統包括多個客戶機系統,用于發送至少包括廣播選項和塊大小選項之一的TFTP擴展讀請求消息,并且當接收到通知所述客戶機系統是主客戶機的選項應答消息之后,順序地接收作為廣播的數據;以及服務器系統,用于響應接收到來自所述客戶機系統的所述擴展讀請求消息,發送具有所添加的塊大小信息的所述選項應答消息到所述客戶機系統,并以相關的塊大小單位來廣播所述數據。
18.一種用于具有廣播功能的簡化文件傳輸協議的系統,所述系統包括多個客戶機系統,用于發送至少包括廣播選項和塊大小選項之一的TFTP擴展讀請求消息,并且當所述客戶機系統接收到通知所述客戶機系統是主客戶機的選項應答消息時,則只要所述客戶機系統接收到數據就發送應答消息;以及服務器系統,用于響應接收到來自所述客戶機系統的所述擴展讀請求消息,發送所述選項應答消息到所述客戶機系統,所述應答消息包括通知所述客戶機系統是主客戶機以及所添加的塊大小信息的擴展,然后,當所述服務器系統接收到來自所述多個客戶機中被設為所述主客戶機的所述客戶機系統的所述應答消息時,則以相關的塊大小單位來廣播所述數據。
19.根據權利要求18所述的系統,其特征在于當所述服務器系統在預定時間內沒有接收到來自所述主客戶機的應答消息時,所述服務器系統指定另一個客戶機作為所述主客戶機并發送通知所述另一個客戶機是主客戶機的應答消息,廣播所述數據,并當所述服務器系統接收到來自所述新主客戶機的所述應答消息時,順序地廣播所述數據。
20.根據權利要求18所述的系統,其特征在于所述擴展讀請求消息包括操作碼字段,指示了用于消息類型的數值;文件名字段,具有利用ASCII碼編碼的文件名;模式字段,定義了傳輸模式;第一選項字段,用于支持廣播;掩碼位字段,用于定義選項字段的數值;以及第二選項字段和塊大小數值字段,用于支持塊大小。
21.根據權利要求18所述的系統,其特征在于由所述服務器系統發送的所述選項應答消息包括操作碼字段,指示了用于消息類型的數值;廣播字段,用于支持廣播;通知掩碼位、端口號和是否是主客戶機的字段;以及選項字段和塊大小數值字段,用于支持塊大小。
22.根據權利要求18所述的系統,其特征在于選擇首先發送讀請求消息的客戶機作為主客戶機。
23.一種用于包括廣播功能的簡化傳輸擴展協議的方法,該方法包括由多個客戶機將擴展讀請求消息發送到服務器,以請求廣播文件傳輸;由所述服務器將包括塊大小信息的選項應答消息發送到所述多個客戶機;由所述服務器以重新定義的塊大小單位來廣播數據,然后等待接收來自所述多個客戶機的應答消息;以及當所述服務器接收到來自所述多個客戶機的所述應答消息時,所述服務器重復進行所述廣播步驟,直到所述服務器發送了剩余數據。
24.一種用于包括廣播功能的簡化傳輸擴展協議的方法,該方法包括由多個客戶機將擴展讀請求消息發送到服務器,以請求廣播文件傳輸;由所述服務器將包括塊大小信息的選項應答消息發送到所述多個客戶機;以及所述服務器以重新定義的塊大小來廣播數據。
25.一種用于包括廣播功能的簡化傳輸擴展協議的方法,該方法包括由第一客戶機將擴展讀請求消息發送到服務器,以請求廣播文件傳輸;由所述服務器將通知所述第一客戶機是主客戶機并且包括塊大小信息的選項應答消息發送到所述第一客戶機;由第二客戶機將所述擴展讀請求消息發送到所述服務器,以請求廣播文件傳輸;由所述服務器將通知所述第二客戶機不是所述主客戶機并且包括重新定義的塊大小信息的選項應答消息發送到所述第二客戶機;由所述服務器按照重新定義的塊大小單位來廣播數據,然后等待接收來自所述第一客戶機的應答消息;以及當所述服務器接收到來自所述第一客戶機的應答消息時,由所述服務器重復進行所述廣播步驟,直到所述服務器發送了所有剩余的數據。
26.根據權利要求25所述的方法,其特征在于還包括當所述服務器在一定時間內,沒有接收到響應從所述第一客戶機接收的數據的應答消息,則由所述服務器指定所述第二客戶機作為主客戶機;以及發送通知將所述第二客戶機指定為所述主客戶機的選項應答消息到所述第二客戶機,然后執行數據傳輸。
27.根據權利要求25所述的方法,其特征在于還包括當預定時間過去之后,所述服務器接收到來自所述另一個客戶機的擴展讀請求消息以請求廣播時,由所述服務器通過新的簡化文件傳輸程序來按照一對一的方式進行處理,或分配新的廣播端口。
28.根據權利要求25所述的方法,其特征在于還包括當在所述服務器中出現故障時,發送錯誤消息到每一個客戶機。
29.根據權利要求25所述的方法,其特征在于當所述服務器不支持至少所述廣播選項功能和塊大小選項功能之一時,當所述服務器接收到來自任意客戶機的所述擴展讀請求消息以請求廣播文件傳輸時,所述服務器發送錯誤消息到相關客戶機。
30.根據權利要求25所述的方法,其特征在于當所述服務器不支持至少所述廣播選項功能和塊大小選項功能之一時,當所述服務器接收到來自任意客戶機的所述擴展讀請求消息以請求廣播文件傳輸時,所述服務器發送經檢查只具有可支持功能的選項應答消息到所述客戶機。
全文摘要
一種用于簡化傳輸擴展協議(TFTP)的系統和方法包括其中將新選項添加到TFTP中以允許多個客戶機與一個服務器相連來同時下載文件的廣播功能。該方法包括第一步驟,由第一客戶機將擴展讀請求消息發送到服務器,以請求廣播文件傳輸;第二步驟,由服務器將通知第一客戶機是主客戶機的選項應答消息發送到第一客戶機;第三步驟,由第二客戶機將擴展讀請求消息發送到服務器,以請求廣播文件傳輸;第四步驟,由服務器將通知第二客戶機不是主客戶機的選項應答消息發送到第二客戶機;第五步驟,由服務器廣播數據,然后等待接收來自第一客戶機的應答消息;以及第六步驟,如果服務器接收到來自第一客戶機的應答消息,則由服務器來重復進行第五步驟,直到服務器發送了所有剩余的數據。
文檔編號H04L29/08GK1655550SQ20051000675
公開日2005年8月17日 申請日期2005年2月4日 優先權日2004年2月10日
發明者白承學, 崔炳求, 樸容奭 申請人:三星電子株式會社