專利名稱:基于rnc實(shí)現(xiàn)tcp代理的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,特別涉及一種基于RNC實(shí)現(xiàn)TCP代理的方法及裝置。
背景技術(shù):
基于3G技術(shù)的移動通信系統(tǒng)中,應(yīng)用服務(wù)器和用戶終端之間建立的 TCP (Transmission Control Protocol,傳輸控制協(xié)議)連接一般分為兩個部分,參閱圖 1所示,應(yīng)用服務(wù)器<_>核心網(wǎng)<->RNC<_>NodeB,和NodeB<->用戶終端,前者為 有線鏈路,后者為無線鏈路。從圖1中可以看出,應(yīng)用服務(wù)器和用戶終端之間建立的 TCP連接只有在NodeB到用戶終端之間使用的是無線傳輸媒介,其他部分使用的還是 有線傳輸媒介。由于無線傳輸環(huán)境自身具有誤碼率高、帶寬低、傳輸時延較長、傳輸 波動性大、切換及重定位過程中易丟失數(shù)據(jù)等缺陷,因此,NodeB與用戶終端之間的這 段無線傳輸媒介最有可能導(dǎo)致TCP連接的擁塞控制出現(xiàn),相應(yīng)地,現(xiàn)有技術(shù)下,基于 RNC (RNC (RNC, Radio Network Controller,無線網(wǎng)絡(luò)控制器)實(shí)現(xiàn) TCP Proxy (TCP 代 理)功能時,首先要考慮的便是如何盡可能減少或屏蔽這段無線傳輸對整個TCP連接造 成的影響。目前,基于RNC實(shí)現(xiàn)TCP Proxy時,通常包含以下實(shí)現(xiàn)方式1、令RNC支持對接收到的用戶終端發(fā)送的TCP應(yīng)答報文的復(fù)制。因?yàn)門CP連 接上的數(shù)據(jù)傳輸速率是逐漸增加的,傳輸啟動后,應(yīng)用服務(wù)器在接收到用戶終端返回的 TCP應(yīng)答報文后,會提高TCP數(shù)據(jù)報文的發(fā)送速率。2、RNC支持對用戶終端發(fā)送的副本應(yīng)答進(jìn)行復(fù)制,以加速丟失數(shù)據(jù)的重傳。因 為,基于現(xiàn)有的TCP連接控制機(jī)制,應(yīng)用服務(wù)器接收到用戶終端返回的副本應(yīng)答的數(shù)目 超過設(shè)定閾值時,會認(rèn)為相應(yīng)的TCP數(shù)據(jù)報文發(fā)送失敗,會進(jìn)行重傳,因此,對副本應(yīng) 答進(jìn)行復(fù)制,可以提高重傳效率。3、當(dāng)上下行同時存在數(shù)據(jù)傳輸時,RNC支持根據(jù)用戶終端發(fā)送的RLC(Radk) Link Control,無線鏈路控制)層的應(yīng)答報文來組裝上行TCP應(yīng)答報文,以提高應(yīng)用服務(wù) 器的TCP數(shù)據(jù)報文的發(fā)送速率。從上述方案可以看出,現(xiàn)有技術(shù)下,RNC仍然是基于用戶終端的反饋向應(yīng)用服 務(wù)器返回相應(yīng)的TCP應(yīng)答報文,也就是說,RNC必須等到用戶終端作出應(yīng)答(TCP層應(yīng) 答或RLC層應(yīng)答)后,才能進(jìn)行下一步操作,而應(yīng)用服務(wù)器只有收到RNC基于用戶終 端的反饋而返回的TCP應(yīng)答報文,才會發(fā)送下一輪TCP數(shù)據(jù)報文,因此,從本質(zhì)上看, 無線傳輸媒介所帶來的影響仍然存在,若用戶終端受無線資源限制,無法定時向RNC反 饋,則RNC和應(yīng)用服務(wù)器均不會執(zhí)行后續(xù)操作,顯然,這將會降低TCP連接上的數(shù)據(jù)傳 輸效率,嚴(yán)重時,可能會造成TCP連接上的數(shù)據(jù)擁塞。
發(fā)明內(nèi)容
本發(fā)明提供一種基于RNC實(shí)現(xiàn)TCP代理的方法及裝置,用以提高TCP報文的傳輸效率,避免了由無線傳輸媒介所帶來的傳輸擁塞。本發(fā)明方法包括一種實(shí)現(xiàn)TCP代理的方法,包括RNC接收應(yīng)用服務(wù)器發(fā)往用戶終端的TCP數(shù)據(jù)報文;RNC保存接收的TCP數(shù)據(jù)報文,并向所述應(yīng)用服務(wù)器返回TCP應(yīng)答報文;RNC將保存的TCP數(shù)據(jù)報文發(fā)往相應(yīng)的用戶終端。一種實(shí)現(xiàn)TCP代理的裝置,包括第一通信單元,用于接收應(yīng)用服務(wù)器發(fā)往用戶終端的TCP數(shù)據(jù)報文;處理單元,用于保存接收的TCP數(shù)據(jù)報文,并通過所述第一通信單元向所述應(yīng) 用服務(wù)器返回TCP應(yīng)答報文;第二通信單元,用于將保存的TCP數(shù)據(jù)報文發(fā)往相應(yīng)的用戶終端。本發(fā)明實(shí)施例中,重新設(shè)計(jì)了 RNC的TCP Proxy功能,令RNC接收到應(yīng)用服 務(wù)器發(fā)往用戶終端的TCP數(shù)據(jù)報文后,代替用戶終端直接向應(yīng)用服務(wù)器返回TCP應(yīng)答報 文,然后,再將接收的TCP數(shù)據(jù)報文發(fā)往相應(yīng)的用戶終端,因?yàn)閺膽?yīng)用服務(wù)器到RNC之 間是有線傳輸媒介,RTT(往返時延)波動很小,從而,采用上述方法可以有效屏蔽無線 傳輸環(huán)境造成的TCP連接上的數(shù)據(jù)擁塞,提高了 TCP連接上的數(shù)據(jù)傳輸效率,保證了系 統(tǒng)的整體性能。
圖1為本發(fā)明實(shí)施例中通信系統(tǒng)體系架構(gòu)示意圖;圖2為本發(fā)明實(shí)施例中RNC功能結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例中基于RNC實(shí)現(xiàn)TCP代理流程圖;圖4為本發(fā)明實(shí)施例中RNC向RNC返回TCP應(yīng)答報文流程圖。
具體實(shí)施例方式為了提高TCP連接的數(shù)據(jù)傳輸速率,降低因無線傳輸特性所帶來的數(shù)據(jù)傳輸錯 誤,本發(fā)明實(shí)施例中,基于RNC實(shí)現(xiàn)了 TCP代理,令RNC在接收到應(yīng)用服務(wù)器發(fā)往用 戶終端的TCP數(shù)據(jù)后,先將RNC數(shù)據(jù)保存,并代替用戶終端向應(yīng)用服務(wù)器返回TCP應(yīng) 答,然后再將保存的TCP數(shù)據(jù)發(fā)往相應(yīng)的用戶終端,這樣,避免了無線傳輸所帶來的應(yīng) 答時延,下面結(jié)合附圖對本發(fā)明優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)說明。參閱圖1和圖2所示,本發(fā)明實(shí)施例中,通信系統(tǒng)內(nèi)包括應(yīng)用服務(wù)器、核心網(wǎng)、 RNC和用戶終端,其中,RNC包括第一通信單元20、處理單元21和第二通信單元22, 其中,第一通信單元20,用于接收應(yīng)用服務(wù)器發(fā)往用戶終端的TCP數(shù)據(jù)報文;處理單元21,RNC保存接收的TCP數(shù)據(jù)報文,并通過第一通信單元20向所述 應(yīng)用服務(wù)器返回TCP應(yīng)答報文;第二通信單元22,用于將保存的TCP數(shù)據(jù)報文發(fā)往相應(yīng)的用戶終端。參閱圖3所示,本發(fā)明實(shí)施例中,基于RNC實(shí)現(xiàn)TCP代理的詳細(xì)流程如下
步驟300 RNC接收應(yīng)用服務(wù)器發(fā)往用戶終端的TCP數(shù)據(jù)報文。實(shí)際應(yīng)用中,RNC在內(nèi)部設(shè)置一個數(shù)據(jù)區(qū),用來存儲當(dāng)前存在的TCP連接的 相關(guān)信息,包括TCP連接的源IP地址、目的IP地址、源端口號、目的端口號、最新從 應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序列號、最新發(fā)送給應(yīng)用服務(wù)器的TCP應(yīng)答報文的序 列號、最新發(fā)送給用戶終端的TCP數(shù)據(jù)報文的序列號、最新從用戶終端接收的TCP應(yīng)答 報文的序列號,以及對應(yīng)TCP連接緩存的由應(yīng)用服務(wù)器發(fā)往用戶終端的TCP數(shù)據(jù)報文等 等。因此,RNC接收到應(yīng)用服務(wù)器發(fā)往某個用戶終端的TCP數(shù)據(jù)報文時,需要解析TCP 數(shù)據(jù)報文的協(xié)議頭,根據(jù)解析結(jié)果確定該用戶終端已與本RNC建立TCP連接時,再執(zhí)行 后續(xù)處理步驟。步驟310 RNC保存接收的TCP數(shù)據(jù)報文,并直接向應(yīng)用服務(wù)器返回TCP應(yīng)答 報文。參閱圖4所示,本實(shí)施例中,RNC在執(zhí)行步驟310時,包括步驟3100 RNC將接收的TCP數(shù)據(jù)報文的序列號與本地緩存的最新從應(yīng)用服務(wù) 器接收的TCP數(shù)據(jù)報文的序列號進(jìn)行比較,若兩者相等,則執(zhí)行步驟3101,若前者大于 后者,則執(zhí)行步驟3102。RNC從應(yīng)用服務(wù)器接收到一條TCP數(shù)據(jù)報文時,假設(shè)該TCP數(shù)據(jù)報文的序列 號為1,報文長度為100字節(jié),則RNC會將本地緩存的最新從應(yīng)用服務(wù)器接收的TCP數(shù) 據(jù)報文的序列號更新為101,若下一次從應(yīng)用服務(wù)器接收到的TCP數(shù)據(jù)報文的序列號為 101,則說明接收到的TCP數(shù)據(jù)報文是按序發(fā)送的,沒有丟失,若下一次從應(yīng)用服務(wù)器 接收到的TCP數(shù)據(jù)報文的序列號大于101,則說明接收到的TCP數(shù)據(jù)報文不是按序發(fā)送 的,存在丟失的TCP數(shù)據(jù)報文。進(jìn)一步地,若RNC接收的TCP數(shù)據(jù)報文的序列號小于本地緩存的最新從應(yīng)用 服務(wù)器接收的TCP數(shù)據(jù)報文的序列號,則說明已經(jīng)接收過該TCP數(shù)據(jù)報文,直接丟棄即可。步驟3101:緩存接收的TCP數(shù)據(jù)報文,對本地緩存的最新從應(yīng)用服務(wù)器接收的 TCP數(shù)據(jù)報文的序列號進(jìn)行更新。例如,RNC本地緩存的最新從應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序列號為 101,而RNC從應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序列號為101,報文長度為100,則 RNC將本地緩存的最新從應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序列號更新為201。步驟3102:緩存接收的TCP數(shù)據(jù)報文,較佳的,和之前緩存的TCP數(shù)據(jù)報文按 序排列,如,將序列號為101和105的TCP數(shù)據(jù)報文按序緩存,待后續(xù)接收到丟失的TCP 數(shù)據(jù)報文時,再重新排序。例如,RNC本地緩存的最新從應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序列號為 101,而RNC從應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序列號為105,報文長度為100,則 RNC不對本地緩存的最新從應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序列號進(jìn)行更新,仍為 101。步驟3103 RNC基于當(dāng)前緩存的最新從應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序列 號,向應(yīng)用服務(wù)器返回相應(yīng)的TCP應(yīng)答報文。本發(fā)明實(shí)施例中,若RNC對本地緩存的最新從應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序列號執(zhí)行過更新操作,則根據(jù)更新后的最新從應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序 列號,向應(yīng)用服務(wù)器返回攜帶該序列號的TCP應(yīng)答報文,以通知應(yīng)用服務(wù)器正確接收了 相應(yīng)的TCP數(shù)據(jù)報文。例如,應(yīng)用服務(wù)器發(fā)送的TCP數(shù)據(jù)報文的序列號為101,接收到RNC返回的 TCP應(yīng)答報文的序列號為101,則認(rèn)為該TCP數(shù)據(jù)報文正確接收。若RNC對本地緩存的最新從應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序列號未執(zhí)行過 更新操作,則根據(jù)原始緩存的最新從應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序列號,向應(yīng)用 服務(wù)器返回攜帶該序列號的TCP應(yīng)答報文,以通知應(yīng)用服務(wù)器未正確接收相應(yīng)的TCP數(shù) 據(jù)報文,需要重新發(fā)送。例如,應(yīng)用服務(wù)器發(fā)送的TCP數(shù)據(jù)報文的序列號為105,接收到RNC返回的 TCP應(yīng)答報文的序列號為101,則認(rèn)為該TCP數(shù)據(jù)報文未正確接收,需要重新發(fā)送丟失的 TCP數(shù)據(jù)報文。步驟320 RNC將緩存的TCP數(shù)據(jù)報文發(fā)往相應(yīng)的用戶終端?;谏鲜鰧?shí)施例,RNC將TCP數(shù)據(jù)報文發(fā)往相應(yīng)的用戶終端后,若接收到該用 戶終端的返回的TCP應(yīng)答報文,則解析該TCP應(yīng)答報文的協(xié)議頭,根據(jù)解析結(jié)果確定該 用戶終端已與本RNC建立TCP連接時,再執(zhí)行以下操作進(jìn)行后續(xù)處理步驟A RNC判斷接收到的TCP應(yīng)答報文是否攜帶有用戶終端向應(yīng)用服務(wù)器反 饋的TCP數(shù)據(jù),若是,則進(jìn)行步驟B;否則,進(jìn)行步驟D ;由于RNC在接收到應(yīng)用服務(wù)器下發(fā)的TCP數(shù)據(jù)報文時,已代替用戶終端向應(yīng)用 服務(wù)器返回了 TCP應(yīng)答報文,應(yīng)用服務(wù)器已經(jīng)認(rèn)為用戶終端成功接收了 TCP數(shù)據(jù)報文, 并且可能進(jìn)一步下發(fā)了最新的TCP數(shù)據(jù)報文,因此,此時若再將用戶終端反饋的TCP應(yīng) 答報文發(fā)往應(yīng)用服務(wù)器,會造成應(yīng)用服務(wù)器處理流程的混亂;但是,若用戶終端發(fā)送的 TCP應(yīng)答報文中并不僅僅包含應(yīng)答標(biāo)志位,而是進(jìn)一步攜帶有用戶終端發(fā)往應(yīng)用服務(wù)器 的TCP數(shù)據(jù),那么,此時若不將TCP應(yīng)答報文發(fā)往應(yīng)用服務(wù)器,則同樣會影響應(yīng)用服務(wù) 器的后續(xù)處理流程。面對這一矛盾的情況,本實(shí)施例中,需要RNC根據(jù)用戶終端反饋的 TCP應(yīng)答報文包含的實(shí)際內(nèi)容,作出不同的處理。步驟B: RNC判斷接收的TCP應(yīng)答報文是否為重復(fù)應(yīng)答,若是,則執(zhí)行步驟 D;否則,執(zhí)行步驟C。實(shí)際應(yīng)用中,用戶終端可能會多次返回TCP應(yīng)答報文,RNC需要根據(jù)TCP應(yīng)答 報文序列號判斷是否已接收過同樣的TCP應(yīng)答報文,以避免重復(fù)處理。步驟C RNC將用戶終端發(fā)送的TCP應(yīng)答報文包含的應(yīng)答標(biāo)志位標(biāo)記為無效 后,將該TCP應(yīng)答報文發(fā)往應(yīng)用服務(wù)器。將TCP應(yīng)答報文包含的應(yīng)答標(biāo)志位標(biāo)記為無效后,如,將TCP應(yīng)答報文中的 ACK比特位標(biāo)記為0,應(yīng)用服務(wù)器便不會將該TCP應(yīng)答報文作為正常的TCP應(yīng)答報文處 理,而是只會處理其攜帶的TCP數(shù)據(jù)部分,這樣,便不會對應(yīng)用服務(wù)器的處理流程造成 影響。進(jìn)一步地,如果,接收的TCP應(yīng)答報文序列號大于緩存的最新TCP應(yīng)答報文序列 號,則更新該最新TCP應(yīng)答報文序列號;步驟D RNC將接收的TCP應(yīng)答報文丟棄。本實(shí)施例中,RNC對于用戶終端發(fā)送的未攜帶有TCP數(shù)據(jù)的TCP應(yīng)答報文,以及重復(fù)發(fā)送的TCP應(yīng)答報文,均予以丟棄;若RNC根據(jù)TCP應(yīng)答報文確定用戶終端未 正常接收之前發(fā)送的TCP數(shù)據(jù)報文,則RNC根據(jù)本地緩存的數(shù)據(jù),向用戶終端重傳相應(yīng) 的TCP數(shù)據(jù)報文。本實(shí)施例中,RNC確定用戶終端返回的TCP應(yīng)答報文的序列號大于本地緩存的 最新從用戶終端接收的TCP應(yīng)答報文的序列號時,則更新該最新從用戶終端接收的TCP 應(yīng)答報文的序列號。在上述實(shí)施例中,應(yīng)用服務(wù)器向每一個用戶終端發(fā)送的TCP數(shù)據(jù)報文,均緩存 在RNC上,每一個用戶終端的TCP數(shù)據(jù)報文占用相應(yīng)的一塊緩存空間,由于RNC處理 能力有限,因此,為了避免數(shù)據(jù)擁塞,當(dāng)針對任意一個用戶終端的TCP數(shù)據(jù)報文占用的 緩存空間大小超過第一預(yù)設(shè)門限值(即緩存上限)時,RNC需要通知應(yīng)用服務(wù)器,降低 針對該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速率;相應(yīng)的,為了避免數(shù)據(jù)處理效率過低,當(dāng) 針對任意一個用戶終端的TCP數(shù)據(jù)報文占用的緩存空間大小低于第二預(yù)設(shè)門限值(即緩 存下限)時,RNC需要通知應(yīng)用服務(wù)器,提高針對該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速 率。上述實(shí)施例中,在步驟310和步驟320中,RNC也可以先向應(yīng)用服務(wù)器返回TCP 應(yīng)答報文,再將接收的TCP數(shù)據(jù)報文進(jìn)行保存,或者兩者同步進(jìn)行,保存步驟和應(yīng)答步 驟沒有嚴(yán)格的執(zhí)行順序限制?;谏鲜鰧?shí)施例,在實(shí)際應(yīng)用中,用戶終端通常不會固定停留在同一位置,而 是會在各NodeB管轄的小區(qū)之間移動,RNC通常會管轄多個NodeB,因此也會管轄多個 小區(qū),當(dāng)某一用戶終端移動至RNC的邊緣覆蓋小區(qū)時,該用戶終端的網(wǎng)絡(luò)環(huán)境有可能會 發(fā)生變化,因此用戶終端有可能需要重定位至另一 RNC,此時,RNC若仍然正常接收應(yīng) 用服務(wù)器發(fā)往該用戶終端的TCP報文,則一旦觸發(fā)了重定位過程,將會令該RNC與該用 戶終端之間的TCP連接中斷,從而造成該RNC上大量的TCP數(shù)據(jù)報文的堆積,影響該 RNC整體性能的同時,也影響了用戶終端的TCP數(shù)據(jù)報文的接收。因此,面對這一情況,RNC—旦獲知某一用戶終端移動至邊緣覆蓋小區(qū),則通 知應(yīng)用服務(wù)器將針對該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速率降低至指定數(shù)值,較佳的, 降低為當(dāng)前發(fā)送速率的一半。待RNC根據(jù)用戶終端的測量報告作出重定位決策時,RNC 將通知應(yīng)用服務(wù)器將針對該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速度降低為1個MSS (最大 發(fā)送長度),并不再接收應(yīng)用服務(wù)器針對該用戶終端發(fā)送的TCP數(shù)據(jù)報文。RNC通知應(yīng)用服務(wù)器將TCP數(shù)據(jù)報文的發(fā)送速率降低為1個MSS,是為了令應(yīng) 用服務(wù)器針對該用戶終端始終處于服務(wù)狀態(tài),若將發(fā)送速率降低為0個MSS,將會令應(yīng) 用服務(wù)器針對該用戶終端的服務(wù)中斷,即使用戶終端重定位至另一個RNC,應(yīng)用服務(wù)器 也會在相當(dāng)長的一段時間不向該用戶終端發(fā)送TCP數(shù)據(jù)報文,從而嚴(yán)重影響用戶終端的 業(yè)務(wù)使用。相應(yīng)地,RNC雖然通知應(yīng)用服務(wù)器將TCP數(shù)據(jù)報文的發(fā)送速率降低為1個 MSS,但自身卻不再接收應(yīng)用服務(wù)器發(fā)送的針對該用戶終端的TCP數(shù)據(jù)報文,而是盡快 將本地緩存的針對該用戶終端的TCP數(shù)據(jù)報文發(fā)往用戶終端后,啟動重定位流程。當(dāng)用戶終端成功重定位至另一 RNC(以下稱為目標(biāo)RNC)時,目標(biāo)RNC上根據(jù) 接收到的上下行TCP數(shù)據(jù),重新在本地存儲用戶終端的TCP連接相關(guān)信息。重定位后, 用戶終端最初也是停留在目標(biāo)RNC的邊緣覆蓋小區(qū),因此,目標(biāo)RNC會通知應(yīng)用服務(wù)器將針對該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速率設(shè)置為一個較低的取值,較佳的,設(shè)置為 最大發(fā)送速率的一半,待用戶終端移動至非邊緣覆蓋小區(qū)后,再逐步恢復(fù)至正常的發(fā)送 速率。另一方面,用戶終端也有可能在兩個不同制式的移動通信系統(tǒng)之間進(jìn)行切換, 例如,在TD-SCDMA系統(tǒng)和GSM系統(tǒng)之間切換,RNC是TD-SCDMA系統(tǒng)內(nèi)的裝置。 當(dāng)某一用戶終端移動至RNC的邊緣覆蓋小區(qū)時,該用戶終端有可能需要切換至另一個系 統(tǒng)中,如,GSM系統(tǒng);RNC若仍然正常接收應(yīng)用服務(wù)器發(fā)往該用戶終端的TCP報文, 則一旦觸發(fā)了系統(tǒng)間的切換流程,將會令該RNC與該用戶終端之間的TCP連接中斷,從 而造成該RNC上大量的TCP數(shù)據(jù)報文的堆積,影響該RNC整體性能的同時,也影響了 用戶終端的TCP數(shù)據(jù)報文的接收。因此,面對這一情況,RNC—旦獲知某一用戶終端移動至邊緣覆蓋小區(qū),則通 知應(yīng)用服務(wù)器將針對該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速率降低至指定數(shù)值,較佳的, 降低為當(dāng)前發(fā)送速率的一半。待RNC根據(jù)用戶終端的測量報告作出系統(tǒng)間切換決策時, RNC將通知應(yīng)用服務(wù)器將針對該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速度降低為1個MSS, 并不再接收應(yīng)用服務(wù)器針對該用戶終端發(fā)送的TCP數(shù)據(jù)報文,以及將本地緩存的針對該 用戶終端的TCP數(shù)據(jù)報文發(fā)往用戶終端后,啟動系統(tǒng)間切換流程。相應(yīng)地,當(dāng)RNC確定某一用戶終端由GSM系統(tǒng)切換至TD-SCDMA系統(tǒng)時,即 進(jìn)入本RNC的邊緣覆蓋小區(qū),根據(jù)接收到的上下行TCP數(shù)據(jù),重新在本地保存該用戶終 端的TCP連接相關(guān)信息,同時,通知應(yīng)用服務(wù)器將針對該用戶終端的TCP數(shù)據(jù)報文的發(fā) 送速率設(shè)置為一個較低的取值,較佳的,設(shè)置為最大發(fā)送速率的一半,待用戶終端移動 至非邊緣覆蓋小區(qū)后,再恢復(fù)至正常的發(fā)送速率。本發(fā)明實(shí)施例中,重新設(shè)計(jì)了 RNC的TCP Proxy功能,令RNC接收到應(yīng)用服
務(wù)器發(fā)往用戶終端的TCP數(shù)據(jù)報文后,代替用戶終端直接向應(yīng)用服務(wù)器返回TCP應(yīng)答報 文,然后,再將接收的TCP數(shù)據(jù)報文發(fā)往相應(yīng)的用戶終端,因?yàn)閺膽?yīng)用服務(wù)器到RNC之 間是有線傳輸媒介,RTT (往返時延)波動很小,從而,采用上述方法可以有效屏蔽無線 傳輸環(huán)境造成的TCP連接上的數(shù)據(jù)擁塞,提高了 TCP連接上的數(shù)據(jù)傳輸效率,保證了系 統(tǒng)的整體性能。另外,本發(fā)明實(shí)施例中,通過RNC對接收的TCP數(shù)據(jù)報文占用的存儲空間進(jìn) 行監(jiān)測,從而調(diào)整應(yīng)用服務(wù)器的TCP數(shù)據(jù)報文的發(fā)送速率,進(jìn)一步避免了數(shù)據(jù)擁塞的發(fā) 生;同時,通過RNC對從用戶終端接收到的TCP應(yīng)答報文采取甄別丟棄和重新標(biāo)記的方 法來最大程度減少TCP層的無謂重傳,保證了系統(tǒng)的穩(wěn)定;此外,RNC對于用戶終端的 重定位流程和系統(tǒng)間切換流程的處理,在保證用戶終端得到TCP Proxy功能服務(wù)的同時, 避免了業(yè)務(wù)中斷給用戶終端造成的不良影響。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的 精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的 范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
10
權(quán)利要求
1.一種實(shí)現(xiàn)傳輸控制協(xié)議TCP代理的方法,其特征在于,包括無線網(wǎng)絡(luò)控制器RNC接收應(yīng)用服務(wù)器發(fā)往用戶終端的TCP數(shù)據(jù)報文;RNC保存接收的TCP數(shù)據(jù)報文,并向所述應(yīng)用服務(wù)器返回TCP應(yīng)答報文;RNC將保存的TCP數(shù)據(jù)報文發(fā)往相應(yīng)的用戶終端。
2.如權(quán)利要求1所述的方法,其特征在于,RNC保存接收的TCP數(shù)據(jù)報文,并向所 述應(yīng)用服務(wù)器返回TCP應(yīng)答報文,包括RCN確定接收的TCP數(shù)據(jù)報文的序列號等于本地保存的最新從應(yīng)用服務(wù)器接收的 TCP數(shù)據(jù)報文的序列號時,保存接收的TCP數(shù)據(jù)報文,對本地保存的最新從應(yīng)用服務(wù)器 接收的TCP數(shù)據(jù)報文的序列號進(jìn)行更新,并基于更新后的最新從應(yīng)用服務(wù)器接收的TCP 數(shù)據(jù)報文的序列號,向應(yīng)用服務(wù)器返回相應(yīng)的TCP應(yīng)答報文;RCN確定接收的TCP數(shù)據(jù)報文的序列號大于本地緩存的最新從應(yīng)用服務(wù)器接收的 TCP數(shù)據(jù)報文的序列號時,保存接收的TCP數(shù)據(jù)報文,并基于原始保存的最新從應(yīng)用服 務(wù)器接收的TCP數(shù)據(jù)報文的序列號,向應(yīng)用服務(wù)器返回相應(yīng)的TCP應(yīng)答報文。
3.如權(quán)利要求1所述的方法,其特征在于,RNC將保存的TCP數(shù)據(jù)報文發(fā)往相應(yīng)的 用戶終端后,在接收到用戶終端返回的TCP應(yīng)答報文時,包括若確定接收的TCP應(yīng)答報文攜帶有用戶終端向應(yīng)用服務(wù)器反饋的TCP數(shù)據(jù),或?yàn)橹?復(fù)應(yīng)答報文,則將該TCP應(yīng)答報文丟棄;若確定接收到的TCP應(yīng)答報文未攜帶有用戶終端向應(yīng)用服務(wù)器反饋的TCP數(shù)據(jù),且 不為重復(fù)應(yīng)答報文,則將該TCP應(yīng)答報文包含的應(yīng)答標(biāo)志位標(biāo)記為無效后,發(fā)往應(yīng)用服 務(wù)器。
4.如權(quán)利要求3所述的方法,其特征在于,RNC確定用戶終端返回的TCP應(yīng)答報文 的序列號大于本地緩存的最新從用戶終端接收的TCP應(yīng)答報文的序列號時,更新該最新 從用戶終端接收的TCP應(yīng)答報文的序列號。
5.如權(quán)利要求1所述的方法,其特征在于,RNC確定針對任意一個用戶終端的TCP 數(shù)據(jù)報文占用的存儲空間超過第一預(yù)設(shè)門限值時,通知應(yīng)用服務(wù)器,降低針對該用戶終 端的TCP數(shù)據(jù)報文的發(fā)送速率;RNC確定針對任意一個用戶終端的TCP數(shù)據(jù)報文占用的存儲空間低于第二預(yù)設(shè)門限 值時,通知應(yīng)用服務(wù)器,提高針對該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速率;其中,第一預(yù)設(shè)門限值大于第二預(yù)設(shè)門限值。
6.如權(quán)利要求1-5任一項(xiàng)所述的方法,其特征在于,RNC獲知所述用戶終端移動至 邊緣覆蓋小區(qū)時,通知應(yīng)用服務(wù)器將針對該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速率降低至 指定數(shù)值,并在根據(jù)用戶終端的測量報告作出重定位決策時,通知應(yīng)用服務(wù)器將針對該 用戶終端的TCP數(shù)據(jù)報文的發(fā)送速度降低為1個最大發(fā)送長度MSS,且不再接收應(yīng)用服 務(wù)器針對該用戶終端發(fā)送的TCP數(shù)據(jù)報文,以及在將本地緩存的針對該用戶終端的TCP 數(shù)據(jù)報文發(fā)往用戶終端后,啟動重定位流程。
7.如權(quán)利要求1-5任一項(xiàng)所述的方法,其特征在于,RNC獲知所述用戶終端移動至 邊緣覆蓋小區(qū)時,通知應(yīng)用服務(wù)器將針對該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速率降低至 指定數(shù)值,并在根據(jù)用戶終端的測量報告作出系統(tǒng)切換決策時,通知應(yīng)用服務(wù)器將針對 該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速度降低為1個最大發(fā)送長度MSS,且不再接收應(yīng)用服務(wù)器針對該用戶終端發(fā)送的TCP數(shù)據(jù)報文,以及在將本地緩存的針對該用戶終端的 TCP數(shù)據(jù)報文發(fā)往用戶終端后,啟動系統(tǒng)切換流程。
8.—種實(shí)現(xiàn)傳輸控制協(xié)議TCP代理的裝置,其特征在于,包括第一通信單元,用于接收應(yīng)用服務(wù)器發(fā)往用戶終端的TCP數(shù)據(jù)報文;處理單元,用于保存接收的TCP數(shù)據(jù)報文,并通過所述第一通信單元向所述應(yīng)用服 務(wù)器返回TCP應(yīng)答報文;第二通信單元,用于將保存的TCP數(shù)據(jù)報文發(fā)往相應(yīng)的用戶終端。
9.如權(quán)利要求8所述的裝置,其特征在于,所述處理單元保存接收的TCP數(shù)據(jù)報文, 并通過所述第一通信單元向所述應(yīng)用服務(wù)器返回TCP應(yīng)答報文時,若所述處理單元確定接收的TCP數(shù)據(jù)報文的序列號等于本地保存的最新從應(yīng)用服務(wù) 器接收的TCP數(shù)據(jù)報文的序列號,則保存接收的TCP數(shù)據(jù)報文,對本地保存的最新從應(yīng) 用服務(wù)器接收的TCP數(shù)據(jù)報文的序列號進(jìn)行更新,并基于更新后的最新從應(yīng)用服務(wù)器接 收的TCP數(shù)據(jù)報文的序列號,通過所述第一通信單元向應(yīng)用服務(wù)器返回相應(yīng)的TCP應(yīng)答 報文;若所述處理單元確定接收的TCP數(shù)據(jù)報文的序列號大于本地緩存的最新從應(yīng)用服務(wù) 器接收的TCP數(shù)據(jù)報文的序列號時,則保存接收的TCP數(shù)據(jù)報文,并基于原始保存的最 新從應(yīng)用服務(wù)器接收的TCP數(shù)據(jù)報文的序列號,通過所述第一通信單元向應(yīng)用服務(wù)器返 回相應(yīng)的TCP應(yīng)答報文。
10.如權(quán)利要求8所述的裝置,其特征在于,所述第二通信單元將保存的TCP數(shù)據(jù)報 文發(fā)往相應(yīng)的用戶終端后,在接收到用戶終端返回的TCP應(yīng)答報文時,若所述第二通信單元確定接收的TCP應(yīng)答報文攜帶有用戶終端向應(yīng)用服務(wù)器反饋的 TCP數(shù)據(jù),或?yàn)橹貜?fù)應(yīng)答報文,則將該TCP應(yīng)答報文丟棄;若所述第二通信單元確定接收到的TCP應(yīng)答報文未攜帶有用戶終端向應(yīng)用服務(wù)器反 饋的TCP數(shù)據(jù),且不為重復(fù)應(yīng)答報文,則將該TCP應(yīng)答報文包含的應(yīng)答標(biāo)志位標(biāo)記為無 效后,通過所述第一通信單元發(fā)往應(yīng)用服務(wù)器。
11.如權(quán)利要求10所述的裝置,其特征在于,所述第二通信單元確定用戶終端返回 的TCP應(yīng)答報文的序列號大于本地緩存的最新從用戶終端接收的TCP應(yīng)答報文的序列號 時,更新該最新從用戶終端接收的TCP應(yīng)答報文的序列號。
12.如權(quán)利要求8所述的裝置,其特征在于,所述處理單元確定針對任意一個用戶終 端的TCP數(shù)據(jù)報文占用的存儲空間大小超過第一預(yù)設(shè)門限值時,通過所述第一通信單元 通知應(yīng)用服務(wù)器,降低針對該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速率;所述處理單元確定針對任意一個用戶終端的TCP數(shù)據(jù)報文占用的存儲空間大小低 于第二預(yù)設(shè)門限值時,通過所述第一通信單元通知應(yīng)用服務(wù)器,提高針對該用戶終端的 TCP數(shù)據(jù)報文的發(fā)送速率;其中,第一預(yù)設(shè)門限值大于第二預(yù)設(shè)門限值。
13.如權(quán)利要求8-12任一項(xiàng)所述的裝置,其特征在于,所述第二通信單元獲知所述用 戶終端移動至邊緣覆蓋小區(qū)時,所述第一通信單元通知應(yīng)用服務(wù)器將針對該用戶終端的 TCP數(shù)據(jù)報文的發(fā)送速率降低至指定數(shù)值,并在所述處理單元根據(jù)用戶終端的測量報告 作出重定位決策時,由所述第一通信單元通知應(yīng)用服務(wù)器將針對該用戶終端的TCP數(shù)據(jù)報文的發(fā)送速度降低為1個最大發(fā)送長度MSS,且不再接收應(yīng)用服務(wù)器針對該用戶終端 發(fā)送的TCP數(shù)據(jù)報文,以及在所述第二通信單元將本地緩存的針對該用戶終端的TCP數(shù) 據(jù)報文發(fā)往用戶終端后,由所述處理單元啟動重定位流程。
14.如權(quán)利要求8-12任一項(xiàng)所述的裝置,其特征在于,所述第二通信單元獲知所述用 戶終端移動至邊緣覆蓋小區(qū)時,所述第一通信單元通知應(yīng)用服務(wù)器將針對該用戶終端的 TCP數(shù)據(jù)報文的發(fā)送速率降低至指定數(shù)值,并在所述處理單元根據(jù)用戶終端的測量報告 作出系統(tǒng)切換決策時,由所述第一通信單元通知應(yīng)用服務(wù)器將針對該用戶終端的TCP數(shù) 據(jù)報文的發(fā)送速度降低為1個最大發(fā)送長度MSS,且不再接收應(yīng)用服務(wù)器針對該用戶終 端發(fā)送的TCP數(shù)據(jù)報文,以及在所述第二通信單元將本地緩存的針對該用戶終端的TCP 數(shù)據(jù)報文發(fā)往用戶終端后,由所述處理單元啟動系統(tǒng)切換流程。
全文摘要
本發(fā)明涉及通信領(lǐng)域,公開了一種基于RNC實(shí)現(xiàn)TCP代理的方法及裝置,用以避免TCL連接上的數(shù)據(jù)擁塞,該方法為重新設(shè)計(jì)了RNC的TCP Proxy功能,令RNC接收到應(yīng)用服務(wù)器發(fā)往用戶終端的TCP數(shù)據(jù)報文后,代替用戶終端直接向應(yīng)用服務(wù)器返回TCP應(yīng)答報文,然后,再將接收的TCP數(shù)據(jù)報文發(fā)往相應(yīng)的用戶終端,由于從應(yīng)用服務(wù)器到RNC之間是有線傳輸媒介,RTT波動很小,因此采用上述方法可以有效屏蔽無線傳輸環(huán)境造成的TCP連接上的數(shù)據(jù)擁塞,提高了TCP連接上的數(shù)據(jù)傳輸效率,保證了系統(tǒng)的整體性能。
文檔編號H04W28/06GK102026281SQ201010599329
公開日2011年4月20日 申請日期2010年12月21日 優(yōu)先權(quán)日2010年12月21日
發(fā)明者王銳 申請人:大唐移動通信設(shè)備有限公司