国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送與接收方法、系統(tǒng)及設(shè)備的制作方法

      文檔序號(hào):7648807閱讀:278來(lái)源:國(guó)知局
      專利名稱:一種網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送與接收方法、系統(tǒng)及設(shè)備的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于通信領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送與接收方法、系統(tǒng)及 設(shè)備。
      背景技術(shù)
      隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)數(shù)據(jù)的傳輸量越來(lái)越大。在某些情況下,例如在網(wǎng)絡(luò)電視的實(shí)時(shí)播放時(shí),需要在數(shù)據(jù)的傳輸過程中,網(wǎng)絡(luò)時(shí)延比較低。在這 種情況下,往往采用一些網(wǎng)絡(luò)時(shí)延低的數(shù)據(jù)傳輸協(xié)議來(lái)傳輸網(wǎng)絡(luò)數(shù)據(jù),例如,用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol, UDP )。雖然使用UDP協(xié)議傳輸數(shù) 據(jù)時(shí)網(wǎng)絡(luò)開銷小,網(wǎng)絡(luò)時(shí)延低,但數(shù)據(jù)傳輸?shù)目煽啃缘貌坏奖WC。目前,在使 用UDP傳輸協(xié)議來(lái)傳輸網(wǎng)絡(luò)數(shù)據(jù)時(shí),網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端一般將要發(fā)送的數(shù)據(jù)包直 接傳輸給網(wǎng)絡(luò)數(shù)據(jù)接收端。在網(wǎng)絡(luò)數(shù)據(jù)的傳輸過程中,特別是當(dāng)網(wǎng)絡(luò)信號(hào)不好 時(shí),使用這種網(wǎng)絡(luò)數(shù)據(jù)的傳輸方法就容易出現(xiàn)嚴(yán)重的丟包現(xiàn)象。

      發(fā)明內(nèi)容
      本發(fā)明實(shí)施例的目的在于提供一種網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送方法,旨在解決在使用 UDP協(xié)議傳輸網(wǎng)絡(luò)數(shù)據(jù)時(shí),容易丟失數(shù)據(jù)包的問題。
      本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的, 一種網(wǎng)絡(luò)數(shù)據(jù)發(fā)送方法,所述發(fā)送方法包括 以下步驟
      將大于設(shè)定字節(jié)的原始數(shù)據(jù)包拆分成多個(gè)小數(shù)據(jù)包;
      標(biāo)識(shí)所述小數(shù)據(jù)包;
      發(fā)送標(biāo)識(shí)后的小數(shù)據(jù)包;
      當(dāng)接收到重發(fā)請(qǐng)求時(shí),根據(jù)所述重發(fā)請(qǐng)求中攜帶的小數(shù)據(jù)包的標(biāo)識(shí)重新發(fā)
      送對(duì)應(yīng)的小數(shù)據(jù)包。
      本發(fā)明實(shí)施例的另一目的在于提供一種網(wǎng)絡(luò)數(shù)據(jù)接收方法,所述接收方法包括以下步驟
      接收小數(shù)據(jù)包,檢查是否存在丟失的小數(shù)據(jù)包;
      當(dāng)存在丟失的小數(shù)據(jù)包時(shí),向網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端發(fā)送重發(fā)請(qǐng)求、所述重發(fā)請(qǐng) 求攜帶有所述丟失的小數(shù)據(jù)包的標(biāo)識(shí);
      將接收到的小數(shù)據(jù)包組合成原始數(shù)據(jù)包。
      本發(fā)明實(shí)施例的另一目的在于提供一種網(wǎng)絡(luò)數(shù)據(jù)發(fā)送系統(tǒng),所述發(fā)送系統(tǒng) 包括
      拆分單元,用于將大于設(shè)定字節(jié)的原始數(shù)據(jù)包拆分成多個(gè)小數(shù)據(jù)包; 標(biāo)識(shí)單元,用于標(biāo)識(shí)所述小數(shù)據(jù)包; 發(fā)送單元,用于發(fā)送標(biāo)識(shí)后的小數(shù)據(jù)包;以及
      重發(fā)請(qǐng)求接收單元,用于接收到重發(fā)請(qǐng)求時(shí),根據(jù)所述重發(fā)請(qǐng)求中攜帶的 小數(shù)據(jù)包的標(biāo)識(shí)觸發(fā)所述發(fā)送模塊重新發(fā)送對(duì)應(yīng)的小數(shù)據(jù)包。
      本發(fā)明實(shí)施例的另一目的在于提供一種網(wǎng)絡(luò)數(shù)據(jù)接收系統(tǒng),所述接收系統(tǒng) 包括
      接收檢查單元,用于接收小數(shù)據(jù)包,檢查是否存在丟失的小數(shù)據(jù)包;
      重發(fā)請(qǐng)求發(fā)送單元,用于當(dāng)存在丟失的小數(shù)據(jù)包時(shí),向網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端發(fā)送重發(fā)請(qǐng)求,所述重發(fā)請(qǐng)求攜帶有所述丟失的小數(shù)據(jù)包的標(biāo)識(shí);以及
      組合單元,將接收到的小數(shù)據(jù)包組合成原始數(shù)據(jù)包。
      本發(fā)明實(shí)施例的另一目的在于提供一種網(wǎng)絡(luò)數(shù)據(jù)發(fā)送設(shè)備,所述網(wǎng)絡(luò)數(shù)據(jù)發(fā)送設(shè)備包括網(wǎng)絡(luò)數(shù)據(jù)發(fā)送系統(tǒng),所述發(fā)送系統(tǒng)包括
      拆分單元,用于將大于設(shè)定字節(jié)的原始數(shù)據(jù)包拆分成多個(gè)小數(shù)據(jù)包;
      標(biāo)識(shí)單元,用于標(biāo)識(shí)所述小數(shù)據(jù)包;
      發(fā)送單元,用于發(fā)送標(biāo)識(shí)后的小數(shù)據(jù)包;以及
      重發(fā)請(qǐng)求接收單元,用于接收到重發(fā)請(qǐng)求時(shí),根據(jù)所述重發(fā)請(qǐng)求中攜帶的小數(shù)據(jù)包的標(biāo)識(shí)觸發(fā)所述發(fā)送模塊重新發(fā)送對(duì)應(yīng)的小數(shù)據(jù)包。
      本發(fā)明實(shí)施例的另 一 目的在于提供一種網(wǎng)絡(luò)數(shù)據(jù)接收設(shè)備,所述網(wǎng)絡(luò)數(shù)據(jù) 接收設(shè)備包括網(wǎng)絡(luò)數(shù)據(jù)接收系統(tǒng),所述接收系統(tǒng)包括
      接收檢查單元,用于接收小數(shù)據(jù)包,檢查是否存在丟失的小數(shù)據(jù)包;
      重發(fā)請(qǐng)求發(fā)送單元,用于當(dāng)存在丟失的小數(shù)據(jù)包時(shí),向網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端發(fā) 送重發(fā)請(qǐng)求,所述重發(fā)請(qǐng)求攜帶有所述丟失的小數(shù)據(jù)包的標(biāo)識(shí);以及
      組合單元,將接收到的小數(shù)據(jù)包組合成原始數(shù)據(jù)包。
      在本發(fā)明的實(shí)施例中,通過將原始數(shù)據(jù)包拆分成若干個(gè)小數(shù)據(jù)包來(lái)減少傳 輸過程中的數(shù)據(jù)包丟失,當(dāng)網(wǎng)絡(luò)數(shù)據(jù)接收端檢查到丟失了小數(shù)據(jù)包時(shí),發(fā)送重 傳請(qǐng)求,由網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端重新發(fā)送丟失的小數(shù)據(jù)包,從而減少了在傳輸網(wǎng)絡(luò) 數(shù)據(jù)時(shí),數(shù)據(jù)包的丟失。


      圖1是本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送方法的實(shí)施流程圖2是本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)數(shù)據(jù)接收方法的實(shí)施流程圖3是本發(fā)明實(shí)施例提供的將一個(gè)數(shù)據(jù)窗口中的小數(shù)據(jù)包進(jìn)行組包的實(shí)施 流程圖4是本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送系統(tǒng)的結(jié)構(gòu)示意圖; 圖5是本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)數(shù)據(jù)接收系統(tǒng)的結(jié)構(gòu)示意圖。
      具體實(shí)施例方式
      為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      在本發(fā)明的實(shí)施例中,通過將原始數(shù)據(jù)包拆分成若干個(gè)小數(shù)據(jù)包來(lái)減少傳 輸過程中的數(shù)據(jù)包丟失,當(dāng)網(wǎng)絡(luò)數(shù)據(jù)接收端檢查到丟失了小數(shù)據(jù)包時(shí),發(fā)送重傳請(qǐng)求,由網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端重新發(fā)送丟失的小數(shù)據(jù)包,從而減少了在傳輸網(wǎng)絡(luò) 數(shù)據(jù)時(shí),數(shù)據(jù)包的丟失。
      圖1示出了本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送方法的實(shí)施流程,詳述如下 在步驟SIOI中,將設(shè)定字節(jié)的原始數(shù)據(jù)包拆分成多個(gè)小數(shù)據(jù)包。 網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端需要發(fā)送的數(shù)據(jù)包的大小不一致,有的十多KBit,有的少 于lKBit,而在傳輸網(wǎng)絡(luò)數(shù)據(jù)時(shí),相對(duì)于較小的數(shù)據(jù)包來(lái)說(shuō),較大的數(shù)據(jù)包在 傳輸?shù)倪^程中更容易丟失。因此,對(duì)于較大的數(shù)據(jù)包,可以將其拆分成若干個(gè) 小數(shù)據(jù)包,以便于減少傳輸過程中數(shù)據(jù)包的丟失,而對(duì)于較小的數(shù)據(jù)包則不必 拆分。拆分完畢后,可將拆分完畢后的小數(shù)據(jù)包及未拆分的小數(shù)據(jù)包存入緩存 隊(duì)列中。
      在拆分每一個(gè)數(shù)據(jù)包的同時(shí),生成數(shù)據(jù)包拆分控制信息。該控制信息包括 拆分?jǐn)?shù)目信息,即拆分的小數(shù)據(jù)包的數(shù)目信息,即該被拆分包一共拆分成的小 數(shù)據(jù)包的數(shù)目;小數(shù)據(jù)包的編號(hào),即各小數(shù)據(jù)包在被拆分包中的序號(hào),及其它 信息。將該數(shù)據(jù)包拆分控制信息加入每個(gè)小數(shù)據(jù)包中,作為小數(shù)據(jù)包的包頭的 一部分。拆分完畢后,將小數(shù)據(jù)包放入緩沖區(qū)的緩存隊(duì)列中。
      作為本發(fā)明的實(shí)施例,拆分?jǐn)?shù)據(jù)包的方法可以為將大小超過mKBit的數(shù) 據(jù)包拆分成若干個(gè)mKBit的小數(shù)據(jù)包及一個(gè)不大于mKBit的小數(shù)據(jù)包,其中, m值可根據(jù)需要進(jìn)行設(shè)定。而大小不超過mKBit的數(shù)據(jù)包不進(jìn)行拆分。例如, 大小為lKBit的數(shù)據(jù)包在網(wǎng)絡(luò)上傳輸時(shí),相對(duì)不容易丟失,所以可以將大于 lKBit數(shù)據(jù)包拆分成若干個(gè)lKBit的小數(shù)據(jù)包及一個(gè)不大于lKBit的小數(shù)據(jù)包。
      在步驟S102中,標(biāo)識(shí)小數(shù)據(jù)包。
      作為本發(fā)明的實(shí)施例,配置P個(gè)具有編號(hào)的數(shù)據(jù)窗口,每個(gè)數(shù)據(jù)窗口具有 一定的容納空間,該容納空間有N個(gè)位置,每個(gè)位置可容納1個(gè)小數(shù)據(jù)包,并 且N個(gè)位置均有編號(hào),其中,P, N可根據(jù)需要進(jìn)行設(shè)定,但P, N應(yīng)為大于l 的整數(shù)。尚未開始發(fā)送網(wǎng)絡(luò)數(shù)據(jù)時(shí),P個(gè)數(shù)據(jù)窗口都是空的,從緩存隊(duì)列中取 出小數(shù)據(jù)包,并將小數(shù)據(jù)包裝載到P個(gè)數(shù)據(jù)窗口中。
      在利用數(shù)據(jù)窗口裝載小數(shù)據(jù)包時(shí),利用小數(shù)據(jù)包所在數(shù)據(jù)窗口的編號(hào)及該 小數(shù)據(jù)包在該數(shù)據(jù)窗口中的位置編號(hào),來(lái)標(biāo)識(shí)該小數(shù)據(jù)包,并且可將該小數(shù)據(jù) 包的標(biāo)識(shí)保存在小數(shù)據(jù)包的包頭。
      在步驟S103中,判斷網(wǎng)絡(luò)是否可寫。若網(wǎng)絡(luò)可寫,執(zhí)行步驟S104,若網(wǎng) 絡(luò)不可寫,執(zhí)行步驟S105。
      在步驟S104中,發(fā)送標(biāo)識(shí)后的小數(shù)據(jù)包。
      網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端發(fā)送新的小數(shù)據(jù)包時(shí),每次都以一個(gè)數(shù)據(jù)窗口中的所有的 小數(shù)據(jù)包為一個(gè)發(fā)送單位,進(jìn)行發(fā)送,即當(dāng)一個(gè)數(shù)據(jù)窗口中的所有的小數(shù)據(jù)包 都已經(jīng)發(fā)送完畢后,才發(fā)送下一個(gè)數(shù)據(jù)窗口中的小數(shù)據(jù)包。
      在步驟S105中,判斷網(wǎng)絡(luò)是否可讀。若網(wǎng)絡(luò)可讀時(shí),則執(zhí)行步驟S106, 若網(wǎng)絡(luò)不可寫,結(jié)束發(fā)送過程。
      在步驟S106中,判斷是否接收到重發(fā)請(qǐng)求。當(dāng)接收到重發(fā)請(qǐng)求時(shí),執(zhí)行步 驟S107,若未接收到重發(fā)請(qǐng)求,結(jié)束發(fā)送過程。
      在網(wǎng)絡(luò)傳輸?shù)倪^程中,可能丟失一些小數(shù)據(jù)包,網(wǎng)絡(luò)數(shù)據(jù)接收端可向網(wǎng)絡(luò) 數(shù)據(jù)發(fā)送端發(fā)送重發(fā)請(qǐng)求,該重發(fā)請(qǐng)求攜帶有小數(shù)據(jù)包的標(biāo)識(shí),以通知網(wǎng)絡(luò)數(shù) 據(jù)發(fā)送端重新發(fā)送丟失的小數(shù)據(jù)包。
      在步驟S107中,查找需要重發(fā)的小數(shù)據(jù)包。根據(jù)重發(fā)請(qǐng)求中的小數(shù)據(jù)包 的標(biāo)識(shí),即該小數(shù)據(jù)包所在數(shù)據(jù)窗口的編號(hào)及該小數(shù)據(jù)包在該數(shù)據(jù)窗口中的位 置編號(hào),找到需要重發(fā)的小數(shù)據(jù)包。
      這樣,就完成了原始數(shù)據(jù)包的發(fā)送,用這種方式不斷地發(fā)送原始數(shù)據(jù)包, 直至將所有的原始數(shù)據(jù)包都發(fā)送完畢。
      在一定的時(shí)間內(nèi),未收到關(guān)于某一數(shù)據(jù)窗口的重傳請(qǐng)求,即可認(rèn)為該數(shù)據(jù) 窗口的數(shù)據(jù)已經(jīng)發(fā)送成功,.則可以利用該數(shù)據(jù)窗口重新裝載數(shù)據(jù),以更新該數(shù) 據(jù)窗口的數(shù)據(jù),從而可利用該數(shù)據(jù)窗口發(fā)送其它的小數(shù)據(jù)包。
      圖2示出了本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)數(shù)據(jù)接收方法的實(shí)施流程,詳述如下
      在步驟S201中,接收小數(shù)據(jù)包。
      網(wǎng)絡(luò)數(shù)據(jù)接收端具有Q個(gè)數(shù)據(jù)窗口 ,每個(gè)數(shù)據(jù)窗口都與網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端的 數(shù)據(jù)窗口相同。網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端發(fā)送新的小數(shù)據(jù)包時(shí),每次都以一個(gè)數(shù)據(jù)窗口中的所有的小凝:據(jù)包為一個(gè)發(fā)送單位,進(jìn)行發(fā)送,而網(wǎng)絡(luò)數(shù)據(jù)接收端在接收小數(shù)據(jù)包時(shí),也相應(yīng)地將接收到的小數(shù)據(jù)包存放到數(shù)據(jù)窗口中,并且每個(gè)小數(shù)據(jù) 包在網(wǎng)絡(luò)數(shù)據(jù)接收端的數(shù)據(jù)窗口中的存放位置,與該小數(shù)據(jù)包在網(wǎng)絡(luò)數(shù)據(jù)發(fā)送 端的數(shù)據(jù)窗口中存放的位置相同。在開始接收小數(shù)據(jù)包的時(shí)候,.記錄下接收小 數(shù)據(jù)包的開始時(shí)間。
      在步驟S202中,判斷是否丟失了小數(shù)據(jù)包。
      對(duì)完成接收過程的數(shù)據(jù)窗口進(jìn)行檢查,檢查是否存在丟失的小數(shù)據(jù)包。若 不存在丟失的小數(shù)據(jù)包,則直接執(zhí)行步驟S204。
      由于正常接收完一個(gè)數(shù)據(jù)窗口的小數(shù)據(jù)包的時(shí)間會(huì)在一定的范圍內(nèi),根據(jù) 這個(gè)范圍可設(shè)定一個(gè)接收數(shù)據(jù)時(shí)間段t,從接收小數(shù)據(jù)包的開始時(shí)間計(jì)時(shí),當(dāng)接 收時(shí)間達(dá)到t時(shí),就認(rèn)定完成該數(shù)據(jù)窗口的小數(shù)據(jù)包接收。
      在步驟S203中,發(fā)送攜帶有小數(shù)據(jù)包的標(biāo)識(shí)的重發(fā)請(qǐng)求。當(dāng)存在丟失的小 數(shù)據(jù)包時(shí),發(fā)送攜帶有小數(shù)據(jù)包的標(biāo)識(shí)的重發(fā)請(qǐng)求。
      首先生成丟失的小lt據(jù)包的標(biāo)識(shí),即丟失的小凄t據(jù)包所在的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送 端的數(shù)據(jù)窗口的編號(hào),及丟失的小數(shù)據(jù)包在該數(shù)據(jù)窗口中的位置。再將該標(biāo)識(shí) 加載到重發(fā)請(qǐng)求中,并發(fā)送該重發(fā)請(qǐng)求。
      其中,通過提取接收到的該數(shù)據(jù)窗口的某個(gè)小數(shù)據(jù)包,可以得到存儲(chǔ)在該 小數(shù)據(jù)包包頭的標(biāo)識(shí),獲取該小數(shù)據(jù)包標(biāo)識(shí)中的數(shù)據(jù)窗口的編號(hào),該編號(hào)即為 丟失的小數(shù)據(jù)包所在的數(shù)據(jù)窗口的編號(hào)。由于網(wǎng)絡(luò)數(shù)據(jù)接收端與網(wǎng)絡(luò)數(shù)據(jù)發(fā)送 端的數(shù)據(jù)窗口是同樣的,網(wǎng)絡(luò)數(shù)據(jù)接收端的數(shù)據(jù)窗口中空缺的位置即為丟失的 小數(shù)據(jù)包在網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端的數(shù)據(jù)窗口中的位置。
      在步驟S204中,將接收到的小數(shù)據(jù)包組合成原始數(shù)據(jù)包。使其成為獨(dú)立的 數(shù)據(jù)包。利用控制信息,即拆分?jǐn)?shù)目,小數(shù)據(jù)包編號(hào)等信息,將數(shù)據(jù)窗口中的 小數(shù)據(jù)包組合,使其還原成未拆分之前的數(shù)據(jù)包。
      這樣,不斷地接收小數(shù)據(jù)包,不斷地組合被拆分的數(shù)據(jù)包,直至接收完所 有的小數(shù)據(jù)包。當(dāng)網(wǎng)絡(luò)數(shù)據(jù)接收端在一定的時(shí)間內(nèi)未接收到小數(shù)據(jù)包,則判定 小數(shù)據(jù)包接收完畢。
      圖3示出了本發(fā)明實(shí)施例提供的將一個(gè)數(shù)據(jù)窗口中的小數(shù)據(jù)包進(jìn)行組包的
      實(shí)施流程,詳述如下
      在步驟S301中,從數(shù)據(jù)窗口中取小數(shù)據(jù)包,并將小數(shù)據(jù)包插入緩存隊(duì)列。 每次取出一個(gè)小數(shù)據(jù)包,并按該小數(shù)據(jù)包在該數(shù)據(jù)窗口中的編號(hào),將小數(shù)據(jù)包 插入緩存隊(duì)列,從而使緩存隊(duì)列中的小數(shù)據(jù)包有序排列。作為本發(fā)明的實(shí)施例, 插入d 、數(shù)據(jù)包時(shí),可以采用插入效率較高的二分插入法。
      在步驟S302中,判斷該數(shù)據(jù)窗口的所有的小數(shù)據(jù)包是否處理完畢。若所有 的小數(shù)據(jù)包處理完畢,則結(jié)束該數(shù)據(jù)窗口的組包處理過程。通過檢測(cè)緩存隊(duì)列 中是否還有小數(shù)據(jù)包就可判斷所有的小數(shù)據(jù)包是否處理完畢。
      在步驟S303中,取出緩存隊(duì)列的第一個(gè)小數(shù)據(jù)包。
      在步驟S304中,判斷該小數(shù)據(jù)包是否應(yīng)該當(dāng)前處理。在處理小數(shù)據(jù)包的過 程中,利用指示器來(lái)指示當(dāng)前應(yīng)該處理的小數(shù)據(jù)包。當(dāng)該小數(shù)據(jù)包不是指示器 指示的小數(shù)據(jù)包時(shí),則執(zhí)行步驟S305,否則執(zhí)行步驟S306。
      其中,指示器記錄了小智:據(jù)包在該凝:據(jù)窗口中的位置編號(hào),并通過小數(shù)據(jù) 包的位置編號(hào)指示小數(shù)據(jù)包。
      在步驟S305中,判斷是否等待超時(shí)。當(dāng)?shù)谝粋€(gè)小數(shù)據(jù)包不是指示器指示的 小數(shù)據(jù)包時(shí),說(shuō)明緩沖隊(duì)列中暫時(shí)沒有指示器指示的小數(shù)據(jù)包,則判斷等待是 否超時(shí),即判斷當(dāng)前時(shí)間與該數(shù)據(jù)窗口的其它小數(shù)據(jù)包插入隊(duì)列時(shí)間的差值是 否超過可容忍的時(shí)間段,其中,可容忍的時(shí)間段可設(shè)定。當(dāng)兩者差值超過可容 忍的時(shí)間段,則認(rèn)定該小數(shù)據(jù)包丟失,執(zhí)行步驟S309,若未超出可容忍的時(shí)間 段,則返回步驟S302,等待指示器指示的小數(shù)據(jù)包放入緩沖隊(duì)列。
      在步驟S306中,判斷該小數(shù)據(jù)包是否是拆分包。當(dāng)?shù)谝粋€(gè)小數(shù)據(jù)包即為指 示器指示的小數(shù)據(jù)包時(shí),第一個(gè)小數(shù)據(jù)包即為當(dāng)前要處理的小數(shù)據(jù)包。根據(jù)該小數(shù)據(jù)包的控制信息,判斷該小數(shù)據(jù)包是一個(gè)獨(dú)立數(shù)據(jù)包,還是拆分包。若該小數(shù)據(jù)包是獨(dú)立包,直接從緩存隊(duì)列中取出該小數(shù)據(jù)包并執(zhí)行步驟S308。
      在步驟S307中,將該小數(shù)據(jù)包進(jìn)行組包。若該小數(shù)據(jù)包是拆分包,從緩存 隊(duì)列中取出該拆分包,并根據(jù)該小數(shù)據(jù)包的控制信息,再?gòu)木彺骊?duì)列中取出剩 余的拆分包,將這幾個(gè)拆分?jǐn)?shù)據(jù)包組合,成為一個(gè)獨(dú)立數(shù)據(jù)包,從而得到原始 的被拆分?jǐn)?shù)據(jù)包。在剩余的拆分包中,若丟失任意一個(gè)拆分包,該拆分包與剩 余的拆分包無(wú)法組合成為獨(dú)立的數(shù)據(jù)包,因此,丟棄該小數(shù)據(jù)包及剩余的拆分 包。
      在步驟S308中,輸出原始數(shù)據(jù)包。
      在步驟S309中,^修改指示器。指示器用于指示當(dāng)前應(yīng)該處理的小數(shù)據(jù)包的 編號(hào),該編號(hào)即為小凝:據(jù)包在數(shù)據(jù)窗口中的位置編號(hào)。若輸出的是獨(dú)立的小數(shù) 據(jù)包,指示器的值增加1,即可以開始處理下一個(gè)編號(hào)的數(shù)據(jù)包,若輸出的是 被拆分包,則根據(jù)該被拆分包拆分的小數(shù)據(jù)包的控制信息,使指示器的值相應(yīng) 增力口。
      當(dāng)然,其它數(shù)據(jù)窗口中的小數(shù)據(jù)包的組包方法與該數(shù)據(jù)窗口中的小數(shù)據(jù)包 的組包方法相同。
      圖4示出了本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送系統(tǒng)的結(jié)構(gòu),該網(wǎng)絡(luò)數(shù)據(jù)發(fā) 送系統(tǒng)可以是內(nèi)置于網(wǎng)絡(luò)數(shù)據(jù)發(fā)送設(shè)備內(nèi)的軟件單元、硬件單元或者軟硬件結(jié) 合的單元。
      該網(wǎng)絡(luò)數(shù)據(jù)發(fā)送系統(tǒng)包括拆分單元41 、標(biāo)識(shí)單元42、發(fā)送單元43及重發(fā) 請(qǐng)求接收單元44。其中拆分單元41又包括數(shù)據(jù)包拆分才莫塊411、生成模塊412 及添加模塊413。標(biāo)識(shí)單元42又包括配置模塊421 ,小數(shù)據(jù)包裝載模塊422及 小數(shù)據(jù)包標(biāo)識(shí)模塊423。
      拆分模塊41將大于設(shè)定字節(jié)的原始數(shù)據(jù)包拆分成多個(gè)小數(shù)據(jù)包,標(biāo)識(shí)模塊 42則對(duì)小數(shù)據(jù)包進(jìn)行標(biāo)識(shí),發(fā)送模塊43發(fā)送標(biāo)識(shí)后的小數(shù)據(jù)包。重發(fā)請(qǐng)求接 收單元44接收到重發(fā)請(qǐng)求時(shí),根據(jù)該重發(fā)請(qǐng)求中攜帶的小數(shù)據(jù)包的標(biāo)識(shí)觸發(fā)發(fā)送單元43重新發(fā)送對(duì)應(yīng)的小數(shù)據(jù)包。
      其中,拆分單元41將大于設(shè)定字節(jié)的原始數(shù)據(jù)包拆分成多個(gè)小數(shù)據(jù)包的過 程包括:數(shù)據(jù)包拆分模塊411將大小超過m KBit的數(shù)據(jù)包拆分成若干個(gè)m KBit 的小數(shù)據(jù)包及一個(gè)不大于mKBit的小數(shù)據(jù)包,生成模塊412生成數(shù)據(jù)包拆分控 制信息,該數(shù)據(jù)包拆分控制信息中包含有拆分的小數(shù)據(jù)包的數(shù)目信息及每個(gè)小 數(shù)據(jù)包的編號(hào),以及添加模塊413將該拆分的小數(shù)據(jù)包的數(shù)目信息,以及小數(shù) 據(jù)包的編號(hào)添加到所述小數(shù)據(jù)包的編號(hào)對(duì)應(yīng)的小數(shù)據(jù)包中。而標(biāo)識(shí)單元42對(duì)小 數(shù)據(jù)包進(jìn)行標(biāo)識(shí)的過程具體為配置模塊421配置裝載小數(shù)據(jù)包的數(shù)據(jù)窗口, 小數(shù)據(jù)包裝載模塊422將該小數(shù)據(jù)包裝載到該數(shù)據(jù)窗口 ,以及小數(shù)據(jù)包標(biāo)識(shí)模 塊423利用所述數(shù)據(jù)窗口的編號(hào)及各小數(shù)據(jù)包在所述數(shù)據(jù)窗口中的位置標(biāo)識(shí)小 數(shù)據(jù)包。
      圖5示出了本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)數(shù)據(jù)接收系統(tǒng)的結(jié)構(gòu),該網(wǎng)絡(luò)數(shù)據(jù)接 收系統(tǒng)可以是內(nèi)置于網(wǎng)絡(luò)數(shù)據(jù)接收設(shè)備內(nèi)的軟件單元、硬件單元或者軟硬件結(jié) 合的單元。
      該網(wǎng)絡(luò)數(shù)據(jù)接收系統(tǒng)包括接收檢查單元51,重發(fā)請(qǐng)求發(fā)送單元52,以及組 合單元53。而組合單元又包括小數(shù)據(jù)包拆分包判斷模塊531,拆分包組合模塊 532,及數(shù)據(jù)包輸出模塊533。
      接收檢查單元51負(fù)責(zé)接收小數(shù)據(jù)包并檢查是否存在丟失的小數(shù)據(jù)包,當(dāng)存 在丟失的小數(shù)據(jù)包時(shí),重發(fā)請(qǐng)求發(fā)送單元52向網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端發(fā)送重發(fā)請(qǐng)求, 該重發(fā)請(qǐng)求攜帶有該丟失的小數(shù)據(jù)包的標(biāo)識(shí)。組合單元53將接收到的小數(shù)據(jù)包 組合成原始數(shù)據(jù)包。
      其中,組合單元53將小數(shù)據(jù)包組合成原始數(shù)據(jù)包的過程具體為拆分包判 斷模塊531判斷接收到的小數(shù)據(jù)包是否為拆分包,當(dāng)小數(shù)據(jù)包為拆分包時(shí),由 拆分包組合模塊532獲取剩余的小數(shù)據(jù)包,并將該小數(shù)據(jù)包與該剩余的小數(shù)據(jù) 包組合,成為原始數(shù)據(jù)包,并由數(shù)據(jù)包輸出模塊533輸出原始數(shù)據(jù)包。
      綜上所述,通過將原始婆t據(jù)包拆分成若干個(gè)小數(shù)據(jù)包來(lái)減少傳輸過程中的數(shù)據(jù)包丟失,當(dāng)網(wǎng)絡(luò)數(shù)據(jù)接收端檢查到丟失了小數(shù)據(jù)包時(shí),發(fā)送重傳請(qǐng)求,由 網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端重新發(fā)送丟失的小數(shù)據(jù)包,從而減少了在傳輸網(wǎng)絡(luò)數(shù)據(jù)時(shí),數(shù) 據(jù)包的丟失。
      以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā) 明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明 的寸呆護(hù)范圍之內(nèi)。
      權(quán)利要求
      1、一種網(wǎng)絡(luò)數(shù)據(jù)發(fā)送方法,其特征在于,所述發(fā)送方法包括以下步驟將大于設(shè)定字節(jié)的原始數(shù)據(jù)包拆分成多個(gè)小數(shù)據(jù)包;標(biāo)識(shí)所述小數(shù)據(jù)包;發(fā)送標(biāo)識(shí)后的小數(shù)據(jù)包;當(dāng)接收到重發(fā)請(qǐng)求時(shí),根據(jù)所述重發(fā)請(qǐng)求中攜帶的小數(shù)據(jù)包的標(biāo)識(shí)重新發(fā)送對(duì)應(yīng)的小數(shù)據(jù)包。
      2、 如權(quán)利要求1所述的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送方法,其特征在于,所述將大于設(shè)定 字節(jié)的原始數(shù)據(jù)包拆分成多個(gè)小數(shù)據(jù)包的步驟進(jìn)一 步包括以下步驟將大小超過m KBit的原始數(shù)據(jù)包拆分成若干個(gè)m KBit的小數(shù)據(jù)包及一個(gè) 不大于m KBit的小數(shù)據(jù)包;生成數(shù)據(jù)包拆分控制信息,所述數(shù)據(jù)包拆分控制信息中包含有拆分的小數(shù) 據(jù)包的數(shù)目信息及每個(gè)小數(shù)據(jù)包的編號(hào);將所述拆分的小數(shù)據(jù)包的數(shù)目信息,以及小數(shù)據(jù)包的編號(hào)添加到所述小數(shù) 據(jù)包的編號(hào)對(duì)應(yīng)的小凝:據(jù)包中。
      3、 如權(quán)利要求1所述的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送方法,其特征在于,所述標(biāo)識(shí)所述小 數(shù)據(jù)包的步驟具體為配置裝載小數(shù)據(jù)包的數(shù)據(jù)窗口; 將所述小數(shù)據(jù)包裝載到所述數(shù)據(jù)窗口 ;利用所述數(shù)據(jù)窗口的編號(hào)及各小數(shù)據(jù)包在所述數(shù)據(jù)窗口中的位置標(biāo)識(shí)小數(shù) 據(jù)包。
      4、 一種網(wǎng)絡(luò)數(shù)據(jù)接收方法,其特征在于,所述接收方法包括以下步驟 接收小數(shù)據(jù)包,檢查是否存在丟失的小數(shù)據(jù)包;當(dāng)存在丟失的小凄t據(jù)包時(shí),向網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端發(fā)送重發(fā)請(qǐng)求,所述重發(fā)請(qǐng) 求攜帶有所述丟失的小數(shù)據(jù)包的標(biāo)識(shí);將接收到的小數(shù)據(jù)包組合成原始數(shù)據(jù)包。
      5、 如權(quán)利要求4所述的網(wǎng)絡(luò)數(shù)據(jù)接收方法,其特征在于,所述將接收到的 小數(shù)據(jù)包組合成原始數(shù)據(jù)包的步驟具體為判斷接收到的小數(shù)據(jù)包是否為拆分包;當(dāng)小數(shù)據(jù)包為拆分包時(shí),獲取剩余的小數(shù)據(jù)包,并將所述小數(shù)據(jù)包與所述 剩余的小數(shù)據(jù)包組合,成為原始數(shù)據(jù)包; 輸出原始數(shù)據(jù)包。
      6、 一種網(wǎng)絡(luò)數(shù)據(jù)發(fā)送系統(tǒng),其特征在于,所述發(fā)送系統(tǒng)包括 拆分單元,用于將大于設(shè)定字節(jié)的原始數(shù)據(jù)包拆分成多個(gè)小數(shù)據(jù)包; 標(biāo)識(shí)單元,用于標(biāo)識(shí)所述小數(shù)據(jù)包;發(fā)送單元,用于發(fā)送標(biāo)識(shí)后的小數(shù)據(jù)包;以及重發(fā)請(qǐng)求接收單元,用于接收到重發(fā)請(qǐng)求時(shí),根據(jù)所述重發(fā)請(qǐng)求中攜帶的小數(shù)據(jù)包的標(biāo)識(shí)觸發(fā)所述發(fā)送模塊重新發(fā)送對(duì)應(yīng)的小數(shù)據(jù)包。
      7、 如權(quán)利要求6所述的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送系統(tǒng),其特征在于,所述拆分單元包括:數(shù)據(jù)包拆分模塊,用于將大小超過m KBit的數(shù)據(jù)包拆分成若干個(gè)m KBit 的小數(shù)據(jù)包及一個(gè)不大于m KBit的小數(shù)據(jù)包;生成模塊,用于生成數(shù)據(jù)包拆分控制信息,所述數(shù)據(jù)包拆分控制信息中包 含有拆分的小數(shù)據(jù)包的數(shù)目信息及每個(gè)小數(shù)據(jù)包的編號(hào);以及添加模塊,用于將所述拆分的小數(shù)據(jù)包的數(shù)目信息,以及小數(shù)據(jù)包的編號(hào) 添加到所述小數(shù)據(jù)包的編號(hào)對(duì)應(yīng)的小數(shù)據(jù)包中。
      8、 如權(quán)利要求6所述的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送系統(tǒng),其特征在于,所述標(biāo)識(shí)單元包括配置模塊,用于配置裝載小數(shù)據(jù)包的數(shù)據(jù)窗口; 小數(shù)據(jù)包裝載模塊,用于將所述小數(shù)據(jù)包裝載到所述數(shù)據(jù)窗口;以及 小數(shù)據(jù)包標(biāo)識(shí)模塊,用于利用所述數(shù)據(jù)窗口的編號(hào)及各小數(shù)據(jù)包在所述數(shù) 據(jù)窗口中的位置標(biāo)識(shí)小數(shù)據(jù)包。
      9、 一種網(wǎng)絡(luò)數(shù)據(jù)接收系統(tǒng),其特征在于,所述接收系統(tǒng)包括 接收檢查單元,用于接收小數(shù)據(jù)包,檢查是否存在丟失的小數(shù)據(jù)包; 重發(fā)請(qǐng)求發(fā)送單元,用于當(dāng)存在丟失的小數(shù)據(jù)包時(shí),向網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端發(fā)送重發(fā)請(qǐng)求,所述重發(fā)請(qǐng)求攜帶有所述丟失的小數(shù)據(jù)包的標(biāo)識(shí);以及 組合單元,將接收到的小數(shù)據(jù)包組合成原始數(shù)據(jù)包。
      10、 如權(quán)利要求9所述的網(wǎng)絡(luò)數(shù)據(jù)接收系統(tǒng),其特征在于,所述組合單元包括拆分包判斷模塊,用于判斷接收到的小數(shù)據(jù)包是否為拆分包; 拆分包組合模塊,用于當(dāng)小數(shù)據(jù)包為拆分包時(shí),獲取剩余的小數(shù)據(jù)包,并將所述小數(shù)據(jù)包與所述剩余的小數(shù)據(jù)包組合,成為原始數(shù)據(jù)包;以及 數(shù)據(jù)包輸出模塊,用于輸出原始數(shù)據(jù)包。
      11、 一種網(wǎng)絡(luò)數(shù)據(jù)發(fā)送設(shè)備,其特征在于,所述網(wǎng)絡(luò)數(shù)據(jù)發(fā)送設(shè)備包括網(wǎng)絡(luò)數(shù)據(jù)發(fā)送系統(tǒng),所述發(fā)送系統(tǒng)包括拆分單元,用于將大于設(shè)定字節(jié)的原始數(shù)據(jù)包拆分成多個(gè)小數(shù)據(jù)包; 標(biāo)識(shí)單元,用于標(biāo)識(shí)所述小數(shù)據(jù)包; 發(fā)送單元,用于發(fā)送標(biāo)識(shí)后的小數(shù)據(jù)包;以及重發(fā)請(qǐng)求接收單元,用于接收到重發(fā)請(qǐng)求時(shí),根據(jù)所述重發(fā)請(qǐng)求中攜帶的小數(shù)據(jù)包的標(biāo)識(shí)觸發(fā)所述發(fā)送模塊重新發(fā)送對(duì)應(yīng)的小數(shù)據(jù)包。
      12、 一種網(wǎng)絡(luò)數(shù)據(jù)接收設(shè)備,其特征在于,所述網(wǎng)絡(luò)數(shù)據(jù)接收設(shè)備包括網(wǎng)絡(luò)數(shù)據(jù)接收系統(tǒng),所述接收系統(tǒng)包括接收檢查單元,用于接收小數(shù)據(jù)包,檢查是否存在丟失的小數(shù)據(jù)包; 重發(fā)請(qǐng)求發(fā)送單元,用于當(dāng)存在丟失的小數(shù)據(jù)包時(shí),向網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端發(fā)送重發(fā)請(qǐng)求,所述重發(fā)請(qǐng)求攜帶有所述丟失的小數(shù)據(jù)包的標(biāo)識(shí);以及 組合單元,將接收到的小數(shù)據(jù)包組合成原始數(shù)據(jù)包。
      全文摘要
      本發(fā)明適用于網(wǎng)絡(luò)數(shù)據(jù)傳輸領(lǐng)域,提供了一種網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送與接收方法、系統(tǒng)及設(shè)備,所述發(fā)送方法包括以下步驟將大于設(shè)定字節(jié)的原始數(shù)據(jù)包拆分成多個(gè)小數(shù)據(jù)包;標(biāo)識(shí)所述小數(shù)據(jù)包;發(fā)送標(biāo)識(shí)后的小數(shù)據(jù)包;當(dāng)接收到重發(fā)請(qǐng)求時(shí),根據(jù)所述重發(fā)請(qǐng)求中攜帶的小數(shù)據(jù)包的標(biāo)識(shí)重新發(fā)送對(duì)應(yīng)的小數(shù)據(jù)包。在本發(fā)明的實(shí)施例中,通過將原始數(shù)據(jù)包拆分成若干個(gè)小數(shù)據(jù)包來(lái)減少傳輸過程中的數(shù)據(jù)包丟失,當(dāng)網(wǎng)絡(luò)數(shù)據(jù)接收端檢查到丟失了小數(shù)據(jù)包時(shí),發(fā)送重傳請(qǐng)求,由網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端重新發(fā)送丟失的小數(shù)據(jù)包,從而減少了在傳輸網(wǎng)絡(luò)數(shù)據(jù)時(shí),數(shù)據(jù)包的丟失。
      文檔編號(hào)H04L1/00GK101202604SQ20071007574
      公開日2008年6月18日 申請(qǐng)日期2007年8月14日 優(yōu)先權(quán)日2007年8月14日
      發(fā)明者葉志剛 申請(qǐng)人:深圳市同洲電子股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1