專利名稱:一種分組重排序方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域,具體涉及一種分組重排序方法和系統(tǒng)。 背彔技術(shù)目前,采用分組交換的網(wǎng)絡(luò)體系中,同一業(yè)務(wù)流的不同分組通常會(huì)沿著不 同的路徑到達(dá)同一輸出端口。由于不同的路徑中存在不同的傳輸時(shí)延,所以, 輸出端口的分組流的排列次序會(huì)被打亂,即輸出端口的分組流的排列次序與從 輸入端口流入交換網(wǎng)絡(luò)的分組流的排列次序不同了。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,越來(lái)越多的網(wǎng)絡(luò)應(yīng)用技術(shù)如流媒體等,都要求分組 流在交換網(wǎng)絡(luò)中按順序傳輸,也就是說(shuō),輸出端口的分組流的排列次序應(yīng)與從 輸入端口流入交換網(wǎng)絡(luò)的分組流的排列次序相同。為了在交換網(wǎng)絡(luò)的輸出端口恢復(fù)流入交換網(wǎng)絡(luò)中的分組流的順序,需要在 輸出端口對(duì)分組流進(jìn)行分組重排序。分組重排序技術(shù)如附圖l所示。圖1中,分組流的6個(gè)分組按照0至5的順序依次進(jìn)入交換網(wǎng)絡(luò),這6個(gè) 分組通過(guò)3條不同的傳輸路徑傳輸,在分組流輸出交換網(wǎng)絡(luò)之前,對(duì)分組流進(jìn) 行重新排序,使分組流的6個(gè)分組依舊按照0至5的順序輸出交換網(wǎng)絡(luò)。在通常情況下,分組重排序系統(tǒng)主要由序列號(hào)生成器和重排序機(jī)兩部分構(gòu) 成。分組重排序系統(tǒng)如附圖2所示。圖2中,分組重排序系統(tǒng)包括多個(gè)序列號(hào)生成器和多個(gè)重排序機(jī)。 一個(gè)序 列號(hào)生成器和一個(gè)重排序機(jī)對(duì)應(yīng)一個(gè)分組流。序列號(hào)生成器位于交換網(wǎng)絡(luò)的輸 入端,其作用是為每個(gè)進(jìn)入交換網(wǎng)絡(luò)的分組添加一個(gè)序列號(hào),以表示該分組在整個(gè)分組流中的位置,序列號(hào)是重排序的依據(jù)。這里的序列號(hào)可以為時(shí)間戳。 重排序機(jī)位于交換網(wǎng)絡(luò)的輸出端。其作用是接收并存儲(chǔ)到達(dá)的分組,并根據(jù) 各分組的序列號(hào)如時(shí)間戳的大小對(duì)各分組進(jìn)行排序,然后,再按順序輸出分組 流,重排序機(jī)輸出的分組流與輸入交換網(wǎng)絡(luò)的分組流具有相同的次序。在分組流的傳輸出現(xiàn)亂序的情況下,為了對(duì)該分組流進(jìn)行重新排序,重排
序機(jī)需要接收一定數(shù)量的分組后,再按順序輸出該分組流中的分組。因此,重 排序機(jī)會(huì)使分組流的傳輸產(chǎn)生一定的時(shí)延,而且,時(shí)延的大小與分組流亂序程 度有關(guān)。衡量分組重排序方法性能的指標(biāo)主要有如下四個(gè)1、 排序時(shí)間。排序時(shí)間是指分組從進(jìn)入輸出端重排序機(jī)到分組被插入輸 出隊(duì)列中的正確位置所花費(fèi)的時(shí)間。重排序機(jī)應(yīng)在一個(gè)分組傳輸時(shí)間內(nèi)完成對(duì) 該分組的排序操作,否則,會(huì)造成輸出端的多個(gè)分組擁塞。2、 緩存大小及利用率。緩存大小及利用率是指用來(lái)存放重排序分組的存 儲(chǔ)器的大小及存儲(chǔ)器的利用情況。在不影響重排序正確性的前提下,緩存越小、 且利用率越高越好。3、 容錯(cuò)性。容錯(cuò)性是指當(dāng)分組在交換網(wǎng)絡(luò)中的傳輸出現(xiàn)差錯(cuò)時(shí),重排序 機(jī)對(duì)分組正確重排序的性能。分組在交換網(wǎng)絡(luò)中的傳輸差錯(cuò)對(duì)正確重排序的影 響越低,則重排序算法的容錯(cuò)性越好。這里的傳輸差錯(cuò)如分組阻塞、丟失等。4、 重排序時(shí)延。重排序時(shí)延是指分組流在經(jīng)過(guò)重排序機(jī)、序列號(hào)生成器時(shí),重排序機(jī)和序列號(hào)生成器造成的時(shí)延。重排序機(jī)是重排序方法的核心,為了正確的實(shí)現(xiàn)重排序功能,目前的分組 重排序方法的設(shè)計(jì)基本上都是圍繞重排序機(jī)進(jìn)行的。下面對(duì)目前的多種重排序 方法進(jìn)行說(shuō)明。方法一、早期的重排序方法實(shí)現(xiàn)原理如附圖3所示。圖3中,在輸出端的重排序機(jī)中建立一個(gè)隊(duì)列,該隊(duì)列用來(lái)存儲(chǔ)分組。對(duì) 于進(jìn)入重排序機(jī)的分組,將該分組的序列號(hào)如時(shí)間戳和存儲(chǔ)在隊(duì)列中的分組的 序列號(hào)一一進(jìn)行比較,以找到該分組在隊(duì)列中的位置,然后,將該分組插入到 隊(duì)列中。由于方法一的重排序方法需要進(jìn)行已存儲(chǔ)分組序列號(hào)的一一比較,因此, 會(huì)花費(fèi)相當(dāng)多的時(shí)間,即重排序時(shí)延長(zhǎng)。方法二、 Turner; Jonathan S提出的重排序方法實(shí)現(xiàn)原理如附圖4所示。 圖4中,每個(gè)分組在進(jìn)入交換網(wǎng)絡(luò)之前,都會(huì)附加一個(gè)時(shí)間戳,以標(biāo)明該 分組在隊(duì)列中的先后次序。在分組進(jìn)入重排序機(jī)后,通過(guò)比較分組的時(shí)間戳值 和當(dāng)前的時(shí)間值,產(chǎn)生一個(gè)Ar, Ar是該分組從進(jìn)入交換網(wǎng)絡(luò)到從交換網(wǎng)絡(luò)中 輸出的時(shí)間間隔,Ar表示該分組通過(guò)交換網(wǎng)絡(luò)所花的時(shí)間,即該分組的"年齡"。齡存入一個(gè)緩沖器中,且緩沖器中存儲(chǔ)的分組的年 齡應(yīng)隨時(shí)間規(guī)則遞增。隨后,重排序機(jī)在所有已儲(chǔ)存的分組中找出年齡最大的 分組,即最先進(jìn)入交換網(wǎng)絡(luò)的分組,并將該分組的年齡與極限年齡相比較,如 果該分組的年齡大于該極限年齡,則輸出該分組,并把該分組的年齡從緩沖器 中刪除。方法二的優(yōu)點(diǎn)在于該方法不需要將所有存儲(chǔ)在緩沖器中的分組按照其時(shí) 間戳值的大小排隊(duì),而是只選出其中最早進(jìn)入交換網(wǎng)絡(luò)的分組并輸出,從而減 少了重排序的處理時(shí)間,加快了重排序的處理速度。但是,該方法需要保證所 有己存儲(chǔ)的分組的年齡值隨時(shí)間的變化而規(guī)則增大,這就要求系統(tǒng)的同步性能 非常高,從而使重排序機(jī)的結(jié)構(gòu)比較復(fù)雜,增加了方法實(shí)現(xiàn)的難度。方法三、JeongW. Heo和DanK. Sung, Member提出的ATM網(wǎng)絡(luò)中實(shí)現(xiàn)快 速重排序的方法。該方法利用ATM網(wǎng)絡(luò)的信元中包含的VCI (虛通路標(biāo)志)信 息,將流入輸出端重排序機(jī)的信元流分若干個(gè)虛通路邏輯隊(duì)列(VC logical queues),每個(gè)虛通路邏輯隊(duì)列只存儲(chǔ)屬于本隊(duì)列的信元,并對(duì)本隊(duì)列中的各 信元排序。該方法的實(shí)現(xiàn)原理如附圖5所示。圖5中,當(dāng)一個(gè)信元到達(dá)重排序機(jī)后,重排序機(jī)根據(jù)該信元的VCI判斷該 信元屬于哪個(gè)虛通路邏輯隊(duì)列,然后,將這個(gè)信元送入該隊(duì)列中進(jìn)行排序。該 方法的實(shí)質(zhì)為在輸出端的重排序機(jī)中,分別為每個(gè)信元流建立一個(gè)排序隊(duì)列, 每個(gè)排序隊(duì)列只對(duì)屬于該隊(duì)列的信元進(jìn)行排隊(duì)。方法三的優(yōu)點(diǎn)在于實(shí)現(xiàn)了信元流的分隊(duì)列排序,減少了需要比較的信元 序列號(hào)的數(shù)量,進(jìn)而減少重排序的處理時(shí)間。另外,由于該機(jī)制采用虛通路標(biāo) 志移位寄存器(VSR)來(lái)為輸出提供引導(dǎo),因此,該方法不需要再增加額外的 仲裁功能來(lái)決定信元輸出的先后順序,從而簡(jiǎn)化了重排序機(jī)的電路結(jié)構(gòu)。雖然方法三是針對(duì)ATM網(wǎng)絡(luò)信元的重排序方法,但是該方法提出的根據(jù)不 同的分組流建立多個(gè)分組流存儲(chǔ)隊(duì)列,并對(duì)每個(gè)隊(duì)列獨(dú)自進(jìn)行分組重排序的思 想,可以應(yīng)用在任何類型的交換網(wǎng)絡(luò)中,而且,這一思想在已有的多個(gè)分組重 排序方案中均有所體現(xiàn)。上述介紹的三種重排序方法都未考慮交換網(wǎng)絡(luò)中的傳輸差錯(cuò)對(duì)重排序機(jī) 的影響,即重排序機(jī)的容錯(cuò)性。分組流在交換網(wǎng)絡(luò)中進(jìn)行交換、傳輸操作時(shí), 出現(xiàn)的傳輸差錯(cuò)主要有分組流的擁塞及分組的丟失。傳輸差錯(cuò)對(duì)重排序機(jī)造
成的影響為若分組流中某個(gè)分組在交換網(wǎng)絡(luò)的傳輸過(guò)程中被丟失了,重排序 機(jī)中存儲(chǔ)的分組流隊(duì)列會(huì)因該分組沒(méi)有到達(dá)而遲遲無(wú)法繼續(xù)發(fā)送,以致重排序 機(jī)中存儲(chǔ)的分組越來(lái)越多。如果分組流中的某些分組在交換網(wǎng)絡(luò)中被阻塞了較 長(zhǎng)一段時(shí)間后才到達(dá)重排序機(jī),則不僅會(huì)使重排序機(jī)中存儲(chǔ)的分組在較長(zhǎng)的時(shí) 間內(nèi)不能發(fā)送,而且,由于分組的序列號(hào)是不斷循環(huán)的,如果與被阻塞分組具 有相同序列號(hào)的分組先到達(dá)輸出端,則會(huì)使重排序產(chǎn)生錯(cuò)誤。針對(duì)交換網(wǎng)絡(luò)中的傳輸差錯(cuò),BahmanSalamat等對(duì)方法二進(jìn)行了改進(jìn)。該 方法的改進(jìn)點(diǎn)在于當(dāng)重排序機(jī)接收到一個(gè)分組后,并不立刻對(duì)其進(jìn)行排序, 而是將該分組的序列號(hào)與已排好序的分組流隊(duì)列中最后一個(gè)分組的序列號(hào)相 減并取絕對(duì)值。如果該絕對(duì)值小于一個(gè)極限值,則將該分組送入分組流隊(duì)列進(jìn) 行排序;如果該絕對(duì)值大于該極限值,則說(shuō)明該分組是在交換網(wǎng)絡(luò)中阻塞了一 段時(shí)間才到達(dá)的,是"過(guò)時(shí)"的分組。重排序機(jī)將該分組丟棄,以免過(guò)時(shí)的分 組造成分組流重排序的錯(cuò)誤。該方法雖然在一定程度上減少了交換網(wǎng)絡(luò)中分組流擁塞對(duì)分組重排序的 影響,但是,該方法仍然無(wú)法避免分組丟失對(duì)重排序的影響,也就是說(shuō),在分 組傳輸丟失時(shí),該方法無(wú)法判斷出分組是丟失了還是被阻塞了,也就無(wú)法判斷 是否該等待該分組,以及等待的時(shí)間。大容量交換網(wǎng)絡(luò)的基本結(jié)構(gòu)如附圖6所示。圖6中,大容量交換網(wǎng)絡(luò)通常由若干個(gè)交換單元構(gòu)成,每一個(gè)交換單元都 是一個(gè)子交換網(wǎng)絡(luò)。在交換網(wǎng)絡(luò)的邊緣,多個(gè)流量分配器根據(jù)流量分配策略將 從輸入端口輸入的分組流送往不同的交換單元。由于大容量交換網(wǎng)絡(luò)的結(jié)構(gòu)特 點(diǎn),使分組在交換網(wǎng)絡(luò)中的傳輸時(shí)延變化非常大,也就是說(shuō),交換網(wǎng)絡(luò)的最大 分組傳輸時(shí)延趨近于無(wú)窮大。在這種情況下, 一但發(fā)生分組擁塞或分組丟失, 現(xiàn)有的重排序方法將無(wú)法判斷出分組是丟失了還是被阻塞了,也就無(wú)法判斷是 否該等待該分組,以及等待的時(shí)間。由上述描述可知,現(xiàn)有的分組重排序方法不論是對(duì)由單一交換單元構(gòu)成的 交換網(wǎng)絡(luò)而言,還是對(duì)由多個(gè)交換單元并行構(gòu)成的大容量分組交換網(wǎng)絡(luò)而言, 均不能夠使重排序機(jī)及時(shí)發(fā)現(xiàn)分組流在交換網(wǎng)絡(luò)傳輸過(guò)程中的傳輸錯(cuò)誤,使重 排序機(jī)的容錯(cuò)性能差,交換網(wǎng)絡(luò)的分組重排序方法有待于進(jìn)一步完善
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種分組重排序方法和系統(tǒng),以解決重排序機(jī)容 錯(cuò)性能差的問(wèn)題使輸出端能夠方便的確定出分組在交換網(wǎng)絡(luò)中傳輸異常的情 況,提高了分組重排序的容錯(cuò)性,完善了包括大容量分組交換網(wǎng)絡(luò)在內(nèi)的各種 交換網(wǎng)絡(luò)的分組重排序方法。為達(dá)到上述目的,本發(fā)明提供的--種分組重排序方法,包括a、 交換網(wǎng)絡(luò)輸入端在將分組流中的分組輸入交換網(wǎng)絡(luò)過(guò)程中,將該分組 流中其他分組的分組傳輸信息輸入至交換網(wǎng)絡(luò);b、 交換網(wǎng)絡(luò)輸出端在分組重排序輸出過(guò)程中,根據(jù)其接收的分組傳輸信 息和接收到的分組確定傳輸異常的分組;c、 所述輸出端針對(duì)傳輸異常的分組進(jìn)行相應(yīng)的分組輸出處理。 所述分組傳輸信息為分組傳輸時(shí)間信息、和/或分組傳輸路徑信息。 所述步驟a包括-交換網(wǎng)絡(luò)輸入端在將分組流中的分組輸入交換網(wǎng)絡(luò)時(shí),將該分組、該分組 的傳輸路徑信息和該分組流中其他分組的傳輸路徑信息輸入至交換網(wǎng)絡(luò)。所述步驟b中分組重排序輸出的過(guò)程具體包括 bl、輸出端將其接收的分組緩存;b2、輸出端根據(jù)分組序列號(hào)順序存儲(chǔ)其接收的分組的緩存地址;b3 、輸出端根據(jù)連續(xù)存儲(chǔ)的緩存地址的存儲(chǔ)順序輸出其緩存的分組。所述步驟bl具體包括輸出端將其接收的不同分組流的分組存儲(chǔ)在一個(gè)分組存儲(chǔ)器中。 所述步驟b2中存儲(chǔ)分組緩存地址的存儲(chǔ)空間為多段存儲(chǔ)空間,且所述多 段存儲(chǔ)空間是輸出端為分組流動(dòng)態(tài)分配的。 所述步驟b還包括輸出端回收存儲(chǔ)分組緩存地址的存儲(chǔ)空間。所述分組傳輸信息為分組傳輸路徑信息,且所述步驟b中確定傳輸異常 的分組的步驟具體包括所述輸出端根據(jù)其接收到的分組及分組傳輸路徑信息記錄到當(dāng)前時(shí)間為 止、分組流的各傳輸路徑中最后傳輸?shù)姆纸M的分組序列號(hào),即最后序列號(hào);所述輸出端根據(jù)其接收的傳輸路徑信息確定空缺的緩存地址對(duì)應(yīng)的分組
序列號(hào)、及所屬的傳輸路徑;所述輸出端確定空缺的分組所屬傳輸路徑對(duì)應(yīng)的最后序列號(hào); 所述輸出端判斷最后序列號(hào)是否大于空缺的分組序列號(hào); 如果大于,確定該空缺的緩存地址對(duì)應(yīng)的分組傳輸丟失; 如果不大于,確定該空缺的緩存地址對(duì)應(yīng)的分組傳輸擁塞。 所述步驟C包括所述輸出端在確定分組傳輸丟失后,繼續(xù)根據(jù)后續(xù)連續(xù)存儲(chǔ)的緩存地址的 存儲(chǔ)順序輸出其緩存的分組。 所述步驟C包括所述輸出端在確定分組傳輸擁塞后,在預(yù)定時(shí)間間隔內(nèi)等待接收分組; 所述輸出端在預(yù)定時(shí)間間隔內(nèi)接收到其等待的分組時(shí),輸出該分組; 所述輸出端在預(yù)定時(shí)間間隔內(nèi)沒(méi)有接收到其等待的分組時(shí),繼續(xù)根據(jù)后續(xù)連續(xù)存儲(chǔ)的緩存地址的存儲(chǔ)順序輸出其緩存的分組。本發(fā)明還提供一種分組重排序系統(tǒng),包括輸入端和輸出端,所述輸出端設(shè)置有重排序機(jī),所述輸入端設(shè)置有分組信息生成器,所述重排序機(jī)中設(shè)置有重排序模塊和異常控制模塊;分組信息生成器用于在輸入端將分組流中的分組輸入交換網(wǎng)絡(luò)過(guò)程中,獲取該分組流中其他分組的分組傳輸信息,并為分組添加分組序列號(hào)和所述分組傳輸信息,然后,將分組輸入至交換網(wǎng)絡(luò);重排序模塊用于對(duì)接收端接收的分組進(jìn)行分組重排序輸出; 異??刂颇K用于根據(jù)輸出端接收的分組傳輸信息確定傳輸異常的分組,并針對(duì)傳輸異常的分組控制重排序模塊的輸出。 所述重排序模塊包括分組存儲(chǔ)器地址管理池為接收端接收的分組提供存儲(chǔ)地址,并將該存儲(chǔ) 地址傳輸至分組地址存儲(chǔ)段;分組存儲(chǔ)器用于根據(jù)分組存儲(chǔ)器地址管理池提供的存儲(chǔ)地址存儲(chǔ)分組, 并根據(jù)輸出仲裁機(jī)的通知、分組地址存儲(chǔ)段提供的緩存地址輸出其存儲(chǔ)的分 組;段控制器用于在分組存儲(chǔ)、輸出時(shí),為分組流提供分組地址存儲(chǔ)段的存 儲(chǔ)段首地址、輸出段首地址;
分組地址存儲(chǔ)段用于根據(jù)存儲(chǔ)段首地址、按照分組序列號(hào)順序存儲(chǔ)分組 在分組存儲(chǔ)器的緩存地址,根據(jù)輸出段首地址,按照存儲(chǔ)順序向分組存儲(chǔ)器提 供緩存地址;輸出仲裁機(jī)用于根據(jù)預(yù)定仲裁機(jī)制對(duì)各分組流的輸出進(jìn)行輸出仲裁,并 根據(jù)仲裁結(jié)果通知相應(yīng)分組流的分組存儲(chǔ)器。 所述重排序模塊還包括段存儲(chǔ)地址管理池用于回收空閑的分組地址存儲(chǔ)段的段首地址,并向段 控制器提供空閑的段首地址。分組地址存儲(chǔ)段中還存儲(chǔ)有緩存地址對(duì)應(yīng)的分組的分組傳輸路徑信息, 且異??刂颇K包括最后值存儲(chǔ)模塊用于存儲(chǔ)到當(dāng)前時(shí)刻為止、分組流的各傳輸路徑最后達(dá) 到輸出端的分組的序列號(hào),即最后序列號(hào);分組丟失判斷器根據(jù)分組地址存儲(chǔ)段中存儲(chǔ)的傳輸路徑信息判斷分組地 址存儲(chǔ)段中空缺的緩存地址對(duì)應(yīng)的分組的序列號(hào)是否大于最后值存儲(chǔ)模塊中 存儲(chǔ)的該分組傳輸路徑對(duì)應(yīng)的最后序列號(hào),在判斷出大于所述最后序列號(hào)時(shí), 確定該空缺的緩存地址對(duì)應(yīng)的分組傳輸丟失,進(jìn)行丟失處理;在判斷出不大于 所述最后序列號(hào)時(shí),確定該空缺的緩存地址對(duì)應(yīng)的分組傳輸擁塞,進(jìn)行擁塞處 理。分組地址存儲(chǔ)段中的一個(gè)存儲(chǔ)單元包括分組的緩存地址、分組的傳輸路 徑信息、用來(lái)標(biāo)志分組是否到達(dá)輸出端的標(biāo)志位1、用來(lái)標(biāo)志分組的傳輸路徑 信息是否有效的標(biāo)志位2;分組丟失判斷器在確定標(biāo)志位l無(wú)效、且標(biāo)志位2有效時(shí),判斷分組地址存 儲(chǔ)段中空缺的緩存地址對(duì)應(yīng)的分組的序列號(hào)是否大于最后值存儲(chǔ)模塊中存儲(chǔ) 的該分組傳輸路徑對(duì)應(yīng)的最后序列號(hào)。通過(guò)上述技術(shù)方案的描述可知,本發(fā)明的輸入端在將分組輸入至交換網(wǎng)絡(luò) 時(shí),通過(guò)將該分組流中其他分組的傳輸信息如傳輸路徑信息等通過(guò)交換網(wǎng)絡(luò)傳 輸至輸出端,使輸出端能夠迅速、準(zhǔn)確的確定出分組在交換網(wǎng)絡(luò)中傳輸異常的 情況,如分組傳輸擁塞、分組傳輸丟失等,這樣,輸出端就能夠在分組傳輸異 常時(shí),確定出針對(duì)傳輸異常分組所采取的輸出處理,如在預(yù)定時(shí)間間隔等待傳
輸擁塞的分組,再如不等待丟失的分組,直接輸出下一個(gè)分組等,使本發(fā)明提供的技術(shù)方案能夠很好的適用于大容量分組交換網(wǎng)絡(luò);本發(fā)明除了使輸出端能 夠迅速得知具體的分組傳輸異?,F(xiàn)象、使輸出端能夠?qū)鬏敭惓5姆纸M執(zhí)行明 確的輸出處理外,還避免了在分組重排序過(guò)程中因分組丟失而產(chǎn)生的不必要的 等待時(shí)間,從而節(jié)約了分組重排序的時(shí)間;本發(fā)明通過(guò)在輸出端根據(jù)分組序列 號(hào)順序存儲(chǔ)分組的緩存地址,使分組的存儲(chǔ)與分組的排序操作相互獨(dú)立,這樣, 不同分組流中的所有分組均可以存儲(chǔ)在同一個(gè)分組存儲(chǔ)器中,提高了輸出端分 組存儲(chǔ)器的存儲(chǔ)空間利用率;通過(guò)動(dòng)態(tài)分配存儲(chǔ)分組緩存地址的存儲(chǔ)空間,有 效防止了應(yīng)分配的分組緩存地址存儲(chǔ)隊(duì)列過(guò)短而造成分組緩存地址溢出的現(xiàn) 象,并有效防止了應(yīng)分配的分組緩存地址存儲(chǔ)隊(duì)列過(guò)長(zhǎng)而造成的緩存空間浪費(fèi) 的現(xiàn)象;節(jié)約丫輸出端的存儲(chǔ)空間;從而通過(guò)本發(fā)明提供的技術(shù)方案實(shí)現(xiàn)了提 供分組重排序效率、提高分組重排序的容錯(cuò)性能、完善包括大容量分組交換網(wǎng) 絡(luò)在內(nèi)的各種交換網(wǎng)絡(luò)的分組重排序方法的目的。
圖1是分組重排序技術(shù)示意圖;圖2是分組重排序系統(tǒng)示意圖;圖3是現(xiàn)有技術(shù)的重排序方法一實(shí)現(xiàn)原理示意圖;圖4是現(xiàn)有技術(shù)的重排序方法二實(shí)現(xiàn)原理示意圖;圖5是現(xiàn)有技術(shù)的重排序方法三實(shí)現(xiàn)原理示意圖;圖6是現(xiàn)有技術(shù)的大容量交換網(wǎng)絡(luò)的基本結(jié)構(gòu)示意圖;圖7是分組流傳輸路徑示意圖;圖8是本發(fā)明實(shí)施例的分組重排序系統(tǒng)示意圖圖9是本發(fā)明實(shí)施例的分組信息生成器的工作流程示意圖;圖IO是本發(fā)明實(shí)施例的分組重排序方法示意圖一 ;圖ll是本發(fā)明實(shí)施例的分組重排序方法示意圖二;圖12是本發(fā)明實(shí)施例的重排序機(jī)對(duì)傳輸路徑信息的處理方法示意圖;圖13是本發(fā)明實(shí)施例的分組存儲(chǔ)流程圖;圖14是本發(fā)明實(shí)施例的分組輸出流程圖;圖15是本發(fā)明實(shí)施例的分組重排序機(jī)的示意圖。
具體實(shí)施方式
大容量交換網(wǎng)絡(luò)具有分組流量大,輸入輸出速度快,且負(fù)載變化大等特點(diǎn), 大容量交換網(wǎng)絡(luò)的這些特點(diǎn)使得在交換網(wǎng)絡(luò)中傳輸?shù)姆纸M的傳輸時(shí)延變化很 大、且無(wú)法估計(jì)。因此,分組擁塞及分組丟失等分組傳輸異常情況對(duì)大容量交 換網(wǎng)絡(luò)中的分組重排序的影響很大。當(dāng)然,分組傳輸異常情況對(duì)于由單一交換 單元構(gòu)成的交換網(wǎng)絡(luò)中的分組重排序也同樣有影響。如果在分組重排序過(guò)程 中,交換網(wǎng)絡(luò)的輸出端能夠快速、準(zhǔn)確的檢測(cè)出分組流在交換網(wǎng)絡(luò)中的傳輸情 況,就能夠在包括大容量交換網(wǎng)絡(luò)在內(nèi)的各種交換網(wǎng)絡(luò)中快速而正確的進(jìn)行分 組重排序處理,從而有效避免分組擁塞及分組丟失對(duì)分組重排序的影響,減少 分組重排序的等待時(shí)間、提高輸出端存儲(chǔ)空間的利用率,并增強(qiáng)分組重排序技 術(shù)方案在包括大容量交換網(wǎng)絡(luò)在內(nèi)的各種交換網(wǎng)絡(luò)中的容錯(cuò)性能。交換網(wǎng)絡(luò)的交換單元所采用的各種交換結(jié)構(gòu)中,有些結(jié)構(gòu)具有保序性,能 保證分組流的順序輸出,也就是說(shuō),交換網(wǎng)絡(luò)輸出端輸出的分組流順序與輸入 交換網(wǎng)絡(luò)的分組流的順序相同。在由多個(gè)保序交換單元構(gòu)成的大容量交換網(wǎng)絡(luò)中,每個(gè)分組流都可以認(rèn)為 是沿著若干條固定的路徑從輸入端流向輸出端。這些所謂的"路徑",并不是 指分組流在交換網(wǎng)絡(luò)中所經(jīng)過(guò)的真實(shí)路線,而是一個(gè)邏輯上的概念,是指分組 經(jīng)過(guò)的交換單元。由于每個(gè)交換單元都是保序的,故可以把分組經(jīng)過(guò)-個(gè)交換 單元到達(dá)輸出端的過(guò)程看作分組經(jīng)過(guò)一條"路徑"到達(dá)輸出端。在重排序機(jī)屮, 具有相同路徑信息的分組來(lái)自同一保序交換單元。具體來(lái)說(shuō),對(duì)于一個(gè)分組流 而言,認(rèn)為經(jīng)過(guò)同一個(gè)交換單元流入輸出端口的所有分組,都是沿著同一條路徑傳輸?shù)?,如附圖7中, 一個(gè)分組流中的不同分組可以沿著粗黑實(shí)線標(biāo)識(shí)的不 同傳輸路徑傳輸至交換網(wǎng)絡(luò)的輸出端。路徑是從屬于分組流的,分組在路徑中傳輸都具有如下四個(gè)特點(diǎn)1、 在一條路徑上傳輸?shù)乃蟹纸M都來(lái)自同一分組流。2、 在一條路徑上傳輸?shù)乃蟹纸M都是按其進(jìn)入該路徑的先后順序進(jìn)行傳 輸?shù)模淮嬖趤y序情況。3、 如果路徑上的某個(gè)分組X被阻塞了而無(wú)法傳輸,則在分組X之后進(jìn)入 該路徑的所有分組均被阻塞了 。 4、在同一條路徑上傳輸?shù)姆纸MX與分組Y,分組X先于分組Y進(jìn)入該路徑, 若分組Y到達(dá)了輸出端口時(shí),分組X仍未到達(dá),則表明分組X在傳輸?shù)倪^(guò)程中 被丟失了。本發(fā)明充分利用分組在路徑中傳輸?shù)奶攸c(diǎn),在交換網(wǎng)絡(luò)的輸入端傳輸分組 流中的分組時(shí),將該分組和該分組流中其他分組的傳輸信息如分組傳輸路徑信 息輸入至交換網(wǎng)絡(luò),使輸出端能夠通過(guò)其他分組的傳輸信息準(zhǔn)確的判斷出某個(gè) 未到達(dá)的分組的傳輸情況。下面以分組傳輸路徑信息為例對(duì)本發(fā)明提供的技術(shù)方案進(jìn)行說(shuō)明。 輸入端在將某個(gè)分組和其他分組的傳輸路徑信息輸入至交換網(wǎng)絡(luò)時(shí),可以 將其他分組的傳輸路徑信息攜帶于某個(gè)分組中輸入至交換網(wǎng)絡(luò),也就是說(shuō),分 組和分組流中其他分組的傳輸路徑信息一起輸入至交換網(wǎng)絡(luò)。當(dāng)然,本發(fā)明也 可以采用其他方法將其他分組的傳輸路徑信息輸入至交換網(wǎng)絡(luò),如將分組及拔-他分組的傳輸路徑信息先后輸入至交換網(wǎng)絡(luò)等。這里的傳輸路徑信息可以為路在上述描述中,其他分組為先于某分組輸入交換網(wǎng)絡(luò)的分組,如當(dāng)輸入 端將分組5輸入交換網(wǎng)絡(luò)時(shí),輸入端將先于分組5輸入交換網(wǎng)絡(luò)的分組的傳輸 路徑信息和分組5—起輸入至交換網(wǎng)絡(luò)。當(dāng)然,其他分組也可以為其他形式, 如后于某分組輸入交換網(wǎng)絡(luò)的分組等。這里的其他分組的數(shù)量可以根據(jù)實(shí)際的 網(wǎng)絡(luò)情況來(lái)設(shè)置,如其他分組可以為l個(gè),也可以為2個(gè)以上的多個(gè)。這里的 其他分組可以是與上述某分組具有相同傳輸路徑的分組,也可以是與上述某分 組具有不同傳輸路徑的分組。在交換網(wǎng)絡(luò)的輸入端將其他分組的路徑傳輸信息輸入至交換網(wǎng)絡(luò)后,交換 網(wǎng)絡(luò)的輸出端就可以根據(jù)其接收到的分組及分組攜帶的其他分組的路徑傳輸 信息來(lái)檢測(cè)分組流中的分組在路徑中的傳輸狀況,從而使輸出端能夠判斷出是 否存在分組傳輸丟失或分組傳輸擁塞等分組傳輸異常情況。為了使輸出端能夠迅速判斷出是否存在分組傳輸丟失或分組傳輸擁塞等 分組傳輸異常情況,本發(fā)明的輸入端還可以在將分組輸入交換網(wǎng)絡(luò)時(shí),將該分 組的傳輸路徑信息輸入至交換網(wǎng)絡(luò)中。輸入端可以將該分組的傳輸路徑信息攜 帶于該分組中輸入至交換網(wǎng)絡(luò),同樣,輸入端也可以采用其他方法將該分組的 傳輸路徑信息輸入至交換網(wǎng)絡(luò)。 在輸出端確定出分組傳輸異常后,輸出端就能夠針對(duì)不同的分組傳輸異常 情況采用不同分組輸出策略,如在確定分組傳輸擁塞時(shí),在預(yù)定時(shí)間間隔內(nèi)等 待傳輸擁塞的分組,再如在確定分組傳輸丟失時(shí),不再等待該分組,繼續(xù)后續(xù) 分組的輸出處理,從而減少了輸出分組流時(shí)不必要的等待時(shí)間,提高丫分組重 排序效率。下面結(jié)合附圖8對(duì)本發(fā)明的分組重排序系統(tǒng)和方法進(jìn)行詳細(xì)說(shuō)明。圖8中,分組重排序系統(tǒng)主要由位于輸入端的分組信息生成器與位于輸出端的分組重排序機(jī)兩部分構(gòu)成。分組信息生成器的主要作用是為分組流中的每個(gè)分組添加分組所要攜帶的分組信息,這里的分組信息包括分組序列號(hào)如時(shí)間戳、源端口號(hào)、傳輸信息如傳輸路徑信息等。這里的分組信息生成器完全不同于現(xiàn)有技術(shù)中的序列號(hào)生成器。由于多個(gè)分組流可能會(huì)從同一個(gè)輸入端口流入交換網(wǎng)絡(luò),因此,在分組信 息生成器中,可以為每個(gè)分組流均建立一個(gè)分組信息存儲(chǔ)器,以存儲(chǔ)將要添加 到該分組流的分組中的分組信息。分組信息存儲(chǔ)器中存儲(chǔ)的分組信息需要根據(jù) 分組的具體傳輸情況變化,也就是說(shuō),當(dāng)分組信息存儲(chǔ)器中存儲(chǔ)有3個(gè)分組的 傳輸路徑信息時(shí),輸入端每發(fā)送一個(gè)分組,則分組信息存儲(chǔ)器中的--個(gè)分組傳 輸路徑信息需要變化為輸入端剛剛發(fā)送的分組的傳輸路徑信息。當(dāng)一個(gè)分組進(jìn)入分組信息生成器后,分組信息生成器提取出該分組的目的 地址,即目的端口,并根據(jù)該分組的目的地址確定出這個(gè)分組歸屬的分組流。 然后,分組信息生成器從上述歸屬的分組流對(duì)應(yīng)的信息存儲(chǔ)器中取出分組信 息,添加到這個(gè)分組中,并把這個(gè)分組送入交換網(wǎng)絡(luò),同時(shí),分組信息生成器 更新上述歸屬的分組流對(duì)應(yīng)的信息存儲(chǔ)器中存儲(chǔ)的分組信息。下面以一個(gè)具體的例子、結(jié)合附圖9對(duì)分組信息生成器的工作流程進(jìn)行詳 細(xì)描述。圖9中,在一個(gè)MXN的交換網(wǎng)絡(luò)中,設(shè)定分組流自交換網(wǎng)絡(luò)的輸入端口2 流入交換網(wǎng)絡(luò),設(shè)定輸入端目的端口 1對(duì)于分組存儲(chǔ)器1。當(dāng)分組流中的分組13到達(dá)分組信息生成器后,分組13首先被送入分組緩 沖器。在分組緩沖器中,分組13的目的地址即目的端口 1被提取出來(lái)。分組 信息生成器根據(jù)這個(gè)目的地址即目的端口 1,將分組存儲(chǔ)器1中存儲(chǔ)的分組信
息添加到分組13中,這里的分組信息包括分組序列號(hào)13、分組源端口 2、 分組9的路徑3、分組10的路徑1、分組11的路徑2,分組12的路徑3。然 后,分組信息生成器將分組13通過(guò)輸入端口 2送入交換網(wǎng)絡(luò)。重排序機(jī)在交換網(wǎng)絡(luò)的輸出端對(duì)分組流進(jìn)行分組重排序,本發(fā)明的重排序 機(jī)采用分組存儲(chǔ)、分組重排序操作相互獨(dú)立的方法來(lái)實(shí)現(xiàn)分組重排序及輸出。 也就是說(shuō),重排序機(jī)在接收到分組時(shí),首先緩存該分組,然后,存儲(chǔ)該分組的 緩存地址。在存儲(chǔ)分組的緩存地址時(shí),應(yīng)按照分組序列號(hào)來(lái)確定出分組的緩存 地址存儲(chǔ)的位置,即分組的緩存地址應(yīng)按照分組序列號(hào)的連續(xù)順序連續(xù)存儲(chǔ), 如按照分組序列號(hào)從小到大的連續(xù)順序連續(xù)存儲(chǔ),具體的說(shuō),序列號(hào)為1的分 組1、序列號(hào)為2的分組2、序列號(hào)為3分組3的三個(gè)分組的緩存地址應(yīng)按照 分組1、分組2、分組3的順序連續(xù)存儲(chǔ)。重排序機(jī)可以采用靜態(tài)分配、動(dòng)態(tài)分配等方式為分組的緩存地址分配存儲(chǔ) 空間。當(dāng)重排序機(jī)采用動(dòng)態(tài)分配緩存地址存儲(chǔ)空間時(shí),重排序機(jī)可以分段為分 組的緩存地址分配存儲(chǔ)空間,也就是說(shuō),分組的緩存地址存儲(chǔ)在若千段分組地 址存儲(chǔ)段中。這樣,重排序機(jī)可以為其緩存的分組逐段分配分組地址存儲(chǔ)段, 從而實(shí)現(xiàn)動(dòng)態(tài)分配分組的緩存地址存儲(chǔ)空間。下面對(duì)重排序機(jī)動(dòng)態(tài)分配分組的緩存地址存儲(chǔ)空間的方法進(jìn)行詳細(xì)說(shuō)明。交換網(wǎng)絡(luò)輸出端的重排序機(jī)將其接收的各個(gè)分組流的所有分組全部緩存 在一個(gè)分組存儲(chǔ)器中,然后,重排序機(jī)為每個(gè)分組流均動(dòng)態(tài)建立若干段分組地 址存儲(chǔ)段,每段有N個(gè)存儲(chǔ)單元,其中,N為序列號(hào)的最大值加l,如分組的 序列號(hào)為6位,則N為64。重排序機(jī)將存儲(chǔ)在分組存儲(chǔ)器中的屬于同一分組流 的所有分組的緩存地址分開存儲(chǔ),也就是說(shuō),重排序機(jī)根據(jù)分組的源地址信息 確定該分組所屬的分組流,然后,將該分組存儲(chǔ)在其所屬分組流的分組地址存 儲(chǔ)段中。在存儲(chǔ)分組緩存地址時(shí),重排序機(jī)應(yīng)根據(jù)分組的序列號(hào)順序來(lái)存儲(chǔ), 即分組序列號(hào)m的緩存地址應(yīng)存儲(chǔ)到屬于該分組流的分組地址存儲(chǔ)段的第m個(gè) 存儲(chǔ)單元中,從而完成了分組m的重排序過(guò)程。由于每個(gè)分組地址存儲(chǔ)段都有段首地址,因此,可以根據(jù)存儲(chǔ)段的段首地 址將屬于每個(gè)分組流的所有分組地址存儲(chǔ)段連接起來(lái),從而構(gòu)成一個(gè)完整的、 已排好序的分組流隊(duì)列。重排序機(jī)在輸出分組流中的分組時(shí),應(yīng)將分組地址存 儲(chǔ)段中存儲(chǔ)的緩存地址按其位置編號(hào)從小到大逐一輸出,然后,重排序機(jī)再根 據(jù)輸出的緩存地址取出緩存在分組存儲(chǔ)器中的分組,重排序機(jī)按照上述方法將 分組---輸出,從而完成分組流的所有分組的重排序過(guò)程。下面以一個(gè)具體的例子、結(jié)合附圖10對(duì)本發(fā)明的分組重排序方法進(jìn)行詳細(xì)說(shuō)明。圖10中,在交換網(wǎng)絡(luò)的輸出端口 0,當(dāng)分組流1的分組2到達(dá)重排序機(jī)后, 分組2被緩存在分組存儲(chǔ)器中。而分組2在分組存儲(chǔ)器中的緩存地址則被存儲(chǔ) 在分組流1的分組地址存儲(chǔ)段的2號(hào)存儲(chǔ)單元中。在重排序機(jī)輸出分組流1的 分組時(shí),從分組流l的分組地址存儲(chǔ)段中,按照存儲(chǔ)位置從0到N的順序,逐 一將存儲(chǔ)的分組緩存地址取出,并送到分組存儲(chǔ)器中。分組存儲(chǔ)器根據(jù)其接收 到的分組緩存地址將其存儲(chǔ)的分組0到分組N逐一輸出,形成重新排好序的分 組流,從而完成分組流1的重排序操作。在上述描述中,本發(fā)明的重排序機(jī)為每個(gè)分組流動(dòng)態(tài)分配分組地址存儲(chǔ)段 是指重排序機(jī)并不是為每個(gè)分組流預(yù)先分配一個(gè)長(zhǎng)度固定、且很長(zhǎng)的分組地 址存儲(chǔ)段來(lái)存儲(chǔ)分組流中的分組地址。而是,在開始為分組流分配分組地址存 儲(chǔ)段時(shí),只為每個(gè)分組流分配一小段緩存地址存儲(chǔ)段,當(dāng)己分配的緩存地址存 儲(chǔ)段由于存滿分組緩存地址,而不夠用或者即將不夠用時(shí),重排序機(jī)再為該分 組流分配另 一小段分組地址存儲(chǔ)段。由于重排序機(jī)采用動(dòng)態(tài)分配分組地址存儲(chǔ)段的方法,所以,本發(fā)明有效防 止了某個(gè)分組流過(guò)小卻占用較大的緩存空間的現(xiàn)象,節(jié)約了存儲(chǔ)資源;同時(shí), 本發(fā)明還可以減小分組流中最大分組序列號(hào)的大小。在上述重排序機(jī)輸出重排序后的分組的過(guò)程中,重排序機(jī)可以利用每個(gè)分 組中攜帶的其他分組的傳輸路徑信息來(lái)分析每條傳輸路徑中分組的傳輸情況。 也就是說(shuō),當(dāng)重排序機(jī)在輸出分組流過(guò)程中,因某個(gè)分組未到達(dá)而中斷輸出時(shí), 重排序機(jī)可以根據(jù)未到達(dá)的分組后面的其它分組所攜帶的傳輸路徑信息判斷 出未到達(dá)的分組應(yīng)該從哪條傳輸路徑傳輸。這里,未到達(dá)的分組后面的分組是 指分組序列號(hào)大于未到達(dá)分組序列號(hào)的分組。重排序機(jī)在確定了未到達(dá)的分組 對(duì)應(yīng)的傳輸路徑后,如果重排序機(jī)確定其接收到的排在該分組之后的其它分組 中,存在與該分組屬于同一傳輸路徑的分組,則說(shuō)明這個(gè)未到達(dá)的分組已經(jīng)傳 輸丟失了,重排序機(jī)應(yīng)針對(duì)該未到達(dá)的分組采取相應(yīng)的輸出處理,如不再等待 該分組,立刻輸出下一個(gè)分組;如果重排序機(jī)確定其接收的排在該分組之后的 其它分組中,不存在與該分組屬于同一條傳輸路徑的分組,則說(shuō)明這個(gè)未到達(dá) 分組的傳輸路徑可能被阻塞了 ,重排序機(jī)應(yīng)針對(duì)該未到達(dá)的分組采取相應(yīng)的輸 出處理,如停止輸出該分組流隊(duì)列,并在預(yù)定時(shí)間間隔內(nèi)等待該分組。如果在 預(yù)定時(shí)間間隔內(nèi),重排序機(jī)沒(méi)有接收到通過(guò)該傳輸路徑傳輸來(lái)的任何分組,即 沒(méi)有任何分組通過(guò)該擁塞的傳輸路徑到達(dá)重排序機(jī),則重排序機(jī)可以不再等待,直接輸出下一個(gè)分組;如果在預(yù)定時(shí)間間隔內(nèi),重排序機(jī)接收到通過(guò)該傳 輸路徑傳輸來(lái)的分組,即在預(yù)定時(shí)間間隔內(nèi)有分組通過(guò)該擁塞的傳輸路徑到達(dá) 重排序機(jī),則重排序機(jī)判斷新接收到的分組是不是其正在等待的分組,如果接 收到的分組是其正在等待的分組,則輸出該分組;如果接收到的分組不是其正 在等待的分組,則說(shuō)明其等待的分組已經(jīng)丟失,重排序機(jī)將這個(gè)剛接收到的分 組采用上述方法進(jìn)行緩存并重排序,同時(shí),直接輸出下一個(gè)分組。下面以一個(gè)具體的分組流傳輸為例、結(jié)合附圖11對(duì)本發(fā)明提供的分組重 排序方法進(jìn)行詳細(xì)說(shuō)明。在圖11中,分組流中分組0至分組5分別通過(guò)3條傳輸路徑從輸入端流 向輸出端,其中,分組0和分組2通過(guò)路徑1傳輸,分組1和分組3通過(guò)路徑 2傳輸,分組4和分組5通過(guò)路徑3傳輸。在每條傳輸路徑中,各分組均按照 進(jìn)入該傳輸路徑的先后順序傳輸,也就是說(shuō),在傳輸路徑l中,分組()到達(dá)輸 出端之后,分組2才會(huì)到達(dá)輸出端,在傳輸路徑2中,分組1到達(dá)輸出端之后, 分組3才會(huì)到達(dá)輸出端,在傳輸路徑3中,分組4到達(dá)輸出端之后,分組5才 會(huì)到達(dá)輸出端。 一旦某個(gè)分組在某個(gè)路徑中被阻塞了,則在該分組之后進(jìn)入該 路徑的分組均會(huì)被阻塞,也就是說(shuō),如果分組O被阻塞了,則分組2也同樣被 阻塞了;同理,如果分組l被阻塞了,則分組3也同樣被阻塞了;如果分組4 被阻塞了,則分組5也同樣被阻塞了。 一旦某個(gè)分組通過(guò)某條傳輸路徑達(dá)到了 輸出端,而在同一傳輸路徑中先于該分組進(jìn)入交換網(wǎng)絡(luò)的分組還沒(méi)有達(dá)到輸出 端,則說(shuō)明先進(jìn)入交換網(wǎng)絡(luò)的那個(gè)分組丟失了,也就是說(shuō),如果分組2達(dá)到了 輸出端、而分組O沒(méi)有達(dá)到輸出端,則說(shuō)明分組O丟失了;同理,如果分組3 達(dá)到了輸出端,而分組l沒(méi)有達(dá)到輸出端,則說(shuō)明分組3丟失了;如果分組5 達(dá)到了輸出端,而分組4沒(méi)有達(dá)到輸出端,則說(shuō)明分組5丟失了。本發(fā)明的輸出端用以下方法處理分組攜帶的路徑信息在重排序機(jī)中,為 每個(gè)分組流都分配一個(gè)最后值存儲(chǔ)模塊,最后值存儲(chǔ)模塊中存儲(chǔ)有該分組流的每條傳輸路徑中最后到達(dá)重排序機(jī)的分組的序列號(hào),最后值存儲(chǔ)模塊中存儲(chǔ)的 相應(yīng)序列號(hào)會(huì)在下一個(gè)分組到達(dá)接收端后更新。最后值存儲(chǔ)模塊可以為多個(gè)最 后值存儲(chǔ)器,即每個(gè)最后值存儲(chǔ)器均對(duì)應(yīng)一個(gè)分組流中的一條傳輸路徑,如交換網(wǎng)絡(luò)中有N個(gè)輸出端口, M個(gè)并行交換單元,則針對(duì)該分組流,交換網(wǎng)絡(luò)的 一個(gè)接收端中需要有NXM個(gè)最后值存儲(chǔ)器,且相應(yīng)最后值存儲(chǔ)器中存儲(chǔ)的分 組序列號(hào)會(huì)在下一個(gè)分組到達(dá)后更新。由于分組流不斷的通過(guò)傳輸路徑流入重排序機(jī),所以,最后值存儲(chǔ)器中存 儲(chǔ)的分組序列號(hào)也在不斷的更新。當(dāng)--'個(gè)分組進(jìn)入重排序機(jī)后,該分組攜帶的 傳輸路徑信息被存入分組地址存儲(chǔ)段中,也就是說(shuō),分組地址存儲(chǔ)段中存儲(chǔ)有 分組的緩存地址和該分組攜帶的傳輸路徑信息。這里的傳輸路徑信息可以為-該分組的傳輸路徑信息和在該分組前面進(jìn)入交換網(wǎng)絡(luò)的幾個(gè)分組的傳輸路徑 信息。分組的傳輸路徑信息如分組所走的傳輸路徑的編號(hào)。該分組的序列號(hào)則 被存入路徑信息存儲(chǔ)器的對(duì)應(yīng)單元中。這樣,在重排序機(jī)輸出分組流的過(guò)程中,如果出現(xiàn)某個(gè)分組未到達(dá)的情況, 則重排序機(jī)在其它分組攜帶的傳輸路徑信息中能夠査找到未到達(dá)的分組的傳 輸路徑信息,這樣,重排序機(jī)根據(jù)該分組的傳輸路徑信息能夠知道該分組的傳 輸路徑,即能夠知道該分組應(yīng)該通過(guò)哪條傳輸路徑到達(dá)輸出端。然后,重排序 機(jī)再將該分組的序列號(hào)與存儲(chǔ)在路徑信息存儲(chǔ)器中的最后一個(gè)到達(dá)重排序機(jī) 的該傳輸路徑的分組序列號(hào)進(jìn)行比較,如果未到達(dá)的分組的序列號(hào)大于路徑信 息存儲(chǔ)器中存儲(chǔ)的序列號(hào),則說(shuō)明該分組可能被阻塞在交換網(wǎng)絡(luò)中了,重排序 機(jī)應(yīng)停止該分組流的輸出,并在預(yù)定時(shí)間間隔內(nèi)等待這個(gè)未到達(dá)的分組;如果 未到達(dá)的分組的序列號(hào)小于路徑信息存儲(chǔ)器中存儲(chǔ)的序列號(hào),則說(shuō)明該分組丟 失了,重排序機(jī)不應(yīng)該等待這個(gè)未到達(dá)的分組,應(yīng)該繼續(xù)輸出給該分組流中的 其它分組。下面以--個(gè)具體的分組流傳輸為例、結(jié)合附圖12對(duì)本發(fā)明的輸出端處理 分組攜帶的路徑信息進(jìn)行說(shuō)明。在圖.12中,分組地址存儲(chǔ)段中一個(gè)存儲(chǔ)單元由分組緩存地址存儲(chǔ)器、分 組路徑存儲(chǔ)器、標(biāo)志位1和標(biāo)志位2這4個(gè)部分構(gòu)成。分組緩存地址存儲(chǔ)器存儲(chǔ)分組在分組存儲(chǔ)器中的緩存地址。路徑信息存儲(chǔ) 器存儲(chǔ)分組的傳輸路徑信息如路徑編號(hào)。標(biāo)志位1用來(lái)表示分組是否到達(dá),如
標(biāo)志位為1時(shí),表示分組到達(dá);標(biāo)志位2用來(lái)表示分組的傳輸路徑信息是否有 效,即表示重排序機(jī)是否已經(jīng)知道了分組的傳輸路徑信息,當(dāng)標(biāo)志位2為1時(shí), 表示重排序機(jī)已經(jīng)知道了該分組的路徑信息,即存儲(chǔ)在分組地址存儲(chǔ)段中的分 組路徑信息是有效的。重排序機(jī)獲取分組路徑信息的方式有兩種 一是當(dāng)分組 到達(dá)輸出端后,分組所攜帶的傳輸路徑信息即被重排序機(jī)獲知;二是分組尚未 到達(dá)重排序機(jī),但攜帶有該分組傳輸路徑信息的其它分組到達(dá)了重排序機(jī),則 該分組的路徑也被重排序機(jī)獲知。例如分組5攜帶有分組2,分組3,分組4 及分組5的傳輸路徑信息,所以, 一旦分組5到達(dá)輸出端,則重排序機(jī)就獲知 了分組2、 3、 4、 5的傳輸路徑信息,盡管有些分組可能尚未到達(dá)接收端。 當(dāng)分組流1中的分組13到達(dá)重排序機(jī)時(shí),分組13中攜帶了分組10、分組11、 分組12以及它自身即分組13的傳輸路徑信息。分組10、分組11、分組12、 分組13的傳輸路徑信息被送往分組地址存儲(chǔ)段中存儲(chǔ),且分組10、分組 11、分組12、分組i3分別存儲(chǔ)于分組緩存地址存儲(chǔ)器的第10個(gè)、第11個(gè)、 第12個(gè)、第13個(gè)存儲(chǔ)單元中,上述4的存儲(chǔ)單元的標(biāo)志位1、標(biāo)忐位2的值 均為有效,如標(biāo)志位1、標(biāo)志位2的值均設(shè)置為1。這樣,重排序機(jī)在輸出分 組時(shí),就可以從分組地址存儲(chǔ)段中取出該分組的傳輸路徑信息,從而重排序機(jī) 能夠知道該分組是來(lái)自哪條路徑,即來(lái)自哪個(gè)交換單元。由于分組13來(lái)自傳輸路徑3,故分組13的序列號(hào)即13被送入路徑信息存 儲(chǔ)器中分組流1的路徑3的存儲(chǔ)單元中。重排序機(jī)在輸出分組流過(guò)程中,如果在輸出到分組10時(shí),發(fā)現(xiàn)分組10未 到達(dá),此時(shí),可以根據(jù)分組13攜帶的傳輸路徑信息判斷出分組10應(yīng)該來(lái)自傳 輸路徑3。重排序機(jī)從路徑信息存儲(chǔ)器中取出分組流1的傳輸路徑3對(duì)應(yīng)存儲(chǔ) 的分組序列號(hào)13,并發(fā)現(xiàn)該序列號(hào)13大于未到達(dá)的分組的序列號(hào)10,說(shuō)明此 時(shí)分組13已到達(dá)了重排序機(jī),從而確定分組10已經(jīng)傳輸丟失了。在這種情況 下,重排序機(jī)不再等待分組10,直接輸出分組ll。下面結(jié)合附圖13、 14對(duì)本發(fā)明的分組重排序方法進(jìn)行詳細(xì)說(shuō)明。 本發(fā)明分組重排序過(guò)程中分組存儲(chǔ)的流程如附圖13所示。 圖13中,在步驟IOO,分組通過(guò)其傳輸路徑進(jìn)入重排序機(jī)。 到步驟110,重排序機(jī)將該分組攜帶的源地址信息、序列號(hào)和傳輸路徑信 息從該分組中提取出來(lái)。
到步驟120,重排序機(jī)根據(jù)該分組的傳輸路徑信息存儲(chǔ)該分組的序列號(hào), 該分組的序列號(hào)作為該分組的傳輸路徑對(duì)應(yīng)的最后序列號(hào)存儲(chǔ),分組流的各傳 輸路徑均對(duì)應(yīng)一個(gè)最后序列號(hào),最后序列號(hào)即到當(dāng)前時(shí)間為止、分組流的各傳 輸路徑中最后傳輸?shù)姆纸M的分組序列號(hào)b到步驟130,重排序機(jī)根據(jù)該分組的源地址信息確定該分組所屬的分組流, 并判斷該分組所屬的分組流是否有對(duì)應(yīng)的分組流隊(duì)列,如果沒(méi)有,則到步驟 140,重排序機(jī)為該分組流分配一個(gè)新的分組流隊(duì)列,到步驟150。在步驟130,如果該分組所屬的分組流有對(duì)應(yīng)的分組流隊(duì)列,到步驟1:U, 重排序機(jī)根據(jù)分組序列號(hào)中的段首地址判斷該分組是否過(guò)時(shí),也就是說(shuō),重排 序機(jī)將分組的序列號(hào)與該分組流正在輸出的分組的序列號(hào)相減,如果差值的絕 對(duì)值過(guò)大,則說(shuō)明該分組在網(wǎng)絡(luò)中被阻塞的時(shí)間過(guò)長(zhǎng),該分組已經(jīng)過(guò)吋,到歩 驟132,重排序機(jī)不對(duì)該分組進(jìn)行重排序處理,直接將該分組丟棄或者發(fā)送, 然后,到步驟110;否則,說(shuō)明該分組沒(méi)有過(guò)時(shí),重排序機(jī)應(yīng)該對(duì)該分組進(jìn)行 重排序處理,到步驟150。段偏移k址,并根據(jù)段首地址和段偏i地址存儲(chǔ)該分組緩存地二和該分組攜帶 的傳輸路徑信息。到步驟160,重排序機(jī)存儲(chǔ)該分組。上述步驟150和步驟160可以同時(shí)進(jìn) 行,即對(duì)分組的存儲(chǔ)和對(duì)分組緩存地址及分組傳輸路徑信息的存儲(chǔ)過(guò)程可以同 時(shí)進(jìn)行。到步驟170,重排序機(jī)判斷是否開始輸出該分組流,如果需要輸出該分組 流,到步驟170,開始輸出處理過(guò)程。也就是說(shuō),重排序機(jī)判斷該分組流的第 一個(gè)分組是否已經(jīng)到達(dá),如果第一個(gè)分組已經(jīng)到達(dá),則開始輸出處理過(guò)程。當(dāng) 然,重排序機(jī)也可以采用其他方法來(lái)判斷是否開始輸出該分組流,如當(dāng)分組流 中的若干個(gè)分組到達(dá)后才開始輸出處理過(guò)程等。在步驟170,如果不需要輸出,則直接到步驟110,對(duì)下一個(gè)進(jìn)入重排序 機(jī)的分組進(jìn)行上述處理過(guò)程。重排序機(jī)輸出分組流的過(guò)程如附圖14所示。圖14中,在步驟200,重排序機(jī)開始輸出分組流中的分組。到步驟210,重排序機(jī)根據(jù)各存儲(chǔ)段的段首地址確定該分組流隊(duì)列中需要
輸出的分組地址存儲(chǔ)段。到步驟220,重排序機(jī)從上述確定的存儲(chǔ)段中輸出第一個(gè)分組緩存地址。 到步驟230,重排序機(jī)按照第一個(gè)分組緩存地址從緩存分組的存儲(chǔ)器中取 出分組,并輸出。到步驟240,重排序機(jī)判斷該存儲(chǔ)段中存儲(chǔ)的分組緩存地址是否已經(jīng)全部 輸出,如果已經(jīng)全部輸出,到步驟241,重排序機(jī)將該存儲(chǔ)段從該分組流隊(duì)列 中刪除,到步驟210,繼續(xù)在該分組流中査找需要輸出的分組地址存儲(chǔ)段。在步驟240,如果該存儲(chǔ)段中存儲(chǔ)的分組緩存地址沒(méi)有全部輸出,到歩驟 250,重排序機(jī)判斷該存儲(chǔ)段中下一個(gè)存儲(chǔ)單元是否為空,如果不為空,到步 驟280,重排序機(jī)輸出下一個(gè)分組,即重排序機(jī)按照下一個(gè)存儲(chǔ)單元中存儲(chǔ)的 分組緩存地址從緩存分組的存儲(chǔ)器中取出分組,并輸出,到步驟240,重排序 機(jī)繼續(xù)判斷該存儲(chǔ)段中存儲(chǔ)的分組緩存地址是否己經(jīng)全部輸出。在步驟250,如果重排序機(jī)判斷出該存儲(chǔ)段中下一個(gè)存儲(chǔ)單元為空,則到 步驟260,重排序機(jī)判斷該分組是否傳輸丟失,也就是說(shuō),重排序機(jī)判斷該分 組的序列號(hào)是否小于路徑信息存儲(chǔ)器中存儲(chǔ)的該分組所屬的傳輸路徑對(duì)應(yīng)的 最后序列號(hào),如果小于,則該分組已傳輸丟失,到步驟270,重排序機(jī)跳過(guò)該 分組,進(jìn)行下一個(gè)分組的輸出處理過(guò)程,即到步驟240,重排序機(jī)繼續(xù)判斷該 存儲(chǔ)段中存儲(chǔ)的分組緩存地址是否己經(jīng)全部輸出。在步驟260,如果重排序機(jī)判斷出該分組沒(méi)有傳輸丟失,也就是說(shuō),重排 序機(jī)判斷出該分組的序列號(hào)不小于路徑信息存儲(chǔ)器中存儲(chǔ)的該分組所屬的傳 輸路徑對(duì)應(yīng)的分組序列號(hào),則表示該分組可能輸擁塞,到步驟261,重排序機(jī) 停止輸出該分組流的分組,并開始為預(yù)定時(shí)間間隔計(jì)時(shí),重排序機(jī)在計(jì)時(shí)的同 時(shí),可以為其他分組流進(jìn)行重排序輸出處理。到步驟262,重排序機(jī)判斷在預(yù)定時(shí)間間隔內(nèi)是否接收到其期望的分組, 這里,期望的分組即上述確定出的傳輸擁塞的分組,如果接收到其期望的分組, 到步驟280,重排序機(jī)輸出下一個(gè)分組,即重排序機(jī)輸出其接收到的、期望的 分組。在步驟262,如果重排序機(jī)在預(yù)定時(shí)間間隔內(nèi)沒(méi)有接收到其期望的分組, 到步驟263,重排序機(jī)跳過(guò)該分組,進(jìn)行下一個(gè)分組的輸出處理過(guò)程,即到步 驟240,重排序機(jī)繼續(xù)判斷該存儲(chǔ)段中存儲(chǔ)的分組緩存地址是否已經(jīng)全部輸出。
本發(fā)明提供的分組重排序機(jī)的結(jié)構(gòu)如附圖15所示。在圖15中,分組重排序機(jī)由分組緩沖器、分組存儲(chǔ)器、存儲(chǔ)器地址管理 池、輸出仲裁機(jī)、分組地址存儲(chǔ)段、段控制器和分組丟失判斷器這7個(gè)部分構(gòu) 成。分組緩沖器主要用于緩沖進(jìn)入重排序機(jī)的分組,并從該分組中提取出其攜 帶的源地址信息、序列號(hào)、傳輸路徑信息。上述提取出來(lái)傳輸路徑信息應(yīng)存儲(chǔ) 在分組地址存儲(chǔ)段中,分組序列號(hào)應(yīng)存儲(chǔ)在分組丟失判斷器中,另外分組的序 列號(hào)就等于段偏移量;源地址信息被存儲(chǔ)在分組存儲(chǔ)器中。分組存儲(chǔ)器主要用于根據(jù)存儲(chǔ)器地址管理池提供的指定地址存儲(chǔ)分組,并 根據(jù)分組地址存儲(chǔ)斷提供的指定地址輸出分組。存儲(chǔ)器地址管理池主要有如下兩個(gè)作用1) 為將要存儲(chǔ)在分組存儲(chǔ)器中的分組提供分組存儲(chǔ)器地址,即為分組存 儲(chǔ)器提供存儲(chǔ)分組的指定地址。2) 回收并存儲(chǔ)己經(jīng)輸出的分組的存儲(chǔ)地址,將這些地址進(jìn)行重新利用。 存儲(chǔ)器地址管理池的結(jié)構(gòu)可以類似于FIFO (先進(jìn)先出隊(duì)列),從FIFO頭部輸出的分組存儲(chǔ)器地址提供給將要存儲(chǔ)的分組,已經(jīng)輸出的分組的存儲(chǔ)地址由 隊(duì)列尾部回收,以便循環(huán)使用。輸出仲裁機(jī)主要用于采用輪循的機(jī)制對(duì)不同的分組流進(jìn)行輸出調(diào)度,輸出 調(diào)度的實(shí)現(xiàn)過(guò)程如當(dāng)一個(gè)分組流的第一段的存儲(chǔ)單元中存儲(chǔ)的所有分組均被 輸出后,再輸出另一個(gè)分組流的第一段存儲(chǔ)單元中的分組。如果在輸出過(guò)程中出現(xiàn)某個(gè)信元未到達(dá)的情況,則重排序機(jī)根據(jù)存儲(chǔ)的路 徑信息來(lái)判斷該信元是丟失了還是被阻塞了,是否需要計(jì)時(shí)等待。在重排序機(jī) 開始為預(yù)定時(shí)間間隔計(jì)時(shí)后,輸出仲裁機(jī)按照上述方法輸出其它隊(duì)列的信元。分組地址存儲(chǔ)段主要用于存儲(chǔ)分組在分組存儲(chǔ)器中的緩存地址,分組地址 存儲(chǔ)段根據(jù)分組緩沖器提供的分組序列號(hào),將分組存儲(chǔ)器中存儲(chǔ)該分組的存儲(chǔ) 單元的地址,存入具有與該分組序列號(hào)相同地址的存儲(chǔ)單元中,從而實(shí)現(xiàn)分組 重排序。在輸出分組時(shí),分組地址存儲(chǔ)段按照該段的地址從小到大逐一輸出其 所存分組的地址。分組地址存儲(chǔ)段在輸出分組地址過(guò)程中,如果發(fā)現(xiàn)分組地址 中斷,即發(fā)現(xiàn)某個(gè)分組不存在時(shí),則將該分組的傳輸路徑信息提供給分組丟失 判斷器。分組地址存儲(chǔ)段包括分組緩存地址存儲(chǔ)器、分組路徑存儲(chǔ)器、標(biāo)志
位1和標(biāo)志位2這4個(gè)部分,具體如上述方法中的描述。段控制器主要負(fù)責(zé)分組流的分組地址存儲(chǔ)段的建立與撤消,并判斷分組是 否"過(guò)時(shí)"。段控制器中存儲(chǔ)有每個(gè)分組流中各分組地址存儲(chǔ)段的段首地址, 在分組存儲(chǔ)器存儲(chǔ)分組與分組輸出時(shí),均需要從段控制器中提取出相應(yīng)存儲(chǔ)段 的段首地址。分組丟失判斷器在分組流的輸出因?yàn)槟硞€(gè)分組未到達(dá)重排序機(jī)而被中斷 時(shí)才開始運(yùn)作。分組丟失判斷器的主要作用在于決定分組流輸出的中斷應(yīng)該在 什么時(shí)間結(jié)束。分組丟失判斷器為每個(gè)分組流都分配了--個(gè)存儲(chǔ)器,即最后值 存儲(chǔ)器,最后值存儲(chǔ)器即前面描述的路徑信息存儲(chǔ)器。最后值存儲(chǔ)器根據(jù)輸出 端接收到的分組及分組傳輸信息記錄到當(dāng)前時(shí)間為止、分組流的各傳輸路徑中 最后傳輸?shù)姆纸M的分組序列號(hào),即最后序列號(hào)。也就是說(shuō),每當(dāng)一個(gè)分組到達(dá) 接收端時(shí),最后值存儲(chǔ)器中存儲(chǔ)的最后序列號(hào)就會(huì)更新一次。當(dāng)分組流的輸出 中斷時(shí),分組丟失判斷器確定出該中斷的分組的序列號(hào),然后,在該中斷分組 對(duì)應(yīng)的分組地址存儲(chǔ)段中的標(biāo)志位l無(wú)效、標(biāo)志位2有效時(shí),從分組地址存儲(chǔ) 段中獲取該分組對(duì)應(yīng)的傳輸路徑信息如路徑編號(hào),并根據(jù)最后值存儲(chǔ)器中存儲(chǔ) 的該路徑編號(hào)對(duì)應(yīng)的最后序列號(hào)和中斷分組的序列號(hào)來(lái)判斷未到達(dá)的分組是 被阻塞了還是被丟失了。若最后序列號(hào)不大于中斷分組的序列號(hào),即確定該分 組被阻塞了,則繼續(xù)輸出中斷并開始為預(yù)定時(shí)間間隔計(jì)時(shí);在計(jì)時(shí)結(jié)束后,接 收端仍然沒(méi)有接收到其等待的分組,即分組輸出仍然中斷,則跳過(guò)該分組,輸 出下一個(gè)分組。若最后序列號(hào)大于中斷分組的序列號(hào),即確定該分組丟失了, 則結(jié)束中斷并強(qiáng)制輸出下一個(gè)分組。這里的預(yù)定時(shí)間間隔為輸出端等待被阻塞 的分組的時(shí)間,該計(jì)時(shí)時(shí)間可以根據(jù)實(shí)際情況來(lái)靈活設(shè)置。當(dāng)一個(gè)分組到達(dá)重排序機(jī)后,該分組首先進(jìn)入分組緩沖器,由分組緩沖器 對(duì)該分組進(jìn)行緩沖并輸出該分組的源地址信息、序列號(hào)及傳輸路徑信息如路徑 編號(hào)。之后,分組緩沖器根據(jù)存儲(chǔ)器地址管理池提供的分組緩存地址,將分組 存入分組存儲(chǔ)器中。該分組的源地址與序列號(hào)被送往段控制器,該分組的傳輸路徑信息被送往 分組丟失判斷器。段控制器根據(jù)分組的源地址與序列號(hào)判斷該分組是否要參加 排序,并將分組的序列號(hào)轉(zhuǎn)化為段首地址和段偏移量,送給分組地址存儲(chǔ)段。 分組地址存儲(chǔ)段再根據(jù)分組的段首地址和段偏移量,將該分組的緩存地址即該
分組在分組存儲(chǔ)器中的存儲(chǔ)地址存儲(chǔ)到對(duì)應(yīng)存儲(chǔ)段中的適當(dāng)位置,完成該分組 的重排序。分組流的輸出由輸出仲裁機(jī)根據(jù)輸出策略,向段控制器發(fā)出輸出信號(hào),即 向段控制器發(fā)出分組流隊(duì)列編號(hào);段控制器在接收到輸出信號(hào)后,向分組地址 存儲(chǔ)段輸出該分組流隊(duì)列的第一段首地址;分組地址存儲(chǔ)段根據(jù)該段首地址再 向分組存儲(chǔ)器逐--輸出該存儲(chǔ)段存儲(chǔ)的分組緩存地址。分組存儲(chǔ)器則根據(jù)分組 地址存儲(chǔ)段輸出的分組緩存地址輸出相應(yīng)的分組。一旦在分組流輸出過(guò)程中出現(xiàn)因分組地址存儲(chǔ)段中某個(gè)存儲(chǔ)單元為空而 中斷輸出的情況,即存在需要輸出的分組未達(dá)到的情況,則分組緩存存儲(chǔ)器將 這個(gè)空存儲(chǔ)單元的編號(hào),即未到達(dá)分組的序列號(hào)與該分組流的源地址送入分組 丟失判斷器中。由分組丟失判斷器來(lái)決定該中斷何時(shí)結(jié)束。如果分組丟失判斷 器判斷出本次輸出中斷需要持續(xù)一段時(shí)間,則由分組丟失判斷器向輸出仲裁機(jī) 發(fā)送信號(hào),使重排序機(jī)在輸出中斷的持續(xù)時(shí)間內(nèi)輸出其它分組流的分組。通過(guò)上述技術(shù)方案的描述可知,本發(fā)明通過(guò)使分組流中的每個(gè)分組都攜帶 其自身及其前面幾個(gè)分組的傳輸路徑信息如路徑編號(hào),使本發(fā)明在輸出端的重 排序機(jī)能知道分組流中各個(gè)分組在交換網(wǎng)絡(luò)中的傳輸情況。這樣, 一旦出現(xiàn)分 組流的輸出因某個(gè)分組未到達(dá)而中斷的情況,重排序機(jī)能夠迅速判斷出該中斷 是由怎樣的傳輸異常如分組擁塞、分組丟失等引起的,使重排序機(jī)能夠確定出 是否需要持續(xù)輸出中斷,還是中止輸出中斷,繼續(xù)輸出。從而避免了因分組丟 失而造成重排序機(jī)不必要的等待時(shí)間,增加了重排序在交換網(wǎng)絡(luò)中的容錯(cuò)性。本發(fā)明通過(guò)為分組流中的每個(gè)分組預(yù)先分配一個(gè)已排好序的分組緩存地 址存儲(chǔ)單元,分組的緩存地址一旦被存入該存儲(chǔ)單元中,就完成了該分組的排 序過(guò)程,避免丫與其它分組一一比較序列號(hào)進(jìn)行排序的過(guò)程,從而大大節(jié)省了 分組排序的時(shí)間。本發(fā)明在重排序過(guò)程中,通過(guò)將分組存儲(chǔ)在分組存儲(chǔ)器中,使分組的緩存 地址參與分組的重排序過(guò)程,從而使分組的存儲(chǔ)操作與分組的排序操作分開, 使兩者可以互不干擾的獨(dú)立進(jìn)行。這樣,每個(gè)分組流中的所有分組都被可以存 儲(chǔ)在同一個(gè)存儲(chǔ)器中,因而,所有分組流的分組都可以共享同一個(gè)分組存儲(chǔ)器, 使分組存儲(chǔ)器中的緩存可以得到最大程度的利用。另外,本發(fā)明的分組緩存地 址存儲(chǔ)單元是一段一段分配的,這樣, 一旦某個(gè)分組流的輸入停止,只有一段
分組地址存儲(chǔ)單元被浪費(fèi)了 ,從而有效防止了應(yīng)分配的分組緩存地址存儲(chǔ)隊(duì)列 過(guò)短而造成分組緩存地址溢出的現(xiàn)象,并有效防止了應(yīng)分配的分組緩存地址存 儲(chǔ)隊(duì)列過(guò)長(zhǎng)而造成的緩存空間浪費(fèi)的現(xiàn)象。當(dāng)上述方法應(yīng)用在輸入輸出端口數(shù) 量較多的交換網(wǎng)絡(luò)中時(shí),能夠節(jié)約大量的存儲(chǔ)資源,從而提高緩存的利用率。在上述實(shí)施例中,是以分組傳輸信息為分組傳輸路徑信息為例進(jìn)行描述 的,本發(fā)明的輸入端也可以使每個(gè)分組攜帶其前面幾個(gè)分組進(jìn)入交換網(wǎng)絡(luò)的時(shí) 間信息,這樣,輸出端的重排序機(jī)通過(guò)將收集到的時(shí)間信息與當(dāng)前時(shí)間進(jìn)行比 較,也可以確定出分組是否出現(xiàn)傳輸異常,具體實(shí)現(xiàn)過(guò)程在此不再洋細(xì)描述。雖然通過(guò)實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多 變形和變化而不脫離本發(fā)明的精神,本發(fā)明的申請(qǐng)文件的權(quán)利要求包括這些變 形和變化。
權(quán)利要求
1、 一種分組重排序方法,其特征在于,所述方法包括步驟a、 交換網(wǎng)絡(luò)輸入端在將分組流中的分組輸入交換網(wǎng)絡(luò)過(guò)程中,將該分組 流中其他分組的分組傳輸信息輸入至交換網(wǎng)絡(luò);b、 交換網(wǎng)絡(luò)輸出端在分組重排序輸出過(guò)程中,根據(jù)其接收的分組傳輸信 息和接收到的分組確定傳輸異常的分組;c、 所述輸出端針對(duì)傳輸異常的分組進(jìn)行相應(yīng)的分組輸出處理。
2、 如權(quán)利要求1所述的方法,其特征在于,所述分組傳輸信息為分組 傳輸時(shí)間信息、和/或分組傳輸路徑信息。
3、 如權(quán)利要求2所述的方法,其特征在于,所述步驟a包括 交換網(wǎng)絡(luò)輸入端在將分組流中的分組輸入交換網(wǎng)絡(luò)時(shí),將該分組、該分組的傳輸路徑信息和該分組流中其他分組的傳輸路徑信息輸入至交換網(wǎng)絡(luò)。
4、 如權(quán)利要求1或2或3所述的方法,其特征在于,所述步驟b中分組 重排序輸出的過(guò)程具體包括bl、輸出端將其接收的分組緩存;b2、輸出端根據(jù)分組序列號(hào)順序存儲(chǔ)其接收的分組的緩存地址; b3、輸出端根據(jù)連續(xù)存儲(chǔ)的緩存地址的存儲(chǔ)順序輸出其緩存的分組。
5、 如權(quán)利要求4所述的方法,其特征在于,所述步驟bl具體包括 輸出端將其接收的不同分組流的分組存儲(chǔ)在一個(gè)分組存儲(chǔ)器中。
6、 如權(quán)利要求4所述的方法,其特征在于,所述步驟b2中存儲(chǔ)分組緩存 地址的存儲(chǔ)空間為多段存儲(chǔ)空間,且所述多段存儲(chǔ)空間是輸出端為分組流動(dòng)態(tài) 分配的。
7、 如權(quán)利要求6所述的方法,其特征在于,所述步驟b還包括 輸出端回收存儲(chǔ)分組緩存地址的存儲(chǔ)空間。
8、 如權(quán)利要求4所述的方法,其特征在于,所述分組傳輸信息為分組 傳輸路徑信息,且所述步驟b中確定傳輸異常的分組的步驟具體包括所述輸出端根據(jù)其接收到的分組及分組傳輸路徑信息記錄到當(dāng)前時(shí)間為 止、分組流的各傳輸路徑中最后傳輸?shù)姆纸M的分組序列號(hào),即最后序列號(hào);所述輸出端根據(jù)其接收的傳輸路徑信息確定空缺的緩存地址對(duì)應(yīng)的分組序列號(hào)、及所屬的傳輸路徑; '所述輸出端確定空缺的分組所屬傳輸路徑對(duì)應(yīng)的最后序列號(hào); 所述輸出端判斷最后序列號(hào)是否大于空缺的分組序列號(hào); 如果大于,確定該空缺的緩存地址對(duì)應(yīng)的分組傳輸丟失; 如果不大于,確定該空缺的緩存地址對(duì)應(yīng)的分組傳輸擁塞。
9、 如權(quán)利要求1或2或3所述的方法,其特征在于,所述步驟c包括-所述輸出端在確定分組傳輸丟失后,繼續(xù)根據(jù)后續(xù)連續(xù)存儲(chǔ)的緩存地址的存儲(chǔ)順序輸出其緩存的分組。
10、 如權(quán)利要求1或2或3所述的方法,其特征在于,所述步驟c包括 所述輸出端在確定分組傳輸擁塞后,在預(yù)定時(shí)間間隔內(nèi)等待接收分組 所述輸出端在預(yù)定時(shí)間間隔內(nèi)接收到其等待的分組時(shí),輸出該分組; 所述輸出端在預(yù)定時(shí)間間隔內(nèi)沒(méi)有接收到其等待的分組時(shí),繼續(xù)根據(jù)后續(xù)連續(xù)存儲(chǔ)的緩存地址的存儲(chǔ)順序輸出其緩存的分組。
11、--種分組重排序系統(tǒng),包括輸入端和輸出端,所述輸出端設(shè)置有重 排序機(jī),其特征在于,所述輸入端設(shè)置有分組信息生成器,所述重排序機(jī)中設(shè) 置有重排序模塊和異常控制模塊;分組信息生成器用于在輸入端將分組流中的分組輸入交換網(wǎng)絡(luò)過(guò)程中,獲取該分組流中其他分組的分組傳輸信息,并為分組添加分組序列號(hào)和所述分組傳輸信息,然后,將分組輸入至交換網(wǎng)絡(luò)重排序模塊用于對(duì)接收端接收的分組進(jìn)行分組重排序輸出;異??刂颇K用于根據(jù)輸出端接收的分組傳輸信息確定傳輸異常的分組,并針對(duì)傳輸異常的分組控制重排序模塊的輸出。
12、 如權(quán)利要求ll所述的系統(tǒng),其特征在于,所述重排序模塊包括 分組存儲(chǔ)器地址管理池為接收端接收的分組提供存儲(chǔ)地址,并將該存儲(chǔ)地址傳輸至分組地址存儲(chǔ)段;分組存儲(chǔ)器用于根據(jù)分組存儲(chǔ)器地址管理池提供的存儲(chǔ)地址存儲(chǔ)分組, 并根據(jù)輸出仲裁機(jī)的通知、分組地址存儲(chǔ)段提供的緩存地址輸出其存儲(chǔ)的分 組;段控制器用于在分組存儲(chǔ)、輸出時(shí),為分組流提供分組地址存儲(chǔ)段的存 儲(chǔ)段首地址、輸出段首地址;分組地址存儲(chǔ)段用于根據(jù)存儲(chǔ)段首地址、按照分組序列號(hào)順序存儲(chǔ)分組 在分組存儲(chǔ)器的緩存地址,根據(jù)輸出段首地址,按照存儲(chǔ)順序向分組存儲(chǔ)器提 供緩存地址;輸出仲裁機(jī)用于根據(jù)預(yù)定仲裁機(jī)制對(duì)各分組流的輸出進(jìn)行輸出仲裁,并 根據(jù)仲裁結(jié)果通知相應(yīng)分組流的分組存儲(chǔ)器。
13、 如權(quán)利要求12所述的系統(tǒng),其特征在于,所述重排序模塊還包括-段存儲(chǔ)地址管理池用于回收空閑的分組地址存儲(chǔ)段的段首地址,并向段控制器提供空閑的段首地址。
14、 如權(quán)利要求12或13所述的系統(tǒng),其特征在于,分組地址存儲(chǔ)段中還 存儲(chǔ)有緩存地址對(duì)應(yīng)的分組的分組傳輸路徑信息,且異??刂颇K包括最后值存儲(chǔ)模塊用于存儲(chǔ)到當(dāng)前時(shí)刻為止、分組流的各傳輸路徑最后達(dá)到輸出端的分組的序列號(hào),即最后序列號(hào);分組丟失判斷器根據(jù)分組地址存儲(chǔ)段中存儲(chǔ)的傳輸路徑信息判斷分組地 址存儲(chǔ)段中空缺的緩存地址對(duì)應(yīng)的分組的序列號(hào)是否大于最后值存儲(chǔ)模塊中 存儲(chǔ)的該分組傳輸路徑對(duì)應(yīng)的最后序列號(hào),在判斷出大于所述最后序列號(hào)時(shí), 確定該空缺的緩存地址對(duì)應(yīng)的分組傳輸丟失,進(jìn)行丟失處理;在判斷出不大f 所述最后序列號(hào)時(shí),確定該空缺的緩存地址對(duì)應(yīng)的分組傳輸擁塞,進(jìn)行擁塞處 理。
15、如權(quán)利要求14所述的系統(tǒng),其特征在于,分組地址存儲(chǔ)段中的-個(gè) 存儲(chǔ)單元包括分組的緩存地址、分組的傳輸路徑信息、用來(lái)標(biāo)志分組是否到 達(dá)輸出端的標(biāo)志位1、用來(lái)標(biāo)志分組的傳輸路徑信息是否有效的標(biāo)志位2;分組丟失判斷器在確定標(biāo)志位1無(wú)效、且標(biāo)志位2有效時(shí),判斷分組地址 存儲(chǔ)段中空缺的緩存地址對(duì)應(yīng)的分組的序列號(hào)是否大于最后值存儲(chǔ)模塊中存 儲(chǔ)的該分組傳輸路徑對(duì)應(yīng)的最后序列號(hào)。
全文摘要
本發(fā)明提供一種分組重排序方法和系統(tǒng),交換網(wǎng)絡(luò)輸入端在將分組流中的分組輸入交換網(wǎng)絡(luò)時(shí),將該分組和該分組流中其他分組的傳輸信息如傳輸路徑信息輸入至交換網(wǎng)絡(luò),這樣,交換網(wǎng)絡(luò)輸出端在根據(jù)分組序列號(hào)進(jìn)行分組重排序輸出時(shí),能夠根據(jù)其接收的傳輸路徑信息確定傳輸異常的分組,使輸出端能夠針對(duì)傳輸異常的分組進(jìn)行相應(yīng)的分組輸出處理,如在預(yù)定時(shí)間間隔等待傳輸擁塞的分組,再如不等待丟失的分組,直接輸出下一個(gè)分組等。本發(fā)明能夠很好的適用于大容量分組交換網(wǎng)絡(luò),避免了因分組丟失而產(chǎn)生的不必要的等待時(shí)間;從而實(shí)現(xiàn)了提高分組重排序效率、提高分組重排序的容錯(cuò)性能、完善包括大容量分組交換網(wǎng)絡(luò)在內(nèi)的各種交換網(wǎng)絡(luò)的分組重排序方法的目的。
文檔編號(hào)H04L12/56GK101146029SQ20061015212
公開日2008年3月19日 申請(qǐng)日期2006年9月13日 優(yōu)先權(quán)日2006年9月13日
發(fā)明者堅(jiān) 劉, 涂曉東, 凱 王, 松 馬 申請(qǐng)人:華為技術(shù)有限公司;電子科技大學(xué)