專利名稱:網(wǎng)絡(luò)分組傳送方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)分組傳送方法,特別是涉及一種能依照分組序號的 先后順序來傳送網(wǎng)絡(luò)分組的傳送方法。
背景技術(shù):
隨著因特網(wǎng)的進步,為了適應各種使用需求而發(fā)展出的網(wǎng)絡(luò)技術(shù)也跟著蓬勃發(fā)展起來。其中,在支持通道路由(Tunnel Routing)技術(shù)的網(wǎng)絡(luò)環(huán)境下, 廣域網(wǎng)絡(luò)(Wide Area Network, WAN)上的連結(jié)可構(gòu)成由多條通道(Tunnel)所 組成的通道群組(Tunnel Group),而所有網(wǎng)絡(luò)分組將按照一定的策略分發(fā)到 各個通道以發(fā)送給對方。通道路由技術(shù)的優(yōu)點在于當其中一條廣域網(wǎng)絡(luò)連結(jié) 斷線時,網(wǎng)絡(luò)分組依舊能通過其它的通道來進行傳送,進而保持網(wǎng)絡(luò)傳輸?shù)?持續(xù)性;此外,利用多個通道來傳送網(wǎng)絡(luò)分組也可提升網(wǎng)絡(luò)傳輸速率。因此, 通道傳輸技術(shù)無疑能因應快速及持續(xù)傳送數(shù)據(jù)的需求。然而,由于通道群組中各個通道的網(wǎng)絡(luò)狀況均有所不同,接收端在接收 網(wǎng)絡(luò)分組時可能會面臨網(wǎng)絡(luò)分組失序(Reorder)的情況。舉例來說,若發(fā)送 端依序送出序號1至4的分組,2號分組因為網(wǎng)絡(luò)壅塞較晚抵達,使接收端 依序收到1、 3、 4號分組。接收端收到1號分組時會針對1號分組送出響應 (Acknowledgment)給發(fā)送端,稍后收到3、 4號分組時也會針對1號分組送 出響應。發(fā)送端連續(xù)收到三次針對1號分組的響應后,會判斷2號分組已經(jīng) 遺失而重傳(Retransmit) 2號分組,而實際上2號分組并未在傳送途中丟失。 這種非必要的重復傳送會占用網(wǎng)絡(luò)資源,降低網(wǎng)絡(luò)傳輸效率。此外,對于某些重視網(wǎng)絡(luò)分組的先后順序的串流(Streaming)應用服務(wù) 來說,若無法依序地接收網(wǎng)絡(luò)分組,也將使得服務(wù)品質(zhì)受到相當大的影響。發(fā)明內(nèi)容有鑒于此,本發(fā)明提供一種網(wǎng)絡(luò)分組傳送方法,將失序的網(wǎng)絡(luò)分組加入 緩存隊列并進行排序,據(jù)以在傳送時能依照其分組序號的先后順序送出。本發(fā)明提出一種網(wǎng)絡(luò)分組傳送方法,用于包括多個通道的通道群組,此方法包括下列步驟首先,提供接收端,其中此接收端儲存有傳送序號,并能存取緩存隊列。接著,由接收端接收網(wǎng)絡(luò)分組,并比較網(wǎng)絡(luò)分組的分組序 號與傳送序號。若分組序號大于傳送序號,則將網(wǎng)絡(luò)分組加入緩存隊列,并對應倒數(shù)等待時間;若分組序號等于傳送序號,則傳送網(wǎng)絡(luò)分組以及緩存隊 列中分組序號與網(wǎng)絡(luò)分組連續(xù)的網(wǎng)絡(luò)分組;若分組序號小于傳送序號,則根 據(jù)接收端的需求,決定是否傳送網(wǎng)絡(luò)分組。當?shù)却龝r間倒數(shù)為G時,由緩存 隊列中分組序號最小的網(wǎng)絡(luò)分組開始,傳送分組序號連續(xù)的網(wǎng)絡(luò)分組。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,還包括每當傳送緩 存隊列中的網(wǎng)絡(luò)分組之后,更新傳送序號為最后傳送的網(wǎng)絡(luò)分組的分組序號 加1。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,還包括每當傳送緩 存隊列中的網(wǎng)絡(luò)分組之后,若緩存隊列為空,則清除等待時間。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,還包括每當傳送緩 存隊列中的網(wǎng)絡(luò)分組之后,若緩存隊列非空,則重新倒數(shù)等待時間。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,還包括每當傳送緩 存隊列中的網(wǎng)絡(luò)分組之后,若緩存隊列非空,則計算持續(xù)倒數(shù)時間,并開始 倒數(shù)持續(xù)倒數(shù)時間。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,其中計算持續(xù)倒數(shù) 時間的步驟包括以在緩存隊列中第 一個網(wǎng)絡(luò)分組被加入至緩存隊列的時間 與加入當時的等待時間的總和做為送出時間。并以送出時間及目前時間的差 值做為持續(xù)倒數(shù)時間。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,其中若分組序號小 于傳送序號,則根據(jù)接收端的需求,決定是否傳送網(wǎng)絡(luò)分組的步驟包括若接 收端不要求嚴格定序傳送,則傳送網(wǎng)絡(luò)分組。若接收端要求嚴格定序傳送, 則丟棄網(wǎng)絡(luò)分組。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,還包括根據(jù)網(wǎng)絡(luò)分 組由發(fā)送端分別經(jīng)過每個通道以到達接收端的時間差值,計算每個通道的延 遲時間Lati,其中正整數(shù)i為對應的通道編號。接著,根據(jù)每個通道的延遲 時間與上 一 次計算的延遲時間的差值,計算每個通道的延遲時間變異值 Van,并根據(jù)上述延遲時間及上述延遲時間變異值,計算等待時間。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,其中時間差值為相 對時間差值或絕對時間差值,而根據(jù)網(wǎng)絡(luò)分組由發(fā)送端經(jīng)過通道以到達接收端的時間差值,計算通道的延遲時間的步驟包括首先,計算延遲時間 Lat^(Lati —old*N+Delta_ti)/(N+l),其中Lat—old表示上一次計算通道的 延遲時間,Delta-ti表示時間差值,而N為大于0的整^:。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,其中根據(jù)通道的延 遲時間與上一次計算的延遲時間的差值,計算通道的延遲時間變異值的步驟 包括 首先, 計算延遲時間變異值 Vari-(Var卜old承M+lDelta-t「Lat卜oldl)/(M+l),其中Var卜old表示上一次 計算通道的延遲時間變異值,Delta-ti表示時間差值,Lati-old表示上一次 計算通道的延遲時間,而M為大于O的整數(shù)。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,其中若分組序號大 于傳送序號,將網(wǎng)絡(luò)分組加入緩存隊列,并對應倒數(shù)等待時間的步驟還包括 若在加入網(wǎng)絡(luò)分組于緩存隊列之前緩存隊列為空,則開始倒數(shù)等待時間。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,其中根據(jù)上述延遲 時間及上述延遲時間變異值,計算等待時間的步驟還包括計算上述延遲時 間的最大值Lat,-MAX(LaULat2,……,LaU),其中k為最大的通道編號。計 算上述延遲時間變異值的最大值VarMX= MAX(Var!,Van,……,VarJ 。計算上 述 延 遲 時 間 的 最 大 差 值 Lat—Diffmax二MAX((Lat隨x一Lati), (LatMX_Lat2),……,(Latm —LaU)) 。 ^f^十,, 待時間=La t _ D i f f ,+Va r頻。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,其中等待時間包括 每個通道的通道等待時間Tun-wtimei,而若分組序號大于傳送序號,將網(wǎng)絡(luò) 分組加入緩存隊列,并對應倒數(shù)等待時間的步驟還包括在加入網(wǎng)絡(luò)分組時, 開始倒數(shù)傳送網(wǎng)絡(luò)分組的通道的通道等待時間。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,其中計算通道等待 時間的步驟還包括計算上述延遲時間的最大值 LaU^MAX(LaL,Lat2,……,LatJ,其中k為最大的通道編號。計算上述延遲 時間變異值的最大值VarMX= MAX (Valvar"……,Vark)。最后,計算通道等 4爭時間Tun—wt imei= (Lat,—Lati)十Var顧。依照本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法,其中由緩存隊列中分組序號最小的網(wǎng)絡(luò)分組開始,傳送分組序號連續(xù)的網(wǎng)絡(luò)分組的步驟還包括 依序傳送由緩存隊列中分組序號最小的網(wǎng)絡(luò)分組開始以至于通道等待時間 倒數(shù)為Q的網(wǎng)絡(luò)分組的所有網(wǎng)絡(luò)分組,以及分組序號與通道等待時間倒數(shù)為0的網(wǎng)絡(luò)分組連續(xù)的所有網(wǎng)絡(luò)分組。本發(fā)明在接收端收到失序的網(wǎng)絡(luò)分組時,先將其加入至緩存隊列,直到 等待時間到期或是接收到分組序號與傳送序號相等的網(wǎng)絡(luò)分組之后,再從緩 存隊列中取出適當?shù)木W(wǎng)絡(luò)分組送出,因此能對失序的網(wǎng)絡(luò)分組進行排序并送 出,避免重送網(wǎng)絡(luò)分組而浪費網(wǎng)絡(luò)頻寬,據(jù)以達到提升傳輸效率的目的。為使本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并 結(jié)合附圖詳細說明如下。
圖1為依照本發(fā)明較佳實施例所示的網(wǎng)絡(luò)分組傳送方法的流程圖。圖2為依照本發(fā)明較佳實施例所示的等待時間計算方法的流程圖。圖3為依照本發(fā)明另一較佳實施例所示的網(wǎng)絡(luò)分組傳送方法的流程圖。圖4為依照本發(fā)明又一較佳實施例所示的網(wǎng)絡(luò)分組傳送方法的流程圖。附圖符號說明110-190:本發(fā)明的較佳實施例所述的網(wǎng)絡(luò)分組傳送方法的各步驟 210 - 230:本發(fā)明的較佳實施例所述的等待時間計算方法的各步驟 310 - 390:本發(fā)明另一較佳實施例所述的網(wǎng)絡(luò)分組傳送方法的各步驟 410 - 460:本發(fā)明又一較佳實施例所述的網(wǎng)絡(luò)分組傳送方法的各步驟具體實施方式
一般來說,串流應用服務(wù)對于網(wǎng)絡(luò)分組順序的要求較為嚴格,若能依序 將網(wǎng)絡(luò)分組送出,不僅可以避免重送網(wǎng)絡(luò)分組所浪費的網(wǎng)絡(luò)資源,還能使應 用服務(wù)執(zhí)行得更為順暢。本發(fā)明便是基于上述理由進而發(fā)展出的 一種網(wǎng)絡(luò)分 組傳送方法。為了使本發(fā)明的內(nèi)容更為明了,以下特舉實施例做為本發(fā)明確 實能夠據(jù)以實施的范例。實施例中,用以接收網(wǎng)絡(luò)分組的接收端儲存有一傳送序號,表示目前應該傳送的網(wǎng)絡(luò)分組的分組序號。接收端能將接收到的網(wǎng)絡(luò)分組儲存于緩存隊列, 或是由緩存隊列中取出網(wǎng)絡(luò)分組并且送出。為了避免網(wǎng)絡(luò)分組置于緩存隊列 的時間過長,接收端會計算一個等待時間,并且在等待時間倒數(shù)為O之時, 從緩存隊列中取出適當?shù)木W(wǎng)絡(luò)分組傳送出去。請參閱圖l,在步驟110中,接收端接收經(jīng)由通道群組的一通道所傳送而來的網(wǎng)絡(luò)分組。接著如步驟12Q所示,接收端將此網(wǎng)絡(luò)分組的分組序號與 傳送序號進行比較。倘若網(wǎng)絡(luò)分組的分組序號大于傳送序號,那么如步驟130所示,接收端 會將此網(wǎng)絡(luò)分組加入至緩存隊列。值得注意的是,在本實施例中,當緩存隊 列由空轉(zhuǎn)變?yōu)榉强盏臅r,等待時間^吏會開始進行倒數(shù),且此后所有加入至緩 存隊列的網(wǎng)絡(luò)分組皆對應倒數(shù)相同的等待時間。因此如步驟131所示,接收 端在將網(wǎng)絡(luò)分組加入至緩存隊列時,將判斷在加入之前緩存隊列是否為空, 倘若在加入前緩存隊列為空,那么便開始倒數(shù)等待時間。反之,若已經(jīng)有其 它的網(wǎng)絡(luò)分組被加入至緩存隊列,則表示等待時間已經(jīng)在進行倒數(shù)中。圖2為依照本發(fā)明較佳實施例所示的等待時間計算方法的流程圖。其中, 由于每個通道的網(wǎng)絡(luò)狀況不同,因此在計算等待時間時必須先取得通道群組 中每個通道的延遲時間以及延遲時間變異值。而接收端計算等待時間的時間 點例如可以是接收端每次收到網(wǎng)絡(luò)分組之時,或是在特定的時刻定期計算等 待時間,在此并不限制其范圍。請參閱圖2,在步驟210中,根據(jù)網(wǎng)絡(luò)分組由發(fā)送端分別經(jīng)過每個通道 到達接收端的時間差值,計算出每個通道的延遲時間Lati,其中正整數(shù)i為 對應的通道編號。取得時間差值的方法包括由發(fā)送端在網(wǎng)絡(luò)分組內(nèi)加入一個 時間戳記(T i me S t amp),而接收端在收到網(wǎng)絡(luò)分組后,將目前的時間與記錄 在時間戳記中的時間相減,以做為此通道的時間差值。值得一提的是,若發(fā) 送端與接收端具有同步的系統(tǒng)時間,則此時間差值為絕對時間差值,也就是 發(fā)送與接收兩端的系統(tǒng)時間差值。反之若發(fā)送端與接收端兩者的系統(tǒng)時間并 不同步,那么將以例如實際開機時間做為基準,來計算兩者間的相對時間差 值,兩者的開機時間差異會在后面的公式中抵消,不至于影響結(jié)果。取得時 間差值后,本實施例是以下列算式來計算每個通道的延遲時間Lat"Lat嚴(Lati-old氺N+Delta-ti) / (N+l)其中,Lati-old表示上一次計算此通道的延遲時間,Deita-ti是對應此通道的時間差值,而N為正整數(shù)。接著如步驟220所示,根據(jù)每個通道的延遲時間與上一次計算的延遲時 間的差值,來計算每個通道的延遲時間變異值Vari。其中,本實施例是以下 列公式來計算每個通道的延遲時間變異值Vari:Van= (Var卜ol純+lDelta-ti-Lat…oldl) 〃M+l)在上述公式中,Var卜old表示上一次計算此通道的延遲時間變異值, Delta-ti表示對應此通道的時間差值,Lat卜old表示上一次計算此通道的延 遲時間,而M為正整數(shù)。最后,在步驟23G中,才艮據(jù)每個通道的延遲時間以及延遲時間變異值來 計算等待時間。在本實施例中,首先必須計算出上述延遲時間中的最大值 LaU,MAX(Lat,,Lat2,……,LaU),其中k為最大的通道編號。接著,計算所 有延遲時間變異值的最大值Var,-MAX(Vari, Var2,……,Vart),并計算出所有 延 遲 時 間 彼 此 之 間 的 最 大 差 值Lat — Diff眼x-MAX((Lat則x一Lat!), (Latmax-Lat2) ,......, (Latraax—Latk)))。最后,令等待時間為Lat—Diff^與Var^的總和。請回到圖l,在步驟133中,當持續(xù)倒數(shù)的等待時間倒數(shù)為0時,接收 端將由緩存隊列中分組序號最小的網(wǎng)絡(luò)分組開始,傳送分組序號連續(xù)的網(wǎng)絡(luò) 分組。舉例來說,倘若在等待時間倒數(shù)為0時,緩存隊列中儲存有分組序號 分別為13、 14、 15、 17的4個網(wǎng)絡(luò)分組,那么步驟133中,分組序號為13、 14、 15的這3個網(wǎng)絡(luò)分組將被一并送出。在傳送網(wǎng)絡(luò)分組之后,如步驟15G所示,接收端會將最后傳送的網(wǎng)絡(luò)分 組的分組序號加l做為新的傳送序號。延續(xù)上述的例子,接收端將以16(即 15+1)做為新的傳送序號。并如步驟160所示,判斷緩存隊列是否已經(jīng)清空。 若在緩存隊列中已經(jīng)沒有任何的網(wǎng)絡(luò)分組,則如步驟170所示,若等待時間 尚未倒數(shù)為O便將等待時間清除。若在緩存隊列中仍有其它的網(wǎng)絡(luò)分組,則 如步驟180所示,接收端將重新開始倒數(shù)等待時間,此時的等待時間可依照 上述公式重新計算。待等待時間下一次倒數(shù)為0時,再進行步驟133之后的 各個步驟。請回到步驟120,倘若接收端接收到的網(wǎng)絡(luò)分組其分組序號恰好等于傳 送序號,那么在步驟14Q中,接收端將傳送此網(wǎng)絡(luò)分組以及在緩存隊列中分 組序號與此網(wǎng)絡(luò)分組連續(xù)的所有網(wǎng)絡(luò)分組。舉例來說,假設(shè)目前儲存在接收端的傳送序號為12,且在緩存隊列中有分組序號分別為13、 14、 15、 17的 4個網(wǎng)絡(luò)分組,那么當接收端收到分組序號為12的網(wǎng)絡(luò)分組后,便會將分組 序號為12、 13、 14、 15的網(wǎng)絡(luò)分組一并送出。同樣地,在傳送網(wǎng)絡(luò)分組后,如步驟150所示,接收端將更新傳送序號, 并以最后傳送的網(wǎng)絡(luò)分組的分組序號加1做為新的傳送序號。接著在步驟 160中,判斷緩存隊列是否為空。若緩存隊列中已經(jīng)沒有任何的網(wǎng)絡(luò)分組, 且等待時間尚未倒數(shù)至O,那么在步驟170中將等待時間清除。倘若在緩存 隊列中仍有尚未傳送出去的網(wǎng)絡(luò)分組,則如步驟180所示,重新開始倒數(shù)等 待時間,并且在等待時間再次倒數(shù)為O之后,進行步驟133的動作。除此之外,倘若接收端所接收到的網(wǎng)絡(luò)分組其分組序號小于傳送序號, 那么如步驟19Q所示,根據(jù)接收端的需求來決定是否傳送網(wǎng)絡(luò)分組。舉例來 說,倘若接收端不要求嚴格定序傳送,則直接將網(wǎng)絡(luò)分組傳送出去;然而若 接收端要求嚴格定序傳送,則丟棄此網(wǎng)絡(luò)分組。值得注意的是,在上述實施例中每當傳送緩存隊列中的網(wǎng)絡(luò)分組之后, 倘若在緩存隊列中仍有其它的網(wǎng)絡(luò)分組尚未送出,接收端將會重新開始倒數(shù) 等待時間。如此一來,可能會使得某些網(wǎng)絡(luò)分組在緩存隊列中停留的時間超 過最初加入隊列時的等待時間。舉例來說,假設(shè)目前的傳送序號為12,而接收端在將分組序號為13的 網(wǎng)絡(luò)分組加入至緩存隊列時,開始倒數(shù)等待時間(即在分組序號為13的網(wǎng)絡(luò) 分組加入緩存隊列之前,緩存隊列為空)。此后陸續(xù)有分組序號為14、 15、 17的網(wǎng)絡(luò)分組加入至緩存隊列。在經(jīng)過一段時間之后,當?shù)却龝r間倒數(shù)為O 時,分組序號13、 14、 15的網(wǎng)絡(luò)分組將被一并送出。此時,因為在緩存隊 列中仍有尚未送出的網(wǎng)絡(luò)分組(即分組序號17的網(wǎng)絡(luò)分組),因此接收端將 重新開始倒數(shù)等待時間。倘若在等待時間再次倒數(shù)為O之前,接收端并未收 到分組序號12的網(wǎng)絡(luò)分組,那么分組序號17的網(wǎng)絡(luò)分組將在等待時間再次 倒數(shù)為0的時才會被接收端送出。也就是說,分組序號17的網(wǎng)絡(luò)分組停留 在緩存隊列的時間將超過原本的等待時間。正因如此,每當傳送緩存隊列中的網(wǎng)絡(luò)分組后,若能持續(xù)地倒數(shù)等待時間以取代重新倒數(shù)等待時間,將可避免上述的情況產(chǎn)生。圖3為依照本發(fā)明另一較佳實施例所示的網(wǎng)絡(luò)分組傳送方法的流程圖。由于在本實施例中,接收端對于所接收的網(wǎng)絡(luò)分組的處理與圖1所示的實施例有諸多雷同的處,故在此不再贅述相似的部份。唯有每當接收端傳送緩存隊列中的網(wǎng)絡(luò)分組之后,在步驟360判斷緩存隊列是否被清空,若緩存隊列里還有網(wǎng)絡(luò)分組尚未 送出,則如步驟380所示,接收端將計算一持續(xù)倒數(shù)時間以做為新的等待時 間,并倒數(shù)更新后的等待時間。在本實施例中,每個網(wǎng)絡(luò)分組在加入至緩存隊列時均有記錄其加入的時 間,因此計算持續(xù)倒數(shù)時間的方式例如是以目前緩存隊列中,第一個網(wǎng)絡(luò)分 組被加入至緩存隊列的時間,以及加入當時的等待時間的總和來做為送出時 間,并以送出時間以及目前時間的差值來做為持續(xù)倒數(shù)時間。在上述實施例中,無論網(wǎng)絡(luò)分組是經(jīng)由哪個通道到達接收端,均對應倒 數(shù)相同的等待時間(即緩存隊列中的網(wǎng)絡(luò)分組是共享相同的等待時間)。然 而,每個通道的網(wǎng)絡(luò)狀況各不相同,相較于經(jīng)由傳送速度較慢的通道到達接 收端的網(wǎng)絡(luò)分組來說,經(jīng)由傳送速度較快的通道到達接收端的網(wǎng)絡(luò)分組,其 等待時間應該較長,如此一來才能有效地反應網(wǎng)絡(luò)狀況,并使傳輸效率更為 提升?;谏鲜鲈?,在以下的實施例中每個加入至緩存隊列的網(wǎng)絡(luò)分組將 因為傳送的通道的不同,而對應倒數(shù)各自的等待時間。圖4為依照本發(fā)明又一較佳實施例所示的網(wǎng)絡(luò)分組傳送方法的流程圖。 請參閱圖4,在步驟410中由接收端接收經(jīng)由通道群組的一通道所傳送的網(wǎng) 絡(luò)分組。接著在步驟42Q中,比較網(wǎng)絡(luò)分組的分組序號以及傳送序號。倘若網(wǎng)絡(luò)分組的分組序號大于傳送序號,在步驟430中接收端便將網(wǎng)絡(luò) 分組加入至緩存隊列。接著,在步驟431中,以傳送此網(wǎng)絡(luò)分組的通道的通 道等待時間做為對應的等待時間并開始進行倒數(shù)。也就是說,每個加入至緩 存隊列的網(wǎng)絡(luò)分組,均有各自所對應倒數(shù)的等待時間(即其通道等待時間)。在本實施例中,接收端計算每個通道的通道等待時間的方法例如必須先 計算出每個通道的延遲時間Lati與延遲時間變異值Van,其中正整數(shù)i為對 應的通道編號。由于計算通道的延遲時間及延遲時間變異值的方法和上述實 施例雷同,故在此不再贅述。接下來,接收端將計算出所有延遲時間的最大 值Lat;MAX(LaULat2,…...,LatJ,以及所有延遲時間變異值的最大值 Varmax=MAX (Valvar"......, Vark),其中k為最大的通道編號。最后,計算每個通道所對應的通道等待時間Tun-wtinie產(chǎn)(LaUx-Lati)+Var瞎。接著在步驟433中,倘若有任何分組的通道等待時間倒數(shù)為0,則依序 傳送由緩存隊列中分組序號最小的網(wǎng)絡(luò)分組開始以至于通道等待時間倒數(shù)12為0的網(wǎng)絡(luò)分組的所有網(wǎng)絡(luò)分組,以及分組序號與通道等待時間倒數(shù)為0的
網(wǎng)絡(luò)分組連續(xù)的所有分組。最后,如步驟450所示,將最后傳送的網(wǎng)絡(luò)分組 的分組序號加1做為新的傳送序號。
舉例來說,假設(shè)目前在緩存隊列中共有分組序號為5、 6、 7、 11、 12、 13、 15、 16、 17這9個網(wǎng)絡(luò)分組,當對應分組序號為16這個網(wǎng)絡(luò)分組的通 道等待時間倒數(shù)為O時,如步驟433所示,接收端將依序送出分組序號最小 的網(wǎng)絡(luò)分組至通道等待時間倒數(shù)為G的網(wǎng)絡(luò)分組之間的所有網(wǎng)絡(luò)分組(即分 組序號為5、 6、 7、 11、 12、 13、 15、 16的網(wǎng)絡(luò)分組),并且送出緩存隊列 中分組序號與通道等待時間倒數(shù)為0的網(wǎng)絡(luò)分組連續(xù)的所有網(wǎng)絡(luò)分組(即分 組序號為17的網(wǎng)絡(luò)分組)。最后在步驟450中將傳送序號更新為18。
請回到步驟420,倘若接收端判斷分組序號與傳送序號相等,那么如步 驟440所示,接收端將傳送此網(wǎng)絡(luò)分組,以及在緩存隊列中分組序號與此網(wǎng) 絡(luò)分組連續(xù)的所有網(wǎng)絡(luò)分組。
倘若接收端判斷分組序號小于傳送序號,在步驟460中,根據(jù)接收端的 需求來決定是否要傳送網(wǎng)絡(luò)分組。舉例來說,倘若接收端不要求嚴格定序傳 送,則將網(wǎng)絡(luò)分組直接傳送出去;然而若接收端要求嚴格定序傳送,則丟棄 此網(wǎng)絡(luò)分組。本實施例與上述實施例不同的地方在于,在本實施例中每個緩存隊列中 的網(wǎng)絡(luò)分組均對應倒數(shù)各自的等待時間,因此當傳送緩存隊列中的網(wǎng)絡(luò)分組 之后,接收端僅只需要更新傳送序號,而不用重新倒數(shù)等待時間。
值得一提的是,在上述實施例中,由接收端所傳送出去的網(wǎng)絡(luò)分組例如 可以傳送給接收端本身所執(zhí)行的應用程序,或是傳送至其它的網(wǎng)絡(luò)設(shè)備,在 此并不限制其范圍。
綜上所述,本發(fā)明的網(wǎng)絡(luò)分組傳送方法至少具有下列優(yōu)點
1. 在接收端設(shè)置緩存隊列,以將失序的網(wǎng)絡(luò)分組進行排序后送出,避免 因為接收失序的網(wǎng)絡(luò)分組,而誤判網(wǎng)絡(luò)分組丟失并重送的情況產(chǎn)生,進而提 升網(wǎng)絡(luò)傳輸效率。
2. 根據(jù)通道群組的網(wǎng)絡(luò)狀況的不同,自動設(shè)定網(wǎng)絡(luò)分組停留在緩存隊列 中的時間,據(jù)以有效反映網(wǎng)絡(luò)狀態(tài),使得網(wǎng)絡(luò)分組在隊列中的等待時間更正 確、更有彈性。
3. 能以同樣的方式應用在多個通道群組上,據(jù)以提供更高的網(wǎng)絡(luò)傳輸品質(zhì)。
雖然本發(fā)明已以較佳實施例披露如上,然其并非用以限定本發(fā)明,本領(lǐng) 域技術(shù)人員在不脫離本發(fā)明的精神和范圍的前途下可作若干的更動與潤飾, 因此本發(fā)明的保護范圍以本發(fā)明的權(quán)利要求為準。
權(quán)利要求
1.一種網(wǎng)絡(luò)分組傳送方法,用于包括至少一通道的一通道群組,該方法包括下列步驟提供一接收端,其中該接收端儲存有一傳送序號,并能存取一緩存隊列;該接收端接收一網(wǎng)絡(luò)分組;比較該網(wǎng)絡(luò)分組的一分組序號與該傳送序號;若該分組序號大于該傳送序號,則將該網(wǎng)絡(luò)分組加入該緩存隊列,并對應倒數(shù)一等待時間;若該分組序號等于該傳送序號,則傳送該網(wǎng)絡(luò)分組以及該緩存隊列中分組序號與該網(wǎng)絡(luò)分組連續(xù)的網(wǎng)絡(luò)分組;若該分組序號小于該傳送序號,則根據(jù)該接收端的一需求,決定是否傳送該網(wǎng)絡(luò)分組;以及當所述等待時間倒數(shù)為0時,由該緩存隊列中分組序號最小的網(wǎng)絡(luò)分組開始,傳送該分組序號連續(xù)的網(wǎng)絡(luò)分組。
2. 如權(quán)利要求1所述的網(wǎng)絡(luò)分組傳送方法,還包括 每當傳送該緩存隊列中的網(wǎng)絡(luò)分組之后,更新該傳送序號為最后傳送的網(wǎng)絡(luò)分組的該分組序號加1。
3. 如權(quán)利要求1所述的網(wǎng)絡(luò)分組傳送方法,還包括 每當傳送該緩存隊列中的網(wǎng)絡(luò)分組之后,若該緩存隊列為空,則清除所述等待時間。
4. 如權(quán)利要求1所述的網(wǎng)絡(luò)分組傳送方法,還包括 每當傳送該緩存隊列中的網(wǎng)絡(luò)分組之后,若該緩存隊列非空,則重新倒數(shù)所述等待時間。
5. 如權(quán)利要求1所述的網(wǎng)絡(luò)分組傳送方法,還包括 每當傳送該緩存隊列中的網(wǎng)絡(luò)分組之后,若該緩存隊列非空,則計算一持續(xù)倒數(shù)時間,并開始倒數(shù)該持續(xù)倒數(shù)時間。
6. 如權(quán)利要求5所述的網(wǎng)絡(luò)分組傳送方法,其中「計算該持續(xù)倒數(shù)時間」 的步驟包括以在該緩存隊列中第 一個網(wǎng)絡(luò)分組;故加入至該緩存隊列的時間與加入 當時的等待時間的總和做為 一送出時間;以該送出時間及一 目前時間的差值做為該持續(xù)倒數(shù)時間。
7. 如權(quán)利要求1所述的網(wǎng)絡(luò)分組傳送方法,其中「若該分組序號小于該 傳送序號,則根據(jù)該接收端的該需求,決定是否傳送該網(wǎng)絡(luò)分組」的步驟包括若該接收端不要求嚴格定序傳送,則傳送該網(wǎng)絡(luò)分組;以及 若該接收端要求嚴格定序傳送,則丟棄該網(wǎng)絡(luò)分組。
8. 如權(quán)利要求1所述的網(wǎng)絡(luò)分組傳送方法,還包括 根據(jù)該網(wǎng)絡(luò)分組由一發(fā)送端分別經(jīng)過每一上述通道以到達該接收端的一時間差值,計算每一上述通道的一延遲時間Lati,其中正整數(shù)i為對應的 通道編號;根據(jù)每一上述通道的該延遲時間與上一次計算的延遲時間的差值,計算 每一上述通道的一延遲時間變異值Van;以及根據(jù)上述延遲時間及上述延遲時間變異值,計算所述等待時間。
9. 如權(quán)利要求8所述的網(wǎng)絡(luò)分組傳送方法,其中該時間差值為一相對時 間差值或一絕對時間差值,而「根據(jù)該網(wǎng)絡(luò)分組由該發(fā)送端經(jīng)過該通道以到 達該接收端的該時間差值,計算該通道的該延遲時間」的步驟包括計算該延遲時間Lat「(Lat卜old*N+Delta —ti)/(N+l),其中Lat卜old表 示上一次計算該通道的該延遲時間,Delta-ti表示該時間差值,而N為大于 0的整數(shù)。
10. 如權(quán)利要求8所述的網(wǎng)絡(luò)分組傳送方法,其中「根據(jù)該通道的該延 遲時間與上一次計算的延遲時間的差值,計算該通道的該延遲時間變異值J 的步驟包括計 算 該 延 遲 時 間 變 異 值 Var^(Vari—old*M+|DeUa-t「Lati-old|)/(M+l),其中Var卜old表示上一次 計算該通道的該延遲時間變異值,Delta-"表示該時間差值,Lat卜old表示 上一次計算該通道的該延遲時間,而M為大于O的整數(shù)。
11. 如權(quán)利要求8所述的網(wǎng)絡(luò)分組傳送方法,其中r若該分組序號大于 該傳送序號,將該網(wǎng)絡(luò)分組加入該緩存隊列,并對應倒數(shù)所述等待時間」的 步驟還包括若在加入該網(wǎng)絡(luò)分組于該緩存隊列之前該緩存隊列為空,則開始倒數(shù)所 述等待時間。
12. 如權(quán)利要求11所述的網(wǎng)絡(luò)分組傳送方法,其中r根據(jù)上述延遲時間 及上述延遲時間變異值,計算所述等待時間」的步驟還包括計算上迷延遲時間的最大值Lat組-MAX(LaULat2,……,LaU),其中k 為最大的通道編號;計算上述延遲時間變異值的最大值Varm = MAX(Varh Var2,……,Vark);計 算 上 述 延 遲 時 間 的 最 大 差 值 Lat—Dif fmax=MAX ((Lat^x一LatJ , (Latm —Lat2),......, (Latmax—Latk)); k乂及計算所述等待時間-Lat—Diffrax+Varm 。
13. 如權(quán)利要求8所述的網(wǎng)絡(luò)分組傳送方法,其中所述等待時間包括每 一上述通道的一通道等待時間Tun_wtimei,而「若該分組序號大于該傳送序 號,將該網(wǎng)絡(luò)分組加入該緩存隊列,并對應倒數(shù)所述等待時間」的步驟還包 括在加入該網(wǎng)絡(luò)分組時,開始倒數(shù)傳送該網(wǎng)絡(luò)分組的該通道的該通道等待 時間。
14. 如權(quán)利要求13所述的網(wǎng)絡(luò)分組傳送方法,其中計算該通道等待時間 的步驟還包括計算上述延遲時間的最大值LaU,MAX(Lat,,Lat2,……,LaU),其中k 為最大的通道編號;計算上述延遲時間變異值的最大值Var,- MAX(Vari,Var2,……,Vark); 計算該通道等待時間Tun—wtime「 (Lat,-Lati) +Varmax。
15. 如權(quán)利要求13所述的網(wǎng)絡(luò)分組傳送方法,其中「由該緩存隊列中分 組序號最小的網(wǎng)絡(luò)分組開始,傳送該分組序號連續(xù)的網(wǎng)絡(luò)分組」的步驟還包 括依序傳送由該緩存隊列中分組序號最小的網(wǎng)絡(luò)分組開始以至于該通道 等待時間倒數(shù)為0的該網(wǎng)絡(luò)分組的所有網(wǎng)絡(luò)分組,以及分組序號與該通道等 待時間倒數(shù)為0的該網(wǎng)絡(luò)分組連續(xù)的所有網(wǎng)絡(luò)分組。
全文摘要
一種網(wǎng)絡(luò)分組傳送方法,在接收端收到失序的網(wǎng)絡(luò)分組時,先將其加入至緩存隊列,直到等待時間到期或是接收到分組序號與目前傳送序號相等的網(wǎng)絡(luò)分組之后,再從緩存隊列中取出適當?shù)木W(wǎng)絡(luò)分組送出。因此能對失序的網(wǎng)絡(luò)分組進行排序并依序送出,進而避免重送網(wǎng)絡(luò)分組而浪費網(wǎng)絡(luò)頻寬,據(jù)以提升網(wǎng)絡(luò)傳輸?shù)男省?br>
文檔編號H04L12/46GK101296173SQ20071010106
公開日2008年10月29日 申請日期2007年4月26日 優(yōu)先權(quán)日2007年4月26日
發(fā)明者夏旭東, 義 雍 申請人:寬宇科技有限公司