專利名稱::調(diào)整滑動窗口的方法和裝置的制作方法
技術領域:
:本發(fā)明涉及通信領域,尤其涉及一種調(diào)整滑動窗口的方法和裝置。
背景技術:
:在網(wǎng)絡中進行數(shù)據(jù)傳輸時,發(fā)送方發(fā)送長度不大于當前滑動窗口大小的有效報文,其中所述有效報文的個數(shù)可以為一個或一個以上。在路由設備轉發(fā)所述有效報文時,如果緩存空間不足,則隨機刪除所述有效報文,以釋放路由設備的緩存空間,并將剩余的有效報文發(fā)送出去。當發(fā)送方發(fā)現(xiàn)所述有效報文接收失敗后,則重傳所述接收失敗的有效報文,并確定當前網(wǎng)絡狀態(tài)較差,減小滑動窗口的大小。在實現(xiàn)上述過程中,現(xiàn)有技術至少存在如下問題由于路由設備隨機刪除有效報文,增加了有效報文的丟失個數(shù),使發(fā)送方重傳丟失報文的數(shù)據(jù)量增力口,降低了傳輸帶寬的傳輸效率。
發(fā)明內(nèi)容本發(fā)明的實施例提供一種調(diào)整滑動窗口的方法和裝置,能夠減少路由設備刪除有效報文的個數(shù)。為達到上述目的,本發(fā)明的實施例采用如下技術方案一種調(diào)整滑動窗口的方法,包括發(fā)送長度不大于當前滑動窗口大小的報文,所述報文包括攜帶鏈路檢測信息的無效報文,所述無效報文未攜帶對端需要的數(shù)據(jù);確定所述無效報文是否接收成功;根據(jù)所述無效報文的接收結果,調(diào)整下一個滑動窗口的大小,以使得所述下一個滑動窗口的大小與傳輸鏈路狀態(tài)相符。一種網(wǎng)絡設備,包括發(fā)送模塊,用于發(fā)送長度不大于當前滑動窗口大小的報文,所述報文包括攜帶鏈路檢測信息的無效報文,所述無效報文未攜帶對端需要的數(shù)據(jù);確定模塊,用于確定所述無效報文是否接收成功;調(diào)整模塊,用于根據(jù)所述無效報文的接收結果,調(diào)整下一個滑動窗口的大小,以使得所述下一個滑動窗口的大小與傳輸鏈路狀態(tài)相符。本發(fā)明實施例提供的調(diào)整滑動窗口的方法和裝置,在無效報文中攜帶鏈路檢測信息,指示路由設備可丟棄所述無效報文,減少路由設備刪除有效報文的數(shù)據(jù)量,從而減少發(fā)送方重傳有效報文的數(shù)據(jù)量,提高傳輸帶寬的傳輸效率。為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例提供的調(diào)整滑動窗口的方法的流程圖2為本發(fā)明實施例的應用場景;圖3為本發(fā)明另一實施例提供的調(diào)整滑動窗口的方法的流程圖;圖4為本發(fā)明實施例提供的調(diào)整滑動窗口的裝置的結構示意圖;圖5為本發(fā)明另一實施例提供的調(diào)整滑動窗口的裝置的結構示意圖;圖6為圖4中調(diào)整^^莫塊的結構示意圖。具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清6楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。下面結合具體實施例和附圖對本發(fā)明作進一步解釋。如圖1所示,本發(fā)明實施例提供了一種調(diào)整滑動窗口的方法,包括5101、發(fā)送長度不大于當前滑動窗口大小的報文,所述報文包括攜帶鏈路檢測信息的無效報文,所述無效報文未攜帶對端需要的數(shù)據(jù);所述報文還包括用于傳輸數(shù)據(jù)的報文,即有效報文,其中所述無效報文中的鏈路檢測信息用于指示路由設備在網(wǎng)絡傳輸狀態(tài)較差時,刪除所述無效報文。5102、確定所述無效"^艮文是否接收成功;在固定時間間隔內(nèi),接收來自對端的應答消息;確定接收的應答消息中是否有無效報文的應答消息;如果有無效報文的應答消息,則確定所述無效報文接收成功,否則,確定所述無效報文接收失敗。5103、根據(jù)所述無效報文的接收結果,調(diào)整下一個滑動窗口的大小,以使得所述下一個滑動窗口的大小與傳輸鏈路狀態(tài)相符。本發(fā)明實施例提供的調(diào)整滑動窗口的方法,在無效報文中攜帶鏈路檢測信息,指示路由設備可丟棄所述無效報文,減少路由設備刪除有效報文的數(shù)據(jù)量,從而減少發(fā)送方重傳有效報文的數(shù)據(jù)量,提高傳輸帶寬的傳輸效率。為了便于本領域技術人員更清楚的了解本發(fā)明提供的技術方案,下面結合具體應用場景對本發(fā)明提供的方法進行詳細介紹首先,以傳輸TCP(TransmissionControlProtocol,傳輸控制協(xié)議)報文的應用場景為例作簡單介紹如圖2所示,發(fā)送方發(fā)送長度不大于當前滑動窗口大小的有效報文至路由設備,其中所迷有效報文的個數(shù)可以為一個或一個以上。所述路由設備向接收方轉發(fā)所述有效報文。當所述接收方接收到所述有效報文時,向發(fā)送方反饋所述有效報文的應答消息。如果所述發(fā)送方接收到所述有效報文中每個報文的應答消息,則增大下一個滑動窗口的大小;否則,減小下一個滑動窗口的大小。下面結合本發(fā)明實施例提供的應用場景,對本發(fā)明實施例提供的調(diào)整滑動窗口的方法作詳細介紹,如圖3所示S301、發(fā)送方發(fā)送長度不大于當前滑動窗口大小的報文,所述報文包括攜帶鏈路檢測信息的無效報文;具體的,通過獲取滑動窗口的大小,確定當前可發(fā)送的最大數(shù)據(jù)量。根據(jù)確定的最大數(shù)據(jù)量,確定等待發(fā)送的有效報文和無效報文,其中所述有效報文為用于傳輸數(shù)據(jù)的報文,即接收方需要的報文;所述無效報文為用于檢測鏈路傳輸狀態(tài)的報文,即接收方不需要的報文。為合理利用帶寬資源傳輸有效報文,減少無效報文的數(shù)據(jù)量,需根據(jù)滑動窗口的長度確定添加無效報文的個數(shù)。例如,滑動窗口的長度小于或等于64Kbyte時,添加無效才艮文的個數(shù)為一個;滑動窗口的長度介于64Kbyte和128Kbyte時,添加的無效報文的個數(shù)為兩個。為進一步減少報文中無效報文的數(shù)據(jù)量,設置所述無效報文的大小為傳輸網(wǎng)絡中定義的最小報文,例如,以太網(wǎng)絡中定義最小報文的大小為64B,可設置無效報文的大小為64B。當傳輸一個長度為64Kbyte的報文時,所述報文中包括一個大小為64B的無效報文。在確定待發(fā)送的報文后,在所述無效報文中未使用的字段添加鏈路檢測信息。所述未使用的字段可以為保留字段或擴展字段。按照確定待發(fā)送報文的順序,為每個報文設置順序相鄰的序列號,并記錄每個報文的序列號。例如,以所述鏈路信息為鏈路檢測標志位為例進行說明。在保留字段添加8鏈路檢測標志位(DRP)后的TCP報文格式可參見下表:<table>tableseeoriginaldocumentpage9</column></row><table>表l添加鏈路檢測標志位后的TCP報文格式如上表所示,從保留字段中選取長度為l比特的字段,添加鏈路檢測標志位DRP,用于指示路由設備在網(wǎng)絡擁塞時,丟棄所述攜帶鏈路檢測標識位的TCP報文。在本發(fā)明實施例中,將添加鏈路檢測標志位后的TCP報文稱為無效報文。需要說明的是,在實際應用時,可在TCP報文的保留字段添加至少一個鏈路檢測標志4立??蛇x的,在發(fā)送方發(fā)送所述報文之前,緩存所述報文中的有效報文。對于所述報文中的無效報文,因未攜帶有效數(shù)據(jù),所以無需緩存所述無效報文,但需要記錄所述無效報文的序列號,用于根據(jù)所述無效報文的序列號,判斷接收的應答消息是否為所述無效報文的應答消息。5302、路由設備轉發(fā)所述長度不大于當前滑動窗口大小的報文;具體的,在緩存所述報文過程中,根據(jù)當前緩存空間的剩余空間,判斷是否轉發(fā)所述報文的全部數(shù)據(jù)。如果當前剩余的緩存空間不足時,即剩余的緩存空間小于閾值時,則通過鏈路檢測信息識別并刪除所述報文中的無效報文,保留所述報文中的有效報文,從而達到釋放緩存空間的目的,再轉發(fā)刪除后剩余的有效報文至接收方。否則,轉發(fā)所述報文的全部數(shù)據(jù)。其中所述剩余緩存空間的閾值可以為一段時間內(nèi)剩余緩存空間的平均值,還可以根據(jù)實際情況進行配置??蛇x的,在刪除所述無效報文過程中,可實時判斷釋放后的剩余緩存空間是否小于閾值,當釋放后的剩余存儲空間足夠時,則停止對無效報文的刪除。在網(wǎng)絡擁塞時,路由設備有選擇性的刪除報文中的無效報文,減少了有效報文的丟失,克服了現(xiàn)有技術中隨機刪除有效報文,造成有效報文大量丟失的問題,保證有效報文的傳輸,提高帶寬的傳輸效率。5303、接收方接收所述路由設備轉發(fā)的報文;具體的,根據(jù)接收報文中每個報文的序列號,向發(fā)送方反饋攜帶序列號的應答消息。需要說明的是,接收方在重組接收報文時,需從接收到的報文中刪除無效報文,再將接收的有效報文進行重組。具體的,根據(jù)接收的報文是否攜帶鏈路檢測信息,確定接收的報文是否為有效報文,如果是有效報文,則參與接收方的報文重組,否則,不參與報文重組。對于確定為有效報文的接收報文,按照序列號的順序,對接收報文中的有效報文進行重組。而確定為無效報文的接收10報文,則丟棄所述攜帶鏈路檢測標志位的無效"^艮文。S304、發(fā)送方根據(jù)所述應答消息,調(diào)整下一個滑動窗口的大小。具體的,如果所述攜帶鏈路檢測信息的無效報文發(fā)送成功,則增大下一個滑動窗口的大?。环駝t,減小下一個滑動窗口的大小。其中判斷無效報文是否發(fā)送成功的過程如下獲取本地記錄的無效報文的序列號;如果應答消息中攜帶無效報文的序列號,則確定所述攜帶鏈路檢測信息的無效報文接收成功;否則,確定所述攜帶鏈路檢測信息的無效報文接收失敗。本發(fā)明實施例以無效報文的應答消息調(diào)整滑動窗口的大小,與現(xiàn)有技術中根據(jù)已發(fā)送的全部報文的應答消息作調(diào)整相比,減少了檢測應答消息的個數(shù),縮短了判斷時間,從而加快了調(diào)整滑動窗口的速度,提高了發(fā)送方的傳輸效率。需要說明的是,當所述無效報文發(fā)送失敗時,因所述無效報文攜帶的數(shù)據(jù)并不是接收方需要的數(shù)據(jù),所以發(fā)送方不重發(fā)所述攜帶鏈路檢測信息的無效報文,從而減少接收方處理重傳報文的個數(shù),提高接收方重組報文的效率。本發(fā)明實施例提供的調(diào)整滑動窗口的方法,在無效報文中攜帶鏈路檢測信息,指示路由設備可丟棄所述無效報文,減少路由設備刪除有效報文的數(shù)據(jù)量,從而減少發(fā)送方重傳有效報文的數(shù)據(jù)量,提高傳輸帶寬的傳輸效率。如圖4所示,本發(fā)明實施例提供的一種網(wǎng)絡設備,包括發(fā)送模塊401,用于發(fā)送長度不大于當前滑動窗口大小的報文,所述報文包括攜帶鏈路檢測信息的無效報文,所述無效報文未攜帶對端需要的數(shù)據(jù);確定模塊402,用于確定所述無效報文是否接收成功;調(diào)整模塊403,用于根據(jù)所述無效報文的接收結果,調(diào)整下一個滑動窗口的大小,以使得所述下一個滑動窗口的大小與傳輸鏈路狀態(tài)相符。進一步的,所述發(fā)送模塊401具體用于從所述無效報文中,選取未使用的字段,并在選取的未使用字段添加鏈路檢測標志位,并將添加標識位后的無效報文發(fā)送出去。如圖5所示,所述確定模塊402可以進一步包括接收子模塊4021,用于在固定時間間隔內(nèi),接收來自對端的應答消息;確定子模塊4022,用于確定所述接收子模塊4021接收的應答消息中是否有無效報文的應答消息;如果有無效報文的應答消息,則確定所述無效報文接收成功,否則,確定所述無效報文接收失敗。其中,如圖6所示,所述確定子模塊4022可以進一步包括獲取單元40221,用于獲取所述無效報文的序列號。確定單元40222,用于根據(jù)所述無效報文的序列號,確定接收的應答消息中是否包括所述無效報文的序列號;如果接收的應答消息中包括無效報文的序列號,則確定接收的應答消息中有無效報文的應答消息;否則,確定接收的應答消息中有無效報文的應答消息??蛇x的,所述發(fā)送模塊401還用于所述確定子模塊4022確定所述無效報文接收失敗時,不重發(fā)所述無效才艮文。本發(fā)明實施例中的網(wǎng)絡設備可以為主機或服務器等。本發(fā)明實施例提供的網(wǎng)絡設備,在無效報文中攜帶鏈路檢測信息,指示路由設備可丟棄所述無效報文,減少路由設備刪除有效報文的數(shù)據(jù)量,從而減少發(fā)送方重傳有效報文的數(shù)據(jù)量,提高傳輸帶寬的傳輸效率。本領域普通技術人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理模塊中,12也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中。上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本
技術領域:
的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應所述以權利要求的保護范圍為準。權利要求1、一種調(diào)整滑動窗口的方法,其特征在于,包括發(fā)送長度不大于當前滑動窗口大小的報文,所述報文包括攜帶鏈路檢測信息的無效報文,所述無效報文未攜帶對端需要的數(shù)據(jù);確定所述無效報文是否接收成功;根據(jù)所述無效報文的接收結果,調(diào)整下一個滑動窗口的大小,以使得所述下一個滑動窗口的大小與傳輸鏈路狀態(tài)相符。2、根據(jù)權利要求1所述的調(diào)整滑動窗口的方法,其特征在于,所述鏈路檢測信息為鏈路^r測標志位時,發(fā)送長度不大于當前滑動窗口大小的報文,包括從所述無效報文中選取未使用的字段,并在選取的未使用字段添加鏈路檢觀'J標志4立;將添加鏈路4全測標識位后的無效報文發(fā)送出去。3、根據(jù)權利要求1所述的調(diào)整滑動窗口的方法,其特征在于,所述確定所述無效報文是否接收成功,包括在固定時間間隔內(nèi),接收來自對端的應答消息;確定接收的應答消息中是否有無效報文的應答消息;如果有無效報文的應答消息,則確定所述無效報文接收成功,否則,確定所述無效報文接收失敗。4、根據(jù)權利要求3所述的調(diào)整發(fā)送窗口的方法,其特征在于,所述確定接收的應答消息中是否有無效報文的應答消息,包括獲取所述無效報文的序列號;根據(jù)所述無效報文的序列號,確定接收的應答消息中是否包括所述無效報文的序列號;如果接收的應答消息中包括無效報文的序列號,則確定接收的應答消息中有無效報文的應答消息;否則,確定接收的應答消息中有無效報文的應答消息。5、根據(jù)權利要求4所述的調(diào)整滑動窗口的方法,其特征在于,當確定所述無效報文接收失敗后,還包括不重發(fā)所述攜帶鏈路檢測信息的無效報文。6、根據(jù)權利要求l所述的調(diào)整發(fā)送窗口的方法,其特征在于,所述根據(jù)所述無效報文的接收結果,調(diào)整下一個滑動窗口的大小,包括如果所述無效^^文接收成功,則增大下一個滑動窗口的大?。环駝t,減小下一個滑動窗口的大小。7、一種網(wǎng)絡設備,其特征在于,包括發(fā)送模塊,用于發(fā)送長度不大于當前滑動窗口大小的報文,所述報文包括攜帶鏈路檢測信息的無效報文,所述無效報文未攜帶對端需要的數(shù)據(jù);確定模塊,用于確定所述無效報文是否接收成功;調(diào)整模塊,用于根據(jù)所述無效報文的接收結果,調(diào)整下一個滑動窗口的大小,以使得所述下一個滑動窗口的大小與傳輸鏈路狀態(tài)相符。8、根據(jù)權利要求7所述的網(wǎng)絡設備,其特征在于,所述確定模塊,包括接收子模塊,用于在固定時間間隔內(nèi),接收來自對端的應答消息;確定子模塊,用于確定所述接收子模塊接收的應答消息中是否有無效報文的應答消息;如果有無效報文的應答消息,則確定所述無效報文接收成功,否則,確定所述無效報文接收失敗。9、根據(jù)權利要求8所述的網(wǎng)絡設備,其特征在于,所述確定子模塊,包括獲取單元,用于獲取所述無效報文的序列號;確定單元,用于根據(jù)所述無效報文的序列號,確定接收的應答消息中是否包括所述無效報文的序列號;如果接收的應答消息中包括無效報文的序列號,則確定接收的應答消息中有無效報文的應答消息;否則,確定接收的應答消息中有無效報文的應答消息。10、根據(jù)權利要求7所述的網(wǎng)絡設備,其特征在于,所述發(fā)送模塊還用于在所述確定子一莫塊確定所述無效報文接收失敗時,不重發(fā)所述無效報文。全文摘要本發(fā)明實施例公開了一種調(diào)整滑動窗口的方法和裝置,涉及通信領域;能夠減少發(fā)送方重傳的數(shù)據(jù)量。所述調(diào)整滑動窗口的方法,包括發(fā)送長度不大于當前滑動窗口大小的報文,所述報文包括攜帶鏈路檢測信息的無效報文,所述無效報文未攜帶對端需要的數(shù)據(jù);確定所述無效報文是否接收成功;根據(jù)所述無效報文的接收結果,調(diào)整下一個滑動窗口的大小,以使得所述下一個滑動窗口的大小與傳輸鏈路狀態(tài)相符。本發(fā)明實施例提供的技術方案可應用于傳輸報文。文檔編號H04L1/16GK101494531SQ200910117950公開日2009年7月29日申請日期2009年2月24日優(yōu)先權日2009年2月24日發(fā)明者成湯申請人:華為技術有限公司