專利名稱::數(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è)備和基于計算的服務(wù)依賴于通信系統(tǒng)在彼此之間傳送必要的信息。所述的通信系統(tǒng)通常由多個獨(dú)立的通信網(wǎng)絡(luò)構(gòu)成,其中包括有線網(wǎng)纟備和無線網(wǎng)纟各。用戶數(shù)據(jù)報協(xié)議(UDP)是一種面向非連接的網(wǎng)絡(luò)傳輸協(xié)議,處于網(wǎng)絡(luò)分層模型中的傳輸層,它不保證傳輸可靠性。在網(wǎng)絡(luò)不穩(wěn)定的情況下,將應(yīng)用層數(shù)據(jù)承載于UDP包中進(jìn)行傳輸可能造成數(shù)據(jù)包丟失,可見,UDP無法滿足一些對數(shù)據(jù)傳輸要求較高的應(yīng)用的需要。傳輸控制協(xié)議(TCP)同樣處于傳輸層,它是一種面向連接的網(wǎng)絡(luò)傳輸協(xié)議,可供對可靠性要求較高的應(yīng)用層協(xié)議選擇,用以承載其數(shù)據(jù)包?;赥CP進(jìn)行數(shù)據(jù)傳輸時需要首先在收發(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īng)用層數(shù)據(jù)包封裝到面向非連接的傳輸層協(xié)議數(shù)據(jù)包中發(fā)出,并將所述應(yīng)用層數(shù)據(jù)包存儲于緩沖區(qū)中,啟動重傳定時器;B、接收方接收所述傳輸層協(xié)議數(shù)據(jù)包,從中獲取攜帶有校驗信息的應(yīng)用層數(shù)據(jù)包,并根據(jù)所述校驗信息判斷所接收的應(yīng)用層數(shù)據(jù)包是否正確,若正確,發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包;若不正確,發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確才妄收的確認(rèn)包;C、若發(fā)送方接收到接收方返回的對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,或在所述重傳定時器超時時尚未接收到接收方返回的對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,則執(zhí)行步驟D,否則,執(zhí)行步驟E;D、發(fā)送方重傳緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包,重新啟動重傳定時器,并返回步驟C;E、發(fā)送方將緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包刪除。一種數(shù)據(jù)發(fā)送方法,包括Al、發(fā)送方將攜帶有校驗信息的應(yīng)用層數(shù)據(jù)包封裝到面向非連接的傳輸層協(xié)議數(shù)據(jù)包中發(fā)出,并將所述應(yīng)用層數(shù)據(jù)包存儲于緩沖區(qū)中,啟動重傳定時器;Bl、若發(fā)送方接收到接收方返回的對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示7應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,或在所述重傳定時器超時時尚未接收到對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,則執(zhí)行步驟C1,否則,執(zhí)行步驟D1;Cl、發(fā)送方重傳緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包,重新啟動重傳定時器,并返回步驟Bl;Dl、發(fā)送方將緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包刪除。一種數(shù)據(jù)接收方法,包括a、接收方接收來自于發(fā)送方的面向非連接的傳輸層協(xié)議數(shù)據(jù)包,從中獲取攜帶有校驗信息的應(yīng)用層數(shù)據(jù)包;b、接收方計算所述應(yīng)用層數(shù)據(jù)包的校驗結(jié)果,比較所述校驗結(jié)果與所述校驗信息是否相同,若校驗結(jié)果與校驗信息相同,判定應(yīng)用層數(shù)據(jù)包正確接收,發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包;若校驗結(jié)果與校驗信息不相同,判定應(yīng)用層數(shù)據(jù)包未正確接收,發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包。本發(fā)明對應(yīng)于上述數(shù)據(jù)發(fā)送方法的數(shù)據(jù)接收方法在接收到攜帶有校驗信息的應(yīng)用層數(shù)據(jù)包之后,通過計算該應(yīng)用層數(shù)據(jù)包的校驗結(jié)果,并通過比較所述校驗結(jié)果與所述校驗信息是否相同來判斷所述應(yīng)用層數(shù)據(jù)包是否正確接收,在正確接收的情況下,向發(fā)送方返回對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,使發(fā)送方確認(rèn)其發(fā)出的數(shù)據(jù)包已被正確接收;在未正確接收的情況下,向發(fā)送方返回對應(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)用層引入校驗機(jī)制和超時重傳機(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í)施例,對本發(fā)明作進(jìn)一步詳細(xì)說明。本發(fā)明的主要思想是通過在應(yīng)用層中引入校驗機(jī)制和超時重傳機(jī)制,并將應(yīng)用層數(shù)據(jù)承載于面向非連接的傳輸層協(xié)議數(shù)據(jù)包中進(jìn)行傳輸,從而在保持較高傳輸效率的前提下,獲得了較高的數(shù)據(jù)傳輸可靠性。圖1為本發(fā)明實(shí)施例中數(shù)據(jù)傳輸方法的流程示意圖。參見圖1,該方法包括步驟101:發(fā)送方將攜帶有校驗信息的應(yīng)用層數(shù)據(jù)包封裝到面向非連接的傳輸層協(xié)議數(shù)據(jù)包中發(fā)出,并將所述應(yīng)用層數(shù)據(jù)包存儲于緩沖區(qū)中,啟動重傳定時器;步驟102:接收方接收所述傳輸層協(xié)議數(shù)據(jù)包,從中獲取攜帶有校驗信息的應(yīng)用層數(shù)據(jù)包,并根據(jù)所接收的校驗信息判斷所述應(yīng)用層'數(shù)據(jù)包是否正確,若正確,發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包;若不正確,發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確4妻收的確i人包;步驟103:若發(fā)送方接收到接收方返回的對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,或在所述重傳定時器超時時尚未接收到接收方返回的對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,則執(zhí)行步驟104,否則,執(zhí)行步驟105;步驟104:發(fā)送方重傳緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包,重新啟動重傳定時器,并返回步驟103;步驟105:發(fā)送方將緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包刪除。至此,結(jié)束本發(fā)明數(shù)據(jù)傳輸方法流程。發(fā)送方與接收方之間的每一個待發(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ù)信息時,該方法包括步驟201:判斷本次數(shù)據(jù)發(fā)送是否為收發(fā)雙方之間的第一次數(shù)據(jù)傳輸,如果是,執(zhí)行步驟202,否則,跳到步驟206。為保證收發(fā)雙方之間的數(shù)據(jù)傳輸安全性、以及收發(fā)雙方之間對對方進(jìn)行身份認(rèn)證,在第一次數(shù)據(jù)傳輸?shù)倪^程中,收發(fā)雙方之間可以進(jìn)行密鑰協(xié)商以及身份認(rèn)證等。本步驟所述發(fā)送方與接收方之間的第一次數(shù)據(jù)傳輸是針對每一次在收發(fā)雙方之間建立的通信而言的,即收發(fā)雙方之間建立一個通信,進(jìn)行了若干次數(shù)據(jù)交互,停止雙方之間的通信后,若下次再需要建立通信,則被認(rèn)為是另外一次通信。步驟202:判斷是否需要對數(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ù)先約定用于對rl進(jìn)行可逆變換的變換算法,接收方收到發(fā)送方攜帶于應(yīng)用層數(shù)據(jù)包中的rl的可逆變換形式后,可以4艮據(jù)所述約定的變換算法對rl的可逆變換形式進(jìn)行逆變換,從而得到rl。步驟204:判斷接收方是否需要對自身進(jìn)行認(rèn)證才能建立通信,如果是,執(zhí)行步驟205,否則,跳到步驟206。本步驟所述認(rèn)證機(jī)制適用于服務(wù)器/客戶端模式,服務(wù)器端存儲有客戶端的認(rèn)證信息,在客戶端向服務(wù)器請求進(jìn)行通信之前,服務(wù)器需要對客戶端進(jìn)行認(rèn)證,因此,客戶端需要將供服務(wù)器對自身認(rèn)證的信息攜帶于應(yīng)用層數(shù)據(jù)包中發(fā)送給服務(wù)器。步驟205:將供接收方認(rèn)證自身的信息攜帶于應(yīng)用層數(shù)據(jù)包中。本步驟中,為了加強(qiáng)對認(rèn)證信息的保護(hù),可以用步驟203所述隨機(jī)數(shù)rl,對供接收方認(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)計得到的數(shù)據(jù)包長度與丟包概率之間的對應(yīng)關(guān)系進(jìn)行合理的設(shè)置。例如表1示出了統(tǒng)計得到的GPRS網(wǎng)絡(luò)中不同長度的數(shù)據(jù)包的丟包概率<table>tableseeoriginaldocumentpage11</column></row><table>表1表l中,數(shù)據(jù)包長度以字節(jié)計算。步驟207:按照所設(shè)置的應(yīng)用層數(shù)據(jù)包長度上限對應(yīng)用層數(shù)據(jù)包進(jìn)行分包處理得到多個新的應(yīng)用層凝:據(jù)包;將這多個新的應(yīng)用層數(shù)據(jù)包單獨(dú)封裝到每一個傳輸層協(xié)議數(shù)據(jù)包中,并將相同的流水號、表示該應(yīng)用層數(shù)據(jù)包已被分包處理的信息、總分包個數(shù)、當(dāng)前包編號攜帶于每一個新的應(yīng)用層數(shù)據(jù)包中。本步驟所述流水號表示當(dāng)前應(yīng)用層數(shù)據(jù)包的編號,該編號從1開始累加、溢出后再從1開始計數(shù)。由同一個應(yīng)用層數(shù)據(jù)包分包處理得到的多個新的應(yīng)用層^t據(jù)包具有相同的流水號,利用所述相同的流水號,以及每個應(yīng)用層萄:據(jù)包中攜帶的總分包個數(shù)和當(dāng)前包編號,使得接收方在收到這些數(shù)據(jù)包之后,可以很方便地進(jìn)行重新組裝,得到分包之前的應(yīng)用層數(shù)據(jù)包。步驟208:判斷本地是否存儲有用于對本次通信進(jìn)行加密的密碼,如果有,執(zhí)行步驟209,否則,跳到步驟210。如步驟201所述,若需要對所傳輸?shù)臄?shù)據(jù)進(jìn)行加密,收發(fā)雙方將在第一次數(shù)據(jù)傳輸過程中進(jìn)行密鑰協(xié)商,協(xié)商好的密鑰由收發(fā)雙方各自保存,用于后續(xù)的凄史據(jù)加密。由于本流程是從發(fā)送方的角度進(jìn)行描述,關(guān)于密碼協(xié)商、密碼存儲將在后面的步驟中涉及。步驟209:以存儲的密碼對應(yīng)用層數(shù)據(jù)包中攜帶的數(shù)據(jù)進(jìn)行加密,并將表示該應(yīng)用層數(shù)據(jù)包中的數(shù)據(jù)已被力。密的信息攜帶于該應(yīng)用層數(shù)據(jù)包中。步驟210:判斷是否需要對方應(yīng)答本應(yīng)用層數(shù)據(jù)包,如果需要,執(zhí)行步驟211,否則,跳到步驟212。發(fā)送方發(fā)給接收方的應(yīng)用層數(shù)據(jù)包有的是需要應(yīng)答的,例如攜帶有認(rèn)證信息的數(shù)據(jù)包,需要對方進(jìn)行認(rèn)證之后,返回是否認(rèn)證通過的應(yīng)答包,此時,需要發(fā)送方在應(yīng)用層數(shù)據(jù)包中攜帶表示需要對方應(yīng)答的信息。步驟211:將表示需要應(yīng)答的信息攜帶于該應(yīng)用層數(shù)據(jù)包中。步驟212:將應(yīng)用層數(shù)據(jù)包的校驗信息攜帶于該應(yīng)用層數(shù)據(jù)包中。本步驟所述校驗信息是對從應(yīng)用層數(shù)據(jù)包的包頭至應(yīng)用層數(shù)據(jù)包的數(shù)據(jù)段末尾的數(shù)據(jù)進(jìn)行校驗得到的校驗信息,可以采用CRC校驗等方式進(jìn)行校驗。步驟213:將應(yīng)用層數(shù)據(jù)包封裝到面向非連接的傳輸層協(xié)議數(shù)據(jù)包中。步驟214:將該傳輸層協(xié)議數(shù)據(jù)包發(fā)出,并將所述應(yīng)用層數(shù)據(jù)包存儲于緩沖區(qū)中,啟動重傳定時器。步驟215:判斷是否在重傳定時器超時時尚未接收到對應(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ù)包需要對方的應(yīng)答,則判斷是否在重傳定時器超時時尚未收到對應(yīng)于該應(yīng)用層數(shù)據(jù)包的應(yīng)答包,如果是,執(zhí)行步驟216,否則,執(zhí)行步驟220。步驟220:向發(fā)送方發(fā)出對應(yīng)于該應(yīng)答包的確認(rèn)包,并從該應(yīng)答包中獲取對方的應(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對該加密后的第二隨機(jī)數(shù)解密,即可得到用于后續(xù)數(shù)據(jù)加密的密碼,此時,需要將所述第二隨機(jī)數(shù)作為密碼存儲;如果在步驟205將供接收方認(rèn)證自身的信息攜帶于應(yīng)用層數(shù)據(jù)包中發(fā)給了接收方,本次收到的應(yīng)答包中,將攜帶有對方對自身的認(rèn)證結(jié)果,發(fā)送方可以根據(jù)該認(rèn)證結(jié)果判斷對方對自身的認(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ā)送方所請求內(nèi)容的不同將有所不同。至此,完成一次數(shù)據(jù)傳輸過程中,數(shù)據(jù)發(fā)送方所執(zhí)行的流程。可以按照上述方法發(fā)送下一個應(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īng)用層數(shù)據(jù)包。步驟302:判斷本地是否存儲有用于對本次通信進(jìn)行加密的密碼,如果有,執(zhí)行步驟303,否則,跳到步驟307。步驟303:以存儲的密碼對應(yīng)用層數(shù)據(jù)包中攜帶的數(shù)據(jù)解密。步驟304:計算應(yīng)用層數(shù)據(jù)包的校驗結(jié)果,比較所述校驗結(jié)果與應(yīng)用層數(shù)據(jù)包中所攜帶的校驗信息是否相同,若校驗結(jié)果與校驗信息相同,執(zhí)行步驟305;若校驗結(jié)果與校驗信息不相同,跳到步驟306。步驟305:在校驗結(jié)果與校驗信息相同時,判定應(yīng)用層數(shù)據(jù)包正確接收,發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,跳到步驟315。步驟306:在校驗結(jié)果與校驗信息不相同時,判定應(yīng)用層數(shù)據(jù)包未正確接收,發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,跳到步驟315。步驟307:計算應(yīng)用層數(shù)據(jù)包的校驗結(jié)果,比較所述校驗結(jié)果與應(yīng)用層數(shù)據(jù)包中所攜帶的校驗信息是否相同,若校驗結(jié)果與校驗信息相同,執(zhí)行步驟308;若校驗結(jié)果與校驗信息不相同,跳到步驟309。步驟308:在校驗結(jié)果與校驗信息相同.時,判定應(yīng)用層數(shù)據(jù)包正確接收,發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,跳到步驟310。步驟309:在校驗結(jié)果與校驗信息不相同時,判定應(yīng)用層數(shù)據(jù)包未正確接收,發(fā)出對應(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ù)的可逆變換形式,并對所述第一隨機(jī)數(shù)的可逆變換形式進(jìn)行逆變換得到第一隨機(jī)數(shù)。如步驟203所述,可以預(yù)先約定用于對rl進(jìn)行可逆變換的變換算法,如此,若在本步驟中收到rl的可逆變換形式,就可以根據(jù)該約定的變換算法對rl的可逆變換形式進(jìn)行逆變換,從而得到rl。步驟312:判斷應(yīng)用層數(shù)據(jù)包中是否攜帶有用于對發(fā)送方進(jìn)行認(rèn)證的信息,如果攜帶有,執(zhí)行步驟313,否則,跳到步驟315。本步驟中,所獲取到的信息可能是經(jīng)rl加密后的信息,可以以rl對所述信息進(jìn)行解密,得到用于對對方進(jìn)行認(rèn)證的信息。步驟314:對發(fā)送方進(jìn)行認(rèn)證,得到認(rèn)證結(jié)果。本步驟中,可以根據(jù)自身預(yù)先保存的對方的認(rèn)證信息,結(jié)合對方本次發(fā)送過來的認(rèn)證信息對對方進(jìn)行認(rèn)證。步驟315:判斷應(yīng)用層數(shù)據(jù)包中是否攜帶有表示需要應(yīng)答的信息,若攜帶有,執(zhí)行步驟316,否則,跳到步驟320。步驟316:發(fā)出對應(yīng)于應(yīng)用層數(shù)據(jù)包的應(yīng)答包,并將所述應(yīng)答包存儲于緩沖區(qū)中,啟動重傳定時器。本步驟中,所發(fā)出的應(yīng)答包中攜帶的內(nèi)容與本次所接收到的對方的應(yīng)用層數(shù)據(jù)包有關(guān),在發(fā)送應(yīng)答包之前可以判斷本次是否收到的對方發(fā)送的隨機(jī)數(shù)rl,若收到,可以隨機(jī)生成第二隨機(jī)數(shù)(以下記為r2),將r2存儲為密碼,并將r2攜帶于該應(yīng)答包中;本次是否對對方進(jìn)行了-險證,若進(jìn)行了驗證,將驗證結(jié)果攜帶于該應(yīng)答包中,等等。以上只是舉例說明,在實(shí)際應(yīng)用中,發(fā)送方與接收方之間可能進(jìn)行身份注銷、修改認(rèn)證信息或其他控制等,這些都需要向接收方發(fā)送相應(yīng)的應(yīng)答包。步驟317:判斷是否在重傳定時器超時時尚未收到對應(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í)際上在校驗正確之后就可以執(zhí)行本步驟所述判斷。可見,本步驟與上述步驟310~步驟319之間沒有絕對的先后次序關(guān)系,只是為了便于流程描述,而將本步驟的說明置于步驟310步驟319之后。步驟321:從應(yīng)用層數(shù)據(jù)包中獲取流水號、總分包個數(shù)和當(dāng)前包編號,將流水號相同的應(yīng)用層數(shù)據(jù)包按照其對應(yīng)的當(dāng)前包編號組合成完整的應(yīng)用層數(shù)據(jù)包。至此,完成一次數(shù)據(jù)傳輸過程中,數(shù)據(jù)接收方所執(zhí)行的流程??梢园凑丈鲜龇椒ń邮障乱粋€應(yīng)層數(shù)據(jù)包,直至接收完所有待發(fā)送數(shù)據(jù)。以上結(jié)合附圖對本發(fā)明數(shù)據(jù)傳輸方法、數(shù)據(jù)發(fā)送方法和數(shù)據(jù)接收方法進(jìn)行了詳細(xì)說明,下面通過一個具體示例進(jìn)一步詳細(xì)說明本發(fā)明的具體實(shí)施方式。對應(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)識一個應(yīng)用層數(shù)據(jù)包的開始。b)數(shù)據(jù)包長度表示該應(yīng)用層數(shù)據(jù)包從包頭到包尾的總長度。2)業(yè)務(wù)包頭包括請求流水號字段、標(biāo)志位字段、協(xié)議版本號字段、終端唯一識別號字段、包類型字段、功能號字段、數(shù)據(jù)包時間戳字段和數(shù)據(jù)區(qū)長度字段等,以及可選的加密密碼字段、總包號字段、當(dāng)前包號字段和返回碼字段等。其中c)請求流水號即步驟207所述流水號,表示當(dāng)前數(shù)據(jù)包的編號,該編號從1開始累加、溢出后再從1開始計數(shù);對應(yīng)于某應(yīng)用層數(shù)據(jù)包的確認(rèn)包和應(yīng)答包中,請求流水號字段的取值與該應(yīng)用層數(shù)據(jù)包請求流水號字段的取值相同;由同一應(yīng)用層數(shù)據(jù)包經(jīng)分包處理后得到的多個包的請求流水號相同,以便接收端組裝得到分包處理之前的應(yīng)用層數(shù)據(jù)包。d)標(biāo)志位用于攜帶標(biāo)志信息,例如表示該應(yīng)用層數(shù)據(jù)包中是否攜帶有密碼信息、數(shù)據(jù)段是否被加密、是否進(jìn)行了分包處理、是否需要對方應(yīng)答、是否有返回碼、是否對數(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)志位字段置為攜帶有密碼信息時,在加密密碼字段攜帶密碼信息。f)總包號表示分包處理得到的總分包個數(shù),當(dāng)前包號表示當(dāng)前包在分包處理得到的包中所處的編號;總包號字段和當(dāng)前包號字段與標(biāo)志位字段結(jié)合使用,即當(dāng)標(biāo)志位字段置為該包進(jìn)行了分包處理時,在總包號字段和當(dāng)前包號字段攜帶總包號信息和當(dāng)前包號信息。g)協(xié)議版本號標(biāo)志協(xié)議的不同版本號,可以默認(rèn)設(shè)置為O。h)終端唯一識別號為用于區(qū)別各個終端的唯一標(biāo)識符。i)包類型,對應(yīng)于本發(fā)明有三種類型請求包、確認(rèn)包和應(yīng)答包。j)功能號用于表示當(dāng)前應(yīng)用層數(shù)據(jù)包用于執(zhí)行什么操作。例如用于登錄、注銷、修改密碼、數(shù)據(jù)傳輸、控制等。k)返回碼用于攜帶相應(yīng)應(yīng)用層數(shù)據(jù)包的執(zhí)行結(jié)果,與標(biāo)志位結(jié)合使用。例如當(dāng)接收到一個應(yīng)用層數(shù)據(jù)包,校驗不正確時,可以在針對該應(yīng)用層數(shù)據(jù)包的確認(rèn)包的返回碼字段攜帶表示應(yīng)用層數(shù)據(jù)包未正確接收的信息。1)數(shù)據(jù)包時間戳表示當(dāng)前數(shù)據(jù)包的打包時間。17m)數(shù)據(jù)區(qū)長度表示應(yīng)用層數(shù)據(jù)包中數(shù)據(jù)段的數(shù)據(jù)長度。3)數(shù)據(jù)區(qū)即數(shù)據(jù)段,是可選字段,用于存放數(shù)據(jù)內(nèi)容,發(fā)送方發(fā)送給接收方的供接收方對發(fā)送方進(jìn)行認(rèn)證的信息也可以置于數(shù)據(jù)段中發(fā)送。4)包尾包括校驗字段和結(jié)束標(biāo)志字段o)校驗字段用于攜帶應(yīng)用層數(shù)據(jù)包的校驗信息,所述校驗信息是從應(yīng)用層數(shù)據(jù)包的包頭至應(yīng)用層數(shù)據(jù)包的數(shù)據(jù)段末尾的數(shù)據(jù)進(jìn)行校-驗得到的信息,可以采用目前最常用的CRC校驗。p)結(jié)束標(biāo)志為數(shù)據(jù)包結(jié)束符,用于標(biāo)識一個應(yīng)用層數(shù)據(jù)包的結(jié)束。基于圖4所示應(yīng)用層數(shù)據(jù)包結(jié)構(gòu),可以構(gòu)造相應(yīng)的請求包、確認(rèn)包、應(yīng)答包以執(zhí)行本發(fā)明所述數(shù)據(jù)傳輸方法。表2為本發(fā)明一較佳登錄請求包的字段組成表<table>tableseeoriginaldocumentpage18</column></row><table>表2表2所示登錄請求包可以用于發(fā)送方第一次向請求方發(fā)送隨機(jī)數(shù)rl和認(rèn)證信息。參見表2,隨機(jī)數(shù)rl和rl的可逆變換形式可以置于表2所示加密密碼字段中,并將標(biāo)志位字段置為表示該登錄請求包中攜帶有密碼信息;包類型字段置為請求包類型;功能號字段置為與登錄相應(yīng)的取值;發(fā)送方的認(rèn)證信息可以置于數(shù)據(jù)區(qū)中,如表2所示認(rèn)證密碼字段。<table>tableseeoriginaldocumentpage19</column></row><table>表2所示確認(rèn)包可以用于接收方向發(fā)送方返回針對某一請求包的確認(rèn)。參見表3,其請求流水號保持與相應(yīng)的請求包一致;包類型字段置為確認(rèn)包類型;功能號字段保持與相應(yīng)的請求包一致;返回碼字段攜帶確認(rèn)信息,可以設(shè)置該字段為0表示正確接收,該字段為其他值表示未正確接收,并可以通過不同的錯誤號區(qū)分不同的錯誤。表4為本發(fā)明一較佳應(yīng)答包的字段組成表:字段名稱類型長度描述業(yè)務(wù)包頭內(nèi)容請求流水號(SerialNo)INT41234,同請求包一致標(biāo)志位(Flag)Byte100001011協(xié)議版本號(Ver)BYTE1標(biāo)志協(xié)議的不同版本號,默認(rèn)為o。終端唯一識別號(VIN)CHAR17終端唯一識別號包類型(PackageType)BYTE13,即應(yīng)答包功能號(FunctionNo)SHORT21000返回碼(RetumCode)SHORT2執(zhí)行結(jié)果數(shù)據(jù)包時間戳LONG41198223932數(shù)據(jù)段長度(DataLength)INT4數(shù)據(jù)段長度數(shù)據(jù)區(qū)內(nèi)容會話密碼(SessionPWD)U64864位會話密碼表4表4所示應(yīng)答包可以用于接收方向發(fā)送方返回針對某一登錄請求包的應(yīng)答。參見表4,其請求流水號保持與相應(yīng)的請求包一致;包類型字段置為應(yīng)答包類型;功能號字段保持與相應(yīng)的請求包一致;返回碼字段攜帶執(zhí)行結(jié)果,針對本例,可以是對發(fā)送方的認(rèn)證結(jié)果;接收方向發(fā)送方返回的用于本次通信的加密密碼信息可以置于數(shù)據(jù)區(qū)中,如表4所示會話密碼字段?;诒?表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,封裝登錄請求包,并通過UDP發(fā)送給服務(wù)器端,同時將所發(fā)送的數(shù)據(jù)包保存在數(shù)據(jù)緩沖區(qū)中。第2步服務(wù)器端接收到數(shù)據(jù)包后,封裝對應(yīng)于該登錄請求包的確認(rèn)包,發(fā)送給該客戶端,同時查詢該客戶端相關(guān)登錄信息的正確性后,封裝對應(yīng)于該登錄請求包的應(yīng)答包,發(fā)送給客戶端。第3步客戶端在收到確認(rèn)包后,刪除緩沖區(qū)該登錄請求包,如果在一定的時間內(nèi)沒有接收到該確認(rèn)包,則再次發(fā)送緩沖區(qū)中的登錄請求包,如果在發(fā)送一定次數(shù)后,還是沒有收到該確認(rèn)包,則認(rèn)為網(wǎng)絡(luò)不可用,需要重新連接。第4步客戶端收到登錄請求包的應(yīng)答包后,封裝確認(rèn)包,發(fā)送給服務(wù)器端,同時解析數(shù)據(jù)包并判斷應(yīng)答包中的返回碼,如果返回碼為0,則表示登錄成功,如果返回碼為其他,則執(zhí)行與該返回碼相應(yīng)的處理流程。在具體實(shí)施本發(fā)明技術(shù)方案時,可以按照表5i殳置以下各種網(wǎng)絡(luò)中的重傳定時器長度和重傳次數(shù)上限<table>tableseeoriginaldocumentpage21</column></row><table><table>tableseeoriginaldocumentpage22</column></row><table>表6表6所示數(shù)據(jù)請求包可以用于受發(fā)送雙方之間進(jìn)行數(shù)據(jù)交互。參見表6,對于經(jīng)分包處理的數(shù)據(jù)包,可以使其請求流水號相同,并將總包號字段和當(dāng)前包編號字段置為相應(yīng)取值,以便于接收方進(jìn)行包的重組。表6中數(shù)據(jù)區(qū)的內(nèi)容可以是加密之后的數(shù)據(jù),此時,需要將標(biāo)志位字段置為表示數(shù)據(jù)段已被加密的信息。收發(fā)雙方之間的普通數(shù)據(jù)交互流程可以按照以下步驟進(jìn)行22第1步客戶端建立UDP鏈接,根據(jù)表6,封裝數(shù)據(jù)請求包,并通過UDP發(fā)送給服務(wù)器端,同時將所發(fā)送的數(shù)據(jù)保存在數(shù)據(jù)緩沖區(qū)中。第2步服務(wù)器端接收到數(shù)據(jù)包后,封裝對應(yīng)于該數(shù)據(jù)請求包的確認(rèn)包,直接發(fā)送給該客戶端。第3步客戶端在收到確認(rèn)包后,刪除緩沖區(qū)該數(shù)據(jù)請求包,如果在一定的時間內(nèi)沒有接收到該確認(rèn)包,則再次發(fā)送緩沖區(qū)中的數(shù)據(jù)請求包,如果在發(fā)送一定次數(shù)后,還是沒有收到該確認(rèn)包,則認(rèn)為網(wǎng)絡(luò)不可用,需要重新連接。中攜帶校驗信息,使得接收方能夠根據(jù)所述校驗信息判斷數(shù)據(jù)接收的正確性;并且,通過在將該應(yīng)用層數(shù)據(jù)包攜帶于面向非連接的傳輸層協(xié)議數(shù)據(jù)包中發(fā)出之后啟動重傳定時器,并在重傳定時器超時時尚未收到對應(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ā)明對應(yīng)于上述數(shù)據(jù)發(fā)送方法的數(shù)據(jù)接收方法在接收到攜帶有校驗信息的應(yīng)用層數(shù)據(jù)包之后,通過計算該應(yīng)用層數(shù)據(jù)包的校驗結(jié)果,并通過比較所述校驗結(jié)果與所述校驗信息是否相同來判斷所述應(yīng)用層數(shù)據(jù)包是否正確4妄收,在正確接收的情況下,向發(fā)送方返回對應(yīng)于所述應(yīng)用層凄t據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,使發(fā)送方確認(rèn)其發(fā)出的數(shù)據(jù)包已被正確接收;在未正確接收的情況下,向發(fā)送方返回對應(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é)省了許多用于信令交互、保持連接的通23信資源,從而保證了較高的傳輸效率。可見,本發(fā)明通過在應(yīng)用層引入校驗機(jī)制和超時重傳機(jī)制,并將應(yīng)用層數(shù)據(jù)承栽于面向非連接的傳輸層協(xié)議,在保持較高傳輸效率的前提下,獲得了較高的數(shù)據(jù)傳輸可靠性。此外,為了提高數(shù)據(jù)傳輸?shù)陌踩裕景l(fā)明可以在應(yīng)用層對數(shù)據(jù)進(jìn)行加密,并將經(jīng)加密之后的數(shù)據(jù)承載于傳輸層協(xié)議數(shù)據(jù)包中進(jìn)行傳輸。并且,為了保證加密密碼的傳輸安全性,本發(fā)明在收發(fā)雙方之間交換密鑰時采取了由一方發(fā)送隨^L數(shù),另一方將加密密鑰以該隨^L數(shù)加密之后發(fā)回所述一方的方式,以及針對收發(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īng)用層數(shù)據(jù)包封裝到面向非連接的傳輸層協(xié)議數(shù)據(jù)包中發(fā)出,并將所述應(yīng)用層數(shù)據(jù)包存儲于緩沖區(qū)中,啟動重傳定時器;B、接收方接收所述傳輸層協(xié)議數(shù)據(jù)包,從中獲取攜帶有校驗信息的應(yīng)用層數(shù)據(jù)包,并根據(jù)所述校驗信息判斷所接收的應(yīng)用層數(shù)據(jù)包是否正確,若正確,發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包;若不正確,發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包;C、若發(fā)送方接收到接收方返回的對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,或在所述重傳定時器超時時尚未接收到接收方返回的對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,則執(zhí)行步驟D,否則,執(zhí)行步驟E;D、發(fā)送方重傳緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包,重新啟動重傳定時器,并返回步驟C;E、發(fā)送方將緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包刪除。2、一種數(shù)據(jù)發(fā)送方法,其特征在于,包括Al、發(fā)送方將攜帶有校驗信息的應(yīng)用層數(shù)據(jù)包封裝到面向非連接的傳輸層協(xié)議數(shù)據(jù)包中發(fā)出,并將所述應(yīng)用層數(shù)據(jù)包存儲于緩沖區(qū)中,啟動重傳定時器;Bl、若發(fā)送方接收到接收方返回的對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包未正確接收的確認(rèn)包,或在所述重傳定時器超時時尚未接收到對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包,則執(zhí)行步驟Cl,否則,執(zhí)行步驟D1;Cl、發(fā)送方重傳緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包,重新啟動重傳定時器,并返回步驟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)需要對方應(yīng)答所述應(yīng)用層數(shù)據(jù)包時,發(fā)送方將表示需要應(yīng)答的信息攜帶于所述應(yīng)用層數(shù)據(jù)包中;當(dāng)發(fā)送方接收到接收方返回的對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的應(yīng)答包時,該方法進(jìn)一步包括發(fā)送方發(fā)出對應(yīng)于所述應(yīng)答包的確認(rèn)包。5、根據(jù)權(quán)利要求4所述的方法,其特征在于,當(dāng)所述應(yīng)用層數(shù)據(jù)包為收發(fā)雙方之間的第一次數(shù)據(jù)傳輸時,所述步驟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ā)送方接收到接收方返回的對應(yīng)于所述第一次數(shù)據(jù)傳輸?shù)膽?yīng)用層數(shù)據(jù)包的應(yīng)答包時,進(jìn)一步包括從所述應(yīng)答包中獲取發(fā)送方使用所述第一隨機(jī)數(shù)加密后的第二隨機(jī)數(shù),以第一隨機(jī)數(shù)對所述加密后的第二隨機(jī)數(shù)解密得到第二隨機(jī)數(shù),將所述第二隨機(jī)數(shù)作為密碼存儲;在發(fā)放方發(fā)送除第一次數(shù)據(jù)傳輸之外的應(yīng)用層數(shù)據(jù)包時,所述步驟Al進(jìn)一步包括以所述存儲的密碼對所述應(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ù)傳輸時,所述步驟Al進(jìn)一步包括發(fā)送方將供接收方對自身進(jìn)行認(rèn)證的信息攜帶于所述應(yīng)用層數(shù)據(jù)包中;當(dāng)發(fā)送方接收到接收方返回的對應(yīng)于所述第一次數(shù)據(jù)傳輸?shù)膽?yīng)用層數(shù)據(jù)包的應(yīng)答包時,進(jìn)一步包括從所述應(yīng)答包中獲取接收方對自身的認(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ù)包長度上限時,發(fā)送方按照所述應(yīng)用層數(shù)據(jù)包長度上限對所述應(yīng)用層數(shù)據(jù)包進(jìn)行分包處理得到多個新的應(yīng)用層數(shù)據(jù)包;將所述多個新的應(yīng)用層數(shù)據(jù)包單獨(dú)封裝到每一個傳輸層協(xié)議數(shù)據(jù)包中,并將相同的流水號、表示所述應(yīng)用層數(shù)據(jù)包已被分包處理的信息、總分包個數(shù)、當(dāng)前包編號攜帶于所述每一個新的應(yīng)用層數(shù)據(jù)包中。8、一種數(shù)據(jù)接收方法,其特征在于,包括a、接收方接收來自于發(fā)送方的面向非連接的傳輸層協(xié)議數(shù)據(jù)包,從中獲取攜帶有校驗信息的應(yīng)用層數(shù)據(jù)包;b、接收方計算所述應(yīng)用層數(shù)據(jù)包的校驗結(jié)果,比較所述校驗結(jié)果與所述校驗信息是否相同,若校驗結(jié)果與校驗信息相同,判定應(yīng)用層數(shù)據(jù)包正確接收,發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的、表示應(yīng)用層數(shù)據(jù)包正確接收的確認(rèn)包;若校驗結(jié)果與4交驗信息不相同,判定應(yīng)用層數(shù)據(jù)包未正確接收,發(fā)出對應(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ā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的應(yīng)答包,并將所述應(yīng)答包存儲于緩沖區(qū)中,啟動重傳定時器;d、若在所述重傳定時器超時時尚未接收到對應(yīng)于所述應(yīng)答包的確認(rèn)包,則執(zhí)行步驟e,否則,接收方將緩沖區(qū)中的該應(yīng)答包刪除;e、接收方重傳緩沖區(qū)中的該應(yīng)答包,并重新啟動重傳定時器。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ù)的可逆變換形式,并對所述第一隨機(jī)數(shù)的可逆變換形式進(jìn)行逆變換得到第一隨機(jī)數(shù);在步驟c發(fā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的應(yīng)答包之前,進(jìn)一步包括接收方隨機(jī)生成第二隨機(jī)數(shù),將所述第二隨機(jī)數(shù)存儲為密碼,將由第一隨機(jī)數(shù)加密后的第二隨機(jī)數(shù)攜帶于所述應(yīng)答包中;在接收方接收到來自于發(fā)送方的除第一次數(shù)據(jù)傳輸之外的應(yīng)用層數(shù)據(jù)包時,該方法進(jìn)一步包括接收方以所述存儲的密碼對所述應(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ā)出對應(yīng)于所述應(yīng)用層數(shù)據(jù)包的應(yīng)答包之前,進(jìn)一步包括接收方根據(jù)所述用于對發(fā)送方進(jìn)行認(rèn)證的信息對發(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ù)包中獲取流水號、總分包個數(shù)和當(dāng)前包編號,將流水號相同的應(yīng)用層數(shù)據(jù)包按照其對應(yīng)的當(dāng)前包編號組合成完整的應(yīng)用層數(shù)據(jù)包。全文摘要本發(fā)明公開了一種數(shù)據(jù)傳輸方法,包括發(fā)送方將攜帶有校驗信息的應(yīng)用層數(shù)據(jù)包封裝到傳輸層協(xié)議數(shù)據(jù)包中發(fā)出,并緩存該應(yīng)用層數(shù)據(jù)包、啟動重傳定時器;接收方根據(jù)校驗信息判斷應(yīng)用層數(shù)據(jù)包是否正確,若正確,發(fā)出表示正確接收的確認(rèn)包;否則發(fā)出表示未正確接收的確認(rèn)包;若發(fā)送方收到表示未正確接收的確認(rèn)包,或在重傳定時器超時時尚未收到表示正確接收的確認(rèn)包,則重傳緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包,重新啟動重傳定時器;否則發(fā)送方將緩沖區(qū)中的該應(yīng)用層數(shù)據(jù)包刪除。本發(fā)明還公開了一種數(shù)據(jù)發(fā)送方法和一種數(shù)據(jù)接收方法。應(yīng)用本發(fā)明能夠在保持較高傳輸效率的前提下,獲得較高的數(shù)據(jù)傳輸可靠性。文檔編號H04L29/06GK101645883SQ20081014604公開日2010年2月10日申請日期2008年8月8日優(yōu)先權(quán)日2008年8月8日發(fā)明者吳建鋒,洲阮申請人:比亞迪股份有限公司