專利名稱:面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)傳輸方法及系統(tǒng),尤其涉及網(wǎng)格計(jì)算環(huán)境下,可以滿足網(wǎng)格應(yīng)用各 種通信需求的高效可配置數(shù)據(jù)傳輸方法及系統(tǒng)。
背景技術(shù):
隨著尖端高速通信網(wǎng)絡(luò)和強(qiáng)大廉價(jià)計(jì)算終端的出現(xiàn),全球計(jì)算領(lǐng)域正在經(jīng)歷著異常深刻 的變革,這些技術(shù)的融合導(dǎo)致了先進(jìn)高性能網(wǎng)格計(jì)算的出現(xiàn)。網(wǎng)格計(jì)算是一套全新的技術(shù), 它通過極高性能的互連網(wǎng)絡(luò)將地理上分布的計(jì)算資源構(gòu)建為大規(guī)模分布式計(jì)算系統(tǒng)。新興的 高性能網(wǎng)格涵蓋了范圍廣泛的網(wǎng)絡(luò)基礎(chǔ)設(shè)施和通信方式,以及不同類型的網(wǎng)絡(luò)應(yīng)用,包括大 規(guī)模分布式協(xié)作;遠(yuǎn)程千兆科學(xué)數(shù)據(jù)集可視化;大型科學(xué)模擬;網(wǎng)絡(luò)電話;多媒休應(yīng)用等等。 所有這些因素使得網(wǎng)格環(huán)境下的數(shù)據(jù)通信產(chǎn)生了一些新的發(fā)展趨勢育先,網(wǎng)絡(luò)技術(shù)不斷發(fā)展將高帶寬、長延時的網(wǎng)絡(luò),如Lambda(;rid (Lambda Grid — Lambada網(wǎng)格)、OptJPuier (Optica] networking, Internet protocol, Computer St.orage — 光.網(wǎng)纟各,卩義J際幼'議,計(jì) 算機(jī)存儲)、Canard網(wǎng)絡(luò),以及無線傳感器網(wǎng)絡(luò)結(jié)合在一起;其次,應(yīng)用的通信模式正在從 點(diǎn)到點(diǎn)通信向多點(diǎn)到點(diǎn)和多點(diǎn)到多點(diǎn)通信方式轉(zhuǎn)變;前者主要應(yīng)用于從多個遠(yuǎn)端數(shù)據(jù)源獲取 呈現(xiàn)數(shù)據(jù),而后者t要應(yīng)用于P2P (Peer to Peer —對等連接)網(wǎng)絡(luò);第二:,毎個M格應(yīng) 用都有其獨(dú)特的,跨越多種傳輸特征的通信需求,比如傳輸速率,延時,丟包率等。對于這些新興的網(wǎng)格計(jì)算情景,標(biāo)準(zhǔn)的數(shù)據(jù)傳輸協(xié)議如TCP (Transmission Control Protocol —傳輸層控制協(xié)議)和UDP (User Datagram Protocol —用戶數(shù)據(jù)報(bào)協(xié)議:)已 經(jīng)無法滿足需要。TCP協(xié)議會隨著帶寬和延時的增長產(chǎn)生相反的作用,從而導(dǎo)致了高帶寬長 延時網(wǎng)絡(luò)的低性能;而UDP不關(guān)心網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)?系列狀態(tài),雖然可以獲得較高的傳輸性 能,支持海量并發(fā)連接,但基本上是一個沒有保證的最小傳輸協(xié)議。此外,每個網(wǎng)格應(yīng)用都 有其獨(dú)特的通信Qos (Quality of Service —服務(wù)質(zhì)量)需求,比如遠(yuǎn)程可視化應(yīng)用可 能需要不可靠的固定速率的數(shù)據(jù)傳送;快速消息傳遞應(yīng)用可能需要最小延時的可靠數(shù)據(jù)傳輸; 而一個傳感器網(wǎng)格應(yīng)用則可能需要盡可能小的數(shù)據(jù)通信量以延長電池的使用壽命。由于TCP 和UDP協(xié)議被設(shè)計(jì)為通用傳輸協(xié)議,它們不可能為每個網(wǎng)格應(yīng)用都提供最佳的通信服務(wù)。目前,針對網(wǎng)格環(huán)境下數(shù)據(jù)傳輸協(xié)議的研究已經(jīng)展開, 一些協(xié)議TCP的升級版本被提出, 以支持共享的包交換網(wǎng)絡(luò);還有一些新的用戶層協(xié)議,比如GridFTP (Grid fi k. Transfer
Protocol —網(wǎng)格文件傳輸協(xié)議),RBUDP (Rel丄fcibe Blast User Datagram Protocol ——可 靠海量用戶數(shù)據(jù)報(bào)協(xié)議),以及GTP (Group Transport Protocol —組播協(xié)議),雖然可以 獲得比較高的可用帶寬,但是,這些協(xié)議都是針對特定的網(wǎng)絡(luò)情景和通信模式,有些甚至沒 有擁塞控制機(jī)制,無法滿足不同網(wǎng)格應(yīng)用的需求。同時,這些協(xié)議往往是從最基礎(chǔ)的部分JT 始設(shè)計(jì)和實(shí)現(xiàn),花費(fèi)了大量的開發(fā)精力。另外兩個研究方向是Globus XI〖)(Glohus eXtensiMe i叩ut/0utput System —— Globus可擴(kuò)展輸入輸出系統(tǒng))和H-CTP (Hig卜Performance Configurable Transport Protocol —高性能可配置傳輸協(xié)議),它們解決了在不同網(wǎng)格環(huán) 境下協(xié)議可配置問題,然而,Globus XI()庫是通過可配置驅(qū)動棧來支持可配置性和代碼重用 的,它對Globus的依賴性將它限制在基于Globus平臺丌-發(fā)的應(yīng)用中,而且,X.H:)將不問的 傳輸/轉(zhuǎn)換驅(qū)動器按從上到下的順序組織,這限制了驅(qū)動器配置的靈活性和驅(qū)動器之問的交 互;H-CTP則建立在自定義的應(yīng)用層協(xié)議CTP基礎(chǔ)之上,數(shù)據(jù)流需要經(jīng)過多層協(xié)議處理和格 式協(xié)商方能進(jìn)行傳輸,這大大增加了系統(tǒng)的運(yùn)行丌銷和附加延時。發(fā)明內(nèi)容本發(fā)明的目的是提出一種面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法及系統(tǒng)。所述協(xié)議基于標(biāo)準(zhǔn)的 LJDP協(xié)議,在保證高效通信的前提下,解決UDP可靠性不足的缺陷;同時,通過可配胥的功 能模塊,所述協(xié)議能夠滿足不同網(wǎng)格應(yīng)用的傳輸需求。本發(fā)明所述協(xié)議可以獨(dú)立于任何特定 的網(wǎng)格平臺并支持細(xì)粒度模塊非等級組合,系統(tǒng)運(yùn)行開銷非常低,以獲得最大的靈活性。為達(dá)到上述目的,本發(fā)明采用以下技術(shù)方案本發(fā)明面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法, 通過滑動窗口進(jìn)行消息的收發(fā)同歩以及流量控制。優(yōu)選的在所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法中,還包括在通信雙方之間采用三 次握手方式建立一條數(shù)據(jù)通信連接。優(yōu)選的在所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法中,還包括當(dāng)出現(xiàn)錯誤時,關(guān)閉永 久連接的鏈路。優(yōu)選的在所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法中,還包括在數(shù)據(jù)傳輸協(xié)議中為保 證數(shù)據(jù)可靠傳輸采用確認(rèn)技術(shù)。優(yōu)選的在所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法中,在數(shù)據(jù)通信連接的建立過程中, 若出現(xiàn)通信雙方同時發(fā)起連接的情況,則根據(jù)比較雙方IP地址大小的原則,放棄IP地址小 的一方發(fā)起的連接請求,而只接受IP地址大的一方發(fā)起的連接請求。
優(yōu)選的在所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法中,關(guān)閉永久連接的鏈路的具體歩驟為歩驟1,當(dāng)錯誤出現(xiàn)后,發(fā)現(xiàn)錯誤的一方立即停止接收上層數(shù)據(jù),并將自己的重傳隊(duì)列 中的數(shù)據(jù)進(jìn)行快速重傳并向?qū)Ψ桨l(fā)送一個關(guān)閉請求數(shù)據(jù)包-歩驟2,發(fā)現(xiàn)錯誤的方啟動個超時定時器,定時器超時之后立即關(guān)閉本端的連接并 釋放連接的資源;歩驟3,另 -方在收到主動關(guān)閉的一方發(fā)來的關(guān)閉請求后,也按照上述的方式關(guān)閉白己 的連接。優(yōu)選的在所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法中,通過滑動窗口進(jìn)行消息的收發(fā)同 歩以及流量控制的具體歩驟為歩驟i,建立接收方滑動窗口,包括接收窗口、亂序隊(duì)列和按序隊(duì)列,窗U內(nèi)對應(yīng)設(shè)有 1、已接收的最大消息序號;2、可接收的最大消息序號:3、最大按序到達(dá)消息序號;歩驟2,建立發(fā)送方滑動窗n,包括發(fā)送窗口、發(fā)送隊(duì)列和重發(fā)隊(duì)列,窗n內(nèi)對應(yīng)設(shè)有1、已發(fā)送的最大消息序號:2、可發(fā)送的最大消息序號;:3、最大按序被應(yīng)答序"歩驟3,接收方滑動窗口和發(fā)送方滑動窗口按順時針方向運(yùn)動,當(dāng)接收方可接收的敲大消息序號和已接收的最大消息序號重合的時候,接收窗口停止轉(zhuǎn)動,最終導(dǎo)致發(fā)送窗u也停止轉(zhuǎn)動;歩驟4,當(dāng)接收和發(fā)送窗口都不運(yùn)動的時,雙方BJ以進(jìn)行消息的重發(fā)、窗口探測和鏈路 保活這三種動作歩驟5,當(dāng)接收方接收到一條消息之后就將接收窗口大小減 ;步驟6,應(yīng)用層將這條消息處理后,將接收窗門的大小增加,接收方的協(xié)議處理任務(wù)在 發(fā)現(xiàn)了接收窗口增大后,向發(fā)送方發(fā)送窗口增大的通告,發(fā)送方收到通告后調(diào)整自己的發(fā)送 窗口大小。優(yōu)選的在所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法中,所述的確認(rèn)技術(shù)包括捎帶確認(rèn)、 累計(jì)確認(rèn)、超時確認(rèn)和擴(kuò)展確認(rèn)。優(yōu)選的在所述的面向網(wǎng)格的口r配置數(shù)據(jù)傳輸方法中,所述擴(kuò)展確認(rèn)包括如卩歩驟歩驟1,在接收方收到對端的失序數(shù)據(jù)包時,將其存儲在本地的失序緩沖隊(duì)列中,并設(shè) 置失序包計(jì)數(shù)器;歩驟2,接收方在計(jì)數(shù)器超過閾值或者確認(rèn)定時器超時后,向發(fā)送方發(fā)送擴(kuò)展確認(rèn)數(shù)據(jù) 包;該數(shù)據(jù)包中攜帶本端已經(jīng)收到的最大按序包序號和收到的所有失序包的序號信息 歩驟3,發(fā)送端收到由接收端傳來的擴(kuò)展確認(rèn)數(shù)據(jù)包后,將根據(jù)最大確認(rèn)序號和對端收 到的失序包的序號計(jì)算出應(yīng)該重傳的數(shù)據(jù)包序號,并從重傳隊(duì)列中取出相應(yīng)的數(shù)據(jù)包進(jìn)行快 速重傳。本發(fā)明面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng),包括TCP/IP協(xié)議傳輸層和應(yīng)用層,其特征在十,在所述TCP/IP協(xié)議傳輸層和應(yīng)用層之間置有協(xié)議功能配置模塊,該協(xié)i義功能配置模塊包拈 滑動窗口模塊,用于消息的收發(fā)同歩和流量控制;該滑動窗口模塊包括接收方滑動窗口和發(fā) 送方滑動窗口,接收方滑動窗口和發(fā)送方滑動窗口按順時針方向運(yùn)動,當(dāng)接收方nj接收的最 大消息序號和已接收的最大消息序號重合的時候,接收方滑動窗口停止轉(zhuǎn)動,最終導(dǎo)致發(fā)送 方滑動窗口也停止轉(zhuǎn)動當(dāng)接收方和發(fā)送方滑動窗l(fā)」都不運(yùn)動的時,*力'可以進(jìn)行消息的歌 發(fā)、窗口探測和鏈路?;?。優(yōu)選的在所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng)中,當(dāng)接收方接收到--條消息之后就 將接收方滑動窗口大小減一;應(yīng)用層將這條消息處理后,接收方滑動窗口的大小才增加,接 收方的協(xié)議處理任務(wù)在發(fā)現(xiàn)了接收方滑動窗口增火后,向發(fā)送方發(fā)送窗口增人的通告,發(fā)送 方收到通告后,調(diào)整自己的發(fā)送方滑動窗口大小。優(yōu)選的在所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng)中,所述協(xié)議功能配置模塊還包拈通 信連接建立模塊,用于通過三次握手方式在發(fā)送方和接收方建立數(shù)據(jù)通信連接,當(dāng)出現(xiàn)錯誤 時,關(guān)閉永久連接的鏈路。優(yōu)選的在所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng)中,所述協(xié)議功能配置模塊還包括 擴(kuò)展確認(rèn)模塊,用于數(shù)據(jù)的可靠傳輸;改擴(kuò)展確認(rèn)模塊包括失序包計(jì)數(shù)器、擴(kuò)展確認(rèn)單兀、 快速重傳單元,在接收方收到對端的失序數(shù)據(jù)包時,將其存儲在本地的失序緩沖隊(duì)列中,片 設(shè)置失序包計(jì)數(shù)器;接收方在計(jì)數(shù)器超過閾值或者確認(rèn)定時器超時后,擴(kuò)展確認(rèn)華-元向發(fā)送 方發(fā)送擴(kuò)展確認(rèn)數(shù)據(jù)包;該數(shù)據(jù)包中攜帶本端已經(jīng)收到的最大按序包序號和所有失序包的序 號信息;發(fā)送端收到擴(kuò)展確認(rèn)數(shù)據(jù)包后,快速重傳單元根據(jù)最大確認(rèn)序號和對端收到的失序包的序號,計(jì)算出應(yīng)該重傳的數(shù)據(jù)包序號,并從重傳隊(duì)列中収出相應(yīng)的數(shù)據(jù)包進(jìn),r快速重化。本發(fā)明通過滑動窗口進(jìn)行消息的收發(fā)同歩以及流量控制,從而實(shí)現(xiàn)穩(wěn)定速率,丟包歡發(fā), 以及按序傳輸?shù)裙δ?。利用滑動窗口所述協(xié)議實(shí)現(xiàn)了流量控制,實(shí)現(xiàn)流量控制的原則就是指 在大流量時接收窗口可能會長時間為零的情況下,接收方只有在接收窗口增大到 -個合適的 值時才向發(fā)送方發(fā)送窗口通告。通過這樣有效的對發(fā)送方的發(fā)送速度進(jìn)行控制,可以防止在 大流量時出現(xiàn)網(wǎng)絡(luò)過度擁塞的現(xiàn)象。采用本發(fā)明所述協(xié)議,與現(xiàn)有技術(shù)相比,通過應(yīng)用接口對協(xié)議各功能模塊進(jìn)行配置,不
僅可以滿足不同網(wǎng)格應(yīng)用的傳輸要求,還保持了傳輸?shù)母咝阅?,有效地解決了現(xiàn)有技術(shù)的缺 陷。同時,所述協(xié)議基于UDP,大大節(jié)省了設(shè)計(jì)和開發(fā)時間,可獨(dú)立于任何特定的網(wǎng)格平臺 并支持細(xì)粒度模塊非等級組合,系統(tǒng)運(yùn)行丌銷非常低,獲得了最大的靈活性。本發(fā)明所述協(xié) 議在f一代網(wǎng)絡(luò)和網(wǎng)格計(jì)算領(lǐng)域都將有著很高的實(shí)用性和推廣價(jià)值。
圖1是本發(fā)明面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)圖;圖2是本發(fā)明面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法的建立連接的過程圖;圖3是本發(fā)明面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法中滑動窗口模型的示意圖;圖4是本發(fā)明面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法軟件實(shí)現(xiàn)結(jié)構(gòu)圖。
具體實(shí)施方式
下面結(jié)合附圖,基本按照附圖的順序?qū)夹g(shù)方案的實(shí)施作進(jìn)-歩的詳細(xì)描述參照附圖1,本發(fā)明面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng),包括TCP/IP協(xié)議傳輸層和應(yīng)用層, 在所述TCP/IP協(xié)議傳輸層和應(yīng)用層之間置有協(xié)議功能配置模塊,該協(xié)議功能配置模塊包括 滑動窗口模塊,用于消息的收發(fā)同歩和流量控制;改滑動窗口模塊包括接收方滑動窗「1和發(fā) 送方滑動窗口,接收方滑動窗口和發(fā)送方滑動窗U按順時針方向運(yùn)動,當(dāng)接收方可接收的最 大消息序號和已接收的最大消息序號重合的時候,接收方滑動窗口停止轉(zhuǎn)動,最終導(dǎo)致發(fā)送 方滑動窗口也停土轉(zhuǎn)動;當(dāng)接收方和發(fā)送方滑動窗口都不運(yùn)動的時,雙方可以進(jìn)行消息的重 發(fā)、窗口探測和鏈路?;?。當(dāng)接收方接收到 -條消息之后就將接收方滑動窗口大小減一應(yīng) 用層將這條消息處理后,接收方滑動窗口的大小才增加,接收方的協(xié)議處理任務(wù)在發(fā)現(xiàn)了接 收方滑動窗口增大后,向發(fā)送方發(fā)送窗口增大的通告,發(fā)送方收到通告后,調(diào)整自己的發(fā)送 方滑動窗U大小。本發(fā)明面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng),所述協(xié)議功能配置模塊還包括通信連接建立模 塊,用于通過三次握手方式在發(fā)送方和接收方建立數(shù)據(jù)通信連接,當(dāng)出現(xiàn)錯誤時,關(guān)閉永久 連接的鏈路。本發(fā)明面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng),所述協(xié)議功能配置模塊還包括擴(kuò)展確認(rèn)模塊, 用于數(shù)據(jù)的可靠傳輸;該擴(kuò)展確認(rèn)模塊包括失序包計(jì)數(shù)器、擴(kuò)展確認(rèn)單元、快速重傳單兀, 在接收方收到對端的失序數(shù)據(jù)包時,將其存儲在本地的失序緩沖隊(duì)列中,并設(shè)置失序包計(jì)數(shù) 器;接收方在計(jì)數(shù)器超過閾值或者確認(rèn)定時器超時后,擴(kuò)展確認(rèn)單元向發(fā)送方發(fā)送擴(kuò)展確認(rèn)
數(shù)據(jù)包;該數(shù)據(jù)包中攜帶本端已經(jīng)收到的最大按序包序號和所有失序包的序號信息;發(fā)送端 收到擴(kuò)展確認(rèn)數(shù)據(jù)包后,快速重傳單元根據(jù)最大確認(rèn)序號和對端收到的失序包的序號,計(jì)算 出應(yīng)該重傳的數(shù)據(jù)包序號,并從重傳隊(duì)列中取出相應(yīng)的數(shù)據(jù)包進(jìn)行快速重傳。參見附圖2 ,作為一個可提供面向連接功能的協(xié)議,在進(jìn)行數(shù)據(jù)通信之前首先要在通信 雙方之間建立一條連接。本數(shù)據(jù)傳輸協(xié)議采用了三次握手方式實(shí)現(xiàn)了面向連接功能。本發(fā)明 所述協(xié)議在一般的情況下仿照TCP在關(guān)閉連接時的四次握手方法進(jìn)行鏈路的關(guān)閉,但是在永 久連接的鏈路中正常情況下是不需要關(guān)閉連接的,只有在出現(xiàn)錯誤的情況下才會進(jìn)行關(guān)閉操 作。具體歩驟為當(dāng)錯誤出現(xiàn)后,發(fā)現(xiàn)錯誤的一方立即停止接收上層數(shù)據(jù),并將自己的重傳隊(duì)列中的數(shù)據(jù) 進(jìn)行快速重傳并向?qū)Ψ桨l(fā)送一個關(guān)閉請求數(shù)據(jù)包發(fā)現(xiàn)錯誤的一方啟動一個超時定時器,定時器超時之后立即關(guān)閉本端的連接并釋放連接 的資源;另--方在收到主動關(guān)閉的一方發(fā)來的關(guān)閉請求后,也按照上述的方式關(guān)閉自己的連接。 連接一旦被關(guān)閉之后,只有到下次雙方要重新進(jìn)行數(shù)據(jù)通信之前再次建立連接。需要說明的是在連接的建立過程中,若出現(xiàn)雙方同時發(fā)起連接的情況,則根據(jù)比較雙方 IP地址大小的原則,放棄IP地址小的一方發(fā)起的連接請求,而只接受IP地址大的一方發(fā)起 的連接請求。在通信的雙方建立好連接后,仟何的連接請求都將不加考慮地予以丟棄。在一般的情況下可以仿照TCP在關(guān)閉連接時的四次握手方法進(jìn)行鏈路的關(guān)閉設(shè)計(jì)。但是 在永久連接的鏈路中正常情況下是不需要關(guān)閉連接的,只有在出現(xiàn)錯誤的情況下才會進(jìn)行關(guān) 閉操作。連接一旦被關(guān)閉之后,只有到下次雙方要重新進(jìn)行數(shù)據(jù)通信之前再次建立連接。圖:3介紹了滑動窗口的設(shè)計(jì)模型,其中協(xié)議傳遞的序號采用兩個字節(jié)無符號整數(shù)表示,以數(shù)據(jù)包為單位,取值范圍是() 65535,相當(dāng)于一個非常大的循環(huán),對應(yīng)圖中的大循環(huán)接收和發(fā)送方的緩沖區(qū)大小相同,也組織成環(huán)形隊(duì)列的形式,對應(yīng)圖中的小循環(huán)。如果將輸入的消息流看成推動模型運(yùn)動的動力,則這三個循環(huán)同步運(yùn)動。接收方的滑動窗口由接收窗口、亂序隊(duì)列和按序隊(duì)列這三部分組成,窗口內(nèi)的三個箭頭分別表示1、已接收的最大消息序號2、可接收的最大消息序號;3、最大按序到達(dá)消息序號。類似,發(fā)送方的滑動窗口由發(fā)送窗口,發(fā)送隊(duì)列、和重發(fā)隊(duì)列這—H部分組成,窗口內(nèi)的三個箭頭分別表示1、已發(fā)送的最大消息序號;2、可發(fā)送的最大消息序號;3、最大按序被應(yīng)答序號。兩個循環(huán)都按照順時針方向運(yùn)動,運(yùn)動的規(guī)則是當(dāng)接收方nf接收
的最大消息序號和己接收的最大消息序號重合的時候,接收窗口就停止轉(zhuǎn)動,最終導(dǎo)致發(fā)送窗口也停止轉(zhuǎn)動。在接收和發(fā)送窗口都不運(yùn)動的情況下,雙方可以進(jìn)行消息的重發(fā)、窗n探 測和鏈路?;钸@三種動作。本發(fā)明所述的數(shù)據(jù)傳輸協(xié)議利用滑動窗口實(shí)現(xiàn)了流量控制,實(shí)現(xiàn)流量控制的原則就是指 在大流量時接收窗口可能會長時間為零的情況下,接收方只有在接收窗口增大到一個合適的 值時才向發(fā)送方發(fā)送窗口通告。通過這樣有效的對發(fā)送方的發(fā)送速度進(jìn)行控制,Hj以防止在 大流量時出現(xiàn)網(wǎng)絡(luò)過度擁塞的現(xiàn)象。具體的設(shè)計(jì)策略是,每當(dāng)接收方接收到條消息之后就 將接收窗口大小減一。只有在上層應(yīng)用將這條消息處理后才將接收窗口的大小增加,接收力 的協(xié)議處理任務(wù)在發(fā)現(xiàn)了接收窗口增大后會按照流量控制的原則在恰當(dāng)?shù)臅r候向發(fā)送萬發(fā)送 窗口增大的通告,以便發(fā)送方調(diào)整自己的發(fā)送窗口大小。在數(shù)據(jù)傳遞協(xié)議中保證數(shù)據(jù)可靠傳輸?shù)幕A(chǔ)就是使用確認(rèn)技術(shù)。本發(fā)明為了更好地進(jìn)行 控制流量,達(dá)到最大限度的利用網(wǎng)絡(luò)資源的目的.采用的是捎帶確認(rèn)、累計(jì)確認(rèn)和超時確認(rèn)以及擴(kuò)展確認(rèn)這幾種方式結(jié)合來實(shí)現(xiàn)確認(rèn)。亂三種確認(rèn)方式和TCP中的用法一致。擴(kuò)展確認(rèn)的具體使用步驟是L、在接收方收到對端的失序數(shù)據(jù)包時,為了最人限度地減少重傳,牛不是簡單將其丟棄, 而是將其存儲在本地的失序緩沖隊(duì)列中.并設(shè)置失序包計(jì)數(shù)器。2、 接收方在計(jì)數(shù)器超過閾值或者確認(rèn)定時器超時后向發(fā)送方發(fā)送擴(kuò)展確認(rèn)數(shù)據(jù)包。該數(shù) 據(jù)包中攜帶本端己經(jīng)收到的最大按序包序號和收到的所有失序包的序號信息。3、 發(fā)送端收到由接收端傳來的擴(kuò)展確認(rèn)數(shù)據(jù)包后,將根據(jù)最大確認(rèn)序號和對端收到的失 序包的序號計(jì)算出應(yīng)該重傳的數(shù)據(jù)包序號,并從重傳隊(duì)列中取出相應(yīng)的數(shù)據(jù)包進(jìn)行快速重傳。圖4介紹了木發(fā)明所述的數(shù)據(jù)傳輸協(xié)議軟件實(shí)現(xiàn)模型,協(xié)議底層采川UDP作為承載協(xié)議, 根據(jù)配置增加了相關(guān)的功能模塊,在滿足各種網(wǎng)格應(yīng)用的前提下,保證數(shù)據(jù)高效"j-靠地傳輸c協(xié)議主要包括二部分可靠傳輸;?;羁刂?定時探測連接有效性) ,高效數(shù)據(jù)傳輸。為了 提高通信效率和實(shí)時性能,在操作系統(tǒng)中利用兩個任務(wù)模塊實(shí)現(xiàn)了本發(fā)明所述的f辦議軟件, 軟件結(jié)構(gòu)如圖4所示。兩個仟務(wù)個作為通信守護(hù)任務(wù),負(fù)責(zé)從UDP套接口接收數(shù)據(jù)并進(jìn)行 網(wǎng)絡(luò)字節(jié)序處理后派發(fā)到協(xié)議處理任務(wù); 一 個作為協(xié)議處理任務(wù),負(fù)貴處理接收到的數(shù)據(jù)和 發(fā)送端的數(shù)據(jù)發(fā)送以及整個網(wǎng)絡(luò)連接維護(hù)等操作。組播和單播功能則可以通過UDP特性實(shí)現(xiàn)。協(xié)議軟件主要是通過通信守護(hù)、通信處理、包接收;包發(fā)送等過程完成了大部分協(xié)議功 能。主要過程描述如下通信守護(hù),網(wǎng)絡(luò)套接口需要持續(xù)地偵聽和維護(hù),通信守護(hù)的主要功能是(l)判斷套接
口上的狀態(tài),如果套接口可操作則發(fā)送消息給通信處理任務(wù);(2)査找關(guān)閉的套接口并創(chuàng)建 套接口。通信處理,通信處理過程首先判斷消息處理任務(wù)接收到的消息類型,消息類型包括套 接口可操作;重傳數(shù)據(jù)包定時器超時;重傳檢査包定時器超時;服務(wù)器?;疃〞r器超時;客 戶端保活定時器超時。然后根據(jù)套接口的狀態(tài)進(jìn)行相應(yīng)的處理(收包、發(fā)包或套接口異常處 理),包括異常處理和收包、發(fā)包。最后根據(jù)是否定時超時的類型進(jìn)行相應(yīng)的處理。數(shù)據(jù)包接收,當(dāng)接收端接收到數(shù)據(jù)包后,首先根據(jù)功能配置進(jìn)行確認(rèn)處理,然后將接收 來的數(shù)據(jù)包進(jìn)行拆分,把包內(nèi)的用戶消息和數(shù)據(jù)送至其指定的目的進(jìn)程中。數(shù)據(jù)包發(fā)送,發(fā)包處理使用洗衣通信處理模塊傳輸用戶消息時,通信處理模塊按照功能 配置決定是否將用戶待傳輸消息進(jìn)行編號(即序列號),然后打包裝入數(shù)據(jù)包,最后通過UL)P 套接口發(fā)出。如果一定時間內(nèi)接收不到該數(shù)據(jù)包的確認(rèn)則按功能配置進(jìn)行重發(fā),,
權(quán)利要求
1. 一種面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法,其特征在于通過滑動窗口進(jìn)行消息的收發(fā)同步以及流量控制。
2、 根據(jù)權(quán)利要求1所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法,其特征在于還包括在通信 雙方之間采用三次握手方式建立--條數(shù)據(jù)通信連接。
3、 根據(jù)權(quán)利要求2所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法,其特征在于還包括,出現(xiàn) 錯誤時,關(guān)閉永久連接的鏈路。
4、 根據(jù)權(quán)利要求l所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法,其特征在于還包括在數(shù)據(jù) 傳輸協(xié)議中為保證數(shù)據(jù)可靠傳輸采用確認(rèn)技術(shù)。
5、 根據(jù)權(quán)利要求2所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法,其特征在于在數(shù)據(jù)通信連 接的建立過程中,若出現(xiàn)通信雙方同時發(fā)起連接的情況,則比較雙方1P地址大小,放棄iP 地址小的一方發(fā)起的連接請求,而只接受IP地址大的 一方發(fā)起的連接請求。
6、根據(jù)權(quán)利要求1所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法,其特祉在于通過滑動窗[l進(jìn) 行消息的收發(fā)同歩以及流量控制的具體歩驟為歩驟l,建立接收方滑動窗口,包括接收窗口、亂序隊(duì)列和按序隊(duì)列,窗l(fā):]內(nèi)對應(yīng)設(shè)有 1、已接收的最大消息序號;2、可接收的最大消息序號;;k最大按序到達(dá)消息序號;歩驟2,建立發(fā)送方滑動窗口,包括發(fā)送窗口、發(fā)送隊(duì)列和重發(fā)隊(duì)列,窗口內(nèi)對應(yīng)設(shè)有 1、已發(fā)送的最大消息序號;2、可發(fā)送的最大消息序號;3、最大按序被應(yīng)答序號;歩驟3,接收方滑動窗口和發(fā)送方滑動窗口按順時針方向運(yùn)動,當(dāng)接收方可接收的最大 消息序號和己接收的最大消息序號重合的時候,接收窗口停止轉(zhuǎn)動,最終導(dǎo)致發(fā)送窗「—!也停 止轉(zhuǎn)動;歩驟4,當(dāng)接收和發(fā)送窗口都不運(yùn)動的時,雙方可以進(jìn)行消息的重發(fā)、窗口探測和鏈路 保活這三種動作;歩驟5,當(dāng)接收方接收到一條消息之后就將接收窗口大小減--;歩驟6,應(yīng)用層將該條消息處理后,將接收窗口的大小增加,接收方的協(xié)議處理任務(wù)在 發(fā)現(xiàn)了接收窗口增大后,向發(fā)送方發(fā)送窗口增大的通告,發(fā)送方收到通告后調(diào)整自己的發(fā)送 窗口大小。
7、根據(jù)權(quán)利要求3所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法,其特征在于關(guān)閉永久連接的 鏈路的具體歩驟為歩驟1,當(dāng)錯誤出現(xiàn)后,發(fā)現(xiàn)錯誤的--方立即停止接收上層數(shù)據(jù),并將自己的重傳隊(duì)列 中的數(shù)據(jù)進(jìn)行快速重傳,并向?qū)Ψ桨l(fā)送一個關(guān)閉請求數(shù)據(jù)包; 歩驟2,發(fā)現(xiàn)錯誤的一方啟動一個超時定時器,該定時器超時之后立即關(guān)閉本端的連接 并釋放連接的資源;歩驟3,另-一方在收到主動關(guān)閉的一方發(fā)來的關(guān)閉請求后,也按照..t述的方式關(guān)閉自己 的連接。
8、 根據(jù)權(quán)利要求4所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法,其特征在于所述的確認(rèn)技術(shù) 包括捎帶確認(rèn)、累計(jì)確認(rèn)、超時確認(rèn)和擴(kuò)展確認(rèn)。
9、 根據(jù)權(quán)利要求8所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸方法,其特征在于所述擴(kuò)展確認(rèn)包 括如下歩驟-歩驟1,在接收方收到對端的失序數(shù)據(jù)包時,將其存儲在本地的失序緩沖隊(duì)列中,并設(shè) 置失序包計(jì)數(shù)器;歩驟2,接收方在計(jì)數(shù)器超過閾值或者確認(rèn)定時器超時后,向發(fā)送方發(fā)送擴(kuò)展確認(rèn)數(shù)據(jù) 包;該數(shù)據(jù)包中攜帶本端已經(jīng)收到的最大按序包序號和收到的所有失序包的序號信息;步驟3,發(fā)送端收到由接收端傳來的擴(kuò)展確認(rèn)數(shù)據(jù)包后,將根據(jù)最大確認(rèn)序號和對端收 到的失序包的序號計(jì)算出應(yīng)該重傳的數(shù)據(jù)包序號,并從重傳隊(duì)列中取出相應(yīng)的數(shù)據(jù)包進(jìn)行快速重傳。
10、 -種面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng),包括TCP/IP協(xié)議傳輸層和應(yīng)用層,其特征在 十,在所述TCP/IP協(xié)議傳輸層和應(yīng)用層之間置有協(xié)議功能配置模塊,該協(xié)議功能配置模塊包 括滑動窗口模塊,用于消息的收發(fā)同歩和流量控制;該滑動窗n模塊包括接收方滑動窗口 和發(fā)送方滑動窗口 ,接收方滑動窗口和發(fā)送方滑動窗口按順時針方向運(yùn)動,當(dāng)接收方可接收 的最大消息序號和已接收的最大消息序號重合的時候,接收方滑動窗口停止轉(zhuǎn)動,最終導(dǎo)致 發(fā)送方滑動窗口也停止轉(zhuǎn)動;當(dāng)接收方和發(fā)送方滑動窗口都不運(yùn)動的時,雙方可以進(jìn)行消息 的重發(fā)、窗口探測和鏈路保活。
11、 根據(jù)權(quán)利要求IO所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng),其特征在于當(dāng)接收方接 收到 一條消息之后就將接收方滑動窗口大小減- ;應(yīng)用層將這條消息處理后,接收方滑動窗 口的大小才增加,接收方的協(xié)議處理任務(wù)在發(fā)現(xiàn)了接收方滑動窗口增人后,向發(fā)送方發(fā)送窗 口增大的通告,發(fā)送方收到通告后,調(diào)整自己的發(fā)送方滑動窗U大小。
12、 根據(jù)權(quán)利要求io所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng),其特征在r:所述協(xié)議功能配置模塊還包括通信連接建立模塊,用于通過三次握手方式在發(fā)送方和接收方建立數(shù)據(jù)通 信連接,當(dāng)出現(xiàn)錯誤時,關(guān)閉永久連接的鏈路。
13、 根據(jù)權(quán)利要求10所述的面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng),其特征在于所述協(xié)議功能配置模塊還包括擴(kuò)展確認(rèn)模塊,用于數(shù)據(jù)的可靠傳輸;該擴(kuò)展確認(rèn)模塊包括失序包i卜數(shù) 器、擴(kuò)展確認(rèn)單元、快速重傳單元,在接收方收到對端的失序數(shù)據(jù)包時,將其存儲在本地的 失序緩沖隊(duì)列中,并設(shè)置失序包計(jì)數(shù)器;接收方在計(jì)數(shù)器超過閾值或者確認(rèn)定時器超時后, 擴(kuò)展確認(rèn)單元向發(fā)送方發(fā)送擴(kuò)展確認(rèn)數(shù)據(jù)包該數(shù)據(jù)包中攜帶本端已經(jīng)收到的最大按序包序 號和所有失序包的序號信息;發(fā)送端收到擴(kuò)展確認(rèn)數(shù)據(jù)包后,快速重傳單元根據(jù)最大確認(rèn)序 號和對端收到的失序包的序號,計(jì)算出應(yīng)該重傳的數(shù)據(jù)包序號,并從重:傳隊(duì)列中取出相應(yīng)的 數(shù)據(jù)包進(jìn)行快速重傳。
全文摘要
本發(fā)明公開了一種面向網(wǎng)格的可配置數(shù)據(jù)傳輸系統(tǒng),解決了現(xiàn)有協(xié)議可靠性不足,系統(tǒng)運(yùn)行開銷高的問題。包括在通信雙方之間采用三次握手方式建立一條數(shù)據(jù)通信連接;當(dāng)出現(xiàn)錯誤時關(guān)閉永久連接的鏈路;通過滑動窗口進(jìn)行消息的收發(fā)同步以及流量控制;在數(shù)據(jù)傳輸協(xié)議中,為保證數(shù)據(jù)可靠傳輸采用確認(rèn)技術(shù)。本發(fā)明通過滑動窗口進(jìn)行消息的收發(fā)同步以及流量控制,從而實(shí)現(xiàn)穩(wěn)定速率,丟包重發(fā),以及按序傳輸?shù)裙δ堋f(xié)議實(shí)現(xiàn)了流量控制,在大流量時接收窗口可能會長時間為零的情況下,接收方只有在接收窗口增大到一個合適的值時,才向發(fā)送方發(fā)送窗口通告。通過這樣有效的對發(fā)送方的發(fā)送速度進(jìn)行控制,可以防止在大流量時出現(xiàn)網(wǎng)絡(luò)過度擁塞的現(xiàn)象。
文檔編號H04L12/56GK101212401SQ20061016736
公開日2008年7月2日 申請日期2006年12月29日 優(yōu)先權(quán)日2006年12月29日
發(fā)明者張芝萍, 王繼剛, 謝世波 申請人:中興通訊股份有限公司