一種基于udp協(xié)議保證數(shù)據(jù)可靠傳輸?shù)姆椒?br>【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)傳輸?shù)姆椒ǎ唧w地說是一種基于UDP協(xié)議保證數(shù)據(jù)可靠傳輸?shù)姆椒ā?br>【背景技術(shù)】
[0002]相對(duì)于TCP,UDP是面向無(wú)連接傳輸,采用了無(wú)連接的傳輸方法,通信時(shí)直接向?qū)Χ税l(fā)送數(shù)據(jù),UDP在數(shù)據(jù)傳輸時(shí)不記錄連接狀態(tài),雖然節(jié)省了大量的網(wǎng)絡(luò)資源,提高了網(wǎng)絡(luò)傳輸效率,不能保證數(shù)據(jù)的可靠傳輸,如要進(jìn)行數(shù)據(jù)的可靠傳輸,則必須對(duì)UDP報(bào)文進(jìn)行額外的控制,以便保證數(shù)據(jù)的可靠傳輸,因此需要一種方法在充分利用UDP傳輸效率的前提下,達(dá)到UDP數(shù)據(jù)的可靠性傳輸。
【發(fā)明內(nèi)容】
[0003]為克服現(xiàn)有技術(shù)存在的問題,本發(fā)明的目的是提供一種基于UDP協(xié)議保證數(shù)據(jù)可靠傳輸?shù)姆椒ǎ摲椒ㄍㄟ^給用戶準(zhǔn)備發(fā)送的每個(gè)數(shù)據(jù)加上一個(gè)控制幀,通過校驗(yàn)控制幀中的信息來實(shí)現(xiàn)UDP數(shù)據(jù)傳輸?shù)目煽啃浴?br>[0004]本發(fā)明的目的通過以下技術(shù)方案實(shí)現(xiàn):
一種基于UDP協(xié)議保證數(shù)據(jù)可靠傳輸?shù)姆椒?,其特征在于該方法包括以下步驟:
1)發(fā)送端發(fā)送數(shù)據(jù):獲取用戶需要發(fā)送的數(shù)據(jù)包,并封裝該數(shù)據(jù)包,在其首部增加控制幀;將該封裝后的數(shù)據(jù)包發(fā)送出去后,等待接收端的數(shù)據(jù)接收確認(rèn)包,如果在規(guī)定時(shí)間內(nèi)沒有收到接收端的數(shù)據(jù)接收確認(rèn)包,則重發(fā)該數(shù)據(jù)包;
2)接收端接收數(shù)據(jù):在接收到發(fā)送端的數(shù)據(jù)包后,驗(yàn)證對(duì)應(yīng)的控制幀,并根據(jù)驗(yàn)證結(jié)果以判斷該報(bào)文是否傳輸正確,如果正確則返回一個(gè)數(shù)據(jù)接收確認(rèn)包,反之則丟棄該包,發(fā)送端則定時(shí)重發(fā)。
[0005]本發(fā)明中,發(fā)送端:獲取用戶需要發(fā)送的數(shù)據(jù)包,并封裝該數(shù)據(jù)包,在其首部增加控制幀。將該封裝后的數(shù)據(jù)包發(fā)送出去后,等待接收對(duì)端的數(shù)據(jù)接收確認(rèn)包(ACK),如果在規(guī)定時(shí)間內(nèi)沒有收到對(duì)端的數(shù)據(jù)接收確認(rèn)包(ACK),則重發(fā)該數(shù)據(jù)包。接收端:在接收對(duì)端發(fā)送的數(shù)據(jù)包后,驗(yàn)證對(duì)應(yīng)的控制幀,并根據(jù)驗(yàn)證結(jié)果以判斷該報(bào)文是否傳輸正確,如果正確則返回一個(gè)數(shù)據(jù)接收確認(rèn)包(ACK),反之則丟棄該包,發(fā)送端會(huì)定時(shí)重發(fā)。
[0006]本發(fā)明通過給用戶準(zhǔn)備發(fā)送的每個(gè)數(shù)據(jù)加上一個(gè)控制幀,通過校驗(yàn)控制幀中的信息來實(shí)現(xiàn)UDP數(shù)據(jù)傳輸?shù)目煽啃浴?br>【附圖說明】
[0007]圖1是本發(fā)明中發(fā)送端發(fā)送數(shù)據(jù)的流程圖。
[0008]圖2是本發(fā)明中接收端接收數(shù)據(jù)的流程圖。
【具體實(shí)施方式】
[0009]下面結(jié)合圖1和圖2,對(duì)本發(fā)明做進(jìn)一步詳細(xì)闡述
一種基于UDP協(xié)議保證數(shù)據(jù)可靠傳輸?shù)姆椒?,該方法包括以下步驟:
1)發(fā)送端發(fā)送數(shù)據(jù):獲取用戶需要發(fā)送的數(shù)據(jù)包,并封裝該數(shù)據(jù)包,在其首部增加控制幀;將該封裝后的數(shù)據(jù)包發(fā)送出去后,等待接收端的數(shù)據(jù)接收確認(rèn)包,如果在規(guī)定時(shí)間內(nèi)沒有收到接收端的數(shù)據(jù)接收確認(rèn)包,則重發(fā)該數(shù)據(jù)包;
2)接收端接收數(shù)據(jù):在接收到發(fā)送端的數(shù)據(jù)包后,驗(yàn)證對(duì)應(yīng)的控制幀,并根據(jù)驗(yàn)證結(jié)果以判斷該報(bào)文是否傳輸正確,如果正確則返回一個(gè)數(shù)據(jù)接收確認(rèn)包,反之則丟棄該包,發(fā)送端則定時(shí)重發(fā)。
[0010]具體如下:
發(fā)送端(圖1):
步驟101,獲取準(zhǔn)備發(fā)送的數(shù)據(jù)包,在該數(shù)據(jù)包中額外添加一個(gè)包含本次發(fā)送信息的控制幀數(shù)據(jù)。
[0011]步驟102,發(fā)送數(shù)據(jù),調(diào)用UDP對(duì)應(yīng)的數(shù)據(jù)發(fā)送函數(shù),將數(shù)據(jù)包發(fā)送出去。
[0012]步驟103,等待對(duì)端正確收到本次數(shù)據(jù)的確認(rèn)包,如果收到確認(rèn)包則表示本次發(fā)送成功,反之則失敗,需要重新發(fā)送。
[0013]
接收端(圖2)
步驟201,判斷是否有數(shù)據(jù)達(dá)到。如果則進(jìn)行下一,如果沒有則一直阻塞直到有數(shù)據(jù)到達(dá)。
[0014]步驟202,接收數(shù)據(jù)包。
[0015]步驟203,對(duì)接收到的數(shù)據(jù)包進(jìn)行解析,并對(duì)其包含的控制幀信息進(jìn)行驗(yàn)證,判斷本次接收到的數(shù)據(jù)是否正確。
[0016]步驟204,如果驗(yàn)證正確,則返回一個(gè)數(shù)據(jù)接收確認(rèn)包(ACK)。
[0017]步驟205,如果驗(yàn)證不正確,則丟棄該包,繼續(xù)接收下次數(shù)據(jù)。
【主權(quán)項(xiàng)】
1.一種基于UDP協(xié)議保證數(shù)據(jù)可靠傳輸?shù)姆椒?,其特征在于該方法包括以下步驟: 1)發(fā)送端發(fā)送數(shù)據(jù):獲取用戶需要發(fā)送的數(shù)據(jù)包,并封裝該數(shù)據(jù)包,在其首部增加控制幀;將該封裝后的數(shù)據(jù)包發(fā)送出去后,等待接收端的數(shù)據(jù)接收確認(rèn)包,如果在規(guī)定時(shí)間內(nèi)沒有收到接收端的數(shù)據(jù)接收確認(rèn)包,則重發(fā)該數(shù)據(jù)包; 2)接收端接收數(shù)據(jù):在接收到發(fā)送端的數(shù)據(jù)包后,驗(yàn)證對(duì)應(yīng)的控制幀,并根據(jù)驗(yàn)證結(jié)果以判斷該報(bào)文是否傳輸正確,如果正確則返回一個(gè)數(shù)據(jù)接收確認(rèn)包,反之則丟棄該包,發(fā)送端則定時(shí)重發(fā)。2.根據(jù)權(quán)利要求1所述的基于UDP協(xié)議保證數(shù)據(jù)可靠傳輸?shù)姆椒?,其特征在于該方法具體步驟如下:: 發(fā)送端發(fā)送數(shù)據(jù) 步驟101,獲取準(zhǔn)備發(fā)送的數(shù)據(jù)包,在該數(shù)據(jù)包中額外添加一個(gè)包含本次發(fā)送信息的控制幀數(shù)據(jù); 步驟102,發(fā)送數(shù)據(jù),調(diào)用UDP對(duì)應(yīng)的數(shù)據(jù)發(fā)送函數(shù),將數(shù)據(jù)包發(fā)送出去; 步驟103,等待對(duì)端正確收到本次數(shù)據(jù)的確認(rèn)包,如果收到確認(rèn)包則表示本次發(fā)送成功,反之則失敗,需要重新發(fā)送; 接收端接收數(shù)據(jù) 步驟201,判斷是否有數(shù)據(jù)達(dá)到,如果是則進(jìn)行下一,如果沒有則一直阻塞直到有數(shù)據(jù)到達(dá); 步驟202,接收數(shù)據(jù)包; 步驟203,對(duì)接收到的數(shù)據(jù)包進(jìn)行解析,并對(duì)其包含的控制幀信息進(jìn)行驗(yàn)證,判斷本次接收到的數(shù)據(jù)是否正確; 步驟204,如果驗(yàn)證正確,則返回一個(gè)數(shù)據(jù)接收確認(rèn)包; 步驟205,如果驗(yàn)證不正確,則丟棄該包,繼續(xù)接收下次數(shù)據(jù)。
【專利摘要】本發(fā)明公開了一種基于UDP協(xié)議保證數(shù)據(jù)可靠傳輸?shù)姆椒?,發(fā)送端發(fā)送數(shù)據(jù):獲取用戶需要發(fā)送的數(shù)據(jù)包,并封裝該數(shù)據(jù)包,在其首部增加控制幀;將該封裝后的數(shù)據(jù)包發(fā)送出去后,等待接收端的數(shù)據(jù)接收確認(rèn)包,如果在規(guī)定時(shí)間內(nèi)沒有收到接收端的數(shù)據(jù)接收確認(rèn)包,則重發(fā)該數(shù)據(jù)包;接收端接收數(shù)據(jù):在接收到發(fā)送端的數(shù)據(jù)包后,驗(yàn)證對(duì)應(yīng)的控制幀,并根據(jù)驗(yàn)證結(jié)果以判斷該報(bào)文是否傳輸正確,如果正確則返回一個(gè)數(shù)據(jù)接收確認(rèn)包,反之則丟棄該包,發(fā)送端則定時(shí)重發(fā)。本發(fā)明通過給用戶準(zhǔn)備發(fā)送的每個(gè)數(shù)據(jù)加上一個(gè)控制幀,通過校驗(yàn)控制幀中的信息來實(shí)現(xiàn)UDP數(shù)據(jù)傳輸?shù)目煽啃浴?br>【IPC分類】H04L29/06
【公開號(hào)】CN105262746
【申請(qǐng)?zhí)枴緾N201510656117
【發(fā)明人】陸晨亮, 劉剛, 張俊
【申請(qǐng)人】國(guó)家電網(wǎng)公司, 江蘇省電力公司, 江蘇電力信息技術(shù)有限公司
【公開日】2016年1月20日
【申請(qǐng)日】2015年10月12日