欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)傳輸方法、數(shù)據(jù)發(fā)送方法及數(shù)據(jù)接收方法

文檔序號(hào):7918550閱讀:219來源:國知局

專利名稱::數(shù)據(jù)傳輸方法、數(shù)據(jù)發(fā)送方法及數(shù)據(jù)接收方法
技術(shù)領(lǐng)域
:本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)傳輸技術(shù),特別涉及數(shù)據(jù)傳輸方法、數(shù)據(jù)發(fā)送方法及數(shù)據(jù)接收方法。
背景技術(shù)
:當(dāng)今的許多設(shè)備和基于計(jì)算的服務(wù)依賴于通信系統(tǒng)在彼此之間傳送必要的信息。所述的通信系統(tǒng)通常由多個(gè)獨(dú)立的通信網(wǎng)絡(luò)構(gòu)成,其中包括有線網(wǎng)纟備和無線網(wǎng)纟各。用戶數(shù)據(jù)報(bào)協(xié)議(UDP)是一種面向非連接的網(wǎng)絡(luò)傳輸協(xié)議,處于網(wǎng)絡(luò)分層模型中的傳輸層,它不保證傳輸可靠性。在網(wǎng)絡(luò)不穩(wěn)定的情況下,將應(yīng)用層數(shù)據(jù)承載于UDP包中進(jìn)行傳輸可能造成數(shù)據(jù)包丟失,可見,UDP無法滿足一些對(duì)數(shù)據(jù)傳輸要求較高的應(yīng)用的需要。傳輸控制協(xié)議(TCP)同樣處于傳輸層,它是一種面向連接的網(wǎng)絡(luò)傳輸協(xié)議,可供對(duì)可靠性要求較高的應(yīng)用層協(xié)議選擇,用以承載其數(shù)據(jù)包。基于TCP進(jìn)行數(shù)據(jù)傳輸時(shí)需要首先在收發(fā)雙方之間建立TCP連接,而在網(wǎng)絡(luò)質(zhì)量較差的情況下,特別是在無線網(wǎng)絡(luò)中,收發(fā)雙方之間的TCP連接可能出現(xiàn)頻繁的斷連,連接每斷掉一次,就需要重新建立一次TCP連接,而建立TCP連接需要收發(fā)雙方進(jìn)行多次信令交互,這將導(dǎo)致在收發(fā)雙方之間產(chǎn)生許多額外的數(shù)據(jù)通信量,從而使得傳輸效率較低。另外,根據(jù)TCP協(xié)議的規(guī)定,即使在收發(fā)雙方之間沒有數(shù)據(jù)需要發(fā)送的情況下,也需要向?qū)Ψ桨l(fā)送心跳包以維持雙方之間的TCP連接,這也在一定程度上導(dǎo)致了通信資源的浪費(fèi)。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供一種數(shù)據(jù)傳輸方法、一種數(shù)據(jù)發(fā)送方法及一種數(shù)據(jù)接收方法,以在保持較高傳輸效率的前提下,獲得較高的數(shù)據(jù)傳輸可靠性。為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的一種數(shù)據(jù)傳輸方法,包括A、發(fā)送方將攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包封裝到面向非連接的傳輸層協(xié)議數(shù)據(jù)包中發(fā)出,并將所述應(yīng)用層數(shù)據(jù)包存儲(chǔ)于緩沖區(qū)中,啟動(dòng)重傳定時(shí)器;B、接收方接收所述傳輸層協(xié)議數(shù)據(jù)包,從中獲取攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包,并根據(jù)所述校驗(yàn)信息判斷所接收的應(yīng)用層數(shù)據(jù)包是否正確,若正確,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包;若不正確,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確才妄收的確認(rèn)包;C、若發(fā)送方接收到接收方返回的對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,或在所述重傳定時(shí)器超時(shí)時(shí)尚未接收到接收方返回的對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,則執(zhí)行步驟D,否則,執(zhí)行步驟E;D、發(fā)送方重傳緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包,重新啟動(dòng)重傳定時(shí)器,并返回步驟C;E、發(fā)送方將緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包刪除。一種數(shù)據(jù)發(fā)送方法,包括Al、發(fā)送方將攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包封裝到面向非連接的傳輸層協(xié)議數(shù)據(jù)包中發(fā)出,并將所述應(yīng)用層數(shù)據(jù)包存儲(chǔ)于緩沖區(qū)中,啟動(dòng)重傳定時(shí)器;Bl、若發(fā)送方接收到接收方返回的對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示7應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,或在所述重傳定時(shí)器超時(shí)時(shí)尚未接收到對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,則執(zhí)行步驟C1,否則,執(zhí)行步驟D1;Cl、發(fā)送方重傳緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包,重新啟動(dòng)重傳定時(shí)器,并返回步驟Bl;Dl、發(fā)送方將緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包刪除。一種數(shù)據(jù)接收方法,包括a、接收方接收來自于發(fā)送方的面向非連接的傳輸層協(xié)議數(shù)據(jù)包,從中獲取攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包;b、接收方計(jì)算所述應(yīng)用層數(shù)據(jù)包的校驗(yàn)結(jié)果,比較所述校驗(yàn)結(jié)果與所述校驗(yàn)信息是否相同,若校驗(yàn)結(jié)果與校驗(yàn)信息相同,判定應(yīng)用層數(shù)據(jù)包正確接收,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包;若校驗(yàn)結(jié)果與校驗(yàn)信息不相同,判定應(yīng)用層數(shù)據(jù)包未正確接收,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包。本發(fā)明對(duì)應(yīng)于上述數(shù)據(jù)發(fā)送方法的數(shù)據(jù)接收方法在接收到攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包之后,通過計(jì)算該應(yīng)用層數(shù)據(jù)包的校驗(yàn)結(jié)果,并通過比較所述校驗(yàn)結(jié)果與所述校驗(yàn)信息是否相同來判斷所述應(yīng)用層數(shù)據(jù)包是否正確接收,在正確接收的情況下,向發(fā)送方返回對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,使發(fā)送方確認(rèn)其發(fā)出的數(shù)據(jù)包已被正確接收;在未正確接收的情況下,向發(fā)送方返回對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,使發(fā)送方可以重發(fā)所述未正確接收的應(yīng)用層數(shù)據(jù)包,從而提高了數(shù)據(jù)傳輸?shù)目煽啃浴M瑯拥?,由于本發(fā)明所述應(yīng)用層數(shù)據(jù)包和確認(rèn)包是通過面向非連接的傳輸層協(xié)議數(shù)據(jù)包承載的,數(shù)據(jù)收發(fā)雙方之間無需建立連接,從而節(jié)省了許多用于信令交互、保持連接的通信資源,從而保證了較高的傳輸效率??梢?,本發(fā)明通過在應(yīng)用層引入校驗(yàn)機(jī)制和超時(shí)重傳機(jī)制,并將應(yīng)用層數(shù)據(jù)承載于面向非連接的傳輸層協(xié)議數(shù)據(jù)包中進(jìn)行傳輸,從而在保持較高傳輸效率的前提下,獲得了較高的數(shù)據(jù)傳輸可靠性。圖1為本發(fā)明實(shí)施例中數(shù)據(jù)傳輸方法的流程示意圖;圖2為本發(fā)明實(shí)施例中數(shù)據(jù)發(fā)送方法的流程示意圖;圖3為本發(fā)明實(shí)施例中數(shù)據(jù)接收方法的流程示意圖;圖4為本發(fā)明一較佳實(shí)施例中應(yīng)用層數(shù)據(jù)包的結(jié)構(gòu)示意圖。具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。本發(fā)明的主要思想是通過在應(yīng)用層中引入校驗(yàn)機(jī)制和超時(shí)重傳機(jī)制,并將應(yīng)用層數(shù)據(jù)承載于面向非連接的傳輸層協(xié)議數(shù)據(jù)包中進(jìn)行傳輸,從而在保持較高傳輸效率的前提下,獲得了較高的數(shù)據(jù)傳輸可靠性。圖1為本發(fā)明實(shí)施例中數(shù)據(jù)傳輸方法的流程示意圖。參見圖1,該方法包括步驟101:發(fā)送方將攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包封裝到面向非連接的傳輸層協(xié)議數(shù)據(jù)包中發(fā)出,并將所述應(yīng)用層數(shù)據(jù)包存儲(chǔ)于緩沖區(qū)中,啟動(dòng)重傳定時(shí)器;步驟102:接收方接收所述傳輸層協(xié)議數(shù)據(jù)包,從中獲取攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包,并根據(jù)所接收的校驗(yàn)信息判斷所述應(yīng)用層'數(shù)據(jù)包是否正確,若正確,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包;若不正確,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確4妻收的確i人包;步驟103:若發(fā)送方接收到接收方返回的對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,或在所述重傳定時(shí)器超時(shí)時(shí)尚未接收到接收方返回的對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,則執(zhí)行步驟104,否則,執(zhí)行步驟105;步驟104:發(fā)送方重傳緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包,重新啟動(dòng)重傳定時(shí)器,并返回步驟103;步驟105:發(fā)送方將緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包刪除。至此,結(jié)束本發(fā)明數(shù)據(jù)傳輸方法流程。發(fā)送方與接收方之間的每一個(gè)待發(fā)送應(yīng)用層數(shù)據(jù)包都可以按照本發(fā)明上述方法進(jìn)行傳輸。數(shù)據(jù)傳輸通常在收發(fā)雙方之間進(jìn)行,事實(shí)上所述收發(fā)雙方在數(shù)據(jù)傳輸過程中既是發(fā)送方又是接收方,但是數(shù)據(jù)發(fā)送的功能和數(shù)據(jù)接收的功能通常是獨(dú)立實(shí)現(xiàn)的,因此,為便于更清楚地描述本發(fā)明,下面分別從數(shù)據(jù)發(fā)送和數(shù)據(jù)接收的角度,詳細(xì)說明本發(fā)明數(shù)據(jù)發(fā)送方法和數(shù)據(jù)接收方法。圖2為本發(fā)明實(shí)施例中數(shù)據(jù)發(fā)送方法的流程示意圖。參見圖2,該方法由發(fā)送方執(zhí)行,發(fā)送方預(yù)先設(shè)置重傳次數(shù)上限以及應(yīng)用層數(shù)據(jù)包長度上限,并收集數(shù)據(jù)信息,在需要發(fā)送所收集的數(shù)據(jù)信息時(shí),該方法包括步驟201:判斷本次數(shù)據(jù)發(fā)送是否為收發(fā)雙方之間的第一次數(shù)據(jù)傳輸,如果是,執(zhí)行步驟202,否則,跳到步驟206。為保證收發(fā)雙方之間的數(shù)據(jù)傳輸安全性、以及收發(fā)雙方之間對(duì)對(duì)方進(jìn)行身份認(rèn)證,在第一次數(shù)據(jù)傳輸?shù)倪^程中,收發(fā)雙方之間可以進(jìn)行密鑰協(xié)商以及身份認(rèn)證等。本步驟所述發(fā)送方與接收方之間的第一次數(shù)據(jù)傳輸是針對(duì)每一次在收發(fā)雙方之間建立的通信而言的,即收發(fā)雙方之間建立一個(gè)通信,進(jìn)行了若干次數(shù)據(jù)交互,停止雙方之間的通信后,若下次再需要建立通信,則被認(rèn)為是另外一次通信。步驟202:判斷是否需要對(duì)數(shù)據(jù)傳輸進(jìn)行加密,若需要,執(zhí)行步驟203,否則,跳到步驟204。步驟203:隨機(jī)生成第一隨機(jī)數(shù)(以下記為rl),將該rl或rl的可逆變換形式攜帶于應(yīng)用層數(shù)據(jù)包中,并將表示該應(yīng)用層數(shù)據(jù)包攜帶有隨機(jī)數(shù)的信息攜10帶于應(yīng)用層數(shù)據(jù)包中??梢灶A(yù)先約定用于對(duì)rl進(jìn)行可逆變換的變換算法,接收方收到發(fā)送方攜帶于應(yīng)用層數(shù)據(jù)包中的rl的可逆變換形式后,可以4艮據(jù)所述約定的變換算法對(duì)rl的可逆變換形式進(jìn)行逆變換,從而得到rl。步驟204:判斷接收方是否需要對(duì)自身進(jìn)行認(rèn)證才能建立通信,如果是,執(zhí)行步驟205,否則,跳到步驟206。本步驟所述認(rèn)證機(jī)制適用于服務(wù)器/客戶端模式,服務(wù)器端存儲(chǔ)有客戶端的認(rèn)證信息,在客戶端向服務(wù)器請(qǐng)求進(jìn)行通信之前,服務(wù)器需要對(duì)客戶端進(jìn)行認(rèn)證,因此,客戶端需要將供服務(wù)器對(duì)自身認(rèn)證的信息攜帶于應(yīng)用層數(shù)據(jù)包中發(fā)送給服務(wù)器。步驟205:將供接收方認(rèn)證自身的信息攜帶于應(yīng)用層數(shù)據(jù)包中。本步驟中,為了加強(qiáng)對(duì)認(rèn)證信息的保護(hù),可以用步驟203所述隨機(jī)數(shù)rl,對(duì)供接收方認(rèn)證自身的信息進(jìn)行加密,并將所得到的密文作為供接收方認(rèn)證自身的信息攜帶于應(yīng)用層數(shù)據(jù)包中。步驟206:判斷應(yīng)用層數(shù)據(jù)包的長度是否超過預(yù)先設(shè)置的應(yīng)用層數(shù)據(jù)包長度上限,若超過,則執(zhí)行步驟207,否則,跳到步驟208。本步驟所述應(yīng)用層數(shù)據(jù)包長度上限可以根據(jù)統(tǒng)計(jì)得到的數(shù)據(jù)包長度與丟包概率之間的對(duì)應(yīng)關(guān)系進(jìn)行合理的設(shè)置。例如表1示出了統(tǒng)計(jì)得到的GPRS網(wǎng)絡(luò)中不同長度的數(shù)據(jù)包的丟包概率<table>tableseeoriginaldocumentpage11</column></row><table>表1表l中,數(shù)據(jù)包長度以字節(jié)計(jì)算。步驟207:按照所設(shè)置的應(yīng)用層數(shù)據(jù)包長度上限對(duì)應(yīng)用層數(shù)據(jù)包進(jìn)行分包處理得到多個(gè)新的應(yīng)用層凝:據(jù)包;將這多個(gè)新的應(yīng)用層數(shù)據(jù)包單獨(dú)封裝到每一個(gè)傳輸層協(xié)議數(shù)據(jù)包中,并將相同的流水號(hào)、表示該應(yīng)用層數(shù)據(jù)包已被分包處理的信息、總分包個(gè)數(shù)、當(dāng)前包編號(hào)攜帶于每一個(gè)新的應(yīng)用層數(shù)據(jù)包中。本步驟所述流水號(hào)表示當(dāng)前應(yīng)用層數(shù)據(jù)包的編號(hào),該編號(hào)從1開始累加、溢出后再從1開始計(jì)數(shù)。由同一個(gè)應(yīng)用層數(shù)據(jù)包分包處理得到的多個(gè)新的應(yīng)用層^t據(jù)包具有相同的流水號(hào),利用所述相同的流水號(hào),以及每個(gè)應(yīng)用層萄:據(jù)包中攜帶的總分包個(gè)數(shù)和當(dāng)前包編號(hào),使得接收方在收到這些數(shù)據(jù)包之后,可以很方便地進(jìn)行重新組裝,得到分包之前的應(yīng)用層數(shù)據(jù)包。步驟208:判斷本地是否存儲(chǔ)有用于對(duì)本次通信進(jìn)行加密的密碼,如果有,執(zhí)行步驟209,否則,跳到步驟210。如步驟201所述,若需要對(duì)所傳輸?shù)臄?shù)據(jù)進(jìn)行加密,收發(fā)雙方將在第一次數(shù)據(jù)傳輸過程中進(jìn)行密鑰協(xié)商,協(xié)商好的密鑰由收發(fā)雙方各自保存,用于后續(xù)的凄史據(jù)加密。由于本流程是從發(fā)送方的角度進(jìn)行描述,關(guān)于密碼協(xié)商、密碼存儲(chǔ)將在后面的步驟中涉及。步驟209:以存儲(chǔ)的密碼對(duì)應(yīng)用層數(shù)據(jù)包中攜帶的數(shù)據(jù)進(jìn)行加密,并將表示該應(yīng)用層數(shù)據(jù)包中的數(shù)據(jù)已被力。密的信息攜帶于該應(yīng)用層數(shù)據(jù)包中。步驟210:判斷是否需要對(duì)方應(yīng)答本應(yīng)用層數(shù)據(jù)包,如果需要,執(zhí)行步驟211,否則,跳到步驟212。發(fā)送方發(fā)給接收方的應(yīng)用層數(shù)據(jù)包有的是需要應(yīng)答的,例如攜帶有認(rèn)證信息的數(shù)據(jù)包,需要對(duì)方進(jìn)行認(rèn)證之后,返回是否認(rèn)證通過的應(yīng)答包,此時(shí),需要發(fā)送方在應(yīng)用層數(shù)據(jù)包中攜帶表示需要對(duì)方應(yīng)答的信息。步驟211:將表示需要應(yīng)答的信息攜帶于該應(yīng)用層數(shù)據(jù)包中。步驟212:將應(yīng)用層數(shù)據(jù)包的校驗(yàn)信息攜帶于該應(yīng)用層數(shù)據(jù)包中。本步驟所述校驗(yàn)信息是對(duì)從應(yīng)用層數(shù)據(jù)包的包頭至應(yīng)用層數(shù)據(jù)包的數(shù)據(jù)段末尾的數(shù)據(jù)進(jìn)行校驗(yàn)得到的校驗(yàn)信息,可以采用CRC校驗(yàn)等方式進(jìn)行校驗(yàn)。步驟213:將應(yīng)用層數(shù)據(jù)包封裝到面向非連接的傳輸層協(xié)議數(shù)據(jù)包中。步驟214:將該傳輸層協(xié)議數(shù)據(jù)包發(fā)出,并將所述應(yīng)用層數(shù)據(jù)包存儲(chǔ)于緩沖區(qū)中,啟動(dòng)重傳定時(shí)器。步驟215:判斷是否在重傳定時(shí)器超時(shí)時(shí)尚未接收到對(duì)應(yīng)于所發(fā)出應(yīng)用層數(shù)據(jù)包的確認(rèn)包,如果是,執(zhí)行步驟216,否則,執(zhí)行步驟217。步驟216:判斷發(fā)出該應(yīng)用層數(shù)據(jù)包的次數(shù)是否已超過預(yù)先設(shè)置的重傳次數(shù)上限,若未超過,則返回步驟214,否則,結(jié)束本次與接收方之間的通信。步驟217:根據(jù)所收到的確認(rèn)包中攜帶的信息判斷應(yīng)用層數(shù)據(jù)包是否被正確接收,若沒有被正確接收,執(zhí)行步驟216,否則,執(zhí)行步驟218。步驟218:刪除緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包。步驟219:如果所發(fā)出的應(yīng)用層數(shù)據(jù)包需要對(duì)方的應(yīng)答,則判斷是否在重傳定時(shí)器超時(shí)時(shí)尚未收到對(duì)應(yīng)于該應(yīng)用層數(shù)據(jù)包的應(yīng)答包,如果是,執(zhí)行步驟216,否則,執(zhí)行步驟220。步驟220:向發(fā)送方發(fā)出對(duì)應(yīng)于該應(yīng)答包的確認(rèn)包,并從該應(yīng)答包中獲取對(duì)方的應(yīng)答信息,根據(jù)所述應(yīng)答信息進(jìn)行相應(yīng)的操作。本步驟中,發(fā)送方從應(yīng)答包中所獲取的應(yīng)答信息與發(fā)送方之前向接收方發(fā)出的數(shù)據(jù)包的內(nèi)容有關(guān),例如如果在步驟203將隨機(jī)數(shù)rl或rl的可逆變換形式攜帶于應(yīng)用層數(shù)據(jù)包中發(fā)給了接收方,本次收到的應(yīng)答包中,將攜帶有以rl加密后的第二隨機(jī)數(shù),以rl對(duì)該加密后的第二隨機(jī)數(shù)解密,即可得到用于后續(xù)數(shù)據(jù)加密的密碼,此時(shí),需要將所述第二隨機(jī)數(shù)作為密碼存儲(chǔ);如果在步驟205將供接收方認(rèn)證自身的信息攜帶于應(yīng)用層數(shù)據(jù)包中發(fā)給了接收方,本次收到的應(yīng)答包中,將攜帶有對(duì)方對(duì)自身的認(rèn)證結(jié)果,發(fā)送方可以根據(jù)該認(rèn)證結(jié)果判斷對(duì)方對(duì)自身的認(rèn)證是否通過,若通過,可以繼續(xù)正常地進(jìn)行后續(xù)數(shù)據(jù)傳輸,若未通過,則可能需要重新發(fā)起認(rèn)證過程。以上只是舉例說明,在實(shí)際應(yīng)用中,發(fā)送方與接收方之間可能進(jìn)行身份注銷、修改認(rèn)證信息或其他控制等,這些都需要接收方的應(yīng)答,而接收方的應(yīng)答根據(jù)發(fā)送方所請(qǐng)求內(nèi)容的不同將有所不同。至此,完成一次數(shù)據(jù)傳輸過程中,數(shù)據(jù)發(fā)送方所執(zhí)行的流程??梢园凑丈鲜龇椒òl(fā)送下一個(gè)應(yīng)層數(shù)據(jù)包,直至發(fā)送完所有待發(fā)送數(shù)據(jù)。13圖3為本發(fā)明實(shí)施例中數(shù)據(jù)接收方法的流程示意圖。參見圖3,該方法由接收方執(zhí)行,接收方預(yù)先設(shè)置重傳次數(shù)上限,并按照如下步驟進(jìn)行數(shù)據(jù)接收步驟301:接收面向非連接的傳輸層協(xié)議數(shù)據(jù)包,從中獲取攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包。步驟302:判斷本地是否存儲(chǔ)有用于對(duì)本次通信進(jìn)行加密的密碼,如果有,執(zhí)行步驟303,否則,跳到步驟307。步驟303:以存儲(chǔ)的密碼對(duì)應(yīng)用層數(shù)據(jù)包中攜帶的數(shù)據(jù)解密。步驟304:計(jì)算應(yīng)用層數(shù)據(jù)包的校驗(yàn)結(jié)果,比較所述校驗(yàn)結(jié)果與應(yīng)用層數(shù)據(jù)包中所攜帶的校驗(yàn)信息是否相同,若校驗(yàn)結(jié)果與校驗(yàn)信息相同,執(zhí)行步驟305;若校驗(yàn)結(jié)果與校驗(yàn)信息不相同,跳到步驟306。步驟305:在校驗(yàn)結(jié)果與校驗(yàn)信息相同時(shí),判定應(yīng)用層數(shù)據(jù)包正確接收,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,跳到步驟315。步驟306:在校驗(yàn)結(jié)果與校驗(yàn)信息不相同時(shí),判定應(yīng)用層數(shù)據(jù)包未正確接收,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,跳到步驟315。步驟307:計(jì)算應(yīng)用層數(shù)據(jù)包的校驗(yàn)結(jié)果,比較所述校驗(yàn)結(jié)果與應(yīng)用層數(shù)據(jù)包中所攜帶的校驗(yàn)信息是否相同,若校驗(yàn)結(jié)果與校驗(yàn)信息相同,執(zhí)行步驟308;若校驗(yàn)結(jié)果與校驗(yàn)信息不相同,跳到步驟309。步驟308:在校驗(yàn)結(jié)果與校驗(yàn)信息相同.時(shí),判定應(yīng)用層數(shù)據(jù)包正確接收,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,跳到步驟310。步驟309:在校驗(yàn)結(jié)果與校驗(yàn)信息不相同時(shí),判定應(yīng)用層數(shù)據(jù)包未正確接收,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包。步驟310:判斷應(yīng)用層數(shù)據(jù)包中是否攜帶有表示該應(yīng)用層數(shù)據(jù)包攜帶有隨機(jī)數(shù)的信息,如果攜帶有,執(zhí)行步驟311,否則,跳到步驟312。步驟311:從所述應(yīng)用層數(shù)據(jù)包中獲取第一隨機(jī)數(shù),或從所述應(yīng)用層數(shù)據(jù)包中獲取第一隨機(jī)數(shù)的可逆變換形式,并對(duì)所述第一隨機(jī)數(shù)的可逆變換形式進(jìn)行逆變換得到第一隨機(jī)數(shù)。如步驟203所述,可以預(yù)先約定用于對(duì)rl進(jìn)行可逆變換的變換算法,如此,若在本步驟中收到rl的可逆變換形式,就可以根據(jù)該約定的變換算法對(duì)rl的可逆變換形式進(jìn)行逆變換,從而得到rl。步驟312:判斷應(yīng)用層數(shù)據(jù)包中是否攜帶有用于對(duì)發(fā)送方進(jìn)行認(rèn)證的信息,如果攜帶有,執(zhí)行步驟313,否則,跳到步驟315。本步驟中,所獲取到的信息可能是經(jīng)rl加密后的信息,可以以rl對(duì)所述信息進(jìn)行解密,得到用于對(duì)對(duì)方進(jìn)行認(rèn)證的信息。步驟314:對(duì)發(fā)送方進(jìn)行認(rèn)證,得到認(rèn)證結(jié)果。本步驟中,可以根據(jù)自身預(yù)先保存的對(duì)方的認(rèn)證信息,結(jié)合對(duì)方本次發(fā)送過來的認(rèn)證信息對(duì)對(duì)方進(jìn)行認(rèn)證。步驟315:判斷應(yīng)用層數(shù)據(jù)包中是否攜帶有表示需要應(yīng)答的信息,若攜帶有,執(zhí)行步驟316,否則,跳到步驟320。步驟316:發(fā)出對(duì)應(yīng)于應(yīng)用層數(shù)據(jù)包的應(yīng)答包,并將所述應(yīng)答包存儲(chǔ)于緩沖區(qū)中,啟動(dòng)重傳定時(shí)器。本步驟中,所發(fā)出的應(yīng)答包中攜帶的內(nèi)容與本次所接收到的對(duì)方的應(yīng)用層數(shù)據(jù)包有關(guān),在發(fā)送應(yīng)答包之前可以判斷本次是否收到的對(duì)方發(fā)送的隨機(jī)數(shù)rl,若收到,可以隨機(jī)生成第二隨機(jī)數(shù)(以下記為r2),將r2存儲(chǔ)為密碼,并將r2攜帶于該應(yīng)答包中;本次是否對(duì)對(duì)方進(jìn)行了-險(xiǎn)證,若進(jìn)行了驗(yàn)證,將驗(yàn)證結(jié)果攜帶于該應(yīng)答包中,等等。以上只是舉例說明,在實(shí)際應(yīng)用中,發(fā)送方與接收方之間可能進(jìn)行身份注銷、修改認(rèn)證信息或其他控制等,這些都需要向接收方發(fā)送相應(yīng)的應(yīng)答包。步驟317:判斷是否在重傳定時(shí)器超時(shí)時(shí)尚未收到對(duì)應(yīng)于該應(yīng)答包的確認(rèn)包,如果是,執(zhí)行步驟318,否則,執(zhí)行步驟319。步驟318:判斷發(fā)出該應(yīng)答包的次數(shù)是否已超過預(yù)先設(shè)置的重傳次數(shù)上限,若未超過,則返回步驟316,否則,執(zhí)行步驟319。步驟319:刪除緩沖區(qū)中的該應(yīng)答包。步驟320:判斷應(yīng)用層數(shù)據(jù)包中是否攜帶有表示該應(yīng)用層數(shù)據(jù)包已被分包處理的信息,若攜帶有,執(zhí)行步驟321,否則,結(jié)束本方法流程。這里,需要說明的是雖然本步驟所述判斷在圖3所示流程圖中的執(zhí)行次序處于步驟310~步驟319之后,但是,實(shí)際上在校驗(yàn)正確之后就可以執(zhí)行本步驟所述判斷??梢?,本步驟與上述步驟310~步驟319之間沒有絕對(duì)的先后次序關(guān)系,只是為了便于流程描述,而將本步驟的說明置于步驟310步驟319之后。步驟321:從應(yīng)用層數(shù)據(jù)包中獲取流水號(hào)、總分包個(gè)數(shù)和當(dāng)前包編號(hào),將流水號(hào)相同的應(yīng)用層數(shù)據(jù)包按照其對(duì)應(yīng)的當(dāng)前包編號(hào)組合成完整的應(yīng)用層數(shù)據(jù)包。至此,完成一次數(shù)據(jù)傳輸過程中,數(shù)據(jù)接收方所執(zhí)行的流程??梢园凑丈鲜龇椒ń邮障乱粋€(gè)應(yīng)層數(shù)據(jù)包,直至接收完所有待發(fā)送數(shù)據(jù)。以上結(jié)合附圖對(duì)本發(fā)明數(shù)據(jù)傳輸方法、數(shù)據(jù)發(fā)送方法和數(shù)據(jù)接收方法進(jìn)行了詳細(xì)說明,下面通過一個(gè)具體示例進(jìn)一步詳細(xì)說明本發(fā)明的具體實(shí)施方式。對(duì)應(yīng)于本發(fā)明技術(shù)方案,可以設(shè)置如圖4所示的應(yīng)用層數(shù)據(jù)包結(jié)構(gòu)。參見圖4,圖4為本發(fā)明一4交佳實(shí)施例中應(yīng)用層數(shù)據(jù)包的結(jié)構(gòu)示意圖,該應(yīng)用層數(shù)據(jù)包可以分為包頭、業(yè)務(wù)包頭、翁:據(jù)區(qū)和包尾。其中1)包頭包括起始標(biāo)志字段和數(shù)據(jù)包長度字段,這是數(shù)據(jù)包的常規(guī)組成部分a)起始標(biāo)志為數(shù)據(jù)包起始符,用于標(biāo)識(shí)一個(gè)應(yīng)用層數(shù)據(jù)包的開始。b)數(shù)據(jù)包長度表示該應(yīng)用層數(shù)據(jù)包從包頭到包尾的總長度。2)業(yè)務(wù)包頭包括請(qǐng)求流水號(hào)字段、標(biāo)志位字段、協(xié)議版本號(hào)字段、終端唯一識(shí)別號(hào)字段、包類型字段、功能號(hào)字段、數(shù)據(jù)包時(shí)間戳字段和數(shù)據(jù)區(qū)長度字段等,以及可選的加密密碼字段、總包號(hào)字段、當(dāng)前包號(hào)字段和返回碼字段等。其中c)請(qǐng)求流水號(hào)即步驟207所述流水號(hào),表示當(dāng)前數(shù)據(jù)包的編號(hào),該編號(hào)從1開始累加、溢出后再從1開始計(jì)數(shù);對(duì)應(yīng)于某應(yīng)用層數(shù)據(jù)包的確認(rèn)包和應(yīng)答包中,請(qǐng)求流水號(hào)字段的取值與該應(yīng)用層數(shù)據(jù)包請(qǐng)求流水號(hào)字段的取值相同;由同一應(yīng)用層數(shù)據(jù)包經(jīng)分包處理后得到的多個(gè)包的請(qǐng)求流水號(hào)相同,以便接收端組裝得到分包處理之前的應(yīng)用層數(shù)據(jù)包。d)標(biāo)志位用于攜帶標(biāo)志信息,例如表示該應(yīng)用層數(shù)據(jù)包中是否攜帶有密碼信息、數(shù)據(jù)段是否被加密、是否進(jìn)行了分包處理、是否需要對(duì)方應(yīng)答、是否有返回碼、是否對(duì)數(shù)據(jù)段進(jìn)行了壓縮、是否攜帶有認(rèn)證信息等;可以設(shè)置該標(biāo)志位占用l字節(jié),并以各比特位的不同取值表示不同的標(biāo)志信息。e)加密密碼用于攜帶收發(fā)雙方之間的密碼信息,例如發(fā)送方首次發(fā)送給接收方的應(yīng)用層數(shù)據(jù)包中所攜帶的隨機(jī)數(shù)rl或rl的可逆變換形式就可以攜帶在該字段中;加密密碼字段可以與標(biāo)志位字段結(jié)合使用,即當(dāng)標(biāo)志位字段置為攜帶有密碼信息時(shí),在加密密碼字段攜帶密碼信息。f)總包號(hào)表示分包處理得到的總分包個(gè)數(shù),當(dāng)前包號(hào)表示當(dāng)前包在分包處理得到的包中所處的編號(hào);總包號(hào)字段和當(dāng)前包號(hào)字段與標(biāo)志位字段結(jié)合使用,即當(dāng)標(biāo)志位字段置為該包進(jìn)行了分包處理時(shí),在總包號(hào)字段和當(dāng)前包號(hào)字段攜帶總包號(hào)信息和當(dāng)前包號(hào)信息。g)協(xié)議版本號(hào)標(biāo)志協(xié)議的不同版本號(hào),可以默認(rèn)設(shè)置為O。h)終端唯一識(shí)別號(hào)為用于區(qū)別各個(gè)終端的唯一標(biāo)識(shí)符。i)包類型,對(duì)應(yīng)于本發(fā)明有三種類型請(qǐng)求包、確認(rèn)包和應(yīng)答包。j)功能號(hào)用于表示當(dāng)前應(yīng)用層數(shù)據(jù)包用于執(zhí)行什么操作。例如用于登錄、注銷、修改密碼、數(shù)據(jù)傳輸、控制等。k)返回碼用于攜帶相應(yīng)應(yīng)用層數(shù)據(jù)包的執(zhí)行結(jié)果,與標(biāo)志位結(jié)合使用。例如當(dāng)接收到一個(gè)應(yīng)用層數(shù)據(jù)包,校驗(yàn)不正確時(shí),可以在針對(duì)該應(yīng)用層數(shù)據(jù)包的確認(rèn)包的返回碼字段攜帶表示應(yīng)用層數(shù)據(jù)包未正確接收的信息。1)數(shù)據(jù)包時(shí)間戳表示當(dāng)前數(shù)據(jù)包的打包時(shí)間。17m)數(shù)據(jù)區(qū)長度表示應(yīng)用層數(shù)據(jù)包中數(shù)據(jù)段的數(shù)據(jù)長度。3)數(shù)據(jù)區(qū)即數(shù)據(jù)段,是可選字段,用于存放數(shù)據(jù)內(nèi)容,發(fā)送方發(fā)送給接收方的供接收方對(duì)發(fā)送方進(jìn)行認(rèn)證的信息也可以置于數(shù)據(jù)段中發(fā)送。4)包尾包括校驗(yàn)字段和結(jié)束標(biāo)志字段o)校驗(yàn)字段用于攜帶應(yīng)用層數(shù)據(jù)包的校驗(yàn)信息,所述校驗(yàn)信息是從應(yīng)用層數(shù)據(jù)包的包頭至應(yīng)用層數(shù)據(jù)包的數(shù)據(jù)段末尾的數(shù)據(jù)進(jìn)行校-驗(yàn)得到的信息,可以采用目前最常用的CRC校驗(yàn)。p)結(jié)束標(biāo)志為數(shù)據(jù)包結(jié)束符,用于標(biāo)識(shí)一個(gè)應(yīng)用層數(shù)據(jù)包的結(jié)束?;趫D4所示應(yīng)用層數(shù)據(jù)包結(jié)構(gòu),可以構(gòu)造相應(yīng)的請(qǐng)求包、確認(rèn)包、應(yīng)答包以執(zhí)行本發(fā)明所述數(shù)據(jù)傳輸方法。表2為本發(fā)明一較佳登錄請(qǐng)求包的字段組成表<table>tableseeoriginaldocumentpage18</column></row><table>表2表2所示登錄請(qǐng)求包可以用于發(fā)送方第一次向請(qǐng)求方發(fā)送隨機(jī)數(shù)rl和認(rèn)證信息。參見表2,隨機(jī)數(shù)rl和rl的可逆變換形式可以置于表2所示加密密碼字段中,并將標(biāo)志位字段置為表示該登錄請(qǐng)求包中攜帶有密碼信息;包類型字段置為請(qǐng)求包類型;功能號(hào)字段置為與登錄相應(yīng)的取值;發(fā)送方的認(rèn)證信息可以置于數(shù)據(jù)區(qū)中,如表2所示認(rèn)證密碼字段。<table>tableseeoriginaldocumentpage19</column></row><table>表2所示確認(rèn)包可以用于接收方向發(fā)送方返回針對(duì)某一請(qǐng)求包的確認(rèn)。參見表3,其請(qǐng)求流水號(hào)保持與相應(yīng)的請(qǐng)求包一致;包類型字段置為確認(rèn)包類型;功能號(hào)字段保持與相應(yīng)的請(qǐng)求包一致;返回碼字段攜帶確認(rèn)信息,可以設(shè)置該字段為0表示正確接收,該字段為其他值表示未正確接收,并可以通過不同的錯(cuò)誤號(hào)區(qū)分不同的錯(cuò)誤。表4為本發(fā)明一較佳應(yīng)答包的字段組成表:字段名稱類型長度描述業(yè)務(wù)包頭內(nèi)容請(qǐng)求流水號(hào)(SerialNo)INT41234,同請(qǐng)求包一致標(biāo)志位(Flag)Byte100001011協(xié)議版本號(hào)(Ver)BYTE1標(biāo)志協(xié)議的不同版本號(hào),默認(rèn)為o。終端唯一識(shí)別號(hào)(VIN)CHAR17終端唯一識(shí)別號(hào)包類型(PackageType)BYTE13,即應(yīng)答包功能號(hào)(FunctionNo)SHORT21000返回碼(RetumCode)SHORT2執(zhí)行結(jié)果數(shù)據(jù)包時(shí)間戳LONG41198223932數(shù)據(jù)段長度(DataLength)INT4數(shù)據(jù)段長度數(shù)據(jù)區(qū)內(nèi)容會(huì)話密碼(SessionPWD)U64864位會(huì)話密碼表4表4所示應(yīng)答包可以用于接收方向發(fā)送方返回針對(duì)某一登錄請(qǐng)求包的應(yīng)答。參見表4,其請(qǐng)求流水號(hào)保持與相應(yīng)的請(qǐng)求包一致;包類型字段置為應(yīng)答包類型;功能號(hào)字段保持與相應(yīng)的請(qǐng)求包一致;返回碼字段攜帶執(zhí)行結(jié)果,針對(duì)本例,可以是對(duì)發(fā)送方的認(rèn)證結(jié)果;接收方向發(fā)送方返回的用于本次通信的加密密碼信息可以置于數(shù)據(jù)區(qū)中,如表4所示會(huì)話密碼字段?;诒?表4所定義的應(yīng)用層數(shù)據(jù)包,可以實(shí)現(xiàn)發(fā)送方與接收方之間的認(rèn)證通信。通常,在認(rèn)證通信中,通信雙方中的被認(rèn)證方為客戶端,認(rèn)證方為服務(wù)器端。該認(rèn)證通信包括以下步驟20第1步客戶端建立UDP鏈接,根據(jù)表2,封裝登錄請(qǐng)求包,并通過UDP發(fā)送給服務(wù)器端,同時(shí)將所發(fā)送的數(shù)據(jù)包保存在數(shù)據(jù)緩沖區(qū)中。第2步服務(wù)器端接收到數(shù)據(jù)包后,封裝對(duì)應(yīng)于該登錄請(qǐng)求包的確認(rèn)包,發(fā)送給該客戶端,同時(shí)查詢?cè)摽蛻舳讼嚓P(guān)登錄信息的正確性后,封裝對(duì)應(yīng)于該登錄請(qǐng)求包的應(yīng)答包,發(fā)送給客戶端。第3步客戶端在收到確認(rèn)包后,刪除緩沖區(qū)該登錄請(qǐng)求包,如果在一定的時(shí)間內(nèi)沒有接收到該確認(rèn)包,則再次發(fā)送緩沖區(qū)中的登錄請(qǐng)求包,如果在發(fā)送一定次數(shù)后,還是沒有收到該確認(rèn)包,則認(rèn)為網(wǎng)絡(luò)不可用,需要重新連接。第4步客戶端收到登錄請(qǐng)求包的應(yīng)答包后,封裝確認(rèn)包,發(fā)送給服務(wù)器端,同時(shí)解析數(shù)據(jù)包并判斷應(yīng)答包中的返回碼,如果返回碼為0,則表示登錄成功,如果返回碼為其他,則執(zhí)行與該返回碼相應(yīng)的處理流程。在具體實(shí)施本發(fā)明技術(shù)方案時(shí),可以按照表5i殳置以下各種網(wǎng)絡(luò)中的重傳定時(shí)器長度和重傳次數(shù)上限<table>tableseeoriginaldocumentpage21</column></row><table><table>tableseeoriginaldocumentpage22</column></row><table>表6表6所示數(shù)據(jù)請(qǐng)求包可以用于受發(fā)送雙方之間進(jìn)行數(shù)據(jù)交互。參見表6,對(duì)于經(jīng)分包處理的數(shù)據(jù)包,可以使其請(qǐng)求流水號(hào)相同,并將總包號(hào)字段和當(dāng)前包編號(hào)字段置為相應(yīng)取值,以便于接收方進(jìn)行包的重組。表6中數(shù)據(jù)區(qū)的內(nèi)容可以是加密之后的數(shù)據(jù),此時(shí),需要將標(biāo)志位字段置為表示數(shù)據(jù)段已被加密的信息。收發(fā)雙方之間的普通數(shù)據(jù)交互流程可以按照以下步驟進(jìn)行22第1步客戶端建立UDP鏈接,根據(jù)表6,封裝數(shù)據(jù)請(qǐng)求包,并通過UDP發(fā)送給服務(wù)器端,同時(shí)將所發(fā)送的數(shù)據(jù)保存在數(shù)據(jù)緩沖區(qū)中。第2步服務(wù)器端接收到數(shù)據(jù)包后,封裝對(duì)應(yīng)于該數(shù)據(jù)請(qǐng)求包的確認(rèn)包,直接發(fā)送給該客戶端。第3步客戶端在收到確認(rèn)包后,刪除緩沖區(qū)該數(shù)據(jù)請(qǐng)求包,如果在一定的時(shí)間內(nèi)沒有接收到該確認(rèn)包,則再次發(fā)送緩沖區(qū)中的數(shù)據(jù)請(qǐng)求包,如果在發(fā)送一定次數(shù)后,還是沒有收到該確認(rèn)包,則認(rèn)為網(wǎng)絡(luò)不可用,需要重新連接。中攜帶校驗(yàn)信息,使得接收方能夠根據(jù)所述校驗(yàn)信息判斷數(shù)據(jù)接收的正確性;并且,通過在將該應(yīng)用層數(shù)據(jù)包攜帶于面向非連接的傳輸層協(xié)議數(shù)據(jù)包中發(fā)出之后啟動(dòng)重傳定時(shí)器,并在重傳定時(shí)器超時(shí)時(shí)尚未收到對(duì)應(yīng)于該應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包的情況下,重發(fā)該傳輸層協(xié)議數(shù)據(jù)包,使得傳輸層協(xié)議的不可靠性得到了很大的彌補(bǔ),獲得了較高的傳輸可靠性。并且,由于本發(fā)明所述應(yīng)用層數(shù)據(jù)包和確認(rèn)包是通過面向非連接的傳輸層協(xié)議數(shù)據(jù)包承載的,數(shù)據(jù)收發(fā)雙方之間無需建立連接,從而節(jié)省了許多用于信令交互、保持連接的通信資源,從而保證了較高的傳輸效率。本發(fā)明對(duì)應(yīng)于上述數(shù)據(jù)發(fā)送方法的數(shù)據(jù)接收方法在接收到攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包之后,通過計(jì)算該應(yīng)用層數(shù)據(jù)包的校驗(yàn)結(jié)果,并通過比較所述校驗(yàn)結(jié)果與所述校驗(yàn)信息是否相同來判斷所述應(yīng)用層數(shù)據(jù)包是否正確4妄收,在正確接收的情況下,向發(fā)送方返回對(duì)應(yīng)于所述應(yīng)用層凄t據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,使發(fā)送方確認(rèn)其發(fā)出的數(shù)據(jù)包已被正確接收;在未正確接收的情況下,向發(fā)送方返回對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,使發(fā)送方可以重發(fā)所述未正確接收的應(yīng)用層數(shù)據(jù)包,從而提高了數(shù)據(jù)傳輸?shù)目煽啃?。同樣地,由于本發(fā)明所述應(yīng)用層數(shù)據(jù)包和確認(rèn)包是通過面向非連接的傳輸層協(xié)議數(shù)據(jù)包承載的,數(shù)據(jù)收發(fā)雙方之間無需建立連接,從而節(jié)省了許多用于信令交互、保持連接的通23信資源,從而保證了較高的傳輸效率??梢姡景l(fā)明通過在應(yīng)用層引入校驗(yàn)機(jī)制和超時(shí)重傳機(jī)制,并將應(yīng)用層數(shù)據(jù)承栽于面向非連接的傳輸層協(xié)議,在保持較高傳輸效率的前提下,獲得了較高的數(shù)據(jù)傳輸可靠性。此外,為了提高數(shù)據(jù)傳輸?shù)陌踩?,本發(fā)明可以在應(yīng)用層對(duì)數(shù)據(jù)進(jìn)行加密,并將經(jīng)加密之后的數(shù)據(jù)承載于傳輸層協(xié)議數(shù)據(jù)包中進(jìn)行傳輸。并且,為了保證加密密碼的傳輸安全性,本發(fā)明在收發(fā)雙方之間交換密鑰時(shí)采取了由一方發(fā)送隨^L數(shù),另一方將加密密鑰以該隨^L數(shù)加密之后發(fā)回所述一方的方式,以及針對(duì)收發(fā)雙方每一次新建立的通信,在第一次數(shù)據(jù)傳輸所涉及的應(yīng)用層數(shù)據(jù)包中協(xié)商一次密碼的方式。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1、一種數(shù)據(jù)傳輸方法,其特征在于,包括A、發(fā)送方將攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包封裝到面向非連接的傳輸層協(xié)議數(shù)據(jù)包中發(fā)出,并將所述應(yīng)用層數(shù)據(jù)包存儲(chǔ)于緩沖區(qū)中,啟動(dòng)重傳定時(shí)器;B、接收方接收所述傳輸層協(xié)議數(shù)據(jù)包,從中獲取攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包,并根據(jù)所述校驗(yàn)信息判斷所接收的應(yīng)用層數(shù)據(jù)包是否正確,若正確,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包;若不正確,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包;C、若發(fā)送方接收到接收方返回的對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,或在所述重傳定時(shí)器超時(shí)時(shí)尚未接收到接收方返回的對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,則執(zhí)行步驟D,否則,執(zhí)行步驟E;D、發(fā)送方重傳緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包,重新啟動(dòng)重傳定時(shí)器,并返回步驟C;E、發(fā)送方將緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包刪除。2、一種數(shù)據(jù)發(fā)送方法,其特征在于,包括Al、發(fā)送方將攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包封裝到面向非連接的傳輸層協(xié)議數(shù)據(jù)包中發(fā)出,并將所述應(yīng)用層數(shù)據(jù)包存儲(chǔ)于緩沖區(qū)中,啟動(dòng)重傳定時(shí)器;Bl、若發(fā)送方接收到接收方返回的對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,或在所述重傳定時(shí)器超時(shí)時(shí)尚未接收到對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,則執(zhí)行步驟Cl,否則,執(zhí)行步驟D1;Cl、發(fā)送方重傳緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包,重新啟動(dòng)重傳定時(shí)器,并返回步驟B1;Dl、發(fā)送方將緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包刪除。3、根據(jù)權(quán)利要求2所述的方法,其特征在于,該方法進(jìn)一步包括預(yù)先設(shè)置重傳次數(shù)上限;在執(zhí)行步驟Cl之前進(jìn)一步包括發(fā)送方判斷發(fā)出所述應(yīng)用層數(shù)據(jù)包的次數(shù)是否已超過所述重傳次數(shù)上限,若未超過,則執(zhí)行步驟Cl,否則,結(jié)束與接收方之間的通4言。4、根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述步驟A1進(jìn)一步包括當(dāng)需要對(duì)方應(yīng)答所述應(yīng)用層數(shù)據(jù)包時(shí),發(fā)送方將表示需要應(yīng)答的信息攜帶于所述應(yīng)用層數(shù)據(jù)包中;當(dāng)發(fā)送方接收到接收方返回的對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的應(yīng)答包時(shí),該方法進(jìn)一步包括發(fā)送方發(fā)出對(duì)應(yīng)于所述應(yīng)答包的確認(rèn)包。5、根據(jù)權(quán)利要求4所述的方法,其特征在于,當(dāng)所述應(yīng)用層數(shù)據(jù)包為收發(fā)雙方之間的第一次數(shù)據(jù)傳輸時(shí),所述步驟Al進(jìn)一步包括發(fā)送方隨^L生成第一隨機(jī)數(shù),將第一隨機(jī)數(shù)或第一隨機(jī)數(shù)的可逆變換形式攜帶于所述應(yīng)用層數(shù)據(jù)包中,并將表示該應(yīng)用層數(shù)據(jù)包攜帶有隨機(jī)數(shù)的信息攜帶于所述應(yīng)用層數(shù)據(jù)包中;當(dāng)發(fā)送方接收到接收方返回的對(duì)應(yīng)于所述第一次數(shù)據(jù)傳輸?shù)膽?yīng)用層數(shù)據(jù)包的應(yīng)答包時(shí),進(jìn)一步包括從所述應(yīng)答包中獲取發(fā)送方使用所述第一隨機(jī)數(shù)加密后的第二隨機(jī)數(shù),以第一隨機(jī)數(shù)對(duì)所述加密后的第二隨機(jī)數(shù)解密得到第二隨機(jī)數(shù),將所述第二隨機(jī)數(shù)作為密碼存儲(chǔ);在發(fā)放方發(fā)送除第一次數(shù)據(jù)傳輸之外的應(yīng)用層數(shù)據(jù)包時(shí),所述步驟Al進(jìn)一步包括以所述存儲(chǔ)的密碼對(duì)所述應(yīng)用層數(shù)據(jù)包中攜帶的數(shù)據(jù)進(jìn)行加密,并將表示所述應(yīng)用層數(shù)據(jù)包中的數(shù)據(jù)已被加密的信息攜帶于所述應(yīng)用層數(shù)據(jù)包中。6、根據(jù)權(quán)利要求5所述的方法,其特征在于,當(dāng)所述應(yīng)用層數(shù)據(jù)包為收發(fā)雙方之間的第一次數(shù)據(jù)傳輸時(shí),所述步驟Al進(jìn)一步包括發(fā)送方將供接收方對(duì)自身進(jìn)行認(rèn)證的信息攜帶于所述應(yīng)用層數(shù)據(jù)包中;當(dāng)發(fā)送方接收到接收方返回的對(duì)應(yīng)于所述第一次數(shù)據(jù)傳輸?shù)膽?yīng)用層數(shù)據(jù)包的應(yīng)答包時(shí),進(jìn)一步包括從所述應(yīng)答包中獲取接收方對(duì)自身的認(rèn)證結(jié)果。7、根據(jù)權(quán)利要求2或3所述的方法,其特征在于,該方法進(jìn)一步包括預(yù)先設(shè)置應(yīng)用層數(shù)據(jù)包長度上限;所述步驟Al進(jìn)一步包括當(dāng)應(yīng)用層數(shù)據(jù)包的長度超過所述應(yīng)用層數(shù)據(jù)包長度上限時(shí),發(fā)送方按照所述應(yīng)用層數(shù)據(jù)包長度上限對(duì)所述應(yīng)用層數(shù)據(jù)包進(jìn)行分包處理得到多個(gè)新的應(yīng)用層數(shù)據(jù)包;將所述多個(gè)新的應(yīng)用層數(shù)據(jù)包單獨(dú)封裝到每一個(gè)傳輸層協(xié)議數(shù)據(jù)包中,并將相同的流水號(hào)、表示所述應(yīng)用層數(shù)據(jù)包已被分包處理的信息、總分包個(gè)數(shù)、當(dāng)前包編號(hào)攜帶于所述每一個(gè)新的應(yīng)用層數(shù)據(jù)包中。8、一種數(shù)據(jù)接收方法,其特征在于,包括a、接收方接收來自于發(fā)送方的面向非連接的傳輸層協(xié)議數(shù)據(jù)包,從中獲取攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包;b、接收方計(jì)算所述應(yīng)用層數(shù)據(jù)包的校驗(yàn)結(jié)果,比較所述校驗(yàn)結(jié)果與所述校驗(yàn)信息是否相同,若校驗(yàn)結(jié)果與校驗(yàn)信息相同,判定應(yīng)用層數(shù)據(jù)包正確接收,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包;若校驗(yàn)結(jié)果與4交驗(yàn)信息不相同,判定應(yīng)用層數(shù)據(jù)包未正確接收,發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包。9、根據(jù)權(quán)利要求8所述的方法,其特征在于,在步驟a之后進(jìn)一步包括c、接收方判斷所述應(yīng)用層數(shù)據(jù)包中是否攜帶有表示需要應(yīng)答的信息,若攜帶有,則發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的應(yīng)答包,并將所述應(yīng)答包存儲(chǔ)于緩沖區(qū)中,啟動(dòng)重傳定時(shí)器;d、若在所述重傳定時(shí)器超時(shí)時(shí)尚未接收到對(duì)應(yīng)于所述應(yīng)答包的確認(rèn)包,則執(zhí)行步驟e,否則,接收方將緩沖區(qū)中的該應(yīng)答包刪除;e、接收方重傳緩沖區(qū)中的該應(yīng)答包,并重新啟動(dòng)重傳定時(shí)器。10、根據(jù)權(quán)利要求9所述的方法,其特征在于,該方法進(jìn)一步包括預(yù)先設(shè)置重傳次數(shù)上限;在執(zhí)行步驟e之前進(jìn)一步包括判斷發(fā)出所述應(yīng)答包的次數(shù)是否已超過所述重傳次數(shù)上限,若未超過,則返回步驟e,否則,結(jié)束與發(fā)送方之間的通信。11、根據(jù)權(quán)利要求IO所述的方法,其特征在于,在步驟a之后進(jìn)一步包括接收方判斷所述獲取到的應(yīng)用層數(shù)據(jù)包中是否攜帶有表示該應(yīng)用層數(shù)據(jù)包攜帶有隨機(jī)數(shù)的信息,如果是,則從所述應(yīng)用層數(shù)據(jù)包中獲取第一隨機(jī)數(shù),或從所述應(yīng)用層數(shù)據(jù)包中獲取第一隨機(jī)數(shù)的可逆變換形式,并對(duì)所述第一隨機(jī)數(shù)的可逆變換形式進(jìn)行逆變換得到第一隨機(jī)數(shù);在步驟c發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的應(yīng)答包之前,進(jìn)一步包括接收方隨機(jī)生成第二隨機(jī)數(shù),將所述第二隨機(jī)數(shù)存儲(chǔ)為密碼,將由第一隨機(jī)數(shù)加密后的第二隨機(jī)數(shù)攜帶于所述應(yīng)答包中;在接收方接收到來自于發(fā)送方的除第一次數(shù)據(jù)傳輸之外的應(yīng)用層數(shù)據(jù)包時(shí),該方法進(jìn)一步包括接收方以所述存儲(chǔ)的密碼對(duì)所述應(yīng)用層數(shù)據(jù)包中攜帶的數(shù)據(jù)解密。12、根據(jù)權(quán)利要求11所述的方法,其特征在于,在接收方判定所述獲取到的應(yīng)用層數(shù)據(jù)包中攜帶有表示該應(yīng)用層數(shù)據(jù)包攜帶有隨機(jī)數(shù)的信息之后,進(jìn)一在步驟c發(fā)出對(duì)應(yīng)于所述應(yīng)用層數(shù)據(jù)包的應(yīng)答包之前,進(jìn)一步包括接收方根據(jù)所述用于對(duì)發(fā)送方進(jìn)行認(rèn)證的信息對(duì)發(fā)送方進(jìn)行認(rèn)證,并將認(rèn)證結(jié)果攜帶于所述應(yīng)答包中。13、根據(jù)權(quán)利要求10所述的方法,其特征在于,在步驟a之后進(jìn)一步包括接收方判斷所述應(yīng)用層數(shù)據(jù)包中是否攜帶有表示所述應(yīng)用層數(shù)據(jù)包已被分包處理的信息,若攜帶有,則從所述應(yīng)用層數(shù)據(jù)包中獲取流水號(hào)、總分包個(gè)數(shù)和當(dāng)前包編號(hào),將流水號(hào)相同的應(yīng)用層數(shù)據(jù)包按照其對(duì)應(yīng)的當(dāng)前包編號(hào)組合成完整的應(yīng)用層數(shù)據(jù)包。全文摘要本發(fā)明公開了一種數(shù)據(jù)傳輸方法,包括發(fā)送方將攜帶有校驗(yàn)信息的應(yīng)用層數(shù)據(jù)包封裝到傳輸層協(xié)議數(shù)據(jù)包中發(fā)出,并緩存該應(yīng)用層數(shù)據(jù)包、啟動(dòng)重傳定時(shí)器;接收方根據(jù)校驗(yàn)信息判斷應(yīng)用層數(shù)據(jù)包是否正確,若正確,發(fā)出表示正確接收的確認(rèn)包;否則發(fā)出表示未正確接收的確認(rèn)包;若發(fā)送方收到表示未正確接收的確認(rèn)包,或在重傳定時(shí)器超時(shí)時(shí)尚未收到表示正確接收的確認(rèn)包,則重傳緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包,重新啟動(dòng)重傳定時(shí)器;否則發(fā)送方將緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包刪除。本發(fā)明還公開了一種數(shù)據(jù)發(fā)送方法和一種數(shù)據(jù)接收方法。應(yīng)用本發(fā)明能夠在保持較高傳輸效率的前提下,獲得較高的數(shù)據(jù)傳輸可靠性。文檔編號(hào)H04L29/06GK101645883SQ20081014604公開日2010年2月10日申請(qǐng)日期2008年8月8日優(yōu)先權(quán)日2008年8月8日發(fā)明者吳建鋒,洲阮申請(qǐng)人:比亞迪股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
潮安县| 平利县| 枣庄市| 安顺市| 车致| 邛崃市| 武威市| 会昌县| 安丘市| 阿瓦提县| 蒙自县| 通许县| 海阳市| 山东省| 东安县| 浦东新区| 德安县| 蒙阴县| 哈密市| 万盛区| 安平县| 黄石市| 衡南县| 金平| 集安市| 新丰县| 东辽县| 崇信县| 晋城| 乌拉特后旗| 鹤岗市| 丹凤县| 五台县| 买车| 大宁县| 江达县| 漳州市| 宁晋县| 湾仔区| 安平县| 衡山县|