本發明涉及文件傳輸技術領域,尤其涉及一種占用資源少且具有高可靠性的文件傳輸系統及其方法。
背景技術:
TCP是一種傳輸可靠、無擁塞、無丟包的一種面相連接的傳輸協議,所以現在文件傳輸技術基本都是基于TCP協議的傳輸方式。但是TCP協議對系統資源要求多,對于很多特殊用途設備,硬件無法配備硬盤的情況下無法使用TCP協議架構。
而基于UDP的傳輸協議,占用資源小、速度快,且不需要掛載硬盤,只需要固化UDP和小容量只讀存儲器即可完成傳輸。但是UDP傳輸協議是一種無狀態的傳輸協議,所以基于UDP的傳輸技術,例如TFTP協議,無法保證文件傳輸的完整性和正確性。為了保證這些的特殊設備正確傳輸文件,必須保證文件傳輸過程中無擁塞、無亂序、無丟包、完整性檢查、可重傳等要求。
可見傳統的文件傳輸方式不能應用于某些場合,需要改進。
技術實現要素:
本發明的目的在于克服現有技術存在的缺點和不足,提供一種占用資源少且具有高可靠性的文件傳輸系統及其方法。
一、占用資源少且具有高可靠性的文件傳輸系統(簡稱系統)
本系統包括相互連通的客戶端和服務器;
服務器包括客戶端、接收單元、消息協議處理單元、數據處理單元、發射單元和調度單元;
其交互關系是:
客戶端、接收單元、消息協議處理單元、數據處理單元、發射單元和客戶端依次閉環交互;
調度單元分別與接收單元、消息協議處理單元和數據處理單元交互;
消息協議處理單元和發射單元交互。
二、占用資源少且具有高可靠性的文件傳輸方法(簡稱方法)
本方法包括下列步驟:
①接收單元收到客戶端數據送給消息協議處理單元里處理
判斷是客戶端發送的建立連接請求,則調度單元安排發射單元給客戶端發送準備監聽指令;
判斷是發送文件數據,則轉發給數據處理單元;
判斷是客戶端發送的確認發送指令,則不作處理;
②數據處理單元收到數據后,處理模塊判斷是否掉幀,如果不掉幀,則調度單元調度發射單元發送確認收到消息,且把數據送給加解密模塊;如果掉幀,則指示發射單元發送LOST消息;
③客戶端處理模塊判斷如果收到確認信息,則繼續發送數據;如果收到LOST或者ERROR消息,會通知重傳模塊重發上條信息;且每次發送數據最后附加自檢結果給服務器作為校驗標準;
④客戶端的定時單元,如果客戶端3秒都沒有收到反饋消息,則重發上一條消息;
⑤接收單元收到重新發來的消息,重復步驟①②,處理模塊判斷發來的數據是否已經收到過,如果收到過則丟棄,且調度單元指示發射單元發送確認信息給客戶端;如果收到的是不重復的數據塊,則送入加解密模塊;
⑥加解密模塊對收到的數據塊進行校驗,并且與客戶端同時發來的校驗位進行比較,如果正確則給重組模塊進行寫入文件操作;如果不正確,調度單元指示發射單元發送ERROR給客戶端,客戶端繼續按照步驟③進行處理。
本發明具有下列優點和積極效果:
①高可靠性:數據處理單元的重傳模塊、加解密模塊可保證數據的連續性和正確性,同時客戶端中也加入重傳模塊和定時器,保證數據中斷時能繼續傳輸未送達數據塊。
②占用資源少:該方法是基于UDP的一種傳輸方法,占用內存小,不需要硬盤,只需要固化UDP和小容量只讀存儲器即可完成傳輸。
附圖說明
圖1是本系統的結構方框圖;
圖中:
00—客戶端,
01—處理模塊,02—重傳模塊,03—定時器;
A—服務器;
10—接收單元;
30—消息協議處理單元;
30—數據處理單元;
31—處理模塊,32—重傳模塊,33—加解密模塊,34—重組模塊;
40—發射單元;
50—調度單元。
英譯漢
1、TCP:Transmission Control Protocol,傳輸控制協議;
2、UDP:User Datagram Protocol,用戶數據報協議;
3、TFTP:Trivial File Transfer Protocol,簡單文件傳輸協議。
具體實施方式
以下結合附圖和實施例詳細說明。
一、系統
1、總體
如圖1,本系統包括相互連通的客戶端00和服務器A;
服務器A包括接收單元10、消息協議處理單元20、數據處理單元30、發射單元40和調度單元50;
其交互關系是:
客戶端00、接收單元10、消息協議處理單元20、數據處理單元30、發射單元40和客戶端00依次閉環交互;
調度單元50分別與接收單元10、消息協議處理單元20和數據處理單元30交互;
消息協議處理單元20和發射單元40交互。
工作機理:
客戶端00發起通信請求,接收單元10將收到的消息送入消息協議處理單元20,消息協議處理單元20判斷如果是數據消息,則把數據送入數據處理單元30進行處理:如果判斷有掉幀或者有錯誤情況則通過發射單元40給客戶端00發送對應指令,如果均沒有錯誤重組模塊34則寫入文件;如果消息協議處理單元20是協議消息則發送對應協議消息返回給客戶端00建立連接。
2、功能塊
0)客戶端00
其硬件配置:PC機。
其內嵌有處理模塊01、重傳模塊02和定時器03;處理模塊01和定時器03分別與重傳模塊02交互。
(1)處理模塊01把發射器40發送來的消息進行分析判斷,如果是消息協議則發送相應消息指令,如果是掉幀或者錯誤消息,則通知重傳模塊02。
(2)重傳模塊02:處理收到的消息指令并重發掉幀或發送錯誤的數據塊。
(3)定時器03:以客戶端發送數據塊時間為起點,定時3秒,如果期間內沒有收到發射器發送回來的反饋,則發送指令給重傳模塊02重發數據塊。
1)接收單元10
其硬件配置:DSP芯片TMS320C6670。
接收客戶端00發送的數據并轉給消息協議處理單元20。
2)消息協議處理單元20
其硬件配置:DSP芯片TMS320C6670
處理數據消息,如果是協議消息則反饋給接收單元10,如果是數據塊則把數據交給數據處理單元30。
3)數據處理單元30
其硬件配置:DSP芯片TMS320C6670
其內嵌有依次交互的處理模塊31、重傳模塊32、加解密模塊33和重組模塊34。
(1)處理模塊31:收到數據塊是否掉幀,如果無掉幀則通過發射器40給客戶端00發送確認信息,且把數據交給加解密模塊33;如果掉幀則告知重傳模塊32。
(2)重傳模塊:若得知掉數據則通過發射器40給客戶端00發送掉幀指令。
(3)加解密模塊:對收到的數據塊進行校驗,并且與客戶端00同時發來的校驗位進行比較,如果正確則給重組模塊34;如果不正確,調度器50指示發射器40發送ERROR給客戶端00。
(4)重組模塊:對數據排序后進行寫入文件操作。
4)發射單元40
其硬件配置:DSP芯片TMS320C6670。
接收消息協議處理單元20和數據處理單元30發來的數據并轉發給客戶端00。
5)調度單元50
其硬件配置:DSP芯片TMS320C6670.
調度各個模塊數據交互過程中的處理。
二、方法
1、客戶端00通過接收單元10與消息協議處理單元20建立“三次握手”,建立起文件發送專用通道;
2、建立完成后,客戶端00發來的數據塊傳送給數據處理單元30進行處理:
A)步驟②的具體流程如下:
數據處理單元30會記錄當前已保存的數據塊的幀號,客戶端00發送數塊中有攜帶幀號的數據段;數據處理單元30收到數據后,將幀號與處理模塊31保存的幀號對比判斷是否存在掉幀或者重復發送的情況。
B)客戶端反饋信息后 ,步驟⑤具體流程如下:
處理模塊31判斷發來的數據是否已經收到過,如果收到過則丟棄,且調度單元50指示發射單元40發送確認信息給客戶端00;如果收到的是不重復的數據塊,則送入加解密模塊33。
C)確認不掉幀后,步驟⑥具體流程如下:
加解密模塊33對收到的數據塊進行校驗,并且與客戶端00同時發來的校驗位進行比較,如果比對一致則轉給重組模塊02進行寫入文件操作;如果不正確,調度單元50指示發射單元40發送ERROR給客戶端00。