国产精品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>

      數(shù)據(jù)傳輸方法、系統(tǒng)及相關(guān)設(shè)備的制造方法

      文檔序號(hào):10515159閱讀:505來源:國(guó)知局
      數(shù)據(jù)傳輸方法、系統(tǒng)及相關(guān)設(shè)備的制造方法
      【專利摘要】數(shù)據(jù)傳輸方法、系統(tǒng)及相關(guān)設(shè)備。本發(fā)明公開了一種數(shù)據(jù)發(fā)送方法,包括:發(fā)送端以塊的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼;所述發(fā)送端在編碼后的傳輸控制協(xié)議(TCP)數(shù)據(jù)中加入編碼TCP報(bào)文頭;所述編碼TCP報(bào)文頭包括編碼數(shù)指示字段;所述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè)數(shù);所述發(fā)送端將加入所述編碼TCP報(bào)文頭的TCP數(shù)據(jù)發(fā)出。本發(fā)明同時(shí)還公開了一種數(shù)據(jù)接收方法、發(fā)送設(shè)備、接收設(shè)備及數(shù)據(jù)傳輸系統(tǒng)。
      【專利說明】
      數(shù)據(jù)傳輸方法、系統(tǒng)及相關(guān)設(shè)備
      技術(shù)領(lǐng)域
      [0001] 本發(fā)明設(shè)及無線通信領(lǐng)域,尤其設(shè)及一種數(shù)據(jù)傳輸方法、系統(tǒng)及相關(guān)設(shè)備。
      【背景技術(shù)】
      [0002] 傳統(tǒng)基于傳輸控制協(xié)議(TCP, Transmission Control Protocol)的數(shù)據(jù)傳輸過 程傳輸?shù)臄?shù)據(jù)是原始用戶數(shù)據(jù),傳輸過程中不會(huì)對(duì)數(shù)據(jù)包進(jìn)行編碼。在無線網(wǎng)絡(luò)中,信道衰 落、隨機(jī)抖動(dòng)、無線網(wǎng)絡(luò)切換等情況會(huì)導(dǎo)致傳輸過程中發(fā)生丟包。傳統(tǒng)基于TCP的數(shù)據(jù)傳輸 過程中發(fā)現(xiàn)丟包后,會(huì)對(duì)丟失數(shù)據(jù)包進(jìn)行重傳。然而,由于傳統(tǒng)基于TCP的數(shù)據(jù)傳輸中,認(rèn) 為丟包是網(wǎng)絡(luò)擁塞的指示,因此,丟包會(huì)觸發(fā)TCP擁塞控制機(jī)制減小數(shù)據(jù)發(fā)送速率。運(yùn)使得 數(shù)據(jù)傳輸不能充分利用網(wǎng)絡(luò)帶寬。
      [0003] 針對(duì)W上問題,有人提出了解決方案。其中,一種方案是基于網(wǎng)絡(luò)編碼理論的 TCP (NC TCP, Network Coding TC巧數(shù)據(jù)傳輸方法。另一種方案是在基于NC TCP的基礎(chǔ)上 的網(wǎng)絡(luò)編碼的TCP (Network Coded TCP, CTC巧數(shù)據(jù)傳輸方法。
      [0004] 基于NC TCP的數(shù)據(jù)傳輸方案和基于CTCP的數(shù)據(jù)傳輸方案,在接收端需要進(jìn)行兩 次解碼相關(guān)的運(yùn)算。具體地,接收端收到一個(gè)編碼數(shù)據(jù)包后,首先需要提取出編碼數(shù)據(jù)包中 的編碼系數(shù),和本地存儲(chǔ)的系數(shù)矩陣進(jìn)行一次運(yùn)算,得出確認(rèn)(seen ack),將其返回給發(fā)送 端。然后判斷系數(shù)矩陣是否達(dá)到解碼的條件。若沒有達(dá)到解碼條件,則返回。若達(dá)到解碼 條件,則進(jìn)行一次解碼運(yùn)算,解碼出原始數(shù)據(jù)包提交給應(yīng)用層。
      [0005] 從上面的流程可W看出,現(xiàn)有的網(wǎng)絡(luò)編碼TCP機(jī)制在接收端需要進(jìn)行兩次解碼運(yùn) 算。兩次解碼一方面會(huì)過多消耗接收端的計(jì)算資源,給接收端帶來負(fù)載;另一方面,發(fā)送 seen ack前的系數(shù)矩陣運(yùn)算會(huì)導(dǎo)致seen ack回復(fù)有延時(shí),由于TCP協(xié)議中發(fā)送端在收到 seen ack后才能夠發(fā)送新的數(shù)據(jù)包。因此seen ack的回復(fù)延時(shí)會(huì)導(dǎo)致發(fā)送端減低發(fā)送速 率。

      【發(fā)明內(nèi)容】

      [0006] 為解決現(xiàn)有存在的技術(shù)問題,本發(fā)明實(shí)施例提供一種數(shù)據(jù)傳輸方法、系統(tǒng)及相關(guān) 設(shè)備。
      [0007] 本發(fā)明實(shí)施例提供了一種數(shù)據(jù)發(fā)送方法,包括:
      [0008] 發(fā)送端W塊化lock)的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼;
      [0009] 所述發(fā)送端在編碼后的TCP數(shù)據(jù)中加入編碼TCP報(bào)文頭;所述編碼TCP報(bào)文頭包 括編碼數(shù)指示字段;所述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少 數(shù)據(jù)包個(gè)數(shù);
      [0010] 所述發(fā)送端將加入所述編碼TCP報(bào)文頭的TCP數(shù)據(jù)發(fā)出。
      [0011] 上述方案中,所述發(fā)送端W塊的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼之前,所述方法還包 括:
      [0012] 所述發(fā)送端向所述接收端發(fā)送TCP連接建立消息;所述TCP連接建立消息攜帶所 述發(fā)送端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí);
      [0013] 接收所述接收端返回的確認(rèn)消息;所述確認(rèn)消息攜帶所述接收端支持網(wǎng)絡(luò)編碼 TCP的標(biāo)識(shí)。
      [0014] 上述方案中,所述W塊的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼,包括:
      [0015] 所述發(fā)送端將所述待發(fā)送數(shù)據(jù)劃分為等長(zhǎng)數(shù)據(jù)包;
      [0016] 對(duì)劃分后的數(shù)據(jù)包進(jìn)行分塊,對(duì)每個(gè)塊中的數(shù)據(jù)包分別進(jìn)行編碼,并在編碼過程 中生成對(duì)應(yīng)的編碼冗余數(shù)據(jù)包;
      [0017] 將所述編碼冗余數(shù)據(jù)包插入至TCP數(shù)據(jù)發(fā)送隊(duì)列中的相應(yīng)位置,形成編碼后的 TCP數(shù)據(jù)。
      [0018] 上述方案中,編碼所采用的算法為隨機(jī)線性網(wǎng)絡(luò)編碼算法。
      [0019] 上述方案中,所述方法還包括:所述發(fā)送端對(duì)發(fā)送的每個(gè)數(shù)據(jù)包均啟動(dòng)重傳定時(shí) 器;
      [0020] 滿足重傳條件時(shí),對(duì)需要重傳的編碼后的數(shù)據(jù)包直接進(jìn)行重傳。
      [0021] 上述方案中,所述方法還包括:
      [0022] 所述發(fā)送端接收到seen ack后,從所述TCP數(shù)據(jù)發(fā)送隊(duì)列中刪除seen ack對(duì)應(yīng) 數(shù)據(jù)包序號(hào)之前的數(shù)據(jù)。
      [0023] 本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)接收方法,包括:
      [0024] 接收端接收數(shù)據(jù)包;
      [00巧]當(dāng)每個(gè)塊中收到的數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼TCP報(bào)文頭中的編碼數(shù)指示字 段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),向發(fā)送端回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確認(rèn);所述編碼數(shù)指示字段 表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè)數(shù);
      [00%] 所述接收端對(duì)已確認(rèn)塊中的數(shù)據(jù)進(jìn)行解碼。
      [0027] 上述方案中,所述接收數(shù)據(jù)包之前,所述方法還包括:
      [0028] 接收所述發(fā)送端發(fā)送的TCP連接建立消息;所述TCP連接建立消息攜帶所述發(fā)送 端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí);
      [0029] 所述接收端向所述發(fā)送端返回確認(rèn)消息;所述確認(rèn)消息攜帶所述接收端支持網(wǎng)絡(luò) 編碼TCP的標(biāo)識(shí)。
      [0030] 上述方案中,所述向發(fā)送端回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確認(rèn)之前,所述方法還包 括:
      [0031] 所述接收端將收到的數(shù)據(jù)包放入接收隊(duì)列中;
      [0032] 所述接收端根據(jù)數(shù)據(jù)包對(duì)應(yīng)的編碼TCP報(bào)文頭信息,統(tǒng)計(jì)接收隊(duì)列中每個(gè)塊中收 到的數(shù)據(jù)包個(gè)數(shù)。
      [0033] 本發(fā)明實(shí)施例又提供了一種發(fā)送設(shè)備,包括:編碼模塊、插入單元W及第一發(fā)送單 元;其中,
      [0034] 所述編碼模塊,用于W塊的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼;
      [0035] 所述插入單元,用于在編碼后的TCP數(shù)據(jù)中加入編碼TCP報(bào)文頭;所述編碼TCP報(bào) 文頭包括編碼數(shù)指示字段;所述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收 的最少數(shù)據(jù)包個(gè)數(shù);
      [0036] 所述第一發(fā)送單元,用于將加入所述編碼TCP報(bào)文頭的TCP數(shù)據(jù)發(fā)出。
      [0037] 上述方案中,所述發(fā)送設(shè)備還包括:第一接收單元;其中,
      [0038] 所述第一發(fā)送單元,還用于向所述接收端發(fā)送TCP連接建立消息;所述TCP連接建 立消息攜帶所述發(fā)送設(shè)備支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí);
      [0039] 所述第一接收單元,用于接收所述接收端返回的確認(rèn)消息;所述確認(rèn)消息攜帶所 述接收端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí);并在收到所述確認(rèn)消息后,觸發(fā)所述編碼模塊;
      [0040] 相應(yīng)地,所述編碼模塊,用于收到所述第一接收單元的觸發(fā)后,W塊的方式對(duì)待發(fā) 送數(shù)據(jù)進(jìn)行編碼。
      [0041] 上述方案中,所述編碼單元包括:劃分模塊、編碼模塊及位置插入模塊;其中,
      [0042] 所述劃分模塊,用于將所述待發(fā)送數(shù)據(jù)劃分為等長(zhǎng)數(shù)據(jù)包;并對(duì)劃分后的數(shù)據(jù)包 進(jìn)行分塊;
      [0043] 所述編碼模塊,用于每個(gè)塊中的數(shù)據(jù)包分別進(jìn)行編碼,并在編碼過程中生成對(duì)應(yīng) 的編碼冗余數(shù)據(jù)包;
      [0044] 所述位置插入模塊,用于將所述編碼冗余數(shù)據(jù)包插入至TCP數(shù)據(jù)發(fā)送隊(duì)列中的相 應(yīng)位置,形成編碼后的TCP數(shù)據(jù)。
      [0045] 上述方案中,所述發(fā)送設(shè)備還包括重傳單元,用于對(duì)發(fā)送的每個(gè)數(shù)據(jù)包均啟動(dòng)重 傳定時(shí)器;并在滿足重傳條件時(shí),對(duì)需要重傳的編碼后的數(shù)據(jù)包直接進(jìn)行重傳。
      [0046] 上述方案中,所述發(fā)送設(shè)備還包括刪除單元,用于接收到seen ack后,從所述TCP 數(shù)據(jù)發(fā)送隊(duì)列中刪除seen ack對(duì)應(yīng)數(shù)據(jù)包序號(hào)之前的數(shù)據(jù)。
      [0047] 本發(fā)明實(shí)施例還提供了一種接收設(shè)備,包括:第二接收單元、第二發(fā)送單元W及解 碼單元;其中,
      [0048] 所述第二接收單元,用于接收數(shù)據(jù)包;
      [0049] 所述第二發(fā)送單元,用于當(dāng)每個(gè)塊中收到的數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼TCP報(bào) 文頭中的編碼數(shù)指示字段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),向發(fā)送端回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確 認(rèn);所述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè)數(shù);
      [0050] 所述解碼單元,用于對(duì)已確認(rèn)塊中的數(shù)據(jù)進(jìn)行解碼。
      [0051] 上述方案中,所述第二接收單元,還用于接收發(fā)送端發(fā)送的TCP連接建立消息;所 述TCP連接建立消息攜帶所述發(fā)送端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí);
      [0052] 所述第二發(fā)送單元,用于向所述發(fā)送端返回確認(rèn)消息;所述確認(rèn)消息攜帶所述接 收設(shè)備支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí)。
      [0053] 上述方案中,所述接收設(shè)備還包括:統(tǒng)計(jì)單元,用于將收到的數(shù)據(jù)包放入接收隊(duì)列 中;并根據(jù)數(shù)據(jù)包對(duì)應(yīng)的編碼TCP報(bào)文頭信息,統(tǒng)計(jì)接收隊(duì)列中每個(gè)塊中收到的數(shù)據(jù)包個(gè) 數(shù)。
      [0054] 本發(fā)明實(shí)施例又提供了一種數(shù)據(jù)傳輸系統(tǒng),包括發(fā)送設(shè)備及接收設(shè)備;其中,
      [0055] 所述發(fā)送設(shè)備,用于W塊的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼;在編碼后的TCP數(shù)據(jù)中 加入編碼TCP報(bào)文頭;所述編碼TCP報(bào)文頭包括編碼數(shù)指示字段;所述編碼數(shù)指示字段表 征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè)數(shù);并將加入所述編碼TCP報(bào)文頭 的TCP數(shù)據(jù)發(fā)送給所述接收設(shè)備;
      [0056] 所述接收設(shè)備,用于接收所述發(fā)送設(shè)備發(fā)送的數(shù)據(jù)包;當(dāng)每個(gè)塊中收到的數(shù)據(jù)包 個(gè)數(shù)大于等于所述編碼TCP報(bào)文頭中的編碼數(shù)指示字段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),向所述發(fā)送 設(shè)備回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確認(rèn);并對(duì)已確認(rèn)塊中的數(shù)據(jù)進(jìn)行解碼。
      [0057] 上述方案中,所述發(fā)送設(shè)備,還用于向所述接收設(shè)備發(fā)送TCP連接建立消息;所述 TCP連接建立消息攜帶所述發(fā)送設(shè)備支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí);并接收所述接收設(shè)備返回 的確認(rèn)消息;
      [0058] 所述接收設(shè)備,還用于收到所述TCP連接建立消息后,向所述發(fā)送設(shè)備返回確認(rèn) 消息;所述確認(rèn)消息攜帶所述接收設(shè)備支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí)。
      [0059] 本發(fā)明實(shí)施例提供的數(shù)據(jù)傳輸方法、系統(tǒng)及相關(guān)設(shè)備,發(fā)送端W塊化lock)的方 式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼;在編碼后的TCP數(shù)據(jù)中加入編碼TCP報(bào)文頭;所述編碼TCP報(bào) 文頭包括編碼數(shù)指示字段;所述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收 的最少數(shù)據(jù)包個(gè)數(shù);并將加入所述編碼TCP報(bào)文頭的TCP數(shù)據(jù)發(fā)送給接收端;所述接收端 接收數(shù)據(jù)包;當(dāng)每個(gè)塊中收到的數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼TCP報(bào)文頭中的編碼數(shù)指示 字段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),向所述發(fā)送端回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確認(rèn);并對(duì)已確認(rèn)塊 中的數(shù)據(jù)進(jìn)行解碼,由于所述接收端僅需要進(jìn)行一次解碼運(yùn)算,如此,能有效地減輕接收端 的計(jì)算資源消耗。同時(shí),由于收到數(shù)據(jù)包后,不需要解碼運(yùn)算后再向所述接收端回復(fù)seen ack,使得seen ack回復(fù)更加及時(shí),如此,能有效地提高數(shù)據(jù)包的發(fā)送速率。
      【附圖說明】 W60] 在附圖(其不一定是按比例繪制的)中,相似的附圖標(biāo)記可在不同的視圖中描述 相似的部件。具有不同字母后綴的相似附圖標(biāo)記可表示相似部件的不同示例。附圖W示例 而非限制的方式大體示出了本文中所討論的各個(gè)實(shí)施例。
      [0061] 圖1為本發(fā)明實(shí)施例一數(shù)據(jù)發(fā)送方法流程示意圖;
      [0062] 圖2為本發(fā)明實(shí)施例一數(shù)據(jù)接收方法流程示意圖;
      [0063] 圖3為本發(fā)明實(shí)施例二數(shù)據(jù)傳輸系統(tǒng)結(jié)構(gòu)示意圖;
      [0064] 圖4為本發(fā)明實(shí)施例二發(fā)送端操作處理流程示意圖; 陽(yáng)0化]圖5為本發(fā)明實(shí)施例二發(fā)送端結(jié)構(gòu)示意圖;
      [0066] 圖6為本發(fā)明實(shí)施例二編碼TCP報(bào)文頭組成示意圖;
      [0067] 圖7為本發(fā)明實(shí)施例二接收端操作處理流程示意圖;
      [0068] 圖8為本發(fā)明實(shí)施例二發(fā)送端側(cè)協(xié)商通信方式的流程示意圖;
      [0069] 圖9為本發(fā)明實(shí)施例二接收端側(cè)協(xié)商通信方式的流程示意圖;
      [0070] 圖10為本發(fā)明實(shí)施例Ξ發(fā)送設(shè)備結(jié)構(gòu)示意圖; 陽(yáng)071] 圖11為本發(fā)明實(shí)施例Ξ接收設(shè)備結(jié)構(gòu)示意圖;
      [0072] 圖12為本發(fā)明實(shí)施例Ξ?dāng)?shù)據(jù)傳輸系統(tǒng)結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0073] 下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)地描述。
      [0074] 描述本發(fā)明實(shí)施例之前,先詳細(xì)了解一下基于NC TCP的數(shù)據(jù)傳輸方案和基于 CTCP的數(shù)據(jù)傳輸方案。
      [00巧]基于NC TCP的數(shù)據(jù)傳輸方案包括:發(fā)送端對(duì)傳輸?shù)脑紨?shù)據(jù)包進(jìn)行隨機(jī)線性編 碼,接收端進(jìn)行解碼。編碼時(shí)引入冗余編碼,即使在無線網(wǎng)絡(luò)傳輸中發(fā)生丟包,接收端也有 很大概率可w解碼出原始數(shù)據(jù)包,從而保證數(shù)據(jù)包的傳輸速率。
      [0076] 具體地,在該方案中,為了引入網(wǎng)絡(luò)編碼技術(shù),需要對(duì)現(xiàn)有的TCP進(jìn)行一些修改。 首先,在發(fā)送端,發(fā)送方發(fā)送原始數(shù)據(jù)包的隨機(jī)線性組合,每個(gè)隨機(jī)線性組合的系數(shù)都是從 一個(gè)很大的域中選取的元素,即使一個(gè)已發(fā)送的線性組合丟失了,下一個(gè)成功接收的線性 組合仍可使解碼順利完成,運(yùn)樣可W掩蓋TCP數(shù)據(jù)包的丟失。其次,在接收端,引入了 seen ack的機(jī)制。seen ack機(jī)制解釋為:當(dāng)接收端收到一定的信息可W解碼某個(gè)數(shù)據(jù)包時(shí),則立 即向發(fā)送端回復(fù)此數(shù)據(jù)包的seen ack。此時(shí),接收端不需要解碼數(shù)據(jù)包,待收到足夠信息后 再進(jìn)行解碼。發(fā)送端收到seen ack后,則繼續(xù)發(fā)送后續(xù)數(shù)據(jù)包。
      [0077] 但基于NC TCP的數(shù)據(jù)傳輸方案中,將所有數(shù)據(jù)均放在一個(gè)編解碼矩陣中進(jìn)行編解 碼,在某些最壞情況下,接收方必須收到整個(gè)文件的最后一個(gè)編碼數(shù)據(jù)包后才能進(jìn)行解碼, 從而影響用戶體驗(yàn)。為了解決運(yùn)個(gè)問題,基于CTCP的數(shù)據(jù)傳輸方案采用分塊編解碼機(jī)制, 即將整個(gè)文件切分成不同的子模塊,在每個(gè)模塊中分別進(jìn)行編解碼。
      [0078] 上述兩種方案,在接收端需要進(jìn)行兩次解碼相關(guān)的運(yùn)算。具體地,接收端收到一個(gè) 編碼數(shù)據(jù)包后,首先需要提取出編碼數(shù)據(jù)包中的編碼系數(shù),和本地存儲(chǔ)的系數(shù)矩陣進(jìn)行一 次運(yùn)算,得出seen ack,將其返回給發(fā)送端。然后判斷系數(shù)矩陣是否達(dá)到解碼的條件。若沒 有達(dá)到解碼條件,則返回。若達(dá)到解碼條件,則進(jìn)行一次解碼運(yùn)算,解碼出原始數(shù)據(jù)包提交 給應(yīng)用層。
      [0079] 從上面的流程可W看出,現(xiàn)有的網(wǎng)絡(luò)編碼TCP機(jī)制在接收端需要進(jìn)行兩次解碼運(yùn) 算。兩次解碼一方面會(huì)過多消耗接收端的計(jì)算資源,給接收端帶來負(fù)載;另一方面,發(fā)送 seen ack前的系數(shù)矩陣運(yùn)算會(huì)導(dǎo)致seen ack回復(fù)有延時(shí),由于TCP協(xié)議中發(fā)送端在收到 seen ack后才能夠發(fā)送新的數(shù)據(jù)包。因此seen ack的回復(fù)延時(shí)會(huì)導(dǎo)致發(fā)送端減低發(fā)送速 率。
      [0080] 基于此,在本發(fā)明的各種實(shí)施例中:發(fā)送端W塊化lock)的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn) 行編碼;在編碼后的TCP數(shù)據(jù)中加入編碼TCP報(bào)文頭;所述編碼TCP報(bào)文頭包括編碼數(shù)指 示字段;所述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè) 數(shù);并將加入所述編碼TCP報(bào)文頭的TCP數(shù)據(jù)發(fā)送給接收端;所述接收端接收數(shù)據(jù)包;當(dāng)每 個(gè)塊中收到的數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼TCP報(bào)文頭中的編碼數(shù)指示字段對(duì)應(yīng)的數(shù)據(jù) 包個(gè)數(shù)時(shí),向所述發(fā)送端回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確認(rèn);并對(duì)已確認(rèn)塊中的數(shù)據(jù)進(jìn)行解 碼。 陽(yáng)0川 實(shí)施例一
      [0082] 本實(shí)施例提供一種數(shù)據(jù)發(fā)送方法,如圖1所示,該方法包括:
      [0083] 步驟101 :發(fā)送端W塊化lock)的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼;
      [0084] 具體地,所述發(fā)送端將所述待發(fā)送數(shù)據(jù)劃分為等長(zhǎng)數(shù)據(jù)包;
      [0085] 對(duì)劃分后的數(shù)據(jù)包進(jìn)行分塊,對(duì)每個(gè)塊中的數(shù)據(jù)包分別進(jìn)行編碼,并在編碼過程 中生成對(duì)應(yīng)的編碼冗余數(shù)據(jù)包;
      [0086] 將所述編碼冗余數(shù)據(jù)包插入至TCP數(shù)據(jù)發(fā)送隊(duì)列中的相應(yīng)位置,形成編碼后的 TCP數(shù)據(jù)。
      [0087] 其中,所述編碼冗余數(shù)據(jù)包的作用為:數(shù)據(jù)發(fā)送過程中出現(xiàn)丟包后,接收到可W根 據(jù)所述編碼冗余數(shù)據(jù)包解碼出原始數(shù)據(jù)包。
      [0088] 所述將所述編碼冗余數(shù)據(jù)包插入至TCP數(shù)據(jù)發(fā)送隊(duì)列中的相應(yīng)位置,具體為:
      [0089] 將每個(gè)塊中生成的編碼冗余數(shù)據(jù)包插入到對(duì)應(yīng)塊的原始數(shù)據(jù)包之后,將插入的編 碼冗余數(shù)據(jù)包按照規(guī)定的方式進(jìn)行標(biāo)號(hào);并更新后續(xù)數(shù)據(jù)包的序號(hào)。
      [0090] 相應(yīng)地,編碼后每個(gè)塊里包含原始數(shù)據(jù)包和生成的編碼冗余數(shù)據(jù)包,運(yùn)些數(shù)據(jù)包 形成編碼后的TCP數(shù)據(jù)。
      [0091] 運(yùn)里,編碼所采用的算法可W是隨機(jī)線性網(wǎng)絡(luò)編碼算法,編碼中引入冗余系數(shù)R, 從而生成對(duì)應(yīng)的編碼冗余數(shù)據(jù)包;其中,R可W根據(jù)網(wǎng)絡(luò)條件設(shè)置。
      [0092] 實(shí)際應(yīng)用時(shí),由于本實(shí)施例的方案是基于網(wǎng)絡(luò)編碼的TCP,而網(wǎng)絡(luò)編碼TCP需要發(fā) 送端、接收端對(duì)數(shù)據(jù)進(jìn)行編碼、解碼,在網(wǎng)絡(luò)中傳遞的是編碼后的數(shù)據(jù)包,因此需要部署網(wǎng) 絡(luò)編碼TCP的系統(tǒng)無法與標(biāo)準(zhǔn)TCP的系統(tǒng)互通?;诖耍趫?zhí)行本步驟之前,該方法還可W 包括: 陽(yáng)093] 所述發(fā)送端向所述接收端發(fā)送TCP連接建立消息(TCP sync);所述TCP連接建立 消息攜帶所述發(fā)送端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí); 陽(yáng)094] 接收所述接收端返回的確認(rèn)消息(sync ack);所述確認(rèn)消息攜帶所述接收端支持 網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí)。 陽(yáng)09引其中,由于TCP報(bào)文頭的保留化eserve)字段有6比特化it),因此,所述TCP連接 建立消息攜帶所述發(fā)送端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí),具體可W是:TCP報(bào)文頭的Reserve字 段末位bit為1 ;相應(yīng)地,所述確認(rèn)消息攜帶所述接收端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí),具體可 W是:TCP報(bào)文頭的Reserve字段末位bit為1。
      [0096] 實(shí)際應(yīng)用時(shí),如果收到的確認(rèn)消息中,Reserve字段末位bit不是1,則說明所述接 收端不支持網(wǎng)絡(luò)編碼TCP,因此所述發(fā)送端使用標(biāo)準(zhǔn)TCP與所述接收端進(jìn)行通信。
      [0097] 從上面的描述中可W看出,本實(shí)施例在TCP連接建立時(shí),通過協(xié)商的方法,使得部 署網(wǎng)絡(luò)編碼TCP的系統(tǒng)可W與標(biāo)準(zhǔn)TCP系統(tǒng)互通。
      [0098] 步驟102 :發(fā)送端在編碼后的TCP數(shù)據(jù)中加入編碼TCP報(bào)文頭;所述編碼TCP報(bào)文 頭包括編碼數(shù)指示字段;所述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的 最少數(shù)據(jù)包個(gè)數(shù);
      [0099] 運(yùn)里,所述編碼TCP報(bào)文頭還包括:塊編號(hào)指示字段、編碼系數(shù)指示字段、W及數(shù) 據(jù)包序號(hào)指示字段。其中,所述編碼系數(shù)指示字段表征編碼算法生成的系數(shù),原始數(shù)據(jù)包按 照此系數(shù)進(jìn)行先行組合后生成編碼數(shù)據(jù)包。
      [0100] 實(shí)際應(yīng)用時(shí),所述編碼數(shù)指示字段的值為對(duì)應(yīng)塊中原始數(shù)據(jù)包的個(gè)數(shù)。 陽(yáng)101] 步驟103 :將加入所述編碼TCP報(bào)文頭的TCP數(shù)據(jù)發(fā)出。
      [0102] 該方法還可W包括: 陽(yáng)103] 所述發(fā)送端對(duì)發(fā)送的每個(gè)數(shù)據(jù)包均啟動(dòng)重傳定時(shí)器; 陽(yáng)104] 滿足重傳條件時(shí),對(duì)需要重傳的編碼后的數(shù)據(jù)包直接進(jìn)行重傳。 陽(yáng)1化]該方法還可W包括:
      [0106] 所述發(fā)送端接收到seen ack后,從所述TCP數(shù)據(jù)發(fā)送隊(duì)列中刪除seen ack對(duì)應(yīng) 數(shù)據(jù)包序號(hào)之前的數(shù)據(jù)。 陽(yáng)107] 本實(shí)施例還提供一種數(shù)據(jù)接收方法,如圖2所示,該方法包括:
      [0108] 步驟201 :接收端接收數(shù)據(jù)包;
      [0109] 運(yùn)里,實(shí)際應(yīng)用時(shí),由于本實(shí)施例的方案是基于網(wǎng)絡(luò)編碼的TCP,而網(wǎng)絡(luò)編碼TCP 需要發(fā)送端、接收端對(duì)數(shù)據(jù)進(jìn)行編碼、解碼,在網(wǎng)絡(luò)中傳遞的是編碼后的數(shù)據(jù)包,因此需要 部署網(wǎng)絡(luò)編碼TCP的系統(tǒng)無法與標(biāo)準(zhǔn)TCP的系統(tǒng)互通。基于此,在執(zhí)行本步驟之前,該方法 還可W包括:
      [0110] 接收發(fā)送端發(fā)送的TCP連接建立消息(TCP sync);所述TCP連接建立消息攜帶所 述發(fā)送端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí); 陽(yáng)1?] 所述接收端向所述發(fā)送端返回確認(rèn)消息(sync ack);所述確認(rèn)消息攜帶所述接收 端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí)。
      [0112] 其中,由于TCP報(bào)文頭的Reserve字段有化it,因此,所述TCP連接建立消息攜帶 所述發(fā)送端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí),具體可W是:TCP報(bào)文頭的Reserve字段末位bit為 1 ;相應(yīng)地,所述確認(rèn)消息攜帶所述接收端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí),具體可W是:TCP報(bào)文 頭的Reserve字段末位bit為1。
      [0113] 實(shí)際應(yīng)用時(shí),如果收到的TCP連接建立消息中,Reserve字段末位bit不是1,則說 明所述發(fā)送端不支持網(wǎng)絡(luò)編碼TCP,因此,所述接收端在回復(fù)的確認(rèn)消息中,將Reserve字 段末位bit不置為1 ;所述接收端使用標(biāo)準(zhǔn)TCP與所述發(fā)送端進(jìn)行通信。
      [0114] 從上面的描述中可W看出,本實(shí)施例在TCP連接建立時(shí),通過協(xié)商的方法,使得部 署網(wǎng)絡(luò)編碼TCP的系統(tǒng)可W與標(biāo)準(zhǔn)TCP系統(tǒng)互通。
      [0115] 步驟202 :當(dāng)每個(gè)塊中收到的數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼TCP報(bào)文頭中的編碼 數(shù)指示字段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),向發(fā)送端回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確認(rèn);所述編碼數(shù) 指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè)數(shù);
      [0116] 運(yùn)里,在執(zhí)行本步驟之前,該方法還可W包括:
      [0117] 所述接收端將收到的數(shù)據(jù)包放入接收隊(duì)列中;
      [0118] 所述接收端根據(jù)數(shù)據(jù)包對(duì)應(yīng)的編碼TCP報(bào)文頭信息,統(tǒng)計(jì)接收隊(duì)列中每個(gè)塊中收 到的數(shù)據(jù)包個(gè)數(shù)。
      [0119] 實(shí)際應(yīng)用時(shí),當(dāng)塊中收到的數(shù)據(jù)包的個(gè)數(shù)小于所述編碼TCP報(bào)文頭中的編碼數(shù)指 示字段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),所述接收端向所述發(fā)送端回復(fù)seen ack,對(duì)收到的序號(hào)最小 的數(shù)據(jù)包進(jìn)行確認(rèn)。
      [0120] 運(yùn)里,需要說明的是:實(shí)際應(yīng)用時(shí),所述接收端確認(rèn)當(dāng)前塊之前的數(shù)據(jù)包均已被確 認(rèn)后才回復(fù)seen ack,否則不回復(fù)seen ack。 陽(yáng)121] 步驟203 :所述接收端對(duì)已確認(rèn)塊中的數(shù)據(jù)進(jìn)行解碼。
      [0122] 運(yùn)里,所述已確認(rèn)的塊是指:已向所述發(fā)送端回復(fù)seen ack的塊,換句話說,進(jìn)行 解碼的塊中所接收的數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼TCP報(bào)文頭中編碼數(shù)指示字段對(duì)應(yīng)的 數(shù)據(jù)包個(gè)數(shù)。
      [0123] 本實(shí)施例提供的數(shù)據(jù)傳輸方法,發(fā)送端W塊化lock)的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編 碼;在編碼后的TCP數(shù)據(jù)中加入編碼TCP報(bào)文頭;所述編碼TCP報(bào)文頭包括編碼數(shù)指示字 段;所述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè)數(shù);并 將加入所述編碼TCP報(bào)文頭的TCP數(shù)據(jù)發(fā)送給接收端;所述接收端接收數(shù)據(jù)包;當(dāng)每個(gè)塊 中收到的數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼TCP報(bào)文頭中的編碼數(shù)指示字段對(duì)應(yīng)的數(shù)據(jù)包個(gè) 數(shù)時(shí),向所述發(fā)送端回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確認(rèn);并對(duì)已確認(rèn)塊中的數(shù)據(jù)進(jìn)行解碼, 由于所述接收端僅需要進(jìn)行一次解碼運(yùn)算,如此,能有效地減輕接收端的計(jì)算資源消耗。同 時(shí),由于收到數(shù)據(jù)包后,不需要解碼運(yùn)算后再向所述接收端回復(fù)seen ack,使得seen ack回 復(fù)更加及時(shí),如此,能有效地提高數(shù)據(jù)包的發(fā)送速率。 陽(yáng)124] 實(shí)施例二
      [01巧]在實(shí)施實(shí)例一的基礎(chǔ)上,本實(shí)施例詳細(xì)地描述數(shù)據(jù)傳輸過程。 陽(yáng)126] 如圖3所示,本實(shí)施例的系統(tǒng)結(jié)構(gòu)與現(xiàn)有的系統(tǒng)結(jié)構(gòu)不相同。具體地,現(xiàn)有的系統(tǒng) 中,基于NC TCP的系統(tǒng)是在TCP層和IP層間插入一個(gè)獨(dú)立的編解碼層;基于CTCP的系統(tǒng) 是基于用戶數(shù)據(jù)報(bào)協(xié)議(UDP,Use;r化tagram Protocol),單獨(dú)的一套編解碼、傳輸系統(tǒng);而 本實(shí)施例的系統(tǒng)是將網(wǎng)絡(luò)編碼功能與TCP協(xié)議找集成在一起實(shí)現(xiàn)的。在圖3中,一表示數(shù) 據(jù)的傳輸方向;-----?表示seen ack的傳輸方向。 陽(yáng)127] 本實(shí)施例的編解碼機(jī)制與基于CTCP的數(shù)據(jù)傳輸方法的分塊編解碼機(jī)制類似。
      [0128] 首先,描述發(fā)送端的具體操作。如圖4所示,發(fā)送端的操作主要包括W下步驟:
      [0129] 步驟401 :應(yīng)用通過socket接口向TCP協(xié)議找發(fā)送連續(xù)的數(shù)據(jù);TCP協(xié)議找將連續(xù) 的數(shù)據(jù)劃分為等長(zhǎng)數(shù)據(jù)包;
      [0130] 運(yùn)里,本步驟的具體實(shí)現(xiàn)是標(biāo)準(zhǔn)TCP的處理流程。 陽(yáng)131] 步驟402 :對(duì)劃分后的數(shù)據(jù)包進(jìn)行分塊;并對(duì)每個(gè)block中的數(shù)據(jù)包分別進(jìn)行編 碼;
      [0132] 運(yùn)里,一個(gè)block可W包括若干數(shù)據(jù)包;編碼采用隨機(jī)線性網(wǎng)絡(luò)編碼算法,并在編 碼過程中引入冗余系數(shù)R,W便編碼中生成對(duì)應(yīng)個(gè)數(shù)的冗余數(shù)據(jù)包,使得數(shù)據(jù)發(fā)送過程中出 現(xiàn)丟包后,接收端根據(jù)冗余數(shù)據(jù)包可W解碼出原始數(shù)據(jù)包。其中,R可W根據(jù)網(wǎng)絡(luò)條件確定。 陽(yáng)133] 下面舉例說明編碼過程。
      [0134] 首先,每個(gè)block包含的原始數(shù)據(jù)包數(shù)η的計(jì)算方法為:使得η與R乘積是整數(shù)的 最小η的取值。如圖5所示,假設(shè)R = 1. 5,則每個(gè)block中的原始數(shù)據(jù)包的個(gè)數(shù)為2。
      [0135] 由于R= 1.5,則每2個(gè)包進(jìn)行編碼后會(huì)生成3個(gè)數(shù)據(jù)包。此外,為了提高效率,對(duì) 原始數(shù)據(jù)包不編碼。因此,每個(gè)block中的2個(gè)原始數(shù)據(jù)包編碼后會(huì)新生成1個(gè)編碼冗余 數(shù)據(jù)包。
      [0136] 其次,將生成的編碼冗余數(shù)據(jù)包插入至TCP的數(shù)據(jù)發(fā)送隊(duì)列中相應(yīng)位置,具體地, 如圖5所示,將每個(gè)block中生成的編碼冗余數(shù)據(jù)包插入到此block的原始數(shù)據(jù)包之后,對(duì) 編碼冗余包按照與原始數(shù)據(jù)包類似的方法進(jìn)行標(biāo)號(hào),并更新后續(xù)數(shù)據(jù)包的序號(hào);此時(shí),每個(gè) block中包含3個(gè)數(shù)據(jù)包:2個(gè)原始數(shù)據(jù)包和1個(gè)編碼冗余數(shù)據(jù)包。
      [0137] 步驟403 :發(fā)送端在TCP數(shù)據(jù)-載荷(payload)中加入編碼TCP報(bào)文頭;
      [0138] 運(yùn)里,如圖6所示,所述編碼TCP報(bào)文頭包含:blocknum、編碼系數(shù)、seqno W及 CodeCount字段。其中,blocknum表征block的編號(hào);編碼系數(shù)表征編碼算法生成的系數(shù), 原始數(shù)據(jù)包按照此系數(shù)進(jìn)行線性組合后生成最終的編碼數(shù)據(jù)包;seqno表征數(shù)據(jù)包的序 號(hào);CodeCount表征此block中收到幾個(gè)數(shù)據(jù)包便可成功解碼,換句話說,表征能成功解碼 此block中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包的個(gè)數(shù)。運(yùn)里,CodeCount的值設(shè)置為一個(gè)block 中原始數(shù)據(jù)包數(shù),在上述例子中,CodeCount的值是2。
      [0139] 步驟404 :將加入所述編碼TCP報(bào)文頭的TCP數(shù)據(jù)通過IP協(xié)議找發(fā)送到網(wǎng)絡(luò);
      [0140] 運(yùn)里。對(duì)每個(gè)發(fā)送的數(shù)據(jù)包(包括原始包和編碼冗余包)均啟動(dòng)重傳定時(shí)器,并 當(dāng)重傳條件滿足時(shí),對(duì)數(shù)據(jù)包直接進(jìn)行重傳。 陽(yáng)141] 其中,重傳條件的判斷與標(biāo)準(zhǔn)TCP流程中的重傳條件判斷相同。此方法與現(xiàn)有機(jī) 制不同:目前基于NC TCP、CTCP的數(shù)據(jù)傳輸方法中,判斷數(shù)據(jù)傳輸超時(shí)后,對(duì)編碼緩存/ block中的數(shù)據(jù)重新編碼后再發(fā)送;而重新編碼會(huì)導(dǎo)致接收端需要判斷接收的編碼包是否 可W更新解碼系數(shù)矩陣(即編碼包的系數(shù)向量是否與接收端的系數(shù)矩陣線性無關(guān)),進(jìn)而 會(huì)導(dǎo)致接收端在解碼前需要進(jìn)行一次系數(shù)矩陣運(yùn)算。而本實(shí)施例中,每個(gè)block中數(shù)據(jù)包 的系數(shù)向量是線性無關(guān)的,傳輸超時(shí)后重傳 block中的數(shù)據(jù)包,因此接收端始終收到線性 無關(guān)的系數(shù)向量,無需對(duì)收到的數(shù)據(jù)包進(jìn)行檢查,直接統(tǒng)計(jì)每個(gè)block中接收到的數(shù)據(jù)包 個(gè)數(shù),當(dāng)接收的數(shù)據(jù)包個(gè)數(shù)大于或等于CodeCount值時(shí)進(jìn)行解碼即可。
      [0142] 步驟405 :收到接收端的seen ack后,從數(shù)據(jù)發(fā)送隊(duì)列中刪除seen ack對(duì)應(yīng)的數(shù) 據(jù)包序號(hào)之前的數(shù)據(jù)。 陽(yáng)143] 其次,描述接收端的具體操作。接收端對(duì)收到的編碼數(shù)據(jù)包進(jìn)行解碼,將原始數(shù)據(jù) 包上傳到應(yīng)用層,并向發(fā)送端反饋seen ack。如圖7所示,接收端的操作主要包括W下步 驟:
      [0144] 步驟701 :將接收到的數(shù)據(jù)包放入TCP協(xié)議找的接收隊(duì)列中;
      [0145] 步驟702 :TCP協(xié)議找根據(jù)數(shù)據(jù)包的編碼TCP報(bào)頭信息,統(tǒng)計(jì)每個(gè)block中收到的 數(shù)據(jù)包的個(gè)數(shù),并記錄每個(gè)block對(duì)應(yīng)的CodeCount值; 陽(yáng)146] 步驟703 :當(dāng)block中收到的數(shù)據(jù)包的個(gè)數(shù)大于等于CodeCount值時(shí),向發(fā)送端回 復(fù)seen ack,對(duì)整個(gè)block進(jìn)行確認(rèn); 陽(yáng)147] 運(yùn)里,如果block中收到的數(shù)據(jù)包的個(gè)數(shù)小于CodeCount值,則向發(fā)送端回復(fù)seen ack,對(duì)收到的序號(hào)最小的數(shù)據(jù)包進(jìn)行確認(rèn);基于圖5所示的上述例子,如果接收端收到序 號(hào)為No. 1和No. 3的兩個(gè)數(shù)據(jù)包(CodeCount = 2),則向發(fā)送端回復(fù)seen ack3, W對(duì)整個(gè) blockl進(jìn)行確認(rèn);發(fā)送端收到seen ack3后,會(huì)繼續(xù)發(fā)送序號(hào)為No. 4的數(shù)據(jù)包(雖然此 時(shí)序號(hào)為No. 2的數(shù)據(jù)包有可能在傳輸中丟失,但是接收端可W解碼出序號(hào)為No. 2的數(shù)據(jù) 包);如果接收端僅收到序號(hào)為No. 1的數(shù)據(jù)包,則向發(fā)送端回復(fù)seen ackl,表示收到序號(hào) 為No. 1的數(shù)據(jù)包。
      [0148] 其中,回復(fù)seen ack時(shí),要確認(rèn)當(dāng)前block之前的數(shù)據(jù)包均已被確認(rèn),否則不回復(fù) seen 曰ck〇
      [0149] 步驟704 :TCP協(xié)議找對(duì)收到數(shù)據(jù)包個(gè)數(shù)大于或等于CodeCount的block中的數(shù)據(jù) 進(jìn)行解碼,計(jì)算出原始數(shù)據(jù)后通過Socket接口上傳到應(yīng)用層。 陽(yáng)150] 運(yùn)里,從接收端的處理步驟可W看出,僅需要進(jìn)行一次解碼運(yùn)算。與現(xiàn)有網(wǎng)絡(luò)編碼 TCP技術(shù)不同,本實(shí)施例中,接收端僅需要比較block中收到的數(shù)據(jù)包的個(gè)數(shù)與CodeCount 的值,即可W向發(fā)送端回復(fù)seen ack。而現(xiàn)有網(wǎng)絡(luò)編碼TCP技術(shù)中,回復(fù)seen ack之前,需 要進(jìn)行一次系數(shù)矩陣運(yùn)算。因此采用本實(shí)施例的方案,不僅減輕了接收端的計(jì)算資源消耗, 也使得seen ack回復(fù)更及時(shí),從而提高TCP的發(fā)送速率。 陽(yáng)151] 同時(shí),由于本實(shí)施例的方案是基于網(wǎng)絡(luò)編碼的TCP,而網(wǎng)絡(luò)編碼TCP需要發(fā)送端、 接收端對(duì)數(shù)據(jù)進(jìn)行編碼、解碼,在網(wǎng)絡(luò)中傳遞的是編碼后的數(shù)據(jù)包,因此需要部署網(wǎng)絡(luò)編碼 TCP的系統(tǒng)無法與標(biāo)準(zhǔn)TCP的系統(tǒng)互通?;诖?,本實(shí)施例在TCP連接建立階段提出一種協(xié) 商方法,基于圖3所示的系統(tǒng),使得部署網(wǎng)絡(luò)編碼TCP的系統(tǒng)可W與標(biāo)準(zhǔn)TCP系統(tǒng)互通。具 體地, 陽(yáng)152] 發(fā)送端的處理過程,如圖8所示,主要包括W下步驟:
      [0153] 步驟801 :向接收端發(fā)送TCP連接建立消息燈CP sync)時(shí),將TCP報(bào)文頭的 Reserve字段末位bit置1 ;
      [0154] 運(yùn)里,TCP報(bào)文頭中有化it的Reserve預(yù)留字段,將Reserve字段末位bit置1, 代表發(fā)送端支持網(wǎng)絡(luò)編碼TCP。
      [01巧]步驟802 :收到接收端返回的確認(rèn)消息(sync ack)后,Reserve字段末位bit是 1,則代表接收端支持網(wǎng)絡(luò)編碼TCP,后續(xù)發(fā)送端與接收端使用網(wǎng)絡(luò)編碼TCP進(jìn)行通信。 陽(yáng)156] 運(yùn)里,如果收到接收端的sync ack消息中,Reserve字段末位bit不是1,則代表 對(duì)端不支持網(wǎng)絡(luò)編碼TCP,后續(xù)發(fā)送端與接收端使用標(biāo)準(zhǔn)TCP進(jìn)行通信。 陽(yáng)157] 對(duì)于接收端,處理過程如圖9所示,主要包括W下步驟: 陽(yáng)158] 步驟901 :收到TCP連接建立消息燈CP sync)時(shí),檢查TCP報(bào)頭中Reserve字段 末位bit是否置1 ;
      [0159] 步驟902 :確定Reserve字段末位bit是1時(shí),向發(fā)送端回復(fù)確認(rèn)消息(sync ack), 確認(rèn)消息(sync ack)的TCP報(bào)文的Reserve字段末位bit為1。
      [0160] 運(yùn)里,收到的TCP連接建立消息燈CP sync)的TCP報(bào)文頭中的Reserve字段末位 bit是1,代表發(fā)送端支持網(wǎng)絡(luò)編碼TCP。后續(xù)接收端與發(fā)送端使用網(wǎng)絡(luò)編碼TCP進(jìn)行通信。 陽(yáng)161] 如果收到的TCP連接建立消息燈CP sync)的TCP報(bào)文頭中的Reserve字段末位 bit不是1,代表發(fā)送端不支持網(wǎng)絡(luò)編碼TCP,因此,向?qū)Χ嘶貜?fù)的sync ack中,TCP報(bào)頭的 Reserve字段末位bit不置1,后續(xù)接收端與發(fā)送端使用標(biāo)準(zhǔn)TCP與對(duì)端通信。 陽(yáng)16引從上面的描述中可W看出,本實(shí)施例提供的方案,現(xiàn)有的網(wǎng)絡(luò)編碼TCP機(jī)制,一方 面在接收端需要進(jìn)行兩次解碼運(yùn)算,而兩次解碼一方面會(huì)過多消耗接收端的計(jì)算資源,給 接收端帶來負(fù)載;另一方面,發(fā)送seen ack前的系數(shù)矩陣運(yùn)算會(huì)導(dǎo)致seen ack回復(fù)有延 時(shí),由于TCP中發(fā)送端在收到seen ack后才能夠發(fā)送新的數(shù)據(jù)包,因此seen ack的回復(fù)延 時(shí)會(huì)導(dǎo)致TCP發(fā)送端減低發(fā)送速率。而本實(shí)施例提供的方案,接收端僅需要進(jìn)行一次解碼 運(yùn)算,如此,不僅減輕了接收端的計(jì)算資源消耗,也使得seen ack的回復(fù)更及時(shí),從而提高 了數(shù)據(jù)的發(fā)送速率。 陽(yáng)163] 實(shí)施例Ξ
      [0164] 為實(shí)現(xiàn)實(shí)施例一、二的方法,本實(shí)施例提供一種發(fā)送設(shè)備,如圖10所示,該發(fā)送設(shè) 備包括:編碼模塊101、插入單元102 W及第一發(fā)送單元103 ;其中,
      [01化]所述編碼模塊101,用于W塊化lock)的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼;
      [0166] 所述插入單元102,用于在編碼后的TCP數(shù)據(jù)中加入編碼TCP報(bào)文頭;所述編碼 TCP報(bào)文頭包括編碼數(shù)指示字段;所述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所 需接收的最少數(shù)據(jù)包個(gè)數(shù); 陽(yáng)167] 所述第一發(fā)送單元103,用于將加入所述編碼TCP報(bào)文頭的TCP數(shù)據(jù)發(fā)出。
      [0168] 其中,所述編碼單元101可W包括:劃分模塊、編碼模塊及位置插入模塊;其中,
      [0169] 所述劃分模塊,用于將所述待發(fā)送數(shù)據(jù)劃分為等長(zhǎng)數(shù)據(jù)包;并對(duì)劃分后的數(shù)據(jù)包 進(jìn)行分塊;
      [0170] 所述編碼模塊,用于每個(gè)塊中的數(shù)據(jù)包分別進(jìn)行編碼,并在編碼過程中生成對(duì)應(yīng) 的編碼冗余數(shù)據(jù)包; 陽(yáng)171] 所述位置插入模塊,用于將所述編碼冗余數(shù)據(jù)包插入至TCP數(shù)據(jù)發(fā)送隊(duì)列中的相 應(yīng)位置,形成編碼后的TCP數(shù)據(jù)。
      [0172] 其中,所述編碼冗余數(shù)據(jù)包的作用為:數(shù)據(jù)發(fā)送過程中出現(xiàn)丟包后,接收到可W根 據(jù)所述編碼冗余數(shù)據(jù)包解碼出原始數(shù)據(jù)包。 陽(yáng)173] 所述將所述編碼冗余數(shù)據(jù)包插入至TCP數(shù)據(jù)發(fā)送隊(duì)列中的相應(yīng)位置,具體為:
      [0174] 所述位置插入模塊將每個(gè)塊中生成的編碼冗余數(shù)據(jù)包插入到對(duì)應(yīng)塊的原始數(shù)據(jù) 包之后,將插入的編碼冗余數(shù)據(jù)包按照規(guī)定的方式進(jìn)行標(biāo)號(hào);并更新后續(xù)數(shù)據(jù)包的序號(hào)。
      [01巧]相應(yīng)地,編碼后每個(gè)塊里包含原始數(shù)據(jù)包和生成的編碼冗余數(shù)據(jù)包,運(yùn)些數(shù)據(jù)包 形成編碼后的TCP數(shù)據(jù)。
      [0176] 運(yùn)里,編碼所采用的算法可W是隨機(jī)線性網(wǎng)絡(luò)編碼算法,編碼中引入冗余系數(shù)R, 從而生成對(duì)應(yīng)的編碼冗余數(shù)據(jù)包;其中,R可W根據(jù)網(wǎng)絡(luò)條件設(shè)置。
      [0177] 實(shí)際應(yīng)用時(shí),由于本實(shí)施例的方案是基于網(wǎng)絡(luò)編碼的TCP,而網(wǎng)絡(luò)編碼TCP需要發(fā) 送端、接收端對(duì)數(shù)據(jù)進(jìn)行編碼、解碼,在網(wǎng)絡(luò)中傳遞的是編碼后的數(shù)據(jù)包,因此需要部署網(wǎng) 絡(luò)編碼TCP的系統(tǒng)無法與標(biāo)準(zhǔn)TCP的系統(tǒng)互通?;诖?,該發(fā)送設(shè)備還可W包括:第一接收 單元;其中,
      [0178] 所述第一發(fā)送單元,還用于向所述接收端發(fā)送TCP連接建立消息(TCP sync);所 述TCP連接建立消息攜帶所述發(fā)送設(shè)備支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí);
      [01巧]所述第一接收單元,用于接收所述接收端返回的確認(rèn)消息(sync ack);所述確認(rèn) 消息攜帶所述接收端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí);并在收到所述確認(rèn)消息(sync ack)后,觸 發(fā)所述編碼模塊101 ;
      [0180] 相應(yīng)地,所述編碼模塊101,用于收到所述第一接收單元的觸發(fā)后,W塊化lock) 的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼。 陽(yáng)181] 其中,由于TCP報(bào)文頭的Reserve字段有化it,因此,所述TCP連接建立消息攜帶 所述發(fā)送端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí),具體可W是:TCP報(bào)文頭的Reserve字段末位bit為 1 ;相應(yīng)地,所述確認(rèn)消息攜帶所述接收端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí),具體可W是:TCP報(bào)文 頭的Reserve字段末位bit為1。 陽(yáng)182] 實(shí)際應(yīng)用時(shí),如果收到的確認(rèn)消息中,Reserve字段末位bit不是1,則說明所述接 收端不支持網(wǎng)絡(luò)編碼TCP,因此所述發(fā)送設(shè)備使用標(biāo)準(zhǔn)TCP與所述接收端進(jìn)行通信。
      [0183] 從上面的描述中可W看出,本實(shí)施例在TCP連接建立時(shí),通過協(xié)商的方法,使得部 署網(wǎng)絡(luò)編碼TCP的系統(tǒng)可W與標(biāo)準(zhǔn)TCP系統(tǒng)互通。
      [0184] 運(yùn)里,所述編碼TCP報(bào)文頭還包括:塊編號(hào)指示字段、編碼系數(shù)指示字段、W及數(shù) 據(jù)包序號(hào)指示字段。其中,所述編碼系數(shù)指示字段表征編碼算法生成的系數(shù),原始數(shù)據(jù)包按 照此系數(shù)進(jìn)行先行組合后生成編碼數(shù)據(jù)包。
      [01化]實(shí)際應(yīng)用時(shí),所述編碼數(shù)指示字段的值為對(duì)應(yīng)塊中原始數(shù)據(jù)包的個(gè)數(shù)。 陽(yáng)186] 該發(fā)送設(shè)備還可W包括重傳單元,用于對(duì)發(fā)送的每個(gè)數(shù)據(jù)包均啟動(dòng)重傳定時(shí)器; 并在滿足重傳條件時(shí),對(duì)需要重傳的編碼后的數(shù)據(jù)包直接進(jìn)行重傳。
      [0187] 該發(fā)送設(shè)備還可W包括:刪除單元,用于接收到seen ack后,從所述TCP數(shù)據(jù)發(fā)送 隊(duì)列中刪除seen ack對(duì)應(yīng)數(shù)據(jù)包序號(hào)之前的數(shù)據(jù)。
      [0188] 實(shí)際應(yīng)用時(shí),所述編碼模塊101、插入單元102、劃分模塊、編碼模塊、位置插入模 塊W及刪除單元可由發(fā)送設(shè)備中的中央處理器(CPU, Central Processing化it)、微處理 器(MCU,Micro Control Unit)、數(shù)字信號(hào)處理器值SP,Digital Si即al Processor)或可 編程邏輯陣列(FPGA,F(xiàn)ield - Programm油le Gate Array)實(shí)現(xiàn);所述第一發(fā)送單元103可 由發(fā)送設(shè)備中的發(fā)射機(jī)實(shí)現(xiàn);所述第一接收單元可由發(fā)送設(shè)備中的接收機(jī)實(shí)現(xiàn);所述重傳 單元可由發(fā)送設(shè)備中的CPU MCU、DSP或FPGA結(jié)合發(fā)射機(jī)實(shí)現(xiàn)。
      [0189] 為實(shí)現(xiàn)實(shí)施例一、二的方法,本實(shí)施例還提供一種接收設(shè)備,如圖11所示,該接收 設(shè)備包括:第二接收單元111、第二發(fā)送單元112 W及解碼單元113 ;其中, 陽(yáng)190] 所述第二接收單元111,用于接收數(shù)據(jù)包; 陽(yáng)191] 所述第二發(fā)送單元112,用于當(dāng)每個(gè)塊中收到的數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼 TCP報(bào)文頭中的編碼數(shù)指示字段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),向發(fā)送端回復(fù)seen ack,對(duì)整個(gè)塊 進(jìn)行確認(rèn);所述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè) 數(shù); 陽(yáng)192] 所述解碼單元113,用于對(duì)已確認(rèn)塊中的數(shù)據(jù)進(jìn)行解碼。
      [0193] 其中,實(shí)際應(yīng)用時(shí),由于本實(shí)施例的方案是基于網(wǎng)絡(luò)編碼的TCP,而網(wǎng)絡(luò)編碼TCP 需要發(fā)送端、接收端對(duì)數(shù)據(jù)進(jìn)行編碼、解碼,在網(wǎng)絡(luò)中傳遞的是編碼后的數(shù)據(jù)包,因此需要 部署網(wǎng)絡(luò)編碼TCP的系統(tǒng)無法與標(biāo)準(zhǔn)TCP的系統(tǒng)互通?;诖?,所述第二接收單元111,還 用于接收發(fā)送端發(fā)送的TCP連接建立消息(TCP sync);所述TCP連接建立消息攜帶所述發(fā) 送端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí);
      [0194] 所述第二發(fā)送單元112,用于向所述發(fā)送端返回確認(rèn)消息(sync ack);所述確認(rèn) 消息攜帶所述接收設(shè)備支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí)。 陽(yáng)1巧]其中,由于TCP報(bào)文頭的Reserve字段有化it,因此,所述TCP連接建立消息攜帶 所述發(fā)送端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí),具體可W是:TCP報(bào)文頭的Reserve字段末位bit為 1 ;相應(yīng)地,所述確認(rèn)消息攜帶所述接收設(shè)備支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí),具體可W是:TCP報(bào) 文頭的Reserve字段末位bit為1。 陽(yáng)196] 實(shí)際應(yīng)用時(shí),如果收到的TCP連接建立消息中,Reserve字段末位bit不是1,則說 明所述發(fā)送端不支持網(wǎng)絡(luò)編碼TCP,因此,所述接收設(shè)備在回復(fù)的確認(rèn)消息中,將Reserve 字段末位bit不置為1 ;所述接收設(shè)備使用標(biāo)準(zhǔn)TCP與所述發(fā)送端進(jìn)行通信。
      [0197] 從上面的描述中可W看出,本實(shí)施例在TCP連接建立時(shí),通過協(xié)商的方法,使得部 署網(wǎng)絡(luò)編碼TCP的系統(tǒng)可W與標(biāo)準(zhǔn)TCP系統(tǒng)互通。
      [0198] 該接收設(shè)備還可W包括:統(tǒng)計(jì)單元,用于將收到的數(shù)據(jù)包放入接收隊(duì)列中;并根 據(jù)數(shù)據(jù)包對(duì)應(yīng)的編碼TCP報(bào)文頭信息,統(tǒng)計(jì)接收隊(duì)列中每個(gè)塊中收到的數(shù)據(jù)包個(gè)數(shù)。
      [0199] 實(shí)際應(yīng)用時(shí),當(dāng)塊中收到的數(shù)據(jù)包的個(gè)數(shù)小于所述編碼TCP報(bào)文頭中的編碼數(shù)指 示字段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),所述第二發(fā)送單元112向所述發(fā)送端回復(fù)seen ack,對(duì)收到 的序號(hào)最小的數(shù)據(jù)包進(jìn)行確認(rèn)。 陽(yáng)200] 運(yùn)里,需要說明的是:實(shí)際應(yīng)用時(shí),所述第二發(fā)送單元112確認(rèn)當(dāng)前塊之前的數(shù)據(jù) 包均已被確認(rèn)后才回復(fù)seen ack,否則不回復(fù)seen ack。 陽(yáng)201] 所述已確認(rèn)的塊是指:已向所述發(fā)送端回復(fù)seen ack的塊,換句話說,進(jìn)行解碼 的塊中所接收的數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼TCP報(bào)文頭中編碼數(shù)指示字段對(duì)應(yīng)的數(shù)據(jù) 包個(gè)數(shù)。 陽(yáng)202] 實(shí)際應(yīng)用時(shí),所述第二接收單元111可由接收設(shè)備中的接收機(jī)實(shí)現(xiàn);所述第二發(fā) 送單元112可由接收設(shè)備中的發(fā)射機(jī)實(shí)現(xiàn);所述解碼單元113 W及統(tǒng)計(jì)單元可由接收設(shè)備 中的 CPU、MCU、DSP 或 FPGA 實(shí)現(xiàn)。 陽(yáng)203] 本實(shí)施例還提供一種數(shù)據(jù)傳輸系統(tǒng),如圖12所示,該系統(tǒng)包括:發(fā)送設(shè)備121及接 收設(shè)備122 ;其中, 陽(yáng)204] 所述發(fā)送設(shè)備121,用于W塊化lock)的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼;在編碼后的 TCP數(shù)據(jù)中加入編碼TCP報(bào)文頭;所述編碼TCP報(bào)文頭包括編碼數(shù)指示字段;所述編碼數(shù) 指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè)數(shù);并將加入所述編碼 TCP報(bào)文頭的TCP數(shù)據(jù)發(fā)送給所述接收設(shè)備122 ; 陽(yáng)205] 所述接收設(shè)備122,用于接收所述發(fā)送設(shè)備121發(fā)送的數(shù)據(jù)包;當(dāng)每個(gè)塊中收到的 數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼TCP報(bào)文頭中的編碼數(shù)指示字段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),向所 述發(fā)送設(shè)備121回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確認(rèn);并對(duì)已確認(rèn)塊中的數(shù)據(jù)進(jìn)行解碼。 陽(yáng)206] 運(yùn)里,實(shí)際應(yīng)用時(shí),由于本實(shí)施例的方案是基于網(wǎng)絡(luò)編碼的TCP,而網(wǎng)絡(luò)編碼TCP 需要發(fā)送端、接收端對(duì)數(shù)據(jù)進(jìn)行編碼、解碼,在網(wǎng)絡(luò)中傳遞的是編碼后的數(shù)據(jù)包,因此需要 部署網(wǎng)絡(luò)編碼TCP的系統(tǒng)無法與標(biāo)準(zhǔn)TCP的系統(tǒng)互通?;诖?,所述發(fā)送設(shè)備121,還用于 向所述接收設(shè)備發(fā)送TCP連接建立消息(TCP sync);所述TCP連接建立消息攜帶所述發(fā)送 設(shè)備121支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí);并接收所述接收設(shè)備122返回的確認(rèn)消息(sync ack); 陽(yáng)207] 所述接收設(shè)備122,還用于收到所述TCP連接建立消息后,向所述發(fā)送設(shè)備121返 回確認(rèn)消息;所述確認(rèn)消息攜帶所述接收設(shè)備122支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí)。 陽(yáng)20引所述W塊化lock)的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼,具體包括: 陽(yáng)209] 所述發(fā)送設(shè)備121將所述待發(fā)送數(shù)據(jù)劃分為等長(zhǎng)數(shù)據(jù)包;
      [0210] 對(duì)劃分后的數(shù)據(jù)包進(jìn)行分塊,對(duì)每個(gè)塊中的數(shù)據(jù)包分別進(jìn)行編碼,并在編碼過程 中生成對(duì)應(yīng)的編碼冗余數(shù)據(jù)包; 陽(yáng)211 ] 將所述編碼冗余數(shù)據(jù)包插入至TCP數(shù)據(jù)發(fā)送隊(duì)列中的相應(yīng)位置,形成編碼后的 TCP數(shù)據(jù)。
      [0212] 其中,所述編碼冗余數(shù)據(jù)包的作用為:數(shù)據(jù)發(fā)送過程中出現(xiàn)丟包后,接收到可W根 據(jù)所述編碼冗余數(shù)據(jù)包解碼出原始數(shù)據(jù)包。
      [0213] 所述將所述編碼冗余數(shù)據(jù)包插入至TCP數(shù)據(jù)發(fā)送隊(duì)列中的相應(yīng)位置,具體為:
      [0214] 將每個(gè)塊中生成的編碼冗余數(shù)據(jù)包插入到對(duì)應(yīng)塊的原始數(shù)據(jù)包之后,將插入的編 碼冗余數(shù)據(jù)包按照規(guī)定的方式進(jìn)行標(biāo)號(hào);并更新后續(xù)數(shù)據(jù)包的序號(hào)。
      [0215] 相應(yīng)地,編碼后每個(gè)塊里包含原始數(shù)據(jù)包和生成的編碼冗余數(shù)據(jù)包,運(yùn)些數(shù)據(jù)包 形成編碼后的TCP數(shù)據(jù)。
      [0216] 運(yùn)里,編碼所采用的算法可W是隨機(jī)線性網(wǎng)絡(luò)編碼算法,編碼中引入冗余系數(shù)R, 從而生成對(duì)應(yīng)的編碼冗余數(shù)據(jù)包;其中,R可W根據(jù)網(wǎng)絡(luò)條件設(shè)置。 陽(yáng)217] 其中,由于TCP報(bào)文頭的Reserve字段有化it,因此,所述TCP連接建立消息攜帶 所述發(fā)送設(shè)備121支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí),具體可W是:TCP報(bào)文頭的Reserve字段末位 bit為1 ;相應(yīng)地,所述確認(rèn)消息攜帶所述接收設(shè)備122支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí),具體可W 是:TCP報(bào)文頭的Reserve字段末位bit為1。
      [0218] 實(shí)際應(yīng)用時(shí),如果收到的確認(rèn)消息中,Reserve字段末位bit不是1,則說明所述接 收設(shè)備122不支持網(wǎng)絡(luò)編碼TCP,因此所述發(fā)送設(shè)備121使用標(biāo)準(zhǔn)TCP與所述接收設(shè)備122 進(jìn)行通信。
      [0219] 從上面的描述中可W看出,本實(shí)施例在TCP連接建立時(shí),通過協(xié)商的方法,使得部 署網(wǎng)絡(luò)編碼TCP的系統(tǒng)可W與標(biāo)準(zhǔn)TCP系統(tǒng)互通。
      [0220] 所述編碼TCP報(bào)文頭還包括:塊編號(hào)指示字段、編碼系數(shù)指示字段、W及數(shù)據(jù)包序 號(hào)指示字段。其中,所述編碼系數(shù)指示字段表征編碼算法生成的系數(shù),原始數(shù)據(jù)包按照此系 數(shù)進(jìn)行先行組合后生成編碼數(shù)據(jù)包。 陽(yáng)221] 實(shí)際應(yīng)用時(shí),所述編碼數(shù)指示字段的值為對(duì)應(yīng)塊中原始數(shù)據(jù)包的個(gè)數(shù)。 陽(yáng)222] 所述發(fā)送設(shè)備121,還用于對(duì)發(fā)送的每個(gè)數(shù)據(jù)包均啟動(dòng)重傳定時(shí)器;并在滿足重 傳條件時(shí),對(duì)需要重傳的編碼后的數(shù)據(jù)包直接進(jìn)行重傳。
      [0223] 所述發(fā)送設(shè)備121,還用于接收到seen ack后,從所述TCP數(shù)據(jù)發(fā)送隊(duì)列中刪除 seen ack對(duì)應(yīng)數(shù)據(jù)包序號(hào)之前的數(shù)據(jù)。 陽(yáng)224] 所述接收設(shè)備122,還用于將收到的數(shù)據(jù)包放入接收隊(duì)列中;并根據(jù)數(shù)據(jù)包對(duì)應(yīng) 的編碼TCP報(bào)文頭信息,統(tǒng)計(jì)接收隊(duì)列中每個(gè)塊中收到的數(shù)據(jù)包個(gè)數(shù)。
      [0225] 實(shí)際應(yīng)用時(shí),當(dāng)塊中收到的數(shù)據(jù)包的個(gè)數(shù)小于所述編碼TCP報(bào)文頭中的編碼數(shù)指 示字段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),所述接收設(shè)備向所述發(fā)送設(shè)備回復(fù)seen ack,對(duì)收到的序號(hào) 最小的數(shù)據(jù)包進(jìn)行確認(rèn)。 陽(yáng)226] 運(yùn)里,需要說明的是:實(shí)際應(yīng)用時(shí),所述接收設(shè)備122確認(rèn)當(dāng)前塊之前的數(shù)據(jù)包均 已被確認(rèn)后才回復(fù)seen ack,否則不回復(fù)seen ack。 陽(yáng)227] 所述已確認(rèn)的塊是指:已向所述發(fā)送設(shè)備121回復(fù)seen ack的塊,換句話說,進(jìn)行 解碼的塊中所接收的數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼TCP報(bào)文頭中編碼數(shù)指示字段對(duì)應(yīng)的 數(shù)據(jù)包個(gè)數(shù)。 陽(yáng)22引本實(shí)施例中,發(fā)送設(shè)備W塊化lock)的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼;在編碼后的 TCP數(shù)據(jù)中加入編碼TCP報(bào)文頭;所述編碼TCP報(bào)文頭包括編碼數(shù)指示字段;所述編碼數(shù) 指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè)數(shù);并將加入所述編碼 TCP報(bào)文頭的TCP數(shù)據(jù)發(fā)送給接收設(shè)備;接收設(shè)備接收數(shù)據(jù)包;當(dāng)每個(gè)塊中收到的數(shù)據(jù)包個(gè) 數(shù)大于等于所述編碼TCP報(bào)文頭中的編碼數(shù)指示字段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),接收設(shè)備向所 述發(fā)送設(shè)備回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確認(rèn);并對(duì)已確認(rèn)塊中的數(shù)據(jù)進(jìn)行解碼,由于所述 接收端僅需要進(jìn)行一次解碼運(yùn)算,如此,能有效地減輕接收端的計(jì)算資源消耗。同時(shí),由于 收到數(shù)據(jù)包后,不需要解碼運(yùn)算后再向所述接收端回復(fù)seen ack,使得seen ack回復(fù)更加 及時(shí),如此,能有效地提高數(shù)據(jù)包的發(fā)送速率。 陽(yáng)229] 本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序 產(chǎn)品。因此,本發(fā)明可采用硬件實(shí)施例、軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形 式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ) 介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
      [0230] 本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程 圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一 流程和/或方框、W及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻\(yùn)些計(jì)算 機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理 器W產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生 用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能 的裝置。 陽(yáng)231] 運(yùn)些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備W特 定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或 多個(gè)方框中指定的功能。 陽(yáng)232] 運(yùn)些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì) 算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟W產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或 其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖 一個(gè)方框或多個(gè)方框中指定的功能的步驟。 陽(yáng)233] W上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
      【主權(quán)項(xiàng)】
      1. 一種數(shù)據(jù)發(fā)送方法,其特征在于,所述方法包括: 發(fā)送端以塊的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼; 所述發(fā)送端在編碼后的傳輸控制協(xié)議TCP數(shù)據(jù)中加入編碼TCP報(bào)文頭;所述編碼TCP 報(bào)文頭包括編碼數(shù)指示字段;所述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接 收的最少數(shù)據(jù)包個(gè)數(shù); 所述發(fā)送端將加入所述編碼TCP報(bào)文頭的TCP數(shù)據(jù)發(fā)出。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述發(fā)送端以塊的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn) 行編碼之前,所述方法還包括: 所述發(fā)送端向所述接收端發(fā)送TCP連接建立消息;所述TCP連接建立消息攜帶所述發(fā) 送端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí); 接收所述接收端返回的確認(rèn)消息;所述確認(rèn)消息攜帶所述接收端支持網(wǎng)絡(luò)編碼TCP的 標(biāo)識(shí)。3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述以塊的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼, 包括: 所述發(fā)送端將所述待發(fā)送數(shù)據(jù)劃分為等長(zhǎng)數(shù)據(jù)包; 對(duì)劃分后的數(shù)據(jù)包進(jìn)行分塊,對(duì)每個(gè)塊中的數(shù)據(jù)包分別進(jìn)行編碼,并在編碼過程中生 成對(duì)應(yīng)的編碼冗余數(shù)據(jù)包; 將所述編碼冗余數(shù)據(jù)包插入至TCP數(shù)據(jù)發(fā)送隊(duì)列中的相應(yīng)位置,形成編碼后的TCP數(shù) 據(jù)。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,編碼所采用的算法為隨機(jī)線性網(wǎng)絡(luò)編碼 算法。5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括:所述發(fā)送端對(duì)發(fā)送的每 個(gè)數(shù)據(jù)包均啟動(dòng)重傳定時(shí)器; 滿足重傳條件時(shí),對(duì)需要重傳的編碼后的數(shù)據(jù)包直接進(jìn)行重傳。6. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 所述發(fā)送端接收到確認(rèn)seen ack后,從所述TCP數(shù)據(jù)發(fā)送隊(duì)列中刪除seen ack對(duì)應(yīng) 數(shù)據(jù)包序號(hào)之前的數(shù)據(jù)。7. -種數(shù)據(jù)接收方法,其特征在于,所述方法包括: 接收端接收數(shù)據(jù)包; 當(dāng)每個(gè)塊中收到的數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼TCP報(bào)文頭中的編碼數(shù)指示字段對(duì) 應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),向發(fā)送端回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確認(rèn);所述編碼數(shù)指示字段表征 能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè)數(shù); 所述接收端對(duì)已確認(rèn)塊中的數(shù)據(jù)進(jìn)行解碼。8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述接收數(shù)據(jù)包之前,所述方法還包括: 接收所述發(fā)送端發(fā)送的TCP連接建立消息;所述TCP連接建立消息攜帶所述發(fā)送端支 持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí); 所述接收端向所述發(fā)送端返回確認(rèn)消息;所述確認(rèn)消息攜帶所述接收端支持網(wǎng)絡(luò)編碼 TCP的標(biāo)識(shí)。9. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述向發(fā)送端回復(fù)seen ack,對(duì)整個(gè)塊進(jìn) 行確認(rèn)之前,所述方法還包括: 所述接收端將收到的數(shù)據(jù)包放入接收隊(duì)列中; 所述接收端根據(jù)數(shù)據(jù)包對(duì)應(yīng)的編碼TCP報(bào)文頭信息,統(tǒng)計(jì)接收隊(duì)列中每個(gè)塊中收到的 數(shù)據(jù)包個(gè)數(shù)。10. -種發(fā)送設(shè)備,其特征在于,所述發(fā)送設(shè)備包括:編碼模塊、插入單元以及第一發(fā) 送單元;其中, 所述編碼模塊,用于以塊的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼; 所述插入單元,用于在編碼后的TCP數(shù)據(jù)中加入編碼TCP報(bào)文頭;所述編碼TCP報(bào)文頭 包括編碼數(shù)指示字段;所述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最 少數(shù)據(jù)包個(gè)數(shù); 所述第一發(fā)送單元,用于將加入所述編碼TCP報(bào)文頭的TCP數(shù)據(jù)發(fā)出。11. 根據(jù)權(quán)利要求10所述的發(fā)送設(shè)備,其特征在于,所述發(fā)送設(shè)備還包括:第一接收單 元;其中, 所述第一發(fā)送單元,還用于向所述接收端發(fā)送TCP連接建立消息;所述TCP連接建立消 息攜帶所述發(fā)送設(shè)備支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí); 所述第一接收單元,用于接收所述接收端返回的確認(rèn)消息;所述確認(rèn)消息攜帶所述接 收端支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí);并在收到所述確認(rèn)消息后,觸發(fā)所述編碼模塊; 相應(yīng)地,所述編碼模塊,用于收到所述第一接收單元的觸發(fā)后,以塊的方式對(duì)待發(fā)送數(shù) 據(jù)進(jìn)行編碼。12. 根據(jù)權(quán)利要求10所述的發(fā)送設(shè)備,其特征在于,所述編碼單元包括:劃分模塊、編 碼模塊及位置插入模塊;其中, 所述劃分模塊,用于將所述待發(fā)送數(shù)據(jù)劃分為等長(zhǎng)數(shù)據(jù)包;并對(duì)劃分后的數(shù)據(jù)包進(jìn)行 分塊; 所述編碼模塊,用于每個(gè)塊中的數(shù)據(jù)包分別進(jìn)行編碼,并在編碼過程中生成對(duì)應(yīng)的編 碼冗余數(shù)據(jù)包; 所述位置插入模塊,用于將所述編碼冗余數(shù)據(jù)包插入至TCP數(shù)據(jù)發(fā)送隊(duì)列中的相應(yīng)位 置,形成編碼后的TCP數(shù)據(jù)。13. 根據(jù)權(quán)利要求12所述的發(fā)送設(shè)備,其特征在于,編碼所采用的算法為隨機(jī)線性網(wǎng) 絡(luò)編碼算法。14. 根據(jù)權(quán)利要求13所述的發(fā)送設(shè)備,其特征在于,所述發(fā)送設(shè)備還包括重傳單元,用 于對(duì)發(fā)送的每個(gè)數(shù)據(jù)包均啟動(dòng)重傳定時(shí)器;并在滿足重傳條件時(shí),對(duì)需要重傳的編碼后的 數(shù)據(jù)包直接進(jìn)行重傳。15. 根據(jù)權(quán)利要求12所述的發(fā)送設(shè)備,其特征在于,所述發(fā)送設(shè)備還包括刪除單元,用 于接收到seen ack后,從所述TCP數(shù)據(jù)發(fā)送隊(duì)列中刪除seen ack對(duì)應(yīng)數(shù)據(jù)包序號(hào)之前的 數(shù)據(jù)。16. -種接收設(shè)備,其特征在于,所述接收設(shè)備包括:第二接收單元、第二發(fā)送單元以 及解碼單元;其中, 所述第二接收單元,用于接收數(shù)據(jù)包; 所述第二發(fā)送單元,用于當(dāng)每個(gè)塊中收到的數(shù)據(jù)包個(gè)數(shù)大于等于所述編碼TCP報(bào)文頭 中的編碼數(shù)指示字段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),向發(fā)送端回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確認(rèn);所 述編碼數(shù)指示字段表征能成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè)數(shù); 所述解碼單元,用于對(duì)已確認(rèn)塊中的數(shù)據(jù)進(jìn)行解碼。17. 根據(jù)權(quán)利要求16所述的接收設(shè)備,其特征在于,所述第二接收單元,還用于接收發(fā) 送端發(fā)送的TCP連接建立消息;所述TCP連接建立消息攜帶所述發(fā)送端支持網(wǎng)絡(luò)編碼TCP 的標(biāo)識(shí); 所述第二發(fā)送單元,用于向所述發(fā)送端返回確認(rèn)消息;所述確認(rèn)消息攜帶所述接收設(shè) 備支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí)。18. 根據(jù)權(quán)利要求16所述的接收設(shè)備,其特征在于,所述接收設(shè)備還包括:統(tǒng)計(jì)單元, 用于將收到的數(shù)據(jù)包放入接收隊(duì)列中;并根據(jù)數(shù)據(jù)包對(duì)應(yīng)的編碼TCP報(bào)文頭信息,統(tǒng)計(jì)接 收隊(duì)列中每個(gè)塊中收到的數(shù)據(jù)包個(gè)數(shù)。19. 一種數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述系統(tǒng)包括發(fā)送設(shè)備及接收設(shè)備;其中, 所述發(fā)送設(shè)備,用于以塊的方式對(duì)待發(fā)送數(shù)據(jù)進(jìn)行編碼;在編碼后的TCP數(shù)據(jù)中加入 編碼TCP報(bào)文頭;所述編碼TCP報(bào)文頭包括編碼數(shù)指示字段;所述編碼數(shù)指示字段表征能 成功解碼對(duì)應(yīng)塊中數(shù)據(jù)包所需接收的最少數(shù)據(jù)包個(gè)數(shù);并將加入所述編碼TCP報(bào)文頭的 TCP數(shù)據(jù)發(fā)送給所述接收設(shè)備; 所述接收設(shè)備,用于接收所述發(fā)送設(shè)備發(fā)送的數(shù)據(jù)包;當(dāng)每個(gè)塊中收到的數(shù)據(jù)包個(gè)數(shù) 大于等于所述編碼TCP報(bào)文頭中的編碼數(shù)指示字段對(duì)應(yīng)的數(shù)據(jù)包個(gè)數(shù)時(shí),向所述發(fā)送設(shè)備 回復(fù)seen ack,對(duì)整個(gè)塊進(jìn)行確認(rèn);并對(duì)已確認(rèn)塊中的數(shù)據(jù)進(jìn)行解碼。20. 根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于,所述發(fā)送設(shè)備,還用于向所述接收設(shè)備 發(fā)送TCP連接建立消息;所述TCP連接建立消息攜帶所述發(fā)送設(shè)備支持網(wǎng)絡(luò)編碼TCP的標(biāo) 識(shí);并接收所述接收設(shè)備返回的確認(rèn)消息; 所述接收設(shè)備,還用于收到所述TCP連接建立消息后,向所述發(fā)送設(shè)備返回確認(rèn)消息; 所述確認(rèn)消息攜帶所述接收設(shè)備支持網(wǎng)絡(luò)編碼TCP的標(biāo)識(shí)。
      【文檔編號(hào)】H04L1/00GK105871501SQ201510026732
      【公開日】2016年8月17日
      【申請(qǐng)日】2015年1月20日
      【發(fā)明人】王金柱, 陸璐
      【申請(qǐng)人】中國(guó)移動(dòng)通信集團(tuán)公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1