實(shí)時(shí)丟包重傳及響應(yīng); 所述用戶終端對(duì)待上傳文件進(jìn)行所述完整性校驗(yàn),得到第一校驗(yàn)值; 所述用戶終端將所述待上傳文件分為多個(gè)數(shù)據(jù)包,并將所述多個(gè)數(shù)據(jù)包劃分為多個(gè)分組,每個(gè)分組包括至少一個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包中包含各自的分包號(hào),所述分包號(hào)用于所述服務(wù)器確定是否存在丟失的數(shù)據(jù)包; 所述用戶終端向所述服務(wù)器發(fā)送文件上傳請(qǐng)求,所述文件上傳請(qǐng)求中攜帶所述待上傳文件劃分得到的數(shù)據(jù)包總個(gè)數(shù)以及分組個(gè)數(shù); 當(dāng)所述服務(wù)器接收所述用戶終端發(fā)送的所述文件上傳請(qǐng)求后,向所述用戶終端發(fā)送上傳提示; 所述用戶終端接收到所述服務(wù)器發(fā)送的上傳提示后,向所述服務(wù)器發(fā)送分組中的數(shù)據(jù)包; 當(dāng)所述服務(wù)器接收到所述分組的全部數(shù)據(jù)包時(shí),向所述用戶終端發(fā)送分組上傳完成提示; 若所述用戶終端未接收到分組上傳完成提示,則所述用戶終端向所述服務(wù)器發(fā)送請(qǐng)求報(bào)文; 所述服務(wù)器根據(jù)所述用戶終端發(fā)送的請(qǐng)求報(bào)文回傳分組中未收到數(shù)據(jù)包的分包號(hào);所述用戶終端根據(jù)所述分組中未收到數(shù)據(jù)包的分包號(hào)向所述服務(wù)器重新上傳所述分包號(hào)對(duì)應(yīng)的數(shù)據(jù)包; 當(dāng)確定所述待上傳文件全部上傳成功后,所述服務(wù)器對(duì)已經(jīng)全部上傳成功的文件進(jìn)行完整性校驗(yàn),得到第二校驗(yàn)值; 當(dāng)所述第一校驗(yàn)值與所述第二校驗(yàn)值相同時(shí),用戶終端確定所述待上傳文件全部上傳成功。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述當(dāng)所述服務(wù)器接收所述用戶終端發(fā)送的所述文件上傳請(qǐng)求后,向所述用戶終端發(fā)送上傳提示之前,所述系統(tǒng)還包括: 若所述用戶終端未接收到所述服務(wù)器發(fā)送的上傳提示,則繼續(xù)發(fā)送文件上傳請(qǐng)求; 用戶終端判斷所述文件上傳請(qǐng)求次數(shù)是否超過預(yù)置發(fā)送次數(shù); 若未超過,則所述用戶終端重新向服務(wù)器發(fā)送文件上傳請(qǐng)求; 若超過,則所述用戶終端終止所述待上傳文件的上傳。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述當(dāng)所述服務(wù)器接收到所述每個(gè)分組的全部數(shù)據(jù)包時(shí),向所述用戶發(fā)送分組上傳完成提示之后,所述系統(tǒng)還包括: 當(dāng)所述用戶終端接收到所述分組上傳完成提示時(shí),判斷剩余數(shù)據(jù)包個(gè)數(shù)是否大于每組中數(shù)據(jù)包的總數(shù); 若剩余數(shù)據(jù)包個(gè)數(shù)大于每組中數(shù)據(jù)包的總數(shù),則所述用戶終端根據(jù)分包號(hào)向所述服務(wù)器發(fā)送數(shù)據(jù)包; 若剩余數(shù)據(jù)包個(gè)數(shù)小于等于每組中數(shù)據(jù)包的總數(shù),則所述用戶終端發(fā)送所有剩余的數(shù)據(jù)包。
4.一種文件上傳的方法,其特征在于,包括: 對(duì)待上傳文件進(jìn)行完整性校驗(yàn),得到第一校驗(yàn)值; 將所述待上傳文件劃分為多個(gè)數(shù)據(jù)包; 向服務(wù)器發(fā)送文件上傳請(qǐng)求,所述文件上傳請(qǐng)求中攜帶所述待上傳文件劃分得到的數(shù)據(jù)包總個(gè)數(shù); 接收到所述服務(wù)器發(fā)送的上傳提示后,向所述服務(wù)器發(fā)送所述多個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包中包含各自的分包號(hào),所述分包號(hào)用于所述服務(wù)器根據(jù)所述數(shù)據(jù)包的總個(gè)數(shù)確定所述待上傳文件是否全部上傳成功; 當(dāng)所述待上傳文件中所有的數(shù)據(jù)包上傳成功后,接收所述服務(wù)器發(fā)送的第二校驗(yàn)值,所述第二校驗(yàn)值為所述服務(wù)器確定所述待上傳文件全部上傳完成后,對(duì)所述待上傳文件進(jìn)行完整性校驗(yàn)得到的; 當(dāng)所述第一校驗(yàn)值與所述第二校驗(yàn)值相同時(shí),確定所述待上傳文件全部上傳成功。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述將待上傳文件劃分為多個(gè)數(shù)據(jù)包之后,還包括: 將所述多個(gè)數(shù)據(jù)包劃分為多個(gè)分組,每個(gè)分組包括至少一個(gè)數(shù)據(jù)包; 所述接收到所述服務(wù)器發(fā)送的上傳提示后,向所述服務(wù)器發(fā)送所述多個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包中包含各自的分包號(hào),所述分包號(hào)用于所述服務(wù)器根據(jù)所述數(shù)據(jù)包的總個(gè)數(shù)確定所述待上傳文件是否全部上傳成功包括: 接收到所述服務(wù)器發(fā)送的分組上傳提示后,判斷所述待上傳文件中所有的數(shù)據(jù)包個(gè)數(shù)是否大于分組要求的分包個(gè)數(shù); 若所述待上傳文件中所有的數(shù)據(jù)包個(gè)數(shù)大于分組要求的分包個(gè)數(shù)時(shí),則根據(jù)分包號(hào)由小至大向服務(wù)器依次發(fā)送分組中所有的數(shù)據(jù)包; 所述分組中所有的數(shù)據(jù)包發(fā)送完成后,依次發(fā)送下一組中所有的數(shù)據(jù)包; 若所述待上傳文件中所有的數(shù)據(jù)包個(gè)數(shù)小于等于分組要求的分包個(gè)數(shù)時(shí),則向所述服務(wù)器一次性發(fā)送所述所有的數(shù)據(jù)包。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述向服務(wù)器發(fā)送文件上傳請(qǐng)求,所述文件上傳請(qǐng)求中攜帶所述待上傳文件劃分得到的數(shù)據(jù)包總個(gè)數(shù)包括: 向所述服務(wù)器發(fā)送文件上傳請(qǐng)求; 等待所述服務(wù)器發(fā)送的上傳提示; 若未收到上傳提示,則根據(jù)預(yù)置的最大發(fā)送文件上傳請(qǐng)求次數(shù),向所述服務(wù)器發(fā)送文件上傳請(qǐng)求; 當(dāng)超過預(yù)置的最大發(fā)送文件上傳請(qǐng)求次數(shù)時(shí),則中斷文件上傳。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述若所述待上傳文件中所有的數(shù)據(jù)包個(gè)數(shù)大于分組要求的分包個(gè)數(shù)時(shí),則根據(jù)分包號(hào)由小至大向服務(wù)器依次發(fā)送分組中所有的數(shù)據(jù)包之后,還包括: 若未接收到所述服務(wù)器發(fā)送分組上傳完成提示,則重新向所述服務(wù)器發(fā)送文件上傳請(qǐng)求; 接收所述服務(wù)器發(fā)送未收到的數(shù)據(jù)包的分包號(hào); 根據(jù)所述未收到的數(shù)據(jù)包的分包號(hào)發(fā)送所述分包號(hào)對(duì)應(yīng)的數(shù)據(jù)包。
8.一種文件上傳的方法,其特征在于,包括: 接收所述用戶終端發(fā)送的所述文件上傳請(qǐng)求; 根據(jù)所述文件上傳請(qǐng)求,向所述用戶終端發(fā)送所述文件分組上傳提示; 接收所述用戶終端發(fā)送的所述多個(gè)數(shù)據(jù)包; 根據(jù)每個(gè)數(shù)據(jù)包中包含的各自的分包號(hào)與所述文件上傳請(qǐng)求中攜帶的所述待上傳文件劃分得到的數(shù)據(jù)包總個(gè)數(shù),確定所述待上傳文件是否全部上傳成功; 當(dāng)確定所述待上傳文件全部上傳成功后,對(duì)已經(jīng)全部上傳成功的文件進(jìn)行完整性校驗(yàn),得到第二校驗(yàn)值; 向所述用戶終端發(fā)送所述第二校驗(yàn)值。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述接收所述用戶終端發(fā)送的所述多個(gè)數(shù)據(jù)包之后,還包括: 根據(jù)所述多個(gè)分組,判斷是否接收到每個(gè)分組中全部的數(shù)據(jù)包; 若接收到每個(gè)分組中全部的數(shù)據(jù)包,則向所述用戶終端發(fā)送上傳完成提示; 若沒有接收到每個(gè)分組中全部的數(shù)據(jù)包,則繼續(xù)等待接收所述每個(gè)分組中的剩余數(shù)據(jù)包。
10.根據(jù)權(quán)利要求8至9中任一項(xiàng)所述的方法,其特征在于,所述接收所述用戶終端發(fā)送的所述多個(gè)數(shù)據(jù)包之后,還包括: 提取所述數(shù)據(jù)包中的冗余檢驗(yàn)碼CRC ; 所述根據(jù)所述多個(gè)分組,判斷是否接收到每個(gè)分組中全部的數(shù)據(jù)包包括: 當(dāng)接收到多個(gè)分組中的每個(gè)數(shù)據(jù)包時(shí),根據(jù)CRC驗(yàn)證碼判斷所述每個(gè)數(shù)據(jù)包中的數(shù)據(jù)是否正確; 若分組中所述每個(gè)數(shù)據(jù)包的數(shù)據(jù)均正確,則向所述用戶終端發(fā)送上傳正確完成提示; 若分組中有一個(gè)或多個(gè)數(shù)據(jù)包中的數(shù)據(jù)錯(cuò)誤,則丟棄所述數(shù)據(jù)包。
11.一種用戶終端,其特征在于,包括: 第一校驗(yàn)?zāi)K,用于對(duì)待上傳文件進(jìn)行完整性校驗(yàn),得到第一校驗(yàn)值; 第一劃分模塊,用于將所述待上傳文件劃分為多個(gè)數(shù)據(jù)包; 第一發(fā)送模塊,用于向服務(wù)器發(fā)送文件上傳請(qǐng)求,所述文件上傳請(qǐng)求中攜帶所述待上傳文件劃分得到的數(shù)據(jù)包總個(gè)數(shù); 第二發(fā)送模塊,用于接收到所述服務(wù)器發(fā)送的上傳提示后,向所述服務(wù)器發(fā)送所述多個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包中包含各自的分包號(hào),所述分包號(hào)用于所述服務(wù)器根據(jù)所述數(shù)據(jù)包的總個(gè)數(shù)確定所述待上傳文件是否全部上傳成功; 第一接收模塊,用于當(dāng)所述待上傳文件中所有的數(shù)據(jù)包上傳成功后,接收所述服務(wù)器發(fā)送的第二校驗(yàn)值,所述第二校驗(yàn)值為所述服務(wù)器確定所述待上傳文件全部上傳完成后,對(duì)所述待上傳文件進(jìn)行完整性校驗(yàn)得到的; 第一確定模塊,用于當(dāng)所述第一校驗(yàn)值與所述第二校驗(yàn)值相同時(shí),確定所述待上傳文件全部上傳成功。
12.根據(jù)權(quán)利要求11所述的用戶終端,其特征在于,所述用戶終端還包括: 第二劃分模塊,用于將所述多個(gè)數(shù)據(jù)包劃分為多個(gè)分組,每個(gè)分組包括至少一個(gè)數(shù)據(jù)包; 所述第二發(fā)送模塊包括: 第一判斷單元,接收到所述服務(wù)器發(fā)送的分組上傳提示后,判斷所述待上傳文件中所有的數(shù)據(jù)包個(gè)數(shù)是否大于或等于分組要求的分包個(gè)數(shù); 第一發(fā)送單元,若所述待上傳文件中所有的數(shù)據(jù)包個(gè)數(shù)大于分組要求的分包個(gè)數(shù)時(shí),則根據(jù)分包號(hào)由小至大向服務(wù)器依次發(fā)送分組中所有的數(shù)據(jù)包; 第二發(fā)送單元,所述分組中所有的數(shù)據(jù)包發(fā)送完成后,依次發(fā)送下一組中所有的數(shù)據(jù)包; 第三發(fā)送單元,若所述待上傳文件中所有的數(shù)據(jù)包個(gè)數(shù)小于等于分組要求的分包個(gè)數(shù)時(shí),則向所述服務(wù)器一次性發(fā)送所述所有的數(shù)據(jù)包。
13.根據(jù)權(quán)利要求11所述的用戶終端,其特征在于,所述第一發(fā)送模塊包括: 第四發(fā)送單元,用于向所述服務(wù)器發(fā)送文件上傳請(qǐng)求; 等待單元,用于等待所述服務(wù)器發(fā)送的上傳提示; 第五發(fā)送單元,用于若未收到所述上傳提示,則根據(jù)預(yù)置的最大發(fā)送文件上傳請(qǐng)求次數(shù),向所述服務(wù)器發(fā)送文件上傳請(qǐng)求; 中斷單元,用于當(dāng)超過所述預(yù)置的最大發(fā)送文件上傳請(qǐng)求次數(shù)時(shí),則中斷文件上傳。
14.根據(jù)權(quán)利要求12所述用戶終端,其特征在于,所述用戶終端還包括: 第三發(fā)送模塊,若未接收到所述服務(wù)器發(fā)送分組上傳完成提示,則重新向所述服務(wù)器發(fā)送文件上傳請(qǐng)求; 第二接收模塊,用于接收所述服務(wù)器發(fā)送未收到的數(shù)據(jù)包的分包號(hào); 第四發(fā)送模塊,用于根據(jù)所述未收到的數(shù)據(jù)包的分包號(hào)發(fā)送所述分包號(hào)對(duì)應(yīng)的數(shù)據(jù)包。
15.一種服務(wù)器,其特征在于,包括: 第三接收模塊,用于接收所述用戶終端發(fā)送的所述文件上傳請(qǐng)求; 第五發(fā)送模塊,用于根據(jù)所述文件上傳請(qǐng)求,向所述用戶終端發(fā)送所述文件分組上傳提不; 第四接收模塊,用于接收所述用戶終端發(fā)送的所述多個(gè)數(shù)據(jù)包; 第二確定模塊,用于根據(jù)每個(gè)數(shù)據(jù)包中包含的各自的分包號(hào)與所述文件上傳請(qǐng)求中攜帶的所述待上傳文件劃分得到的數(shù)據(jù)包總個(gè)數(shù),確定所述待上傳文件是否全部上傳成功;第二校驗(yàn)?zāi)K,用于當(dāng)確定所述待上傳文件全部上傳成功后,對(duì)已經(jīng)全部上傳成功的文件進(jìn)行完整性校驗(yàn),得到第二校驗(yàn)值; 第六發(fā)送模塊,用于向所述用戶終端發(fā)送第二校驗(yàn)值。
16.根據(jù)權(quán)利要求15所述的服務(wù)器,其特征在于,所述服務(wù)器還包括: 判斷模塊,用于根據(jù)所述多個(gè)分組,判斷是否接收到每個(gè)分組中全部的數(shù)據(jù)包; 第七發(fā)送模塊,用于若接收到每個(gè)分組中全部的數(shù)據(jù)包,則向所述用戶終端發(fā)送上傳完成提不; 等待模塊,用于若沒有接收到每個(gè)分組中全部的數(shù)據(jù)包,則繼續(xù)等待接收所述每個(gè)分組中的剩余數(shù)據(jù)包。
17.根據(jù)權(quán)利要求15至16任一項(xiàng)所述的服務(wù)器,其特征在于,所述服務(wù)器還包括: 提取模塊,用于提取所述數(shù)據(jù)包中的冗余檢驗(yàn)碼CRC ; 所述判斷模塊包括: 第二判斷單元,用于當(dāng)接收到多個(gè)分組中的每個(gè)數(shù)據(jù)包時(shí),根據(jù)CRC驗(yàn)證碼判斷所述每個(gè)數(shù)據(jù)包中的數(shù)據(jù)是否正確; 第六發(fā)送單元,用于若分組中所述每個(gè)數(shù)據(jù)包的數(shù)據(jù)均正確,則向所述用戶終端發(fā)送上傳正確完成提不; 丟棄單元,用于若分組中有一個(gè)或多個(gè)數(shù)據(jù)包中的數(shù)據(jù)錯(cuò)誤,則丟棄所述數(shù)據(jù)包。
18.一種文件上傳的系統(tǒng),其特征在于,包括:用戶終端和服務(wù)器 所述用戶終端為上述權(quán)利要求11至14中任一項(xiàng)所述的用戶終端; 所述服務(wù)器為上述權(quán)利要求15至17中任一項(xiàng)所述的服務(wù)器。
【專利摘要】本發(fā)明實(shí)施例公開了一種文件上傳的系統(tǒng),包括:用戶終端對(duì)待上傳文件進(jìn)行完整性校驗(yàn),得到第一校驗(yàn)值;將該文件分為多個(gè)數(shù)據(jù)包,將多個(gè)數(shù)據(jù)包劃分為多個(gè)分組;向服務(wù)器發(fā)送文件上傳請(qǐng)求;發(fā)送分組中的數(shù)據(jù)包;當(dāng)服務(wù)器接收到分組的全部數(shù)據(jù)包時(shí)發(fā)送分組上傳完成提示;若用戶終端未接收到分組上傳完成提示則發(fā)送請(qǐng)求報(bào)文;服務(wù)器根據(jù)請(qǐng)求報(bào)文回傳未收到數(shù)據(jù)包的分包號(hào);用戶終端根據(jù)該分包號(hào)向服務(wù)器重新上傳對(duì)應(yīng)數(shù)據(jù)包;當(dāng)文件上傳成功后,服務(wù)器對(duì)文件進(jìn)行完整性校驗(yàn),得到第二校驗(yàn)值;第一校驗(yàn)值與第二校驗(yàn)值相同時(shí),確定該文件全部上傳成功。本發(fā)明實(shí)施例能夠提高文件的上傳的成功率,實(shí)時(shí)將未收到數(shù)據(jù)包重新上傳,保證文件傳輸?shù)耐暾浴?br>【IPC分類】H04L29-06, H04L29-08
【公開號(hào)】CN104539739
【申請(qǐng)?zhí)枴緾N201510038094
【發(fā)明人】馮冬芹, 黃家輝
【申請(qǐng)人】浙江大學(xué)
【公開日】2015年4月22日
【申請(qǐng)日】2015年1月26日