專利名稱:一種通信網(wǎng)絡(luò)及其自動重傳機(jī)制實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是一種通信網(wǎng)絡(luò)及其自動重傳機(jī)制實(shí)現(xiàn)方法。
背景技術(shù):
隨著通信行業(yè)的技術(shù)革新以及不斷發(fā)展,引起了通信網(wǎng)絡(luò)中數(shù)據(jù)量的急劇 膨脹,同時(shí),通信網(wǎng)絡(luò)也由傳統(tǒng)的有線信道通信網(wǎng)絡(luò)逐漸發(fā)展為無線信道通信 網(wǎng)絡(luò)。但是,無論是有線信道還是無線信道,在通信網(wǎng)絡(luò)中都不可避免的存在 著各種傳輸干擾,這些傳輸干擾直接作用在從發(fā)送方向接收方所傳送的數(shù)據(jù) 中,直接導(dǎo)致了接收方不能準(zhǔn)確無誤地接收數(shù)據(jù)。為了解決傳輸干擾對通信網(wǎng) 絡(luò)中數(shù)據(jù)傳輸?shù)挠绊?,人們希望能在通信網(wǎng)絡(luò)中引入自動重傳機(jī)制。自動重傳請求ARQ (Automatic Repeat reQuest)是發(fā)送端對傳輸出錯或丟失的數(shù)據(jù)進(jìn)行 自動重傳,直到數(shù)據(jù)成功到達(dá)接收端的一種鏈路層差錯控制方法,包括停止等 待、回退N步重傳、選擇重傳三種類型,它被認(rèn)為是一種可以解決傳輸干擾 問題的自動重傳機(jī)制。IEEE 802.16工作組在所發(fā)布的標(biāo)準(zhǔn)中提出了一種自動 重傳請求ARQ方案,但是沒有規(guī)定數(shù)據(jù)發(fā)送、接收的具體處理流程和信息反 饋的實(shí)現(xiàn)方法。發(fā)明內(nèi)容本發(fā)明的目的在于,提供一種通信網(wǎng)絡(luò)及其自動重傳機(jī)制實(shí)現(xiàn)方法, 為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種通信網(wǎng)絡(luò),包括發(fā)送端和接收端,所述發(fā)送端和接收端用于根據(jù)在它們之間建立的服務(wù)流進(jìn)行數(shù)據(jù)的傳遞和接收所述發(fā)送端中,包括發(fā)送信息模塊以及發(fā)送模塊,所述發(fā)送信息模塊用于 保存與發(fā)送數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù),以配合所述發(fā)送端實(shí)現(xiàn)對數(shù)據(jù)的發(fā) 送、重發(fā)以述接收端中的數(shù)據(jù);所述接收端中,包括接收信息模塊以及接收模塊,所述接收信息模塊用于 保存與接收數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù),以配合所述接收端實(shí)現(xiàn)對數(shù)據(jù)的接 收、反饋以及對接收參數(shù)的調(diào)整,所述接收模塊用于接收由所述發(fā)送端的發(fā)送 模塊發(fā)送來的數(shù)據(jù)。較佳的,在所述通信網(wǎng)絡(luò)中,所述發(fā)送信息模塊采取發(fā)送隊(duì)列的形式對所 述與發(fā)送數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù)進(jìn)行保存,所述接收信息模塊采取接收 隊(duì)列的形式對所述與接收數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù)進(jìn)行保存。較佳的,在所述通信網(wǎng)絡(luò)中,所述發(fā)送隊(duì)列的發(fā)送隊(duì)列頭中包含發(fā)送端和 接收端之間建立服務(wù)流中需要發(fā)送的數(shù)據(jù)的總字節(jié)數(shù),發(fā)送窗口,待發(fā)送塊編 號,待重傳數(shù)據(jù),最大塊編號,等待反饋塊數(shù),發(fā)送標(biāo)識,重傳間隔時(shí)間,同 步定時(shí)器、重置定時(shí)器,丟棄定時(shí)器,重置次數(shù)以及補(bǔ)充信息。較佳的,在所述通信網(wǎng)絡(luò)中,所述發(fā)送窗口用以定義可以發(fā)送的塊編號的 范圍。較佳的,在所述通信網(wǎng)絡(luò)中,所述發(fā)送隊(duì)列的發(fā)送隊(duì)列節(jié)點(diǎn)中包含未發(fā)送 隊(duì)列、等待反饋隊(duì)列、重傳隊(duì)列和丟棄隊(duì)列,數(shù)據(jù)長度,最后分塊長度,最大 塊編號,最小塊編號,數(shù)據(jù)首地址以及補(bǔ)充信息。較佳的,在所述通信網(wǎng)絡(luò)中,所述發(fā)送隊(duì)列的發(fā)送隊(duì)列節(jié)點(diǎn)是待發(fā)送的一 個完整的服務(wù)數(shù)據(jù)單元或服務(wù)數(shù)據(jù)單元的一部分。較佳的,在所述通信網(wǎng)絡(luò)中,所述未發(fā)送隊(duì)列和丟棄隊(duì)列使用塊隊(duì)列結(jié)構(gòu), 所述塊隊(duì)列結(jié)構(gòu)的塊隊(duì)列頭包含本隊(duì)列中的分塊狀態(tài)和全部分塊的總長度,所 述塊隊(duì)列結(jié)構(gòu)的塊隊(duì)列節(jié)點(diǎn)對應(yīng)于一個分塊,包含本分塊的塊首地址和塊編號較佳的,在所述通信網(wǎng)絡(luò)中,所述等待反饋隊(duì)列和重傳隊(duì)列使用時(shí)間隊(duì)列 結(jié)構(gòu),所述時(shí)間隊(duì)列結(jié)構(gòu)的時(shí)間隊(duì)列頭包含本隊(duì)列中的分塊的狀態(tài),所述時(shí)間 隊(duì)列結(jié)構(gòu)的時(shí)間隊(duì)列節(jié)點(diǎn)包含重傳定時(shí)器,生存期定時(shí)器以及使用相同重傳定 時(shí)器和生存期定時(shí)器的一組分塊。較佳的,在所述通信網(wǎng)絡(luò)中,所述接收隊(duì)列的接收隊(duì)列頭中包含接收窗口 , 最大塊編號,接收標(biāo)識,同步定時(shí)器、重置定時(shí)器,重置次數(shù)、反饋隊(duì)列和補(bǔ) 充信息。較佳的,在所述通信網(wǎng)絡(luò)中,所述接收窗口用以定義可以接收的塊編號的 范圍。較佳的,在所述通信網(wǎng)絡(luò)中,所述接收隊(duì)列的接收隊(duì)列節(jié)點(diǎn)中包含最大塊 編號,最小塊編號,最后分塊長度,段狀態(tài)標(biāo)識和分段隊(duì)列。較佳的,在所述通信網(wǎng)絡(luò)中,所述接收隊(duì)列的接收隊(duì)列節(jié)點(diǎn)是從發(fā)送端所 接收到的一個完整的服務(wù)數(shù)據(jù)單元或服務(wù)數(shù)據(jù)單元的一部分。較佳的,在所述通信網(wǎng)絡(luò)中,所述分段隊(duì)列的分段隊(duì)列頭用于保存分段的 總長度,所述分段隊(duì)列的分段隊(duì)列節(jié)點(diǎn)對應(yīng)所述服務(wù)數(shù)據(jù)單元的一個分段,包 含分段長度、分段首地址和分段的最小塊編號。較佳的,在所述通信網(wǎng)絡(luò)中,所述反饋隊(duì)列用以存儲接收到的數(shù)據(jù)信息, 所述反饋隊(duì)列的反饋隊(duì)列頭中包含最近一次反饋的塊編號,所述反饋隊(duì)列的反 饋隊(duì)列節(jié)點(diǎn)中包含本節(jié)點(diǎn)所包含數(shù)據(jù)的最大塊編號,最小塊編號和清除定時(shí)器 隊(duì)列。較佳的,在所述通信網(wǎng)絡(luò)中,所述清除定時(shí)器隊(duì)列節(jié)點(diǎn)中包含清除定時(shí)器 和開啟所述清除定時(shí)器的連續(xù)塊序列的最大塊編號。為了實(shí)現(xiàn)上述目的,本發(fā)明還公開了 一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方 法,包括以下步驟步驟100,所述通信網(wǎng)絡(luò)中的發(fā)送端和接收端針對建立在它們間的服務(wù) 流,在發(fā)送端設(shè)置發(fā)送信息模塊,在接收端設(shè)置接收信息模塊;步驟200,所述發(fā)送端接收到需要發(fā)送的信息后,通過所述發(fā)送信息模塊提取出需要向所述接收端發(fā)送的數(shù)據(jù),通過發(fā)送端中的發(fā)送模塊向所述接收端傳送數(shù)據(jù)以及重傳數(shù)據(jù);步驟300,所述接收端通過所述接收端中的接收模塊接收從發(fā)送端發(fā)來的 數(shù)據(jù),將所述數(shù)據(jù)及相關(guān)信息保存在所述接收信息模塊中,根據(jù)所接收到的數(shù) 據(jù)對所述維護(hù)反饋消息發(fā)送端進(jìn)行信息反饋,并將所接收到的數(shù)據(jù)上傳至上 層;步驟400,發(fā)送端根據(jù)所接收到的反饋信息,對所述發(fā)送信息模塊進(jìn)行調(diào)整。較佳的,在所述通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,所述發(fā)送信息模塊 采取發(fā)送隊(duì)列的形式對所述與發(fā)送數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù)進(jìn)行保存,所述接收信息模塊采取接收隊(duì)列的形式對所述與接收數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù) 據(jù)進(jìn)行保存;所述發(fā)送隊(duì)列的發(fā)送隊(duì)列頭中包含所述服務(wù)流中需要發(fā)送的數(shù)據(jù)的總字 節(jié)數(shù),發(fā)送窗口,待發(fā)送塊編號,待重傳數(shù)據(jù),最大塊編號,等待反饋塊數(shù), 發(fā)送標(biāo)識,重傳間隔時(shí)間,同步定時(shí)器、重置定時(shí)器,丟棄定時(shí)器,重置次數(shù) 以及補(bǔ)充信息,所述發(fā)送隊(duì)列的發(fā)送隊(duì)列節(jié)點(diǎn)中包含未發(fā)送隊(duì)列、等待反饋隊(duì) 列、重傳隊(duì)列和丟棄隊(duì)列,數(shù)據(jù)長度,最后分塊長度,最大塊編號,最小塊編 號,數(shù)據(jù)首地址以及補(bǔ)充信息;所述接收隊(duì)列的接收隊(duì)列頭中包含接收窗口,最大塊編號,接收標(biāo)識,同 步定時(shí)器、重置定時(shí)器,重置次數(shù)、反饋隊(duì)列和補(bǔ)充信息,所述接收隊(duì)列的接 收隊(duì)列節(jié)點(diǎn)中包含最大塊編號,最小塊編號,最后分塊長度,段狀態(tài)標(biāo)識和分 段隊(duì)列。較佳的,在所述通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,在步驟200中,所 述發(fā)送端向所述接收端發(fā)送的數(shù)據(jù)分為不可分段不可打包,不可分段可打包, 可分段不可打包以及可分段可打包四種類型。較佳的,在所述通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,在步驟200中,當(dāng) 所述發(fā)送端向所述接收端發(fā)送的數(shù)據(jù)類型為不可分段不可打包時(shí),提取需要發(fā) 送的數(shù)據(jù)的包括以下步驟步驟2101,發(fā)送端將待發(fā)送數(shù)據(jù)根據(jù)服務(wù)流參數(shù)進(jìn)行分塊,存儲到未發(fā) 送隊(duì)列,記錄所述數(shù)據(jù)的到達(dá)信息-,步驟2102,發(fā)送端判斷所述服務(wù)流是否是第一次發(fā)送數(shù)據(jù),如果是,進(jìn) 入步驟2103,否則,進(jìn)入步驟2104;步驟2103,發(fā)送端啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同步 超時(shí)處理事件;步驟2104,發(fā)送端判斷可發(fā)送的字節(jié)數(shù)是否大于0,如果是,進(jìn)入步驟 2106,否則,進(jìn)入步驟2105; 步驟2105,操作結(jié)束;步驟2106,發(fā)送端檢査是否存在需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn),如果存在, 進(jìn)入步驟2107,否則,進(jìn)入步驟2110,其中,己檢測過的發(fā)送隊(duì)列節(jié)點(diǎn)不再 被檢測;步驟2107,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中是否有數(shù)據(jù),如果有,進(jìn)入歩驟2108,如果沒有,進(jìn)入步驟2106;步驟2108,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)是否在發(fā)送窗口的范圍內(nèi),如果在,進(jìn)入步驟2109;否則,進(jìn)入步驟2105;步驟2109,發(fā)送端將所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中的數(shù)據(jù)從重傳隊(duì)列 轉(zhuǎn)移到等待反饋隊(duì)列,記錄發(fā)送信息,重啟重傳定時(shí)器,用所述數(shù)據(jù)生成協(xié)議 數(shù)據(jù)單元等待發(fā)送,進(jìn)入歩驟2104;步驟2110,發(fā)送端檢查未發(fā)送隊(duì)列中是否有數(shù)據(jù),如果有,進(jìn)入步驟2111, 否則,進(jìn)入步驟2105;步驟2111,發(fā)送端檢査所述未發(fā)送隊(duì)列中的單個數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單 元后,是否會超出最大協(xié)議數(shù)據(jù)單元的長度,如果是,進(jìn)入步驟2112,否則, 進(jìn)入步驟2113;步驟2112,發(fā)送端刪除所述未發(fā)送隊(duì)列中的數(shù)據(jù),進(jìn)入步驟2110;步驟2113,發(fā)送端判斷所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號后是否在發(fā)送窗 口的范圍內(nèi),如果在,進(jìn)入步驟2114,否則,進(jìn)入步驟2105;步驟2114,發(fā)送端將所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號,構(gòu)建成完整的發(fā) 送隊(duì)列節(jié)點(diǎn),添加到發(fā)送隊(duì)列;步驟2115、發(fā)送端將所述添加到發(fā)送隊(duì)列中的所述發(fā)送隊(duì)列節(jié)點(diǎn)中的數(shù) 據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列,記錄發(fā)送信息,啟動重傳定時(shí)器、生存 期定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期超時(shí)處理事件,生成協(xié)議數(shù)據(jù)單元 等待發(fā)送,進(jìn)入步驟2104。較佳的,在所述通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,在步驟200中,當(dāng) 所述發(fā)送端向所述接收端發(fā)送的數(shù)據(jù)類型為不可分段可打包時(shí),提取需要發(fā)送 的數(shù)據(jù)的包括以下步驟-步驟2201,發(fā)送端將待發(fā)送數(shù)據(jù)根據(jù)服務(wù)流參數(shù)進(jìn)行分塊,存儲到未發(fā) 送隊(duì)列,記錄所述數(shù)據(jù)的到達(dá)信息,初始化一用于存放可以進(jìn)行打包的數(shù)據(jù)的 生成隊(duì)列;步驟2202,發(fā)送端判斷本服務(wù)流是否是第一次發(fā)送數(shù)據(jù),如果是,進(jìn)入 步驟2203,否則,進(jìn)入步驟2204;步驟2203,發(fā)送端啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同步超時(shí)處理事件;步驟2204,發(fā)送端判斷可發(fā)送的字節(jié)數(shù)是否大于0,如果是,進(jìn)入步驟2206,否則,進(jìn)入步驟2205; 步驟2205,操作結(jié)束;步驟2206,發(fā)送端檢查是否存在需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn),如果存在, 進(jìn)入步驟2207,否則,進(jìn)入步驟2212,其中,已檢測過的發(fā)送隊(duì)列節(jié)點(diǎn)不再步驟2207,發(fā)送端檢査所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中是否有數(shù)據(jù),如 果有,進(jìn)入步驟2208,如果沒有,進(jìn)入步驟2206;步驟2208,發(fā)送端檢査所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)是否在發(fā)送窗口的 范圍內(nèi),如果在,進(jìn)入步驟2209,否則,進(jìn)入步驟2220;步驟2209,發(fā)送端檢査本次發(fā)送的數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是否超 出可發(fā)送的最大協(xié)議數(shù)據(jù)單元長度,如果是,進(jìn)入步驟2210,否則,進(jìn)入步 驟2211;步驟2210,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù);步驟2211,發(fā)送端將可用于打包的數(shù)據(jù)從重傳隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列, 記錄發(fā)送信息,重啟重傳定時(shí)器,加入生成隊(duì)列,進(jìn)入步驟2204;步驟2212,發(fā)送端檢査未發(fā)送隊(duì)列中是否有數(shù)據(jù),如果有,進(jìn)入步驟2213; 否則,進(jìn)入步驟2220;步驟2213,發(fā)送端檢査所述未發(fā)送隊(duì)列中的單個數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單 元后,是否會超出最大協(xié)議數(shù)據(jù)單元的長度,如果是,進(jìn)入步驟2214,否則, 進(jìn)入步驟2215;步驟2214,發(fā)送端刪除所述數(shù)據(jù),進(jìn)入步驟2212;步驟2215,發(fā)送端判斷所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號后是否在發(fā)送窗 口的范圍內(nèi),如果是,進(jìn)入步驟2216,否則,進(jìn)入步驟2220;步驟2216,發(fā)送端將所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號,構(gòu)建成完整的發(fā) 送隊(duì)列節(jié)點(diǎn),添加到發(fā)送隊(duì)列;步驟2217,發(fā)送端檢査本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是 否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元長度,如果是,進(jìn)入步驟2218,否則,進(jìn) 入步驟2219;步驟2218,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),進(jìn)入步驟2219;步驟2219,發(fā)送端將可用于打包的數(shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到等待反饋隊(duì) 歹lj,記錄發(fā)送信息,同時(shí)啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超時(shí)處理 事件、生存期超時(shí)處理事件,加入生成隊(duì)列,進(jìn)入步驟2204;步驟2220,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),用所述數(shù)據(jù)生成協(xié)議數(shù)據(jù)單 元等待發(fā)送,操作結(jié)束。較佳的,在所述通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,在步驟200中,當(dāng) 所述發(fā)送端向所述接收端發(fā)送的數(shù)據(jù)類型為可分段不可打包時(shí),提取需要發(fā)送 的數(shù)據(jù)的包括以下步驟步驟2301,發(fā)送端將待發(fā)送數(shù)據(jù)根據(jù)服務(wù)流參數(shù)進(jìn)行分塊,存儲到未發(fā) 送隊(duì)列,記錄所述數(shù)據(jù)的到達(dá)信息,進(jìn)入步驟2302;步驟2302,發(fā)送端判斷本服務(wù)流是否是第一次發(fā)送數(shù)據(jù),如果是,進(jìn)入 步驟2303,否則,進(jìn)入步驟2304;歩驟2303,發(fā)送端啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同步 超時(shí)處理事件,進(jìn)入步驟2304;步驟2304,發(fā)送端判斷可發(fā)送的字節(jié)數(shù)是否大于0,如果是,進(jìn)入步驟 2306,否則,進(jìn)入步驟2305;步驟2305,操作結(jié)束;步驟2306,發(fā)送端檢查是否存在需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn),如果存在, 進(jìn)入步驟2307,否則,進(jìn)入步驟2312,其中,已檢測過的發(fā)送隊(duì)列節(jié)點(diǎn)不再 被檢測;步驟2307,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中是否有數(shù)據(jù),如 果有,進(jìn)入步驟2308,如果沒有,進(jìn)入步驟2306;步驟2308,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)的第一時(shí)間隊(duì)列節(jié) 點(diǎn)是否在發(fā)送窗口的范圍內(nèi),如果在,進(jìn)入步驟2309,否則,進(jìn)入步驟2310;步驟2309,發(fā)送端將重傳隊(duì)列中的數(shù)據(jù)轉(zhuǎn)移到等待反饋隊(duì)列,記錄發(fā)送 信息,重啟重傳定時(shí)器,生成協(xié)議數(shù)據(jù)單元等待發(fā)送,進(jìn)入步驟2304;步驟2310,發(fā)送端判斷帶寬是否大于一個分塊的長度,如果是,進(jìn)入步 驟23U,否則,進(jìn)入步驟2305;步驟2311,發(fā)送端生成新的時(shí)間隊(duì)列節(jié)點(diǎn),加入到等待反饋隊(duì)列,記錄發(fā)送信息,取出原時(shí)間隊(duì)列節(jié)點(diǎn)的生存期剩余時(shí)間,為新時(shí)間隊(duì)列節(jié)點(diǎn)啟動生 存期定時(shí)器、重傳定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期超時(shí)處理事件,生 成協(xié)議數(shù)據(jù)單元等待發(fā)送,進(jìn)入步驟2305;步驟2312,發(fā)送端檢査未發(fā)送隊(duì)列中是否有數(shù)據(jù),如果有,進(jìn)入步驟2313, 否則,進(jìn)入步驟2305;步驟2313,發(fā)送端判斷帶寬是否大于一個分塊的長度,如果是,進(jìn)入步 驟2314,否則,進(jìn)入步驟2305;步驟2314發(fā)送端將所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號,構(gòu)建成完整的發(fā)送 隊(duì)列節(jié)點(diǎn),添加到發(fā)送隊(duì)列,進(jìn)入步驟2315;步驟2315,發(fā)送端判斷所述發(fā)送隊(duì)列節(jié)點(diǎn)中的未發(fā)送隊(duì)列中的數(shù)據(jù)的塊 編號是否在發(fā)送窗口的范圍內(nèi),如果是,進(jìn)入步驟2316,否則,進(jìn)入步驟2317;步驟2316,發(fā)送端將全部數(shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列,記錄 發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期 超時(shí)處理事件,生成協(xié)議數(shù)據(jù)單元等待發(fā)送,進(jìn)入步驟2304;步驟2317,發(fā)送端將處于發(fā)送窗口范圍內(nèi)部分?jǐn)?shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到 等待反饋隊(duì)列,記錄發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超 時(shí)處理事件、生存期超時(shí)處理事件,生成協(xié)議數(shù)據(jù)單元等待發(fā)送,進(jìn)入歩驟 2305。較佳的,在所述通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,在步驟200中,當(dāng) 所述發(fā)送端向所述接收端發(fā)送的數(shù)據(jù)類型為可分段可打包時(shí),提取需要發(fā)送的 數(shù)據(jù)的包括以下步驟步驟2401,發(fā)送端將待發(fā)送數(shù)據(jù)根據(jù)服務(wù)流參數(shù)進(jìn)行分塊,存儲到未發(fā) 送隊(duì)列,記錄新數(shù)據(jù)到達(dá)信息,初始化生成隊(duì)列,,進(jìn)入步驟2402;步驟2402,發(fā)送端判斷本服務(wù)流是否是第一次發(fā)送數(shù)據(jù),如果是,進(jìn)入 步驟2403,否則,進(jìn)入步驟2404;步驟2403,發(fā)送端啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同步 超時(shí)處理事件,進(jìn)入步驟2404;步驟2404,發(fā)送端判斷可發(fā)送的字節(jié)數(shù)是否大于0,如果是,進(jìn)入步驟 2406,否則,進(jìn)入步驟2405;步驟2405,操作結(jié)束;步驟2406,發(fā)送端檢査是否存在需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn),如果存在,進(jìn)入步驟2407,否則,進(jìn)入步驟2416,其中,已檢測過的發(fā)送隊(duì)列節(jié)點(diǎn)不再 被檢測;步驟2407,發(fā)送端檢査所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中是否有數(shù)據(jù),如 果有,進(jìn)入步驟2408,如果沒有,進(jìn)入步驟2406;步驟2408,發(fā)送端檢査所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)的第一時(shí)間隊(duì)列節(jié) 點(diǎn)是否在發(fā)送窗口的范圍內(nèi),如果在,進(jìn)入步驟2409,否則,進(jìn)入步驟2412;步驟2409,發(fā)送端檢査本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是 否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元長度,如果是,進(jìn)入步驟2410,否則,進(jìn) 入步驟2411;歩驟2410發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),進(jìn)入步驟2411;步驟2411,發(fā)送端將本時(shí)間隊(duì)列節(jié)點(diǎn)從重傳隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列, 記錄發(fā)送信息,重啟重傳定時(shí)器,加入生成隊(duì)列,進(jìn)入步驟2404;步驟2412,發(fā)送端判斷帶寬是否大于一個分塊的長度,如果是,進(jìn)入步 驟24D,否則,進(jìn)入步驟2426;步驟2413,發(fā)送端檢查本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是 否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元長度,如果是,進(jìn)入步驟2414,否則,進(jìn) 入步驟2415;步驟2414,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),進(jìn)入步驟2415;步驟2415,發(fā)送端生成新的時(shí)間隊(duì)列節(jié)點(diǎn),加入到等待反饋隊(duì)列,記錄 發(fā)送信息,取出原時(shí)間隊(duì)列節(jié)點(diǎn)的生存期剩余時(shí)間,為新時(shí)間隊(duì)列節(jié)點(diǎn)啟動生 存期定時(shí)器、重傳定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期超時(shí)處理事件,加 入生成隊(duì)列,進(jìn)入步驟2426;步驟2416,發(fā)送端檢査未發(fā)送隊(duì)列中是否有數(shù)據(jù),如果有,進(jìn)入步驟2417, 否則,進(jìn)入步驟2426;步驟2417,發(fā)送端判斷帶寬是否大于一個分塊的長度,如果是,進(jìn)入步 驟2418,否則,進(jìn)入步驟2426;步驟2418,發(fā)送端將所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號,構(gòu)建成完整的發(fā) 送隊(duì)列節(jié)點(diǎn),添加到發(fā)送隊(duì)列,進(jìn)入步驟2419;步驟2419,發(fā)送端判斷所述發(fā)送隊(duì)列節(jié)點(diǎn)中的未發(fā)送隊(duì)列中的數(shù)據(jù)的塊編號是否在發(fā)送窗口的范圍內(nèi),如果是,進(jìn)入步驟2420,否則,進(jìn)入步驟2423;步驟2420,發(fā)送端檢查本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是 否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元長度,如果是,進(jìn)入步驟2421,否則,進(jìn) 入步驟2422;步驟2421,發(fā)送端打包生成隊(duì)列中現(xiàn)有的數(shù)據(jù),進(jìn)入步驟2422;步驟2422,發(fā)送端將處于發(fā)送窗口范圍內(nèi)部分?jǐn)?shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到 等待反饋隊(duì)列,記錄發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超 時(shí)處理事件、生存期超時(shí)處理事件,加入生成隊(duì)列,進(jìn)入歩驟2416;步驟2423,發(fā)送端檢查本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是 否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元長度,如果是,進(jìn)入步驟2424,否則,進(jìn) 入步驟2425;步驟2424,發(fā)送端打包生成隊(duì)列中現(xiàn)有的數(shù)據(jù),進(jìn)入步驟2425;步驟2425,發(fā)送端將全部數(shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列,記錄 發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期 超時(shí)處理事件,加入生成隊(duì)列,進(jìn)入步驟2426;步驟2426,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),用所述數(shù)據(jù)生成協(xié)議數(shù)據(jù)單 元等待發(fā)送,操作結(jié)束。較佳的,在所述通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,在步驟300中,所 述接收端將接收到的數(shù)據(jù)及相關(guān)信息保存在所述接收信息模塊中并上傳至上 層的過程包括以下步驟步驟3101,接收端接收到從所接收到的協(xié)議數(shù)據(jù)單元解析而來的服務(wù)數(shù) 據(jù)單元中的分段,檢查是否是第一次接收數(shù)據(jù),如果是,進(jìn)入步驟3102,否 則,進(jìn)入步驟3103;步驟3102,接收端啟動接收端同步定時(shí)器,設(shè)置接收端同歩超時(shí)處理事 件,進(jìn)入步驟3103;步驟3103,接收端檢驗(yàn)所述分段中的的塊編號是否在接收窗口以內(nèi),如 果不在窗口范圍內(nèi),進(jìn)入步驟3104,如果在窗口范圍內(nèi),進(jìn)入步驟3105;步驟3104,接收端刪除所述分段,操作結(jié)束;步驟3105,接收端檢査所述分段中的最小塊編號是否與接收窗口相吻合, 即是否等于接收窗口中所定義可以接收的塊編號中的最小塊編號,如果吻合,進(jìn)入步驟3106,否則,進(jìn)入步驟3107;步驟3106,接收端觸發(fā)接收窗口跳動事件,跳動接收窗口到本分段的最 大塊編號加l的位置,重置同步定時(shí)器,進(jìn)入步驟3108;步驟3107,接收端保持接收窗口不動,根據(jù)接收重組算法來處理本分段, 并為所述分段啟動清除定時(shí)器,設(shè)置清除超時(shí)處理事件,進(jìn)入步驟3108;步驟3108,接收端當(dāng)接收隊(duì)列節(jié)點(diǎn)組合成完整的服務(wù)數(shù)據(jù)單元后,根據(jù) 在所述通信網(wǎng)絡(luò)建立服務(wù)流時(shí)定義的參數(shù)判斷是否要求有序上傳,如果是,進(jìn) 入步驟3109,否則,進(jìn)入步驟3110;步驟3109,按照塊編號遞增的順序依次上傳服務(wù)數(shù)據(jù)單元,操作結(jié)束;步驟3110,立即上傳,操作結(jié)束。較佳的,在所述通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,在步驟3107中, 根據(jù)接收重組算法來處理分段的過程包括以下步驟步驟01,接收端通過段標(biāo)識對所接收的分段進(jìn)行判斷,若所述分段是初 段,進(jìn)入步驟02,若所述分段是中間分段,進(jìn)入步驟08,若所述分段是末段, 進(jìn)入步驟16,若所述分段是完整的服務(wù)數(shù)據(jù)單元,進(jìn)入步驟22;步驟02,接收端判斷所述分段的最大塊編號是否與接收隊(duì)列中的后一節(jié) 點(diǎn)的最小塊編號相鄰,若相鄰,進(jìn)入步驟03,否則進(jìn)入步驟06;步驟03,更新所述后一節(jié)點(diǎn)的最小塊編號為所述分段的最小塊編號,并 在所述后一節(jié)點(diǎn)的分段隊(duì)列中加入所述分段,進(jìn)入步驟04;步驟04,接收端判斷所述后一節(jié)點(diǎn)的段標(biāo)識是否指示為是否為末段,若 是末段,則進(jìn)入步驟22,否則進(jìn)入步驟05;步驟05,接收端將所述后一節(jié)點(diǎn)的段標(biāo)識設(shè)置為初段,操作結(jié)束;步驟06,接收端判斷所述分段的最大塊編號是否大于接收隊(duì)列中的前一 節(jié)點(diǎn)的最大塊編號且小于接收隊(duì)列中后一節(jié)點(diǎn)的最小塊編號減一,如果是,進(jìn) 入步驟07,否則丟棄所述分段,操作結(jié)束;步驟07,接收端新建接收隊(duì)列節(jié)點(diǎn)于所述分段的前一節(jié)點(diǎn)和后一節(jié)點(diǎn)之 間,并將所述新建接收節(jié)點(diǎn)的段標(biāo)識設(shè)為初段,操作結(jié)束;步驟08,接收端判斷所述分段是否同時(shí)滿足其最小塊編號與接收隊(duì)列中 的前一節(jié)點(diǎn)的最大塊編號相鄰且其最大塊編號與接收隊(duì)列中的后一節(jié)點(diǎn)的最 小塊編號相鄰,如果是,進(jìn)入步驟09,否則進(jìn)入步驟ll;步驟09,接收端刪除所述后一節(jié)點(diǎn),更新所述前一節(jié)點(diǎn)的最大塊編號為 所述后一節(jié)點(diǎn)的最大塊編號,并將所述分段和所述后一節(jié)點(diǎn)中的分段加入所述 前一節(jié)點(diǎn)中的分段隊(duì)列,進(jìn)入歩驟10;步驟10,接收端判斷是否同時(shí)所述前一節(jié)點(diǎn)的段標(biāo)識指示為初段且所述 后一節(jié)點(diǎn)的段標(biāo)識指示為末段,如果是,進(jìn)入步驟22,否則,操作結(jié)束;步驟11,接收端判斷所述分段是否同時(shí)滿足其最小塊編號與接收隊(duì)列中 的前一節(jié)點(diǎn)的最大塊編號相鄰但其最大塊編號不與接收隊(duì)列中的后一節(jié)點(diǎn)的 最小塊編號相鄰,如果是,進(jìn)入步驟12,否則進(jìn)入步驟13;步驟12,接收端更新所述前一節(jié)點(diǎn)的最大塊編號為所述分段的最大塊編 號,并將所述分段加入所述前一節(jié)點(diǎn)的分段隊(duì)列,操作結(jié)束;步驟13,接收端判斷所述分段是否同時(shí)滿足其最小塊編號不與接收隊(duì)列中的前一節(jié)點(diǎn)的最大塊編號相鄰但其最大塊編號與接收隊(duì)列中的后一節(jié)點(diǎn)的最小塊編號相鄰,如果是,進(jìn)入步驟14,否則進(jìn)入步驟15;步驟M,接收端更新所述后一節(jié)點(diǎn)的最小塊編號為所述分段的最小塊編 號,并將所述分段加入所述后一節(jié)點(diǎn)的中的分段隊(duì)列,操作結(jié)束;步驟15,接收端新建接收隊(duì)列節(jié)點(diǎn)于所述分段的前一節(jié)點(diǎn)和后一節(jié)點(diǎn)之 間,并將所述新建接收節(jié)點(diǎn)的段標(biāo)識設(shè)為中間段,操作結(jié)束;步驟16,接收端判斷所述分段的最小塊編號是否與接收隊(duì)列中的前一節(jié) 點(diǎn)的最大塊編號相鄰,若相鄰,進(jìn)入步驟17,否則進(jìn)入步驟20;步驟17,接收端更新所述前一節(jié)點(diǎn)的最大塊編號為所述分段的最大塊編 號,并在所述前一節(jié)點(diǎn)的分段隊(duì)列中加入所述分段,進(jìn)入步驟18;步驟18,接收端判斷所述前一節(jié)點(diǎn)的段標(biāo)識是否指示為初段,若是初段, 則進(jìn)入步驟22,否則進(jìn)入步驟19;步驟19,接收端將所述前一節(jié)點(diǎn)的段標(biāo)識設(shè)置為末段,操作結(jié)束;步驟20,接收端判斷所述分段的最小塊編號是否大于接收隊(duì)列中的前一 節(jié)點(diǎn)的最大塊編號加一且小于接收隊(duì)列中后一節(jié)點(diǎn)的最小塊編號,如果是,進(jìn) 入步驟21,否則丟棄所述分段,操作結(jié)束;步驟21,接收端新建接收隊(duì)列節(jié)點(diǎn)于所述分段的前一節(jié)點(diǎn)和后一節(jié)點(diǎn)之 間,并將所述新建接收節(jié)點(diǎn)的段標(biāo)識設(shè)為末段,操作結(jié)束;步驟22,若從步驟01進(jìn)入步驟22,則將所述分段隊(duì)列中的數(shù)據(jù)重組為完整的服務(wù)數(shù)據(jù)單元傳遞給上層,若從步驟04、步驟10和步驟18進(jìn)入步驟22, 則將分段隊(duì)列中的分段重組成服務(wù)數(shù)據(jù)單元傳遞給上層,并釋放分段、分段隊(duì) 列節(jié)點(diǎn)和接收隊(duì)列節(jié)點(diǎn)。較佳的,在所述通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,在步驟300中,所述接收端維護(hù)反饋隊(duì)列的過程包括以下步驟步驟3201,接收端第一次接收數(shù)據(jù)時(shí),檢驗(yàn)所述數(shù)據(jù)的最小塊編號是否 與接收窗口吻合,如果吻合,進(jìn)入步驟3202,否則,進(jìn)入步驟3203;步驟3202,接收端建立第一反饋節(jié)點(diǎn),進(jìn)入歩驟3204;步驟3203,接收端建立一個輔助反饋節(jié)點(diǎn),進(jìn)入步驟3204;步驟3204,接收端通過已接收到的數(shù)據(jù)的塊編號判斷后續(xù)數(shù)據(jù)是否按序 到達(dá),如果是,進(jìn)入步驟3205,否則,進(jìn)入步驟3206;步驟3205,接收端更新第一反饋節(jié)點(diǎn)的最大塊編號為所述數(shù)據(jù)中的最大 塊編號,進(jìn)入步驟3207;歩驟3206,接收端新建或者更新輔助反饋節(jié)點(diǎn)記錄接收信息,進(jìn)入歩驟 3207;步驟3207,接收端判斷是否有接收窗口跳動處理事件觸發(fā),如果有,進(jìn) 入步驟3208,否則,進(jìn)入歩驟3209;步驟320S,接收端刪除接收窗口前的所有輔助反饋節(jié)點(diǎn),進(jìn)入步驟3209;歩驟3209,接收端判斷是否有發(fā)送端或者接收端同步超時(shí)處理事件觸發(fā), 如果有,進(jìn)入歩驟3210,否則,進(jìn)入步驟3204;步驟3210,接收端清空反饋隊(duì)列,進(jìn)入步驟3211;步驟32U,接收端判斷是否有新數(shù)據(jù)到達(dá),如果有,進(jìn)入步驟3201,否 則,進(jìn)入步驟3212;步驟3212,操作結(jié)束。較佳的,在所述通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,在步驟300中,所 述接收端對所述發(fā)送端進(jìn)行反饋采用定時(shí)累積反饋的方法。較佳的,在所述通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,所述接收端采取定 時(shí)累積反饋的方法對所述發(fā)送端進(jìn)行反饋的過程包括以下步驟步驟3301,接收端同屬于一個終端的所有服務(wù)流最初一次接收到數(shù)據(jù)時(shí) 設(shè)置這個終端的周期反饋處理事件,周期反饋處理事件觸發(fā)后,進(jìn)入歩驟3302;步驟3302,接收端讀取第一個反饋隊(duì)列的接收信息,進(jìn)入歩驟3303;步驟3303,接收端判斷第一反饋節(jié)點(diǎn)的最大塊編號與本服務(wù)流最近一次 反饋的塊編號是否相同,如果相同,進(jìn)入步驟3304,如果不同,進(jìn)入歩驟3306;步驟3304,接收端判斷是否有剩余的反饋節(jié)點(diǎn),如果有,進(jìn)入步驟3305, 否則,進(jìn)入步驟3307;步驟3305,接收端讀取下一個反饋節(jié)點(diǎn),進(jìn)入步驟3303;步驟3306,接收端為本服務(wù)流生成反饋信息單元,進(jìn)入步驟3304;步驟3307,接收端判斷是否有新反饋信息單元生成,如果有,進(jìn)入步驟 3308,否則,進(jìn)入步驟3309;歩驟3308,接收端將所有反饋信息單元組合成反饋消息發(fā)送給發(fā)送端, 用來反饋接收端的數(shù)據(jù)接收情況,進(jìn)入步驟3309;步驟3309、等待下一次周期反饋處理事件觸發(fā)。較佳的,在所述通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,在步驟400中,所 述發(fā)送端根據(jù)所接收到的反饋信息對所述發(fā)送信息模塊進(jìn)行調(diào)整的過程包括 以下步驟歩驟401,發(fā)送端接收反饋消息后,取出所述反饋消息中的第一個未被讀 取過的反饋信息單元,找到對應(yīng)的服務(wù)流,進(jìn)入步驟402;步驟402,發(fā)送端檢驗(yàn)反饋信息單元中的反饋塊編號是否有效,即是否在 發(fā)送窗口范圍內(nèi),如果有效,進(jìn)入步驟403,否則進(jìn)入步驟404;步驟403,發(fā)送端從未收到反饋的最早發(fā)過的數(shù)據(jù)開始依次刪除發(fā)送隊(duì)列 節(jié)點(diǎn)信息,直到超出反饋范圍,進(jìn)入步驟405;步驟404,發(fā)送端刪除所述信息單元,操作結(jié)束;步驟405,發(fā)送端根據(jù)發(fā)送隊(duì)列節(jié)點(diǎn)信息或者反饋塊編號更新發(fā)送窗口 , 進(jìn)入步驟406;步驟406,發(fā)送端判斷所述反饋信息單元是否是最后一個反饋信息單元, 如果是,進(jìn)入步驟407,否則進(jìn)入步驟401; 步驟407,操作結(jié)束。本發(fā)明的有益效果是采取本發(fā)明中的通信網(wǎng)絡(luò)及其自動重傳機(jī)制實(shí)現(xiàn)方 法,可以有效的實(shí)現(xiàn)在通訊網(wǎng)絡(luò)中的數(shù)據(jù)發(fā)送、接收以及自動重傳。同時(shí),由于本發(fā)明中采取了發(fā)送隊(duì)列、接收隊(duì)列的形式對數(shù)據(jù)發(fā)送、接收以及自動重傳, 因此還可以使所述通信網(wǎng)絡(luò)在數(shù)據(jù)交換的過程中擁有更高的效率。
圖1為本發(fā)明的通信網(wǎng)絡(luò)及其自動重傳機(jī)制實(shí)現(xiàn)方法中發(fā)送隊(duì)列與接收隊(duì)列的數(shù)據(jù)組織結(jié)構(gòu)圖;圖2為當(dāng)數(shù)據(jù)在不可分段不可打包的情況下進(jìn)行發(fā)送時(shí)的流程圖;圖3為當(dāng)數(shù)據(jù)在不可分段可打包的情況下進(jìn)行發(fā)送時(shí)的流程圖;圖4為當(dāng)數(shù)據(jù)在可分段不可打包的情況下進(jìn)行發(fā)送時(shí)的流程圖;圖5為當(dāng)數(shù)據(jù)在可分段可打包的情況下進(jìn)行發(fā)送時(shí)的流程圖;圖6為本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,接收端接收數(shù)據(jù)的流程圖;圖7為本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中數(shù)據(jù)的接收重組算 法的流程圖;圖8為本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中接收端維護(hù)反饋隊(duì) 列的流程圖;圖9為本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中定時(shí)累積反饋方法 的流程圖;圖10為本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中發(fā)送端根據(jù)所接收 到的反饋信息對所述發(fā)送信息模塊進(jìn)行調(diào)整的流程圖; 圖11為本發(fā)明的通信網(wǎng)絡(luò)的框架圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對本發(fā)明的一種通信網(wǎng)絡(luò)及其自動重傳機(jī)制實(shí)現(xiàn)方法進(jìn)行進(jìn)一步詳細(xì)說 明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定 本發(fā)明。本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,首先需要針對每條服務(wù)流在 發(fā)送端建立一個發(fā)送隊(duì)列,在接收端建立一個接收隊(duì)列,分別用來保存本服務(wù) 流上的數(shù)據(jù)發(fā)送、接收情況,從而使所述通信網(wǎng)絡(luò)可以通過所述發(fā)送隊(duì)列與所述接收隊(duì)列實(shí)現(xiàn)自動重傳。在發(fā)送數(shù)據(jù)時(shí),對所述數(shù)據(jù)進(jìn)行分塊,進(jìn)行分塊后, 當(dāng)某些分塊未成功發(fā)送時(shí),只需要重新發(fā)送這些分塊,而不需要重新發(fā)送全部 數(shù)據(jù),因此可以提高發(fā)送數(shù)據(jù)的成功幾率和效率。請參照圖1,此為本發(fā)明的通信網(wǎng)絡(luò)及其自動重傳機(jī)制實(shí)現(xiàn)方法中發(fā)送隊(duì) 列與接收隊(duì)列的數(shù)據(jù)組織結(jié)構(gòu)圖。所述發(fā)送隊(duì)列的發(fā)送隊(duì)列頭包含所述服務(wù)流中需要發(fā)送的數(shù)據(jù)的總字節(jié) 數(shù)(總字節(jié)數(shù)),發(fā)送窗口 (用以定義可以發(fā)送的塊編號的范圍,以增大發(fā)送成功的幾率和發(fā)送效率),待發(fā)送塊編號BSN (Block S叫uence Number), 待重傳數(shù)據(jù),最后一個分塊的塊編號BSN (最大塊編號),處于等待反饋狀 態(tài)的分塊個數(shù)(等待反饋塊數(shù)),發(fā)送標(biāo)識(標(biāo)識此時(shí)發(fā)送隊(duì)列是否可以進(jìn)行 數(shù)據(jù)發(fā)送,當(dāng)進(jìn)行如重置等操作時(shí),在其過程中不能發(fā)送數(shù)據(jù)),重傳間隔時(shí) 間(在所述通信網(wǎng)絡(luò)建立服務(wù)流時(shí)定義的參數(shù)),同步定時(shí)器、重置定時(shí)器, 丟棄定時(shí)器,重置次數(shù)以及其他補(bǔ)充信息。所述發(fā)送隊(duì)列的發(fā)送隊(duì)列節(jié)點(diǎn)是待 發(fā)送的一個完整的服務(wù)數(shù)據(jù)單元SDU (Service Data Unit)或服務(wù)數(shù)據(jù)單元的 一部分,包含四個狀態(tài)隊(duì)列,即未發(fā)送隊(duì)列(存儲己經(jīng)分塊并編號,但未發(fā) 送的數(shù)據(jù))、等待反饋隊(duì)列、重傳隊(duì)列和丟棄隊(duì)列(存儲超過生存期定時(shí)器定 時(shí)的數(shù)據(jù)),本服務(wù)數(shù)據(jù)單元SDU的長度(數(shù)據(jù)長度),最后一個分塊的長 度(最后分塊長度),最大塊編號BSN,最小塊編號BSN,本服務(wù)數(shù)據(jù)單元 SDU的首地址(數(shù)據(jù)首地址)以及補(bǔ)充信息;其中,未發(fā)送隊(duì)列和丟棄隊(duì)列 使用塊隊(duì)列結(jié)構(gòu)塊隊(duì)列頭包含本隊(duì)列中的分塊狀態(tài)和全部分塊的總長度,塊 隊(duì)列節(jié)點(diǎn)對應(yīng)于一個分塊,包含本分塊的塊首地址和塊編號BSN;等待反饋 隊(duì)列和重傳隊(duì)列使用時(shí)間隊(duì)列結(jié)構(gòu)時(shí)間隊(duì)列頭包含本隊(duì)列中的分塊的狀態(tài), 時(shí)間隊(duì)列節(jié)點(diǎn)包含重傳定時(shí)器,生存期定時(shí)器以及使用相同重傳定時(shí)器和生存 期定時(shí)器的一組分塊。所述接收隊(duì)列的接收隊(duì)列頭包含接收窗口 (用以定義可以接收的塊編號 的范圍,以增大發(fā)送成功的幾率和發(fā)送效率),接收到的最后一個分塊的塊編號BSN (最大塊編號),接收標(biāo)識(標(biāo)識此時(shí)接收隊(duì)列是否可以進(jìn)行數(shù)據(jù)接收),同步定時(shí)器、重置定時(shí)器,重置次數(shù)、反饋隊(duì)列(反饋池)和補(bǔ)充信息。 所述接收隊(duì)列的接收隊(duì)列節(jié)點(diǎn)是從發(fā)送端接收到的一個完整的服務(wù)數(shù)據(jù)單元SDU或服務(wù)數(shù)據(jù)單元的一部分,包含本服務(wù)數(shù)據(jù)單元SDU的最大塊編號BSN (最大塊編號),最小塊編號BSN,最后一個分塊的長度(最后分塊長度),段狀態(tài)標(biāo)識(即段標(biāo)識,用于標(biāo)識所述分段是初段,中間段或末段等)和分段隊(duì)列;其中,分段隊(duì)列頭保存分段的總長度,分段隊(duì)列節(jié)點(diǎn)對應(yīng)所述服 務(wù)數(shù)據(jù)單元SDU的一個分段,包含分段長度,分段首地址和分段的最小塊 編號BSN;反饋隊(duì)列(反饋池)用來存儲接收到的數(shù)據(jù)信息,反饋隊(duì)列頭中有最近一次反饋的塊編號BSN,反饋隊(duì)列節(jié)點(diǎn)中包含本節(jié)點(diǎn)所包含數(shù)據(jù)的最 大塊編號BSN,最小塊編號BSN和清除定時(shí)器隊(duì)列;清除定時(shí)器隊(duì)列節(jié)點(diǎn)中 包含清除定時(shí)器和開啟所述清除定時(shí)器的連續(xù)塊序列的最大塊編號BSN。在發(fā)送端和接收端分別建立發(fā)送隊(duì)列和接收隊(duì)列之后,發(fā)送端將待發(fā)送數(shù) 據(jù)分塊、編號,存儲到未發(fā)送隊(duì)列,記錄新數(shù)據(jù)到達(dá)信息(服務(wù)流的相關(guān)參數(shù) 等信息)。當(dāng)有帶寬可用時(shí),發(fā)送端檢査是否是服務(wù)流第一次發(fā)送數(shù)據(jù),若是, 啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同步超時(shí)處理事件;若不是, 直接根據(jù)可用帶寬計(jì)算可以發(fā)送的字節(jié)數(shù),按照重傳數(shù)據(jù)優(yōu)先的原則發(fā)送數(shù) 據(jù)。發(fā)送過程中,如果存在重傳數(shù)據(jù),將數(shù)據(jù)從重傳隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列, 重啟重傳定時(shí)器,記錄發(fā)送信息;否則查看未發(fā)送隊(duì)列中是否有數(shù)據(jù),若有數(shù) 據(jù)且其編號在可發(fā)送范圍內(nèi),則將其轉(zhuǎn)移到發(fā)送隊(duì)列,將數(shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn) 移到等待反饋隊(duì)列,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超時(shí)處理事件、 生成期超時(shí)處理事件,記錄發(fā)送信息。其中,根據(jù)服務(wù)流參數(shù)和帶寬情況的不 同,所述數(shù)據(jù)擁有四種不同的狀態(tài),即不可分段不可打包,不可分段可打包, 可分段不可打包以及可分段可打包。針對所述數(shù)據(jù)的四種不同狀態(tài),分別采取 不同的處理方式。請參照圖2,此為當(dāng)數(shù)據(jù)在不可分段不可打包的情況下進(jìn)行發(fā)送時(shí)的流程 圖。當(dāng)所述數(shù)據(jù)不可分段不可打包時(shí),發(fā)送端發(fā)送所述數(shù)據(jù)的過程包括以下步 驟步驟S201,發(fā)送端將待發(fā)送數(shù)據(jù)根據(jù)服務(wù)流參數(shù)進(jìn)行分塊,存儲到未發(fā) 送隊(duì)列,記錄所述數(shù)據(jù)的到達(dá)信息,進(jìn)入歩驟S202;步驟S202,發(fā)送端判斷所述服務(wù)流是否是第一次發(fā)送數(shù)據(jù),如果是,進(jìn) 入步驟S203,否則,進(jìn)入步驟S204;步驟S203,發(fā)送端啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同步 超時(shí)處理事件,進(jìn)入步驟S204;歩驟S204,發(fā)送端判斷可發(fā)送的字節(jié)數(shù)是否大于0,如果是,進(jìn)入步驟S206,否則,進(jìn)入步驟S205; 步驟S205,操作結(jié)束;步驟S206,發(fā)送端檢查是否存在需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn),如果存在, 進(jìn)入步驟S207,否則,進(jìn)入步驟S210,其中,已檢測過的發(fā)送隊(duì)列節(jié)點(diǎn)不再 被檢測;步驟S207,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中是否有數(shù)據(jù),如 果有,進(jìn)入步驟S208,如果沒有,進(jìn)入步驟S206;步驟S208,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)是否在發(fā)送窗口的 范圍內(nèi),如果在,進(jìn)入步驟S209;否則,進(jìn)入步驟S205;步驟S209,發(fā)送端將所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中的數(shù)據(jù)從重傳隊(duì)列 轉(zhuǎn)移到等待反饋隊(duì)列,記錄發(fā)送信息,重啟重傳定時(shí)器,用所述數(shù)據(jù)生成協(xié)議 數(shù)據(jù)單元PDU等待發(fā)送,進(jìn)入步驟S204,其中,在發(fā)送端中,設(shè)置有一發(fā)送 模塊,用于將等待發(fā)送的協(xié)議數(shù)據(jù)單元PDU保存并發(fā)送至接收端;步驟S210,發(fā)送端檢查未發(fā)送隊(duì)列中是否有數(shù)據(jù),如果有,進(jìn)入步驟S211 , 否則,進(jìn)入步驟S205;步驟S211,發(fā)送端檢查所述未發(fā)送隊(duì)列中的單個數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單 元PDU后,是否會超出最大協(xié)議數(shù)據(jù)單元PDU的長度,如果是,進(jìn)入步驟 S212,否則,進(jìn)入步驟S213;步驟S212,發(fā)送端刪除所述未發(fā)送隊(duì)列中的數(shù)據(jù),進(jìn)入步驟S210;步驟S213,發(fā)送端判斷所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號后是否在發(fā)送窗 口的范圍內(nèi),如果在,進(jìn)入步驟S214,否則,進(jìn)入步驟S205;步驟S214,發(fā)送端將所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號,構(gòu)建成完整的發(fā) 送隊(duì)列節(jié)點(diǎn),添加到發(fā)送隊(duì)列,進(jìn)入步驟S215;步驟S215、發(fā)送端將所述添加到發(fā)送隊(duì)列中的所述發(fā)送隊(duì)列節(jié)點(diǎn)中的數(shù) 據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列,記錄發(fā)送信息,啟動重傳定時(shí)器、生存 期定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期超時(shí)處理事件,生成協(xié)議數(shù)據(jù)單元 PDU等待發(fā)送,進(jìn)入步驟S204。請參照圖3,此為當(dāng)數(shù)據(jù)在不可分段可打包的情況下進(jìn)行發(fā)送時(shí)的流程 圖。當(dāng)所述數(shù)據(jù)不可分段可打包時(shí),發(fā)送端發(fā)送所述數(shù)據(jù)的過程包括以下步驟步驟S301,發(fā)送端將待發(fā)送數(shù)據(jù)根據(jù)服務(wù)流參數(shù)進(jìn)行分塊,存儲到未發(fā) 送隊(duì)列,記錄所述數(shù)據(jù)的到達(dá)信息,初始化生成隊(duì)列(所述生成隊(duì)列用于存放 可以進(jìn)行打包的數(shù)據(jù)),進(jìn)入步驟S302;步驟S302,發(fā)送端判斷本服務(wù)流是否是第一次發(fā)送數(shù)據(jù),如果是,進(jìn)入 步驟S303,否則,進(jìn)入步驟S304;步驟S303,發(fā)送端啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同步 超時(shí)處理事件,進(jìn)入步驟S304;步驟S304,發(fā)送端判斷可發(fā)送的字節(jié)數(shù)是否大于0,如果是,進(jìn)入步驟 S306,否則,進(jìn)入步驟S305;步驟S305,操作結(jié)束;步驟S306,發(fā)送端檢查是否存在需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn),如果存在, 進(jìn)入步驟S307,否則,進(jìn)入步驟S312,其中,己檢測過的發(fā)送隊(duì)列節(jié)點(diǎn)不再 被檢測;步驟S307,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中是否有數(shù)據(jù),如 果有,進(jìn)入步驟S308,如果沒有,進(jìn)入步驟S306;步驟S308,發(fā)送端檢査所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)是否在發(fā)送窗口的 范圍內(nèi),如果在,進(jìn)入步驟S309,否則,進(jìn)入步驟S320;步驟S309,發(fā)送端檢查本次發(fā)送的數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元PDU后,是 否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元PDU長度,如果是,進(jìn)入步驟S310,否則, 進(jìn)入歩驟S311;步驟S310,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),進(jìn)入步驟S311;步驟S311,發(fā)送端將可用于打包的數(shù)據(jù)從重傳隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列, 記錄發(fā)送信息,重啟重傳定時(shí)器,加入生成隊(duì)列,進(jìn)入步驟S304;步驟S312,發(fā)送端檢査未發(fā)送隊(duì)列中是否有數(shù)據(jù),如果有,進(jìn)入步驟S313; 否則,進(jìn)入步驟S320;步驟S313,發(fā)送端檢查所述未發(fā)送隊(duì)列中的單個數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單 元PDU后,是否會超出最大協(xié)議數(shù)據(jù)單元PDU的長度,如果是,進(jìn)入步驟 S314,否則,進(jìn)入步驟S315;步驟S314,發(fā)送端刪除所述數(shù)據(jù),進(jìn)入步驟S312;步驟S315,發(fā)送端判斷所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號后是否在發(fā)送窗口的范圍內(nèi),如果是,進(jìn)入步驟S316,否則,進(jìn)入步驟S320;步驟S316,發(fā)送端將所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號,構(gòu)建成完整的發(fā)送隊(duì)列節(jié)點(diǎn),添加到發(fā)送隊(duì)列,進(jìn)入步驟S317;步驟S317,發(fā)送端檢查本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元PDU后, 是否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元PDU長度,如果是,進(jìn)入步驟S318,否 則,進(jìn)入步驟S319;步驟S318,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),進(jìn)入步驟S319;步驟S319,發(fā)送端將可用于打包的數(shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到等待反饋隊(duì) 列,記錄發(fā)送信息,同時(shí)啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超時(shí)處理 事件、生存期超時(shí)處理事件,加入生成隊(duì)列,進(jìn)入歩驟S304;步驟S320,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),用所述數(shù)據(jù)生成協(xié)議數(shù)據(jù)單 元PDU等待發(fā)送,操作結(jié)束。請參照圖4,此為當(dāng)數(shù)據(jù)在可分段不可打包的情況下進(jìn)行發(fā)送時(shí)的流程 圖。當(dāng)所述數(shù)據(jù)可分段不可打包時(shí),發(fā)送端發(fā)送所述數(shù)據(jù)的過程包括以下步驟步驟S401,發(fā)送端將待發(fā)送數(shù)據(jù)根據(jù)服務(wù)流參數(shù)進(jìn)行分塊,存儲到未發(fā) 送隊(duì)列,記錄所述數(shù)據(jù)的到達(dá)信息,進(jìn)入步驟S402;步驟S402,發(fā)送端判斷本服務(wù)流是否是第一次發(fā)送數(shù)據(jù),如果是,進(jìn)入 步驟S403,否則,進(jìn)入步驟S404;步驟S403,發(fā)送端啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同步 超時(shí)處理事件,進(jìn)入步驟S404;步驟S404,發(fā)送端判斷可發(fā)送的字節(jié)數(shù)是否大于0,如果是,進(jìn)入步驟 S406,否則,進(jìn)入步驟S405;步驟S405,操作結(jié)束;步驟S406,發(fā)送端檢査是否存在需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn),如果存在, 進(jìn)入步驟S407,否則,進(jìn)入步驟S412,其中,已檢測過的發(fā)送隊(duì)列節(jié)點(diǎn)不再 被檢測;步驟S407,發(fā)送端檢査所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中是否有數(shù)據(jù),如 果有,進(jìn)入步驟S408,如果沒有,進(jìn)入步驟S406;步驟S408,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)的第一時(shí)間隊(duì)列節(jié) 點(diǎn)是否在發(fā)送窗口的范圍內(nèi),如果在,進(jìn)入步驟S409,否則,進(jìn)入步驟S410;步驟S409,發(fā)送端將重傳隊(duì)列中的數(shù)據(jù)轉(zhuǎn)移到等待反饋隊(duì)列,記錄發(fā)送信息,重啟重傳定時(shí)器,生成協(xié)議數(shù)據(jù)單元PDU等待發(fā)送,進(jìn)入步驟S404;步驟S410,發(fā)送端判斷帶寬是否大于一個分塊的長度,如果是,進(jìn)入步 驟S411,否則,進(jìn)入步驟S405,本發(fā)明中的分塊是指將服務(wù)數(shù)據(jù)單元SDU 分成的塊,是不能再分的,而本發(fā)明中的分段是指若干個服務(wù)數(shù)據(jù)單元SDU 分塊,分段的長度是可變的,可以只有一個分塊,也可以包括多個分塊;步驟S411,發(fā)送端生成新的時(shí)間隊(duì)列節(jié)點(diǎn),加入到等待反饋隊(duì)列,記錄 發(fā)送信息,取出原時(shí)間隊(duì)列節(jié)點(diǎn)的生存期剩余時(shí)間,為新時(shí)間隊(duì)列節(jié)點(diǎn)啟動生 存期定時(shí)器、重傳定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期超時(shí)處理事件,生 成協(xié)議數(shù)據(jù)單元PDU等待發(fā)送,進(jìn)入步驟S405;步驟S412,發(fā)送端檢查未發(fā)送隊(duì)列中是否有數(shù)據(jù),如果有,進(jìn)入步驟S413, 否則,進(jìn)入步驟S405;步驟S413,發(fā)送端判斷帶寬是否大于一個分塊的長度,如果是,進(jìn)入步 驟S414,否則,進(jìn)入步驟S405;步驟S414發(fā)送端將所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號,構(gòu)建成完整的發(fā)送 隊(duì)列節(jié)點(diǎn),添加到發(fā)送隊(duì)列,進(jìn)入步驟S415;步驟S415,發(fā)送端判斷所述發(fā)送隊(duì)列節(jié)點(diǎn)中的未發(fā)送隊(duì)列中的數(shù)據(jù)的塊 編號是否在發(fā)送窗口的范圍內(nèi),如果是,進(jìn)入步驟S416,否則,進(jìn)入步驟S417;步驟S416,發(fā)送端將全部數(shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列,記錄 發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期 超時(shí)處理事件,生成協(xié)議數(shù)據(jù)單元PDU等待發(fā)送,進(jìn)入步驟S404;步驟S417,發(fā)送端將處于發(fā)送窗口范圍內(nèi)部分?jǐn)?shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到 等待反饋隊(duì)列,記錄發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超 時(shí)處理事件、生存期超時(shí)處理事件,生成協(xié)議數(shù)據(jù)單元PDU等待發(fā)送,進(jìn)入 步驟S405。請參照圖5,此為當(dāng)數(shù)據(jù)在可分段可打包的情況下進(jìn)行發(fā)送時(shí)的流程圖。 當(dāng)所述數(shù)據(jù)可分段可打包時(shí),發(fā)送端發(fā)送所述數(shù)據(jù)的過程包括以下步驟步驟S501,發(fā)送端將待發(fā)送數(shù)據(jù)根據(jù)服務(wù)流參數(shù)進(jìn)行分塊,存儲到未發(fā) 送隊(duì)列,記錄新數(shù)據(jù)到達(dá)信息,初始化生成隊(duì)列,進(jìn)入步驟S502;步驟S502,發(fā)送端判斷本服務(wù)流是否是第一次發(fā)送數(shù)據(jù),如果是,進(jìn)入步驟S503,否則,進(jìn)入步驟S504;步驟S503,發(fā)送端啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同步 超時(shí)處理事件,進(jìn)入步驟S504;步驟S504,發(fā)送端判斷可發(fā)送的字節(jié)數(shù)是否大于0,如果是,進(jìn)入步驟 S506,否則,進(jìn)入步驟S505;步驟S505,操作結(jié)束;步驟S506,發(fā)送端檢査是否存在需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn),如果存在, 進(jìn)入步驟S507,否則,進(jìn)入步驟S516,其中,已檢測過的發(fā)送隊(duì)列節(jié)點(diǎn)不再步驟S507,發(fā)送端檢査所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中是否有數(shù)據(jù),如 果有,進(jìn)入步驟S508,如果沒有,進(jìn)入步驟S506;步驟S508,發(fā)送端檢査所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)的第一時(shí)間隊(duì)列節(jié) 點(diǎn)是否在發(fā)送窗口的范圍內(nèi),如果在,進(jìn)入步驟S509,否則,進(jìn)入步驟S512;步驟S509,發(fā)送端檢查本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元PDU后, 是否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元PDU長度,如果是,進(jìn)入步驟S510,否 則,進(jìn)入步驟S511;步驟S510發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),進(jìn)入步驟S511;步驟S511,發(fā)送端將本時(shí)間隊(duì)列節(jié)點(diǎn)從重傳隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列, 記錄發(fā)送信息,重啟重傳定時(shí)器,加入生成隊(duì)列,進(jìn)入步驟S504;步驟S512,發(fā)送端判斷帶寬是否大于一個分塊的長度,如果是,進(jìn)入步 驟S513,否則,進(jìn)入步驟S526;步驟S513,發(fā)送端檢查本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元PDU后, 是否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元PDU長度,如果是,進(jìn)入步驟S514,否 則,進(jìn)入步驟S515;步驟S514,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),進(jìn)入步驟S515;步驟S515,發(fā)送端生成新的時(shí)間隊(duì)列節(jié)點(diǎn),加入到等待反饋隊(duì)列,記錄 發(fā)送信息,取出原時(shí)間隊(duì)列節(jié)點(diǎn)的生存期剩余時(shí)間,為新時(shí)間隊(duì)列節(jié)點(diǎn)啟動生 存期定時(shí)器、重傳定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期超時(shí)處理事件,加 入生成隊(duì)列,進(jìn)入步驟S526;步驟S516,發(fā)送端檢査未發(fā)送隊(duì)列中是否有數(shù)據(jù),如果有,進(jìn)入步驟S517,否則,進(jìn)入步驟S526;步驟S517,發(fā)送端判斷帶寬是否大于一個分塊的長度,如果是,進(jìn)入步 驟S518,否則,進(jìn)入歩驟S526;步驟S518,發(fā)送端將所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號,構(gòu)建成完整的發(fā) 送隊(duì)列節(jié)點(diǎn),添加到發(fā)送隊(duì)列,進(jìn)入步驟S519;步驟S519,發(fā)送端判斷所述發(fā)送隊(duì)列節(jié)點(diǎn)中的未發(fā)送隊(duì)列中的數(shù)據(jù)的塊 編號是否在發(fā)送窗口的范圍內(nèi),如果是,進(jìn)入步驟S520,否則,進(jìn)入歩驟S523;步驟S520,發(fā)送端檢査本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元PDU后, 是否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元PDU長度,如果是,進(jìn)入步驟S521,否 則,進(jìn)入步驟S522;步驟S521,發(fā)送端打包生成隊(duì)列中現(xiàn)有的數(shù)據(jù),進(jìn)入歩驟S522;步驟S522,發(fā)送端將處于發(fā)送窗口范圍內(nèi)部分?jǐn)?shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到 等待反饋隊(duì)列,記錄發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超 時(shí)處理事件、生存期超時(shí)處理事件,加入生成隊(duì)列,進(jìn)入步驟S516;步驟S523,發(fā)送端檢査本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元PDU后, 是否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元PDU長度,如果是,進(jìn)入步驟S524,否 則,進(jìn)入步驟S525;步驟S524,發(fā)送端打包生成隊(duì)列中現(xiàn)有的數(shù)據(jù),進(jìn)入歩驟S525;步驟S525,發(fā)送端將全部數(shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列,記錄 發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期 超時(shí)處理事件,加入生成隊(duì)列,進(jìn)入步驟S526。步驟S526,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),用所述數(shù)據(jù)生成協(xié)議數(shù)據(jù)單 元PDU等待發(fā)送,操作結(jié)束。在接收端中,設(shè)置有一接收模塊,用于將接收發(fā)送端發(fā)送來的協(xié)議數(shù)據(jù)單 元PDU,并解析還原成服務(wù)數(shù)據(jù)元SDU。接收端接收到發(fā)送端發(fā)送來的數(shù)據(jù) 分段(所述分段中包括一個或更多的數(shù)據(jù)塊)后,檢查是否是服務(wù)流第一次接 收數(shù)據(jù),若是,啟動本服務(wù)流接收端同步定時(shí)器,設(shè)置接收端同步超時(shí)處理事 件;若不是,直接檢驗(yàn)所述分段中的塊編號BSN是否在接收窗口范圍內(nèi),如 果不在窗口范圍內(nèi),刪除該分段,結(jié)束;如果在窗口范圍內(nèi),檢查本分段的最 小塊編號BSN是否與接收窗口值相吻合,如果吻合,觸發(fā)接收窗口跳動處理事件,跳動接收窗口到本分段的最大塊編號BSN加1的位置,重置同步定時(shí) 器,-如果不吻合,接收窗口不動,根據(jù)接收重組算法來處理本分段,并為分段 啟動清除定時(shí)器,設(shè)置清除超時(shí)處理事件。當(dāng)接收隊(duì)列節(jié)點(diǎn)組合成完整的服務(wù)數(shù)據(jù)單元SDU后,判斷是否要求有序上傳,如果是,按照塊編號BSN遞增的順序依次上傳;否則,立即上傳。請參照圖6,此為本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,接收端接收數(shù)據(jù)的流程圖。本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中接收端接收數(shù)據(jù)的過程包括以下步驟步驟S601 ,接收端接收到從所接收到的協(xié)議數(shù)據(jù)單元PDU解析而來的服 務(wù)數(shù)據(jù)單元SDU中的分段,檢查是否是第一次接收數(shù)據(jù),如果是,進(jìn)入步驟 S602,否則,進(jìn)入步驟S603;步驟S602,接收端啟動接收端同步定時(shí)器,設(shè)置接收端同步超時(shí)處理事 件,進(jìn)入步驟S603;步驟S603,接收端檢驗(yàn)所述分段中的的塊編號BSN是否在接收窗口以內(nèi), 如果不在窗口范圍內(nèi),進(jìn)入步驟S604,如果在窗口范圍內(nèi),進(jìn)入步驟S605;步驟S604,接收端刪除所述分段,操作結(jié)束;步驟S605,接收端檢査所述分段中的最小塊編號BSN是否與接收窗口相 吻合,即是否等于接收窗口中所定義可以接收的塊編號BSN中的最小塊編號 BSN,如果吻合,進(jìn)入步驟S606,否則,進(jìn)入步驟S607;步驟S606,接收端觸發(fā)接收窗口跳動事件,跳動接收窗口到本分段的最 大塊編號BSN加1的位置,重置同步定時(shí)器,進(jìn)入步驟S608;步驟S607,接收端保持接收窗口不動,根據(jù)接收重組算法來處理本分段, 并為所述分段啟動清除定時(shí)器,設(shè)置清除超時(shí)處理事件,進(jìn)入步驟S608;步驟S608,接收端當(dāng)接收隊(duì)列節(jié)點(diǎn)組合成完整的服務(wù)數(shù)據(jù)單元SDU后, 根據(jù)在所述通信網(wǎng)絡(luò)建立服務(wù)流時(shí)定義的參數(shù)判斷是否要求有序上傳,如果 是,進(jìn)入步驟S609,否則,進(jìn)入步驟S610;步驟S609,按照塊編號BSN遞增的順序依次上傳服務(wù)數(shù)據(jù)單元SDU,操 作結(jié)束;步驟S610,立即上傳,操作結(jié)束。請參照圖7,此為本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,數(shù)據(jù)的接收重組算法的流程圖。在前述的步驟S607中,接收端根據(jù)接收重組算法來 處理分段。本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,數(shù)據(jù)的接收重組算 法的過程包括以下步驟步驟S701,接收端通過段標(biāo)識對所接收的分段進(jìn)行判斷,若所述分段是初段,進(jìn)入歩驟S702,若所述分段是中間分段,進(jìn)入步驟S708,若所述分段 是末段,進(jìn)入步驟S716,若所述分段是完整的服務(wù)數(shù)據(jù)單元SDU (以分塊的 形式保存,可重組為完整的服務(wù)數(shù)據(jù)單元SDU),進(jìn)入步驟S722;步驟S702,接收端判斷所述分段的最大塊編號是否與接收隊(duì)列中的后一 節(jié)點(diǎn)的最小塊編號相鄰,若相鄰,進(jìn)入步驟S703,否則進(jìn)入步驟S706;步驟S703,更新所述后一節(jié)點(diǎn)的最小塊編號為所述分段的最小塊編號, 并在所述后一節(jié)點(diǎn)的分段隊(duì)列中加入所述分段,進(jìn)入步驟S704;步驟S704,接收端判斷所述后一節(jié)點(diǎn)的段標(biāo)識是否指示為是否為末段, 若是末段,則進(jìn)入步驟S722,否則進(jìn)入步驟S705;步驟S705,接收端將所述后一節(jié)點(diǎn)的段標(biāo)識設(shè)置為初段,操作結(jié)束;步驟S706,接收端判斷所述分段的最大塊編號BSN是否大于接收隊(duì)列中 的前一節(jié)點(diǎn)的最大塊編號BSN且小于接收隊(duì)列中后一節(jié)點(diǎn)的最小塊編號BSN 減一,如果是,進(jìn)入步驟S707,否則丟棄所述分段,操作結(jié)束;步驟S707,接收端新建接收隊(duì)列節(jié)點(diǎn)于所述分段的前一節(jié)點(diǎn)和后一節(jié)點(diǎn) 之間,并將所述新建接收節(jié)點(diǎn)的段標(biāo)識設(shè)為初段,操作結(jié)束;步驟S708,接收端判斷所述分段是否同時(shí)滿足其最小塊編號BSN與接收 隊(duì)列中的前一節(jié)點(diǎn)的最大塊編號BSN相鄰且其最大塊編號BSN與接收隊(duì)列中 的后一節(jié)點(diǎn)的最小塊編號BSN相鄰,如果是,進(jìn)入歩驟S709,否則進(jìn)入步驟 S711;步驟S709,接收端刪除所述后一節(jié)點(diǎn),更新所述前一節(jié)點(diǎn)的最大塊編號 BSN為所述后一節(jié)點(diǎn)的最大塊編號BSN,并將所述分段和所述后一節(jié)點(diǎn)中的 分段加入所述前一節(jié)點(diǎn)中的分段隊(duì)列,進(jìn)入步驟S710;步驟S710,接收端判斷是否同時(shí)所述前一節(jié)點(diǎn)的段標(biāo)識指示為初段且所 述后一節(jié)點(diǎn)的段標(biāo)識指示為末段,如果是,進(jìn)入步驟S722,否則,操作結(jié)束;步驟S711,接收端判斷所述分段是否同時(shí)滿足其最小塊編號BSN與接收 隊(duì)列中的前一節(jié)點(diǎn)的最大塊編號BSN相鄰但其最大塊編號BSN不與接收隊(duì)列中的后一節(jié)點(diǎn)的最小塊編號BSN相鄰,如果是,進(jìn)入步驟S712,否則進(jìn)入步 驟S713;步驟S712,接收端更新所述前一節(jié)點(diǎn)的最大塊編號為所述分段的最大塊 編號,并將所述分段加入所述前一節(jié)點(diǎn)的分段隊(duì)列,操作結(jié)束;步驟S713,接收端判斷所述分段是否同時(shí)滿足其最小塊編號BSN不與接 收隊(duì)列中的前一節(jié)點(diǎn)的最大塊編號BSN相鄰但其最大塊編號BSN與接收隊(duì)列 中的后一節(jié)點(diǎn)的最小塊編號BSN相鄰,如果是,進(jìn)入步驟S714,否則進(jìn)入步 驟S715;步驟S714,接收端更新所述后一節(jié)點(diǎn)的最小塊編號為所述分段的最小塊 編號,并將所述分段加入所述后一節(jié)點(diǎn)的中的分段隊(duì)列,操作結(jié)束;步驟S715,接收端新建接收隊(duì)列節(jié)點(diǎn)于所述分段的前一節(jié)點(diǎn)和后一節(jié)點(diǎn) 之間,并將所述新建接收節(jié)點(diǎn)的段標(biāo)識設(shè)為中間段,操作結(jié)束;步驟S716,接收端判斷所述分段的最小塊編號是否與接收隊(duì)列中的前一 節(jié)點(diǎn)的最大塊編號相鄰,若相鄰,進(jìn)入步驟S717,否則進(jìn)入步驟S720;步驟S717,接收端更新所述前一節(jié)點(diǎn)的最大塊編號為所述分段的最大塊 編號,并在所述前一節(jié)點(diǎn)的分段隊(duì)列中加入所述分段,進(jìn)入步驟S718;步驟S718,接收端判斷所述前一節(jié)點(diǎn)的段標(biāo)識是否指示為初段,若是初 段,則進(jìn)入步驟S722,否則進(jìn)入步驟S719;步驟S719,接收端將所述前一節(jié)點(diǎn)的段標(biāo)識設(shè)置為末段,操作結(jié)束;步驟S720,接收端判斷所述分段的最小塊編號BSN是否大于接收隊(duì)列中 的前一節(jié)點(diǎn)的最大塊編號BSN加一且小于接收隊(duì)列中后一節(jié)點(diǎn)的最小塊編號 BSN,如果是,進(jìn)入步驟S721,否則丟棄所述分段,操作結(jié)束;步驟S721,接收端新建接收隊(duì)列節(jié)點(diǎn)于所述分段的前一節(jié)點(diǎn)和后一節(jié)點(diǎn) 之間,并將所述新建接收節(jié)點(diǎn)的段標(biāo)識設(shè)為末段,操作結(jié)束;步驟S722,若從步驟S701進(jìn)入步驟S722,則將所述分段隊(duì)列中的數(shù)據(jù) 重組為完整的服務(wù)數(shù)據(jù)單元SDU傳遞給上層,若從步驟S704、步驟S710和 步驟S718進(jìn)入步驟S722,則將分段隊(duì)列中的分段重組成服務(wù)數(shù)據(jù)單元SDU 傳遞給上層,并釋放分段、分段隊(duì)列節(jié)點(diǎn)和接收隊(duì)列節(jié)點(diǎn)。在本發(fā)明中,接收端對于接收信息的反饋采用定時(shí)累積反饋的方法,接收 端只在間隔內(nèi)有順序新數(shù)據(jù)到達(dá)的情況下發(fā)送反饋消息。其中,所述間隔為在所述通信網(wǎng)絡(luò)建立服務(wù)流時(shí)定義的參數(shù)。接收端針對每條服務(wù)流維護(hù)一個反饋池(反饋隊(duì)列),由反饋節(jié)點(diǎn)記錄的 信息顯示是否有順序新數(shù)據(jù)到達(dá)。接收端第一次接收到數(shù)據(jù)后開始建立反饋節(jié) 點(diǎn),如果所述數(shù)據(jù)的最小塊編號BSN剛好與接收窗口吻合(最小塊編號BSN與接收窗口中定義的可以接收的塊編號BSN中的最小塊編號BSN—致),這 個反饋節(jié)點(diǎn)稱作第一反饋節(jié)點(diǎn),否則稱作輔助反饋節(jié)點(diǎn)。如果后續(xù)數(shù)據(jù)是按序 到達(dá),則更新第一反饋節(jié)點(diǎn)的最大塊編號BSN,否則新建或者更新輔助反饋 節(jié)點(diǎn)記錄接收信息。接收窗口跳動處理事件觸發(fā)時(shí),跳動接收窗口并刪除窗口 前所有輔助反饋節(jié)點(diǎn)。發(fā)送端或者接收端同步超時(shí)處理事件觸發(fā)時(shí),重置發(fā)送 端和接收端,清空反饋池,再接收數(shù)據(jù)時(shí)重新建立反饋節(jié)點(diǎn)。反饋池維護(hù)流程 詳見附圖8。請參照圖8,此為本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中,接收端 維護(hù)反饋隊(duì)列的流程圖。本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中接收端 維護(hù)反饋隊(duì)列的過程包括以下步驟步驟S801,接收端第一次接收數(shù)據(jù)時(shí),檢驗(yàn)所述數(shù)據(jù)的最小塊編號BSN 是否與接收窗口吻合,如果吻合,進(jìn)入步驟S802,否則,進(jìn)入步驟S803;步驟S802,接收端建立第一反饋節(jié)點(diǎn),進(jìn)入步驟S804;步驟S803,接收端建立一個輔助反饋節(jié)點(diǎn),進(jìn)入步驟S804;步驟S804,接收端通過已接收到的數(shù)據(jù)的塊編號BSN判斷后續(xù)數(shù)據(jù)是否 按序到達(dá),如果是,進(jìn)入步驟S805,否則,進(jìn)入步驟S806;步驟S805,接收端更新第一反饋節(jié)點(diǎn)的最大塊編號BSN為所述數(shù)據(jù)中的 最大塊編號,進(jìn)入步驟S807;歩驟S806,接收端新建或者更新輔助反饋節(jié)點(diǎn)記錄接收信息,進(jìn)入步驟 S807;步驟S807,接收端判斷是否有接收窗口跳動處理事件觸發(fā),如果有,進(jìn) 入步驟S808,否則,進(jìn)入步驟S809;步驟S808,接收端刪除接收窗口前(即所有塊編號小于接收窗口中定義 的可以接收的塊編號BSN)的所有輔助反饋節(jié)點(diǎn),進(jìn)入步驟S809;步驟S809,接收端判斷是否有發(fā)送端或者接收端同步超時(shí)處理事件觸發(fā), 如果有,進(jìn)入步驟S810,否則,進(jìn)入步驟S804;步驟S810,接收端清空反饋隊(duì)列,進(jìn)入步驟S811;步驟S811,接收端判斷是否有新數(shù)據(jù)到達(dá),如果有,進(jìn)入步驟S801,否則,進(jìn)入步驟S812;步驟S812,操作結(jié)束。本發(fā)明中,定時(shí)累積反饋方法具體實(shí)施步驟為接收端同屬于一個終端的所有服務(wù)流最初一次接收到數(shù)據(jù)時(shí)設(shè)置這個終端的周期反饋處理事件,每次事件觸發(fā)后讀取各個反饋池的接收信息,發(fā)現(xiàn)第一反饋節(jié)點(diǎn)的最大塊編號BSN 與本服務(wù)流最近一次反饋的塊編號BSN不同時(shí),為本服務(wù)流生成反饋信息單 元(所述反饋信息單元在所述接收端中生成,用于記錄反饋的信息),輪詢完 所有的反饋隊(duì)列后,如果有新生成的反饋信息單元,則將所有新生成的反饋信 息單元組合成反饋消息發(fā)送給發(fā)送端,用來反饋接收端的數(shù)據(jù)接收情況。定時(shí) 累積反饋方法流程見附圖9。請參照圖9,此為本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中定時(shí)累積 反饋方法的流程圖。本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中定時(shí)累積反饋方法的過程包括以下步驟步驟S901,接收端同屬于一個終端的所有服務(wù)流最初一次接收到數(shù)據(jù)時(shí) 設(shè)置這個終端的周期反饋處理事件,周期反饋處理事件觸發(fā)后,進(jìn)入步驟 S902;步驟S902,接收端讀取第一個反饋隊(duì)列的接收信息,進(jìn)入步驟S903;步驟S903,接收端判斷第一反饋節(jié)點(diǎn)的最大塊編號BSN與本服務(wù)流最近 一次反饋的塊編號BSN是否相同,如果相同,進(jìn)入步驟S904,如果不同,進(jìn) 入步驟S卯6;步驟S904,接收端判斷是否有剩余的反饋節(jié)點(diǎn),如果有,進(jìn)入步驟S905, 否則,進(jìn)入步驟S907;步驟S905,接收端讀取下一個反饋節(jié)點(diǎn),進(jìn)入步驟S903;步驟S906,接收端為本服務(wù)流生成反饋信息單元,進(jìn)入步驟S904;步驟S卯7,接收端判斷是否有新反饋信息單元生成,如果有,進(jìn)入步驟 S908,否則,進(jìn)入步驟S909;步驟S908,接收端將所有反饋信息單元組合成反饋消息發(fā)送給發(fā)送端, 用來反饋接收端的數(shù)據(jù)接收情況,進(jìn)入步驟S909;步驟S909、等待下一次周期反饋處理事件觸發(fā)。發(fā)送端接收反饋消息后,從中取出第一個反饋信息單元,找到對應(yīng)的服務(wù)流,檢驗(yàn)反饋塊編號BSN是否有效,即是否在發(fā)送窗口范圍內(nèi),如果無效, 刪除本信息單元;否則從未收到反饋的最早發(fā)過的數(shù)據(jù)開始依次刪除發(fā)送隊(duì)列 節(jié)點(diǎn)信息(這是由于收到反饋消息標(biāo)明之前的數(shù)據(jù)已經(jīng)被成功接收,從而可以 刪除),直到超出反饋范圍為止。同時(shí),根據(jù)發(fā)送隊(duì)列節(jié)點(diǎn)信息或者反饋塊編 號BSN更新發(fā)送窗口 (將發(fā)送成功的數(shù)據(jù)的塊編號BSN從發(fā)送窗口中刪除)。 若此信息單元不是最后一個,繼續(xù)取下一個信息單元,重復(fù)上面的處理。請參照圖10,此為本發(fā)明的通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中發(fā)送端 根據(jù)所接收到的反饋信息對所述發(fā)送信息模塊進(jìn)行調(diào)整的流程圖,本發(fā)明的通 信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法中發(fā)送端根據(jù)所接收到的反饋信息對所述發(fā) 送信息模塊進(jìn)行調(diào)整的過程包括以下步驟步驟SIOOI,發(fā)送端接收反饋消息后,取出所述反饋消息中的第一個未被 讀取過的反饋信息單元,找到對應(yīng)的服務(wù)流,進(jìn)入步驟S1002;步驟S1002,發(fā)送端檢驗(yàn)反饋信息單元中的反饋塊編號是否有效,即是否 在發(fā)送窗口范圍內(nèi),如果有效,進(jìn)入步驟S1003,否則進(jìn)入步驟S1004;步驟S1003,發(fā)送端從未收到反饋的最早發(fā)過的數(shù)據(jù)開始依次刪除發(fā)送隊(duì) 列節(jié)點(diǎn)信息,直到超出反饋范圍,進(jìn)入步驟S1005;步驟S1004,發(fā)送端刪除所述信息單元,操作結(jié)束;步驟S1005,發(fā)送端根據(jù)發(fā)送隊(duì)列節(jié)點(diǎn)信息或者反饋塊編號更新發(fā)送窗 口,進(jìn)入步驟S1006;步驟S1006,發(fā)送端判斷所述反饋信息單元是否是最后一個反饋信息單 元,如果是,進(jìn)入步驟S1007,否則進(jìn)入步驟SIOOI,步驟S1007,操作結(jié)束。本發(fā)明中的重傳超時(shí)處理事件,生存期超時(shí)處理事件,同步超時(shí)處理事件, 清除超時(shí)處理事件描述如下重傳超時(shí)處理事件是在重傳定時(shí)器超時(shí)后觸發(fā),將數(shù)據(jù)從等待反饋隊(duì)列轉(zhuǎn) 移到重傳隊(duì)列;生存期超時(shí)處理事件是在生存期定時(shí)器超時(shí)后觸發(fā),刪除對應(yīng)的重傳定時(shí) 器,移動數(shù)據(jù)從重傳隊(duì)列或者等待反饋隊(duì)列到丟棄隊(duì)列,更新本服務(wù)流的丟棄塊編號BSN,如果丟棄定時(shí)器未啟動,則啟動丟棄定時(shí)器,設(shè)置丟棄超時(shí)處 理事件;丟棄超時(shí)處理事件是在丟棄定時(shí)器超時(shí)后觸發(fā),讀取最新的丟棄的塊編號BSN來生成丟棄消息并發(fā)送出去;同步超時(shí)處理事件在窗口超出一定時(shí)間仍不跳動時(shí)引起同步定時(shí)器超時(shí) 后觸發(fā),向?qū)Χ税l(fā)送重置消息以重置發(fā)送端和接收端,并啟動重置定時(shí)器,設(shè)置重置超時(shí)處理事件;重置超時(shí)處理事件在重置定時(shí)器超時(shí)后觸發(fā),重新發(fā)送重置消息,直到發(fā)送次數(shù)超過最大允許的發(fā)送次數(shù)為止;如果出現(xiàn)兩端近乎同時(shí)發(fā)出重置消息的情況,即某一端剛發(fā)出重置請求, 沒有收到重置反饋,而重置超時(shí)處理事件沒有觸發(fā)的情況下收到對端重置請 求,會根據(jù)發(fā)送端的重置請求擁有高優(yōu)先級的原則來處理;清除超時(shí)處理事件在清除定時(shí)器超時(shí)后觸發(fā),觸發(fā)接收窗口跳動處理事 件,跳動接收窗口。本發(fā)明中只描述了累積反饋的情況,但并不作為對本發(fā)明的限定,可以根 據(jù)情況需要采取選擇反饋或者累積加選擇的反饋方式。請參照圖11,此為本發(fā)明中的通信網(wǎng)絡(luò)的框架圖。本發(fā)明中的通信網(wǎng)絡(luò) 10中,包括發(fā)送端U和接收端12,所述發(fā)送端11和接收端12用于根據(jù)在它 們之間建立的服務(wù)流進(jìn)行數(shù)據(jù)的傳遞和接收。所述發(fā)送端11中,包括一發(fā)送信息模塊111以及一發(fā)送模塊112。所述 發(fā)送信息模塊111用于保存與發(fā)送數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù),以配合所述 發(fā)送端11實(shí)現(xiàn)對數(shù)據(jù)的發(fā)送、重發(fā)以及對發(fā)送參數(shù)的調(diào)整。所述發(fā)送模塊112, 用于保存和發(fā)送經(jīng)過所述發(fā)送端11處理的,需要發(fā)送到所述接收端12中的數(shù) 據(jù)。所述接收端12中,包括一接收信息模塊121以及一接收模塊122。所述 接收信息模塊121用于保存與接收數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù),以配合所述 接收端12實(shí)現(xiàn)對數(shù)據(jù)的接收、反饋以及對接收參數(shù)的調(diào)整。所述接收模塊122, 用于接收由所述發(fā)送端11的發(fā)送模塊112發(fā)送而來的,經(jīng)過所述發(fā)送端11 處理的數(shù)據(jù)。在所述發(fā)送信息模塊111中,采取發(fā)送隊(duì)列的形式對所述與發(fā)送數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù)進(jìn)行保存。其中,所述發(fā)送隊(duì)列的發(fā)送隊(duì)列頭包含所述 服務(wù)流中需要發(fā)送的數(shù)據(jù)的總字節(jié)數(shù)(總字節(jié)數(shù)),發(fā)送窗口 (用以定義可以 發(fā)送的塊編號的范圍,以增大發(fā)送成功的幾率和發(fā)送效率),待發(fā)送塊編號BSN (Block Sequence Number),待重傳數(shù)據(jù),最后一個分塊的塊編號BSN (最大塊編號),處于等待反饋狀態(tài)的分塊個數(shù)(等待反饋塊數(shù)),發(fā)送標(biāo)識 (標(biāo)識此時(shí)發(fā)送隊(duì)列是否可以進(jìn)行數(shù)據(jù)發(fā)送,當(dāng)進(jìn)行如重置等操作時(shí),在其過 程中不能發(fā)送數(shù)據(jù)),重傳間隔時(shí)間(在所述通信網(wǎng)絡(luò)建立服務(wù)流時(shí)定義的參 數(shù)),同歩定時(shí)器、重置定時(shí)器,丟棄定時(shí)器,重置次數(shù)以及其他補(bǔ)充信息。 所述發(fā)送隊(duì)列的發(fā)送隊(duì)列節(jié)點(diǎn)是待發(fā)送的一個完整的服務(wù)數(shù)據(jù)單元SDU(Service Data Unit)或服務(wù)數(shù)據(jù)SDU單元的一部分,包含四個狀態(tài)隊(duì)列, 即未發(fā)送隊(duì)列(存儲己經(jīng)分塊并編號,但未發(fā)送的數(shù)據(jù))、等待反饋隊(duì)列、重 傳隊(duì)列和丟棄隊(duì)列(存儲超過生存期定時(shí)器定時(shí)的數(shù)據(jù)),本服務(wù)數(shù)據(jù)單元 SDU的長度(數(shù)據(jù)長度),最后一個分塊的長度(最后分塊長度),最大塊 編號BSN,最小塊編號BSN,本服務(wù)數(shù)據(jù)單元SDU的首地址(數(shù)據(jù)首地址) 以及補(bǔ)充信息;其中,未發(fā)送隊(duì)列和丟棄隊(duì)列使用塊隊(duì)列結(jié)構(gòu)塊隊(duì)列頭包含 本隊(duì)列中的分塊狀態(tài)和全部分塊的總長度,塊隊(duì)列節(jié)點(diǎn)對應(yīng)于一個分塊,包含 本分塊的塊首地址和塊編號BSN;等待反饋隊(duì)列和重傳隊(duì)列使用時(shí)間隊(duì)列結(jié) 構(gòu)時(shí)間隊(duì)列頭包含本隊(duì)列中的分塊的狀態(tài),時(shí)間隊(duì)列節(jié)點(diǎn)包含重傳定時(shí)器, 生存期定時(shí)器以及使用相同重傳定時(shí)器和生存期定時(shí)器的一組分塊。在所述接收信息模塊121中,采取接收隊(duì)列的形式對所述與接收數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù)進(jìn)行保存。其中,所述接收隊(duì)列的接收隊(duì)列頭包含接收窗口 (用以定義可以接收的塊編號的范圍,以增大發(fā)送成功的幾率和發(fā)送效率),接收到的最后一個分塊的塊編號BSN (最大塊編號),接收標(biāo)識(標(biāo) 識此時(shí)接收隊(duì)列是否可以進(jìn)行數(shù)據(jù)接收),同步定時(shí)器、重置定時(shí)器,重置次 數(shù)、反饋隊(duì)列(反饋池)和補(bǔ)充信息。所述接收隊(duì)列的接收隊(duì)列節(jié)點(diǎn)是從發(fā)送 端接收到的一個完整的服務(wù)數(shù)據(jù)單元SDU或服務(wù)數(shù)據(jù)單元SDU的一部分,包 含本服務(wù)數(shù)據(jù)單元SDU的最大塊編號BSN(最大塊編號),最小塊編號BSN, 最后一個分塊的長度(最后分塊長度),段狀態(tài)標(biāo)識(即段標(biāo)識,用于標(biāo)識所 述分段是初段,中間段或末段等)和分段隊(duì)列;其中,分段隊(duì)列頭保存分段的 總長度,分段隊(duì)列節(jié)點(diǎn)對應(yīng)所述服務(wù)數(shù)據(jù)單元SDU的一個分段,包含分段長度,分段首地址和分段的最小塊編號BSN;反饋隊(duì)列(反饋池)用來存儲 接收到的數(shù)據(jù)信息,反饋隊(duì)列頭中有最近一次反饋的塊編號BSN,反饋隊(duì)列節(jié)點(diǎn)中包含本節(jié)點(diǎn)所包含數(shù)據(jù)的最大塊編號BSN,最小塊編號BSN和清除定 時(shí)器隊(duì)列;清除定時(shí)器隊(duì)列節(jié)點(diǎn)中包含清除定時(shí)器和開啟所述清除定時(shí)器的連 續(xù)塊序列的最大塊編號BSN。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情 況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但 這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1、一種通信網(wǎng)絡(luò),包括發(fā)送端和接收端,其特征在于所述發(fā)送端中,包括發(fā)送信息模塊以及發(fā)送模塊;所述發(fā)送信息模塊用于保存與發(fā)送數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù),以配合所述發(fā)送端實(shí)現(xiàn)對數(shù)據(jù)的發(fā)送、重發(fā)以及對發(fā)送參數(shù)的調(diào)整;所述發(fā)送模塊用于保存和發(fā)送需要發(fā)送到所述接收端中的數(shù)據(jù);所述接收端中,包括接收信息模塊以及接收模塊;所述接收信息模塊用于保存與接收數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù),以配合所述接收端實(shí)現(xiàn)對數(shù)據(jù)的接收、反饋以及對接收參數(shù)的調(diào)整;所述接收模塊用于接收由所述發(fā)送端的發(fā)送模塊發(fā)送來的數(shù)據(jù)。
2、 根據(jù)權(quán)利要求1所述的一種通信網(wǎng)絡(luò),其特征在于,所述發(fā)送信息模 塊采取發(fā)送隊(duì)列的形式對所述與發(fā)送數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù)進(jìn)行保存, 所述接收信息模塊采取接收隊(duì)列的形式對所述與接收數(shù)據(jù)相關(guān)的信息、參數(shù)和 數(shù)據(jù)進(jìn)行保存。
3、 根據(jù)權(quán)利要求2所述的一種通信網(wǎng)絡(luò),其特征在于,所述發(fā)送隊(duì)列的 發(fā)送隊(duì)列頭中包含發(fā)送端和接收端之間建立的服務(wù)流中需要發(fā)送的數(shù)據(jù)的總 字節(jié)數(shù),發(fā)送窗口,待發(fā)送塊編號,待重傳數(shù)據(jù),最大塊編號,等待反饋塊數(shù), 發(fā)送標(biāo)識,重傳間隔時(shí)間,同步定時(shí)器、重置定時(shí)器,丟棄定時(shí)器,重置次數(shù) 以及補(bǔ)充信息。
4、 根據(jù)權(quán)利要求3所述的一種通信網(wǎng)絡(luò),其特征在于,所述發(fā)送窗口用 于定義可以發(fā)送的塊編號的范圍。
5、 根據(jù)權(quán)利要求2所述的一種通信網(wǎng)絡(luò),其特征在于,所述發(fā)送隊(duì)列的 發(fā)送隊(duì)列節(jié)點(diǎn)中包含未發(fā)送隊(duì)列、等待反饋隊(duì)列、重傳隊(duì)列和丟棄隊(duì)列,數(shù)據(jù) 長度,最后分塊長度,最大塊編號,最小塊編號,數(shù)據(jù)首地址以及補(bǔ)充信息。
6、 根據(jù)權(quán)利要求5所述的一種通信網(wǎng)絡(luò),其特征在于,所述發(fā)送隊(duì)列的 發(fā)送隊(duì)列節(jié)點(diǎn)是待發(fā)送的一個完整的服務(wù)數(shù)據(jù)單元或服務(wù)數(shù)據(jù)單元的一部分。
7、 根據(jù)權(quán)利要求5所述的一種通信網(wǎng)絡(luò),其特征在于,所述未發(fā)送隊(duì)列 和丟棄隊(duì)列使用塊隊(duì)列結(jié)構(gòu),所述塊隊(duì)列結(jié)構(gòu)的塊隊(duì)列頭包含本隊(duì)列中的分塊 狀態(tài)和全部分塊的總長度,所述塊隊(duì)列結(jié)構(gòu)的塊隊(duì)列節(jié)點(diǎn)對應(yīng)于一個分塊,包含本分塊的塊首地址和塊編號。
8、 根據(jù)權(quán)利要求5所述的一種通信網(wǎng)絡(luò),其特征在于,所述等待反饋隊(duì) 列和重傳隊(duì)列使用時(shí)間隊(duì)列結(jié)構(gòu),所述時(shí)間隊(duì)列結(jié)構(gòu)的時(shí)間隊(duì)列頭包含本隊(duì)列 中的分塊的狀態(tài),所述時(shí)間隊(duì)列結(jié)構(gòu)的時(shí)間隊(duì)列節(jié)點(diǎn)包含重傳定時(shí)器,生存期 定時(shí)器以及使用相同重傳定時(shí)器和生存期定時(shí)器的一組分塊。
9、 根據(jù)權(quán)利要求2所述的一種通信網(wǎng)絡(luò),其特征在于,所述接收隊(duì)列的接收隊(duì)列頭中包含接收窗口,最大塊編號,接收標(biāo)識,同步定時(shí)器、重置定時(shí) 器,重置次數(shù)、反饋隊(duì)列和補(bǔ)充信息。
10、 根據(jù)權(quán)利要求9所述的一種通信網(wǎng)絡(luò),其特征在于,所述接收窗口用 以定義可以接收的塊編號的范圍。
11、 根據(jù)權(quán)利要求2所述的一種通信網(wǎng)絡(luò),其特征在于,所述接收隊(duì)列的 接收隊(duì)列節(jié)點(diǎn)中包含最大塊編號,最小塊編號,最后分塊長度,段狀態(tài)標(biāo)識和 分段隊(duì)列。
12、 根據(jù)權(quán)利要求11所述的一種通信網(wǎng)絡(luò),其特征在于,所述接收隊(duì)列 的接收隊(duì)列節(jié)點(diǎn)是從發(fā)送端所接收到的一個完整的服務(wù)數(shù)據(jù)單元或服務(wù)數(shù)據(jù) 單元的一部分。
13、 根據(jù)權(quán)利要求11所述的一種通信網(wǎng)絡(luò),其特征在于,所述分段隊(duì)列 的分段隊(duì)列頭用于保存分段的總長度,所述分段隊(duì)列的分段隊(duì)列節(jié)點(diǎn)對應(yīng)所述 服務(wù)數(shù)據(jù)單元的一個分段,包含分段長度、分段首地址和分段的最小塊編號。
14、 根據(jù)權(quán)利要求9所述的一種通信網(wǎng)絡(luò),其特征在于,所述反饋隊(duì)列用 以存儲接收到的數(shù)據(jù)信息,所述反饋隊(duì)列的反饋隊(duì)列頭中包含最近一次反饋的 塊編號,所述反饋隊(duì)列的反饋隊(duì)列節(jié)點(diǎn)中包含本節(jié)點(diǎn)所包含數(shù)據(jù)的最大塊編 號,最小塊編號和清除定時(shí)器隊(duì)列。
15、 根據(jù)權(quán)利要求14所述的一種通信網(wǎng)絡(luò),其特征在于,所述清除定時(shí) 器隊(duì)列節(jié)點(diǎn)中包含清除定時(shí)器和開啟所述清除定時(shí)器的連續(xù)塊序列的最大塊 編號。
16、 一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其特征在于,包括以下步驟:步驟100,所述通信網(wǎng)絡(luò)中的發(fā)送端和接收端針對建立在它們間的服務(wù) 流,在發(fā)送端設(shè)置發(fā)送信息模塊,在接收端設(shè)置接收信息模塊;步驟200,所述發(fā)送端接收到需要發(fā)送的信息后,通過所述發(fā)送信息模塊提取出需要向所述接收端發(fā)送的數(shù)據(jù),通過發(fā)送端中的發(fā)送模塊向所述接收端 傳送數(shù)據(jù)以及重傳數(shù)據(jù);步驟300,所述接收端通過所述接收端中的接收模塊接收從發(fā)送端發(fā)來的 數(shù)據(jù),將所述數(shù)據(jù)及相關(guān)信息保存在所述接收信息模塊中,根據(jù)所接收到的數(shù) 據(jù)對所述維護(hù)反饋消息發(fā)送端進(jìn)行信息反饋,并將所接收到的數(shù)據(jù)上傳至上層;步驟400,發(fā)送端根據(jù)所接收到的反饋信息,對所述發(fā)送信息模塊進(jìn)行調(diào)整。
17、 根據(jù)權(quán)利要求16所述的一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其 特征在于所述發(fā)送信息模塊采取發(fā)送隊(duì)列的形式對所述與發(fā)送數(shù)據(jù)相關(guān)的信息、參 數(shù)和數(shù)據(jù)進(jìn)行保存,所述接收信息模塊采取接收隊(duì)列的形式對所述與接收數(shù)據(jù)相關(guān)的信息、參數(shù)和數(shù)據(jù)進(jìn)行保存;所述發(fā)送隊(duì)列的發(fā)送隊(duì)列頭中包含所述服務(wù)流中需要發(fā)送的數(shù)據(jù)的總字 節(jié)數(shù),發(fā)送窗口,待發(fā)送塊編號,待重傳數(shù)據(jù),最大塊編號,等待反饋塊數(shù), 發(fā)送標(biāo)識,重傳間隔時(shí)間,同步定時(shí)器、重置定時(shí)器,丟棄定時(shí)器,重置次數(shù) 以及補(bǔ)充信息,所述發(fā)送隊(duì)列的發(fā)送隊(duì)列節(jié)點(diǎn)中包含未發(fā)送隊(duì)列、等待反饋隊(duì) 列、重傳隊(duì)列和丟棄隊(duì)列,數(shù)據(jù)長度,最后分塊長度,最大塊編號,最小塊編 號,數(shù)據(jù)首地址以及補(bǔ)充信息;所述接收隊(duì)列的接收隊(duì)列頭中包含接收窗口,最大塊編號,接收標(biāo)識,同 步定時(shí)器、重置定時(shí)器,重置次數(shù)、反饋隊(duì)列和補(bǔ)充信息,所述接收隊(duì)列的接 收隊(duì)列節(jié)點(diǎn)中包含最大塊編號,最小塊編號,最后分塊長度,段狀態(tài)標(biāo)識和分 段隊(duì)列。
18、 根據(jù)權(quán)利要求16所述的一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其 特征在于,在步驟200中,所述發(fā)送端向所述接收端發(fā)送的數(shù)據(jù)分為不可分段 不可打包,不可分段可打包,可分段不可打包以及可分段可打包四種類型。
19、 根據(jù)權(quán)利要求17所述的一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其 特征在于,在步驟200中,當(dāng)所述發(fā)送端向所述接收端發(fā)送的數(shù)據(jù)類型為不可 分段不可打包時(shí),提取需要發(fā)送的數(shù)據(jù)的包括以下步驟步驟2101,發(fā)送端將待發(fā)送數(shù)據(jù)根據(jù)服務(wù)流參數(shù)進(jìn)行分塊,存儲到未發(fā)送隊(duì)列,記錄所述數(shù)據(jù)的到達(dá)信息;步驟2102,發(fā)送端判斷所述服務(wù)流是否是第一次發(fā)送數(shù)據(jù),如果是,進(jìn) 入步驟2103,否則,進(jìn)入步驟2104;步驟2103,發(fā)送端啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同步 超時(shí)處理事件;步驟2104,發(fā)送端判斷可發(fā)送的字節(jié)數(shù)是否大于0,如果是,進(jìn)入步驟 2106,否則,進(jìn)入步驟2105; 步驟2105,操作結(jié)束;歩驟2106,發(fā)送端檢查是否存在需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn),如果存在, 進(jìn)入步驟2107,否則,進(jìn)入步驟2110,其中,已檢測過的發(fā)送隊(duì)列節(jié)點(diǎn)不再、"步驟2107,發(fā)送端檢査所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中是否有數(shù)據(jù),如 果有,進(jìn)入步驟2108,如果沒有,進(jìn)入步驟2106;步驟2108,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)是否在發(fā)送窗口的 范圍內(nèi),如果在,進(jìn)入步驟2109;否則,進(jìn)入步驟2105;歩驟2109,發(fā)送端將所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中的數(shù)據(jù)從重傳隊(duì)列 轉(zhuǎn)移到等待反饋隊(duì)列,記錄發(fā)送信息,重啟重傳定時(shí)器,用所述數(shù)據(jù)生成協(xié)議 數(shù)據(jù)單元等待發(fā)送,進(jìn)入步驟2104;步驟2110,發(fā)送端檢查未發(fā)送隊(duì)列中是否有數(shù)據(jù),如果有,進(jìn)入步驟2111, 否則,進(jìn)入步驟2105;歩驟2111,發(fā)送端檢查所述未發(fā)送隊(duì)列中的單個數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單 元后,是否會超出最大協(xié)議數(shù)據(jù)單元的長度,如果是,進(jìn)入步驟2112,否則, 進(jìn)入歩驟2113;步驟2112,發(fā)送端刪除所述未發(fā)送隊(duì)列中的數(shù)據(jù),進(jìn)入步驟2110;步驟2113,發(fā)送端判斷所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號后是否在發(fā)送窗 口的范圍內(nèi),如果在,進(jìn)入步驟2U4,否則,進(jìn)入步驟2105;步驟2114,發(fā)送端將所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號,構(gòu)建成完整的發(fā) 送隊(duì)列節(jié)點(diǎn),添加到發(fā)送隊(duì)列;步驟2115、發(fā)送端將所述添加到發(fā)送隊(duì)列中的所述發(fā)送隊(duì)列節(jié)點(diǎn)中的數(shù) 據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列,記錄發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期超時(shí)處理事件,生成協(xié)議數(shù)據(jù)單元 等待發(fā)送,進(jìn)入步驟2104。
20、根據(jù)權(quán)利要求17所述的一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其 特征在于,在步驟200中,當(dāng)所述發(fā)送端向所述接收端發(fā)送的數(shù)據(jù)類型為不可分段可打包時(shí),提取需要發(fā)送的數(shù)據(jù)的包括以下步驟步驟2201,發(fā)送端將待發(fā)送數(shù)據(jù)根據(jù)服務(wù)流參數(shù)進(jìn)行分塊,存儲到未發(fā) 送隊(duì)列,記錄所述數(shù)據(jù)的到達(dá)信息,初始化一用于存放可以進(jìn)行打包的數(shù)據(jù)的 生成隊(duì)列;步驟2202,發(fā)送端判斷本服務(wù)流是否是第一次發(fā)送數(shù)據(jù),如果是,進(jìn)入 步驟2203,否則,進(jìn)入步驟2204;步驟2203,發(fā)送端啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同步 超時(shí)處理事件;步驟2204,發(fā)送端判斷可發(fā)送的字節(jié)數(shù)是否大于0,如果是,進(jìn)入步驟 2206,否則,進(jìn)入歩驟2205; 步驟2205,操作結(jié)束;步驟2206,發(fā)送端檢查是否存在需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn),如果存在, 進(jìn)入步驟2207,否則,進(jìn)入步驟2212,其中,已檢測過的發(fā)送隊(duì)列節(jié)點(diǎn)不再 被檢測;步驟2207,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中是否有數(shù)據(jù),如 果有,進(jìn)入步驟2208,如果沒有,進(jìn)入步驟2206;步驟2208,發(fā)送端檢査所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)是否在發(fā)送窗口的 范圍內(nèi),如果在,進(jìn)入步驟2209,否則,進(jìn)入步驟2220;步驟2209,發(fā)送端檢査本次發(fā)送的數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是否超 出可發(fā)送的最大協(xié)議數(shù)據(jù)單元長度,如果是,進(jìn)入步驟2210,否則,進(jìn)入步 驟2211;步驟2210,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù);步驟2211,發(fā)送端將可用于打包的數(shù)據(jù)從重傳隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列, 記錄發(fā)送信息,重啟重傳定時(shí)器,加入生成隊(duì)列,進(jìn)入步驟2204;步驟2212,發(fā)送端檢查未發(fā)送隊(duì)列中是否有數(shù)據(jù),如果有,進(jìn)入步驟2213; 否則,進(jìn)入步驟2220;步驟2213,發(fā)送端檢査所述未發(fā)送隊(duì)列中的單個數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是否會超出最大協(xié)議數(shù)據(jù)單元的長度,如果是,進(jìn)入步驟2214,否則, 進(jìn)入歩驟2215;步驟2214,發(fā)送端刪除所述數(shù)據(jù),進(jìn)入步驟2212;步驟2215,發(fā)送端判斷所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號后是否在發(fā)送窗 口的范圍內(nèi),如果是,進(jìn)入步驟2216,否則,進(jìn)入步驟2220;步驟2216,發(fā)送端將所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號,構(gòu)建成完整的發(fā) 送隊(duì)列節(jié)點(diǎn),添加到發(fā)送隊(duì)列;步驟2217,發(fā)送端檢査本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是 否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元長度,如果是,進(jìn)入步驟2218,否則,進(jìn) 入步驟2219;步驟2218,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),進(jìn)入步驟2219;歩驟2219,發(fā)送端將可用于打包的數(shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到等待反饋隊(duì) 列,記錄發(fā)送信息,同時(shí)啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超時(shí)處理 事件、生存期超時(shí)處理事件,加入生成隊(duì)列,進(jìn)入步驟2204;步驟2220,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),用所述數(shù)據(jù)生成協(xié)議數(shù)據(jù)單 元等待發(fā)送,操作結(jié)束。
21、根據(jù)權(quán)利要求17所述的一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其 特征在于,在步驟200中,當(dāng)所述發(fā)送端向所述接收端發(fā)送的數(shù)據(jù)類型為可分 段不可打包時(shí),提取需要發(fā)送的數(shù)據(jù)的包括以下步驟步驟2301,發(fā)送端將待發(fā)送數(shù)據(jù)根據(jù)服務(wù)流參數(shù)進(jìn)行分塊,存儲到未發(fā) 送隊(duì)列,記錄所述數(shù)據(jù)的到達(dá)信息,進(jìn)入步驟2302;步驟2302,發(fā)送端判斷本服務(wù)流是否是第一次發(fā)送數(shù)據(jù),如果是,進(jìn)入 步驟2303,否則,進(jìn)入步驟2304;步驟2303,發(fā)送端啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同歩 超時(shí)處理事件,進(jìn)入步驟2304;步驟2304,發(fā)送端判斷可發(fā)送的字節(jié)數(shù)是否大于0,如果是,進(jìn)入步驟 2306,否則,進(jìn)入步驟2305;步驟2305,操作結(jié)束;步驟2306,發(fā)送端檢査是否存在需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn),如果存在,進(jìn)入步驟2307,否則,進(jìn)入步驟2312,其中,已檢測過的發(fā)送隊(duì)列節(jié)點(diǎn)不再 被檢測;步驟2307,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中是否有數(shù)據(jù),如 果有,進(jìn)入步驟2308,如果沒有,進(jìn)入步驟2306;步驟2308,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)的第一時(shí)間隊(duì)列節(jié) 點(diǎn)是否在發(fā)送窗口的范圍內(nèi),如果在,進(jìn)入步驟2309,否則,進(jìn)入步驟2310;步驟2309,發(fā)送端將重傳隊(duì)列中的數(shù)據(jù)轉(zhuǎn)移到等待反饋隊(duì)列,記錄發(fā)送 信息,重啟重傳定時(shí)器,生成協(xié)議數(shù)據(jù)單元等待發(fā)送,進(jìn)入步驟2304;步驟2310,發(fā)送端判斷帶寬是否大于一個分塊的長度,如果是,進(jìn)入歩 驟2311,否則,進(jìn)入步驟2305;步驟2311,發(fā)送端生成新的時(shí)間隊(duì)列節(jié)點(diǎn),加入到等待反饋隊(duì)列,記錄 發(fā)送信息,取出原時(shí)間隊(duì)列節(jié)點(diǎn)的生存期剩余時(shí)間,為新時(shí)間隊(duì)列節(jié)點(diǎn)啟動生 存期定時(shí)器、重傳定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期超時(shí)處理事件,生 成協(xié)議數(shù)據(jù)單元等待發(fā)送,進(jìn)入歩驟2305;步驟2312,發(fā)送端檢查未發(fā)送隊(duì)列中是否有數(shù)據(jù),如果有,進(jìn)入步驟2313, 否則,進(jìn)入步驟2305;步驟2313,發(fā)送端判斷帶寬是否大于一個分塊的長度,如果是,進(jìn)入步 驟2314,否則,進(jìn)入步驟2305;步驟2314發(fā)送端將所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號,構(gòu)建成完整的發(fā)送 隊(duì)列節(jié)點(diǎn),添加到發(fā)送隊(duì)列,進(jìn)入步驟2315;步驟2315,發(fā)送端判斷所述發(fā)送隊(duì)列節(jié)點(diǎn)中的未發(fā)送隊(duì)列中的數(shù)據(jù)的塊 編號是否在發(fā)送窗口的范圍內(nèi),如果是,進(jìn)入步驟2316,否則,進(jìn)入步驟2317;步驟2316,發(fā)送端將全部數(shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列,記錄 發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期 超時(shí)處理事件,生成協(xié)議數(shù)據(jù)單元等待發(fā)送,進(jìn)入步驟2304;步驟2317,發(fā)送端將處于發(fā)送窗口范圍內(nèi)部分?jǐn)?shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到 等待反饋隊(duì)列,記錄發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超 時(shí)處理事件、生存期超時(shí)處理事件,生成協(xié)議數(shù)據(jù)單元等待發(fā)送,進(jìn)入步驟 2305。
22、根據(jù)權(quán)利要求17所述的一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其特征在于,在步驟200中,當(dāng)所述發(fā)送端向所述接收端發(fā)送的數(shù)據(jù)類型為可分 段可打包時(shí),提取需要發(fā)送的數(shù)據(jù)的包括以下步驟步驟2401,發(fā)送端將待發(fā)送數(shù)據(jù)根據(jù)服務(wù)流參數(shù)進(jìn)行分塊,存儲到未發(fā)送隊(duì)列,記錄新數(shù)據(jù)到達(dá)信息,初始化生成隊(duì)列,進(jìn)入步驟2402;步驟2402,發(fā)送端判斷本服務(wù)流是否是第一次發(fā)送數(shù)據(jù),如果是,進(jìn)入 步驟2403,否則,進(jìn)入步驟2404;步驟2403,發(fā)送端啟動本服務(wù)流的發(fā)送端同步定時(shí)器,設(shè)置發(fā)送端同步 超時(shí)處理事件,進(jìn)入步驟2404;步驟2404,發(fā)送端判斷可發(fā)送的字節(jié)數(shù)是否大于0,如果是,進(jìn)入步驟 2406,否則,進(jìn)入步驟2405;步驟2405,操作結(jié)束;步驟2406,發(fā)送端檢査是否存在需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn),如果存在, 進(jìn)入步驟2407,否則,進(jìn)入步驟2416,其中,己檢測過的發(fā)送隊(duì)列節(jié)點(diǎn)不再步驟2407,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)中是否有數(shù)據(jù),如 果有,進(jìn)入步驟2408,如果沒有,進(jìn)入步驟2406;步驟2408,發(fā)送端檢查所述需要重傳的發(fā)送隊(duì)列節(jié)點(diǎn)的第一時(shí)間隊(duì)列節(jié) 點(diǎn)是否在發(fā)送窗口的范圍內(nèi),如果在,進(jìn)入步驟2409,否則,進(jìn)入步驟2412;步驟2409,發(fā)送端檢査本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是 否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元長度,如果是,進(jìn)入步驟2410,否則,進(jìn) 入步驟2411;步驟2410發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),進(jìn)入步驟2411;步驟2411,發(fā)送端將本時(shí)間隊(duì)列節(jié)點(diǎn)從重傳隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列, 記錄發(fā)送信息,重啟重傳定時(shí)器,加入生成隊(duì)列,進(jìn)入步驟2404;歩驟2412,發(fā)送端判斷帶寬是否大于一個分塊的長度,如果是,進(jìn)入步 驟2413,否則,進(jìn)入步驟2426;步驟2413,發(fā)送端檢查本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是 否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元長度,如果是,進(jìn)入步驟2414,否則,進(jìn) 入步驟2415;步驟2414,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),進(jìn)入步驟2415;步驟2415,發(fā)送端生成新的時(shí)間隊(duì)列節(jié)點(diǎn),加入到等待反饋隊(duì)列,記錄 發(fā)送信息,取出原時(shí)間隊(duì)列節(jié)點(diǎn)的生存期剩余時(shí)間,為新時(shí)間隊(duì)列節(jié)點(diǎn)啟動生 存期定時(shí)器、重傳定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期超時(shí)處理事件,加入生成隊(duì)列,進(jìn)入步驟2426;步驟2416,發(fā)送端檢查未發(fā)送隊(duì)列中是否有數(shù)據(jù),如果有,進(jìn)入步驟2417, 否則,進(jìn)入步驟2426;步驟2417,發(fā)送端判斷帶寬是否大于一個分塊的長度,如果是,進(jìn)入步 驟2418,否則,進(jìn)入步驟2426;步驟2418,發(fā)送端將所述未發(fā)送隊(duì)列中的數(shù)據(jù)塊編號,構(gòu)建成完整的發(fā) 送隊(duì)列節(jié)點(diǎn),添加到發(fā)送隊(duì)列,進(jìn)入步驟2419;步驟2419,發(fā)送端判斷所述發(fā)送隊(duì)列節(jié)點(diǎn)中的未發(fā)送隊(duì)列中的數(shù)據(jù)的塊 編號是否在發(fā)送窗口的范圍內(nèi),如果是,進(jìn)入步驟2420,否則,進(jìn)入步驟2423;步驟2420,發(fā)送端檢査本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是 否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元長度,如果是,進(jìn)入步驟2421,否則,進(jìn) 入步驟2422;步驟2421,發(fā)送端打包生成隊(duì)列中現(xiàn)有的數(shù)據(jù),進(jìn)入步驟2422;步驟2422,發(fā)送端將處于發(fā)送窗口范圍內(nèi)部分?jǐn)?shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到 等待反饋隊(duì)列,記錄發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超 時(shí)處理事件、生存期超時(shí)處理事件,加入生成隊(duì)列,進(jìn)入步驟2416;步驟2423,發(fā)送端檢査本次發(fā)送的全部數(shù)據(jù)在生成協(xié)議數(shù)據(jù)單元后,是 否超出可發(fā)送的最大協(xié)議數(shù)據(jù)單元長度,如果是,進(jìn)入步驟2424,否則,進(jìn) 入步驟2425;步驟2424,發(fā)送端打包生成隊(duì)列中現(xiàn)有的數(shù)據(jù),進(jìn)入步驟2425;步驟2425,發(fā)送端將全部數(shù)據(jù)從未發(fā)送隊(duì)列轉(zhuǎn)移到等待反饋隊(duì)列,記錄 發(fā)送信息,啟動重傳定時(shí)器、生存期定時(shí)器,設(shè)置重傳超時(shí)處理事件、生存期 超時(shí)處理事件,加入生成隊(duì)列,進(jìn)入步驟2426;步驟2426,發(fā)送端打包生成隊(duì)列中的數(shù)據(jù),用所述數(shù)據(jù)生成協(xié)議數(shù)據(jù)單 元等待發(fā)送,操作結(jié)束。
23、根據(jù)權(quán)利要求17所述的一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其 特征在于,在步驟300中,所述接收端將接收到的數(shù)據(jù)及相關(guān)信息保存在所述接收信息模塊中并上傳至上層的過程包括以下步驟步驟3101,接收端接收到從所接收到的協(xié)議數(shù)據(jù)單元解析而來的服務(wù)數(shù) 據(jù)單元中的分段,檢査是否是第一次接收數(shù)據(jù),如果是,進(jìn)入歩驟3102,否 則,進(jìn)入步驟3103;步驟3102,接收端啟動接收端同步定時(shí)器,設(shè)置接收端同步超時(shí)處理事件,進(jìn)入步驟3103;步驟3103,接收端檢驗(yàn)所述分段中的的塊編號是否在接收窗口以內(nèi),如 果不在窗口范圍內(nèi),進(jìn)入步驟3104,如果在窗口范圍內(nèi),進(jìn)入步驟3105; 步驟3104,接收端刪除所述分段,操作結(jié)束;步驟3105,接收端檢查所述分段中的最小塊編號是否與接收窗口相吻合, 即是否等于接收窗口中所定義可以接收的塊編號中的最小塊編號,如果吻合, 進(jìn)入步驟3106,否則,進(jìn)入步驟3107;步驟3106,接收端觸發(fā)接收窗口跳動事件,跳動接收窗口到本分段的最 大塊編號加l的位置,重置同步定時(shí)器,進(jìn)入步驟3108;步驟3107,接收端保持接收窗口不動,根據(jù)接收重組算法來處理本分段, 并為所述分段啟動清除定時(shí)器,設(shè)置清除超時(shí)處理事件,進(jìn)入步驟3108;步驟3108,接收端當(dāng)接收隊(duì)列節(jié)點(diǎn)組合成完整的服務(wù)數(shù)據(jù)單元后,根據(jù) 在所述通信網(wǎng)絡(luò)建立服務(wù)流時(shí)定義的參數(shù)判斷是否要求有序上傳,如果是,進(jìn) 入步驟3109,否則,進(jìn)入步驟3110;步驟3109,按照塊編號遞增的順序依次上傳服務(wù)數(shù)據(jù)單元,操作結(jié)束;步驟3U0,立即上傳,操作結(jié)束。
24、根據(jù)權(quán)利要求23所述的一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其 特征在于,在步驟3107中,根據(jù)接收重組算法來處理分段的過程包括以下步 驟步驟01,接收端通過段標(biāo)識對所接收的分段進(jìn)行判斷,若所述分段是初 段,進(jìn)入歩驟02,若所述分段是中間分段,進(jìn)入步驟08,若所述分段是末段, 進(jìn)入步驟16,若所述分段是以分段形式保存且可重組成完整的服務(wù)數(shù)據(jù)單元, 進(jìn)入步驟22;步驟02,接收端判斷所述分段的最大塊編號是否與接收隊(duì)列中的后一節(jié) 點(diǎn)的最小塊編號相鄰,若相鄰,進(jìn)入步驟03,否則進(jìn)入歩驟06;步驟03,更新所述后一節(jié)點(diǎn)的最小塊編號為所述分段的最小塊編號,并 在所述后一節(jié)點(diǎn)的分段隊(duì)列中加入所述分段,進(jìn)入步驟04;步驟04,接收端判斷所述后一節(jié)點(diǎn)的段標(biāo)識是否指示為是否為末段,若是末段,則進(jìn)入步驟22,否則進(jìn)入步驟05;步驟05,接收端將所述后一節(jié)點(diǎn)的段標(biāo)識設(shè)置為初段,操作結(jié)束;步驟06,接收端判斷所述分段的最大塊編號是否大于接收隊(duì)列中的前一 節(jié)點(diǎn)的最大塊編號且小于接收隊(duì)列中后一節(jié)點(diǎn)的最小塊編號減一,如果是,進(jìn) 入步驟07,否則丟棄所述分段,操作結(jié)束;步驟07,接收端新建接收隊(duì)列節(jié)點(diǎn)于所述分段的前一節(jié)點(diǎn)和后一節(jié)點(diǎn)之 間,并將所述新建接收節(jié)點(diǎn)的段標(biāo)識設(shè)為初段,操作結(jié)束;步驟08,接收端判斷所述分段是否同時(shí)滿足其最小塊編號與接收隊(duì)列中 的前一節(jié)點(diǎn)的最大塊編號相鄰且其最大塊編號與接收隊(duì)列中的后一節(jié)點(diǎn)的最 小塊編號相鄰,如果是,進(jìn)入步驟09,否則進(jìn)入步驟ll;步驟09,接收端刪除所述后一節(jié)點(diǎn),更新所述前一節(jié)點(diǎn)的最大塊編號為 所述后一節(jié)點(diǎn)的最大塊編號,并將所述分段和所述后一節(jié)點(diǎn)中的分段加入所述 前一節(jié)點(diǎn)中的分段隊(duì)列,進(jìn)入步驟10;步驟10,接收端判斷是否同時(shí)所述前一節(jié)點(diǎn)的段標(biāo)識指示為初段且所述 后一節(jié)點(diǎn)的段標(biāo)識指示為末段,如果是,進(jìn)入步驟22,否則,操作結(jié)束;步驟11,接收端判斷所述分段是否同時(shí)滿足其最小塊編號與接收隊(duì)列中 的前一節(jié)點(diǎn)的最大塊編號相鄰但其最大塊編號不與接收隊(duì)列中的后一節(jié)點(diǎn)的 最小塊編號相鄰,如果是,進(jìn)入步驟12,否則進(jìn)入步驟13;步驟12,接收端更新所述前一節(jié)點(diǎn)的最大塊編號為所述分段的最大塊編 號,并將所述分段加入所述前一節(jié)點(diǎn)的分段隊(duì)列,操作結(jié)束;步驟13,接收端判斷所述分段是否同時(shí)滿足其最小塊編號不與接收隊(duì)列 中的前一節(jié)點(diǎn)的最大塊編號相鄰但其最大塊編號與接收隊(duì)列中的后一節(jié)點(diǎn)的 最小塊編號相鄰,如果是,進(jìn)入步驟14,否則進(jìn)入步驟15;步驟14,接收端更新所述后一節(jié)點(diǎn)的最小塊編號為所述分段的最小塊編 號,并將所述分段加入所述后一節(jié)點(diǎn)的中的分段隊(duì)列,操作結(jié)束;步驟15,接收端新建接收隊(duì)列節(jié)點(diǎn)于所述分段的前一節(jié)點(diǎn)和后一節(jié)點(diǎn)之 間,并將所述新建接收節(jié)點(diǎn)的段標(biāo)識設(shè)為中間段,操作結(jié)束;步驟16,接收端判斷所述分段的最小塊編號是否與接收隊(duì)列中的前一節(jié) 點(diǎn)的最大塊編號相鄰,若相鄰,進(jìn)入歩驟17,否則進(jìn)入步驟20;步驟17,接收端更新所述前一節(jié)點(diǎn)的最大塊編號為所述分段的最大塊編 號,并在所述前一節(jié)點(diǎn)的分段隊(duì)列中加入所述分段,進(jìn)入步驟18;步驟18,接收端判斷所述前一節(jié)點(diǎn)的段標(biāo)識是否指示為初段,若是初段,則進(jìn)入步驟22,否則進(jìn)入步驟19;步驟19,接收端將所述前一節(jié)點(diǎn)的段標(biāo)識設(shè)置為末段,操作結(jié)束;步驟20,接收端判斷所述分段的最小塊編號是否大于接收隊(duì)列中的前一 節(jié)點(diǎn)的最大塊編號加一且小于接收隊(duì)列中后一節(jié)點(diǎn)的最小塊編號,如果是,進(jìn) 入步驟21,否則丟棄所述分段,操作結(jié)束;步驟21,接收端新建接收隊(duì)列節(jié)點(diǎn)于所述分段的前一節(jié)點(diǎn)和后一節(jié)點(diǎn)之 間,并將所述新建接收節(jié)點(diǎn)的段標(biāo)識設(shè)為末段,操作結(jié)束;步驟22,若從步驟01進(jìn)入步驟22,則將所述分段隊(duì)列中的數(shù)據(jù)重組為完 整的服務(wù)數(shù)據(jù)單元傳遞給上層,若從步驟04、步驟10和步驟18進(jìn)入步驟22, 則將分段隊(duì)列中的分段重組成服務(wù)數(shù)據(jù)單元傳遞給上層,并釋放分段、分段隊(duì) 列節(jié)點(diǎn)和接收隊(duì)列節(jié)點(diǎn)。
25、根據(jù)權(quán)利要求17所述的一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其 特征在于,在步驟300中,所述接收端維護(hù)反饋隊(duì)列的過程包括以下步驟歩驟3201,接收端第一次接收數(shù)據(jù)時(shí),檢驗(yàn)所述數(shù)據(jù)的最小塊編號是否 與接收窗口吻合,如果吻合,進(jìn)入步驟3202,否則,進(jìn)入步驟3203;步驟3202,接收端建立第一反饋節(jié)點(diǎn),進(jìn)入步驟3204;步驟3203,接收端建立一個輔助反饋節(jié)點(diǎn),進(jìn)入步驟3204;步驟3204,接收端通過己接收到的數(shù)據(jù)的塊編號判斷后續(xù)數(shù)據(jù)是否按序 到達(dá),如果是,進(jìn)入步驟3205,否則,進(jìn)入步驟3206;步驟3205,接收端更新第一反饋節(jié)點(diǎn)的最大塊編號為所述數(shù)據(jù)中的最大 塊編號,進(jìn)入步驟3207;步驟3206,接收端新建或者更新輔助反饋節(jié)點(diǎn)記錄接收信息,進(jìn)入步驟 3207;步驟3207,接收端判斷是否有接收窗口跳動處理事件觸發(fā),如果有,進(jìn) 入步驟3208,否則,進(jìn)入步驟3209;步驟3208,接收端刪除接收窗口前的所有輔助反饋節(jié)點(diǎn),進(jìn)入步驟3209; 步驟3209,接收端判斷是否有發(fā)送端或者接收端同歩超時(shí)處理事件觸發(fā), 如果有,進(jìn)入步驟3210,否則,進(jìn)入步驟3204;步驟3210,接收端清空反饋隊(duì)列,進(jìn)入步驟3211;步驟32U,接收端判斷是否有新數(shù)據(jù)到達(dá),如果有,進(jìn)入歩驟3201,否 則,進(jìn)入步驟3212;步驟3212,操作結(jié)束。
26、 根據(jù)權(quán)利要求17所述的一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其 特征在于,在步驟300中,所述接收端對所述發(fā)送端進(jìn)行反饋采用定時(shí)累積反 饋的方法。
27、 根據(jù)權(quán)利要求16所述的一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其 特征在于,所述接收端采取定時(shí)累積反饋的方法對所述發(fā)送端進(jìn)行反饋的過程 包括以下步驟步驟3301,接收端同屬于一個終端的所有服務(wù)流最初一次接收到數(shù)據(jù)時(shí) 設(shè)置這個終端的周期反饋處理事件,周期反饋處理事件觸發(fā)后,進(jìn)入步驟 3302;步驟3302,接收端讀取第一個反饋隊(duì)列的接收信息,進(jìn)入步驟3303;步驟3303,接收端判斷第一反饋節(jié)點(diǎn)的最大塊編號與本服務(wù)流最近一次 反饋的塊編號是否相同,如果相同,進(jìn)入步驟3304,如果不同,進(jìn)入步驟3306;步驟3304,接收端判斷是否有剩余的反饋節(jié)點(diǎn),如果有,進(jìn)入步驟3305, 否則,進(jìn)入步驟3307;步驟3305,接收端讀取下一個反饋節(jié)點(diǎn),進(jìn)入步驟3303;步驟3306,接收端為本服務(wù)流生成反饋信息單元,進(jìn)入步驟3304;步驟3307,接收端判斷是否有新反饋信息單元生成,如果有,進(jìn)入步驟 3308,否則,進(jìn)入步驟3309;步驟3308,接收端將所有反饋信息單元組合成反饋消息發(fā)送給發(fā)送端, 用來反饋接收端的數(shù)據(jù)接收情況,進(jìn)入步驟3309;步驟3309、等待下一次周期反饋處理事件觸發(fā)。
28、 根據(jù)權(quán)利要求17所述的一種通信網(wǎng)絡(luò)的自動重傳機(jī)制實(shí)現(xiàn)方法,其 特征在于,在步驟400中,所述發(fā)送端根據(jù)所接收到的反饋信息對所述發(fā)送信息模塊進(jìn)行調(diào)整的過程包括以下步驟步驟401,發(fā)送端接收反饋消息后,取出所述反饋消息中的第一個未被讀 取過的反饋信息單元,找到對應(yīng)的服務(wù)流,進(jìn)入步驟402;步驟402,發(fā)送端檢驗(yàn)反饋信息單元中的反饋塊編號是否有效,即是否在發(fā)送窗口范圍內(nèi),如果有效,進(jìn)入步驟403,否則進(jìn)入步驟404;步驟403,發(fā)送端從未收到反饋的最早發(fā)過的數(shù)據(jù)開始依次刪除發(fā)送隊(duì)列 節(jié)點(diǎn)信息,直到超出反饋范圍,進(jìn)入步驟405;步驟404,發(fā)送端刪除所述信息單元,操作結(jié)束;步驟405,發(fā)送端根據(jù)發(fā)送隊(duì)列節(jié)點(diǎn)信息或者反饋塊編號更新發(fā)送窗口 , 進(jìn)入步驟406;步驟406,發(fā)送端判斷所述反饋信息單元是否是最后一個反饋信息單元, 如果是,進(jìn)入步驟407,否則進(jìn)入步驟401; 步驟407,操作結(jié)束。
全文摘要
本發(fā)明涉及通信技術(shù)領(lǐng)域。本發(fā)明公開了一種通信網(wǎng)絡(luò)及其自動重傳機(jī)制實(shí)現(xiàn)方法,通過在所述通信網(wǎng)絡(luò)中的發(fā)送端和接收端中分別設(shè)置發(fā)送隊(duì)列和接收隊(duì)列,記錄在數(shù)據(jù)發(fā)送中的各種信息,并通過接收重組算法和定時(shí)累積反饋方法等算法與方法,從而可以有效的實(shí)現(xiàn)所述通信網(wǎng)絡(luò)中的數(shù)據(jù)發(fā)送,接收,反饋,重發(fā)等功能,并使所述通信網(wǎng)絡(luò)在數(shù)據(jù)交換的過程中能夠擁有更高的效率。
文檔編號H04L1/18GK101217351SQ200710304660
公開日2008年7月9日 申請日期2007年12月28日 優(yōu)先權(quán)日2007年12月28日
發(fā)明者周繼華, 孫秀明, 石晶林, 穎 祁, 胡金龍 申請人:中國科學(xué)院計(jì)算技術(shù)研究所