本發(fā)明涉及移動(dòng)通信領(lǐng)域,尤其涉及一種數(shù)據(jù)發(fā)送和接收方法、設(shè)備以及數(shù)據(jù)傳輸系統(tǒng)。
背景技術(shù):
:tcp(transmissioncontrolprotocol傳輸協(xié)議)、udp(userdatagramprotocol用戶數(shù)據(jù)包協(xié)議)是兩種不同的傳輸協(xié)議。tcp是一種面向連接的協(xié)議,提供ip環(huán)境下的數(shù)據(jù)可靠傳輸。通過接收端返回每一個(gè)發(fā)送ip數(shù)據(jù)包的確認(rèn)消息,對(duì)沒有收到確認(rèn)消息的數(shù)據(jù)包進(jìn)行重傳,保證了數(shù)據(jù)傳輸?shù)目煽啃?。但這個(gè)過程也降低了數(shù)據(jù)包的傳輸速度。udp是一種面向非連接的協(xié)議,不與對(duì)方建立連接直接發(fā)送數(shù)據(jù)包,因此其傳輸速度快于tcp傳輸。但在傳輸過程中并不返回確認(rèn)信息,接收端在沒有收到相應(yīng)數(shù)據(jù)包的情況下,不能通知發(fā)送端重新發(fā)送,其是一種不可靠的信息傳輸協(xié)議,不能保證接收數(shù)據(jù)的完整性。綜上,在丟包率較高的網(wǎng)絡(luò)環(huán)境中,使用tcp網(wǎng)絡(luò)傳輸會(huì)導(dǎo)致數(shù)據(jù)傳輸高延遲,使用udp網(wǎng)路傳輸會(huì)導(dǎo)致數(shù)據(jù)傳輸不可靠。因此,需要提供一種可以兼顧低延遲與可靠性兩種優(yōu)點(diǎn)的數(shù)據(jù)傳輸方案。技術(shù)實(shí)現(xiàn)要素:鑒于上述問題,本發(fā)明提出了一種數(shù)據(jù)發(fā)送和接收方法、設(shè)備以及數(shù)據(jù)傳輸系統(tǒng),以力圖解決或者至少解決上面存在的問題。根據(jù)本發(fā)明的一個(gè)方面,提供一種數(shù)據(jù)發(fā)送方法,適于在網(wǎng)絡(luò)設(shè)備中執(zhí)行,包括步驟:將待發(fā)送的數(shù)據(jù)進(jìn)行數(shù)據(jù)組包,并為每個(gè)組包后的數(shù)據(jù)包分配一個(gè)唯一的數(shù)據(jù)標(biāo)識(shí),從而得到每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包;將第一類型數(shù)據(jù)包分成多個(gè)子包,并為每個(gè)子包進(jìn)行編號(hào),從而得到每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第二類型數(shù)據(jù)包;以及經(jīng)由網(wǎng)絡(luò)分別將每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包以tcp協(xié)議、第二類型數(shù)據(jù)包以u(píng)dp協(xié)議發(fā)送給數(shù)據(jù)接收方。可選地,在根據(jù)本發(fā)明的數(shù)據(jù)發(fā)送方法中,將第一類型數(shù)據(jù)包分成多個(gè)子包的步驟包括:將數(shù)據(jù)容量超過udp數(shù)據(jù)包容量范圍的第一類型數(shù)據(jù)包分成多個(gè)子包。根據(jù)本發(fā)明的另一個(gè)方面,提供一種數(shù)據(jù)接收方法,適于在網(wǎng)絡(luò)設(shè)備中執(zhí)行,包括步驟:創(chuàng)建一個(gè)用于接收數(shù)據(jù)包的隊(duì)列;經(jīng)由網(wǎng)絡(luò)以tcp協(xié)議接收第一類型數(shù)據(jù)包、以u(píng)dp協(xié)議接收第二類型數(shù)據(jù)包,并將接收到的各數(shù)據(jù)包存儲(chǔ)到隊(duì)列中,其中,每個(gè)第一類型數(shù)據(jù)包對(duì)應(yīng)于一個(gè)唯一的數(shù)據(jù)標(biāo)識(shí),第二類型數(shù)據(jù)包是將第一類型數(shù)據(jù)包分包為多個(gè)子包并為每個(gè)子包進(jìn)行編號(hào)之后形成,每個(gè)第二類型數(shù)據(jù)包同樣對(duì)應(yīng)于一個(gè)數(shù)據(jù)標(biāo)識(shí);對(duì)于任一數(shù)據(jù)標(biāo)識(shí),如果先接收到該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包,則停止接收該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第二類型數(shù)據(jù)包,并清除在隊(duì)列中已接收到的第二類型數(shù)據(jù)包;以及對(duì)于任一數(shù)據(jù)標(biāo)識(shí),如果在隊(duì)列中存儲(chǔ)的一個(gè)或者多個(gè)第二類型數(shù)據(jù)包能夠組成完整的第一類型數(shù)據(jù)包,則停止接收該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包??蛇x地,在根據(jù)本發(fā)明的數(shù)據(jù)接收方法中,還包括步驟:在隊(duì)列中對(duì)已接收到的第二類型數(shù)據(jù)包的數(shù)據(jù)標(biāo)識(shí)和子包編號(hào)進(jìn)行記錄。可選地,在根據(jù)本發(fā)明的數(shù)據(jù)接收方法中,還包括步驟:對(duì)于某個(gè)數(shù)據(jù)標(biāo)識(shí),如果數(shù)據(jù)接收設(shè)備已完整接收該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一型數(shù)據(jù)包或第二型數(shù)據(jù)包,則在隊(duì)列中將該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的數(shù)據(jù)包標(biāo)記為已完整,并取出該數(shù)據(jù)包進(jìn)行處理。根據(jù)本發(fā)明的又一個(gè)方面,提供一種數(shù)據(jù)發(fā)送設(shè)備,包括:數(shù)據(jù)組包單元,適于將待發(fā)送的數(shù)據(jù)進(jìn)行數(shù)據(jù)組包,并為每個(gè)組包后的數(shù)據(jù)包分配一個(gè)唯一的數(shù)據(jù)標(biāo)識(shí),從而得到每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包;子包分割單元,適于將第一類型數(shù)據(jù)包分成多個(gè)子包,并為每個(gè)子包進(jìn)行編號(hào),從而得到每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第二類型數(shù)據(jù)包;以及數(shù)據(jù)發(fā)送單元,適于經(jīng)由網(wǎng)絡(luò)分別將每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包以tcp協(xié)議、第二類型數(shù)據(jù)包以u(píng)dp協(xié)議發(fā)送給數(shù)據(jù)接收設(shè)備。根據(jù)本發(fā)明的又一個(gè)方面,提供一種數(shù)據(jù)接收設(shè)備,包括:隊(duì)列創(chuàng)建單元,適于創(chuàng)建一個(gè)用于接收數(shù)據(jù)包的隊(duì)列;數(shù)據(jù)接收單元,適于經(jīng)由網(wǎng)絡(luò)以tcp協(xié)議接收第一類型數(shù)據(jù)包,并以u(píng)dp協(xié)議接收第二類型數(shù)據(jù)包,并將接收到的各數(shù)據(jù)包存儲(chǔ)到隊(duì)列中,其中,每個(gè)第一類型數(shù)據(jù)包對(duì)應(yīng)于一個(gè)唯一的數(shù)據(jù)標(biāo)識(shí),第二類型數(shù)據(jù)包是將第一類型數(shù)據(jù)包分包為多個(gè)子包并為每個(gè)子包進(jìn)行編號(hào)之后形成,每個(gè)第二類型數(shù)據(jù)包同樣對(duì)應(yīng)于一個(gè)數(shù)據(jù)標(biāo)識(shí);以及終止單元,適于當(dāng)先接收到某個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包時(shí),停止接收該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第二類型數(shù)據(jù)包,并清除在隊(duì)列中已接收到的第二類型數(shù)據(jù)包;對(duì)于任一數(shù)據(jù)標(biāo)識(shí),終止單元還適于當(dāng)隊(duì)列中存儲(chǔ)的一個(gè)或者多個(gè)第二類型數(shù)據(jù)包能夠組成完整的第一類型數(shù)據(jù)包時(shí),停止接收該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包。根據(jù)本發(fā)明的又一個(gè)方面,提供一種數(shù)據(jù)傳輸系統(tǒng),包括:如上所述的數(shù)據(jù)發(fā)送設(shè)備和數(shù)據(jù)接收設(shè)備;其中,數(shù)據(jù)發(fā)送設(shè)備經(jīng)由網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送給數(shù)據(jù)接收設(shè)備。根據(jù)本發(fā)明的又一個(gè)方面,提供一種計(jì)算設(shè)備,包括:一個(gè)或多個(gè)處理器;存儲(chǔ)器;以及一個(gè)或多個(gè)程序,其中所述一個(gè)或多個(gè)程序存儲(chǔ)在所述存儲(chǔ)器中并被配置為由所述一個(gè)或多個(gè)處理器執(zhí)行,所述一個(gè)或多個(gè)程序包括用于執(zhí)行根據(jù)如上所述的方法中的任一方法的指令。根據(jù)本發(fā)明的又一個(gè)方面,提供一種存儲(chǔ)一個(gè)或多個(gè)程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述一個(gè)或多個(gè)程序包括指令,所述指令當(dāng)由計(jì)算設(shè)備執(zhí)行時(shí),使得所述計(jì)算設(shè)備執(zhí)行根據(jù)如上所述的方法中的任一方法。根據(jù)本發(fā)明的技術(shù)方案,數(shù)據(jù)發(fā)送端將待發(fā)送的數(shù)據(jù)組包后分配一個(gè)數(shù)據(jù)標(biāo)識(shí),以tcp協(xié)議發(fā)送一次;再把組包后的數(shù)據(jù)分成多個(gè)子包,進(jìn)行編號(hào)后通過udp協(xié)議發(fā)送一次。數(shù)據(jù)接收方只要先完整接收了一種形式的數(shù)據(jù)包,則直接停止接收并清除掉另一種形式的數(shù)據(jù)包。這樣既保證了數(shù)據(jù)傳輸?shù)耐暾?,還提高了數(shù)據(jù)傳輸?shù)男?。附圖說明為了實(shí)現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實(shí)踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。通過結(jié)合附圖閱讀下面的詳細(xì)描述,本公開的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯。遍及本公開,相同的附圖標(biāo)記通常指代相同的部件或元素。圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)傳輸系統(tǒng)100的結(jié)構(gòu)框圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)發(fā)送設(shè)備200和數(shù)據(jù)接收設(shè)備300的結(jié)構(gòu)框圖;圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)發(fā)送方法400的流程圖;圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)接收方法500的流程圖。具體實(shí)施方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)傳輸系統(tǒng)100的示意圖。如圖所示,系統(tǒng)100包括數(shù)據(jù)發(fā)送設(shè)備200和數(shù)據(jù)接收設(shè)備300(如圖1中的數(shù)據(jù)接收設(shè)備1-4),其中,數(shù)據(jù)發(fā)送設(shè)備200和數(shù)據(jù)接收設(shè)備300通過數(shù)據(jù)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸。數(shù)據(jù)發(fā)送設(shè)備200可以實(shí)現(xiàn)為服務(wù)器,例如文件服務(wù)器、數(shù)據(jù)存儲(chǔ)裝置服務(wù)器、應(yīng)用程序服務(wù)器和web服務(wù)器等,也可以實(shí)現(xiàn)為包括桌面計(jì)算機(jī)和筆記本計(jì)算機(jī)配置的個(gè)人計(jì)算機(jī),還可以實(shí)現(xiàn)為小尺寸便攜(或者移動(dòng))電子設(shè)備的一部分,這些電子設(shè)備可以是諸如手機(jī)、平板電腦、個(gè)人媒體播放器設(shè)備、無線網(wǎng)絡(luò)瀏覽設(shè)備、可穿戴設(shè)備(如智能手表、智能眼鏡等)、應(yīng)用專用設(shè)備、或者可以包括上面任何功能的混合設(shè)備。數(shù)據(jù)接收設(shè)備300包括一個(gè)或多個(gè)移動(dòng)設(shè)備,其可以是諸如手機(jī)、平板電腦、筆記本電腦、電視盒子、可穿戴設(shè)備等可以接入互聯(lián)網(wǎng)的設(shè)備。應(yīng)當(dāng)指出,圖1中的數(shù)據(jù)傳輸系統(tǒng)100僅是示例性的,在具體的實(shí)踐情況中,數(shù)據(jù)傳輸系統(tǒng)100中可以有不同數(shù)量的數(shù)據(jù)發(fā)送設(shè)備200和數(shù)據(jù)接收設(shè)備300,本發(fā)明對(duì)系統(tǒng)100中所包括的數(shù)據(jù)發(fā)送設(shè)備和數(shù)據(jù)接收設(shè)備的數(shù)目不做限制。圖2布置為根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)發(fā)送設(shè)備200和數(shù)據(jù)接收設(shè)備300的結(jié)構(gòu)框圖。如圖2所示,數(shù)據(jù)發(fā)送設(shè)備200包括數(shù)據(jù)組包單元220、子包分割單元240和數(shù)據(jù)發(fā)送單元260。數(shù)據(jù)組包單元220可以將待發(fā)送的數(shù)據(jù)進(jìn)行數(shù)據(jù)組包,并為每個(gè)組包后的數(shù)據(jù)包分配一個(gè)唯一的數(shù)據(jù)標(biāo)識(shí),從而得到每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包。這里的組包過程可以采用現(xiàn)有的任意方法進(jìn)行組包,本發(fā)明對(duì)此不作限制。例如,將待發(fā)送的數(shù)據(jù)組包為以下幾種數(shù)據(jù)包,每個(gè)數(shù)據(jù)包對(duì)應(yīng)一個(gè)數(shù)據(jù)標(biāo)識(shí)。如下為第一型數(shù)據(jù)包的一個(gè)示例,其中數(shù)據(jù)包data1的數(shù)據(jù)標(biāo)識(shí)為id1,data2的數(shù)據(jù)標(biāo)識(shí)為id2,等等。子包分割單元240將第一類型數(shù)據(jù)包分成多個(gè)子包,并為每個(gè)子包進(jìn)行編號(hào),從而得到每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第二類型數(shù)據(jù)包。具體地,子包分割單元240通常將數(shù)據(jù)容量超過udp數(shù)據(jù)包容量范圍的第一類型數(shù)據(jù)包分成多個(gè)子包。其中,udp數(shù)據(jù)包容量范圍可以是udp數(shù)據(jù)包長(zhǎng)度,其值為548字節(jié)。這里,網(wǎng)絡(luò)中常見鏈路層協(xié)議的標(biāo)準(zhǔn)mtu值(最大傳輸單元maximumtransmissionunit,超過mtu長(zhǎng)度的包要組裝、拼接,影響傳輸效率)為576字節(jié),扣除ip包頭的20字節(jié)和udp包頭的8字節(jié),剩余548字節(jié)作為udp數(shù)據(jù)包長(zhǎng)度。如下為每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第二類型數(shù)據(jù)包的示例,其中,數(shù)據(jù)包data1被分成了4個(gè)子包,分別為data1-1、data1-2、data1-3和data1-4,這4個(gè)子包的組合共同作為id1所對(duì)應(yīng)的第二類型數(shù)據(jù)包。同樣地,將其他數(shù)據(jù)包也進(jìn)行分包,這里可以根據(jù)其數(shù)據(jù)包的容量分割成不同數(shù)量的子包,本發(fā)明對(duì)子包的數(shù)量不作限制。數(shù)據(jù)發(fā)送單元260可以經(jīng)由網(wǎng)絡(luò)分別將每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包以tcp協(xié)議、第二類型數(shù)據(jù)包以u(píng)dp協(xié)議發(fā)送給數(shù)據(jù)接收方。也就是進(jìn)行了兩次數(shù)據(jù)傳輸,包含有數(shù)據(jù)標(biāo)識(shí)的原始數(shù)據(jù)包使用tcp協(xié)議發(fā)送,而分割成不同子包后的數(shù)據(jù)包使用udp協(xié)議發(fā)送。之后,由數(shù)據(jù)接收設(shè)備300來接收數(shù)據(jù)發(fā)送設(shè)備200所發(fā)送的兩種類型的數(shù)據(jù)包。如圖2所示,數(shù)據(jù)接收設(shè)備300包括:隊(duì)列創(chuàng)建單元320、數(shù)據(jù)接收單元340和終止單元360。隊(duì)列創(chuàng)建單元320可以創(chuàng)建一個(gè)用于接收數(shù)據(jù)包的隊(duì)列,每個(gè)序列可用來存儲(chǔ)一個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的數(shù)據(jù)包。隊(duì)列序列1(id1)……序列2(id2)……序列3(id3)……序列4(id4)………………數(shù)據(jù)接收單元340經(jīng)由網(wǎng)絡(luò)接收由數(shù)據(jù)發(fā)送設(shè)備200以tcp協(xié)議發(fā)送的不同數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包,以及以u(píng)dp協(xié)議發(fā)送的不同數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第二類型數(shù)據(jù)包,并將接收到的數(shù)據(jù)到存儲(chǔ)到隊(duì)列中。對(duì)于任一數(shù)據(jù)標(biāo)識(shí),當(dāng)先接收到某個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包時(shí),終止單元360可以停止接收該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第二類型數(shù)據(jù)包,并清除在隊(duì)列中已接收到的第二類型數(shù)據(jù)包。另外,當(dāng)隊(duì)列中存儲(chǔ)的一個(gè)或者多個(gè)第二類型數(shù)據(jù)包能夠組成完整的第一類型數(shù)據(jù)包時(shí),終止單元360可以停止接收該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包。也就是,不論收到的是tcp協(xié)議發(fā)送的數(shù)據(jù)包還是udp協(xié)議發(fā)送的數(shù)據(jù)包,均將接收到的數(shù)據(jù)存儲(chǔ)到隊(duì)列。在數(shù)據(jù)接收過程中,從接收到的數(shù)據(jù)包中提取該數(shù)據(jù)包所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)(如id)是否已存在于該隊(duì)列中。如果不存在,則直接將數(shù)據(jù)存儲(chǔ)到隊(duì)列中。如果已存在,則判斷隊(duì)列中該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的數(shù)據(jù)是否已完整。其中,第一類型數(shù)據(jù)包只要接收到基本就代表第一數(shù)據(jù)包已接收完整;隊(duì)列中存儲(chǔ)的一個(gè)或者多個(gè)第二類型數(shù)據(jù)包能夠組成完整的第一類型數(shù)據(jù)包是指該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第二類型數(shù)據(jù)包的所有子包已經(jīng)接收完整。如果隊(duì)列中的數(shù)據(jù)包已完整,則直接丟棄準(zhǔn)備插入的數(shù)據(jù)包,否則將收到的數(shù)據(jù)包的子包補(bǔ)全到隊(duì)列中。若每個(gè)id對(duì)應(yīng)的數(shù)據(jù)包都分為四個(gè)子包,以id1為例,如果在數(shù)據(jù)接收過程中,四個(gè)子包data1-1、1-2、1-3和1-4先接收完整,能夠組成完整的第一類型數(shù)據(jù)包,則停止接收tcp協(xié)議發(fā)送的data1包。反之,以id4為例,如果先接收到以tcp協(xié)議發(fā)送的第一類型數(shù)據(jù)包data4,則停止接收以u(píng)dp協(xié)議發(fā)送的四個(gè)子包,并清除掉已經(jīng)接收到的子包。根據(jù)一個(gè)實(shí)施例,數(shù)據(jù)接收單元340可以在隊(duì)列中對(duì)已接收到的第二類型數(shù)據(jù)包的數(shù)據(jù)標(biāo)識(shí)和子包編號(hào)進(jìn)行記錄。對(duì)于任一數(shù)據(jù)標(biāo)識(shí),終止單元360可以根據(jù)該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第二類型數(shù)據(jù)包中的子包編號(hào)來判斷該第二類型數(shù)據(jù)包能否組成完整的第一類型數(shù)據(jù)包。根據(jù)另一個(gè)實(shí)施例,數(shù)據(jù)接收設(shè)備300中還可以包括數(shù)據(jù)處理單元,其可以當(dāng)數(shù)據(jù)接收設(shè)備已完整接收某個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包或第二類型數(shù)據(jù)包時(shí),在隊(duì)列中將該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的數(shù)據(jù)包標(biāo)記為已完整,并取出該數(shù)據(jù)包進(jìn)行處理。如id1和id4名錄下的數(shù)據(jù)包已完整,則對(duì)該序列標(biāo)記為已完整,將這些數(shù)據(jù)取出來進(jìn)行處理。本發(fā)明的核心代碼如下:圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)發(fā)送方法400,可以在網(wǎng)絡(luò)設(shè)備中執(zhí)行,如在數(shù)據(jù)發(fā)送設(shè)備200中執(zhí)行。如圖3所示,該方法始于步驟s420。在步驟s420,將待發(fā)送的數(shù)據(jù)進(jìn)行數(shù)據(jù)組包,并為每個(gè)組包后的數(shù)據(jù)包分配一個(gè)唯一的數(shù)據(jù)標(biāo)識(shí),從而得到每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包。隨后,在步驟s440中,將第一類型數(shù)據(jù)包分成多個(gè)子包,并為每個(gè)子包進(jìn)行編號(hào),從而得到每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第二類型數(shù)據(jù)包。隨后,在步驟s460中,經(jīng)由網(wǎng)絡(luò)分別將每個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包以tcp協(xié)議、第二類型數(shù)據(jù)包以u(píng)dp協(xié)議發(fā)送給數(shù)據(jù)接收設(shè)備。這里,數(shù)據(jù)發(fā)送方法400的執(zhí)行邏輯與數(shù)據(jù)發(fā)送設(shè)備200的內(nèi)容相同,具體可參見數(shù)據(jù)發(fā)送設(shè)備200的描述,在此不做贅述。圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)接收方法500,適于網(wǎng)絡(luò)設(shè)備中執(zhí)行,如在數(shù)據(jù)接收設(shè)備300中執(zhí)行。如圖4所示,該方法始于步驟s520。在步驟s520,創(chuàng)建一個(gè)用于接收數(shù)據(jù)包的隊(duì)列。隨后,在步驟s540中,經(jīng)由網(wǎng)絡(luò)以tcp協(xié)議接收第一類型數(shù)據(jù)包、以u(píng)dp協(xié)議接收第二類型數(shù)據(jù)包,并將接收到的各數(shù)據(jù)包存儲(chǔ)到隊(duì)列中,其中,每個(gè)第一類型數(shù)據(jù)包對(duì)應(yīng)于一個(gè)唯一的數(shù)據(jù)標(biāo)識(shí),第二類型數(shù)據(jù)包是將第一類型數(shù)據(jù)包分包為多個(gè)子包并為每個(gè)子包進(jìn)行編號(hào)之后形成,每個(gè)第二類型數(shù)據(jù)包同樣對(duì)應(yīng)于一個(gè)數(shù)據(jù)標(biāo)識(shí)。根據(jù)一個(gè)實(shí)施例,該方法還包括步驟:在隊(duì)列中對(duì)已接收到的第二類型數(shù)據(jù)包的數(shù)據(jù)標(biāo)識(shí)和子包編號(hào)進(jìn)行記錄。隨后,在步驟s560中,對(duì)于任一數(shù)據(jù)標(biāo)識(shí),如果先接收到該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包,則停止接收該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第二類型數(shù)據(jù)包,并清除在隊(duì)列中已接收到的第二類型數(shù)據(jù)包?;蛘?,在步驟s580中,對(duì)于任一數(shù)據(jù)標(biāo)識(shí),如果在隊(duì)列中存儲(chǔ)的一個(gè)或者多個(gè)第二類型數(shù)據(jù)包能夠組成完整的第一類型數(shù)據(jù)包,則停止接收該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)。根據(jù)一個(gè)實(shí)施例,方法500還可以包括步驟:如果數(shù)據(jù)接收設(shè)備已完整接收某個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一型數(shù)據(jù)包或第二型數(shù)據(jù)包,則在隊(duì)列中將該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的數(shù)據(jù)包標(biāo)記為已完整,并取出該數(shù)據(jù)包進(jìn)行處理。這里,數(shù)據(jù)接收方法500的執(zhí)行邏輯與數(shù)據(jù)接收設(shè)備300的內(nèi)容相同,具體可參見數(shù)據(jù)接收設(shè)備300部分的描述,在此不做贅述。根據(jù)本發(fā)明的技術(shù)方案,對(duì)于每個(gè)數(shù)據(jù)標(biāo)識(shí),分別以tcp協(xié)議發(fā)送一次原始數(shù)據(jù)包,以u(píng)dp協(xié)議發(fā)送一次將原始數(shù)據(jù)包分包后的數(shù)據(jù)子包。接收端先完整接收到哪種形式的數(shù)據(jù)包后,則直接丟棄另一種形式的包,這樣既保證了數(shù)據(jù)傳輸?shù)耐暾?,也提高了?shù)據(jù)傳輸?shù)男省7、如a6所述的數(shù)據(jù)發(fā)送設(shè)備,其中,所述子包分割單元適于將數(shù)據(jù)容量超過udp數(shù)據(jù)包容量范圍的第一類型數(shù)據(jù)包分成多個(gè)子包。b9、如b8所述的數(shù)據(jù)接收設(shè)備,其中,所述數(shù)據(jù)接收單元適于在所述隊(duì)列中對(duì)已接收到的第二類型數(shù)據(jù)包的數(shù)據(jù)標(biāo)識(shí)和子包編號(hào)進(jìn)行記錄。b10、如b8所述的數(shù)據(jù)接收設(shè)備,還包括數(shù)據(jù)處理單元,適于當(dāng)所述數(shù)據(jù)接收設(shè)備已完整接收某個(gè)數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的第一類型數(shù)據(jù)包或第二類型數(shù)據(jù)包時(shí),在所述隊(duì)列中將該數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的數(shù)據(jù)包標(biāo)記為已完整,并取出該數(shù)據(jù)包進(jìn)行處理。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下被實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開的示例中的設(shè)備的模塊或單元或組件可以布置在如該實(shí)施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個(gè)或多個(gè)設(shè)備中。前述示例中的模塊可以組合為一個(gè)模塊或者此外可以分成多個(gè)子模塊。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。這里描述的各種技術(shù)可結(jié)合硬件或軟件,或者它們的組合一起實(shí)現(xiàn)。從而,本發(fā)明的方法和設(shè)備,或者本發(fā)明的方法和設(shè)備的某些方面或部分可采取嵌入有形媒介,例如軟盤、cd-rom、硬盤驅(qū)動(dòng)器或者其它任意機(jī)器可讀的存儲(chǔ)介質(zhì)中的程序代碼(即指令)的形式,其中當(dāng)程序被載入諸如計(jì)算機(jī)之類的機(jī)器,并被所述機(jī)器執(zhí)行時(shí),所述機(jī)器變成實(shí)踐本發(fā)明的設(shè)備。在程序代碼在可編程計(jì)算機(jī)上執(zhí)行的情況下,計(jì)算設(shè)備一般包括處理器、處理器可讀的存儲(chǔ)介質(zhì)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元件),至少一個(gè)輸入裝置,和至少一個(gè)輸出裝置。其中,存儲(chǔ)器被配置用于存儲(chǔ)程序代碼;處理器被配置用于根據(jù)該存儲(chǔ)器中存儲(chǔ)的所述程序代碼中的指令,執(zhí)行本發(fā)明的數(shù)據(jù)發(fā)送方法或數(shù)據(jù)接收方法。此外,所述實(shí)施例中的一些在此被描述成可以由計(jì)算機(jī)系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實(shí)施的方法或方法元素的組合。因此,具有用于實(shí)施所述方法或方法元素的必要指令的處理器形成用于實(shí)施該方法或方法元素的裝置。此外,裝置實(shí)施例的在此所述的元素是如下裝置的例子:該裝置用于實(shí)施由為了實(shí)施該發(fā)明的目的的元素所執(zhí)行的功能。如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來描述普通對(duì)象僅僅表示涉及類似對(duì)象的不同實(shí)例,并且并不意圖暗示這樣被描述的對(duì)象必須具有時(shí)間上、空間上、排序方面或者以任意其它方式的給定順序。盡管根據(jù)有限數(shù)量的實(shí)施例描述了本發(fā)明,但是受益于上面的描述,本
技術(shù)領(lǐng)域:
內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實(shí)施例。此外,應(yīng)當(dāng)注意,本說明書中使用的語言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書的范圍和精神的情況下,對(duì)本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說許多修改和變更都是顯而易見的。對(duì)于本發(fā)明的范圍,對(duì)本發(fā)明所做的公開是說明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書限定。當(dāng)前第1頁12