一種確保tcp通信數(shù)據(jù)完整及正確的方法
【專利摘要】本發(fā)明一種確保TCP通信數(shù)據(jù)完整及正確的方法,包括:步驟1:根據(jù)實(shí)際情況定義TCP封包傳輸格式,TCP數(shù)據(jù)包由包頭+數(shù)據(jù)長(zhǎng)度+包序號(hào)+數(shù)據(jù)+數(shù)據(jù)效驗(yàn)碼+包尾的先后順序依次組成;步驟2:客戶端或服務(wù)器再將要發(fā)送的數(shù)據(jù)按照步驟1的方式封裝成完整數(shù)據(jù)包;步驟3:客戶端或服務(wù)器在收到數(shù)據(jù)后根據(jù)封裝格式進(jìn)行數(shù)據(jù)完整性及正確性驗(yàn)證,并將當(dāng)前包序號(hào)返回給發(fā)送端。
【專利說(shuō)明】一種確保TCP通信數(shù)據(jù)完整及正確的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及TCP通信領(lǐng)域,尤其涉及一種能確保TCP通信數(shù)據(jù)完整及正確的方法。【背景技術(shù)】
[0002]采用TCP協(xié)議傳輸?shù)目蛻舳伺c服務(wù)器之間,在數(shù)據(jù)頻繁交互的時(shí)候,由于TCP協(xié)議本身是一種流協(xié)議的,這就意味著數(shù)據(jù)是以字節(jié)流的形式傳遞給接收者的,沒(méi)有固有的"報(bào)文〃或〃報(bào)文邊界〃的概念。在接收中可以得知總共要讀取多少,但是不知道具體某一次讀取多少。因此會(huì)出現(xiàn)多個(gè)包連接在一起,造成包不完整,從發(fā)送緩沖區(qū)看,發(fā)送方發(fā)送的若干包數(shù)據(jù)到接收方接收時(shí)粘成一包,從接收緩沖區(qū)看,后一包數(shù)據(jù)的頭緊接著前一包數(shù)據(jù)的尾,從而形成了粘包現(xiàn)象。
[0003]出現(xiàn)粘包現(xiàn)象的原因是多方面的,它既可能由發(fā)送方造成,也可能由接收方造成。發(fā)送方引起的粘包是由TCP協(xié)議本身造成的,TCP為提高傳輸效率,發(fā)送方往往要收集到足夠多的數(shù)據(jù)后才發(fā)送一包數(shù)據(jù)。若連續(xù)幾次發(fā)送的數(shù)據(jù)都很少,通常TCP會(huì)根據(jù)優(yōu)化算法把這些數(shù)據(jù)合成一包后一次發(fā)送出去,這樣接收方就收到了粘包數(shù)據(jù)。接收方引起的粘包是由于接收方用戶進(jìn)程不及時(shí)接收數(shù)據(jù),從而導(dǎo)致粘包現(xiàn)象。這是因?yàn)榻邮辗较劝咽盏降臄?shù)據(jù)放在系統(tǒng)接收緩沖區(qū),用戶進(jìn)程從該緩沖區(qū)取數(shù)據(jù),若下一包數(shù)據(jù)到達(dá)時(shí)前一包數(shù)據(jù)尚未被用戶進(jìn)程取走,則下一包數(shù)據(jù)放到系統(tǒng)接收緩沖區(qū)時(shí)就接到前一包數(shù)據(jù)之后,而用戶進(jìn)程根據(jù)預(yù)先設(shè)定的緩沖區(qū)大小從系統(tǒng)接收緩沖區(qū)取數(shù)據(jù),這樣就一次取到了多包數(shù)據(jù)。
[0004]在使用TCP協(xié)議傳輸數(shù)據(jù)的過(guò)程中,TCP協(xié)議本事只能保證數(shù)據(jù)的正確,而不能保證傳輸?shù)膬?nèi)容未經(jīng)過(guò)篡改,特別對(duì)于工業(yè)及重要數(shù)據(jù)的應(yīng)用場(chǎng)合,數(shù)據(jù)一旦篡改,將可能引發(fā)重大問(wèn)題,這些都是現(xiàn)有技術(shù)存在的缺陷。本發(fā)明以至少解決上訴問(wèn)題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是針對(duì)上述【背景技術(shù)】存在的缺陷,提供一種用于遠(yuǎn)程監(jiān)控領(lǐng)域的可確保TCP通信數(shù)據(jù)完整及正確的方法。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明一種確保TCP通信數(shù)據(jù)完整及正確的方法,包括:
[0007]步驟1:根據(jù)實(shí)際情況定義TCP封包傳輸格式,TCP數(shù)據(jù)包由包頭+數(shù)據(jù)長(zhǎng)度+包序號(hào)+數(shù)據(jù)+數(shù)據(jù)效驗(yàn)碼+包尾的先后順序依次組成;;
[0008]步驟2:客戶端或服務(wù)器再將要發(fā)送的數(shù)據(jù)按照步驟I的方式封裝成完整數(shù)據(jù)包;
[0009]步驟3:客戶端或服務(wù)器在收到數(shù)據(jù)后根據(jù)封裝格式進(jìn)行數(shù)據(jù)完整性及正確性驗(yàn)證,并將當(dāng)前包序號(hào)返回給發(fā)送端。
[0010]綜上所述,本發(fā)明一種確保TCP通信數(shù)據(jù)完整及正確的方法提供了一種封包機(jī)制,在接收方對(duì)數(shù)據(jù)進(jìn)行了嚴(yán)格的判斷,在接收方對(duì)數(shù)據(jù)進(jìn)行了校驗(yàn),保證數(shù)據(jù)無(wú)篡改,能夠有效的解決粘包現(xiàn)象,保證使用TCP協(xié)議能夠完整并且正確進(jìn)行數(shù)據(jù)傳輸,增強(qiáng)程序的健壯性和安全性,提高了 TCP協(xié)議的使用范圍【專利附圖】
【附圖說(shuō)明】
[0011]圖1為本發(fā)明一種確保TCP通信數(shù)據(jù)完整及正確的方法整體流程示意圖。
[0012]圖2為本發(fā)明一種確保TCP通信數(shù)據(jù)完整及正確的方法的數(shù)據(jù)包處理流程圖。
[0013]圖3為本發(fā)明一種確保TCP通信數(shù)據(jù)完整及正確的方法涉及的完整且正確的數(shù)據(jù)處理詳細(xì)流程圖。
【具體實(shí)施方式】
[0014]為詳細(xì)說(shuō)明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所達(dá)成目的及效果,以下茲例舉實(shí)施例并配合附圖詳予說(shuō)明。
[0015]請(qǐng)參閱圖1、圖2及圖3,本發(fā)明一種確保TCP通信數(shù)據(jù)完整及正確的方法,包括:
[0016]步驟1:根據(jù)實(shí)際情況定義TCP封包傳輸格式,TCP數(shù)據(jù)包由包頭+數(shù)據(jù)長(zhǎng)度+包序號(hào)+數(shù)據(jù)+數(shù)據(jù)效驗(yàn)碼+包尾的先后順序依次組成;
[0017]步驟2:客戶端或服務(wù)器再將要發(fā)送的數(shù)據(jù)按照步驟I的方式封裝成完整數(shù)據(jù)包;
[0018]步驟3:客戶端或服務(wù)器在收到數(shù)據(jù)后根據(jù)封裝格式進(jìn)行數(shù)據(jù)完整性及正確性驗(yàn)證,并將當(dāng)前包序號(hào)返回給發(fā)送端。
[0019]進(jìn)一步地,上述步驟I中實(shí)際情況是指根據(jù)不同的應(yīng)用場(chǎng)合,選擇不同的包頭和包尾為標(biāo)示符,也可以對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密解密后通過(guò)計(jì)算機(jī)的網(wǎng)卡進(jìn)行傳輸。
[0020]步驟3中所述的發(fā)送端為客戶端或服務(wù)器的任意一種,即當(dāng)客戶端為接收端時(shí),服務(wù)器為發(fā)送端;當(dāng)服務(wù)器為接收端時(shí),客戶端為發(fā)送端。
[0021]在所述步驟3中要分別依次六次判斷,即進(jìn)行接收到的數(shù)據(jù)長(zhǎng)度是否大于包頭標(biāo)示長(zhǎng)度的判斷、包頭標(biāo)示是否正確的判斷、接收到的數(shù)據(jù)長(zhǎng)度是否大于‘包頭+長(zhǎng)度’長(zhǎng)度的判斷、接收到數(shù)據(jù)長(zhǎng)度是否大于計(jì)算所得數(shù)據(jù)包的總長(zhǎng)度的判斷、包尾標(biāo)示是否正確的判斷及接收數(shù)據(jù)進(jìn)行校驗(yàn),驗(yàn)證數(shù)據(jù)是否被篡改判斷。上述接收到的數(shù)據(jù)長(zhǎng)度是否大于包頭標(biāo)示長(zhǎng)度的判斷、包頭標(biāo)示是否正確的判斷、接收到的數(shù)據(jù)長(zhǎng)度是否大于‘包頭+長(zhǎng)度’長(zhǎng)度的判斷、接收到數(shù)據(jù)長(zhǎng)度是否大于計(jì)算所得數(shù)據(jù)包的總長(zhǎng)度的判斷、包尾標(biāo)示是否正確的判斷的五個(gè)判斷步驟中均只有在獲得判斷結(jié)果為“是”的情況下,才可進(jìn)入下一個(gè)判斷步驟,否則上述五個(gè)判斷步驟均會(huì)返回接收數(shù)據(jù)步驟,而后再次依次從頭到尾再次進(jìn)行數(shù)據(jù)包的完整性與準(zhǔn)確性的判斷。唯一的區(qū)別在于:包頭標(biāo)示是否正確的判斷與包尾標(biāo)示是否正確的判斷的步驟如判斷結(jié)果為“否”則會(huì)進(jìn)入刪除數(shù)據(jù),直到下一包頭標(biāo)記位置的數(shù)據(jù)刪除步驟。
[0022]在步驟3中的接收數(shù)據(jù)進(jìn)行校驗(yàn),驗(yàn)證是否被篡改判斷的步驟如獲得判斷結(jié)果為“是”,會(huì)進(jìn)入刪除數(shù)據(jù),直到下一包頭標(biāo)記位置的數(shù)據(jù)刪除步驟;如獲得判斷結(jié)果為“否”則進(jìn)入步驟3。
[0023]在步驟3中需要進(jìn)一步判斷當(dāng)前包序號(hào)是否為上一次包序號(hào)相等,如是,則說(shuō)明已經(jīng)處理過(guò),直接返回包序號(hào)給客戶端,否則判斷是否等于包序號(hào)加1,是則說(shuō)明是接收正
堂
巾O[0024]上述步驟2、3的客戶端或服務(wù)器在收到數(shù)據(jù)后根據(jù)封裝格式進(jìn)行數(shù)據(jù)完整性及正確性驗(yàn)證,并做出相應(yīng)的處理的具體步驟為:
[0025]步驟11:根據(jù)實(shí)際情況封裝數(shù)據(jù)包,根據(jù)〈步驟1>所述包頭與包尾均為特殊字符串組成,數(shù)據(jù)長(zhǎng)度定義為除包頭外的包的總長(zhǎng)度,包序號(hào)定義為當(dāng)前包的ID號(hào),數(shù)據(jù)定義為待發(fā)送的數(shù)據(jù)信息,數(shù)據(jù)校驗(yàn)碼定義為對(duì)除包頭與包尾外的數(shù)據(jù)進(jìn)行數(shù)據(jù)校驗(yàn)的結(jié)果。
[0026]步驟12:聲明一個(gè)BUF存儲(chǔ)空間并初始化,將每次接收到的數(shù)據(jù)均添加到該BUF存儲(chǔ)空間中。
[0027]步驟13:首先判斷BUF存儲(chǔ)空間接收的數(shù)據(jù)是否大于包頭長(zhǎng)度,大于則進(jìn)行判斷是否為指定的包頭標(biāo)示,如是則證明包頭標(biāo)示完整正確,否則,說(shuō)明接收到無(wú)效或錯(cuò)誤的包頭標(biāo)示,刪除BUF存儲(chǔ)空間中的數(shù)據(jù)直到下一個(gè)包頭標(biāo)示出現(xiàn)的位置;小于則繼續(xù)〈步驟12>。
[0028]步驟14:判讀BUF存儲(chǔ)空間中的接收數(shù)據(jù)長(zhǎng)度是否大于〈步驟1>中‘包頭+長(zhǎng)度’的長(zhǎng)度,大于則根據(jù)數(shù)據(jù)得到該包數(shù)據(jù)剩余的總長(zhǎng)度;小于則說(shuō)明數(shù)據(jù)接收不完整,繼續(xù)〈步驟12>。
[0029]步驟15:根據(jù)長(zhǎng)度計(jì)算出當(dāng)前數(shù)據(jù)包的總長(zhǎng)度,判讀BUF存儲(chǔ)空間中的數(shù)據(jù)長(zhǎng)度是否大于當(dāng)前計(jì)算的數(shù)據(jù)包總長(zhǎng)度,如果是則繼續(xù)〈步驟16>,否則說(shuō)明數(shù)據(jù)接收不完整,繼續(xù)〈步驟12>。
[0030]步驟16:根據(jù)長(zhǎng)度獲得包尾位置,判讀包尾標(biāo)示是否正確,如是則進(jìn)行〈步驟17>,否則說(shuō)明接收到無(wú)效或錯(cuò)誤的包尾標(biāo)示,刪除BUF存儲(chǔ)空間中的數(shù)據(jù)直到下一個(gè)包頭標(biāo)示出現(xiàn)的位置,繼續(xù)〈步驟12>。
[0031]步驟17:根據(jù)計(jì)算的數(shù)據(jù)包長(zhǎng)度從BUF存儲(chǔ)空間中得到完整的數(shù)據(jù)包,進(jìn)行數(shù)據(jù)效驗(yàn),其中校驗(yàn)方式至少包括CRC,MD5方式,效驗(yàn)成功表示數(shù)據(jù)正確,刪除BUF存儲(chǔ)空間中相應(yīng)的數(shù)據(jù),避免重復(fù)處理;否則說(shuō)明數(shù)據(jù)錯(cuò)誤或者發(fā)生篡改,清理數(shù)據(jù)到下一個(gè)包頭,繼續(xù)〈步驟12>。
[0032]步驟18:判斷當(dāng)前包序號(hào)是否為上一次包序號(hào)相等,如是,則說(shuō)明已經(jīng)處理過(guò),直接返回包序號(hào)給客戶端,否則判斷是否等于包序號(hào)加1,是則說(shuō)明是接收正常。
[0033]步驟19:拿到完整的數(shù)據(jù),返回當(dāng)前包序號(hào)給客戶端,提示當(dāng)前數(shù)據(jù)包已經(jīng)正確接收,并記錄下當(dāng)前數(shù)據(jù)包的包序號(hào)。
[0034]綜上所述,本發(fā)明一種確保TCP通信數(shù)據(jù)完整及正確的方法提供了一種封包機(jī)制,在接收方對(duì)數(shù)據(jù)進(jìn)行了嚴(yán)格的判斷,在接收方對(duì)數(shù)據(jù)進(jìn)行了校驗(yàn),保證數(shù)據(jù)無(wú)篡改,能夠有效的解決粘包現(xiàn)象,保證使用TCP協(xié)議能夠完整并且正確進(jìn)行數(shù)據(jù)傳輸,增強(qiáng)程序的健壯性和安全性,提高了 TCP協(xié)議的使用范圍。
[0035]以上所述的技術(shù)方案僅為本發(fā)明一種確保TCP通信數(shù)據(jù)完整及正確的方法的較佳實(shí)施例,任何在本發(fā)明一種確保TCP通信數(shù)據(jù)完整及正確的方法基礎(chǔ)上所作的等效變換或替換都包含在本專利的權(quán)利要求的范圍之內(nèi)。
【權(quán)利要求】
1.一種確保TCP通信數(shù)據(jù)完整及正確的方法,包括:步驟1:根據(jù)實(shí)際情況定義TCP封包傳輸格式,TCP數(shù)據(jù)包由包頭+數(shù)據(jù)長(zhǎng)度+包序號(hào)+數(shù)據(jù)+數(shù)據(jù)效驗(yàn)碼+包尾的先后順序依次組成;;步驟2:客戶端或服務(wù)器再將要發(fā)送的數(shù)據(jù)按照步驟I的方式封裝成完整數(shù)據(jù)包;步驟3:客戶端或服務(wù)器在收到數(shù)據(jù)后根據(jù)封裝格式進(jìn)行數(shù)據(jù)完整性及正確性驗(yàn)證,并將當(dāng)前包序號(hào)返回給發(fā)送端。
2.根據(jù)權(quán)利要求1所述的一種確保TCP通信數(shù)據(jù)完整及正確的方法,其特征在于:步驟I中實(shí)際情況是指根據(jù)不同的應(yīng)用場(chǎng)合,選擇不同的包頭和包尾為標(biāo)示符,也可以對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密解密后通過(guò)計(jì)算機(jī)的網(wǎng)卡進(jìn)行傳輸。
3.根據(jù)權(quán)利要求2所述的一種確保TCP通信數(shù)據(jù)完整及正確的方法,其特征在于:步驟3中所述的發(fā)送端為客戶端或服務(wù)器的任意一種,即當(dāng)客戶端為接收端時(shí),服務(wù)器為發(fā)送端;當(dāng)服務(wù)器為接收端時(shí),客戶端為發(fā)送端。
4.根據(jù)權(quán)利要求3所述的一種確保TCP通信數(shù)據(jù)完整及正確的方法,其特征在于:在所述步驟3中要分別依次六次判斷,即進(jìn)行接收到的數(shù)據(jù)長(zhǎng)度是否大于包頭標(biāo)示長(zhǎng)度的判斷、包頭標(biāo)示是否正確的判斷、接收到的數(shù)據(jù)長(zhǎng)度是否大于‘包頭+長(zhǎng)度’長(zhǎng)度的判斷、接收到數(shù)據(jù)長(zhǎng)度是否大于計(jì)算所得數(shù)據(jù)包的總長(zhǎng)度的判斷、包尾標(biāo)示是否正確的判斷及接收數(shù)據(jù)進(jìn)行校驗(yàn),驗(yàn)證數(shù)據(jù)是否被篡改判斷。
5.根據(jù)權(quán)利要求4所述的一種確保TCP通信數(shù)據(jù)完整及正確的方法,其特征在于:上述接收到數(shù)據(jù)的長(zhǎng)度是否大于包頭標(biāo)示長(zhǎng)度的判斷、包頭標(biāo)示是否正確的判斷、接收到的長(zhǎng)度是否大于‘包頭+長(zhǎng)度’長(zhǎng)度的判斷、接收到數(shù)據(jù)長(zhǎng)度是否大于計(jì)算所得數(shù)據(jù)包的總長(zhǎng)度的判斷、包尾標(biāo)示是否正確的判斷的五個(gè)判斷步驟中均只有在獲得判斷結(jié)果為“是”的情況下,才可進(jìn)入下一個(gè)判斷步驟,否則上述五個(gè)判斷步驟均會(huì)返回接收數(shù)據(jù)步驟,而后再次依次從頭到尾再次進(jìn)行數(shù)據(jù)包的完整性與準(zhǔn)確性的判斷。
6.根據(jù)權(quán)利要求5所述的一種確保TCP通信數(shù)據(jù)完整及正確的方法,其特征在于:頭標(biāo)示是否正確的判斷與包尾標(biāo)示是否正確的判斷的步驟如判斷結(jié)果為“否”則會(huì)進(jìn)入刪除數(shù)據(jù),直到下一包頭標(biāo)記位置的數(shù)據(jù)刪除步驟。
7.根據(jù)權(quán)利要求5所述的一種確保TCP通信數(shù)據(jù)完整及正確的方法,其特征在于:在步驟3中的接收數(shù)據(jù)進(jìn)行校驗(yàn),驗(yàn)證是否被篡改判斷的步驟如獲得判斷結(jié)果為“是”,會(huì)進(jìn)入刪除數(shù)據(jù),直到下一包頭標(biāo)記位置的數(shù)據(jù)刪除步驟;如獲得判斷結(jié)果為“否”則進(jìn)入步驟3。
8.根據(jù)權(quán)利要求7所述的一種確保TCP通信數(shù)據(jù)完整及正確的方法,其特征在于:在步驟3中需要進(jìn)一步判斷當(dāng)前包序號(hào)是否為上一次包序號(hào)相等,如是,則說(shuō)明已經(jīng)處理過(guò),直接返回包序號(hào)給客戶端,否則判斷是否等于包序號(hào)加1,是則說(shuō)明是接收正常。
9.根據(jù)權(quán)利要求2至8任意一項(xiàng)所述的一種確保TCP通信數(shù)據(jù)完整及正確的方法,其特征在于:上述步驟2、3的客戶端或服務(wù)器在收到數(shù)據(jù)后根據(jù)封裝格式進(jìn)行數(shù)據(jù)完整性及正確性驗(yàn)證,并做出相應(yīng)的處理的具體步驟為:步驟11:根據(jù)實(shí)際情況封裝數(shù)據(jù)包,根據(jù)〈步驟1>所述包頭與包尾均為特殊字符串組成,數(shù)據(jù)長(zhǎng)度定義為除包頭外的包的總長(zhǎng)度,包序號(hào)定義為當(dāng)前包的ID號(hào),數(shù)據(jù)定義為待發(fā)送的數(shù)據(jù)信息,數(shù)據(jù)校驗(yàn)碼定義為對(duì)除包頭與包尾外的數(shù)據(jù)進(jìn)行數(shù)據(jù)校驗(yàn)的結(jié)果。步驟12:聲明一個(gè)BUF存儲(chǔ)空間并初始化,將每次接收到的數(shù)據(jù)均添加到該BUF存儲(chǔ)空間中。步驟13:首先判斷BUF存儲(chǔ)空間接收的數(shù)據(jù)是否大于包頭長(zhǎng)度,大于則進(jìn)行判斷是否為指定的包頭標(biāo)示,如是,則證明包頭標(biāo)示完整正確,否則,說(shuō)明接收到無(wú)效或錯(cuò)誤的包頭標(biāo)示,刪除BUF存儲(chǔ)空間中的數(shù)據(jù)直到下一個(gè)包頭標(biāo)示出現(xiàn)的位置;小于則繼續(xù)〈步驟12>。步驟14:判讀BUF存儲(chǔ)空間中的接收數(shù)據(jù)長(zhǎng)度是否大于〈步驟1>中‘包頭+長(zhǎng)度’的長(zhǎng)度,如大于,則根據(jù)數(shù)據(jù)得到該包數(shù)據(jù)剩余的總長(zhǎng)度;如小于,則說(shuō)明數(shù)據(jù)接收不完整,繼續(xù)〈步驟12>。步驟15:根據(jù)長(zhǎng)度計(jì)算出當(dāng)前數(shù)據(jù)包的總長(zhǎng)度,判讀BUF存儲(chǔ)空間中的數(shù)據(jù)長(zhǎng)度是否大于當(dāng)前計(jì)算的數(shù)據(jù)包總長(zhǎng)度,如大于,則繼續(xù)〈步驟16>,如小于,說(shuō)明數(shù)據(jù)接收不完整,繼續(xù)〈步驟12>。步驟16:根據(jù)長(zhǎng)度獲得包尾位置,判讀包尾標(biāo)示是否正確,如是,則進(jìn)行 < 步驟17>,否則,說(shuō)明接收到無(wú)效或錯(cuò)誤的包尾標(biāo)示,刪除BUF存儲(chǔ)空間中的數(shù)據(jù)直到下一個(gè)包頭標(biāo)示出現(xiàn)的位置,繼續(xù)〈步驟12>。步驟17:根據(jù)計(jì)算的數(shù)據(jù)包長(zhǎng)度從BUF存儲(chǔ)空間中得到完整的數(shù)據(jù)包,進(jìn)行數(shù)據(jù)效驗(yàn),其中校驗(yàn)方式至少包括CRC,MD5方式,效驗(yàn)成功表示數(shù)據(jù)正確,刪除BUF存儲(chǔ)空間中相應(yīng)的數(shù)據(jù),避免重復(fù)處理;否則,說(shuō)明數(shù)據(jù)錯(cuò)誤或者發(fā)生篡改,清理數(shù)據(jù)到下一個(gè)包頭,繼續(xù)〈步驟 12>。步驟18:判斷當(dāng)前包序號(hào)是否為上一次包序號(hào)相等,如是,則說(shuō)明已經(jīng)處理過(guò),直接返回包序號(hào)給客戶端,否則則判斷是否等于包序號(hào)加1,是則說(shuō)明是接收正常。 步驟19:拿到完整的數(shù)據(jù),返回當(dāng)前包序號(hào)給客戶端,提示當(dāng)前數(shù)據(jù)包已經(jīng)正確接收,并記錄下當(dāng)前數(shù)據(jù)包的包序號(hào)。
【文檔編號(hào)】H04L29/06GK103532668SQ201310474621
【公開(kāi)日】2014年1月22日 申請(qǐng)日期:2013年10月12日 優(yōu)先權(quán)日:2013年10月12日
【發(fā)明者】肖磊, 王小康, 苗強(qiáng) 申請(qǐng)人:成都阜特科技股份有限公司