一種基于反饋機(jī)制和md5碼檢測的服務(wù)器遠(yuǎn)程數(shù)據(jù)同步方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及遠(yuǎn)程數(shù)據(jù)傳輸領(lǐng)域,尤其涉及一種基于反饋機(jī)制和MD5碼檢測的服務(wù) 器遠(yuǎn)程數(shù)據(jù)同步方法。
【背景技術(shù)】
[0002]FTP是TCP/IP網(wǎng)絡(luò)上兩臺計算機(jī)傳送文件的協(xié)議,通過Internet把文件從客戶機(jī) 復(fù)制到服務(wù)器上。FTP客戶機(jī)可以給服務(wù)器發(fā)出命令來下載文件,上傳文件,創(chuàng)建或改變服 務(wù)器上的目錄。FTP服務(wù)一般運行在20和21兩個端口。端口 20用于在客戶端和服務(wù)器之 間傳輸數(shù)據(jù)流,而端口 21用于傳輸控制流,并且是命令通向ftp服務(wù)器的進(jìn)口。而在對數(shù) 據(jù)文件進(jìn)行傳輸過程中出現(xiàn)網(wǎng)絡(luò)不好數(shù)據(jù)丟失或者傳輸數(shù)據(jù)中斷的現(xiàn)象。并且在繼續(xù)數(shù)據(jù) 傳輸時只能實現(xiàn)客戶機(jī)與服務(wù)器之間的文件傳輸,不適用于點到點的數(shù)據(jù)傳輸;當(dāng)數(shù)據(jù)通 過數(shù)據(jù)流傳輸時,控制流處于空閑狀態(tài)。而當(dāng)控制流空閑很長時間后,客戶端的防火墻會將 其會話設(shè)置為超時,這樣當(dāng)大量數(shù)據(jù)通過防火墻時,會產(chǎn)生一些問題。對于極不穩(wěn)定的網(wǎng)絡(luò) 環(huán)境,數(shù)據(jù)在傳輸過程中極易丟失或出錯,而FTP不能夠?qū)κ盏降臄?shù)據(jù)進(jìn)行檢測,不能保證 數(shù)據(jù)的正確性。
【發(fā)明內(nèi)容】
[0003] 根據(jù)現(xiàn)有技術(shù)存在的問題,本發(fā)明公開了一種基于反饋機(jī)制和MD5碼檢測的服務(wù) 器遠(yuǎn)程數(shù)據(jù)同步方法,包括以下步驟:
[0004] S1 :客戶端接收服務(wù)端發(fā)送的數(shù)據(jù)文件、根據(jù)接收到的數(shù)據(jù)文件更新請求日志文 件中相應(yīng)的記錄項,當(dāng)網(wǎng)絡(luò)出現(xiàn)異常造成數(shù)據(jù)傳輸中斷時所述客戶端請求日志文件中將保 留所有待同步文件的狀態(tài),該狀態(tài)包括發(fā)生中斷時的數(shù)據(jù)文件名稱、已接收到的文件的大 小和文件是否同步完成;
[0005] S2 :當(dāng)網(wǎng)絡(luò)恢復(fù)正常重新建立連接時,所述客戶端根據(jù)請求日志文件中的記錄向 服務(wù)端發(fā)送反饋信號進(jìn)行斷點續(xù)傳,將上述中斷的數(shù)據(jù)文件進(jìn)行繼續(xù)傳送;
[0006] S3 :客戶端生成接收到的數(shù)據(jù)文件的MD5碼,將服務(wù)端傳送的數(shù)據(jù)文件的MD5碼和 生成的MD5碼進(jìn)行核對和校驗,判斷接收到的數(shù)據(jù)文件的MD5碼與服務(wù)端傳送的對應(yīng)數(shù)據(jù) 文件的MD5碼是否一致,如果不一致則對該異常的數(shù)據(jù)文件的進(jìn)行重新傳送,如果一致則 數(shù)據(jù)文件傳送完畢。
[0007] 所述客戶端在對數(shù)據(jù)文件接收時將本次同步需要下載的數(shù)據(jù)文件生成記錄項添 加到請求日志文件中,加上接收失敗的數(shù)據(jù)文件作為待完成的傳輸任務(wù)傳送至服務(wù)端,所 述服務(wù)端對接收到請求日志文件進(jìn)行校驗判斷服務(wù)端內(nèi)是否存在請求數(shù)據(jù)文件。
[0008] 當(dāng)客戶端請求的數(shù)據(jù)文件在服務(wù)端不存在時,客戶端接收到服務(wù)端的反饋消息后 將該數(shù)據(jù)文件記錄從請求日志文件中移動到缺失日志文件中。
[0009] 服務(wù)端將通過驗證的數(shù)據(jù)文件的MD5碼發(fā)送至客戶端,所述客戶端生成接收到數(shù) 據(jù)文件后的MD5碼,客戶端將生成的MD5碼與接收到的MD5碼進(jìn)行核對校驗,當(dāng)客戶端某個 數(shù)據(jù)文件的MD5碼與接收到MD5碼不一致時對該數(shù)據(jù)文件進(jìn)行重。
[0010] 由于采用了上述技術(shù)方案,本發(fā)明提供的基于反饋機(jī)制和MD5碼檢測的遠(yuǎn)程數(shù)據(jù) 傳輸方法,實現(xiàn)了服務(wù)器數(shù)據(jù)的遠(yuǎn)程同步,特別地,在極不穩(wěn)定的網(wǎng)絡(luò)環(huán)境下傳輸數(shù)據(jù)極易 發(fā)生數(shù)據(jù)丟失、異常、傳輸中斷等情況,該方法通過反饋機(jī)制將客戶端沒有接收完成或沒有 通過檢測的數(shù)據(jù)相關(guān)信息反饋給服務(wù)器端,實現(xiàn)數(shù)據(jù)斷點續(xù)傳或重傳,能夠保證完整、可靠 地完成傳輸,及時備份遠(yuǎn)程服務(wù)器數(shù)據(jù),確保遠(yuǎn)程數(shù)據(jù)安全。
【附圖說明】
[0011] 為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 申請中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下, 還可以根據(jù)這些附圖獲得其他的附圖。
[0012] 圖1為本發(fā)明公開的方法的步驟示意圖;
[0013] 圖2為本發(fā)明中實施例的示意圖;
[0014] 圖3為本發(fā)明中實施例的示意圖;
[0015] 圖4為本發(fā)明中實施例的示意圖。
【具體實施方式】
[0016] 為使本發(fā)明的技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合本發(fā)明實施例中的附圖,對本 發(fā)明實施例中的技術(shù)方案進(jìn)行清楚完整的描述:
[0017] 如圖1所示的一種基于反饋機(jī)制和MD5碼檢測的服務(wù)器遠(yuǎn)程數(shù)據(jù)同步方法:包括 以下步驟:
[0018]S1 :客戶端接收服務(wù)端發(fā)送的數(shù)據(jù)文件、更新請求日志文件中相應(yīng)的記錄項,當(dāng) 網(wǎng)絡(luò)出現(xiàn)異常造成數(shù)據(jù)傳輸中斷時所述客戶端請求日志文件中將保留所有待同步文件的 狀態(tài),該狀態(tài)包括發(fā)生中斷時的數(shù)據(jù)文件名稱、已接收到的文件的大小和文件是否同步完 成;
[0019]S2:當(dāng)網(wǎng)絡(luò)恢復(fù)正常重新建立連接時,所述客戶端根據(jù)請求日志文件中的記錄向 服務(wù)端發(fā)送反饋信號進(jìn)行斷點續(xù)傳,將上述中斷的數(shù)據(jù)文件進(jìn)行繼續(xù)傳送;
[0020]S3 :客戶端生成接收到的數(shù)據(jù)文件的MD5碼,將服務(wù)端傳送的數(shù)據(jù)文件的MD5碼和 生成的MD5碼進(jìn)行核對和校驗,判斷接收到的數(shù)據(jù)文件的MD5碼與服務(wù)端傳送的對應(yīng)數(shù)據(jù) 文件的MD5碼是否一致,如果不一致則對該異常的數(shù)據(jù)文件的進(jìn)行重新傳送,如果一致則 數(shù)據(jù)文件傳送完畢。
[0021] 進(jìn)一步的,所述客戶端在對數(shù)據(jù)文件接收時將本次同步需要下載的數(shù)據(jù)文件生成 記錄項添加到請求日志文件中,加上接收失敗的數(shù)據(jù)文件作為待完成的傳輸任務(wù)。
[0022] 進(jìn)一步的,所述客戶端請求的文件在服務(wù)端不存在時,客戶端接收到該消息后將 該文件記錄從請求日志文件中移動到缺失日志文件中。
[0023] 進(jìn)一步的,所述服務(wù)端將通過驗證的數(shù)據(jù)文件(還是已經(jīng)發(fā)送的數(shù)據(jù)文件)的MD5 碼發(fā)送至客戶端,所述客戶端生成接收到數(shù)據(jù)文件后的MD5碼,客戶端將生成的MD5碼與接 收到的MD5碼進(jìn)行核對校驗,當(dāng)客戶端某個數(shù)據(jù)文件的MD5碼與接收到MD5碼不一致時對 該數(shù)據(jù)文件進(jìn)行重新接收。
[0024] 實施例:
[0025] 如圖2所示,整個遠(yuǎn)程數(shù)據(jù)同步分為客戶端和服務(wù)端兩部分。服務(wù)端作為數(shù)據(jù)提 供方,不間斷地動態(tài)產(chǎn)生數(shù)據(jù)文件,客戶端作為數(shù)據(jù)的接收方,會定時同步服務(wù)端數(shù)據(jù)到本 地。
[0026] 客戶端包括下載任務(wù)添加模塊、任務(wù)讀取模塊、MD5生成模塊、MD5檢測模塊和通 信模塊等5個主要模塊和請求日志文件和缺失日志文件等2個重要的日志文件。下載任務(wù) 添加模塊負(fù)責(zé)將同步的數(shù)據(jù)文件信息按特定格式導(dǎo)入到請求日志文件中;任務(wù)讀取模塊負(fù) 責(zé)將請求日志文件中待下載文件信息添加到內(nèi)存中的任務(wù)隊列;通信模塊負(fù)責(zé)與服務(wù)端進(jìn) 行通信,完成任務(wù)隊列中的下載任務(wù),并將接收到的MD5碼,傳送給MD5檢測模塊;MD5碼生 成模塊負(fù)責(zé)生成傳輸完成的文件的MD5碼,用于MD5檢測;MD5檢測模塊負(fù)責(zé)校對本地生成 的MD5碼和服務(wù)端傳送的MD5碼是否一致,不一致就初始化請求日志文件中相應(yīng)文件的信 息以確保文件能夠被重傳,并刪除磁盤中對應(yīng)文件的副本,一致則修改請求日志文件中相 應(yīng)文件的狀態(tài)為成功接收。
[0027] 請求日志文件中記錄項的數(shù)據(jù)結(jié)構(gòu)如下:
[0028]
【主權(quán)項】
1. 一種基于反饋機(jī)制和MD5碼檢測的服務(wù)器遠(yuǎn)程數(shù)據(jù)同步方法,其特征在于:包括W 下步驟: 51 ;客戶端接收服務(wù)端發(fā)送的數(shù)據(jù)文件、根據(jù)接收到的數(shù)據(jù)文件更新請求日志文件中 相應(yīng)的記錄項,當(dāng)網(wǎng)絡(luò)出現(xiàn)異常造成數(shù)據(jù)傳輸中斷時所述客戶端請求日志文件中將保留所 有待同步文件的狀態(tài),該狀態(tài)包括發(fā)生中斷時的數(shù)據(jù)文件名稱、已接收到的文件的大小和 文件是否同步完成; 52 ;當(dāng)網(wǎng)絡(luò)恢復(fù)正常重新建立連接時,所述客戶端根據(jù)請求日志文件中的記錄向服務(wù) 端發(fā)送反饋信號進(jìn)行斷點續(xù)傳,將上述中斷的數(shù)據(jù)文件進(jìn)行繼續(xù)傳送; S3;客戶端生成接收到的數(shù)據(jù)文件的MD5碼,將服務(wù)端傳送的數(shù)據(jù)文件的MD5碼和生成 的MD5碼進(jìn)行核對和校驗,判斷接收到的數(shù)據(jù)文件的MD5碼與服務(wù)端傳送的對應(yīng)數(shù)據(jù)文件 的MD5碼是否一致,如果不一致則對該異常的數(shù)據(jù)文件的進(jìn)行重新傳送,如果一致則數(shù)據(jù) 文件傳送完畢。
2. 根據(jù)權(quán)利要求1所述的一種基于反饋機(jī)制和MD5碼檢測的服務(wù)器遠(yuǎn)程數(shù)據(jù)同步方 法,其特征還在于;所述客戶端在對數(shù)據(jù)文件接收時將本次同步需要下載的數(shù)據(jù)文件生成 記錄項添加到請求日志文件中,加上接收失敗的數(shù)據(jù)文件作為待完成的傳輸任務(wù)傳送至服 務(wù)端,所述服務(wù)端對接收到請求日志文件進(jìn)行校驗判斷服務(wù)端內(nèi)是否存在請求數(shù)據(jù)文件。
3. 根據(jù)權(quán)利要求1所述的一種基于反饋機(jī)制和MD5碼檢測的服務(wù)器遠(yuǎn)程數(shù)據(jù)同步方 法,其特征還在于:當(dāng)客戶端請求的數(shù)據(jù)文件在服務(wù)端不存在時,客戶端接收到服務(wù)端的反 饋消息后將該數(shù)據(jù)文件記錄從請求日志文件中移動到缺失日志文件中。
4. 根據(jù)權(quán)利要求1或2所述的一種基于反饋機(jī)制和MD5碼檢測的服務(wù)器遠(yuǎn)程數(shù)據(jù)同步 方法,其特征還在于;服務(wù)端將通過驗證的數(shù)據(jù)文件的MD5碼發(fā)送至客戶端,所述客戶端生 成接收到數(shù)據(jù)文件后的MD5碼,客戶端將生成的MD5碼與接收到的MD5碼進(jìn)行核對校驗,當(dāng) 客戶端某個數(shù)據(jù)文件的MD5碼與接收到MD5碼不一致時對該數(shù)據(jù)文件進(jìn)行重新接收。
【專利摘要】本發(fā)明公開了一種基于反饋機(jī)制和MD5碼檢測的服務(wù)器遠(yuǎn)程數(shù)據(jù)同步方法,包括以下步驟:S1:客戶端接收服務(wù)端發(fā)送的數(shù)據(jù)文件、根據(jù)接收到的數(shù)據(jù)文件更新請求日志文件中相應(yīng)的記錄項;S2:當(dāng)網(wǎng)絡(luò)恢復(fù)正常重新建立連接時,所述客戶端根據(jù)請求日志文件中的記錄向服務(wù)端發(fā)送反饋信號進(jìn)行斷點續(xù)傳,將上述中斷的數(shù)據(jù)文件進(jìn)行繼續(xù)傳送;S3:客戶端生成接收到的數(shù)據(jù)文件的MD5碼,將服務(wù)端傳送的數(shù)據(jù)文件的MD5碼和生成的MD5碼進(jìn)行核對和校驗,判斷接收到的數(shù)據(jù)文件的MD5碼與服務(wù)端傳送的對應(yīng)數(shù)據(jù)文件的MD5碼是否一致。
【IPC分類】H04L1-18, H04L1-16, H04L29-08
【公開號】CN104539690
【申請?zhí)枴緾N201410817683
【發(fā)明人】唐達(dá), 孔祥佳, 王志豪, 瞿沙沙, 朱曙光, 張桂菊
【申請人】大連理工大學(xué)
【公開日】2015年4月22日
【申請日】2014年12月24日