專利名稱:一種數(shù)據(jù)報傳輸系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信領(lǐng)域,尤其涉及一種實現(xiàn)數(shù)據(jù)報傳輸?shù)南到y(tǒng)及方法。
背景技術(shù):
下一代網(wǎng)絡(luò)(Next Generation Network,NGN)以軟交換為核心,采用開放、標(biāo)準(zhǔn)體系結(jié)構(gòu),能夠提供話音、視頻、數(shù)據(jù)等豐富的多媒體綜合業(yè)務(wù)。NGN將以因特網(wǎng)版本6(Internet Protocol Version 6,IPV6)的技術(shù)作為分組網(wǎng)承載技術(shù),業(yè)務(wù)控制上逐漸向IP多媒體子系統(tǒng)(IP Multimedia Subsystem,IMS)為核心的架構(gòu)演變。世界標(biāo)準(zhǔn)組織開始研究固定網(wǎng)絡(luò)與移動網(wǎng)絡(luò)的融合,在NGN環(huán)境下將會有大量終端接入,在任何地點接入網(wǎng)絡(luò)、點對點通信,這將不可避免地帶來移動性問題,而移動支持的關(guān)鍵技術(shù)在于位置定位與服務(wù)區(qū)切換。
NGN的網(wǎng)絡(luò)層采用IPV6協(xié)議,傳輸層目前采用流控制傳輸協(xié)議(StreamControl Transport Protocol,SCTP),所以在NGN中實現(xiàn)移動支持,涉及到移動IPV6技術(shù)和SCTP技術(shù)。
RFC3344提出在IPV4上支持節(jié)點移動的技術(shù),而移動IPV6技術(shù)在借鑒了IPV4移動技術(shù)的同時,還利用IPV6特點,將技術(shù)進(jìn)行了改進(jìn),更簡單和安全,關(guān)于移動IPV6技術(shù)的詳細(xì)內(nèi)容可參考協(xié)議“IETF RFC 3775Mobility Support inIPv6”。如圖1所示,為移動IPV6的原理示意圖。當(dāng)移動節(jié)點(Mobile Node,MN)A從家鄉(xiāng)網(wǎng)絡(luò)移動到外地網(wǎng)絡(luò),會進(jìn)行如下操作1、移動節(jié)點A在外地網(wǎng)絡(luò)通過地址配置機制獲得一個移動地址;2、節(jié)點A將此移動地址通過地址綁定消息發(fā)送給家鄉(xiāng)代理(Home Agent,HA),家鄉(xiāng)代理將節(jié)點A新獲得的移動地址與節(jié)點A的本地地址對應(yīng)起來并存貯。所謂“綁定”,是指移動節(jié)點家鄉(xiāng)地址和轉(zhuǎn)交地址的結(jié)合。當(dāng)一個移動節(jié)點離開它的家鄉(xiāng)鏈路時,移動節(jié)點注冊它的主轉(zhuǎn)交地址到它家鄉(xiāng)鏈路的一個路由器上,請求這個路由器為它實現(xiàn)家鄉(xiāng)代理的功能。移動節(jié)點通過給家鄉(xiāng)代理發(fā)送“Binding Update”消息來實現(xiàn)綁定注冊,家鄉(xiāng)代理返回一個“BindingAcknowledgement”消息作為響應(yīng)。
節(jié)點B要與移動節(jié)點A通信,則要進(jìn)行如下操作1、節(jié)點B發(fā)給移動節(jié)點A的消息送至家鄉(xiāng)代理處;2、家鄉(xiāng)代理將數(shù)據(jù)報通過隧道封裝發(fā)送給移動節(jié)點A;3、移動節(jié)點A通過地址綁定消息通知節(jié)點B,告之其新地址;4、后續(xù)通信通過移動節(jié)點A的新地址與節(jié)點B直接完成,無需再轉(zhuǎn)發(fā)。
上述與移動節(jié)點A通信的節(jié)點B被稱為移動節(jié)點的通信節(jié)點(correspondent node,CN),它可以是固定節(jié)點,也可以是移動節(jié)點。移動節(jié)點可以通過通信綁定程序(Correspondent Binding Procedure)將其當(dāng)前的位置信息提供給通信節(jié)點。為了確認(rèn)綁定的建立,作為程序的一部分,實現(xiàn)一個返回路由能力(Return Routability)測試。
移動節(jié)點和通信節(jié)點之間的通信有兩種可能的模式第一種是雙向隧道,不需要通信節(jié)點的特殊支持就可以使用,即使移動節(jié)點還沒有注冊它當(dāng)前的地址綁定消息給通信節(jié)點;第二種方式是路由最優(yōu)化(Route Optimization),這種方式需要移動節(jié)點在通信節(jié)點上注冊它的當(dāng)前地址綁定消息。
移動IPv6也支持多家鄉(xiāng)代理和家鄉(xiāng)網(wǎng)絡(luò)的重配置。在這種情況下,移動節(jié)點不知道它的家鄉(xiāng)代理的地址,并且家鄉(xiāng)子網(wǎng)前綴可能隨時改變。一種叫做動態(tài)家鄉(xiāng)代理地址發(fā)現(xiàn)的機制允許移動節(jié)點動態(tài)的發(fā)現(xiàn)它的家鄉(xiāng)代理的地址。移動節(jié)點能夠通過前綴發(fā)現(xiàn)機制學(xué)習(xí)到新的家鄉(xiāng)子網(wǎng)前綴的信息。
移動IPv6技術(shù)是一項較好解決移動的技術(shù),而其主要缺陷在于當(dāng)節(jié)點處于重疊區(qū)內(nèi),由于移動IPV6不支持同時從多條路徑接收信息,所以重疊區(qū)可能信號不好而影響傳輸質(zhì)量。
從NGN的結(jié)構(gòu)和功能上看,它將是一個功能齊備、同時也異常復(fù)雜的系統(tǒng)。雖然系統(tǒng)的第三層(網(wǎng)絡(luò)層)統(tǒng)一到IP協(xié)議,但是要真正實現(xiàn)NGN的功能,在傳輸層及其以上層就必須使用更有效的協(xié)議。為此互聯(lián)網(wǎng)工程任務(wù)組(Internet Engineering Task Force,IETF)等組織提出了大量的傳輸層、會話層和應(yīng)用層上的新協(xié)議,其中在傳輸層上最有代表性的是SCTP協(xié)議,其設(shè)計初衷是在傳輸層上取代用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP)和傳輸控制協(xié)議(Transmission Control Protocol,TCP)來更有效地傳輸信令信息,詳細(xì)內(nèi)容可參照協(xié)議“IETF RFC 2960Stream Control Transmission Protocol”。該協(xié)議使得信令消息在一個基于IP的公共分組交換網(wǎng)上完成交換,流量控制和差錯控制被端到端地執(zhí)行,并且通過使用一簇“應(yīng)用服務(wù)器過程”(ApplicationServer Processes,ASP)和“多宿節(jié)點”(Multihoming)來提高有效性。利用SCTP,用戶平面和控制平面上的業(yè)務(wù)流都能在單一的IP網(wǎng)上進(jìn)行傳輸。
SCTP發(fā)展了UDP和TCP這兩種協(xié)議的長處。它一方面增強了UDP業(yè)務(wù)并提供數(shù)據(jù)報的可靠傳輸;另一方面,SCTP的協(xié)議行為類似于TCP并能夠克服TCP的某些局限。與TCP類似,SCTP也是面向連接的,但是SCTP中的關(guān)聯(lián)概念要比TCP接概念含義更廣。一個關(guān)聯(lián)的兩個SCTP方各提供一個SCTP端口號和一個IP地址列表,這樣每個關(guān)聯(lián)都由兩個SCTP端口號和兩個IP地址列表來識別。在一個關(guān)聯(lián)內(nèi)的擁塞控制機制與TCP的擁塞控制機制類似。一個“關(guān)聯(lián)”(Association)是由多個單向的“流”(Stream)組成的。各個流之間相對獨立,可以單獨發(fā)送數(shù)據(jù)而不受其它流的影響,也可以共同實現(xiàn)用戶數(shù)據(jù)的有序遞交。流的建立和拆除過程相對獨立、簡單,而關(guān)聯(lián)的建立過程相對而言就比較復(fù)雜,是個“四次握手”過程。
SCTP實現(xiàn)移動支持的過程如下1)當(dāng)端點A與B已建立了一個關(guān)聯(lián),則當(dāng)A移動獲得了新的地址后,就會向B發(fā)送一條SCTP消息,攜帶“增加IP地址”信息塊,通知B,A已獲取新的地址;2)切換條件成立時,A會向B發(fā)送SCTP消息攜帶“設(shè)置主地址”信息塊,通知B,用新的地址與A通信;3)到達(dá)一個新的子網(wǎng)域后,A向B發(fā)送SCTP消息攜帶“刪除地址”信息塊,通知B原來的地址已經(jīng)不用。
這些信令的交互在SCTP層內(nèi)完成,它可以有效地對SCTP上層應(yīng)用提供移動動態(tài)切換支持。
SCTP協(xié)議為其上層應(yīng)用提供了一個良好的面向連接的流傳輸及控制服務(wù),但由于在Internet上大多數(shù)應(yīng)用都在UDP與TCP協(xié)議之上,這些應(yīng)用無法得到SCTP提供的流管理、多宿特征和移動性服務(wù),SCTP因此具有一定的局限性。
綜上所述,目前在NGN的移動支持方面,移動IPV6技術(shù)和SCTP技術(shù)都存在著各自的局限性,面臨的最主要問題是不能對所有的網(wǎng)絡(luò)層和傳輸層協(xié)議通用,因此需要一個比較完善的技術(shù)方案實現(xiàn)對NGN移動領(lǐng)域的全面支持。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種數(shù)據(jù)報傳輸系統(tǒng),以解決現(xiàn)有技術(shù)在NGN的移動支持方面存在缺乏通用性的問題。
本發(fā)明的另一目的在于提供一種數(shù)據(jù)報的發(fā)送方法。
本發(fā)明的另一目的在于提供一種數(shù)據(jù)報的接收方法。
本發(fā)明是這樣實現(xiàn)的,一種數(shù)據(jù)報傳輸系統(tǒng),所述系統(tǒng)用于接收傳輸層的數(shù)據(jù)報,將所述數(shù)據(jù)報按其所屬的流的路徑發(fā)送;或者從路徑接收數(shù)據(jù)報,將所述數(shù)據(jù)報按所述路徑對應(yīng)的流所對應(yīng)的遠(yuǎn)端標(biāo)識地址和本地標(biāo)識地址發(fā)送至傳輸層。
所述系統(tǒng)包括地址信息數(shù)據(jù)庫,用于存儲本端地址和遠(yuǎn)端地址;流與路徑信息數(shù)據(jù)庫,用于存儲流以及所述流的所有路徑的信息;地址管理模塊,用于添加、刪除或者更換本端地址和遠(yuǎn)端地址,變換主地址,更新所述地址信息數(shù)據(jù)庫和流與路徑信息數(shù)據(jù)庫;
流與路徑控制模塊,用于接收傳輸層或者網(wǎng)絡(luò)層的數(shù)據(jù)報,根據(jù)所述地址信息數(shù)據(jù)庫和流與路徑信息數(shù)據(jù)庫對數(shù)據(jù)報進(jìn)行地址變換,執(zhí)行數(shù)據(jù)報的分路徑發(fā)送或分集接收。
所述本端地址和遠(yuǎn)端地址具有本端標(biāo)識地址和遠(yuǎn)端標(biāo)識地址屬性。
所述流的信息包括流分類識別信息以及流到路徑的對應(yīng)信息。
所述流分類識別信息包括流的五元組(源地址、目的地址、源端口號、目的端口號、協(xié)議類型)信息或所述五元組的子集信息。
所述流的信息進(jìn)一步包括當(dāng)前發(fā)送流序列號、當(dāng)前接收流序列號、時間戳、遠(yuǎn)端節(jié)點驗證信息或者數(shù)據(jù)緩存塊索引信息。
所述路徑的信息包括路徑本地地址和路徑遠(yuǎn)端地址信息。
所述對數(shù)據(jù)報進(jìn)行地址變換包括將數(shù)據(jù)報的本地標(biāo)識地址和遠(yuǎn)端標(biāo)識地址變換為路徑的本地地址和遠(yuǎn)端地址,或者將數(shù)據(jù)報的路徑本地地址和路徑遠(yuǎn)端地址變換為本地標(biāo)識地址和遠(yuǎn)端標(biāo)識地址。
所述流與路徑控制模塊進(jìn)一步包括封裝與去封裝模塊,用于對數(shù)據(jù)報添加封裝信息或者刪除封裝信息,所述數(shù)據(jù)報的封裝信息包括本端流標(biāo)識、遠(yuǎn)端流標(biāo)識、發(fā)送與接收流序列號、本端唯一標(biāo)識或者驗證信息。
一種數(shù)據(jù)報的發(fā)送方法,所述方法包括下述步驟A.接收傳輸層發(fā)送的數(shù)據(jù)報;B.根據(jù)所述數(shù)據(jù)報對應(yīng)的流選擇發(fā)送所述數(shù)據(jù)報的路徑,將所述數(shù)據(jù)報的源標(biāo)識地址和目的標(biāo)識地址變換為所述路徑的本地地址和遠(yuǎn)端地址;C.將數(shù)據(jù)報按所述路徑發(fā)送。
所述步驟B進(jìn)一步包括下述步驟B1.判斷是否存在所述數(shù)據(jù)報對應(yīng)的流,是則執(zhí)行步驟B3,否則執(zhí)行步驟B2;B2.生成所述數(shù)據(jù)報對應(yīng)的流,初始化發(fā)送流序列號,并根據(jù)所述數(shù)據(jù)報的源標(biāo)識地址和目的標(biāo)識地址對應(yīng)的本端地址和遠(yuǎn)端地址生成多個可用路徑;B3.從所有可用路徑中選擇數(shù)據(jù)報的傳輸路徑。
所述步驟B進(jìn)一步包括下述步驟B4.在數(shù)據(jù)報中封裝本端流標(biāo)識、遠(yuǎn)端流標(biāo)識、發(fā)送與接收流序列號、本端唯一標(biāo)識或者驗證信息。
所述傳輸路徑為所有可用路徑或者一部分可用路徑。
所述方法進(jìn)一步包括下述步驟D.更新發(fā)送流序列號和路徑目的地址,刷新流。
一種數(shù)據(jù)報的接收方法,所述方法包括下述步驟A.從路徑接收數(shù)據(jù)報;B.根據(jù)所述數(shù)據(jù)報對應(yīng)的流,將所述數(shù)據(jù)報的路徑源地址和路徑目的標(biāo)識地址變換為所述流對應(yīng)的遠(yuǎn)端標(biāo)識地址和本地標(biāo)識地址;C.將數(shù)據(jù)報發(fā)送至傳輸層。
所述步驟B進(jìn)一步包括下述步驟B1.判斷是否存在所述數(shù)據(jù)報對應(yīng)的流,是則執(zhí)行步驟B3,否則執(zhí)行步驟B2;B2.生成所述數(shù)據(jù)報對應(yīng)的流,并根據(jù)所述數(shù)據(jù)報的路徑源地址和路徑目的地址生成所述流的所有路徑信息;B3.將所述數(shù)據(jù)報的路徑源地址和路徑目的標(biāo)識地址變換為對應(yīng)流的遠(yuǎn)端標(biāo)識地址和本地標(biāo)識地址。
所述步驟C進(jìn)一步包括下述步驟當(dāng)接收到的發(fā)送流序列號大于待接收流序列號時,將數(shù)據(jù)報進(jìn)行緩存;當(dāng)接收到的發(fā)送流序列號小于待接收流序列號時,丟棄所述數(shù)據(jù)報;當(dāng)接收到的發(fā)送流序列號等于待接收流序列號時,將數(shù)據(jù)報發(fā)送到傳輸層,待接收流序列號增1。
在所述步驟B1之前,所述方法進(jìn)一步包括對遠(yuǎn)端源地址進(jìn)行合法性校驗的步驟。
本發(fā)明通過對數(shù)據(jù)報進(jìn)行分路徑發(fā)送和分集接收處理,為應(yīng)用提供透明移動性和多宿支持,能夠?qū)崿F(xiàn)包括在網(wǎng)絡(luò)層之上的所有應(yīng)用的移動支持,提供了良好的NGN業(yè)務(wù)實現(xiàn)平臺。
圖1是移動IPV6的實現(xiàn)原理示意圖;圖2是本發(fā)明中提供的數(shù)據(jù)報傳輸系統(tǒng)的結(jié)構(gòu)圖;圖3是本發(fā)明中提供的將傳輸層數(shù)據(jù)流發(fā)送至網(wǎng)絡(luò)層的實現(xiàn)流程圖;圖4是本發(fā)明中提供的將網(wǎng)絡(luò)層數(shù)據(jù)流發(fā)送至傳輸層的實現(xiàn)流程圖。
具體實施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明在傳輸層和網(wǎng)絡(luò)層之間傳送數(shù)據(jù)報時,進(jìn)行相應(yīng)的地址變換,實現(xiàn)數(shù)據(jù)報的分路徑發(fā)送和針對路徑的分集接收,從而實現(xiàn)對NGN中移動業(yè)務(wù)的全面支持。
圖2示出了本發(fā)明中提供的數(shù)據(jù)報傳輸系統(tǒng)200的結(jié)構(gòu)。在邏輯上,數(shù)據(jù)報傳輸系統(tǒng)200可以是傳輸層與網(wǎng)絡(luò)層之間加入的一個功能層,本發(fā)明稱為“通用移動使能層”,但該層只是功能上的一個層次,并不一定要求在傳輸層與網(wǎng)絡(luò)層之間增加一個數(shù)據(jù)封裝棧層,例如基于IPV6可以通過增加目的地選項擴展報頭完成同樣的功能。
通用移動使能層可以應(yīng)用于主機或者路由器等節(jié)點。流與路徑控制模塊204可以采用軟件或者硬件實現(xiàn)。通用移動使能層為傳輸層提供流發(fā)送接口,此接口兼容傳輸層原有接口,并利用網(wǎng)絡(luò)層提供的接口發(fā)送數(shù)據(jù)報。在具體實現(xiàn)上,通用移動使能層可以單獨作為一個協(xié)議層,也可以與網(wǎng)絡(luò)層結(jié)合。
在本發(fā)明中,流是傳輸層與本數(shù)據(jù)系統(tǒng)之間傳遞的一組數(shù)據(jù)報,該數(shù)據(jù)報文對應(yīng)基于五元組(源地址、目的地址、源端口號、目的端口號、協(xié)議類型)或其五元組子集具有相同特征。典型地,一組具有相同源地址和目的地址的數(shù)據(jù)報構(gòu)成一個流,或者一組具有相同五元組的數(shù)據(jù)報構(gòu)成另外一個流。路徑是指節(jié)點間的傳送通道。由于節(jié)點有多宿屬性,對端通信節(jié)點也可能移動。在這些情況下,可能一個通信節(jié)點會有多個通信地址,這樣,對屬于同一個流的數(shù)據(jù)報,在兩個通信節(jié)點間會有多個(源地址,目的地址)組合可以傳送該數(shù)據(jù)報。則每一個這樣的組合稱為一個路徑。一個流可以對應(yīng)多條路徑。
地址信息數(shù)據(jù)庫201中存儲有本端地址與遠(yuǎn)端地址信息,本端地址與遠(yuǎn)端地址具有本端標(biāo)識地址和遠(yuǎn)端標(biāo)識地址屬性,由上層應(yīng)用識別節(jié)點,此屬性地址不能動態(tài)刪除,只能老化刪除。本地標(biāo)識地址是數(shù)據(jù)報傳輸系統(tǒng)200與傳輸層交互的報文地址,遠(yuǎn)端路徑地址是數(shù)據(jù)報傳輸系統(tǒng)200與網(wǎng)絡(luò)層交互的報文地址。每一個本端地址有一個類型屬性和一個狀態(tài)標(biāo)志。類型屬性用于區(qū)別主地址和多宿地址,狀態(tài)標(biāo)志用于標(biāo)識一個地址當(dāng)前是不可用、待加入、待刪除還是可用。遠(yuǎn)端地址記錄所有與本端節(jié)點通信的遠(yuǎn)端節(jié)點的所有地址。通過地址信息數(shù)據(jù)庫201可以查到屬于同一節(jié)點的地址,通過一個地址也可查到所屬節(jié)點,可以利用哈希表輔助查找。
流與路徑信息數(shù)據(jù)庫202存儲有流的信息和屬于流的所有路徑的信息。流的信息包括流分類識別信息以及流到路徑的對應(yīng)信息,進(jìn)一步還可以包括當(dāng)前發(fā)送流序列號、當(dāng)前接收流序列號、時間戳、遠(yuǎn)端節(jié)點驗證信息或者數(shù)據(jù)緩存塊索引信息。其中,流分類識別信息可以是流的五元組(源地址、目的地址、源端口號、目的端口號、協(xié)議類型)信息或該五元組的子集信息,也可以是流標(biāo)識。流到路徑的對應(yīng)信息可以是屬于流的所有路徑的索引信息。當(dāng)前發(fā)送流序列號、當(dāng)前接收流序列號用來標(biāo)記流當(dāng)前發(fā)送或者接收的流的順序標(biāo)記;流的所有路徑標(biāo)識索引包含有屬于一個流的所有路徑信息,每個路徑通過路徑標(biāo)識來標(biāo)記;時間戳用來標(biāo)識流的時間信息;遠(yuǎn)端節(jié)點驗證信息用來驗證遠(yuǎn)端節(jié)點的合法性;當(dāng)收到網(wǎng)絡(luò)層的數(shù)據(jù)報時,可能需要將數(shù)據(jù)報進(jìn)行緩存,然后發(fā)送給傳輸層,數(shù)據(jù)緩存塊索引包含了被緩存的數(shù)據(jù)報的信息。
路徑的信息包括路徑本地地址和路徑遠(yuǎn)端地址信息。
地址管理模塊203對節(jié)點的地址進(jìn)行動態(tài)管理,添加、刪除本端地址以及遠(yuǎn)端地址,根據(jù)屬于一個流各路徑的檢測數(shù)據(jù),決定在切換過程中的主地址變換,通知遠(yuǎn)端節(jié)點本端地址的添加、刪除、主地址變更,接受遠(yuǎn)端地址的添加、刪除及主地址變更,同時完成用戶唯一標(biāo)識到用戶定位地址的解析,該項功能并非必須,是可選的。有可能此功能由上層應(yīng)用完成,如果實現(xiàn)此功能,需要給上層提供一個新的接口,允許用戶傳入遠(yuǎn)端節(jié)點的唯一標(biāo)識。
在對地址進(jìn)行添加和刪除時,數(shù)據(jù)報傳輸系統(tǒng)200本身并不負(fù)責(zé)本端新地址的發(fā)現(xiàn),相關(guān)發(fā)現(xiàn)功能可由其它機制完成。例如在IPV6中,由互聯(lián)網(wǎng)控制消息協(xié)議(Internet Control Message Protocol,ICMP)的鄰居發(fā)現(xiàn)(NeighborDiscovery,ND)協(xié)議實現(xiàn)無狀態(tài)地址自動配置,或由動態(tài)主機配置協(xié)議(Dynamic Host Configuration Protocol,DHCP)實現(xiàn)有狀態(tài)地址自動配置,地址管理模塊203提供一個接口,接收節(jié)點地址的配置信息。
當(dāng)發(fā)現(xiàn)一個新地址后,地址管理模塊203將地址增加到地址信息數(shù)據(jù)庫201中,并設(shè)置其狀態(tài)為不可用,同時將新地址通過“增加地址”消息發(fā)送給當(dāng)前通信的節(jié)點,此消息攜帶新地址及本節(jié)點標(biāo)識和相關(guān)驗證碼,其相關(guān)地址狀態(tài)設(shè)為“待加入”,收到“增加地址確認(rèn)”消息后,地址狀態(tài)設(shè)為“可用”。
當(dāng)收到對端一個“增加地址”的請求消息,地址管理模塊203對增加地址消息進(jìn)行驗證,通過驗證后加入地址信息數(shù)據(jù)庫201中,并向?qū)Χ嘶厮汀霸黾拥刂反_認(rèn)”消息,同時將地址狀態(tài)設(shè)為“可用”,且啟動刷新定時器。
地址的刪除過程與增加過程類似,不再贅述。
地址管理模塊203可以有一個進(jìn)程觸發(fā)性地或周期性地對路徑進(jìn)行檢測,更新流與路徑信息數(shù)據(jù)庫202。檢測的依據(jù)是接收流在各路徑上的一些統(tǒng)計信息和數(shù)據(jù)報的接收序列號。如可以計算一定時間的各路徑丟包率,并通過默認(rèn)或管理設(shè)置的一個判斷條件域值,選擇本地主地址。主地址來源于最好接收效果路徑的本地地址。主地址變化后,可以將主地址通過“主地址設(shè)置”消息發(fā)給遠(yuǎn)端節(jié)點,使遠(yuǎn)端進(jìn)行流控制。
接收到傳輸層傳下來的數(shù)據(jù)報時,流與路徑控制模塊204根據(jù)數(shù)據(jù)報的(源標(biāo)識地址,目的標(biāo)識地址)或者流標(biāo)識查詢流與路徑信息數(shù)據(jù)庫202,判斷是否存在與該(源標(biāo)識地址,目的標(biāo)識地址)或者流標(biāo)識對應(yīng)的流。如果存在,從屬于該流的所有可用路徑中選擇傳輸路徑,將數(shù)據(jù)報的(源標(biāo)識地址,目的標(biāo)識地址)變換為相應(yīng)傳輸路徑的(路徑源地址、路徑目的地址),將數(shù)據(jù)報按相應(yīng)傳輸路徑進(jìn)行發(fā)送,傳輸路徑可以是流與路徑控制模塊204從屬于該流的所有可用路徑中選擇的部分路徑,如通信質(zhì)量良好的路徑,或者該流的所有可用路徑。
如果不存在,例如傳輸?shù)谝粋€數(shù)據(jù)報,流與路徑控制模塊204根據(jù)數(shù)據(jù)報的源標(biāo)識地址和目的標(biāo)識地址新建流,生成其流標(biāo)識,初始化發(fā)送流序列號,查詢地址信息數(shù)據(jù)庫201,根據(jù)地址信息數(shù)據(jù)庫201記錄的本端地址(源地址)和目的節(jié)點的遠(yuǎn)端地址(目的地址)組合形成多條可用路徑,從所有可用路徑中選擇傳輸路徑,將數(shù)據(jù)報按相應(yīng)傳輸路徑進(jìn)行發(fā)送,同時將新建的流與路徑信息存入流與路徑信息數(shù)據(jù)庫202。
在數(shù)據(jù)報發(fā)送過程中,流與路徑控制模塊204可以對各路徑的可達(dá)性進(jìn)行檢測,或通過檢測各路徑的數(shù)據(jù)報進(jìn)行統(tǒng)計,測量路徑傳輸質(zhì)量,把相關(guān)統(tǒng)計值記錄在流與路徑信息數(shù)據(jù)庫202中。
當(dāng)接收到網(wǎng)絡(luò)層從不同路徑傳來的數(shù)據(jù)報時,流與路徑控制模塊204根據(jù)數(shù)據(jù)報的(路徑源地址、路徑目的地址)或者流標(biāo)識,查詢流與路徑信息數(shù)據(jù)庫202,判斷是否存在對應(yīng)的流。如果存在,則將數(shù)據(jù)報的(路徑源地址、路徑目的地址)變換為(源標(biāo)識地址、目的標(biāo)識地址),根據(jù)接收流序列號對數(shù)據(jù)報進(jìn)行緩存處理或者直接發(fā)送至傳輸層。如果不存在,則生成一個流以及該流的所有路徑信息,分配流標(biāo)識,存入流與路徑信息數(shù)據(jù)庫202。
在數(shù)據(jù)報接收過程中,流與路徑控制模塊204進(jìn)行路徑數(shù)據(jù)報統(tǒng)計和路徑檢測,更新遠(yuǎn)端地址,刷新流,將更新后的流及路徑信息存入流與路徑信息數(shù)據(jù)庫202。
在發(fā)明的一個實施例中,流與路徑控制模塊204進(jìn)一步包括封裝與去封裝模塊2041,在將數(shù)據(jù)報按路徑發(fā)送前,在數(shù)據(jù)報中封裝本端流標(biāo)識、遠(yuǎn)端流標(biāo)識(遠(yuǎn)端流標(biāo)識從對端發(fā)來的報文中獲得,未知可以填零)、發(fā)送與接收流序列號、本端唯一標(biāo)識以及驗證信息等封裝信息。在接收路徑發(fā)送的數(shù)據(jù)報時,從數(shù)據(jù)報中去除相應(yīng)的封裝信息。
圖3示出了本發(fā)明中將傳輸層數(shù)據(jù)報發(fā)送至網(wǎng)絡(luò)層的實現(xiàn)流程,具體過程如下在步驟S301中,接收傳輸層的數(shù)據(jù)報,該數(shù)據(jù)報攜帶有(源標(biāo)識地址、目的標(biāo)識地址),也可能攜帶有流標(biāo)識;在步驟S302中,根據(jù)數(shù)據(jù)報攜帶的(源標(biāo)識地址、目的標(biāo)識地址)或者流標(biāo)識查詢本端是否保存有相同的(源標(biāo)識地址、目的標(biāo)識地址)或者流標(biāo)識,是則存在與該數(shù)據(jù)報對應(yīng)的流,執(zhí)行步驟S304,否則執(zhí)行步驟S303;在步驟S303中,根據(jù)(源標(biāo)識地址、目的標(biāo)識地址)新建一個流,生成流標(biāo)識,初始化發(fā)送流序列號,并查找屬于該(源標(biāo)識地址、目的標(biāo)識地址)的所有可用的本端地址和遠(yuǎn)端地址,組合形成多條可用路徑;在步驟S304中,選擇全部可用路徑或者部分可用路徑作為該數(shù)據(jù)報的傳輸路徑,例如只向主地址發(fā)送,或者向所有可達(dá)地址發(fā)送;在步驟S305中,在數(shù)據(jù)報中封裝本端流標(biāo)識、遠(yuǎn)端流標(biāo)識(遠(yuǎn)端流標(biāo)識從對端發(fā)來的報文中獲得,未知可以填零)、發(fā)送與接收流序列號、本端唯一標(biāo)識以及驗證信息等信息;在步驟S306中,將封裝后的數(shù)據(jù)報按傳輸路徑發(fā)送;在步驟S307中,當(dāng)所有傳輸路徑發(fā)送完畢后,對傳輸路徑的數(shù)據(jù)進(jìn)行統(tǒng)計和更新,刷新流的時間戳,流的發(fā)送序列號增1,路徑目的地址老化時間也將刷新。
圖4示出了本發(fā)明中將網(wǎng)絡(luò)層數(shù)據(jù)報發(fā)送至傳輸層的實現(xiàn)流程,具體過程如下在步驟S401中,接收來自不同路徑的數(shù)據(jù)報,數(shù)據(jù)報中攜帶有(路徑標(biāo)識地址、路徑目的地址),也可以攜帶有遠(yuǎn)端流標(biāo)識;在步驟S402中,對遠(yuǎn)端源地址進(jìn)行校驗,目的是為了確認(rèn)遠(yuǎn)端源地址的合法性,此過程是可選的,也可以由網(wǎng)絡(luò)層來完成;在步驟S403中,根據(jù)數(shù)據(jù)報中的(路徑標(biāo)識地址、路徑目的地址),或者遠(yuǎn)端流標(biāo)識查詢在本地是否有對應(yīng)的流,是則直接執(zhí)行步驟S405,否則執(zhí)行步驟S404;在步驟S404中,根據(jù)數(shù)據(jù)報的(路徑標(biāo)識地址、路徑目的地址),獲取對應(yīng)的(源標(biāo)識地址、目的標(biāo)識地址),生成一個流以及該流的所有路徑信息,分配流標(biāo)識,從報文中獲取接收流序列號。策略性地,可以觸發(fā)路徑質(zhì)量檢測進(jìn)程對各個路徑的質(zhì)量數(shù)據(jù)進(jìn)行計算,更新統(tǒng)計信息;在步驟S405中,將數(shù)據(jù)報進(jìn)行地址變換,將(路徑標(biāo)識地址、路徑目的地址)變換為(源標(biāo)識地址、目的標(biāo)識地址);在步驟S406中,根據(jù)接收流序列號,對數(shù)據(jù)報進(jìn)行的緩存處理,或者發(fā)送給傳輸層,保證流按照接收序列號增序上傳,并對遠(yuǎn)端地址信息以及流與路徑信息進(jìn)行刷新。
在對數(shù)據(jù)報進(jìn)行緩存處理時,當(dāng)接收到的發(fā)送流序列號大于待接收流序列號時,將數(shù)據(jù)報進(jìn)行緩存處理,暫不發(fā)送到上層。當(dāng)接收到的發(fā)送流序列號小于待接收流序列號時,說明已從其它路徑接收到該數(shù)據(jù)報,丟棄該數(shù)據(jù)報;當(dāng)接收到的發(fā)送流序列號等于待接收流序列號時,則將數(shù)據(jù)報發(fā)送到上層,待接收流序列號增1。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)報傳輸系統(tǒng),其特征在于,所述系統(tǒng)用于接收傳輸層的數(shù)據(jù)報,將所述數(shù)據(jù)報按其所屬的流的路徑發(fā)送;或者從路徑接收數(shù)據(jù)報,將所述數(shù)據(jù)報按所述路徑對應(yīng)的流所對應(yīng)的遠(yuǎn)端標(biāo)識地址和本地標(biāo)識地址發(fā)送至傳輸層。
2.如權(quán)利要求1所述的數(shù)據(jù)報傳輸系統(tǒng),其特征在于,所述系統(tǒng)包括地址信息數(shù)據(jù)庫,用于存儲本端地址和遠(yuǎn)端地址;流與路徑信息數(shù)據(jù)庫,用于存儲流以及所述流的所有路徑的信息;地址管理模塊,用于添加、刪除或者更換本端地址和遠(yuǎn)端地址,變換主地址,更新所述地址信息數(shù)據(jù)庫和流與路徑信息數(shù)據(jù)庫;流與路徑控制模塊,用于接收傳輸層或者網(wǎng)絡(luò)層的數(shù)據(jù)報,根據(jù)所述地址信息數(shù)據(jù)庫和流與路徑信息數(shù)據(jù)庫對數(shù)據(jù)報進(jìn)行地址變換,執(zhí)行數(shù)據(jù)報的分路徑發(fā)送或分集接收。
3.如權(quán)利要求2所述的數(shù)據(jù)報傳輸系統(tǒng),其特征在于,所述本端地址和遠(yuǎn)端地址具有本端標(biāo)識地址和遠(yuǎn)端標(biāo)識地址屬性。
4.如權(quán)利要求2所述的數(shù)據(jù)報傳輸系統(tǒng),其特征在于,所述流的信息包括流分類識別信息以及流到路徑的對應(yīng)信息。
5.如權(quán)利要求4所述的數(shù)據(jù)報傳輸系統(tǒng),其特征在于,所述流分類識別信息包括流的五元組(源地址、目的地址、源端口號、目的端口號、協(xié)議類型)信息或所述五元組的子集信息。
6.如權(quán)利要求4所述的數(shù)據(jù)報傳輸系統(tǒng),其特征在于,所述流的信息進(jìn)一步包括當(dāng)前發(fā)送流序列號、當(dāng)前接收流序列號、時間戳、遠(yuǎn)端節(jié)點驗證信息或者數(shù)據(jù)緩存塊索引信息。
7.如權(quán)利要求2所述的數(shù)據(jù)報傳輸系統(tǒng),其特征在于,所述路徑的信息包括路徑本地地址和路徑遠(yuǎn)端地址信息。
8.如權(quán)利要求2所述的數(shù)據(jù)報傳輸系統(tǒng),其特征在于,所述對數(shù)據(jù)報進(jìn)行地址變換包括將數(shù)據(jù)報的本地標(biāo)識地址和遠(yuǎn)端標(biāo)識地址變換為路徑的本地地址和遠(yuǎn)端地址,或者將數(shù)據(jù)報的路徑本地地址和路徑遠(yuǎn)端地址變換為本地標(biāo)識地址和遠(yuǎn)端標(biāo)識地址。
9.如權(quán)利要求2所述的數(shù)據(jù)報傳輸系統(tǒng),其特征在于,所述流與路徑控制模塊進(jìn)一步包括封裝與去封裝模塊,用于對數(shù)據(jù)報添加封裝信息或者刪除封裝信息,
10.如權(quán)利要求9所述的數(shù)據(jù)報傳輸系統(tǒng),其特征在于,所述數(shù)據(jù)報的封裝信息包括本端流標(biāo)識、遠(yuǎn)端流標(biāo)識、發(fā)送與接收流序列號、本端唯一標(biāo)識或者驗證信息。
11.一種數(shù)據(jù)報的發(fā)送方法,其特征在于,所述方法包括下述步驟A.接收傳輸層發(fā)送的數(shù)據(jù)報;B.根據(jù)所述數(shù)據(jù)報對應(yīng)的流選擇發(fā)送所述數(shù)據(jù)報的路徑,將所述數(shù)據(jù)報的源標(biāo)識地址和目的標(biāo)識地址變換為所述路徑的本地地址和遠(yuǎn)端地址;C.將數(shù)據(jù)報按所述路徑發(fā)送。
12.如權(quán)利要求11所述的數(shù)據(jù)報的發(fā)送方法,其特征在于,所述步驟B進(jìn)一步包括下述步驟B1.判斷是否存在所述數(shù)據(jù)報對應(yīng)的流,是則執(zhí)行步驟B3,否則執(zhí)行步驟B2;B2.生成所述數(shù)據(jù)報對應(yīng)的流,初始化發(fā)送流序列號,并根據(jù)所述數(shù)據(jù)報的源標(biāo)識地址和目的標(biāo)識地址對應(yīng)的本端地址和遠(yuǎn)端地址生成多個可用路徑;B3.從所有可用路徑中選擇數(shù)據(jù)報的傳輸路徑。
13.如權(quán)利要求12所述的數(shù)據(jù)報的發(fā)送方法,其特征在于,所述步驟B進(jìn)一步包括下述步驟B4.在數(shù)據(jù)報中封裝本端流標(biāo)識、遠(yuǎn)端流標(biāo)識、發(fā)送與接收流序列號、本端唯一標(biāo)識或者驗證信息。
14.如權(quán)利要求12所述的數(shù)據(jù)報的發(fā)送方法,其特征在于,所述傳輸路徑為所有可用路徑或者一部分可用路徑。
15.如權(quán)利要求11所述的數(shù)據(jù)報的發(fā)送方法,其特征在于,所述方法進(jìn)一步包括下述步驟D.更新發(fā)送流序列號和路徑目的地址,刷新流。
16.一種數(shù)據(jù)報的接收方法,其特征在于,所述方法包括下述步驟A.從路徑接收數(shù)據(jù)報;B.根據(jù)所述數(shù)據(jù)報對應(yīng)的流,將所述數(shù)據(jù)報的路徑源地址和路徑目的標(biāo)識地址變換為所述流對應(yīng)的遠(yuǎn)端標(biāo)識地址和本地標(biāo)識地址;C.將數(shù)據(jù)報發(fā)送至傳輸層。
17.如權(quán)利要求16所述的數(shù)據(jù)報的接收方法,其特征在于,所述步驟B進(jìn)一步包括下述步驟B1.判斷是否存在所述數(shù)據(jù)報對應(yīng)的流,是則執(zhí)行步驟B3,否則執(zhí)行步驟B2;B2.生成所述數(shù)據(jù)報對應(yīng)的流,并根據(jù)所述數(shù)據(jù)報的路徑源地址和路徑目的地址生成所述流的所有路徑信息;B3.將所述數(shù)據(jù)報的路徑源地址和路徑目的標(biāo)識地址變換為對應(yīng)流的遠(yuǎn)端標(biāo)識地址和本地標(biāo)識地址。
18.如權(quán)利要求17所述的數(shù)據(jù)報的接收方法,其特征在于,所述步驟C進(jìn)一步包括下述步驟當(dāng)接收到的發(fā)送流序列號大于待接收流序列號時,將數(shù)據(jù)報進(jìn)行緩存;當(dāng)接收到的發(fā)送流序列號小于待接收流序列號時,丟棄所述數(shù)據(jù)報;當(dāng)接收到的發(fā)送流序列號等于待接收流序列號時,將數(shù)據(jù)報發(fā)送到傳輸層,待接收流序列號增1。
19.如權(quán)利要求16所述的數(shù)據(jù)報的接收方法,其特征在于,在所述步驟B1之前,所述方法進(jìn)一步包括對遠(yuǎn)端源地址進(jìn)行合法性校驗的步驟。
全文摘要
本發(fā)明適用于通信領(lǐng)域,提供了一種數(shù)據(jù)報傳輸系統(tǒng)及方法,所述系統(tǒng)用于接收傳輸層的數(shù)據(jù)報,將所述數(shù)據(jù)報按其所屬的流的路徑發(fā)送;或者從路徑接收數(shù)據(jù)報,將所述數(shù)據(jù)報按所述路徑對應(yīng)的流所對應(yīng)的遠(yuǎn)端標(biāo)識地址和本地標(biāo)識地址發(fā)送至傳輸層。本發(fā)明通過對數(shù)據(jù)報進(jìn)行分路徑發(fā)送和分集接收處理,為應(yīng)用提供透明移動性和多宿支持,能夠?qū)崿F(xiàn)包括在網(wǎng)絡(luò)層之上的所有應(yīng)用的移動支持,提供了良好的NGN業(yè)務(wù)實現(xiàn)平臺。
文檔編號H04L12/56GK1859307SQ20061003432
公開日2006年11月8日 申請日期2006年3月11日 優(yōu)先權(quán)日2006年3月11日
發(fā)明者黃勇 申請人:華為技術(shù)有限公司