專利名稱:無線網(wǎng)絡(luò)上的會話持續(xù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及會話持續(xù)。更具體地,本發(fā)明涉及用于在無線網(wǎng)絡(luò)上 進(jìn)行會話持續(xù)的方法和系統(tǒng)。
背景技術(shù):
移動計算設(shè)備,例如與增大普及的公司企業(yè)網(wǎng)絡(luò)耦合的無線計算 設(shè)備數(shù)目的增加,導(dǎo)致來自無線計算設(shè)備的對面向網(wǎng)絡(luò)的應(yīng)用的可靠、 透明的訪問的需求。
企業(yè)網(wǎng)絡(luò)包括典型地運(yùn)行在企業(yè)服務(wù)器上的企業(yè)應(yīng)用。這些企業(yè) 應(yīng)用包括執(zhí)行諸如計費(fèi)、生產(chǎn)調(diào)度、顧客信息跟蹤和帳目維護(hù)之類的 功能的商業(yè)邏輯。對訪問企業(yè)網(wǎng)絡(luò)和提供服務(wù)給很多用戶的其它公司
計算機(jī)網(wǎng)絡(luò)的增加的需求,已經(jīng)刺激虛擬專用網(wǎng)絡(luò)("VPN")的開發(fā)。
VPN是典型地在公司內(nèi)部使用的通過公共網(wǎng)絡(luò)通信的專用通信網(wǎng) 絡(luò)。VPN消息業(yè)務(wù)是使用標(biāo)準(zhǔn)協(xié)議在公共聯(lián)網(wǎng)基礎(chǔ)結(jié)構(gòu)上傳送的。VPN 經(jīng)常使用密碼隧傳協(xié)議來提供必要的機(jī)密性、發(fā)送者鑒權(quán)和消息完整 性以實(shí)現(xiàn)必要的隱私權(quán)。VPN的使用可以擴(kuò)展地理連接性、提高安全、 減少來自傳統(tǒng)的廣域網(wǎng)("WAN")的操作成本、提供電子通勤者 (telecommuter)支持,并且展示了良好規(guī)模經(jīng)濟(jì)。
移動計算中的改善與上述聯(lián)網(wǎng)改進(jìn)已同時發(fā)生。 一個這樣的開發(fā) 是移動IP。移動IP是因特網(wǎng)工程任務(wù)組("IETF")標(biāo)準(zhǔn)通信協(xié)議,該 通信協(xié)議被設(shè)計為當(dāng)保持移動設(shè)備用戶的永久IP地址時,允許移動設(shè) 備用戶從一個網(wǎng)絡(luò)移動到另一個。聯(lián)網(wǎng)方法己演進(jìn)為允許在不可靠的傳統(tǒng)有線數(shù)據(jù)網(wǎng)絡(luò)上進(jìn)行健壯 的通信。在很大程度上,在這樣的傳統(tǒng)不可靠網(wǎng)絡(luò)上的增加的可靠性
已經(jīng)通過開發(fā)面向連接、端對端可靠協(xié)議而實(shí)現(xiàn),該協(xié)議例如為在IETF RFC 793中定義的傳輸控制協(xié)議(TCP)。已經(jīng)將TCP設(shè)計成通過在 會話中進(jìn)行通信來可靠地執(zhí)行端到端的數(shù)據(jù)傳輸。TCP保證發(fā)送者到 接收者數(shù)據(jù)的可靠和有序的遞送。TCP也針對運(yùn)行在相同主機(jī)上的多 個并發(fā)的應(yīng)用區(qū)別數(shù)據(jù)。許多成品聯(lián)網(wǎng)應(yīng)用已經(jīng)被開發(fā)為與TCP對接, 因?yàn)門CP引擎是成功和廣泛使用的傳輸協(xié)議引擎。作為面向連接的協(xié) 議,TCP需要連接狀態(tài)的周期性指示,例如,確認(rèn)("ACK")傳輸?shù)?接收。沒有這些指示,會話將終止。諸如TCP的傳輸協(xié)議針對有線數(shù) 據(jù)通信網(wǎng)絡(luò)而被優(yōu)化,并且大大增加在這樣網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)傳輸?shù)目?靠性。
聯(lián)網(wǎng)應(yīng)用,例如利用VPN和移動IP功能的聯(lián)網(wǎng)應(yīng)用,己經(jīng)被開 發(fā)為利用面向連接的TCP的可靠性到這樣的程度,即這些聯(lián)網(wǎng)應(yīng)用經(jīng) 常需要使用TCP會話來充分實(shí)現(xiàn)應(yīng)用的益處。然而,當(dāng)移植到無線技 術(shù),這樣的聯(lián)網(wǎng)應(yīng)用性能會下降。無線網(wǎng)絡(luò)的特征在于由從無線電區(qū) 域網(wǎng)絡(luò)("RAN")的暫時斷開或長移交延遲導(dǎo)致的"間斷連接"的持續(xù)期 (extended period)。因此在無線技術(shù)中,由于無線聯(lián)網(wǎng)中固有通信的 暫時中斷,會話經(jīng)常被過早終止,該暫時中斷阻止連接狀態(tài)的周期性 指示被接收。因此,問題是盡管缺少連接卻保持通信繼續(xù)的方式、被 稱為TCP會話持續(xù)的課題。
許多成品聯(lián)網(wǎng)應(yīng)用例如需要TCP/IP會話或?qū)S锰摂M電路。 一些應(yīng) 用對TCP連接的丟失處理得極其乏力,有時甚至需要機(jī)器的整個重新 啟動。因此,當(dāng)參與者經(jīng)歷斷開的持續(xù)期時,需要保持TCP連接活躍 (alive)的方式。已通過開發(fā)新技術(shù)而解決了這些問題。
例如,由Hass等申請的專利號為5,566,225的美國專利("'225專 利")公開了一種通過無線網(wǎng)絡(luò)在移動終端用戶設(shè)備和主機(jī)之間保持TCP會話的系統(tǒng),該專利的完整主題在這里通過引用被結(jié)合。公開
在,225專利中的用于TCP會話持續(xù)的系統(tǒng)使用在移動終端用戶設(shè)備中 執(zhí)行的"本地代理"和在無線網(wǎng)絡(luò)或主機(jī)中的處理器中執(zhí)行的"網(wǎng)絡(luò)代 理", 一檢測到無線鏈接的不運(yùn)轉(zhuǎn)(imperative)狀況,就模擬TCP會 話的運(yùn)轉(zhuǎn)(operative)模式。然而,該'225專利沒有解決將TCP持續(xù) 集成到由服務(wù)器代理的通信網(wǎng)絡(luò)中。
由Hanson等申請的專利號為6,546,425的美國專利(",425專利") 公開了在代理移動管理服務(wù)器("移動服務(wù)器")上的TCP會話持續(xù), 該專利的完整主題在這里通過引用被結(jié)合。例如,'425專利公開了一 種移動服務(wù)器,其提供用于"移動終端系統(tǒng)"(即,移動客戶端)的用 戶可配置會話優(yōu)先級、用于管理網(wǎng)絡(luò)資源消耗的每個用戶移動策略管 理,和針對移動客戶端的地址管理。
圖1是'425專利的例示實(shí)施。在例示的系統(tǒng)中,移動服務(wù)器120 保持每個移動客戶端102的狀態(tài),并且處理對網(wǎng)絡(luò)和其它處理(諸如 在主機(jī)系統(tǒng)138上運(yùn)行的處理)保持持續(xù)連接所需要的復(fù)雜的會話管 理。如果移動客戶端102變?yōu)椴豢傻竭_(dá)的、掛起或改變網(wǎng)絡(luò)地址,則 移動服務(wù)器120通過確認(rèn)數(shù)據(jù)的接收和在協(xié)議棧中在UDP引擎128和 TCP引擎130上方排隊(duì)請求,來保持到主機(jī)系統(tǒng)138的連接。通過移 動服務(wù)器120進(jìn)行的這個代理允許移動客戶端102上的網(wǎng)絡(luò)應(yīng)用104 保持連續(xù)的連接,即使其可能暫時丟失它的無線連接136。移動服務(wù)器 120也管理移動客戶端102的地址,并且在這個方面,為每個移動客戶 端102提供專用網(wǎng)絡(luò)上的代理地址,其被稱為移動客戶端102的"虛擬 地址"。當(dāng)移動系統(tǒng)從一個網(wǎng)絡(luò)互連改變成另一個,移動服務(wù)器120將 保持常值的虛擬地址映射到移動客戶端102的當(dāng)前"存在點(diǎn)"地址。
在,425專利中,利用移動攔截器IIO通過傳輸驅(qū)動器接口("TDI") 108在傳輸協(xié)議引擎(例如TCP引擎)上方實(shí)現(xiàn)TCP會話持續(xù)。移動 攔截器110攔截在TDI 108接口的某些呼叫并且借助于遠(yuǎn)端程序呼叫("RPC")和因特網(wǎng)移動協(xié)議通過使用標(biāo)準(zhǔn)傳輸協(xié)議的網(wǎng)絡(luò)將它們路由 到移動服務(wù)器120。這樣的標(biāo)準(zhǔn)傳輸協(xié)議可以包括由TCP引擎114提 供的TCP,和用戶數(shù)據(jù)報l辦議("UDP"),由UDP引擎112提供的無 連接協(xié)議。遠(yuǎn)端程序呼叫是允許在一個計算機(jī)上的程序執(zhí)行在服務(wù)器 計算機(jī)上的程序的一種協(xié)議。因此移動攔截器110可以攔截所有網(wǎng)絡(luò) 活動并使用RPC操作而不是TCP操作來將其中繼到移動服務(wù)器120。 移動攔截器110使用操作系統(tǒng)特性透明地工作,以便當(dāng)移動客戶端102 丟失與網(wǎng)絡(luò)的連接時允許客戶端一側(cè)的應(yīng)用會話保持活動。移動服務(wù) 器120按照鏡像有效地操作,以與移動客戶端102上的操作系統(tǒng)相似 的方式與主機(jī)系統(tǒng)138 —起工作。因此單獨(dú)的RPC操作代替用于RAN 的TCP操作。
盡管'425專利公開了持續(xù)代理聯(lián)網(wǎng)的手段,但在TCP引擎上方實(shí) 現(xiàn)持續(xù)手段是難處理的。在市場中當(dāng)前可用的一個實(shí)施方式中,例如, 這個體系結(jié)構(gòu)通過鉤住用于連接應(yīng)用到網(wǎng)絡(luò)協(xié)議的socket應(yīng)用程序接 口 ("API"), 一組例程、協(xié)議和工具而允許會話持續(xù),以便將TCP應(yīng) 用呼叫從成品應(yīng)用重定向到具體設(shè)計的TDI 108。 Socket應(yīng)用程序接口 在圖1的系統(tǒng)中被實(shí)現(xiàn)為"Windows Sockets("Winsock") 1.1/2.0 106、諸 如TCP的允許Windows網(wǎng)絡(luò)軟件訪問網(wǎng)絡(luò)服務(wù)的API。 TDI 108終止 TCP呼叫并打開到服務(wù)器的UDP socket。鉤住socket API以將應(yīng)用的 TCP呼叫重定向到所有者的驅(qū)動器是相對未經(jīng)測試的,經(jīng)常有問題, 并且需要廣泛的配置。TDI 108必須重新實(shí)現(xiàn)面向TCP的應(yīng)用所預(yù)期 的TCP行為,例如確認(rèn)產(chǎn)生、確認(rèn)過期、副本檢測和分段重排序。進(jìn) 一步,這樣廣泛的實(shí)施通常限制將由移動管理服務(wù)器120使用的可用 應(yīng)用的數(shù)目。
附圖簡介
在結(jié)合附圖閱讀時,通過參考接下來的詳細(xì)描述而最好地理解本 公開發(fā)明方面的實(shí)施例,其中
圖1例示了根據(jù)現(xiàn)有技術(shù)的網(wǎng)絡(luò)上的TCP持續(xù);圖2例示了根據(jù)本發(fā)明的實(shí)施例的、用于在服務(wù)器代理網(wǎng)絡(luò)上在 主機(jī)系統(tǒng)和移動計算設(shè)備上的客戶端之間進(jìn)行TCP會話持續(xù)的系統(tǒng);
圖3是例示根據(jù)本發(fā)明的實(shí)施例的、用于在服務(wù)器代理網(wǎng)絡(luò)上在 主機(jī)系統(tǒng)和移動計算設(shè)備上的客戶端之間進(jìn)行TCP會話持續(xù)的方法的
數(shù)據(jù)流圖4例示了國際標(biāo)準(zhǔn)化組織開放系統(tǒng)相連("ISO/OSI")網(wǎng)絡(luò)協(xié)議 模型層之間的信息傳遞;
圖5是例示根據(jù)本發(fā)明的實(shí)施例的、在無線連接的移動客戶端一 側(cè)上的TCP持續(xù)的數(shù)據(jù)傳輸圖;和
圖6A和圖6B是例示無線連接中發(fā)生中斷后、在無線連接的移動 服務(wù)器/主機(jī)一側(cè)上根據(jù)本發(fā)明實(shí)施例的TCP會話持續(xù)的數(shù)據(jù)傳輸圖。
具體實(shí)施例方式
本發(fā)明阻止兩個設(shè)備(實(shí)體)之間的通信會話的終止,其中通信 會話至少部分地在無線網(wǎng)絡(luò)上被引導(dǎo),并且在通信中發(fā)生暫時中斷。 為了更容易解釋,需要注意的是,接下來的解釋和例子具體地涉及TCP,
然而,可以使用任何其它面向連接的傳輸協(xié)議(例如,流控制傳輸協(xié) 議)。因此,在一個實(shí)施例中,更具體的是,當(dāng)在通信中發(fā)生暫時中 斷時,本公開通過會話持續(xù),通過使第一設(shè)備產(chǎn)生標(biāo)準(zhǔn)的TCP信號, 由此該第一設(shè)備"相信"產(chǎn)生的信號是從會話中的第二設(shè)備傳送而來的, 以及該會話仍舊"活躍",從而阻止TCP會話過早終止。僅當(dāng)檢測到網(wǎng) 絡(luò)通信中的中斷時才產(chǎn)生這些信號。通過識別什么時候沒有檢測到設(shè) 備所預(yù)期接收的信號來檢測網(wǎng)絡(luò)通信中的中斷。在TCP會話持續(xù)中, 這些預(yù)期的信號可以是確認(rèn)信號。確認(rèn)信號是控制分組,其由參與TCP 會話的第一設(shè)備的傳輸層發(fā)送到參與TCP會話的第二設(shè)備的傳輸層, 來確認(rèn)對來自第二設(shè)備的傳輸?shù)慕邮?。因此?一旦接收到信號,第二 設(shè)備"相信"第一設(shè)備仍舊與第二設(shè)備通信,并且在它們之間的TCP會 話不應(yīng)該終止。
顯著地,與本公開背景技術(shù)中討論的現(xiàn)有技術(shù)形成對照,會話持續(xù)驅(qū)動器位于第一和第二設(shè)備兩者上的TCP層下方(不需要服務(wù)器), 或者位于服務(wù)器和第一設(shè)備上的TCP層下方(如果第二設(shè)備不能用本
發(fā)明修改),以便模擬信號,而不需要中斷第一設(shè)備、第二設(shè)備和服 務(wù)器(如果存在的話)上的應(yīng)用級程序和傳輸層之間的標(biāo)準(zhǔn)接口。換
句話說,會話持續(xù)驅(qū)動器在傳輸層下方的ISO/OSI網(wǎng)絡(luò)協(xié)議模型的層 模擬信號,下面將更詳細(xì)描述。這個配置允許經(jīng)過標(biāo)準(zhǔn)接口通過應(yīng)用 完全利用TCP層。
例如,在一些實(shí)施例中,可以通過模擬從第一設(shè)備的TCP層到第 二設(shè)備的TCP層的確認(rèn)信號來實(shí)現(xiàn)TCP會話持續(xù)。也可以通過模擬從 第二設(shè)備的TCP層到第一設(shè)備的TCP層的確認(rèn)信號來實(shí)現(xiàn)TCP會話 持續(xù)。在一個實(shí)施例中,模擬從每個設(shè)備到其它設(shè)備的確認(rèn)信號。通 過將會話持續(xù)驅(qū)動器置于TCP層下方,應(yīng)用可以利用TCP呼叫來初始 化網(wǎng)絡(luò)通信。因?yàn)槿绻S多而不是大多數(shù)成品應(yīng)用被設(shè)計為使用TCP 作為用于聯(lián)網(wǎng)的傳輸層協(xié)議,那么將這些應(yīng)用對接到TCP層被簡單地 配置并且產(chǎn)生可靠的通信網(wǎng)絡(luò)(由于這些配置的廣泛測試)。此外, 由于應(yīng)用層和傳輸層是每個自包含,所以應(yīng)用軟件中的改變和升級是 無縫的。
圖2例示了用于在服務(wù)器代理網(wǎng)絡(luò)上在第一設(shè)備202和第二設(shè)備 236之間進(jìn)行TCP會話持續(xù)的系統(tǒng)。術(shù)語"服務(wù)器代理網(wǎng)絡(luò)"代表了這 樣的網(wǎng)絡(luò),在該網(wǎng)絡(luò)上第一設(shè)備202和第二設(shè)備236之間的通信由服 務(wù)器216代理,服務(wù)器216使代理服務(wù)器220應(yīng)用安裝并運(yùn)行在其上。 圖2的服務(wù)器代理網(wǎng)絡(luò)通過經(jīng)過有線網(wǎng)絡(luò)246將第二設(shè)備236連接到 服務(wù)器216和經(jīng)過具有無線連接234的無線網(wǎng)絡(luò)235將第一設(shè)備202 連接到服務(wù)器216而實(shí)現(xiàn)。在下文參考圖3進(jìn)一步解釋這樣的代理。 盡管本公開涉及在無線網(wǎng)絡(luò)上的第一設(shè)備202與有線網(wǎng)絡(luò)上的第二設(shè) 備之間代理通信的服務(wù)器,但本發(fā)明的其它實(shí)現(xiàn)可以包括在每個都 在無線網(wǎng)絡(luò)上的兩個設(shè)備之間代理通信的服務(wù)器,或是合并了本發(fā)明 的兩個無線設(shè)備,因此徹底消除了對服務(wù)器的需求。第一設(shè)備202、服務(wù)器216和第二設(shè)備236每個在某種程度上被實(shí) 現(xiàn)為安裝和運(yùn)行在計算機(jī)上的軟件模塊,該計算機(jī)即自動計算設(shè)備, 每個包括至少一個處理器或"CPU"(未示出)和計算機(jī)存儲器(未示出), 該計算機(jī)存儲器包括易失性隨機(jī)訪問存儲器("RAM")和非易失性計 算機(jī)存儲器的一些形式,例如硬盤驅(qū)動、光盤驅(qū)動,或電擦除可編程 只讀存儲器空間(也稱為'EEPROM'或'Flash'存儲器)。計算機(jī)存儲器 通過總線連接到計算機(jī)的處理器和其它部件。因此,軟件模塊是存儲 在計算機(jī)存儲器中的程序指令。
第二設(shè)備236包括安裝并運(yùn)行在計算機(jī)上的軟件,包括執(zhí)行任務(wù) 或訪問信息的一個或多個網(wǎng)絡(luò)服務(wù)238。在企業(yè)聯(lián)網(wǎng)模型中,第二設(shè)備 236可以包括執(zhí)行公司商業(yè)操作的商業(yè)邏輯和訪問公司機(jī)密信息的應(yīng) 用。
代理服務(wù)器220,作為運(yùn)行在服務(wù)器216中的ISO/OSI應(yīng)用層中但 是也可以運(yùn)行在內(nèi)核空間中的一些網(wǎng)絡(luò)應(yīng)用218之一,允許第一設(shè)備 202通過服務(wù)器216間接連接或訪問第二設(shè)備236上的其它網(wǎng)絡(luò)服務(wù) 238。如下所述,服務(wù)器216也使額外的功能添加到網(wǎng)絡(luò)。因此,在一 個實(shí)施例中,盡管在正常操作中,第一設(shè)備202和第二設(shè)備236表面 上看是相互之間進(jìn)行透明通信,但通信實(shí)際上是在第一設(shè)備202和第 二設(shè)備236之間通過第一設(shè)備202和服務(wù)器216之間的第一 TCP會話 和服務(wù)器216和第二設(shè)備236之間的第二 TCP會話而實(shí)現(xiàn)的。這些TCP 會話包括由對數(shù)據(jù)的請求、對這些請求的響應(yīng),和用于會話操作的信 號所組成的傳輸。TCP會話看起來是在第一設(shè)備202和第二設(shè)備236 之間通過這些設(shè)備而被發(fā)起的,但是該會話實(shí)際上被服務(wù)器216截取, 并且被分割成上述的兩個TCP會話。作為代替,在第一設(shè)備和第二設(shè) 備之間可僅使用一個TCP會話。
因此,第一設(shè)備202通過如上所述的發(fā)起與代理服務(wù)器220的TCP會話并且之后請求連接、文件或第二設(shè)備236上的其它可用資源,從 而連接到網(wǎng)絡(luò)服務(wù)238。代理服務(wù)器220, 一旦連接到指定的第二設(shè)備 236,則通過獲得來自第二設(shè)備236的資源或通過從存儲器中指定的位 置供給資源來提供資源。
服務(wù)器216、第一設(shè)備202和第二設(shè)備236中的每一個包括操作在 ISO/OSI網(wǎng)絡(luò)協(xié)議模型應(yīng)用層的應(yīng)用軟件組件(分別為網(wǎng)絡(luò)應(yīng)用218、 網(wǎng)絡(luò)應(yīng)用204,和網(wǎng)絡(luò)服務(wù)238),該應(yīng)用軟件組件執(zhí)行包括軟件應(yīng)用 和低層網(wǎng)絡(luò)服務(wù)之間的通信的高層操作,以便網(wǎng)絡(luò)可以解釋應(yīng)用的請 求并且應(yīng)用可以解釋從網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)。
圖2中的服務(wù)器216、第一設(shè)備202和第二設(shè)備236中的每一個還 包括形成網(wǎng)絡(luò)通信棧(205、 221和239)的一部分的TCP層(206、 222 和240) 、 IP層(208、 224和242),和網(wǎng)絡(luò)驅(qū)動器接口規(guī)格("畫S,,) 應(yīng)用編程接口 ("API") (212, 228和244),用以促進(jìn)網(wǎng)絡(luò)通信。應(yīng) 用軟件組件(網(wǎng)絡(luò)應(yīng)用218、網(wǎng)絡(luò)應(yīng)用204和網(wǎng)絡(luò)服務(wù)238)發(fā)起到它 們各自TCP層(206、 222、 240)的呼叫,以通過網(wǎng)絡(luò)傳送信息到其它 應(yīng)用軟件組件。典型的,以連續(xù)字節(jié)流形式將信息從應(yīng)用軟件組件傳 送到TCP層。
TCP層206、 222和240實(shí)現(xiàn)TCP,如上所述,TCP使用錯誤檢測 來保證數(shù)據(jù)分組被可靠且有序的傳遞到運(yùn)行在接收計算機(jī)上的合適應(yīng) 用。運(yùn)行在每個實(shí)體中的IP層208、 224和242實(shí)現(xiàn)IP層,該IP層通 過使用機(jī)器唯一的IP地址來尋址分組以保證數(shù)據(jù)分組的傳遞。NDIS API(212、 228和244)是網(wǎng)卡接口,其提供功能和程序上的手段,用于 通過計算機(jī)網(wǎng)卡和以太網(wǎng)將網(wǎng)絡(luò)實(shí)體之間的數(shù)據(jù)傳遞到相應(yīng)實(shí)體的網(wǎng) 卡。NDIS API通過使用物理尋址方案來尋址數(shù)據(jù)分組,所述物理尋址 方案例如為在生產(chǎn)階段硬編碼進(jìn)大多數(shù)聯(lián)網(wǎng)設(shè)備中的媒體訪問控制 ("MAC")地址。盡管圖2中公開的實(shí)施例的服務(wù)器216、第一設(shè)備202 和第二設(shè)備236每個包括作為網(wǎng)卡接口的NDIS API,但圖2系統(tǒng)的替代實(shí)施例可以包括任何網(wǎng)絡(luò)過濾器(例如Linux)的使用,并且仍舊在 權(quán)利要求所定義的本發(fā)明的范圍內(nèi)。
對于本發(fā)明實(shí)施例來說重要的是,服務(wù)器216通過網(wǎng)絡(luò)通信棧221 中的一個或多個會話持續(xù)驅(qū)動器226而耦合到網(wǎng)絡(luò)。圖2的會話持續(xù) 驅(qū)動器(多個)226是監(jiān)視網(wǎng)絡(luò)通信以檢測中斷并創(chuàng)建信號以保持TCP 持續(xù)的軟件模塊,接下來將進(jìn)行更詳細(xì)的介紹。會話持續(xù)驅(qū)動器226 通過服務(wù)器216中的IP層耦合到TCP層222。 TCP層222下方的所有 通信通過會話持續(xù)驅(qū)動器226,以后將更詳細(xì)地介紹。IP層224進(jìn)一步 通過NDIS API 228耦合到網(wǎng)絡(luò)。接下來會更詳細(xì)地討論TCP/IP棧和 NDIS API 228。在一些實(shí)施例中,在獨(dú)立于服務(wù)器216中的處理器的單 獨(dú)的處理器上執(zhí)行會話持續(xù)驅(qū)動器226。在其它實(shí)施例中,會話持續(xù)驅(qū) 動器226可以作為硬件或硬件和軟件的結(jié)合而實(shí)現(xiàn)。所有這樣的實(shí)施 例是意欲落入本發(fā)明的范圍內(nèi)的會話持續(xù)驅(qū)動器226。
為了執(zhí)行它的TCP會話持續(xù)功能,會話持續(xù)驅(qū)動器226包括用于 產(chǎn)生一個或多個TCP信號的計算機(jī)程序指令,所述一個或多個TCP信 號適于被第二設(shè)備236中的TCP層240解釋為是從第一設(shè)備202傳送 而來的。在一個實(shí)施例中,會話持續(xù)驅(qū)動器226產(chǎn)生并沿著協(xié)議棧向 上發(fā)送0窗口通告("ZWA") 230到TCP層222,以及產(chǎn)生并沿著協(xié)議 桟向下且通過有線網(wǎng)絡(luò)發(fā)送ZWA 232到第二設(shè)備236上的TCP層240, 由此使TCP層222和240"相信"TCP層206仍然被連接并且在第一設(shè) 備202和第二設(shè)備236之間保持TCP會話。從ISO/OSI網(wǎng)絡(luò)協(xié)議模型 角度看,這種模擬的ZWA 230是在傳輸層下方產(chǎn)生的,與本發(fā)明的實(shí) 施例相當(dāng),隨后將進(jìn)行更詳細(xì)的解釋。
第一設(shè)備202也包含會話持續(xù)驅(qū)動器210,其同樣在網(wǎng)絡(luò)通信棧 205中產(chǎn)生一個或多個TCP信號。會話持續(xù)驅(qū)動器210的TCP信號適 于被第一設(shè)備202中的TCP層206解釋為是從第二設(shè)備236傳送而來 的。會話持續(xù)驅(qū)動器210因此相似地被實(shí)現(xiàn)成產(chǎn)生并沿著協(xié)議棧向上發(fā)送ZWA 214到TCP層206,由此使TCP層206"相信"TCP層240(或 222)仍然被連接,由此在第一設(shè)備202和第二設(shè)備236之間保持TCP會話。
在有了關(guān)于系統(tǒng)的基本描述的情況下,現(xiàn)在把注意力轉(zhuǎn)向圖3,圖 3闡明了例示根據(jù)本發(fā)明的實(shí)施例的、用于通過網(wǎng)絡(luò)上保持TCP會話 持續(xù)的方法的流程圖。鑒于連貫性,在圖3的流程圖的整個描述中使 用圖2中的附圖標(biāo)記。該方法開始于通過服務(wù)器216代理網(wǎng)絡(luò)通信(步 驟302)。如上所提示,這可以通過利用服務(wù)器216中的代理服務(wù)器 220來執(zhí)行,以實(shí)現(xiàn)本公開背景技術(shù)部分所解釋的用于通信網(wǎng)絡(luò)的VPN 和移動IP。
在本方法中實(shí)現(xiàn)的移動IP功能可以包括通過規(guī)范-移動IPv4、移 動Ipv6,或者本領(lǐng)域所熟知的任何其它移動IP規(guī)范所實(shí)現(xiàn)的功能。在 優(yōu)選的移動IP實(shí)現(xiàn)中,每個無線設(shè)備(例如第一設(shè)備202)通常由它 的本地地址(home address)來標(biāo)識,而不考慮它連接因特網(wǎng)的當(dāng)前點(diǎn)。 此外,當(dāng)?shù)谝辉O(shè)備202遠(yuǎn)離本地時,它也與"轉(zhuǎn)交"地址關(guān)聯(lián),眾所周知, 該"轉(zhuǎn)交"地址提供關(guān)于它連接因特網(wǎng)的當(dāng)前點(diǎn)的信息。簡而言之,代理 步驟302也可以提供登記轉(zhuǎn)交地址和典型地在第一設(shè)備202和第二設(shè) 備236之間發(fā)生的其它基本聯(lián)網(wǎng)細(xì)節(jié)。
如上所述,VPN是典型的通過公共網(wǎng)絡(luò)進(jìn)行通信的在公司內(nèi)使用 的專用通信網(wǎng)絡(luò)。VPN經(jīng)常使用密碼隧傳協(xié)議來提供必要的機(jī)密性、 發(fā)送者鑒權(quán)和消息完整性以實(shí)現(xiàn)隱私權(quán)。相應(yīng)地,在一些實(shí)現(xiàn)中,代 理步驟302可以包括使用密碼隧傳協(xié)議來傳送數(shù)據(jù),該密碼隧傳協(xié)議 即將一個協(xié)議或會話封裝在另一個內(nèi)的加密網(wǎng)絡(luò)協(xié)議。在這樣的VPN 實(shí)現(xiàn)中,當(dāng)VPN為活動來提高不安全網(wǎng)絡(luò)上的安全時,系統(tǒng)可以要求 所有業(yè)務(wù)通過隧道。使用密碼隧傳協(xié)議傳送數(shù)據(jù)也可以包括提供其它 VPN功能,諸如,例如專用尋址。如上所述,根據(jù)本公開的TCP會話持續(xù)包括使用會話持續(xù)驅(qū)動器
210、 226來模擬暫時斷開期間的預(yù)期TCP傳輸。在執(zhí)行這個任務(wù)期間, 并且如圖3所示,會話持續(xù)驅(qū)動器210和226包括計算機(jī)程序指令用 于.-監(jiān)視(304)第一設(shè)備202和第二設(shè)備236之間的網(wǎng)絡(luò)通信;檢測 (306)網(wǎng)絡(luò)通信中的暫時中斷;以及檢測到暫時中斷(307)時在暫時 中斷期間阻止傳輸層終止會話(310),如以下更詳細(xì)地解釋。
在監(jiān)視步驟(304)期間,第一設(shè)備202和服務(wù)器216中的會話持 續(xù)驅(qū)動器210和226分別操作以檢測網(wǎng)絡(luò)通信中的中斷。由于只要來 自一個TCP層的預(yù)期信號被其它TCP層接收至(j, TCP會話就繼續(xù),該 監(jiān)視步驟304可以包括透明地傳遞接收的TCP信號以及檢測接收預(yù)期 的TCP信號的失敗。在一些實(shí)施中,在會話持續(xù)驅(qū)動器中接收到TCP 數(shù)據(jù)分組并之后將其傳遞到TCP層。在替代的實(shí)施例中,僅TCP數(shù)據(jù) 分組被監(jiān)視直到通信中的中斷被檢測到,在檢測到的時候,會話持續(xù) 驅(qū)動器進(jìn)入活動狀態(tài)并且將自己插入棧以使所有的TCP數(shù)據(jù)分組通過 會話持續(xù)驅(qū)動器。 一個對該監(jiān)視目的有用的這樣的信號是確認(rèn)所傳送 分組的接收的"ACK"信號。相應(yīng)地,在會話期間,當(dāng)?shù)谝籘CP層發(fā)送 TCP分組到第二 TCP層時,它等待ACK信號的返回。如果在合理的 往返時間(round-trip time)內(nèi)沒有接收到確認(rèn),發(fā)送TCP層的計時器 將引起超時,并且然后(可能丟失的)數(shù)據(jù)將被重新傳送。在可配置 時間量后,或者在可配置數(shù)目的重試后,發(fā)送TCP層會終止會話。第 一設(shè)備202和第二設(shè)備216中的會話持續(xù)驅(qū)動器210和226分別通過 響應(yīng)通信中檢測到的暫時中斷來阻止這個終止。對于會話持續(xù)驅(qū)動器, 會話中的暫時中斷也可以被檢測為沒有接收到預(yù)期確認(rèn)的可配置時間 量或可配置數(shù)目的重試。然而,用于會話持續(xù)驅(qū)動器的可配置時間量 或可配置數(shù)目的重試每個都比允許會話持續(xù)驅(qū)動器阻止TCP會話終止 的TCP層的可配置時間量或可配置數(shù)目的重試小。替換地,會話持續(xù) 驅(qū)動器210、 226通過外部指示來檢測通信中的暫時中斷。外部指示可 以是任何外部輸入,諸如,例如硬件中斷、軟件事件、或策略改變通 知,會話持續(xù)模塊應(yīng)當(dāng)從該外部輸入推斷通信中的中斷。一旦已經(jīng)檢測到中斷(步驟306),圖3方法中的接下來的步驟 (310)用于通過例如模擬信號來阻止傳輸層在暫時中斷期間終止會話, 由此系統(tǒng)堅(jiān)持保持第一設(shè)備202和第二設(shè)備236被連接,而不管暫時 中斷。因此,使用會話持續(xù)驅(qū)動器(多個)210、 226來執(zhí)行對TCP信 號312的模擬,會話持續(xù)驅(qū)動器(多個)210、 226模擬在第一設(shè)備202 和第二設(shè)備236之間的連續(xù)數(shù)據(jù)通信,而不管暫時中斷。
如之前所述,在本發(fā)明的實(shí)施例中,會話持續(xù)驅(qū)動器210和226 分別位于TCP層206和222下方,意味著這樣的信號模擬發(fā)生在TCP 層206和222下方的ISO/OSI層,具有以下優(yōu)點(diǎn)應(yīng)用可以利用TCP 呼叫來發(fā)起網(wǎng)絡(luò)通信,增加服務(wù)器代理網(wǎng)絡(luò)的可靠性和使網(wǎng)絡(luò)升級更 容易。
在一個實(shí)施例中,模擬步驟(310)包括在會話持續(xù)驅(qū)動器210、 226之一或兩者中產(chǎn)生一個或多個TCP信號312,該一個或多個TCP 信號312適合于被第二設(shè)備236解釋為來自第一設(shè)備202,或者被第一 設(shè)備202解釋為來自第二設(shè)備236。 TCP信號312指示在第二設(shè)備中被 分配用以接收進(jìn)入數(shù)據(jù)的緩沖器是滿的(例如,ZWA)。響應(yīng)于ZWA信 號,TCP層停止發(fā)送數(shù)據(jù)分組,但是仍舊保持TCP會話。再一次,在 TCP層下方的ISO/OSI棧中的層內(nèi)產(chǎn)生ZWA信號。
圖4例示了 ISO/OSI網(wǎng)絡(luò)協(xié)議模型的各層之間的信息傳遞, ISO/OSI網(wǎng)絡(luò)協(xié)議模型是一種向?qū)?,用于提供用于在兩個不同節(jié)點(diǎn)400 和401中開發(fā)針對聯(lián)網(wǎng)服務(wù)和協(xié)議的標(biāo)準(zhǔn)的框架。該協(xié)議模型具有七 層。從頂部到底部,它們?nèi)缦聭?yīng)用層402 (層7)、表示層404 (層 6)、會話層406 (層5)、傳輸層408 (層4)、網(wǎng)絡(luò)層410 (層3)、 數(shù)據(jù)鏈路層412 (層2),和物理層414 (層1)。每層使用下層的服 務(wù)并提供服務(wù)給上層。 一個節(jié)點(diǎn)400中的層與不同節(jié)點(diǎn)401中的對等 層通信。通過向下傳遞數(shù)據(jù)到下一個最低層,數(shù)據(jù)從第一設(shè)備中的協(xié)議層傳播到第二設(shè)備中的相同協(xié)議層,該下一個最低層又傳遞數(shù)據(jù)到 其下方的層。在層l (物理層),數(shù)據(jù)被物理地傳遞到另一個節(jié)點(diǎn)。然 后數(shù)據(jù)從一個層傳遞到下一個層,直到到達(dá)它的目的地。當(dāng)每層向下 傳遞數(shù)據(jù)時,其在報頭中添加信息,并且在向上的路徑中通過移除報 頭來使用信息。本領(lǐng)域的讀者將意識到,不存在精確地按照示出的協(xié) 議模型實(shí)現(xiàn)的網(wǎng)絡(luò)。在實(shí)踐中,經(jīng)常省略層5和6。當(dāng)將第一層描述為 位于第二層下方,我們意指,第一層是數(shù)字上比第二層低的任何層。
本發(fā)明的會話持續(xù)層440在傳輸層408下方實(shí)現(xiàn)。因此,它位于比第4 (傳輸)層低的任何層,諸如,例如,網(wǎng)絡(luò)層410、數(shù)據(jù)鏈路層412, 或者它們之間的層(例如本領(lǐng)域技術(shù)人員所知的2.5層)。作為比較,'425 專利的持續(xù)裝置430,例如在傳輸層408上方操作。還需要注意,盡管 為了更容易解釋,當(dāng)前描述涉及執(zhí)行功能的"層",本領(lǐng)域的技術(shù)人員應(yīng) 當(dāng)明白,層內(nèi)的協(xié)議或設(shè)備實(shí)際上在執(zhí)行功能。例如,傳輸層具有通 過傳輸協(xié)議引擎或類似設(shè)備實(shí)現(xiàn)的傳輸協(xié)議。
為了進(jìn)一步解釋本發(fā)明的實(shí)施例,圖5提出例示根據(jù)圖3公開的 方法在圖2的網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)傳輸?shù)暮艚袌D。因?yàn)樵趫D2的無線網(wǎng)絡(luò) 上的第一設(shè)備上和有線網(wǎng)絡(luò)上的第二設(shè)備上均被觸發(fā)會話持續(xù),圖5、 6A和6B例示雙側(cè)的信號傳遞。在每個呼叫圖中,從圖的頂部到底部 以時間順序例示了從一個模塊到另一個模塊的數(shù)據(jù)分組的傳輸。
圖5,例示無線連接234的第一設(shè)備202 —側(cè)上的TCP會話持續(xù), 首先示出(505)當(dāng)在第一設(shè)備202和服務(wù)器216之間的無線連接234 中不存在中斷時TCP會話中的數(shù)據(jù)分組的傳輸。如可見的,在這樣的 情形中,通過圖2中例示的各種媒介(intermediary),字節(jié)流從第一 設(shè)備應(yīng)用204向服務(wù)器網(wǎng)絡(luò)應(yīng)用218流動。具體的,第一設(shè)備應(yīng)用204 將8比特字節(jié)流,或字節(jié)流517發(fā)送到第一設(shè)備中的TCP層206,以 通過網(wǎng)絡(luò)傳遞。第一設(shè)備中的TCP層206將字節(jié)流517存儲在緩沖器 中,并且從第一TCP數(shù)據(jù)分組518開始,開始構(gòu)造包含來自字節(jié)流517 的數(shù)據(jù)的片斷,或TCP數(shù)據(jù)分組。給予每個數(shù)據(jù)分組序列號。第一設(shè)備中的TCP層206傳送作為結(jié)果的TCP數(shù)據(jù)分組518到因特網(wǎng)協(xié)議層 208(未示出)。在一些實(shí)施例中,將TCP數(shù)據(jù)分組518從因特網(wǎng)協(xié)議 層208 (未示出)發(fā)送到會話持續(xù)驅(qū)動器210,用于通過無線網(wǎng)絡(luò)235 從會話持續(xù)驅(qū)動器210遞送到在服務(wù)器216處的會話持續(xù)驅(qū)動器226。 在替換的實(shí)施例中,會話持續(xù)驅(qū)動器僅監(jiān)視通過無線網(wǎng)絡(luò)從因特網(wǎng)協(xié) 議層20S (未示出)發(fā)送的數(shù)據(jù)分組518,直到如上所述被激活。兩種 實(shí)現(xiàn)都包括在下面涉及傳遞數(shù)據(jù)分組的會話持續(xù)驅(qū)動器210、 226的討 論中。會話持續(xù)驅(qū)動器226傳遞數(shù)據(jù)分組到服務(wù)器中的TCP層222, 服務(wù)器通過分析每個分組的序列號進(jìn)行檢查,以確認(rèn)沒有數(shù)據(jù)分組丟 失并且數(shù)據(jù)分組是正確的順序。服務(wù)器中的TCP層222遞送字節(jié)流519 形式的信息到網(wǎng)絡(luò)應(yīng)用218。對于被成功接收的TCP數(shù)據(jù)分組518,服 務(wù)器中的TCP層222發(fā)送回確認(rèn)'TCPACK 520。
作為比較,當(dāng)中斷存在于無線連接234 (507)中時,來自會話持 續(xù)驅(qū)動器210或因特網(wǎng)協(xié)議層208 (未示出)的TCP數(shù)據(jù)分組522在 某定時的時段后,甚至一些重試(524, 526)后保持未確認(rèn)。如上所 述,由于無線連接234中的中斷的高潛在性,這是無線網(wǎng)絡(luò)上的普遍 事件。
因此,為了阻止TCP會話終止,其中該TCP會話終止另外可能是 由第一設(shè)備中的TCP層206超過預(yù)定數(shù)目的重試而引起的,會話持續(xù) 驅(qū)動器210計算對于每個TCP數(shù)據(jù)分組重試的次數(shù)。對于數(shù)據(jù)分組, 一旦超出重試(528)的可配置數(shù)目(比預(yù)先確定的終止TCP會話所需 要的重試數(shù)目小),會話持續(xù)驅(qū)動器210發(fā)送ZWA214到第一設(shè)備中 的TCP層206。ZWA 214告知第一設(shè)備中的發(fā)送TCP層206停止發(fā)送, 因?yàn)榻邮誘CP過程的緩沖器窗口是滿的,但是保持連接/會話開啟。第 一設(shè)備中的發(fā)送TCP層206通過停止傳輸并且通過傳送窗口通告探針 532周期性地測試連接來回應(yīng)ZWA 214。如果服務(wù)器中的TCP層接收 到窗口通告探針,TCP連接可以被重置。因此,會話持續(xù)驅(qū)動器210 攔截窗口通告探針532,并且連續(xù)地傳送TCP保持活躍分組534到服務(wù)器216中的會話持續(xù)驅(qū)動器226。 TCP保持活躍分組534的傳輸允許 重新連接探測,而不具有重置TCP連接/會話的風(fēng)險。TCP保持活躍分 組也是使用標(biāo)準(zhǔn)TCP功能的有效TCP消息,因此使用TCP保持活躍 分組避免額外TCP連接管理的開銷。響應(yīng)于每個窗口通告探針,會話 持續(xù)驅(qū)動器210也傳送ZWA 214,以繼續(xù)安撫第一設(shè)備中的發(fā)送TCP 層206。盡管以上公開了使用TCP保持活躍分組534進(jìn)行重連接,然 而可以通過發(fā)送可由對等會話持續(xù)驅(qū)動器檢測到的任何消息來執(zhí)行重 連接。
一旦重建立通信,服務(wù)器216中的會話持續(xù)驅(qū)動器226將能夠通 過經(jīng)過無線網(wǎng)絡(luò)235將TCP保持活躍ACK 538回傳到會話持續(xù)驅(qū)動器 210來響應(yīng)連續(xù)傳送的TCP保持活躍分組534的一個。TCP保持活躍 ACK 538通知會話持續(xù)驅(qū)動器210已經(jīng)恢復(fù)了無線連接234。在接收到 保持活躍ACK 538后,會話持續(xù)驅(qū)動器210發(fā)送在前窗口通知540到 第一設(shè)備中的TCP層206,該在前窗口通知540告知第一設(shè)備中的TCP 層206考慮在前窗口通知540中描述的緩沖器窗口的大小來繼續(xù)重新 傳送丟失的數(shù)據(jù)。丟失的數(shù)據(jù)現(xiàn)在將作為TCP數(shù)據(jù)分組542被重新傳 送,因?yàn)楝F(xiàn)在恢復(fù)了通信,TCP數(shù)據(jù)分組542與正常的一樣在第一設(shè) 備202上的應(yīng)用204和服務(wù)器216上的服務(wù)器TCP層222 (產(chǎn)生TCP ACK 544)之間傳播,并且通過字節(jié)流543傳播到服務(wù)器218。
已經(jīng)描述了無線連接的第一設(shè)備202 —側(cè)的呼叫圖,TCP會話持 續(xù)協(xié)議類似地工作,以在無線連接234的移動服務(wù)器216/第二設(shè)備236 一側(cè)上保持TCP會話。第二設(shè)備236上的網(wǎng)絡(luò)服務(wù)238和移動服務(wù)器 216上的網(wǎng)絡(luò)應(yīng)用218傳送字節(jié)流到它們各自的TCP層,240和222。 第二設(shè)備236上的協(xié)議棧通過有線網(wǎng)絡(luò)246傳送數(shù)據(jù)分組到服務(wù)器216 上的協(xié)議棧,服務(wù)器216上的協(xié)議棧又通過無線連接235傳送數(shù)據(jù)分 組到第一設(shè)備202上的協(xié)議棧。如上所述,每個傳送TCP層等待TCP ACK來確認(rèn)成功的傳輸。無線連接234的移動服務(wù)器216/第二設(shè)備236 一側(cè)上的TCP會話持續(xù)的大多數(shù)方面與第一設(shè)備一側(cè)類似,并且因此不作詳細(xì)描述。然而,將在下面直接地詳細(xì)描述在網(wǎng)絡(luò)通信的中斷
后,服務(wù)器216/第二設(shè)備236 —側(cè)的TCP會話持續(xù)的方面。
因此,圖6A和6B示出無線連接234中有中斷時的TCP會話持續(xù)。 圖6A和6B示出會話持續(xù)驅(qū)動器226對相同的檢測到的通信中的中斷 的兩個響應(yīng)。在某時段后,甚至在一些重試(624, 626)后,來自會 話持續(xù)驅(qū)動器210的TCP數(shù)據(jù)分組622保持未確認(rèn)。
圖6A例示關(guān)于移動服務(wù)器216和第一設(shè)備202之間的TCP會話 的TCP會話持續(xù),示出會話持續(xù)驅(qū)動器226計算每個TCP數(shù)據(jù)分組的 重試次數(shù)。 一旦超出關(guān)于數(shù)據(jù)分組的可配置的重試次數(shù)(比預(yù)定的終 止TCP會話所要求的重試次數(shù)少)(628),會話持續(xù)驅(qū)動器226發(fā)送 ZWA 230到移動服務(wù)器TCP層222。由于接收TCP過程的緩沖器窗口 是滿的,ZWA 230告知發(fā)送移動服務(wù)器TCP層222停止發(fā)送,但是保 持連接/會話開啟。發(fā)送移動服務(wù)器TCP層222通過停止傳輸和通過傳 送窗口通告探針632周期性地測試連接,來響應(yīng)ZWA 230。
現(xiàn)在轉(zhuǎn)向圖6B,會話持續(xù)驅(qū)動器226也通過有線網(wǎng)絡(luò)246發(fā)送 ZWA 232到第二設(shè)備中的TCP層240。由于接收TCP過程的緩沖器窗 口是滿的,ZWA 232告知第二設(shè)備處的發(fā)送TCP層240停止發(fā)送,但 是保持連接/會話開啟。第二設(shè)備處的發(fā)送TCP層240通過停止傳輸和 通過傳輸窗口通告探針662周期性地測試連接,來響應(yīng)ZWA 232。因 為移動服務(wù)器216不能傳送,并且繼續(xù)進(jìn)行傳送會使代理服務(wù)器220 中的緩沖器過載,導(dǎo)致數(shù)據(jù)的丟失,所以停止傳輸是重要的。
轉(zhuǎn)向圖6A,會話持續(xù)驅(qū)動器226接收窗口通告探針632并且連續(xù) 傳送TCP保持活躍分組634到服務(wù)器216中的會話持續(xù)驅(qū)動器210。 響應(yīng)于每個窗口通告探針,會話持續(xù)驅(qū)動器226也傳送ZWA 230'以繼 續(xù)安撫移動服務(wù)器中的發(fā)送TCP層222。再回到圖6B,會話持續(xù)驅(qū)動器226接收窗口通告探針662。響應(yīng) 于每個窗口通告探針,會話持續(xù)驅(qū)動器226也傳送ZWA 232,以繼續(xù)安 撫第二設(shè)備中的發(fā)送TCP層240。
轉(zhuǎn)向圖6A, 一旦通信被重新建立,服務(wù)器216中的會話持續(xù)驅(qū)動 器210將能夠通過經(jīng)過無線網(wǎng)絡(luò)235將TCP保持活躍ACK 628回傳到 會話持續(xù)驅(qū)動器226來響應(yīng)連續(xù)傳送的TCP保持活躍分組634中的一 個。TCP保持活躍ACK 638通知會話持續(xù)驅(qū)動器226無線連接234已 經(jīng)恢復(fù)。在接收到保持活躍ACK 638后,會話持續(xù)驅(qū)動器226發(fā)送在 前窗口通知640到服務(wù)器中的TCP層222,該在前窗口通知640告知 服務(wù)器TCP層222考慮在前窗口通知640中所描述的緩沖器窗口的大 小來繼續(xù)重新傳送丟失的數(shù)據(jù)。在前窗口通知是在通信丟失時聲明緩 沖器大小的窗口通知。現(xiàn)在,丟失的數(shù)據(jù)將作為TCP數(shù)據(jù)分組被重新 傳送,并且正常的通信重新開始。
再回到圖6B,在接收到保持活躍ACK 638后,會話持續(xù)驅(qū)動器 226也發(fā)送在前窗口通知680到第二設(shè)備中的TCP層240,該在前窗口 通知680告知第二設(shè)備中的TCP層240考慮在前窗口通知640中所描 述的緩沖器窗口的大小來繼續(xù)重新傳送丟失的數(shù)據(jù)。第二設(shè)備重新開 始傳送TCP分組,并且正常的通信重新開始。
需要理解的是,這里公開的有發(fā)明原理可以作很多修改。只要這 樣的修改落入所附權(quán)利要求和它們的等價物的范圍內(nèi),它們就旨在被 本發(fā)明所涵蓋。
權(quán)利要求
1. 一種第一設(shè)備的操作方法,所述第一設(shè)備通過運(yùn)行在所述第一設(shè)備上的網(wǎng)絡(luò)通信棧耦合到網(wǎng)絡(luò),所述網(wǎng)絡(luò)通信棧包括允許在會話期間在所述第一設(shè)備和第二設(shè)備之間進(jìn)行網(wǎng)絡(luò)通信的傳輸層,所述操作方法包括在所述網(wǎng)絡(luò)通信棧中的所述傳輸層下方,監(jiān)視在所述第一設(shè)備和所述第二設(shè)備之間的所述網(wǎng)絡(luò)通信;檢測所述網(wǎng)絡(luò)通信中的暫時中斷;以及在所述暫時中斷期間,阻止所述第一設(shè)備上的所述傳輸層終止所述會話。
2. 如權(quán)利要求1所述的操作方法,其中所述網(wǎng)絡(luò)通信由服務(wù)器代理。
3. 如權(quán)利要求l所述的操作方法,其中所述阻止步驟包括 在所述第一設(shè)備上的所述網(wǎng)絡(luò)通信棧中的所述傳輸層下方,產(chǎn)生一個或多個信號的集合,所述一個或多個信號的集合將被所述第一設(shè)備解釋為來自所述第二設(shè)備;以及發(fā)送所述一個或多個信號的集合到所述第一設(shè)備上的所述傳輸層。
4. 如權(quán)利要求3所述的操作方法,其中所述一個或多個信號的集 合指示在所述第二設(shè)備處被分配用于接收進(jìn)入數(shù)據(jù)的緩沖器為滿。
5. 如權(quán)利要求1所述的操作方法,其中所述第一設(shè)備上的所述網(wǎng) 絡(luò)通信桟進(jìn)一步包括在所述網(wǎng)絡(luò)通信棧中的所述傳輸層下方操作的會 話持續(xù)驅(qū)動器,并且其中所述會話持續(xù)驅(qū)動器執(zhí)行所述監(jiān)視和檢測的 步驟。
6. 如權(quán)利要求5所述的操作方法,其中所述會話持續(xù)驅(qū)動器發(fā)送 信號到所述第一設(shè)備上的所述傳輸層來執(zhí)行所述阻止步驟。
7. —種服務(wù)器的操作方法,其中所述服務(wù)器在第一會話期間耦合 到無線網(wǎng)絡(luò)上的第一設(shè)備,并且在第二會話期間耦合到有線網(wǎng)絡(luò)上的 第二設(shè)備,其中所述服務(wù)器、所述第一設(shè)備和所述第二設(shè)備每個都包 括網(wǎng)絡(luò)通信桟,該網(wǎng)絡(luò)通信棧具有允許在所述第一設(shè)備和所述第二設(shè) 備之間進(jìn)行網(wǎng)絡(luò)通信的傳輸層,該操作方法包括在所述服務(wù)器上的所述網(wǎng)絡(luò)通信棧中的傳輸層下方,在所述第一 會話期間監(jiān)視在所述第一設(shè)備和所述第二設(shè)備之間的所述網(wǎng)絡(luò)通信; 在所述第一會話期間檢測所述網(wǎng)絡(luò)通信中的暫時中斷; 在所述暫時中斷期間阻止所述服務(wù)器上的所述傳輸層終止所述第 一會話;以及在所述暫時中斷期間阻止所述第二設(shè)備上的所述傳輸層終止所述 第二會話。
8. 如權(quán)利要求7所述的操作方法,其中所述第一會話對于所述第 二設(shè)備透明,并且所述第二會話對于所述第一設(shè)備透明。
9. 如權(quán)利要求7所述的操作方法,其中在所述暫時中斷期間阻止 所述服務(wù)器上的所述傳輸層終止所述第一會話的所述步驟包括在所述服務(wù)器上的所述傳輸層下方,產(chǎn)生一個或多個信號的集合, 所述一個或多個信號的集合將被所述服務(wù)器解釋為來自所述第一設(shè) 備;以及發(fā)送所述一個或多個信號的集合到所述服務(wù)器上的所述傳輸層。
10. 如權(quán)利要求7所述的操作方法,其中在所述暫時中斷期間阻 止所述第二設(shè)備上的所述傳輸層終止所述第二會話的所述步驟包括在所述服務(wù)器上的所述傳輸層下方,產(chǎn)生一個或多個信號的集合, 所述一個或多個信號的集合將被所述第二設(shè)備解釋為來自所述第一設(shè)備;以及通過所述有線網(wǎng)絡(luò)傳送所述一個或多個信號的集合到所述第二設(shè) 備,以在所述暫時中斷期間阻止所述第二設(shè)備上的所述傳輸層終止所 述第二會話。
全文摘要
本公開提供用于阻止兩個設(shè)備之間的通信會話的終止的方法和系統(tǒng),其中該通信會話至少部分地在無線網(wǎng)絡(luò)上進(jìn)行。更具體地,本公開提供阻止TCP會話過早地終止或者TCP會話持續(xù)的方法和系統(tǒng),在這樣的網(wǎng)絡(luò)中,通過模擬正常通信的信號,使得接收設(shè)備“相信”模擬的信號從其它設(shè)備傳送而來。當(dāng)沒有檢測到設(shè)備預(yù)期接收的預(yù)期信號時,將從會話持續(xù)驅(qū)動器發(fā)送的模擬信號發(fā)送到設(shè)備。
文檔編號G06F15/16GK101416174SQ200780011753
公開日2009年4月22日 申請日期2007年3月20日 優(yōu)先權(quán)日2006年4月5日
發(fā)明者亞當(dāng)·C·里維斯, 克里斯托弗·博讓, 組拉布·酷卡什微里 申請人:摩托羅拉公司