專利名稱:用于網(wǎng)絡節(jié)點之間通信最優(yōu)化的系統(tǒng)和方法
技術領域:
本發(fā)明總的涉及最優(yōu)化網(wǎng)絡的節(jié)點之間的網(wǎng)絡通信. 背景信息
虛擬專用網(wǎng)絡(VPN)是利用諸如互聯(lián)網(wǎng)那樣的公共電信基礎結(jié) 構(gòu),以便通過使用隧道和安全機構(gòu)而保持專用性的專用數(shù)據(jù)網(wǎng)。這 樣,VPN提供數(shù)據(jù)加密和為通過公共網(wǎng)的共同的數(shù)據(jù)提供安全性。除 了解決經(jīng)由公共網(wǎng)安全接入共同的數(shù)據(jù)以外,VPN還針對從兩個斷開 連接的、或不能路由的網(wǎng)絡路由網(wǎng)絡業(yè)務。例如,具有在 10. 0. 0. 0-10. 255. 255. 255的范圍的專用互聯(lián)網(wǎng)協(xié)議地址的第 一專 用網(wǎng)經(jīng)由VPN與具有在192. 168. 0. 0-192. 168. 255. 255的范圍的專 用互聯(lián)網(wǎng)協(xié)議地址的第二專用網(wǎng)通信。VPN允許在第一專用網(wǎng)上的遠 程機通過隧道傳送來自遠程機的網(wǎng)絡業(yè)務和使得網(wǎng)絡業(yè)務出現(xiàn)在第 二專用網(wǎng)上而與在第二專用網(wǎng)上的內(nèi)部機通信。這對于客戶端-服務 器協(xié)議是可以行得通,其中遠程計算機與位于遠程網(wǎng)絡的企業(yè)服務 器進行協(xié)商。
然而,傳統(tǒng)的VPN在其中兩個遠程計算機諸如在對等協(xié)議下經(jīng)由
VPN網(wǎng)關隧道傳送互相直接通信的情形下不能很好地工作.VPN通過 平整不接連的專用網(wǎng)地址空間而達到這種對等計算,在所述地址空 間中由兩個遠程計算機經(jīng)由VPN網(wǎng)關隧道傳送所有的對等通信的, 結(jié)果,來自一方的網(wǎng)絡業(yè)務流到網(wǎng)關,并切換內(nèi)部網(wǎng)上的隨道,通 過互聯(lián)網(wǎng)流回到對等計算機,在對等計算機之間的網(wǎng)絡業(yè)務可以行 進或長或短的最佳路由,即使對等計算機可以在它們之間具有較短 的直接路徑。允許遠程計算機從由VPN提供的安全性獲益而不引起 較長的數(shù)據(jù)路徑的缺點是有用的。
在兩個計算機之間通過網(wǎng)絡的直接通信存在其它低效性.例如, 網(wǎng)絡連接容易斷開,例如,在客戶端與服務器之間的無線連接常常 是不可靠的。另外,網(wǎng)絡連接是間歇的。當人們進入電梯或隧道時, 連接會丟失,并且僅僅在人們從電梯或隧道中出來后連接才恢復。 在另一個例子中,當移動計算設備諸如在無線網(wǎng)絡拓樸中從網(wǎng)絡接 入點移動到另一個網(wǎng)絡接入點時,連接會中斷。
如果在客戶端與服務器計算機之間的建立的連接會話異常地終
結(jié),則客戶端通常必須通過啟動新的通信會話重新建立連接。為了 開始新的通信會話,用戶典型地必須重新發(fā)送鑒權證書,諸如登錄/ 密碼對,到服務器計算機,這樣,服務器計算機可以授權用戶新的 通信會話.這種通過多個通信會話的用戶的筌權證書的重發(fā)使得該 用戶的鑒權證書重復地暴露給潛在的攻擊者,由此降低鑒權證書的 安全水平。另外,這常常是緩慢的過程,也導致用戶受挫和低效率。 而且,在建立新的通信會話時,網(wǎng)絡可能需要客戶端得到新的網(wǎng)絡 標識符,諸如互聯(lián)網(wǎng)協(xié)議地址。因為客戶端標識符的改變,客戶端 的應用或程序可能需要重新啟動。因此,希望保護計算設備免受網(wǎng) 絡中斷。
與對等計算設備之間的直接通信關聯(lián)的另 一個低效率在于,用于 通信的協(xié)議可能不是如想要的那樣有效或安全.舉例來說,網(wǎng)絡通 信可包括諸如通過IP的話音(VoIP)通信那樣的實時數(shù)據(jù)通信.實 時數(shù)據(jù)通信可以經(jīng)由諸如用戶數(shù)據(jù)報協(xié)議那樣的不可靠的協(xié)議被傳 送,以便減小電話呼叫的等待時間,然而,VoIP通信可能經(jīng)過TCP/IP 網(wǎng)絡或安全SSL網(wǎng)關,它提供可靠的協(xié)議給VoIP通信。這會增加不 可靠的協(xié)議打算減小的電話呼叫的等待時間,需要經(jīng)由打算用于通
過使用有損協(xié)議的通信的無損協(xié)議來傳輸數(shù)據(jù)的技術.
直接通信中的另一個低效率是由于使用加密而造成的,諸如SSL 的加密可用來提供安全網(wǎng)絡通信。雖然通信是安全的,但網(wǎng)絡業(yè)務 的加密增加了網(wǎng)絡分組的尺寸,這會導致對于單個分組,分組有效 負栽變?yōu)樘?這會導致分組分段,造成用于通信處理的更多的開 銷。用于解決加密開銷而調(diào)節(jié)分組的最大值的技術是有用的.
另一個低效率是由于以下亊實造成的客戶端典型地在用戶的活 動和客戶端的應用生成網(wǎng)絡通信時發(fā)送網(wǎng)絡通信,并在網(wǎng)絡通信被
接收時,處理進入的網(wǎng)絡通信.例如,在一種情形下,雖然應用在 前臺運行,并且當前正在由用戶使用,但對于在后臺運行的應用生 成或接收的網(wǎng)絡分組可能在對于前臺運行的應用生成或接收的網(wǎng)絡 分組之前被處理。在另一個例子中,客戶端可能正在運行VoIP應用, 以提供電話呼叫到遠程計算設備。與VoIP的實時數(shù)據(jù)通信無關的客 戶端的一個或多個應用可能正在運行。用于這些應用的網(wǎng)絡分組可 能在VoIP電話的實時網(wǎng)絡分組之前被處理,由此增加等待時間和減 小話音應用的質(zhì)量.所以希望提供對分組業(yè)務的應用知道的、客戶 端特定的優(yōu)先化.
發(fā)明內(nèi)容
本發(fā)明總的針對用于提供對等通信和遠程接入連接性的遠程接 入結(jié)構(gòu)。在一個實施例中,本發(fā)明的遠程接入結(jié)構(gòu)提供用于經(jīng)由諸 如網(wǎng)關的第三計算設備建立對等計算設備之間的直接通信的方法。
另外,本發(fā)明提供用于對等通信最優(yōu)化的各種技術,包括實時通信, 諸如通過互聯(lián)網(wǎng)協(xié)議的話音(VoIP)信令,以及媒體、視頻、和其它 實時數(shù)據(jù)應用,諸如web合作、屏幕或桌面共享、和即時消息。本 發(fā)明提供以下的對等最優(yōu)化技術1)網(wǎng)絡分組的接收的虛假確認允 許經(jīng)由無損分組協(xié)議傳送對于經(jīng)由有損協(xié)議傳輸被構(gòu)建的分組,2) 網(wǎng)絡分組的有效負栽移位允許經(jīng)由無損分組協(xié)議傳送對于經(jīng)由有損 協(xié)議傳輸被構(gòu)建的分組,3)考慮由于加密造成的開銷,通過調(diào)節(jié)最 大傳輸單元(MTU)參數(shù)而減小分組分段,4)客戶端側(cè)網(wǎng)絡通信的 應用知道的優(yōu)先化,以及5)網(wǎng)絡中斷保護,用于可靠的和持久的網(wǎng) 絡連接性與接入,諸如用于移動計算。
一方面,本發(fā)明涉及用于建立在第一網(wǎng)絡上的第一計算設備與第 二網(wǎng)絡上的第二計算設備之間的對等通信會話的方法.笫 一 網(wǎng)絡可 以是與第二網(wǎng)絡不連接的,并且不能路由到第二網(wǎng)絡.該方法包括 由第一計算設備建立與第三計算設備的第一隧道會話,和由笫二計 算設備建立與第三計算設備的第二隧道會話。第三計算設備可以是
網(wǎng)關,諸如SSL VPN網(wǎng)關。第一計算設備經(jīng)由第三計算設備,諸如 經(jīng)由信令協(xié)議發(fā)起到第二計算設備的通信會話.服務器接收一個信 號,用來建立發(fā)起的通信會話,并且服務器把第一網(wǎng)絡地址傳送到 第一網(wǎng)絡的第一計算設備,第一網(wǎng)絡地址包括與第二隧道會話關聯(lián) 的第二計算設備。第一計算設備通過使用第一網(wǎng)絡地址傳送發(fā)起與 第二計算設備的連接的請求,方法還包括通過第三計算設備截取請 求,并為第一計算設備提供用于第二計算設備的第二網(wǎng)絡地址。第 二網(wǎng)絡地址識別與笫二計算設備關聯(lián)的公共網(wǎng)地址.第三計算設備 通過使用第二網(wǎng)絡地址,諸如經(jīng)由橫穿防火墻的浮筒會話(swi,er session)把請求傳送到第二計算設備,以允許來自第一計算設備的 連接。
在本發(fā)明的一個實施例中,通過使用安全套接字層或虛擬專用網(wǎng) 絡建立第一隧道會話或第二隧道會話.第三計算設備可以是遠程接 入網(wǎng)關。在另一個實施例中,第二計算設備位于與笫二網(wǎng)絡地址關 聯(lián)的防火墻的后面。
在另一個實施例中,本發(fā)明的方法包括通過把帶外信號經(jīng)由第一 隧道會話傳送到第 一計算設備而由第三計算設備把第二網(wǎng)絡地址提 供給第一計算設備。在附加實施例中,該方法包括由第二計算設備 為第一計算設備提供在防火墻中的轉(zhuǎn)發(fā)口,以便使用第二網(wǎng)絡地址 與第二計算設備通信。
在本發(fā)明的再一個實施例中,第三計算設備把密鑰傳送到第一計 算設備和第二計算設備。第 一計算設備和第二計算設備可以交換密 鑰。另外,第一和第二計算設備可以在發(fā)送數(shù)據(jù)到其它計算設備之 前檢驗從其它計算設備接收的密鑰是否匹配。
在本發(fā)明的一些實施例中,該方法把第一電信設備與第一計算設 備相關聯(lián),和把第二電信設備與第二計算設備相關聯(lián).第一電信設 備或第二電信設備可包括軟件部件或硬件部件,諸如硬或軟VoIP電
話。在一個實施例中,本發(fā)明的方法包括經(jīng)由在笫一和第二計算設 備之間的連接建立在第一電信設備與第二電信設備之間的電信會 話。第一電信設備和第二電信設備可以通過電信會話通信而不用經(jīng) 過笫三計算設備,
在本發(fā)明的另一個實施例中,該方法經(jīng)由在第一計算設備和第二 計算設備之間的連接傳送遠程顯示協(xié)議。遠程桌面協(xié)議可包括獨立 計算結(jié)構(gòu)協(xié)議或遠程桌面協(xié)議。在再一個實施例中,該方法可包括
經(jīng)由連接與第二計算設備共享第一計算設備的屏幕視圖或屏幕數(shù) 據(jù),
一方面,本發(fā)明涉及在網(wǎng)關中執(zhí)行的、用于建立在第一網(wǎng)絡上的 第一計算設備與第二網(wǎng)絡上的第二計算設備之間的對等通信會話的 方法。第一網(wǎng)絡可以是與第二網(wǎng)絡不連接的,并且不能路由到第二 網(wǎng)絡。該方法包括建立與笫一網(wǎng)絡上的第一計算設備的第一隧道會 話,和建立與第二網(wǎng)絡上的第二計算設備的第二隧道會話。網(wǎng)關接 收由第一計算設備發(fā)起與第二計算設備的通信會話的請求。第一計 算設備提供用于聯(lián)系第二計算設備的第一網(wǎng)絡地址。第一網(wǎng)絡地址 識別與第二隧道會話關聯(lián)的、第二計算設備的網(wǎng)絡地址。網(wǎng)關接收 由第 一計算設備發(fā)起通過使用第 一 網(wǎng)絡地址與第二計算設備連接的 請求,截取發(fā)起連接的請求,并為第一計算設備提供用于第二計算 設備的第二網(wǎng)絡地址。第二網(wǎng)絡地址識別與第二計算設備關聯(lián)的公 共網(wǎng)地址。網(wǎng)關通過使用第二網(wǎng)絡地址,諸如經(jīng)由橫穿防火墻的浮 筒會話把允許從第一計算設備到第二計算設備的連接的請求傳送到 第二計算設備。
在一個實施例中,經(jīng)由網(wǎng)關的第一隧道會話或笫二隧道會話包括 安全套接字層或虛擬專用網(wǎng)絡。在另一個實施例中,第二計算設備 位于與第二網(wǎng)絡地址關聯(lián)的防火墻的后面。在再一個實施例中,本
發(fā)明的方法通過把帶外信號經(jīng)由第 一 隧道會話傳送到第 一計算設備 而把第二網(wǎng)絡地址提供給第一計算設備。另外,網(wǎng)關可以把密鑰傳 送到第一計算設備和第二計算設備.
另一方面,本發(fā)明涉及用于經(jīng)由第三計算設備建立在第一網(wǎng)絡上 的第 一計算設備與第二網(wǎng)絡上的第二計算設備之間的對等通信會話 的系統(tǒng)。第一網(wǎng)絡可以是與笫二網(wǎng)絡不連接的,并且不能路由到第二網(wǎng)絡.該系統(tǒng)包括在第一網(wǎng)絡上的第一計算設備與第二網(wǎng)絡上的 第二計算設備。第三計算設備建立與第一計算設備的第一隧道會 話,和與第二計算設備的笫二隧道會話.系統(tǒng)還包括經(jīng)由第三計算 設備可接入的服務器。在系統(tǒng)操作中,服務器經(jīng)由第三計算設備把 第一網(wǎng)絡地址傳送到第一計算設備,該第一網(wǎng)絡地址識別與第二隧 道會話關聯(lián)的笫二計算設備的網(wǎng)絡地址.第一計算設備通過使用第 一網(wǎng)絡地址經(jīng)由第三計算設備傳送發(fā)起與笫二計算設備的連接的請 求,第三計算設備截取第一請求,并為第一計算設備提供用于第二 計算設備的第二網(wǎng)絡地址。第二網(wǎng)絡地址識別與第二計算設備關聯(lián) 的公共網(wǎng)地址,第三計算設備通過使用第二網(wǎng)絡地址傳送第二請求 到第二計算設備,以允許來自第一計算設備的連接。
在該系統(tǒng)的一個實施例中,第一隧道會話或第二隧道會話包括安 全套接字層或虛擬專用網(wǎng)絡。而且,第三計算設備可以是遠程接入
網(wǎng)關,諸如SSL VPN網(wǎng)關。在系統(tǒng)的另一個實施例中,笫二計算設 備位于與第二網(wǎng)絡地址關聯(lián)的防火墻的后面。
在本發(fā)明的另外的實施例中,第三計算設備通過經(jīng)由第一隧道會 話,諸如經(jīng)由帶外TLS會話,傳送帶外信號而把第二網(wǎng)絡地址提供 給第一計算設備。在一個實施例中,由第二計算設備為第一計算設 備提供在防火墻中的轉(zhuǎn)發(fā)口,以便使用第二網(wǎng)絡地址與第二計算設 備通信。
在本發(fā)明的再一個實施例中,第三計算設備把密鑰傳送到第一計 算設備和第二計算設備.第 一計算設備和第二計算設備可以交換密 鑰。另外,第一和第二計算設備可以在發(fā)送數(shù)據(jù)之前檢驗從其它計 算設備接收的密鑰是否匹配。
在本發(fā)明的一些實施例中,系統(tǒng)包括與第一計算設備關聯(lián)的第一 電信設備,和與第二計算設備關聯(lián)的第二電信設備,第一電信設備 或第二電信設備可包括軟件部件或硬件部件,諸如硬或軟VoIP電 話.在一個實施例中,本發(fā)明的系統(tǒng)包括經(jīng)由在第一和第二計算設 備之間的連接建立在第一電信設備與第二電信設備之間的電信會 話。第一電信設備和第二電信設備可以通過電信會話通信而不用經(jīng) 過第三計算設備,
在本發(fā)明的另 一個實施例中,第 一計算設備和第二計算設備經(jīng)由
連接傳送遠程顯示協(xié)議.遠程桌面協(xié)議可包括獨立計算結(jié)構(gòu)協(xié)議或 遠程桌面協(xié)議.在再一個實施例中,第一計算設備可以經(jīng)由連接與 第二計算設備共享屏幕視困或屏幕數(shù)據(jù).
另一方面,本發(fā)明涉及經(jīng)由無損協(xié)議傳送對于經(jīng)由有損協(xié)議傳輸 被構(gòu)建的分組的方法.該方法可以在一個或多個電子設備,諸如在 系統(tǒng)中,并通過任何適當?shù)难b置和機構(gòu)被執(zhí)行.該方法包括經(jīng)由無 損協(xié)議建立在第一計算設備與笫二計算設備之間的連接.在一些實
施例中,第二計算設備可以是網(wǎng)關,諸如SSL VPN網(wǎng)關.第一計算 設備檢測無損協(xié)議分組,無損協(xié)議分組包括具有按照有損協(xié)議被構(gòu) 建的一個或多個分組的有效負栽。第一計算設備把無損協(xié)議分組的 接收的虛假確認傳送到第一計算設備和/或笫二計算設備。無損協(xié)議 分組的接收的虛假確認阻止利用用于無損協(xié)議的可靠性算法和機 構(gòu)。第一計算設備把無損協(xié)議分組傳送到第二計算設備。在一些實 施例中,無損協(xié)議分組的接收的虛假確認在傳送無損協(xié)議分組之前 被傳送.
在一個實施例中,本發(fā)明的方法包括由第一計算設備使用密鑰來 加密一個或多個分組.在一些實施例中,加密密鑰可以經(jīng)由在第一 計算設備與第二計算設備之間的帶外傳輸安全層會話被提供給第一 計算設備.在另一個實施例中,方法逐個分組地加密一個或多個分 組.
在本發(fā)明的方法的另一個實施例中,響應于由第一計算設備和/ 或第二計算設備接收到無損協(xié)議分組的接收的虛假確認,第一計算
設備和/或第二計算設備阻止執(zhí)行與提供無損協(xié)議的無損特性關聯(lián) 的操作。在一個實施例中,無損協(xié)議是傳輸控制協(xié)議。
在再一個實施例中,本發(fā)明的方法阻止第一計算設備和/或第二 計算設備的網(wǎng)絡堆棧執(zhí)行與無損協(xié)議有關的一個或多個以下的算 法1)重發(fā),2)排序,3)流控制算法,4)naple算法,和5)滑動 窗口算法.
在一個實施例中,有損協(xié)議包括用戶數(shù)據(jù)報協(xié)議。在另一個實施 例中,該方法包括由第一計算設備經(jīng)由安全套接字層或傳輸安全層 隧道把無損協(xié)議分組傳送到第二計算設備。
在另一個實施例中,有效負栽的一個或多個分組包括實時協(xié)議。
在附加實施例中,該方法包括由第一計算設備把實時話音、音頻或 數(shù)據(jù)之一經(jīng)由一個或多個分組傳送到第二計算設備。
一方面,本發(fā)明涉及通過使用在TCP連接上不可靠的傳輸協(xié)議發(fā) 送來自應用的分組的方法.該方法包括在第一設備接收要使用不可 靠的傳輸協(xié)議發(fā)送的第一分組,和創(chuàng)建第一 TCP分組,該第一 TCP 分組包括接收的第一分組的第一有效負栽和與在第一設備與第二設 備之間建立的TCP連接關聯(lián)的信息的第一 TCP首部.第一設備把第
一 TCP分組發(fā)送到笫二設備.該方法還包括在第一設備處接收要使 用不可靠的傳輸協(xié)議發(fā)送的第二分組,和創(chuàng)建第二 TCP分組,該第
二 TCP分組包括接收的第二分組的第二有效負栽和第一 TCP首部信 息。在接收來自第二設備的第一有效負栽的接收的確認之前,第一 設備把第二 TCP分組發(fā)送到第二設備.
在一個實施例中,本發(fā)明的方法建立與一個端口號的TCP連接, 該端口號與不可靠的傳輸協(xié)議相關聯(lián)。在另一個實施例中,該方法 包括由第一設備動態(tài)地確定包括不可靠的傳輸協(xié)議的第一 TCP分組 與第二TCP分組。在一些實施例中,不可靠的傳輸協(xié)議是UDP。
在另外的實施例中,該方法包括在第一設備上通過使用分組捕獲 機構(gòu)截取第一 TCP分組與第二 TCP分組來接收第一 TCP分組與第二 TCP分組。在一些實施例中,該方法包括由第一設備建立與VPN網(wǎng)關 設備的TCP連接.在其它的實施例中,該方法包括經(jīng)由TCP連接建 立在第一設備與第二設備之間的對等通信,在本發(fā)明的另 一個實施 例中,該方法包括由第一設備加密第一與第二 TCP分組,和由第二 設備解密該加密的笫一與第二TCP分組,
另 一方面,本發(fā)明涉及通過使用在TCP連接上的不可靠的傳輸協(xié) 議發(fā)送來自應用的分組的方法。該方法包括在第二設備處截取在第 一設備處創(chuàng)建的和在第二設備處接收的第一 TCP分組。第一 TCP分 組包括由應用通過使用不可靠的傳輸協(xié)議生成的第一分組的第一有 效負栽和與在第一設備與第二設備之間建立的TCP連接關聯(lián)的信息 的笫一 TCP首部。該方法的截取在第一 TCP分組被提供給第二設備 的TCP堆棧之前發(fā)生.該方法包括響應于信息的TCP首部來識別第
一有效負栽是由應用通過使用不可靠的傳輸協(xié)議而生成的分組,從 第一 TCP分組剝離信息的TCP首部,和通過使用不可靠的傳輸協(xié)議
把第一有效負栽轉(zhuǎn)發(fā)到應用.
在一個實施例中,不可靠的協(xié)議是UDP.在另一個實施例中,識 別的步驟包括識別TCP首部信息,包括與不可靠的傳輸協(xié)議關聯(lián)的 端口號.在一些實施例中,該方法包括由第二設備通過使用分組捕 獲驅(qū)動器來截取第一 TCP分組。
在一些實施例中,第一設備是客戶端設備并且笫二設備是VPN
網(wǎng)關.另外,本發(fā)明的方法包括把第一有效負栽轉(zhuǎn)發(fā)到應用之前在 笫二設備上執(zhí)行網(wǎng)絡地址轉(zhuǎn)換(NAT)
再一方面,本發(fā)明涉及用于通過使用在TCP連接上的不可靠的傳 輸協(xié)議發(fā)送來自應用的分組的系統(tǒng)。系統(tǒng)包括第一和第二設備。第 一設備具有生成第一和第二分組的應用,第一和第二分組打算通過 使用不可靠的傳輸協(xié)議被發(fā)送.第一設備還具有過濾器進程和隧道 進程.過濾器進程截取來自應用的第一和第二分組,并把截取的分 組轉(zhuǎn)發(fā)到隧道進程.隧道進程請求打開在第一設備與第二設備之間 的TCP連接。打開TCP連接的請求向第一和第二設備表示,TCP連接 將傳輸打算用不可靠的傳輸協(xié)議發(fā)送的分組。隧道進程把第一和第
二分組作為在第一和第二 TCP分組中的有效負栽轉(zhuǎn)發(fā)到笫二設備. 隧道進程在發(fā)送TCP分組之后和在接收對于第一 TCP分組的確認之 前發(fā)送第二TCP分組。
本發(fā)明的系統(tǒng)的第二設備與第 一設備進行通信,第二設備具有第 二過濾器進程和隧道進程。第二隧道進程打開由第一設備請求的TCP 連接,并識別并把TCP連接的源地址轉(zhuǎn)發(fā)到第二過濾器進程。第二 過濾器進程截取在第二設備處用首部中的TCP連接源地址接收的、 來自應用的分組.第二過濾器進程從接收的分組剝離TCP首部,把 被剝離的分組轉(zhuǎn)發(fā)到打算的目的地,并繞開在第二設備上的TCP/IP 堆棧。
在本發(fā)明的系統(tǒng)的一個實施例中,在第一設備上的第一過濾器進 程和/或在笫二設備上的笫二過濾器進程是分組捕獲驅(qū)動器.在一些 實施例中,第一設備是客戶端設備并且第二設備是VPN網(wǎng)關設備。 在一個實施例中,不可靠的數(shù)據(jù)協(xié)議是UDP。
在另一個實施例中,系統(tǒng)還包括第三設備,剝離的分組被發(fā)送到 該第三設備。另外,第二設備還可包括網(wǎng)絡地址轉(zhuǎn)換(NAT)表,用來在把剝離的分組發(fā)送到第三設備之前執(zhí)行網(wǎng)絡地址轉(zhuǎn)換,
再一方面,本發(fā)明涉及用于調(diào)節(jié)安全網(wǎng)絡通信的最大傳輸單元以 減小網(wǎng)絡分段的方法。方法可以在一個或多個電子設備,諸如在系 統(tǒng)中,并通過任何適當?shù)难b置和機構(gòu)被執(zhí)行.該方法包括建立在第 一計算設備與第二計算設備之間的會話.會話可以由第 一計算設備 的代理建立。第一計算設備具有第一網(wǎng)絡堆棧.該方法由第一計算 設備檢測具有加密的有效負栽的網(wǎng)絡分組,并確定對于笫一網(wǎng)絡堆 棧的最大傳輸單元參數(shù)的設置,以將最大傳輸單元尺寸減小至少與 有效負載的加密部分關聯(lián)的一個尺寸。該方法把第一網(wǎng)絡堆棧的最大傳輸單元(MTU)參數(shù)改變到所確定的設置,這樣,報告的MTU參 數(shù)被減小,以便考慮加密.
在一個實施例中,本發(fā)明的方法包括經(jīng)由安全套接字層或傳輸層 安全隧道把網(wǎng)絡分組傳送到第二計算設備。第二計算設備可以是網(wǎng) 關,諸如SSL VPN網(wǎng)關.在另一個實施例中有效負栽包括實時協(xié)議。
另外,在一個實施例中,方法還可包括經(jīng)由第一網(wǎng)絡堆棧的網(wǎng)絡 驅(qū)動器接口技術規(guī)范(NDIS)水平機構(gòu)來改變最大傳輸單元參數(shù). 在另一個實施例中,該方法對每個在第一計算設備與第二計算設備 之間的會話動態(tài)地確定最大傳輸單元參數(shù)的設置。在一個實施例 中,第一計算設備的代理經(jīng)由IOCTL應用編程接口與笫一網(wǎng)絡堆棧 通信,以便把最大傳輸單元參數(shù)改變?yōu)樗_定的設置。
在一些實施例中,本發(fā)明的方法經(jīng)由網(wǎng)關建立在第一計算設備與 第二計算設備之間的會話.在其它實施例中,該方法包括由第一計算設備把實時話音、音頻或數(shù)據(jù)經(jīng)由一個或多個網(wǎng)絡分組的有效負 栽傳送到第二計算設備。在再一個實施例中,該方法可包括在傳送 網(wǎng)絡分組之前把網(wǎng)絡分組的接收的虛假確認傳送到第一計算設備和 /或第二計算設備。在一個實施例中,網(wǎng)絡分組包括無損協(xié)議分組, 諸如傳輸控制協(xié)議。在另一個實施例中,有效負栽包括有損協(xié)議分 組,諸如用戶數(shù)據(jù)報協(xié)議。
另一方面,本發(fā)明涉及對客戶端優(yōu)先化與客戶端的應用關聯(lián)的、 客戶端的網(wǎng)絡通信的方法。該方法包括由客戶端截取與客戶端的一 個或多個應用關聯(lián)的一個或多個網(wǎng)絡分組,并存儲該一個或多個網(wǎng) 絡分組到一個隊列??蛻舳舜_定與客戶端的第一應用關聯(lián)的排隊的
一個或多個網(wǎng)絡分組.客戶端表示所確定的一個或多個網(wǎng)絡分組的 優(yōu)先權,把確定的一個或多個網(wǎng)絡分組放置在與客戶端的第二應用 關聯(lián)的、隊列中的至少一個網(wǎng)絡分組之前.客戶端提供優(yōu)先化的一 個或多個網(wǎng)絡分組以便經(jīng)由客戶端的網(wǎng)絡堆棧通信.
在一個實施例中,本發(fā)明的方法包括由客戶端確定第一應用的排 隊的一個或多個網(wǎng)絡分組包括實時數(shù)據(jù)。實時數(shù)據(jù)可包括以下的一
項1)實時協(xié)議,2)用戶數(shù)據(jù)報協(xié)議,和3)話音或音頻的表示。 在另一個實施例中,該方法包括由客戶端阻止第二應用的至少一 個網(wǎng)絡分組在笫一應用的一個或多個網(wǎng)絡分組之前經(jīng)由網(wǎng)絡堆棧被 傳送.在再一個實施例中,該方法包括由客戶端把與第二應用關聯(lián) 的網(wǎng)絡分組保存在隊列中,并當在保存的網(wǎng)絡分組之前優(yōu)先化的、 與第一應用關聯(lián)的一個或多個網(wǎng)絡分組被傳送時釋放保存的網(wǎng)絡分 組.
在本發(fā)明的又一個實施例中,該方法包括由客戶端對于客戶端上 的一個或多個應用透明地截取一個或多個網(wǎng)絡分組。在一些實施例 中,第一應用在前臺運行,以及笫二應用在后臺運行。
在本發(fā)明的一個實施例中,該方法包括把比與第二應用關聯(lián)的優(yōu) 先權更高的優(yōu)先權與第一應用相關聯(lián)。在另一個實施例中,用戶可 以規(guī)定第一應用或第二應用的優(yōu)先權。在再一個實施例中,客戶端 接收來自計算設備的一個或多個網(wǎng)絡分組。另外,該一個或多應用 可提供一個或多個網(wǎng)絡分組,以便從客戶端到計算設備的傳送。
另一方面,本發(fā)明涉及對于與客戶端的應用關聯(lián)的客戶端網(wǎng)絡通 信進行優(yōu)先化的客戶端??蛻舳税ㄓ糜诮厝∨c客戶端的一個或多 個應用關聯(lián)的客戶端的一個或多個網(wǎng)絡分組的機構(gòu)??蛻舳诉€包括 網(wǎng)絡驅(qū)動器,用于存儲一個或多個網(wǎng)絡分組到一個隊列,并經(jīng)由客 戶端的網(wǎng)絡堆棧傳送該一個或多個網(wǎng)絡分組.客戶端還包括代理, 用于確定與客戶端的第一應用關聯(lián)的一個或多個網(wǎng)絡分組,并向網(wǎng) 絡驅(qū)動器表示該一個或多個網(wǎng)絡分組的優(yōu)先權,以把所確定的一個 或多個網(wǎng)絡分組放置在與客戶端的第二應用關聯(lián)的、隊列中的至少 一個網(wǎng)絡分組的前面.
在一個實施例中,本發(fā)明的代理確定第一應用的一個或多個網(wǎng)絡 分組,包括實時數(shù)據(jù).實時數(shù)據(jù)包括以下的一項1)實時協(xié)議,2)
用戶數(shù)據(jù)報協(xié)議,和3)話音或音頻的表示。
在另一個實施例中,本發(fā)明的代理或網(wǎng)絡驅(qū)動器阻止第二應用的 至少一個網(wǎng)絡分組在第一應用的一個或多個網(wǎng)絡分組之前經(jīng)由網(wǎng)絡 堆棧被傳送.在一個實施例中,網(wǎng)絡驅(qū)動器把與笫二應用關聯(lián)的網(wǎng) 絡分組保存在隊列中,并當在保存的網(wǎng)絡分組之前的、與第一應用 關聯(lián)的一個或多個網(wǎng)絡分組被傳送時釋放所保存的網(wǎng)絡分組。
在另一個實施例中,本發(fā)明經(jīng)由機構(gòu)對于客戶端上的一個或多個 應用透明地截取一個或多個網(wǎng)絡分組。在一些實施例中,第一應用 在前臺運行,以及第二應用在后臺運行.另外,第一應用可能具有 比客戶端的第二應用更高的優(yōu)先權.而且,客戶端可包括用于用戶 規(guī)定優(yōu)先權的配置機構(gòu)。在一些實施例中,客戶端接收來自計算設 備的一個或多個網(wǎng)絡分組。在其它實施例中,該一個或多個應用提 供一個或多個網(wǎng)絡分組以便從客戶端到計算設備的傳送.
在另外的實施例中,網(wǎng)絡驅(qū)動器包括網(wǎng)絡驅(qū)動器接口技術規(guī)范 (NDIS)驅(qū)動器.另外,網(wǎng)絡驅(qū)動器可以在客戶端的操作系統(tǒng)的內(nèi) 核模式下工作。在某些情形下,代理在客戶端的操作系統(tǒng)的用戶模 式下工作。而且,網(wǎng)絡驅(qū)動器的代理包括用于截取客戶端的一個或
多個網(wǎng)絡分組的機構(gòu)。
再一方面,本發(fā)明涉及用于保護經(jīng)由第一協(xié)議建立的會話免受網(wǎng) 絡中斷的方法。該方法包括經(jīng)由客戶端的代理建立在客戶端與設備 之間的網(wǎng)絡連接上經(jīng)由第一協(xié)議的會話的步驟。網(wǎng)絡連接與網(wǎng)絡堆 棧相關聯(lián).網(wǎng)絡堆棧的第一部分包括在第一協(xié)議的層下面的網(wǎng)絡堆 棧的一個或多個層,并且網(wǎng)絡堆棧的第二部分包括用于第一協(xié)議的 層和在第一協(xié)議上面的網(wǎng)絡堆棧的一個或多個層。該方法包括檢測 造成網(wǎng)絡堆棧的第二部分被解除的、在網(wǎng)絡連接中的中斷,和在中 斷期間由代理保持會話和網(wǎng)絡堆棧的第二部分.該方法還包括重新 建立網(wǎng)絡堆棧的第一部分和網(wǎng)絡連接,而同時保持會話和網(wǎng)絡堆棧 的第二部分。
在一個實施例中,該方法包括用網(wǎng)絡堆棧的保持的第二部分和網(wǎng) 絡堆棧的重新建立的第一部分繼續(xù)進行會話.在一些實施例中,該 方法還包括由網(wǎng)絡堆棧的第一和/或第二部分丟棄在中斷期間接收 的任何網(wǎng)絡分組.
在另一個實施例中,設備包括遠程接入網(wǎng)關或另一個計算設備.
在某些情形下,該方法包括經(jīng)由以下的協(xié)議的第一協(xié)議建立會話 l)安全套接字層(SSL)協(xié)議,2)傳輸層安全(TLS)協(xié)議,以及3) 隧道協(xié)議,另外,本發(fā)明的方法可包括由代理經(jīng)由在客戶端與設備 之間的會話傳送實時數(shù)據(jù)。實時數(shù)據(jù)可包括實時協(xié)議,或?qū)崟r數(shù)據(jù) 可表示話音或音頻.
在一些實施例中,代理在客戶端的搮作系統(tǒng)的用戶模式下工作, 在一個實施例中,網(wǎng)絡的第一部分包括傳輸控制協(xié)議或互聯(lián)網(wǎng)協(xié)議 之一。在另一個實施例中,網(wǎng)絡堆棧的第二部分包括以下的一個協(xié) 議l)互聯(lián)網(wǎng)協(xié)議,2)用戶數(shù)據(jù)報協(xié)議,或3)通過互聯(lián)網(wǎng)的話音協(xié) 議。另外,客戶端可以經(jīng)由遠程顯示協(xié)議與設備通信。遠程顯示協(xié) 議可以是獨立的計算結(jié)構(gòu)(ICA)協(xié)議或遠程桌面協(xié)議(RDP)。
在另一個實施例中,本發(fā)明的方法對于經(jīng)由網(wǎng)絡連接通信的客戶 端的應用透明地執(zhí)行。在一個實施例中,該方法包括由代理對于客 戶端的應用透明地截取與應用關聯(lián)的一個或多個網(wǎng)絡分組.在一個 實施例中,該方法包括由與堆棧的第一部分關聯(lián)的網(wǎng)絡驅(qū)動器對于 客戶端的應用透明地截取與應用關聯(lián)的一個或多個網(wǎng)絡分組.
另一方面,本發(fā)明涉及用于保護經(jīng)由第一協(xié)議建立的會話免受網(wǎng) 絡中斷的系統(tǒng)。系統(tǒng)具有客戶端的代理經(jīng)由第一協(xié)議通過網(wǎng)絡連接 建立在客戶端與設備之間的會話。該系統(tǒng)包括具有第一部分和第二 部分的網(wǎng)絡堆棧,諸如客戶端的網(wǎng)絡堆棧。網(wǎng)絡堆棧的第二部分包 括用于第一協(xié)議的層和在第一協(xié)議上面的、網(wǎng)絡堆棧的一個或多個 層,以及網(wǎng)絡堆棧的第一部分包括在第一協(xié)議的層下面的、網(wǎng)絡堆 棧的一個或多個層。該系統(tǒng)包括檢測器,用于檢測造成網(wǎng)絡堆棧的 第一部分被解除的、在網(wǎng)絡連接中的中斷。在系統(tǒng)操作中和在由檢 測器檢測中斷時,代理在中斷期間保持會話和網(wǎng)絡堆棧的第二部 分.客戶端重建網(wǎng)絡堆棧的第一部分和網(wǎng)絡連接,同時代理保持會 話和網(wǎng)絡堆棧的第二部分。
在本發(fā)明的系統(tǒng)的一個實施例中,代理用網(wǎng)絡堆棧的保持的第二 部分和網(wǎng)絡堆棧的重建的笫一部分繼續(xù)進行會話。在一些實施例 中,網(wǎng)絡堆棧的第一和/或第二部分丟棄在中斷期間接收的任何網(wǎng)絡 分組。
在一個實施例中,系統(tǒng)的設備是遠程接入網(wǎng)關或另一個計算設
備。由本發(fā)明的系統(tǒng)所使用的第一協(xié)議可包括以下的一個l)安全 套接字層(SSL)協(xié)議,2)傳輸層安全(TLS)協(xié)議,以及3)隧道協(xié) 議.在另一個實施例中,本發(fā)明的代理經(jīng)由在客戶端與設備之間的 會話傳送實時數(shù)據(jù).實時數(shù)據(jù)可包括實時協(xié)議,或話音或音頻的表 示。
在系統(tǒng)的一些實施例中,代理在客戶端的操作系統(tǒng)的用戶模式下 工作。在一個系統(tǒng)實施例中,網(wǎng)絡的第一部分包括傳輸控制協(xié)議和/ 或互聯(lián)網(wǎng)協(xié)議。在另一個實施例中,網(wǎng)絡堆棧的第二部分包括以下 的一個協(xié)議l)互聯(lián)網(wǎng)協(xié)議,2)用戶數(shù)據(jù)報協(xié)議,或3)通過互聯(lián)網(wǎng) 的話音協(xié)議。另外,客戶端可以經(jīng)由遠程顯示協(xié)議與設備通信,它 可以是獨立的計算結(jié)構(gòu)(ICA)協(xié)議或遠程桌面協(xié)議(RDP),
在另一個實施例中,本發(fā)明的系統(tǒng)保持網(wǎng)絡堆棧的第二部分和對 于經(jīng)由網(wǎng)絡連接通信的客戶端的應用透明地重建網(wǎng)絡堆棧的笫一部 分。在一個實施例中,代理對于客戶端的應用透明地截取與應用關 聯(lián)的一個或多個網(wǎng)絡分組。在一個實施例中,系統(tǒng)還包括由與堆棧 的第二部分關聯(lián)的網(wǎng)絡驅(qū)動器對于客戶端的應用透明地截取與應用
關聯(lián)的一個或多個網(wǎng)絡分組。
下面在附圖和說明中闡述本發(fā)明的各種實施例的細節(jié)。
通過參考結(jié)合附圖作出的以下的說明,本發(fā)明的上述的和其它的 目的、方面、特性和優(yōu)點將變得更明白和可以更好地了解,其中
圖1A是顯示用于在網(wǎng)絡環(huán)境下經(jīng)由網(wǎng)關實施本發(fā)明的操作的實 施例的框圖1B是顯示用于在對等網(wǎng)絡環(huán)境下實施本發(fā)明的操作的另一個 實施例的框圖1C是顯示用于網(wǎng)絡通信的、本發(fā)明的遠程接入客戶端的實施 例的框圖1D和1E是顯示在實施本發(fā)明的實施例中有用的計算設備的實 施例的框圖2A是顯示用于實施用于建立對等通信路由的本發(fā)明的技術的
實施例的對等網(wǎng)絡環(huán)境的實施例的框困2B是顯示對于使得本發(fā)明的對等路由最優(yōu)化技術最優(yōu)化執(zhí)行
的步驟的實施例的流程圖3A是顯示在圖1A到1C上所示的說明性實施例的任何計算設 備的網(wǎng)絡堆棧的實施例的框圖3B是顯示對于使用網(wǎng)絡分組的接收的虛假確認經(jīng)由對于經(jīng)由 有損協(xié)議傳輸被構(gòu)建的無損協(xié)議分組進行通信所執(zhí)行的步驟的實施 例的流程圖3C是顯示對于經(jīng)由有損協(xié)議傳輸被構(gòu)建的無損協(xié)議分組進行 通信所執(zhí)行的步驟的實施例的流程圖4是顯示對于調(diào)節(jié)最大傳輸單元參數(shù)執(zhí)行的步驟的一個實施 例的流程圖5A是顯示用于提供客戶端側(cè)應用知道的優(yōu)先化技術的客戶端 的環(huán)境的框圖5B是對于提供客戶端側(cè)應用知道的優(yōu)先化執(zhí)行的步驟的一個 實施例的流程圖6A是顯示用于保護來自設備的網(wǎng)絡中斷的設備的實施例的框 圖;以及
圖6B是在保護來自設備的網(wǎng)絡中斷時執(zhí)行的步驟的一個實施例 的流程圖。
具體實施例方式
下面描述本發(fā)明的某些說明性實施例。然而,應當直接指出,本 發(fā)明不限于這些實施例,而是打算把對于這里直接描述的內(nèi)容的添 加和修改包括在本發(fā)明的范圍內(nèi)。而且,可以看到,這里描述的各 種實施例的特性不是互相不相容的,而是可以存在于各種組合和置 換,即使這樣的組合或置換在這里沒有直接作出,而不背離本發(fā)明 的精神和范圍。
本發(fā)明的說明性實施例總的針對用于提供對等通信和遠程接入 連接性的遠程接入結(jié)構(gòu)。在一個說明性實施例中,本發(fā)明的遠程接 入結(jié)構(gòu)提供用于經(jīng)由第三計算設備,諸如網(wǎng)關,建立在各個計算設 備之間的直接連接的方法.本發(fā)明還提供用于使通過或不通過網(wǎng)關建立的對等通信最優(yōu)化的各種技術。對等通信可包括實時通信,諸
如通過互聯(lián)網(wǎng)協(xié)議的話音(VoIP)信令和媒體、視頻和其它實時數(shù)據(jù) 應用,諸如web合作、屏幕或桌面共享、以及立即消息,除了經(jīng)由 網(wǎng)關建立對等通信以外,本發(fā)明還提供使對等通信最優(yōu)化的以下技 術1)網(wǎng)絡分組的接收的虛假確認允許經(jīng)由無損分組協(xié)議傳送對于 經(jīng)由有損協(xié)議傳輸被構(gòu)建的分組,2)網(wǎng)絡分組的有效負栽移位允許 經(jīng)由無損分組協(xié)議傳送對于經(jīng)由有損協(xié)議傳輸被構(gòu)建的分組,3)考 慮由于加密造成的開銷,通過調(diào)節(jié)最大傳輸單元(MTU)參數(shù)而減小 分組分段,4)客戶端側(cè)網(wǎng)絡通信的應用知道的優(yōu)先化,以及5)網(wǎng)絡 中斷保護,用于可靠的和持久的網(wǎng)絡連接與接入,諸如用于移動客 戶端。這些技術在一些實施例中可在兩個客戶端之間的對等通信中 被實施,或在其它實施例中在客戶端與網(wǎng)關之間,或在一個計算設 備經(jīng)由網(wǎng)關與另一個計算設備之間的通信中被實施,諸如經(jīng)由本發(fā) 明的說明性實施例的SSL VPN網(wǎng)關。
在本發(fā)明的說明性實施例中,對等路由最優(yōu)化技術確定客戶端可 以嘗試經(jīng)由網(wǎng)關接入的、到資源的更加優(yōu)化的路由.客戶端和由客 戶端接入的資源,諸如服務器或各個計算機,可以具有比具有網(wǎng)關 更直接的路由,例如,客戶端和服務器可以互相靠近,但遠離網(wǎng)關, 因此比起網(wǎng)關來說互相更接近。而且,使用網(wǎng)關使得在客戶端與服 務器之間的對等網(wǎng)絡通信中至少一個附加的跳。代替客戶端與服務 器通過使用它們的虛擬專用網(wǎng)絡(VPN)指定的互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng) 絡地址經(jīng)由網(wǎng)關進行通信,本發(fā)明的網(wǎng)關與遠程接入結(jié)構(gòu)便于客戶 端和服務器以對等的方式經(jīng)由直接路由互相通信而不使用網(wǎng)關。然 而,在某些情形下,客戶端和服務器可能互相之間沒有直接路徑, 因為客戶端和/或服務器可能處在防火墻后面,諸如網(wǎng)絡地址轉(zhuǎn)換 (NAT)防火墻.本發(fā)明的對等路由最優(yōu)化技術和遠程接入結(jié)構(gòu)還提 供客戶端與服務器經(jīng)由穿過防火墻直接通信的技術.這樣,本發(fā)明
的對等路由最優(yōu)化技術,比起經(jīng)由網(wǎng)關,提供在對等計算機之間的 更短的更優(yōu)化的路由。
在本發(fā)明的說明性實施例中,本發(fā)明的實施例的虛假確認技術使 得對于經(jīng)由有損協(xié)議發(fā)送被構(gòu)建的分組能夠經(jīng)由無損協(xié)議被傳送。 例如,實時協(xié)議(RTP)可以在用戶數(shù)據(jù)報協(xié)議(UDP)上實施,用
于IP (VoIP)通信。有損的或不可靠的協(xié)議,諸如UDP,可用于話 音通信,因為在某些實時話音應用中對于接收者更重要的是及時得 到網(wǎng)絡分組,而不是按照順序得到網(wǎng)絡分組或保證網(wǎng)絡分組的傳 遞。然而,借助于使用諸如諸如安全套接字層(SSL)或傳輸層安全 性(TLS)那樣的安全通信和/或隧道協(xié)議的虛擬專用網(wǎng)絡和遠程接 入解決方案,對于經(jīng)由諸如UDP那樣的有損協(xié)議發(fā)送而被構(gòu)建的實 時應用可以經(jīng)由諸如傳輸控制協(xié)議(TCP)的無損的或可靠的協(xié)議被 傳送,本發(fā)明的技術允許諸如UDP上的RTP那樣的有損協(xié)議經(jīng)由諸 如TCP那樣的無損協(xié)議進行通信,同時避免無損協(xié)議的一個或多個 無損特性被應用到通信。在本發(fā)明的說明性實施例中,這個技術把 無損協(xié)議網(wǎng)絡分組的接收的虛假確認傳送到相應的網(wǎng)絡堆棧,以避 免無損協(xié)議執(zhí)行提供協(xié)議的可靠性的算法。通過使用這種技術,有 損協(xié)議可以在諸如TCP, SSL那樣的無損協(xié)議上,或經(jīng)由網(wǎng)關的隧道 協(xié)議被傳送,例如使得通信安全,并使得有損協(xié)議網(wǎng)絡分組及時到 達接收者,而不是可靠地到達接收者.在一個實施例中,這個技術 可用來在對等體之間或經(jīng)由網(wǎng)關安全地傳送諸如在SSL或TLS上的 VoIP那樣的實時數(shù)據(jù)通信.
本發(fā)明的說明性實施例還提供有效負載移位的另一個技術,使得 對于經(jīng)由有損協(xié)議發(fā)送而被構(gòu)建的分組能夠經(jīng)由無損協(xié)議被傳送, 第一計算設備接收通過使用不可靠的傳輸協(xié)議所發(fā)送的第 一分組, 并創(chuàng)建包括所接收的第一分組的第一有效負栽的第一 TCP分組.第 一 TCP分組用具有與在第一和第二計算設備之間建立的TCP連接關 聯(lián)的信息的TCP首部來創(chuàng)建.第一TCP分組被傳送到第二計算設備。 通過使用不可靠傳輸協(xié)議被傳送的第二分組由第一計算設備接收, 第一計算設備轉(zhuǎn)而創(chuàng)建包括接收的第二分組的有效負栽的、但具有 第一 TCP分組的TCP首部信息的第二 TCP分組,第二 TCP分組在從 第二設備接收對于笫一 TCP分組的接收的確認之前被發(fā)送到笫二計 算設備。這樣,有效負栽移位技術在TCP首部下傳送多個不可靠傳 輸協(xié)議有效負栽,直至接收到對于接收的確認為止。
在本發(fā)明的說明性實施例中,最大傳輸單元調(diào)節(jié)技術考慮到由于 有效負載的加密造成的網(wǎng)絡分組尺寸的影響,以減小客戶端的網(wǎng)絡 堆棧的最大傳輸單元(MTU)參數(shù)的報告尺寸.網(wǎng)絡分組的有效負栽
的加密增加要傳送到客戶端的或由客戶端傳送的網(wǎng)絡分組的尺寸,
并可能使得網(wǎng)絡分組被分段.例如,服務器可以經(jīng)由SSL網(wǎng)關把網(wǎng) 絡分組傳送到客戶端.雖然服務器發(fā)送應當滿足客戶端的網(wǎng)絡堆棧 可以處理的MTU尺寸的網(wǎng)絡分組,但由網(wǎng)關提供的加密在網(wǎng)絡分組 到達客戶端之前增加網(wǎng)絡分組的尺寸.這可能使得從服務器經(jīng)由網(wǎng) 關到客戶端的網(wǎng)絡分組被分段,因為由于加密造成的增加的分組尺 寸對于客戶端的MTU尺寸可能太大.本發(fā)明的技術考慮到加密的開 銷調(diào)節(jié)客戶端的報告的MTU尺寸,以便報告較小的尺寸。這個技術 減小網(wǎng)絡分段或否則避免非最優(yōu)分段.
在本發(fā)明的說明性實施例中,優(yōu)先化技術提供網(wǎng)絡通信的客戶端 側(cè)和應用知道的優(yōu)先化.即,本發(fā)明的遠程接入客戶端管理和控制 按客戶端上的網(wǎng)絡通信優(yōu)先化.優(yōu)先化是基于客戶端上的應用的屬 性的。遠程接入客戶端透明地截取與在客戶端上執(zhí)行的應用關聯(lián)的 網(wǎng)絡通信,檢測與應用關聯(lián)的網(wǎng)絡通信,以及根據(jù)應用的優(yōu)先權確 定網(wǎng)絡通信的優(yōu)先權。例如,在客戶端端的應用可以把諸如VoIP那 樣的實時數(shù)據(jù)通信傳送到對等客戶端,或經(jīng)由網(wǎng)關傳送.遠程接入 客戶端可以截取網(wǎng)絡分組,并且檢測例如包含實時數(shù)據(jù)或來自VoIP 應用的網(wǎng)絡分組。遠程接入客戶端可以表示對于這個網(wǎng)絡分組的優(yōu) 先權,這樣,網(wǎng)絡分組可以在非實時數(shù)據(jù)通信之前或在來自其它應 用的網(wǎng)絡通信之前被傳送.這樣,本發(fā)明的優(yōu)先化技術可以根據(jù)在 客戶端端運行的應用來改進或提高在客戶端端的性能、工作特性、 和用戶的體驗。
在本發(fā)明的說明性實施例中,網(wǎng)絡中斷保護技術提供客戶端到網(wǎng) 絡的持久的和可靠的連接,諸如對等通信會話或到網(wǎng)關的連接。例 如,移動客戶端,諸如具有基于軟件的IP電話的筆記本電腦,可以 連接到網(wǎng)絡,用于VoIP通信.當移動客戶端在同一個網(wǎng)絡中不同的 接入點之間漫游時或當客戶端在網(wǎng)絡之間交換(例如從有線網(wǎng)到無 線網(wǎng))時在網(wǎng)絡連接中可能發(fā)生臨時中斷。這使到客戶端的網(wǎng)絡服 務中斷并可能丟棄VoIP電話呼叫.另外,當移動客戶端在接入點之 間移動時,移動客戶端可以得到不同的IP網(wǎng)絡地址,諸如來自新的 動態(tài)主配置協(xié)議(DHCP)租用。這也會使得網(wǎng)絡連接和VoIP電話通信 中斷。本發(fā)明的技術檢測網(wǎng)絡的中斷,并保護一部分網(wǎng)絡堆棧免受
網(wǎng)絡中斷的影響.網(wǎng)絡堆棧的保護的部分被保持,而同時網(wǎng)絡堆棧 的其它部分被重建和重新連接到網(wǎng)絡. 一旦網(wǎng)絡可用,本發(fā)明就繼 續(xù)客戶端的網(wǎng)絡通信,在一些實施例中,在網(wǎng)絡中斷期間網(wǎng)絡通信 被排隊,并且一旦網(wǎng)絡可用,就被發(fā)送.在其它實施例中,諸如對 于實時數(shù)據(jù)通信,網(wǎng)絡分組在中斷期間被丟棄,避免網(wǎng)絡分組排隊
可能造成諸如VoIP電話呼叫那樣的實時通信的等待時間.
雖然本發(fā)明的說明性實施例總的是結(jié)合基于互聯(lián)網(wǎng)協(xié)議(IP)的 協(xié)議,諸如傳輸控制協(xié)議(TCP)或用戶數(shù)據(jù)報協(xié)議(UDP)來描述 的,但本發(fā)明的技術可用于具有其它聯(lián)網(wǎng)協(xié)議的任何其它類型的聯(lián) 網(wǎng)環(huán)境,諸如使用順序分組交換(SPX)協(xié)議的、基于任何網(wǎng)間分組 交換(IPX)協(xié)議的網(wǎng)絡。另外,雖然諸如UDP那樣的有損或不可靠 協(xié)議或諸如TCP那樣的無損或可靠的協(xié)議可用來說明本發(fā)明的實施 例,但本領域技術人員已知的、任何無損/可靠的和有損/不可靠的 協(xié)議可用來實施這里描述的本發(fā)明的操作。而且,雖然本發(fā)明的某 些說明性實施例可以在下面相對于諸如VoIP那樣的實時數(shù)據(jù)通信被 描述,但本發(fā)明的技術可被應用于非實時數(shù)據(jù)通信,正如本領域技 術人員也將i^識和看到的。
另外,有時,本發(fā)明的說明性實施例可以對于對等通信被描述。
一方面,對等模型包括其中任何計算機可以通過給其它計算機提供 接入到它的資源而用作為服務器和可以通過接入來自其它計算機的 共享的資源而用作為客戶端的那種網(wǎng)絡。另一方面,雖然對等模型 可能不包括客戶端和服務器的概念,但客戶端和服務器可以提供對 等通信以及客戶端到客戶端、服務器到服務器、或客戶端/服務器到 諸如網(wǎng)關的計算設備.再一方面,對等通信包括一個處理過程,由 此計算機可以互相之間直接交換信息,而不用第三方網(wǎng)絡或諸如網(wǎng) 關的設備的幫助。雖然對等通信通??杀幻枋鰹樵谟嬎銠C之間的直 接通信,但在計算設備之間可以有其它網(wǎng)絡單元,諸如,例如網(wǎng)絡 集線器,以便于實行傳輸和/或通信.
而且,雖然本發(fā)明的說明性實施例可以是對于對等、點對點、客 戶端對服務器通信等等描述的,但本領域技術人員將會認識和看 到,本發(fā)明可以以任何方式經(jīng)由任何網(wǎng)絡拓樸在計算設備之間被實 施,以及對于對等、客戶端服務器等等的任何參考無論如何不打算
限制本發(fā)明。
一方面,本發(fā)明涉及具有遠程接入客戶端的遠程接入結(jié)構(gòu),用于 經(jīng)由網(wǎng)關或?qū)Φ仁咕W(wǎng)絡與另 一個遠程接入客戶端或另 一個計算設備 通信、。本發(fā)明的遠程接入結(jié)構(gòu)提供用于把在網(wǎng)關后面在專用網(wǎng)之 間傳送的網(wǎng)絡業(yè)務安全地傳送到諸如公共網(wǎng)的外部網(wǎng)絡上的客戶端 的系統(tǒng)和方法.本發(fā)明的遠程接入結(jié)構(gòu)通過在網(wǎng)關上提供網(wǎng)絡地址
轉(zhuǎn)換(NAT)功能而使得客戶端能夠與專用網(wǎng)分開。使用網(wǎng)絡地址轉(zhuǎn)換 (NAT)的網(wǎng)關提供客戶端的IP地址的偽裝(masquerading),以便 保護專用網(wǎng)不被客戶端直接第2層接入,
現(xiàn)在參照圖1A,環(huán)境180描繪在本發(fā)明的說明性實施例中用于 部署遠程接入結(jié)構(gòu)的系統(tǒng).概略地,環(huán)境180包括多個計算設備 102a-102c(這里也稱為客戶端105a-105c),經(jīng)由一個或多個網(wǎng)絡連 接341a-341n連接到網(wǎng)絡104. —個或多個客戶端105a-105c可以經(jīng) 由網(wǎng)關350連接到服務器102a、服務器場102e、或各個計算設備 102d。
每個客戶端105a-105n包括遠程接入客戶端120a-120c,這將結(jié) 合圖1C更詳細地描述,和一個或多個應用338a-338n。每個客戶端 105a-105n在網(wǎng)絡104上通過使用任何類型和/或形式的適當隧道或 網(wǎng)關協(xié)議經(jīng)由隧道或網(wǎng)關連接341a-341n與網(wǎng)關340通信。在一些 實施例中,網(wǎng)關連接341a-341n可用于安全地通信,諸如經(jīng)由打包 和加密,或否則可以使用任何其它協(xié)議,諸如任何實時、無損、或 有損協(xié)議。在其它實施例中,網(wǎng)關340提供在一個或多個客戶端 105a-105n與任何的計算設備102d-102n之間的虛擬專用網(wǎng)絡連接.
客戶端105可以是任何類型和/或形式的計算設備102,它可以 運行接入諸如網(wǎng)絡104那樣的網(wǎng)絡的一個或多個應用38,應用338 可以是任何類型和/或形式的應用,諸如任何類型和/或形式的web 瀏覽器、基于web的客戶端、客戶端服務器應用、瘦客戶端計算的 客戶端、ActiveX控制、或Java小應用程序、或任何類型和/或形式 的能夠在客戶端105處執(zhí)行的或經(jīng)由網(wǎng)絡104傳送的可執(zhí)行指令. 應用338可以使用任何類型的協(xié)議,并且它可以是例如HTTP客戶 端、FTP客戶端、Oscar客戶端、或Telnet客戶端.在一些實施例 中,應用338使用遠程顯示或呈現(xiàn)級別協(xié)議,在一個實施例中,應
用338是由Fort La訓rdale, Florida的Citrix Systems, Inc.公 司開發(fā)的ICA客戶端。在其它的實施例中,應用338包括由Redmond, Washington的微軟公司開發(fā)的遠程桌面(RDP)客戶端.在其它實施例 中,應用338包括與諸如軟IP電話那樣的VoIP通信關聯(lián)的任何類 型的軟件.在另外的實施例中,應用338包括諸如用于流視頻和/或 音頻的應用那樣的、與實時數(shù)據(jù)通信關聯(lián)的任何應用。
客戶端105a-105n可以接入經(jīng)由可以在同一個網(wǎng)絡104上的或可 以在諸如專用網(wǎng)的分離網(wǎng)絡上的通信設備102提供的任何資源。在 一些實施例中,計算設備102a-102n可以是在斷開連接的網(wǎng)絡上, 并且是不能從客戶端105a-105n的網(wǎng)絡路由的。在一個實施例中, 任何客戶端105a-105n可以與具有遠程接入客戶端102n和應用338d 的各個計算設備102d通信。例如,應用338d可包括對應于在客戶 端105a-105n處的任何應用338a-338c的一部分客戶端/服務器或分 布式應用。在一些實施例中,任何遠程接入客戶端120a-UOn可以 經(jīng)由網(wǎng)關340與遠程接入客戶端120n通信。
在另一個實施例中,任何客戶端105a可以經(jīng)由網(wǎng)關340與運行 應用338e的服務器102e通信,例如,該服務器可以是提供諸如由 Redmond, Washington的微軟4^司制造的微軟交換機的電子郵件的應 用服務器、web或互聯(lián)網(wǎng)服務器、或桌面共享服務器、或合作服務器。 在一些實施例中,任何應用338e可包括任何類型的主機服務,諸如 由Fort Uuserdale, Florida的Citrix Systems, Inc.公司提供的 GoToMeeting.com, 由Santa Clara, California的WebEx, Inc.公 司提供的WebEx. com,或由Redmond, Washington的微軟公司提供的 LiveMeeting. com。
在另一個實施例中,任何客戶端105a可以經(jīng)由網(wǎng)關340與服務 器場102n或服務器網(wǎng)絡通信,服務器場102n或服務器網(wǎng)絡是作為 單個實體被管理的一個或多個服務器的邏輯組.服務器場102n可以 運行一個或多個應用338N,諸如提供瘦客戶端計算或遠程顯示呈現(xiàn) 應用的應用338f。在一個實施例中,服務器102e或服務器場102n 執(zhí)行Citrix Systems, Inc.的Citrix Access SuiteTM,諸如MetaFrame 或Citrix Presentation Server ,和/或由微軟公司制造的微軟視 窗終端服務的任何部分作為應用338c-338n.
仍舊參照困1A,網(wǎng)關340可包括任何類型和/或形式的網(wǎng)關,諸 如遠程接入服務器,它可用來把一個網(wǎng)絡上的一個或多個計算設備 連接到其它網(wǎng)絡.另一方面,網(wǎng)關340可用來提供虛擬專用網(wǎng)絡連 接,使得客戶端105a-105c接入到專用網(wǎng).再一方面,網(wǎng)關340可 以是在兩個不同的協(xié)議或者分開或斷開的網(wǎng)絡或系統(tǒng)之間進行轉(zhuǎn)換 的硬件或軟件裝置.網(wǎng)關340可包括專門化的硬件或聯(lián)網(wǎng)設備,或 可以是被配置成用作為網(wǎng)關的計算設備。這樣,網(wǎng)關340可包括軟 件、硬件、或軟件和硬件的任何組合。在一個實施例中,客戶端105 和網(wǎng)關340經(jīng)由任何類型和/或形式的網(wǎng)關或隧道協(xié)議341a-341n, 諸如SSL或TLS,或由Fort Lauserdale, Florida的Citrix Systems, Inc.公司制造的Citrix Gateway Protocol,
在一些實施例中,網(wǎng)關340可以解密從客戶端105a-105c接收的 加密的分組,并可以加密要傳送到客戶端105a-105n的分組。網(wǎng)關 340可用來保護諸如網(wǎng)絡104那樣的專用網(wǎng).在一些實施例中,網(wǎng)關 340把客戶端105a-105c與專用IP地址或?qū)S镁W(wǎng)的IP地址相關聯(lián)。 在這些實施例的一個實施例中,當網(wǎng)關340從客戶端105a-105c接 收分組時,網(wǎng)關340把分組的IP地址轉(zhuǎn)換成與用于專用網(wǎng)的、與客 戶端105a-105c關聯(lián)的IP地址,在一些實施例中,網(wǎng)關340可以把 接入控制策略應用于到和/或來自客戶端105a-105c的網(wǎng)絡業(yè)務。例 如,接入控制策略可以在把分組路由到最后的目的地之前被應用于 從客戶端接收的分組,
在網(wǎng)關340的一個實施例中, 一旦幀經(jīng)由SSL隧道進入網(wǎng)關 340,分組和它的有效負栽就經(jīng)由回叫被分派到在用戶模式下執(zhí)行的 操控器,其提供SSL解密的功能。在另一個實施例中,使用硬件加 速器。在其它實施例中,使用硬件減速器。在再一個實施例中,網(wǎng) 關340包括一個或多個刀形開關,用于提供遠程接入. 一旦分組被 解密,就把它注入到HTTP網(wǎng)絡堆棧,在其中首部被組裝和被傳送到 遠程接入刀形開關。在遠程接入刀形開關中,分組由包含在分組內(nèi) 的數(shù)據(jù)類型被分類。在一個實施例中,分組包含請求登錄和登記的 HTTP首部。在另一個實施例中,分組尋求TCP/UDP/RAW/OTHER連接 建立。在又一個實施例中,分組包含連接特定的數(shù)據(jù)。在再一個實 施例中,分組包含專門的特性請求,諸如與其它用戶合作、獲取用
戶目錄和存在、或請求電話功能,諸如會議和web播放,遠程接入 模塊把分組適當?shù)胤峙傻綄淖訐吙仄?例如,客戶端105可以 請求,在網(wǎng)關340后面的專用網(wǎng)上建立到特定的機器的連接.遠程 接入模塊可以咨詢接入控制模塊,如果返回肯定的確認,則遠程接 入模塊可以準許請求。在一些實施例中,遠程接入模塊120可以通 過使用利用NAT/PAT的幀轉(zhuǎn)發(fā)模塊在專用網(wǎng)上注入隨后的幀來準許 把進入的幀與對應于客戶端105a-105c的SSL隧道341a-341n進行 相關的請求.
如圖1A所示的網(wǎng)絡104可以是任何類型的網(wǎng)絡.網(wǎng)絡104可以 是諸如公司內(nèi)部網(wǎng)那樣的局域網(wǎng)(LAN)、城域網(wǎng)(MAN)、或諸如互聯(lián) 網(wǎng)或萬聯(lián)網(wǎng)那樣的廣域網(wǎng)(WAN)。網(wǎng)絡104的拓樸可以是總線、星 形或環(huán)形網(wǎng)絡拓樸。網(wǎng)絡104和網(wǎng)絡拓樸可以是能夠支持這里描述 的本發(fā)明的操作的任何這樣的網(wǎng)絡或網(wǎng)絡拓樸.客戶端108和網(wǎng)關 340可以通過包括標準電話線、LAN、或WAN鏈路(例如, Tl,T3,56kb,X. 25,SNA,DECNET)、 寬帶連接 (ISDN, 幀中 繼,ATM, Gigabit以太網(wǎng),通過SONET的以太網(wǎng))、和無線連接或它們 的組合的各種各樣的連接,連接到一個或多個網(wǎng)絡104。連接可以通 過使用各種各樣的通信協(xié)議(例如,TCP/IP, SPX, NetBIOS,以太 網(wǎng),ARCNET,光纖分布式數(shù)據(jù)接口 (FDDI),RS232, IEEE 802. 11, IEEE 802. lla, IEEE 802.11b, IEBE 802. llg,和直接異步連接)被建立。
在本發(fā)明的一個實施例中,圖1A所示的網(wǎng)關340用來實行在計 算設備102a-102n之間的對等連接。例如,客戶端105a可以建立與 網(wǎng)關340的隧道會話,以便接入各個計算設備102d。網(wǎng)關340與客 戶端105a的遠程接入客戶端120a和計算設備102d的遠程接入客戶 端120a協(xié)商,使得客戶端105a能夠直接連接到計算設備102d,而 不用經(jīng)過網(wǎng)關340。 一旦在客戶端105a與計算設備102d之間的網(wǎng)絡 連接被建立,客戶端105a就可以以對等方式與計算設備10M通信。 本發(fā)明的網(wǎng)關340可以實行在環(huán)境180所示的、任何計算設備 102a-102n之間的直接對等通信。在一個實施例中,網(wǎng)關340可以實 行在任何的客戶端105a-105n之間,例如在客戶端105a與客戶端 105b之間或在客戶端105b與客戶端105c之間的對等通信。在另一 個實施例中,網(wǎng)關340實行在計算設備102a-102n之間,例如在計
算設備102d與服務器102e或服務器場102n之間的對等通信。在其 它實施例中,網(wǎng)關340實行在客戶端105a-105n之一與計算設備 102a-102n之一之間的對等通信.經(jīng)由網(wǎng)關340實行對等通信的技術 將在下面結(jié)合圖2A和2B更詳細地討論。
現(xiàn)在參照圖1B,本發(fā)明的遠程接入客戶端120可以在不用網(wǎng)關 304的對等連接的說明性實施例中被使用。例如,網(wǎng)關340可以實行 在圖l所示的、任何計算設備102a-102n之間的對等連接,此后, 計算設備102a-102n以對等方式互相直接通信。在其它實施例中, 任何計算設備102a可以不用實行連接的網(wǎng)關340經(jīng)由網(wǎng)絡104直接 與另一個計算設備102b或102c通信。
在圖1B的概略圖上,遠程接入客戶端120a可被部署在運行一個 或多個應用338a的客戶端102a上。計算設備102a可以通過網(wǎng)絡104 連接到計算設備102b和/或計算設備102c。計算設備102b可以是也 包括遠程接入客戶端120b的各個或客戶端計算設備。在一些實施例 中,遠程接入客戶端120a和120b可以經(jīng)由網(wǎng)絡104互相通信,和 可以對于應用338a互相結(jié)合地工作以便與應用338b,諸如用于基于 web的或客戶端/服務器應用進行通信。在其它實施例中,遠程接入 客戶端120a可以與計算設備120c通信,該計算設備可以是不執(zhí)行 遠程接入客戶端120的服務器。
圖1C描繪了顯示具有用于把網(wǎng)絡分組從客戶端105路由到網(wǎng)絡 104的遠程接入客戶端120的系統(tǒng)的框圖,在概略圖上,系統(tǒng)包括具 有操作系統(tǒng)的計算設備102 (這里稱為客戶端105),操作系統(tǒng)包括 用戶模式332,也被稱為應用或用戶空間,和內(nèi)核模式334,也被稱 為內(nèi)核或系統(tǒng)級空間??蛻舳?05運行一個代理326,在一個實施例 中,它可以在用戶模式332下運行。客戶端105還運行濾波器332, 在一個實施例中,它可以在內(nèi)核模式或內(nèi)核空間334下運行。在一 個實施例中,濾波器322和代理326形成遠程接入客戶端120,用于 經(jīng)由網(wǎng)絡路由分組,或用于按照這里描述的本發(fā)明的操作提供遠程 接入連接性.遠程接入客戶端120或它的任何部分,諸如代理326 或濾波器322,可以在用戶模式332或內(nèi)核模式334下運行。
客戶端105還可以具有網(wǎng)絡堆棧310,它可包括一個或多個網(wǎng)絡 層,諸如開放系統(tǒng)互聯(lián)(OSI)通信模型的任何網(wǎng)絡層,正如本領域技術人員認識和理解的.網(wǎng)絡堆棧310可包括一個或多個協(xié)議,諸 如在以太網(wǎng)上的TCP/IP協(xié)議或無線協(xié)議,諸如IEEB 802. 11,正如 本領域技術人員認識和理解的.而且,網(wǎng)絡堆棧310可包括支持該 一個或多個層的一個或多個網(wǎng)絡驅(qū)動器,諸如TCP驅(qū)動器或網(wǎng)絡層 驅(qū)動器。網(wǎng)絡驅(qū)動器可被包括作為計算設備102的操作系統(tǒng)的一部 分,或作為任何網(wǎng)絡接口卡的一部分或計算設備102的其它網(wǎng)絡接 入部件。另外,網(wǎng)絡堆棧310的任何網(wǎng)絡驅(qū)動器可被定制、修改或 調(diào)整,以便提供支持這里描述的本發(fā)明的任何技術的網(wǎng)絡堆棧310 的定制或修改部分。另外,網(wǎng)絡堆棧310的某些部分可以在內(nèi)核模 式下工作,而其它的部分運行在用戶模式332,諸如網(wǎng)絡堆棧310的
應用層。
濾波器322可包括分組捕獲機構(gòu)365,并且濾波器322和/或分 組捕獲機構(gòu)365可包括網(wǎng)絡驅(qū)動器,諸如工作在客戶端105的網(wǎng)絡 堆棧310的任何層或部分的網(wǎng)絡驅(qū)動器.濾波器322和/或分組捕獲 機構(gòu)365可包括遵從網(wǎng)絡驅(qū)動器接口技術規(guī)范(NDIS)的驅(qū)動器, 或NDIS驅(qū)動器。在另一個實施例中,濾波器和/或分組捕獲機構(gòu)365 可包括迷你濾波器或迷你端口驅(qū)動器,分組捕獲機構(gòu)365在一些實 施例中還可以工作在內(nèi)核模式334。雖然分組捕獲機構(gòu)365被顯示為 濾波器322的一部分,但分組捕獲機構(gòu)365可以與濾波器322分開 的.另外,濾波器322和分組捕獲機構(gòu)365可以工作在客戶端105 的網(wǎng)絡堆棧310的不同的層或部分。
濾波器322可以使用濾波器表,用于濾波分組。濾波表用來確定 對于諸如由分組捕獲機構(gòu)365截取的分組那樣的分組采取什么動 作。濾波器322可以檢查分組的內(nèi)容,諸如路由信息,根據(jù)濾波表 確定所采取的動作。在一些實施例中,濾波器3"可以根據(jù)網(wǎng)絡分 組的內(nèi)容來丟棄或接收它們。在一些實施例中,濾波器322可以根 據(jù)分組內(nèi)容和/或濾波器表把網(wǎng)絡分組路由到代理326。濾波器表也 可以用來保證不想要的分組被丟棄。濾波器322可用來拒絕接入到
特定的協(xié)議或通過丟棄分組阻止從遠程計算機授權到特定的目的地 地址的未授權接入。
在一些實施例中,濾波器表包括有關專用網(wǎng)的信息。在其它實施 例中,在客戶端計算設備102處的濾波器322接收濾波器表。在這些實施例的一個實施例中,濾波器322從應用338或在計算設備102 處的代理326接收濾波器表。在這些實施例的另一個實施例中,濾 波器322從代理326接收配置設置,并把配置設置存儲在濾波器表.
分組捕獲機構(gòu)365可以截取客戶端105的任何網(wǎng)絡業(yè)務,諸如與 應用338關聯(lián)的網(wǎng)絡分組.在一些實施例中,分組捕獲機構(gòu)365透 明地截取到應用338、代理326、網(wǎng)關340、或?qū)τ诳蛻舳?05的網(wǎng) 絡堆棧310的任何部分的網(wǎng)絡分組,所述任何部分諸如是工作在分 組捕獲機構(gòu)365所工作的層的以上的或以下的層的任何其它驅(qū)動器 或?qū)?。這樣,本發(fā)明可用于支持這里描述的任何技術和用于任何應 用與由應用使用的任何協(xié)議.在一個實施例中,分組捕獲機構(gòu)365 截取出去的分組業(yè)務,諸如經(jīng)由網(wǎng)絡104和/或網(wǎng)關340傳送的任何 網(wǎng)絡業(yè)務。分組捕獲機構(gòu)365可以把分組轉(zhuǎn)發(fā)到代理325或代理326 的幀監(jiān)視機構(gòu)360。在一些實施例中,濾波器322經(jīng)由異步1/0控制 消息與代理326通信.在這些實施例的一個實施例中,分組捕獲機 構(gòu)365可以經(jīng)由異步I/O控制消息轉(zhuǎn)發(fā)尋址到在網(wǎng)關340后面的專 用網(wǎng)的分組。在其它實施例中,濾波器322經(jīng)由UDP分組與在用戶 空間334中運行的代理326通信.在一個實施例中,濾波器經(jīng) 由異步1/0控制消息從代理326接收配置設置,配置設置可包括有 關哪些網(wǎng)絡、協(xié)議、和分組的類型進行濾波的信息。在一個實施例 中,濾波器322把配置設置存儲在濾波器表.在另一個實施例中, 濾波器322接收包括配置設置的濾波器表。
在一個實施例中,濾波器322截取客戶端105的所有的外出的分 組,以便檢查。例如,在一些實施例中,濾波器截取由在用戶模式 下執(zhí)行的應用338生成的分組,以便由客戶端105發(fā)送,如果分組 滿足在濾波器表中列出的條件,則濾波器322可以發(fā)送分組到代理 326,而不是到分組的原先的目的地,濾波器322可以使用異步I/O 控制消息,來把分組轉(zhuǎn)發(fā)到代理326,濾波器322可以按照或響應于 路由表發(fā)送分組到代理326。
在一些實施例中,代理326和濾波器322經(jīng)由IOCTL應用編程接 口 (API),諸如任何的IOCTL庫和由微軟視窗操作系統(tǒng)族提供的功 能調(diào)用,進行通信。在其它實施例中,在代理326與濾波器322之 間的基于IOCTL的接口可以由運行在客戶端105處的操作系統(tǒng)的任
何部分提供。雖然是在1/0控制消息和IOCTL接口方面討論的,但 代理326與濾波器322可以經(jīng)由任何適當?shù)臋C構(gòu)和/或裝置進行通 信。
客戶端105的內(nèi)核334可包括NDIS接口.在一些實施例中,NDIS 接口包括多個中間濾波器.在一個實施例中,分組通過NDIS接口傳 送,并可以由多個中間濾波器進行檢查.雖然濾波器322可作為NDIS 驅(qū)動器被提供,但濾波器322也可以是在內(nèi)核334中執(zhí)行的進程或 其它的組或類型的可執(zhí)行的指令,
本發(fā)明的代理326可以在客戶端105處應用空間332或用戶模式 中執(zhí)行。在其它實施例中,代理326可以在內(nèi)核模式334下工作。 在一些實施例中,代理326提供用于從濾波器322接收分組的功能。 在其它實施例中,代理326提供用于把策略應用到接收的分組的功 能.在再一個實施例中,代理326提供用于管理到網(wǎng)關340的SSL 隧道的功能.在又一個實施例中,代理326提供用于加密和發(fā)送分 組到網(wǎng)關340的功能.代理326可包括幀監(jiān)視器機構(gòu)360。幀監(jiān)視器 360可包括策略和用于把策略應用到接收的分組的邏輯塊。代理326 可以響應于由幀計數(shù)器360作出的基于策略的決定,把分組發(fā)送到 網(wǎng)關340。
在一些實施例中,幀監(jiān)視器360可以應用策略來在分組發(fā)送時確 定客戶端105的條件或終點。在其它實施例中,幀監(jiān)視器360可以 識別生成分組的應用338。在執(zhí)行實施例的一些實施例中,幀監(jiān)視器 360可以響應于該識別的應用338作出發(fā)送分組到網(wǎng)關340的、基于 策略的決定。在另一個實施例中,幀監(jiān)視器360可以對分組執(zhí)行檢 驗和,以便驗證該識別的應用實際上生成分組。
在其它實施例中,不是在濾波器322,或除了濾波器322以外, 分組捕獲機構(gòu)365可被包括在代理326中.這樣,代理326可以截 取網(wǎng)絡業(yè)務.分組捕獲機構(gòu)365可使用任何掛鉤應用編程接口 (API) 來截取、桂鉤、或得到客戶端105的進入的和/或出去的分組,諸如 與應用338關聯(lián)的網(wǎng)絡業(yè)務。
在一個實施例中,TCP連接由在客戶端105處執(zhí)行的應用338發(fā) 起,以便把IP分組傳輸?shù)侥繕擞嬎阍O備,諸如圖IB的計算設備102c 或圖1A的網(wǎng)關340.遠程接入客戶端120可以截取或捕獲由應用338
生成的IP分組.遠程接入客戶端120可以發(fā)送TCP確認分組到應用 338,并終結(jié)由應用338發(fā)起的TCP連接.然后,遠程接入客戶端120 創(chuàng)建到第二計算設備102c或網(wǎng)關340的第二TCP連接,并經(jīng)由第二 TCP連接發(fā)送捕獲的IP分組.在一些實施例中,遠程接入客戶端120 可以把捕獲的IP分組存儲在緩存器中。在這些實施例中,遠程接入 客戶端120可以經(jīng)由第二TCP連接把緩存的IP分組發(fā)送到第二計算 設備102c。把捕獲的IP分組存儲在緩存器中,使能在網(wǎng)絡連接中出
現(xiàn)中斷的情形下保留分組.
在一個實施例中,在接收到捕獲的IP分組后,網(wǎng)關340可以創(chuàng) 建在網(wǎng)關340與目標計算設備102d之間的第三TCP連接,諸如圖1A 所示的。網(wǎng)關340可保持端口映射的網(wǎng)絡地址轉(zhuǎn)換(NAT)表,使得 網(wǎng)關340能夠把來自目標計算設備102d的響應分組發(fā)送到由在客戶 端105處原先生成IP分組的應用338監(jiān)視的端口 .因為客戶端105 只與網(wǎng)關340的公共網(wǎng)地址通信,因此客戶端105不知道目標計算 設備102d的網(wǎng)絡地址,增加了目標計算設備102d所處的網(wǎng)絡的安 全性.類似地,由于網(wǎng)關340發(fā)起到目標計算設備102d的TCP連接, 因此目標計算設備102d沒有接收客戶端105的地址信息,保護了客 戶端105和該客戶端所處的網(wǎng)絡,另外,因為網(wǎng)關340接收IP地址, 網(wǎng)關340可以響應于策略或安全性檢驗作出是否發(fā)送IP分組到目標 計算設備102d的決定,進一步增加了對于目標計算設備102d所處 的網(wǎng)絡的保護。
在一個實施例中,本發(fā)明提供用于保護從網(wǎng)關340后面的專用 的、安全網(wǎng)絡發(fā)送到外部網(wǎng)絡104的客戶端的分組的方法。本發(fā)明 通過在網(wǎng)關340上提供網(wǎng)絡地址轉(zhuǎn)換(NAT)功能而使能把客戶端105 與專用網(wǎng)分開。使用NAT的VPN網(wǎng)關提供客戶端105的IP地址的偽 裝來保護專用網(wǎng)不被客戶端105直接第2層接入。
一方面,遠程接入客戶端120的任何部分,諸如代理326、幀監(jiān) 視器360、濾波器322、和分組捕獲機構(gòu)365或它們的任何部分可包 括軟件、硬件,諸如ASIC或FPGA,或軟件和/或硬件的任何組合。 在一些實施例中,遠程接入客戶端120的任何部分,可以經(jīng)由客戶 端105處的一個或多個刀形開關被提供。
雖然遠程接入客戶端120被顯示為具有多個部件,諸如代理326
和濾波器322,但本領域技術人員將會認識和理解到,這里描述的遠 程接入客戶端120的操作和功能可以以單個機構(gòu)或單個部件被實 施。例如,在一些實施例中,遠程接入客戶端120的操作和功能可 被包括在應用338內(nèi).在一個實施例中,例如,遠程接入客戶端120 的操作和功能可以僅僅被提供為代理326,以及在另一個實施例中, 僅僅為網(wǎng)絡驅(qū)動器,諸如濾波器322,
在一些實施例中,遠程接入客戶端120,或它的任何部分,諸如 代理326、幀監(jiān)視器360、濾波器322、和分組捕獲機構(gòu)365,可包 括應用、模塊、服務、計算機程序、軟件部件、web服務、web部件、 庫、功能、進程、任務、線程、或任何其它類型和/或形式的可執(zhí)行 指令,被設計成和能夠執(zhí)行這里描述的本發(fā)明的功能,以及可以在 用戶模式332和/或內(nèi)核模式334的任何部分或組合下工作。
如圖1A-1C所示,本發(fā)明的遠程接入客戶端120可以各種不同的 方式被部署和使用,以便諸如經(jīng)由網(wǎng)關340或直接地在各個計算設 備之間進行通信并提供通過網(wǎng)絡的遠程接入給其它計算設備.在這 些各種不同的環(huán)境下,遠程接入客戶端120可用來實施如在下面更
詳細地描述的、本發(fā)明的一個或多個最優(yōu)化技術.例如,遠程接入 客戶端120可用來使得在圖1A-1C的任何說明性環(huán)境下的任何實時 數(shù)據(jù)通信最優(yōu)化,諸如VoIP、桌面共享、或web會議。
在圖1A-1C的任何說明性環(huán)境下,諸如用于客戶端105、服務器、 或網(wǎng)關340的任一項的計算設備102a-102n,可被提供為任何類型和 /或形式的計算設備,諸如由Palo Alto, California的HP公司或 Round Rock,TX的Dell ^>司制造的那種個人計算機或計算機服務 器。圖1D和1E描述對于實施本發(fā)明的實施例有用的計算設備l-2 的框圖。如圖1D和1E所示,每個計算設備102包括中央處理單元 102,和主存儲器單元104。如圖1D所示,典型的計算設備102可包 括圖像顯示設備124、鍵盤126、和/或指向裝置127,諸如鼠標.每 個計算設備102還可包括附加的任選單元,諸如一個或多個輸入/輸 出設備130a-130b(總的用標號130表示),和與中央處理單元102通 信的緩沖存儲器140。
中央處理單元102是響應于和處理從主存儲器單元104捕獲的指 令的任何邏輯電路.在許多實施例中,中央處理單元由微處理器提
供,諸如8088、 80286、 80386、 80486、 Pentium(奔騰)、Pentium Pro、 Pentium II、 Celeron、或Xeon處理器,所有的這些處理器由 Mountain View, California的Intel公司制造;68000、 68010、 68020、 68030、 68040、 PowerPC601、 PowerPC604、 PowerPC604e、 MPC603e、 MPC603ei、 MPC603ev、 MPC603r、 MPC603p、 MPC740、 MPC745、 MPC750、 MPC755、 MPC7400、 MPC7410、 MPC7441、 MPC7445、 MPC7447、 MPC7450、 MPC7451、 MPC7455、或MPC7457處理器,所有的這些處理 器由Schaumburg, Illinois的Motorola公司制造;Crusoe TM5800、 Crusoe TM5800、 Crusoe TM5800、 Crusoe TM580(J、 Ef f iceon TM8600、 Efficeon TM8600 、 Efficeon TM8600 處理器,由 Santa Clara, California的Transmeta 乂>司制造;RS/6000處理器、RS64、 RS64 II、 PS2C、 POWER3、 RS64 III、 P0WER3-I1、 RS64 IV、 P0WER4、 P0WER4+、 POWER5、或POWER6處理器3,所有的這些處理器由White Plains, New York的IBM公司制造;AMD Opeteron、 AMD Athlon 64 FX、 AMD Athlon、或AMD Duron處理器,由Sunnyvale, California 的Advanced Micro Devices公司制造,計算設備102可以是基于任 何上述的處理器,或能夠如這里描述的那樣工作的任何其它處理 器。
主存儲器單元104可以是能夠存儲數(shù)據(jù)和允許由微處理器100 直接存取的任何存儲單元的一個或多個存儲器芯片,諸如靜態(tài)隨機 存取存儲器(SRAM)、突發(fā)SRAM或同步突發(fā)SRAM(BSRAM)、動態(tài)隨機 存取存儲器(DRAM)、快速尋呼模式DRAM(FPM DRAM)、增強的 DRAM(EDRAM)、擴展數(shù)據(jù)輸出RAM(ED0RAM)、擴展數(shù)據(jù)輸出DRAM (EDO DRAM)、突發(fā)擴展數(shù)據(jù)輸出DRAM(BEDO RAM)、增強的DRAM(EDRAM)、 同步DRAM (SDRAM) 、 JEDEC SRAM、 PCI 00 SDRAM、雙數(shù)據(jù)速率SDRAM (DDR SDRAM)、增強的SDRAM (ESDRAM)、同步鏈路DRAM(SLDRAM)、直接Rambus DRAM(DRDRAM)、或鐵電RAM(FRAM).主存儲器104可以是基于任何上 述的存儲器芯片,或能夠如這里描述的那樣工作的任何其它可得到 的存儲器芯片。在圖1E所示的實施例中,處理器IOO經(jīng)由系統(tǒng)總線 150 (下面更詳細地描述)與主存儲器104通信。圖IE顯示其中處 理器100經(jīng)由存儲器端口 103直接與主存儲器104通信的計算設備 102的實施例。例如,在圖1E上,主存儲器104可以是DRDRAM,
圖1D和1E顯示其中主處理器IOO經(jīng)由輔助總線,有時稱為后段 總線,直接與緩沖存儲器140通信的實施例.在其它實施例中,主 處理器100通過使用系統(tǒng)總線150與緩沖存儲器140通信。緩沖存 儲器140典型地比主存儲器104具有更快速的響應時間,它典型地 由SRAM、 BSRAM或EDRAM提供,
在圖1D所示的實施例中,處理器100經(jīng)由本地系統(tǒng)總線150與 各種1/0設備130通信.各種總線可用來把中央處理單元102連接 到任何的1/0設備130,包括VESAVL總線、ISA總線、EISA總線、 微信道結(jié)構(gòu)(MCA)總線、PCI總線、PCI-X總線、PCI-Express總線、 或Nu總線。對于10設備是視頻顯示器124的實施例,處理器100 可以使用高級圖形端口 ( AGP)與顯示器124通信.圖1E顯示其中 主處理器100經(jīng)由HyperTransport, Rapid 1/0,或InfiniBand直接 與1/0設備130通信的計算機102的實施例。圖1E也顯示其中本地 總線與直接通信混合處理器100通過使用本地互聯(lián)總線與1/0設 備130a通信而同時直接與1/0設備130b通信的實施例。
計算設備102可以支持任何適當?shù)陌惭b設備116,諸如軟盤驅(qū) 動,用于接納諸如3. 5英寸、5.25英寸盤的軟盤或ZIP盤,CD-ROM 驅(qū)動、CD-R/RW驅(qū)動、DVD-ROM驅(qū)動、或各種格式的磁帶驅(qū)動、USB 裝置、硬盤驅(qū)動或適合于安裝軟件和程序的任何其它裝置,諸如與 本發(fā)明關聯(lián)的遠程接入客戶端軟件120。
計算設備102還可包括存儲裝置128,諸如一個或多個硬盤驅(qū)動 或獨立盤的冗余陣列,用于存儲操作系統(tǒng)和其它相關的軟件,和用 于存儲應用軟件程序,諸如與本發(fā)明的遠程接入客戶端120關聯(lián)的 任何程序,任選地,任何安裝設備118還可被用作為存儲裝置128。 另外,操作系統(tǒng)和代理軟件120可以從可引導的媒體,例如可引導 的CD,諸如KNOPPIX⑧,作為GNU/Linux從knoppix.net可得到的、 用于GNU/Linux的可引導的CD被運行。
而且,計算設備102可包括網(wǎng)絡接口 118,用來通過各種各樣的 連接,包括但不限于,標準電話線、LAN、或WAN鏈路(例如,802. ll,Tl, T3,56kb,X. 25)、寬帶連接(例如,ISDN,幀中繼,ATM)、無線連接或 以上的任何部分或全部的某些組合,接口到局域網(wǎng)(LAN)、廣域網(wǎng) (WAN)或互聯(lián)網(wǎng)。網(wǎng)絡接口 118可包括內(nèi)建的網(wǎng)絡適配器、網(wǎng)絡接口卡、PCMCIA網(wǎng)卡、卡總線網(wǎng)絡適配器、無線網(wǎng)適配器、USB網(wǎng)絡適 配器、調(diào)制解調(diào)器或適用于把計算設備102接口到能夠通信和執(zhí)行 這里描述的搮作的任何類型的網(wǎng)絡的任何其它裝置,
在計算設備102中可以存在各種各樣的1/0設備130a-130n。輸 入設備包括鍵盤、鼠標、跟蹤板、跟蹤球、話筒和畫圖板。輸出設 備包括視頻顯示器、揚聲器、噴墨打印機、激光打印機、和染料升 華打印機,1/0設備可以由如圖1D所示的1/0控制器123控制。I/O 控制器可以控制一個或多個I/O設備,諸如鍵盤126和打印機設備 127,例如鼠標或光筆.而且,1/0設備還可以提供存儲裝置128和/ 或用于計算設備102的安裝媒體118。在另外其它的實施例中,計算 設備102可提供USB連接,以接納手持的USB存儲裝置,諸如由Los Ala邁itos, California的Twintech Industry公司制造的設備的USB 閃速驅(qū)動線.
在再一個實施例中,10設備130可以是在系統(tǒng)總線150與諸如 USB總線、Apple臺式總線、RS-232串行連接、SCSI總線、火線總 線、火線800總線、以太網(wǎng)總線、AppleTalk總線、千兆以太網(wǎng)總線、 異步傳送模式總線、HIPPI總線、超級HIPPI總線、SerialPlus總 線、SCI/LAMP總線、光纖信道總線、或串行附著小計算機系統(tǒng)接口 總線那樣的外部通信總線之間的橋路170。
如圖1D和1E所示的、那種計算設備102典型地在操作系統(tǒng)的控 制下工作,該操作系統(tǒng)控制任務的調(diào)度和接入到系統(tǒng)資源。計算設 備102可以運行任何操作系統(tǒng),諸如Microsoft⑧視窗操作系統(tǒng)的任 何版本、Unix和Linux操作系統(tǒng)的不同版、用于Macintosh計算機 的MacOS⑧的任何版本、任何嵌入的操作系統(tǒng)、任何實時操作系統(tǒng)、 任何開放源操作系統(tǒng)、任何專用操作系統(tǒng)、用于移動計算設備的操 作系統(tǒng)、或能夠在計算設備上運行和執(zhí)行這里描述的操作的任何其 它操作系統(tǒng)。典型的操作系統(tǒng)包括WINDOWS 3.x、 WINDOWS 95、 WINDOWS 98、 WINDOWS 2000、 WINDOWS NT 3.51、 WINDOWS NT 4.0、 WINDOWS CE、和WINDOWS XP,所有的這些操作系統(tǒng)由Redmond, Washington的微軟公司制造;Mac0S,由Cupertino, California的 Apple計算機公司制造;0S2,由Armonk, New York的IBM公司制造; 和Linux, —種由Salt Lake CUy, UtahCaldera公司免費提供的操
作系統(tǒng),Java或Unix等等,
在其它實施例中,計算設備102可以具有不同的處理器、操作系 統(tǒng)、和與設備一致的輸入設備.例如,在一個實施例中,計算機102 是由Palm公司制造的Zire 71個人數(shù)字助理.在本實施例中,Zire 71在PalmOS操作系統(tǒng)的控制下工作,它包括針陣輸入設備以及五方 式導航器設備。
而且,計算設備102可以是任何工作站、臺式計算機、筆記本電 腦、服務器、手持計算機、移動電話、任何其它計算機、或能夠通 信和具有足夠的處理器功率和存儲器容重來執(zhí)行這里描述的操作的 計算或電信設備的其它形式.
一方面,本發(fā)明涉及提供用于使得在諸如在圖1A-1C的任何說明 性環(huán)境下描繪的計算設備之間的通信最優(yōu)化的各種技術。本發(fā)明提 供以下的、可以單獨地或任何組合地實施的技術l)對等路由最優(yōu) 化,2)經(jīng)由無損協(xié)議傳送對于經(jīng)由有損協(xié)議的傳輸被構(gòu)建的分組,
3) 通過考慮到加密調(diào)節(jié)最大傳輸單元(MTU)參數(shù)而減小網(wǎng)絡分段,
4) 客戶端側(cè)應用知道的網(wǎng)絡通信優(yōu)先化,以及5)保護設備免受網(wǎng)絡 中斷,對等路由最優(yōu)化技術將結(jié)合圖2A和2B進行討論,經(jīng)由無損 協(xié)議傳送對于經(jīng)由有損協(xié)議的傳輸被構(gòu)建的分組的技術將結(jié)合圖3A 和3B進行討論,MTU調(diào)節(jié)技術將結(jié)合圖4進行討論,客戶端側(cè)應用 知道的優(yōu)先化技術將結(jié)合圖5A和5B進行討論,以及網(wǎng)絡中斷保護 技術將結(jié)合圖6A和6B進行討論.
一方面,本發(fā)明涉及提供在第一計算設備經(jīng)由網(wǎng)關,諸如圖1A 所示的網(wǎng)關,接入第二計算設備之間的對等路由最優(yōu)化技術。對等 路由技術提供在建立或試圖建立經(jīng)由網(wǎng)關的通信會話的計算設備之 間的更優(yōu)化和直接的通信.本發(fā)明的實施例的說明性方法260將對 于圖2A的說明性環(huán)境進行討論。概述地,環(huán)境200包括網(wǎng)關340, 提供遠程接入連接性給專用網(wǎng),諸如具有IP地址范圍10. 10. 10. XXX 的網(wǎng)絡。與專用網(wǎng)關聯(lián)的網(wǎng)關340可以分配10. 10.10. 2的IP地址, 用于在專用網(wǎng)上通信。這個專用網(wǎng)可以包括服務器102c。另外,專 用網(wǎng)包括電信設備210c,諸如任何類型和/或形式的VoIP電話.電 信設備210c被分配有在專用網(wǎng)上的IP地址10.10.10.100。
在一個實施例中,服務器102包括信令服務器,它可以提供任何類型和/或形式的信令服務,用于建立在計算設備,諸如笫一計算設
備102a與笫二計算設備102b之間的通信會話.在一個實施例中, 服務器102c支持會話發(fā)起協(xié)議,SIP,其用于發(fā)起牽涉到諸如視頻、 話音、聊天、游戲、和虛擬現(xiàn)實那樣的多媒體單元的互動的用戶會 話的互聯(lián)網(wǎng)工程任務組(IETF)標準協(xié)議。在一個實施例中,SIP工 作在開放系統(tǒng)互聯(lián)(0SI)通信模型的應用層。在一些實施例中,第 一計算設備102a經(jīng)由信令,諸如經(jīng)由SIP協(xié)議,發(fā)起經(jīng)由信令路徑 到信令服務器102c的會話。在一個實施例中,信令服務器102c結(jié) 合網(wǎng)關340用于建立在第一計算設備102a與第二計算設備102b之 間的媒體路徑225,諸如用于在電話210a與210b之間的VoIP電信 會話。
環(huán)境200的第一計算設備102a可以是網(wǎng)絡一專用網(wǎng)或公共網(wǎng)--的一部分,通過連接341a經(jīng)由網(wǎng)絡104接入網(wǎng)關340,并穿過防火 墻205a。防火墻205a提供接入和穿過公共網(wǎng),并分配有 24. 24. 24. IOO的IP地址,第一計算設備102a可以是與電信設備210a 通信,或接口或耦合到該電信設備,諸如VoIP通信設備,或任何其 它實時數(shù)據(jù)通信設備.第二計算設備102b可以是專用網(wǎng)的一部分, 并分配有192. 168. 20. 20的IP地址。另外,第二計算設備102b可 包括基于軟件的電信設備210b,諸如基于軟件的VoIP電信設備或程 序。第二計算設備102b可以通過連接341b經(jīng)由網(wǎng)絡104并穿過防 火墻205b接入網(wǎng)關340,防火墻205b具有216. 216. 10. 10的公共網(wǎng) IP地址。防火墻205a和205b可以是如本領域技術人員已知的任何 類型和形式的防火墻,諸如NAT防火墻。
圖2A的第一計算設備102a和第二計算設備102b包括和使用本 發(fā)明的遠程接入客戶端120,提供在環(huán)境200中ad-hoc對等虛擬網(wǎng) 連接.除了保持與網(wǎng)關340的、諸如SSL VPN連接那樣的隧道和虛 擬專用連接以外,本發(fā)明的遠程接入客戶端120還具有邏輯、功能、 和操作,以建立直接到它試困到達的對等體的ad-hoc連接,比如SSL VPN連接。對于圖2A,圖2B的說明性方法260將用來在本發(fā)明的一 個說明性實施例中討論對于媒體路徑225如何建立對等安全通信會 話。如通過方法200顯示的本發(fā)明的對等路由技術提供較好的話音 質(zhì)量和減小與VoIP通信以及其它實時數(shù)據(jù)通信關聯(lián)的等待時間。
在說明性方法260的概略中,在步驟262,計算設備102a和102b 建立與網(wǎng)關340的隧道會話。在步稞264,第一計算設備102a經(jīng)由 到信令服務器102b的信令路徑220使用信令協(xié)議,來發(fā)起經(jīng)由網(wǎng)關 340到第二計算設備102b的會話.會話可以由電信設備102a與第一 計算設備102a通信而被發(fā)起,在步驟266,信令服務器102c建立電 信會話,和在步猓268,為第一計算設備102a提供笫二計算設備102c 的第 一 網(wǎng)絡標識符.第 一 網(wǎng)絡標識符包括第二計算設備102b的網(wǎng)絡 地址,比如主機名或IP地址,該網(wǎng)絡地址諸如基于用網(wǎng)關340通過 隧道341b所建立的其IP地址.在步驟270,第一計算設備102a通 過使用第一網(wǎng)絡標識符與第二計算設備102b通信,以建立連接或通 信會話。
在另外的概況中,在步驟272,網(wǎng)關340通過第一計算設備102a 截取通信,并給第一計算設備102a提供用于第二計算設備102b的 第二網(wǎng)絡標識符。第二網(wǎng)絡標識符包括由第一計算設備lOh直接或 公開地可接入的第二計算設備102a的IP地址或主機名,諸如第二 計算設備102b的最后得知的公共IP地址,在步驟274,在一個實施 例中,網(wǎng)關340與第二計算設備102b通信,以請求第二計算設備102b 建立浮筒會話,由第一計算設備102a經(jīng)由防火墻205b連接到第二 計算設備102b.在一些實施例中,網(wǎng)關340在步驟276可以協(xié)商或 否則提供用于第一計算設備102a和第二計算設備102b加密密鑰。 在步驟278,第一計算設備102a建立到第二計算設備102b的直接連 接、通信會話、或媒體路徑225。在其它實施例中,在步驟280,第 一計算設備102a和/或第二計算設備102b在允許通信之前匹配由其 它計算設備接收的加密密鑰。
在說明性步驟262的一些實施例中,計算設備102a和102b可以 通過任何適當?shù)难b置和/或機構(gòu),諸如通過任何類型和/或形式的隧 道或網(wǎng)關協(xié)議建立與網(wǎng)關340的連接。在一些實施例中,到網(wǎng)關340 的連接341a和341b可以形成虛擬專用網(wǎng)絡連接,以及在其它實施 例中,可以使用SSL或TLS提供到專用網(wǎng)的安全通信,諸如由在說 明性圖2上的IP范圍IO.IO.IO.XXX識別的專用網(wǎng).在一個實施例 中,計算設備102a和102b通過經(jīng)由專用網(wǎng)穿過防火墻20Sa-205b 而連接到網(wǎng)關340,而在其它實施例中,計算設備102a 102b可以經(jīng)
由專用網(wǎng)連接到網(wǎng)關340,并且可以不經(jīng)過防火墻205a-205b.本領 域技術人員將會認識到和看到計算設備102a-102b可以連接到和與 網(wǎng)關340通信的各種各樣方式,
在說明性步驟264,在一個實施例中,電信設備210a,諸如硬 IP電話,發(fā)起到諸如軟IP電話的電信設備210b的電信會話,諸如 電話呼叫。在一些實施例中,電信設備210a通過表示電信設備210b 的分機而發(fā)起電話呼叫.當電信設備210a發(fā)起電信會話時,建立電 信會話或媒體會話的這個發(fā)起、表示、或請求可以經(jīng)由SIP協(xié)議, 專用信令協(xié)議,或使用于信令的任何其它類型的協(xié)議,被發(fā)送到信 令服務器102a。信號經(jīng)由信令路徑220,經(jīng)由隧道會話341a被傳送 到網(wǎng)關230,以及經(jīng)由在網(wǎng)關340后面的專用網(wǎng)的內(nèi)部網(wǎng)路由到達信 令服務器102c.
雖然方法260的說明性實施例是對于VoIP或電信信令和會話討 論的,但本領域技術人員將認識和理解,本發(fā)明可用于發(fā)起任何類 型和/或形式的通信會話、實時或否則諸如牽涉到多媒體單元,諸如 視頻、話音、閑談、游戲、和虛擬真實性等等的互動的用戶會話, 這樣,電信設備210a-210b、信令/信號路徑220、和信令服務器120a 由此且適當?shù)匕▽谕ㄐ艜挼念愋秃?或形式的設備、信令、 協(xié)議和通信的類型和/或形式。
在說明性步驟266的一些實施例中,信號服務器102c可以設置、 協(xié)商、或建立任何類型的通信會話,以及在一個實施例中,信令服 務器102c可以建立電信會話,諸如由電信設備210a發(fā)起的VoIP電 話。當建立電信或其它媒體會話時,信令服務器102c在步猓270, 指令、請求、通知發(fā)起的電信設備210a和/或第一計算設備102a或 否則與之通信,以經(jīng)由某個網(wǎng)絡地址聯(lián)系、通知、接觸電信設備210b 或否則與之通信.在一些實施例中,由信令服務器102c提供給發(fā)起 的電信設備210a的網(wǎng)絡地址包括在網(wǎng)關340后面的專用網(wǎng)上計算設 備102b的網(wǎng)絡地址,即,10.10.10.XXX。在一個實施例中,用于各 個電信設備210b的網(wǎng)絡地址可包括企業(yè)專用網(wǎng)地址。
這時,代替經(jīng)由對等電信設備210b的VPN專用IP地址與之聯(lián) 系,說明性方法260經(jīng)由遠程接入客戶端120實行電信設備210a和 /或第一計算設備102a直接聯(lián)系對等或目標電信設備HOb或第二計
算設備102b。本發(fā)明的技術不是對于任何VoIP特定的,它可以應用 到任何其它協(xié)議,諸如在計算設備之間的任何的對等協(xié)議.本發(fā)明 的技術通過客戶端試圖聯(lián)系的資源的IP地址來作出決定.
在步驟270,當電信設備210a用由信令服務器120c在步驟268 提供的第一網(wǎng)絡地址,諸如軟IP電話的VPN專用IP地址,發(fā)起到 電信設備210b的數(shù)據(jù)連接時,網(wǎng)關340截取通信,以向電信設備210 和/或第一計算設備102b提供用于聯(lián)系電信設備210b的笫二網(wǎng)絡地 址。在一個實施例中,網(wǎng)關340通過相同的建立的VPN隧道341a介 入并發(fā)送帶外信號正在實行用于硬IP電話210a的業(yè)務的第一計算 設備102a,本領域技術人員將認識和理解,網(wǎng)關340可以直接通過 任何適當?shù)难b置和/或機構(gòu)把用于聯(lián)系計算設備102b和/或電信設備 210b的該網(wǎng)絡地址傳送到電信設備210和/或計算設備102a。例如, 網(wǎng)關340可以經(jīng)由第二隧道會話把第二網(wǎng)絡地址傳送到第一計算設 備102a。
在一些實施例中,網(wǎng)關向第一計算設備102a表示最后的已知的 公共IP地址,正在運行軟IP電話210b的第二計算設備102b使用 該IP地址來聯(lián)系網(wǎng)關340。在其它實施例中,這個公共IP可能不是 第二計算設備的實際的IP地址,而可以是其后面是第二計算設備 102b的防火墻205b的IP地址。如果計算設備210a直接聯(lián)系防火墻 205b的/>共IP地址,則分組可以被防火墻205b拒絕。在這些實施 例中,網(wǎng)關340指令計算設備102b建立到第一計算設備102a的、 本領域技術人員稱之為浮筒會話的會話,在防火墻205b上打開一個 轉(zhuǎn)發(fā)口,基于它第一計算設備102a可以穿過或返回.在其它實施例 中,任何適當?shù)难b置和/或機構(gòu)可用來允許第一計算設備102a穿過 防火墻205b,與第二計算設備102b聯(lián)系和通信,
雖然說明性方法260是結(jié)合在防火墻205a后面具有笫二計算設 備102n的、圖2A的環(huán)境200討論的,但本領域技術人員將認識和 理解,說明性方法260可用于第二計算設備102b是直接可接入的而 不用穿過防火墻205a的環(huán)堍.這樣,說明性方法260可以不需要在 步驟274指令第二計算設備102b為第一計算設備102a連接到第二 計算設備102b提供浮筒會話或其它機構(gòu)。
在一些實施例中,網(wǎng)關340在步驟276可以在計算設備lipa-
se
102b之間協(xié)商用于安全通信的密鑰。在計算設備102a-102b處的遠 程接入客戶端120可以使用這個用于安全和加密通信的密鑰,和/或 鑒權或授權其它計算設備.在其它實施例中,為了保證惡意的計算 設備不利用這個開孔,網(wǎng)關340在步驟276在兩個計算設備102a和 102b之間協(xié)商安全密鑰,并且各個遠程接入客戶端120在允許數(shù)據(jù) 通信之前保證密鑰匹配。例如,在建立浮筒會話的實施例中,這個 密鑰保證進入到開孔的分組是來自浮筒會話所指的計算設備.
在其它實施例中,網(wǎng)關340不執(zhí)行步驟276,以提供在計算設備 102a-102b之間的對等通信會話的安全機構(gòu).例如,計算設備 102a-102b可能是處在同一個專用企業(yè)網(wǎng)絡,所以可以是信任的。在 另外的實施例中,不用網(wǎng)關340協(xié)商安全密鑰,計算設備102a-102b 使用任何適當?shù)难b置和/或機構(gòu),來鑒權和/或授權其它計算設備進 行對等通信。在一些實施例中,計算設備102a-102b可以經(jīng)由網(wǎng)關 隧道會話,諸如經(jīng)由路徑341a,或在步驟280,經(jīng)由在步驟278建 立的媒體路徑225 ,進行鑒權和/或授權。例如,每個計算設備 102a-102b的遠程接入客戶端120可以在允許任何數(shù)據(jù)在連接225上 進行通信之前通過建立的媒體路徑225檢驗密鑰的匹配。
在步驟278,不用經(jīng)過網(wǎng)關340在計算設備102a-102b之間建立 用于任何類型和/或形式的通信的直接媒體路徑224,并且在一些實 施例中,不使用計算設備102a-102b的各個VPN分配的IP地址,而 是代之以使用它們的公共IP地址或由它們駐在的網(wǎng)絡分配給它們的 IP地址。通過使用本發(fā)明的技術,計算設備102a-102b的各個遠程 接入客戶端120互相用作為臨時對等SSL網(wǎng)關,直接解密互相的SSL 會話,而不用經(jīng)由網(wǎng)關340通信.經(jīng)由路徑225的直接對等通信會 話避免經(jīng)由網(wǎng)關340的額外跳。這將減小由于采用經(jīng)由網(wǎng)關340的 較長路由造成的等待時間,并將改進諸如圖2A所示的VoIP通信那 樣的實時數(shù)據(jù)通信的質(zhì)量、性能和感受。
在一些實施例中,網(wǎng)關340可被配置成每當計算設備102試圖建 立對等通信會話或經(jīng)由網(wǎng)關340接入資源時自動執(zhí)行說明性方法260 的技術。在一些實施例中,網(wǎng)關340可被配置成僅僅對于源IP地址、 目的地IP地址、或它們的任何組合的,某些IP地址范圍自動執(zhí)行 說明性方法260的技術。在另一個實施例中,網(wǎng)關340可以根據(jù)經(jīng)
由網(wǎng)關340接入的應用和/或資源的類型執(zhí)行這種技術。例如,在一 個實施例中,網(wǎng)關340可以對于任何的類型的、經(jīng)由網(wǎng)關340共享 屏幕數(shù)據(jù)的桌面或屏幕共享應用自動執(zhí)行這種技術.在其它實施例 中,網(wǎng)關340可以確定根據(jù)任何類型和/或形式的商業(yè)規(guī)則、接入控 制策略或其它配置、算法、和統(tǒng)計值執(zhí)行這種技術.例如,網(wǎng)關340 可以根據(jù)在對等計算設備之間的、基于ping的定時統(tǒng)計來執(zhí)行這種 技術。如果對等計算設備比與網(wǎng)關340互相更靠近,則網(wǎng)關執(zhí)行對 等路由技術。本領域技術人員將認識和理解本發(fā)明的網(wǎng)關可被適配 為或否則被配置成執(zhí)行本發(fā)明的對等路由技術的各種方式。
一方面,本發(fā)明涉及允許經(jīng)由無損協(xié)議傳送對于經(jīng)由有損協(xié)議的 傳輸被構(gòu)建的分組。在圖3B所示的一個技術中,本發(fā)明當經(jīng)由無損 或可靠的協(xié)議傳送有損或不可靠的協(xié)議,諸如,例如經(jīng)由TCP或 SSL/TCP連接在UDP上傳送RTP時,使用虛假確認技術,在圖3C所 示的另一個技術中,本發(fā)明使用有效負栽移位,以經(jīng)由無損協(xié)議傳 送對于經(jīng)由有損協(xié)議的傳輸被構(gòu)建的分組.在一些實施例中,本發(fā) 明的這些技術幫助達到在UDP級別的傳輸層安全性(TLS),正如本
領域技術人員在下面的說明中將認識和理解的。
下面鑒于圖3A的說明性環(huán)境300和另外鑒于圖1A-1E,討論用 于實施虛假確認技術的本發(fā)明的實施例的說明性方法360.概略地, 環(huán)境300包括計算設備102a的客戶端105a與計算設備102b的另一 方客戶端105b通信,或替換地經(jīng)由網(wǎng)絡104與網(wǎng)關340通信。在一 些實施例中,客戶端105a可以經(jīng)過IP路由器305a-305b,或網(wǎng)絡 104可以具有IP路由器305a-305b。雖然在其它實施例中,計算設 備102a-102b和網(wǎng)關340可以是在同一個網(wǎng)絡104,另外,電信設備 210a可以與客戶端105a相關聯(lián),以及電信設備210b可以與另一方 客戶端105b或網(wǎng)關340a相關聯(lián)。
客戶端105a可包括第一網(wǎng)絡堆棧310a,客戶端105或網(wǎng)關340 可包括第二網(wǎng)絡堆棧310b。網(wǎng)絡堆棧3201a-310a可包括一個或多個 網(wǎng)絡層,諸如開放系統(tǒng)互聯(lián)(OSI)通信模型的任何網(wǎng)絡層,例如, 如圖3A所示,網(wǎng)絡堆棧310a-310b包括在幀層之上通信的TCP/IP 343a-343b,它是本領域技術人員認為適用于基于TCP/IP的網(wǎng)絡 104。 TCP/IP 343a-343b包括可靠的或無損協(xié)議的說明性實施例。例
如,在如本領域技術人員已知的TCP 343a-343b中,網(wǎng)絡堆棧 310a-310b或其任何驅(qū)動器或機構(gòu),諸如TCP驅(qū)動器,可以執(zhí)行算法 和操作,以及包括提供協(xié)議的一個或多個無損或可靠的特性的邏輯 或功能.例如,為了支持TCP 343a-343b,網(wǎng)絡堆棧310a-310b可以 執(zhí)行分組排序、分組重發(fā)、分組接收的確認、流控制算法、滑動窗 口算法、和/或Nagle的算法,以及本領域技術人員在TCP 343a-343b 或任何其它無損協(xié)議方面將認識和看到的、任何其它可靠性關聯(lián)的 操作和算法。
另外,網(wǎng)絡堆棧310a-310b可包括用于支持SSL或SSL VPN通信 的SSL 341a-341b層。例如,SSL層341a-341b可用于在遠程接入客 戶端120之間或在遠程接入客戶端120和網(wǎng)關340之間的網(wǎng)關或隧 道會話。如圖3A所示,網(wǎng)絡堆棧310a-310b還可提供用于諸如UDP 那樣的有損協(xié)議342a-342b的層,以通過諸如TCP那樣的無損協(xié)議 343a-343b被傳送.在一些實施例中,有損或不可靠的協(xié)議343a-343b 可包括在UDP上的實時協(xié)議(RTP),以及可包括具有諸如話音或音 頻的任何表示那樣的任何類型和/或形式的實時數(shù)據(jù)的有效負栽。在 其它實施例中,有損協(xié)議342a-342b可以在建立的VoIP會話中,諸 如經(jīng)由以上結(jié)合圖2A和2B討論的說明性方法260建立的會話中, 承栽到和來自客戶端105a的VoIP通信,諸如UDP 342a-342b那樣 的無損協(xié)議可被選擇用于諸如話音的實時應用,因為對于諸如對等 客戶端105b那樣的接收者,及時得到分組要比以可靠的方式,諸如 經(jīng)由無損協(xié)議得到分組,是更重要的.
網(wǎng)絡堆棧310a-310b還包括本發(fā)明的遠程接入客戶端120的墊層 (shim) 322a-322b。墊層322a-322b可包括遠程接入客戶端120的 任何部分,并且在一些實施例中,它包括網(wǎng)絡驅(qū)動器、網(wǎng)絡驅(qū)動器 接口、或用于提供如這里描述的本發(fā)明的虛假確認技術的、其它網(wǎng) 絡層關聯(lián)的機構(gòu),墊層322a-322b可包括軟件、硬件、或軟件與硬 件的任何組合.在一個實施例中,墊層322a-322b可以在網(wǎng)絡分組 到達TCP層343a之前工作在網(wǎng)絡堆棧的IP層.在其它實施例中, 墊層322a-322b可以工作在TCP層343a-343b。本領域技術人員將認 識和看到,墊層322a-322b可以在網(wǎng)絡堆棧310a-310b中以與無損 協(xié)議的操作的層關聯(lián)的任何方式工作,包括在無損協(xié)議的層中或在
其附近。
圖3B的方法360所示的、本發(fā)明的虛假確認技術允許經(jīng)由諸如 TCP 343a-343b那樣的無損協(xié)議傳送諸如UDP 342a-342b那樣的有損 協(xié)議。通過墊層322a-322b發(fā)出對于TCP分組接收的虛假確認,本 發(fā)明的技術阻止或避免諸如在TCP 343a-343b的例子中任何的分組 排序、分組重發(fā)、流控制算法、滑動窗口算法、和/或nagle算法那 樣的無損協(xié)議的可靠性機構(gòu)、操作和算法.這樣,有損協(xié)議342a-342b 可以通過無損協(xié)議343a-343b通信,但保持它的有損或不可靠的特 性,這是諸如在實時數(shù)據(jù)通信中想要的.這個技術也使得有損協(xié)議 能夠安全地通信,或經(jīng)由隧道協(xié)議通過網(wǎng)關,或僅僅經(jīng)由TCP/IP而 不把無損協(xié)議的無損特性應用到有損協(xié)議通信。
關于說明性方法360的概貌,在步驟365,計算設備102a和102b 或網(wǎng)關340建立基于無損協(xié)議的連接,諸如TCP連接,通過該連接 可以傳送無損協(xié)議分組.在步驟370,本發(fā)明的遠程接入客戶端120 可以檢測,無損協(xié)議分組包括有損協(xié)議,諸如RTP或UDP,或否則包 括實時數(shù)據(jù)。在一個實施例中,在步驟375,說明性方法360可以用 密鑰,諸如經(jīng)由帶外TLS或步驟367的SSL會話提供的密鑰,加密 有效負載。在步驟380,無損協(xié)議分組的接收的虛假確認可以諸如通 過墊層322a-322b被傳送到或否則提供給網(wǎng)絡堆棧310a-310b.響應 于無損協(xié)議分組的接收的虛假確認的接收,在步驟385,各個網(wǎng)絡堆 棧310a-310b不執(zhí)行一個或多個,或全部的、提供無損協(xié)議的可靠 的或無損特性的算法和操作。在步驟390,在網(wǎng)絡堆棧310a-310b之 間傳送具有有損協(xié)議有效負栽的無損協(xié)議分組。
在說明性方法360的步驟365,無損協(xié)議連接可以經(jīng)由使用一種 類型和/或形式的無損協(xié)議的任何適當?shù)难b置和/或機構(gòu)被建立。在 一個實施例中,客戶端105a的網(wǎng)絡堆棧310a建立到具有網(wǎng)絡堆棧 310b的一方客戶端105a的無損協(xié)議連接,諸如TCP。在另一個實施 例中,客戶端105a的網(wǎng)絡堆棧310a建立到具有網(wǎng)絡堆棧310b的網(wǎng) 關340的無損協(xié)議連接。另外,步驟365的無損協(xié)議連接可以以諸 如SSL那樣的安全的方式被建立,或作為虛擬專用連接。雖然網(wǎng)絡 堆棧310a-310b被顯示為具有相同的網(wǎng)絡層,但本領域技術人員將 認識和理解,網(wǎng)絡堆??梢跃哂袑膶樱鼈兛梢允遣煌陌姹?或是與不同的操作系統(tǒng)和/或驅(qū)動器關聯(lián)的,以及每個網(wǎng)絡堆棧
310a-310b可以具有附加的層、更少的層、或不同的層.
在說明性步驟360,在一個實施例中,遠程接入客戶端120截取 網(wǎng)絡分組,諸如經(jīng)由分組捕獲機構(gòu)365,和通過適當?shù)难b置和/或機 構(gòu)檢查網(wǎng)絡分組,以確定在網(wǎng)絡分組的有效負栽中使用的協(xié)議的類 型,或在網(wǎng)絡分組的有效負栽中內(nèi)容的類型。在一些實施例中,遠 程接入客戶端120的墊層322a-322b可用于截取和檢查網(wǎng)絡分組. 在一個實施例中,遠程接入客戶端120可以截取網(wǎng)絡分組,并確定 網(wǎng)絡分組是否包括任何的無損協(xié)議或特定的無損協(xié)議,諸如TCP.如 果網(wǎng)絡分組是無損協(xié)議,則遠程接入客戶端120檢驗有效負栽,以 確定協(xié)議的類型和/或數(shù)據(jù)的類型。在一個實施例中,遠程接入客戶 端120可以通過網(wǎng)絡分組的有效負栽的任何適當字段,諸如表示有 效負栽的有損協(xié)議的首部的任何部分,來確定有效負栽具有有損協(xié) 議內(nèi)容。在另一個實施例中,遠程接入客戶端120可以通過有效負 栽的任何數(shù)據(jù)來確定,有效負栽是否包括有損協(xié)議或包括實時數(shù) 據(jù)。
在一個實施例中,遠程接入客戶端120確定TCP分組包括RTP 或UDP的有效負栽,并施加有效負栽的加密.遠程接入客戶端l20
;的密鑰加密網(wǎng):分組的有一效負-栽。在二些實施例;,^鑰或^碼
在客戶端105a-105b或客戶端105a與網(wǎng)關之間經(jīng)由帶外TLS被協(xié) 商,如圖3A所示,與在其它實施例中的傳統(tǒng)TLS會話相反,在傳統(tǒng) TLS會話中會話首先被協(xié)商并且同一個套接字用于數(shù)據(jù)通信,在一些 實施例中,在步驟375的加密逐個分組地進行。在另一個實施例中, 一次對多個分組執(zhí)行加密。
在本發(fā)明的說明性方法360的步驟380,網(wǎng)絡分組,例如無損協(xié) 議分組的接收的虛假確認被發(fā)出、傳送、或否則被提供給包括各個 發(fā)送和接收計算設備102a-102b的網(wǎng)絡堆棧310a-310b或網(wǎng)關340。 墊層322a-322b、遠程接入客戶端120的任何部分、或網(wǎng)絡堆棧 310a-310b的任何部分可以發(fā)出網(wǎng)絡分組的接收的虛假確認。 一方 面,網(wǎng)絡分組的接收的虛假確認是虛假的,其意義在于其被傳送而 不確認網(wǎng)絡分組的實際接收,以便阻止與網(wǎng)絡堆棧310a-310b關聯(lián)
的無損協(xié)議的無損和可靠的機構(gòu)。這樣,網(wǎng)絡分組的接收的虛假確 認可包括與網(wǎng)絡分組的接收的實際確認相同的形式和/或類型.
在一些實施例中,接收的虛假確認在傳送網(wǎng)絡分組之前被發(fā)送到
網(wǎng)絡堆棧310a-310b。在其它實施例中,接收的虛假確認在傳送網(wǎng)絡 分組后但同時或以某種方式被發(fā)送,諸如阻止接收的網(wǎng)絡堆棧 310a-310b的無損協(xié)議機構(gòu)不應用到發(fā)送的網(wǎng)絡分組.在一個實施例 中,對于每個網(wǎng)絡分組發(fā)送網(wǎng)絡分組的接收的虛假確認,和在另一 個實施例中,可以對每個通信會話或無損協(xié)議連接發(fā)送一次網(wǎng)絡分 組的接收的虛假確認。而且,本領域技術人員將認識和理解,接收 的虛假確認對于不同的操作系統(tǒng)可以在網(wǎng)絡堆棧310a-310b的不同 的位置執(zhí)行。例如,在一個實施例中,接收的確認可以在微軟的視 窗操作系統(tǒng)家族中在網(wǎng)絡驅(qū)動器接口技術規(guī)范(NDIS)驅(qū)動器級別 被發(fā)送。
在說明性方法360的步驟385,接收來自步驟380的網(wǎng)絡分組的 接收的虛假確認的網(wǎng)絡堆棧310a-310可以響應于這樣的接收,而可 以不執(zhí)行、停住執(zhí)行、或阻止執(zhí)行提供無損協(xié)議的一個或多個無損 特性的任何一個或多個算法和搮作。例如,在作為無損協(xié)議的TCP 的實施例中,網(wǎng)絡堆棧310a-310n可以對于網(wǎng)絡分組或TCP連接不 執(zhí)行任何一個或多個以下的操作分組排序、分組重發(fā)、流控制算 法、滑動窗口算法、和/或nagle算法。在一些實施例中,接收的虛 假確認必須逐個分組地接收,以阻止網(wǎng)絡堆棧310a-310n的無損層 采用可靠性算法。這樣,發(fā)送的網(wǎng)絡堆棧310a-310n可以逐個分組 地確定本發(fā)明的虛假確認技術應用到哪些分組.可以有一些無損協(xié) 議網(wǎng)絡分組包括對于其應當施加無損協(xié)議的可靠性算法的有損協(xié) 議,在其它實施例中,網(wǎng)絡分組的接收的虛假確認可以對于無損協(xié) 議連接接收一次,以便阻止對于在無損協(xié)議會話或連接期間接收的 任何以后的分組采用可靠性算法。
在步驟390,說明性方法360經(jīng)由網(wǎng)絡堆棧310a-310n傳送具有 無損協(xié)議有效負栽的無損協(xié)議分組.在一個實施例中,無損協(xié)議分 組在步驟385后被傳送,或在其它實施例中,在步驟385之前傳送, 這樣,雖然無損協(xié)議分組在網(wǎng)絡中變?yōu)閬G失的,但不試圖在預期有 損協(xié)i義分組時回收該分組。
雖然通過使用網(wǎng)絡分組的接收的虛假確認,諸如在TCP中,討論 方法360的說明性實施例,但任何的類型和/或形式的指示、請求、 或指令可被傳送到網(wǎng)絡堆棧310a-310n,以阻止采用無損協(xié)議的任何 可靠性或無損算法.在一些實施例中,網(wǎng)絡堆棧310a-310n的無損 協(xié)議層可被適配或被配置成使得配置、標記或指令不逐個分組地或 基于會話或連接來使用可靠性算法.例如,無損協(xié)議可以在無損協(xié) 議分組的首部中具有表示對于分組是否應當丟棄或避免可靠性的字 段。
現(xiàn)在參照圖3C,通過說明性方法345示出對于經(jīng)由無損協(xié)議發(fā) 送按照有損協(xié)議構(gòu)建的分組所采取的步驟的另外的實施例,這也可 以被稱為有效負栽移位技術。關于說明性方法345的概貌,在步驟 348,要通過使用不可靠的傳輸協(xié)議發(fā)送的第一分組由諸如客戶端 105的第一設備接收。在步猓350,笫一設備105創(chuàng)建笫一TCP分組, 其包括接收的笫一分組的第一有效負栽和與在第一設備105與第二 設備之間建立的TCP連接關聯(lián)的信息的第一 TCP首部。在步驟352, 第一設備105發(fā)送第一TCP分組到第二設備。在步驟354,第一設備 105接收要通過使用不可靠的傳輸協(xié)議發(fā)送的第二分組,并且在步驟 356,創(chuàng)建第二TCP分組,其包括接收的第二分組的第二有效負栽和 與第一TCP首部信息.在步驟358,第一設備在接收到來自第二設備 的第一有效負栽的接收的確認之前,發(fā)送第二 TCP分組到第二設備,
仍舊參照圖3C,并且現(xiàn)在更詳細地,在步驟348,要通過使用不 可靠的傳輸協(xié)議發(fā)送的第一分組由第一設備105接收。在一些實施 例中,分組打算通過使用UDP的有損協(xié)議被發(fā)送。在另外的實施例 中,分組包括UDP上的RDP。在其它實施例中,第一分組由在用戶模 式332下執(zhí)行的應用程序338生成.在一些實施例中,分組由在內(nèi) 核模式334下執(zhí)行的應用338生成.在其它實施例中,第一分組由 第一設備105接收,用于重發(fā)。在另外的實施例中,笫一分組在它 到達網(wǎng)絡堆棧310a-310b之前由過濾器進程322截取。過濾器進程 322可以在用戶模式332或在內(nèi)核模式334下執(zhí)行.在一些實施例 中,濾波器322是迷你驅(qū)動器。在其它實施例中,濾波進程322使 用應用掛鉤,以截取第一分組.在另外的實施例中,應用掛鉤經(jīng)由 應用編程接口 (API)被實施。在一個實施例中,網(wǎng)絡分組的掛鉤發(fā)
生在網(wǎng)絡堆棧310a-310n的網(wǎng)絡層。
在步驟350,笫一設備105創(chuàng)建第一TCP分組,其包括接收的第 一分組的第一有效負栽和與在第一設備105與第二設備之間建立的 TCP連接關聯(lián)的信息的笫一TCP首部,例如在一個實施例中,TCP連 接可以在客戶端105與網(wǎng)關340之間被建立,以及在另一個實施例 中,可以在客戶端105與網(wǎng)關340之間被建立。在一些實施例中, 第一設備105表示,TCP分組包含通過打開特定的TCP端口經(jīng)由有損 協(xié)議發(fā)送而被構(gòu)建的分組的有效負栽。在其它實施例中,笫一設備 105表示,TCP分組包含通過在TCP首部中設置一個標記經(jīng)由有損協(xié) 議發(fā)送而被構(gòu)建的分組的有效負栽。TCP首部可包括有關源節(jié)點的信 息、有關目的地節(jié)點的信息、或具體地標識TCP分組的序列號.
在步驟352,第一設備105發(fā)送第一TCP分組到第二設備.在一 些實施例中,第二設備可以是網(wǎng)關340.在其它實施例中,第二設備 是"對等"計算設備102b,笫一 TCP分組可以在例如通過使用SSL或 TLS發(fā)送到第二設備之前被加密。
在步驟354,第一設備105接收要通過使用不可靠的傳輸協(xié)議, 諸如UDP,發(fā)送的第二分組。第二分組可以從生成第一分組的同一個 應用338接收.在步驟356,如上所述,笫一設備105創(chuàng)建第二TCP 分組,其包括接收的笫二分組的第二有效負栽和與第一 TCP首部信 息的。在步驟358,第一設備105然后在接收來自第二設備的第一有 效負載的接收的確認之前,發(fā)送第二 TCP分組到笫二設備.在一些 實施例中,當從第二設備接收確認時,第一設備105在發(fā)送分組之 前更新TCP首部信息.在其它實施例中,第一設備105創(chuàng)建具有更 新的TCP首部信息和具有第二有效負栽的第三TCP分組。第一設備 然后發(fā)送第三TCP分組.
在接收TCP分組后,如有必要,第二設備解密TCP分組,并且確
定有效負栽是對于使用有損協(xié)議發(fā)送被構(gòu)建的一個或多個分組,第 二設備可以基于分組被接收的端口或是通過在TCP首部信息中的標 記來對此進行確定. 一旦確定,第二設備就從有效負栽剝離TCP首 部,并傳遞有效負栽,
另一方面,本發(fā)明涉及調(diào)節(jié)報告的最大傳輸單元(MTU)參數(shù), 以通過減小用于加密的網(wǎng)絡分組的分組分段而使得網(wǎng)絡通信最優(yōu)化。這種技術可被應用到困3A的說明性環(huán)境300的一個或兩個網(wǎng)絡 堆棧310a-310n,通過加密網(wǎng)絡分組的有效負栽,諸如按照上迷的說 明性方法360處理的任何網(wǎng)絡分組,可增加有效負栽的尺寸。即, 考慮到未加密的原先的有效負栽到加密的有效負栽的尺寸改變,可 能增加網(wǎng)絡分組的尺寸。
仍舊參照圖3A,網(wǎng)絡堆棧310a-310b可包括最大傳輸單元 402a-402b (MTU)參數(shù),以表示在網(wǎng)絡中,諸如在基于以太網(wǎng)的網(wǎng) 絡中,通過一種物理媒體可被發(fā)送的最大數(shù)據(jù)單元的尺寸。在TCP/IP 的實施例中,MTU 402a-402b表示可以由互聯(lián)網(wǎng)協(xié)議(IP)層接口發(fā)送 的最大數(shù)據(jù)報或分組而不需要接口把數(shù)據(jù)報分解或分段為更小的單 元。MTU參數(shù)402a-402b可以與諸如網(wǎng)絡接口卡那樣的通信接口相關 聯(lián)。用于以太網(wǎng)的缺省的MTU尺寸是1500字節(jié),而IEEE 802. 3是 1492字節(jié)。本領域技術人員將認識和理解,缺省MTU尺寸將是基于 連網(wǎng)技術,諸如令牌環(huán)、FDDI、 X.25等等.
現(xiàn)在參照圖4,流程圖顯示本發(fā)明的MTU調(diào)節(jié)方法400的說明性 實施例。概略地,在步猓405,建立在計算設備之間的會話,諸如在 第一計算設備102a與第二計算設備102b之間的會話。在步跺410, 一個計算設備102,諸如第一計算設備102a,檢測具有加密的有效 負栽的網(wǎng)絡分組。在步驟415,計算設備102a-102b考慮到有效負栽 的加密的部分的尺寸,確定對于網(wǎng)絡堆棧310a-310n的MTU 402a-402b參數(shù)的設置.在步驟420 ,考慮到加密的部分,減小MTU 402a-402b參數(shù).如果MTU 402a-402b被請求或被報告,則MTU 402a-402b將表示比與物理層關聯(lián)的MTU尺寸,諸如對于以太網(wǎng)的 1500,更小的尺寸.
通過使用這個技術,在網(wǎng)絡104上任何設備可以按照減小的MTU 尺寸把網(wǎng)絡分組傳送到網(wǎng)絡堆棧310a-310n,減小的MTU尺寸可以沿 到網(wǎng)絡堆棧310a-310n的路由被加密并不被分段.如果網(wǎng)絡分組被 加密,則它仍舊應當適配于物理網(wǎng)絡層媒體的實際的MTU尺寸,諸 如以太網(wǎng)。例如,MTU參數(shù)402a-402b可被i殳置為對于以太網(wǎng)的1500 的缺省MTU尺寸,并考慮到加密開銷,按照說明性方法400,被減小 確定的數(shù)目的字節(jié),例如IOO。網(wǎng)絡分組可以從服務器資源被發(fā)送到 客戶端,包括與1400的報告的MTU 402a-402b尺寸相等的尺寸。網(wǎng)
絡分組可以經(jīng)過網(wǎng)關340,并經(jīng)由SSL隧道被加密,這又使得網(wǎng)絡分 組尺寸增加到1475,由于這個尺寸適配于以太網(wǎng)物理媒體的MTU尺 寸,網(wǎng)絡分組將不分段.
在說明性方法400的步驟405,可以建立在第一計算設備102a 與第二計算設備102b,諸如圖2A的客戶端105b或網(wǎng)關340之間的 任何類型和/或形式的通信會話。在一些實施例中,通過使用在第一 計算設備上的遠程接入客戶端120建立會話.在一個實施例中,遠 程接入客戶端120建立與網(wǎng)關340的會話,諸如SSL VPN會話,或 到對等計算設備102b上的另 一個遠程接入客戶端的會話
在步驟410的一些實施例中,遠程接入客戶端120檢測具有加密 的有效負載的網(wǎng)絡分組。在一個實施例中,分組捕獲機構(gòu)365截取 網(wǎng)絡分組,并且代理326確定分組是否被加密.然而,遠程接入客 戶端120的任何其它部分,諸如濾波器322或幀監(jiān)視器360可以確 定分組是否被加密.在一個實施例中,網(wǎng)絡分組的整個有效負栽被 加密,而在一個實施例中,有效負栽的一部分被加密。本發(fā)明可以 使用任何類型和/或形式的裝置或機構(gòu),用于確定分組是否具有加 密。例如,在一些情況中,遠程接入客戶端120可以檢驗網(wǎng)絡分組 的、表示有效負栽被加密的標記或字段.在其它實施例中,遠程接 入客戶端120可以檢驗有效負栽的任何部分是否難以理解,因為它
包含來自加密的隨機數(shù)據(jù)或噪聲.另外,加密的有效負栽可以相關 于網(wǎng)絡堆棧310a-310n的任何層,諸如第2、 3、 6或7層的加密而
被加密。
在步驟415的一些實施例中,本發(fā)明的說明性方法400逐個分組 地確定對報告的MTU 402a-402b的調(diào)節(jié),或在其它實施例中,根據(jù) 連接或會話來確定,以及在步驟420,由此來調(diào)節(jié)MTU 402a-402b。 在一個實施例中,MTU 402a-402b被正好減小了網(wǎng)絡分組的加密開銷 量。在某些情形下,說明性方法400確定一次對于整個會話或連接 的MTU 402a-402b尺寸調(diào)節(jié),和減小MTU 402a-402b尺寸到考慮了 對于整個會話加密開銷的數(shù)值。例如,雖然網(wǎng)絡分組可以具有變化 的加密開銷,但調(diào)節(jié)考慮最大加密開銷。在另外的實施例中,MTU 402a-402b可以考慮一下內(nèi)容被調(diào)節(jié),即考慮當網(wǎng)絡分組離開網(wǎng)絡堆 棧310a-310n時可能出現(xiàn)的加密,諸如在網(wǎng)絡分組的端對端網(wǎng)絡行進時可能出現(xiàn)的、由網(wǎng)關340進行的加密。
另外,MTU 402a-402b尺寸除了加密開銷以外可以對于其它網(wǎng)絡 性能因素被調(diào)節(jié).在一些實施例中,雖然MTU 402a-402b由于加密 開銷而被減小,但考慮與網(wǎng)絡通信關聯(lián)的其它開銷和因素,它可能 進一步減小,以及在其它情形下增加,例如,MTlM02a-402b對于與 加密無關的因素被亊先調(diào)節(jié),以及在使用本發(fā)明的技術后,考慮加 密開銷,來減小MTU 402a-402b。本領域技術人員將認識和理解,對 于調(diào)節(jié)MTU邊界或除了按照本發(fā)明的技術對于加密開銷減小調(diào)節(jié)以
外可以有其它的因素和考慮。
現(xiàn)在參照圖5A和5B,另一方面,本發(fā)明涉及客戶端端應用知道 的網(wǎng)絡通信優(yōu)先化技術,本發(fā)明的遠程接入客戶端120根據(jù)應用的 類型和/或優(yōu)先權提供客戶端上應用網(wǎng)絡通信的智能的和客戶端中 心優(yōu)先化。如圖5A的系統(tǒng)500中顯示的,計算設備102的遠程接入 客戶端105連接到網(wǎng)絡104。客戶端105可以執(zhí)行一個或多個應用 338a-338n,它們經(jīng)由遠程接入客戶端120的代理326和濾波器322 接入網(wǎng)絡104.在一些實施例中,應用338a-338n提供一個或多個實 時數(shù)據(jù)通信,諸如VoIP。在其它實施例中, 一個或多個應用338a-338n可以提供電子郵件、合作、在線會議、和/或桌面共享關聯(lián)的服 務或功能。
如圖5A所示,分組捕獲機構(gòu)365, 365,可被包括在遠程接入客戶 端120的代理326和濾波器322中,用于截取客戶端105的任何的 應用338a-338n的網(wǎng)絡業(yè)務。遠程接入客戶端120可包括任何隊列 540a-540n,用于排隊和優(yōu)先化客戶端105的網(wǎng)絡通信。在一個實施 例中,隊列540a-540n可被包括在網(wǎng)絡驅(qū)動器中,諸如用于濾波器 322的NDIS驅(qū)動器,以及在其它實施例中,可以與代理326包括在 一起,或由代理326可接入的,隊列540a-540n可包括任何類型和/ 或形式的、用于存儲和/或安排諸如由分組捕獲機構(gòu)365截取的網(wǎng)絡 分組那樣的網(wǎng)絡分組的適當?shù)难b置和/或機構(gòu).在一些實施例中,隊 列540a-540n可以與客戶端105的應用338a-338n關聯(lián)的網(wǎng)絡分組 相關聯(lián)或被分配給該網(wǎng)絡分組。在其它實施例中,隊列540a-540n 可以按優(yōu)先權的級別,諸如高、中、低,或數(shù)字地諸如優(yōu)先權1…10, 被組織。本領域技術人員將認識和理解,隊列540a-540n的數(shù)目可
以是基于任何想要的優(yōu)先權粒度,諸如3, 5或10個優(yōu)先權級別. 另外,隊列540a-540n中的一些可用于在網(wǎng)絡分組被放置到基于優(yōu) 先權的隊列540a-540n和/或從該隊列取出之前接收和/或發(fā)送網(wǎng)絡 分組.
遠程接入客戶端120還可以接入或使用路由表538,用于確定如 何經(jīng)由代理326路由客戶端的網(wǎng)絡分組,諸如經(jīng)由網(wǎng)關340到網(wǎng)絡 104。在一個實施例中,代理326建立和保持到網(wǎng)關340的SSL VPN 連接,如圖1A所示,在一個實施例中,路由表538包括有關源計算 設備與目的地計算設備的信息,以便識別在源計算設備與目的地計 算設備之間的通信路徑或連接.路由表538可包括源IP地址與源端 口,和目的地IP地址與目的地端口 ,以識別在網(wǎng)絡104上的通信路 徑。例如,源IP地址與源端口可表示客戶端105的IP地址和客戶 端105處的應用338a-338n藉以在網(wǎng)絡05上通信的端口 .目的地IP 地址可表示應用338a-338n經(jīng)由由對等設備使用的目的地端口與其
通信的對等計算設備的IP地址.
另外,遠程接入客戶端120可以具有一個或多個策略520,用于 規(guī)定與在應用于上運行的、與應用338a-338n關聯(lián)的網(wǎng)絡通信的客 戶端端優(yōu)先化。這些策略520可以由任何適當?shù)难b置和/或應用被規(guī) 定。在一些實施例中,策略520可以由應用338a-338n的名稱和/或 應用338a-338n的類型被規(guī)定。在其它實施例中,策略520可以按 由應用338a-338n使用的一個或多個協(xié)議的類型和/或網(wǎng)絡分組的有 效負栽的尺寸被規(guī)定。在另一個實施例中,策略520根據(jù)應用是運 行在客戶端105的前臺還是后臺來規(guī)定優(yōu)先化。在再一個實施例中, 策略520可以根據(jù)目的地地址,諸如主機名稱或IP地址,和/或目 的地端口號表示優(yōu)先化.另外,策略520可以考慮多個應用338a-338n 和/或可以在任何點在客戶端105處執(zhí)行的多個協(xié)議分級結(jié)構(gòu)地被規(guī) 定。而且,策略520可以按條件地被規(guī)定,諸如如果一個應用338a 正在運行,則笫二個應用338b可以具有較高的或較低的優(yōu)先權。本
領域技術人員將認識和理解規(guī)定客戶端端應用優(yōu)先權的多種方式.
策略520可以由代理326接入、被配置成代理326、或被代理326 加載.例如,策略520可以由網(wǎng)關340提供或經(jīng)由網(wǎng)關340被下栽, 策略520可包括用于規(guī)定策略的任何類型和格式的語義和/或語言,
和可以經(jīng)由任何類型和/或形式的媒體被提供,諸如由一個或多個網(wǎng)
絡分組電子地,或經(jīng)由文件,諸如XML文件,策略520可以由用戶 通過任何適當?shù)难b置和/或機構(gòu)被配置。例如,代理326可提供配置 機構(gòu),諸如用戶接口、圖形或否則設計,和該配置機構(gòu)被構(gòu)建用于 配置或規(guī)定策略520.
鑒于圖5A和圖1A-1C的系統(tǒng)500,將描迷由圖5B的方法550顯 示的本發(fā)明的優(yōu)先化技術.概述地,在說明性方法550的步驟555。 客戶端105截取與在客戶端105上的應用338a-338n關聯(lián)的一個或 多個網(wǎng)絡分組,以及在步驟560,網(wǎng)絡分組被存儲在隊列540a-540n。 在步驟565 ,用于截取的和排隊的網(wǎng)絡分組的優(yōu)先權根據(jù)應用 338a-338n的類型和/或優(yōu)先權被確定。在步猓570,對于網(wǎng)絡分組 表示所確定的優(yōu)先權,和在步驟575,按照所確定的優(yōu)先權傳送網(wǎng)絡 分組,這樣,由在客戶端105處的應用338a-338n生成的外出網(wǎng)絡 分組在發(fā)送之前根據(jù)應用338a-338n的類型和/或優(yōu)先權被客戶端 105優(yōu)先化。例如,應用338a可以生成VoIP通信的實時數(shù)據(jù),諸如 經(jīng)由到網(wǎng)關340的SSL連接的TCP/IP會話在UDP上的RTP??蛻舳?105通過使用本發(fā)明的技術,可以在諸如非實時數(shù)據(jù)通信應用那樣的 其它應用之前,優(yōu)先化應用338a的實時數(shù)據(jù)通信.這個技術可以稱 為服務質(zhì)量(QoS)網(wǎng)絡,其中在諸如交換機和路由器的中間網(wǎng)絡設備 中進行網(wǎng)絡業(yè)務優(yōu)先化。
在i兌明性方法500的步驟555,客戶端105可以對于應用338a-338n、網(wǎng)關340、對等計算設備、和網(wǎng)絡堆棧的任何網(wǎng)絡層透明地截 取一個或多個應用338a-338n的網(wǎng)絡分組。這樣,本發(fā)明的技術支 持客戶端105處的任何類型的應用338a-338n.在一些實施例中,網(wǎng) 絡分組由分組捕獲機構(gòu)360經(jīng)由代理326或濾波器322被截取。應 用338a-338n的任何進入和/或外出網(wǎng)絡分組可以由本發(fā)明的遠程接 入客戶端120截取.
在步驟560,在步驟555截取的網(wǎng)絡分組可被存儲在隊列540a-540n。在一個實施例中,網(wǎng)絡分組在步驟565和570優(yōu)先化網(wǎng)絡分 組之前被存儲在臨時隊列540a-540n.在其它實施例中,網(wǎng)絡分組在 步驟565和/或570給網(wǎng)絡分組排優(yōu)先權之后被存儲在所確定的隊列 540a-540n或與應用338a-338n關聯(lián)的隊列540a-540n。
在步猓565,本發(fā)明的遠程接入客戶端120確定網(wǎng)絡分組與應用 338a-338n的關系,以便確定優(yōu)先權和應用任何基于優(yōu)先權的策略 520.客戶端105,諸如經(jīng)由代理326,可以通過任何適當?shù)难b置和/ 或機構(gòu)把網(wǎng)絡業(yè)務與應用338a-338n相關聯(lián).在一些實施例中,代 理326通過網(wǎng)絡分組的任何內(nèi)容,諸如在網(wǎng)絡的有效負栽中任何首 部、字段、或數(shù)據(jù)的類型和內(nèi)容,來識別如從應用338a-338n生成 的網(wǎng)絡分組.在其它實施例中,網(wǎng)絡分組通過把來自路由表538的 信息,諸如源和目的地地址和IP地址及端口號與網(wǎng)絡分組的IP地 址和端口號相匹配而與應用338a-338n相關聯(lián)。在一些實施例中, 代理326,諸如經(jīng)由幀監(jiān)視器360,可以對于分組執(zhí)行檢驗和,以驗 證所識別的應用實際上生成分組,
另外,遠程接入客戶端120可以確定與網(wǎng)絡分組關聯(lián)的應用 338a-338n是在客戶端105的前臺還是在后臺運行。而且,遠程接入 客戶端120可以通過客戶端105的操作系統(tǒng)確定分配給應用338a-338n的任何優(yōu)先權,諸如處理任務優(yōu)先權。在其它實施例中,遠程 接入客戶端120可以確定應用338a-338n的任何其它特性和統(tǒng)計資 料,諸如尺寸、存儲器使用、總的執(zhí)行時間、和/或使用的頻率.本 領域技術人員將認識和理解,本技術使用的應用的各種特性可用于 提供客戶端端應用知道的網(wǎng)絡通信優(yōu)先化。
在步驟570,本發(fā)明的遠程接入客戶端120根據(jù)在步驟565與分 組關聯(lián)的應用338a-338n表示對于截取的和排隊的網(wǎng)絡分組的優(yōu)先 權。在一個實施例中,代理326使用策略520按照由策略520規(guī)定 的或表示的優(yōu)先化法則施加優(yōu)先權到應用338a-338n的網(wǎng)絡分組。 在一些實施例中,代理326可以使用應用338a-338n的特性,諸如 運行在前臺或后臺,以表示應用338a-338n的網(wǎng)絡分組的優(yōu)先權. 在其它實施例中,代理326可以使用策略520與應用338a-338n的 特性的任何組合,以表示應用338a-338n的網(wǎng)絡分組的優(yōu)先權,
在一些實施例中,代理326向濾波器322表示用于管理分組隊列 的優(yōu)先權,以便應用表示的優(yōu)先權。代理326可以通過任何適當?shù)?裝置和/或機構(gòu),諸如經(jīng)由應用編程接口 (API),諸如IOCTL接口, 或本領域技術人員已知的、任何類型和/或形式的接口,來把網(wǎng)絡分 組的優(yōu)先權傳送到濾波器322.在一個實施例中,濾波器322通過名
稱不知道應用338a-338n,但可以經(jīng)由路由表538把優(yōu)先權與應用 338a-338n的兩絡分組相關聯(lián)。對應于網(wǎng)絡分組的應用338a-338n可 以通過源和目的地標識符的任何組合,諸如IP地址和端口號,被識 別.這樣,在一些實施例中,代理326通過路由信息而不是應用名 稱,向濾波器322表示優(yōu)先權,在其它實施例中,代理326向濾波 器322提供在應用338a-338n之間諸如通過應用名稱或進程id到路 由表538中的路由信息的映射.
根據(jù)對于應用338a-338n的表示的優(yōu)先權,在一些實施例中,濾 波器322可以在優(yōu)先權的支持下將網(wǎng)絡分組放置、安排、或協(xié)調(diào)到 隊列540a-540n中。在一個實施例中,濾波器322可以把網(wǎng)絡分組 從臨時隊列540a-540n或從存儲器或前臺存儲裝置移動到與應用 338a-338n關聯(lián)的隊列540a-540n、與優(yōu)先權關聯(lián)的隊列540a-540n、 或與應用和優(yōu)先權關聯(lián)的隊列540a-540n.例如,在一個實施例中, 所有的高優(yōu)先權網(wǎng)絡業(yè)務可被放置在高優(yōu)先權隊列540a,并按照應 用338a-338n的優(yōu)先權的次序,諸如優(yōu)先于其它應用338a-338n的 實時數(shù)據(jù)應用338a-338n按次序排列.在一些實施例中,網(wǎng)絡分組 可以根據(jù)網(wǎng)絡分組由分組捕獲機構(gòu)365被截取的時間,諸如以FIFO 方式按次序被安排在優(yōu)先權隊列540a-540n中。在再一個實施例中, 一個隊列540a-540n可以用于通過濾波器322的優(yōu)先化.每個網(wǎng)絡 分組可以相對于所有其它的截取的網(wǎng)絡分組以優(yōu)先權次序被放置和 排列,以便逐個分組地提供對于所有的應用338a-338n和截取的網(wǎng) 絡分組的優(yōu)先化。本領域技術人員將認識和理解,網(wǎng)絡分組可在各 種優(yōu)先權隊列540a-540n,諸如高、中、低,或通過任何其它粒度被 放置和,并且以實施這里描述的本發(fā)明的操作的任何適當?shù)姆绞皆?隊列中被放置或被排列,
在一個實施例中,對于應用338a-338n的網(wǎng)絡分組被放置在與應 用338a-338n關聯(lián)的隊列540a-540n。例如,對于傳送到第一目的地 IP地址和第一目的地端口的應用的所截取的網(wǎng)絡分組可被放置在第 一隊列540a。在另一個實施例中,對于諸如電子郵件或話音應用的 一種類型的應用338a-338n的所有的網(wǎng)絡分組或?qū)τ谟芍T如RTP或 UDP的應用338a-338n使用的一種類型的協(xié)議的所有的網(wǎng)絡分組可被 放置在隊列540a-540n中,用于優(yōu)先化一個或多個應用的網(wǎng)絡分組。
例如,在線合作關聯(lián)的應用338a-338n可在第一隊列540a中被放置 和優(yōu)先化,用于合作關聯(lián)的應用.第二隊列540b可用于電子郵件關 聯(lián)的應用338a-338n.在另一個例子中,隊列540a可用于傳送實時 數(shù)據(jù)或通過使用RTP和/或UDP協(xié)議傳送應用338a-338n.在再一個 例子中,隊列540a可用于通過使用諸如ICA或RDP的遠程顯示協(xié)議 進行通信的應用338a-338n。
在與由特定的應用338a-338n、通過應用338a-338n的類型或類 別,或通過協(xié)議組織的、每個應用相關的隊列540a-540n內(nèi),網(wǎng)絡 分組可以通過生成它們的應用338a-338nl特性,例如前臺應用、網(wǎng) 絡分組的尺寸、或網(wǎng)絡分組被截取的時間被進一步優(yōu)先化。在一些 實施例中, 一個或多個隊列540a-540n可用于被截取的但沒有優(yōu)先 化的網(wǎng)絡分組,因為策略520不存在或施加到網(wǎng)絡分組,或策略520 表示忽略或不處理網(wǎng)絡分組,用于優(yōu)先化。本領域技術人員將認識 和理解,網(wǎng)絡分組以基于優(yōu)先權的方式被放置和被放置在隊列 540a-540n的各種方式與應用338a-338n、應用338a-338n的類型、 或由應用338a-338n使用的協(xié)議有關,以及優(yōu)先權可以是基于對于 客戶端105規(guī)定的策略520。
在說明性方法550的步驟575,網(wǎng)絡分組按照對于網(wǎng)絡分組的確 定的優(yōu)先權從隊列540a-540n被傳送。在一些實施例中,網(wǎng)絡分組 被組織成優(yōu)先權隊列540a-540n,這樣,最高優(yōu)先權隊列540a-540n 的網(wǎng)絡分組首先被傳送,然后下一個最高的優(yōu)先權隊列第二,等等. 在其它實施例中,隊列540a-540n由應用338a-338n被組織,所以, 在步驟575,本發(fā)明根據(jù)應用338a-338n的各個優(yōu)先權傳送來自隊列 540a-540n的網(wǎng)絡分組。不管隊列540a-540n組織和管理,本領域技 術人員將認識和理解,本發(fā)明的遠程接入客戶端將以按照或遵從確 定的優(yōu)先權的方式傳送來自隊列的網(wǎng)絡分組,確定的優(yōu)先權又是基 于或從客戶端的策略520得出的,
在一些實施例中,本發(fā)明的遠程接入客戶端120在確定哪些分組 從哪個隊列進行傳送時考慮其它網(wǎng)絡因素.例如,遠程接入客戶端 120可以接收網(wǎng)絡配置的指示,諸如接收用于與應用338a-338n關聯(lián) 的TCP連接的零窗口尺寸,在另一個例子中,遠程接入客戶端120 可能認識到大量到特定的目的地的重發(fā).這樣,在一些實施例中,
遠程接入客戶端120可能減緩或不傳送與其它網(wǎng)絡因素關聯(lián)的網(wǎng)絡 分組,諸如擁塞,即使在網(wǎng)絡分組比在隊列540a-540n中的其它網(wǎng) 絡分組,具有更髙的優(yōu)先權。因此,客戶端105根據(jù)應用338a-338n 和按照用于客戶端105的任何策略520,和鑒于任何網(wǎng)絡統(tǒng)計資料與 在網(wǎng)絡上發(fā)生的其它因素,來控制和管理在應用338a-338n上客戶 端105的網(wǎng)絡通信的優(yōu)先化.
再一方面和現(xiàn)在參照圖6A和6B,本發(fā)明涉及提供網(wǎng)絡中斷保護 技術,以便得到持久的和可靠的連接性.圖6A顯示以上結(jié)合困3A 討論的環(huán)境300.環(huán)境300顯示諸如在圖1A-1C、 2A、或5A上顯示 的任何的計算設備102和網(wǎng)關340的網(wǎng)絡堆棧310a和310b。每個網(wǎng) 絡堆棧310a-310b可包括一個或多個網(wǎng)絡層,諸如在幀網(wǎng)絡層之上 的TCP/IP網(wǎng)絡層,正如本領域技術人員將認識和理解的.雖然網(wǎng)絡 堆棧310a-310b在圖6A的環(huán)境300中被顯示為具有某個組的網(wǎng)絡 層,但本領域技術人員將認識和理解,網(wǎng)絡堆棧310a-310b可以具 有以任何適當?shù)慕M合的任何類型和/或形式的網(wǎng)絡層,以及每個網(wǎng)絡 堆棧310a-310b可以相對于其它網(wǎng)絡堆棧具有每個層的不同的形 式。
網(wǎng)絡堆棧310a-310b可被認為具有網(wǎng)絡堆棧的第一部分605a-605b和網(wǎng)絡堆棧的第二部分610a-610b。如困6A的示例性網(wǎng)絡堆棧 310a-310b所示,網(wǎng)絡堆棧的第一部分605a-605b包括在TCP網(wǎng)絡層 處和下面的網(wǎng)絡層.第二部分610a-610b可包括在TCP網(wǎng)絡層,諸 如通過SSL的UDP協(xié)議層上面的那些網(wǎng)絡層。雖然第一部分605a-605b和第二部分610a-610b被顯示為在TCP層上被分配的、分段的、 或劃分的,但在實施本發(fā)明的網(wǎng)絡中斷保護技術中,第一部分和第 二部分可在較高的或較低的所劃分層上形成,正如本領域技術人員 將認識和理解的,
圖6A上顯示的網(wǎng)絡堆棧310a-310b可以表示在客戶端105處的 應用338a-338b,諸如圖5A所示的客戶端,以建立到第二計算設備 102b,或替換地到網(wǎng)關340的對等SSL VPN連接??蛻舳?05可以 是移動客戶端,諸如筆記本電腦、個人數(shù)字助理(PDA)、智能電話、 或任何類型的移動計算或通信設備??蛻舳?05可以傳送實時數(shù)據(jù), 諸如經(jīng)由UDP協(xié)議或在UDP上的RTP,經(jīng)由對于對等設備102b或網(wǎng)
關340建立的SSL會話的VoIP通信.在一個實施例中,遠程接入客 戶端120的代理326建立和保持到網(wǎng)關340或到對等計算設備102b 的SSL或SSL VPN會話.代理326可以工作在用戶模式332,和可以 操控任何網(wǎng)絡層和與網(wǎng)絡堆棧310a-310b的第二部分610a-610b關 聯(lián)的協(xié)議處理,以及任何應用層協(xié)議,作為基于TCP/IP網(wǎng)絡104, 網(wǎng)絡堆棧310a-310b的第二部分610a-610b在SSL上的UDP會話可 以通過形成網(wǎng)絡堆棧310a-310b的第一部分605a-605b的TCP/IP堆 棧被傳送.鑒于本發(fā)明的遠程接入客戶端120,諸如圖1A或5A所示 的,濾波器322可以是在網(wǎng)絡堆棧310a-310b的第一部分605a-605b 內(nèi)工作在內(nèi)核模式332的網(wǎng)絡驅(qū)動器,
本發(fā)明使用如圖6B的說明性方法650所顯示的網(wǎng)絡中斷保護技 術,以便在網(wǎng)絡級別連接斷開,諸如對于網(wǎng)絡堆棧310a-310b的第 一部分605a-605b的任何類型和/或形式的網(wǎng)絡中斷時,保持網(wǎng)絡堆 棧310a-310b的第二部分610a-610b。本發(fā)明的網(wǎng)絡中斷保護技術, 可以對于客戶端105的應用338a-338fl、客戶端105的用戶、在網(wǎng)絡 堆棧310a-310b的第一部分605a-605b以上的一個或多個網(wǎng)絡層、 和網(wǎng)關340或?qū)Φ扔嬎阍O備102b、和它們的各個網(wǎng)絡堆棧310a-310b 的任何部分透明地執(zhí)行。在一個實施例中,網(wǎng)絡中斷被保護,而不 用通知客戶端的用戶網(wǎng)絡被中斷或會話被斷開。
在說明性方法650的概觀中,在步驟665,客戶端105通過在客 戶端和諸如對等計算設備或網(wǎng)關的另 一個設備之間的網(wǎng)絡連接經(jīng)由 至少第一協(xié)議建立會話。這樣,網(wǎng)絡堆棧310a-310b在客戶端105 處被建立或被使用,網(wǎng)絡堆棧310a-310b具有笫一部分605a-605b 和第二部分610a-610b。在步驟660,檢測網(wǎng)絡連接的中斷,該網(wǎng)絡 連接的中斷使得網(wǎng)絡堆棧310a-310b的第一部分605a-605b解除或 被中斷成不能使用或不能繼續(xù)使用。在步驟665,本發(fā)明在中斷期間 保持網(wǎng)絡堆棧310a-310b的第二部分610a-610b和保持與第二部分 610a-610b的網(wǎng)絡層關聯(lián)的會話。
在中斷期間,在步驟670,與網(wǎng)絡堆棧310a-310b的第二部分 610a-610b關聯(lián)的任何網(wǎng)絡分組可以被排隊。在步驟675,網(wǎng)絡堆棧 310a-310b的第一部分605a-605b被重新建立,或否則從網(wǎng)絡中斷進 行接收。雖然網(wǎng)絡堆棧310a-310b的第一部分605a-605b被重新建
立,但本發(fā)明保持第二部分610a-610b和它的會話,在步驟680,允 許通過鏈接或重新關聯(lián)網(wǎng)絡堆棧310a-310b的第二部分610a-610b 與第一部分605a-605b,來繼續(xù)進行會話.網(wǎng)絡連接和/或會話可以 在步驟680自動重新鑒權。在步驟685,說明性方法可以傳送任何排 隊的網(wǎng)絡分組并繼續(xù)透明地進行會話,就好像沒有發(fā)生網(wǎng)絡中斷那 樣。
在說明性方法655的實施例中,第一計算設備102a可以通過適 當?shù)难b置和/或機構(gòu)和使用任何類型和/或形式的基于連接的協(xié)議來 建立與諸如對等計算設備102b或網(wǎng)關340那樣的笫二設備的網(wǎng)絡連 接。例如,網(wǎng)絡連接可以經(jīng)由在TCP/IP網(wǎng)絡上的TCP連接或通過在 IPX/SPX網(wǎng)絡上的SPXP連接被建立.在一些實施例中,網(wǎng)絡連接可 以由在客戶端處的任何應用338a-338n,諸如圖5A所示的任何應用 發(fā)起。例如,遠程顯示客戶端,諸如Citrix Systems公司的ICA客 戶端或微軟公司的遠程顯示客戶端,可以發(fā)起或建立網(wǎng)絡連接。在 其它實施例中,說明性步驟665的網(wǎng)絡連接可以經(jīng)由代理326、濾波 器322或遠程接入客戶端120的任何其它部分被發(fā)起和/或被建立. 在一個實施例中,網(wǎng)絡連接的建立形成網(wǎng)絡堆棧310a-310b的第一 部分605a-605b。在其它實施例中,網(wǎng)絡堆棧310a-310b的第一部分 605a-605b,或它的部分,在客戶端105啟動后經(jīng)由到網(wǎng)絡104的連 接被建立.
在一些實施例中,網(wǎng)絡堆棧310a-310b的第二部分610a-"0b 通過經(jīng)由在網(wǎng)絡連接上的任何類型和/或形式的協(xié)議,諸如ICA或RDP 的遠程顯示協(xié)議建立一個或多個會話,諸如SSL會話,而被形成. 會話可以經(jīng)由客戶端的應用338a-338b或遠程接入客戶端102被建 立。在一個實施例中,會話可以對應于與對等計算設備102b或網(wǎng)關 340的隧道或網(wǎng)關會話。在另一個實施例中,會話可以是任何類型的 交互會話,諸如,例如經(jīng)由信令協(xié)議SIP建立的媒體會話。例如, 網(wǎng)絡堆棧310a-310b的第二部分610a-610b可包括VoIP通信會話, 諸如由圖2B的說明性方法260建立的會話。另外,可以有與網(wǎng)絡堆 棧310a-310b的第二部分610a-610b關聯(lián)的多個會話,例如,SSL或 SSL VPN會話可以形成一個會話,而第二個會話,諸如經(jīng)由在UDP上 的RTP的媒體會話,可以形成第二個會話。另外,在網(wǎng)絡堆棧310a-310b的任何網(wǎng)絡層上,在客戶端105處的一個或多個應用 338a-338n可以建立與對等計算設備102b的應用級別會話.在一個 實施例中,遠程接入客戶端120的代理326負責建立和保持網(wǎng)絡堆 棧310a-310b的笫二部分610a-610b和一個或多個相關的會話,
在本發(fā)明的說明性方法650的步驟660,檢測網(wǎng)絡連接的中斷。 在一個實施例中,網(wǎng)絡中斷可能是由于移動客戶端在網(wǎng)絡與網(wǎng)絡分 段之間的漫游造成的,這在一些實施例中使得客戶端105得到新的 網(wǎng)絡IP地址和/或主機名稱。在一些實施例中,這種中斷將斷開網(wǎng) 絡堆棧310a-310b的第一部分605a-605b,諸如,例如使得TCP或 SPX連接斷開. 一方面,該中斷使得網(wǎng)絡堆棧310a-310b的第一部分 605a-605b,或它的任何部分被解除,或否則需要重新建立、重新連 接、重新配置、或重新構(gòu)建.例如,在一些實施例中,網(wǎng)絡堆棧的 IP層在TCP層重新建立時可以保持完整。在一個實施例中,任何TCP 關聯(lián)的驅(qū)動器可能需要被重新啟動。在其它實施例中,即使在網(wǎng)絡 連接中斷時TCP/IP層是完整的,僅僅需要建立新的TCP連接。在其 它實施例中,TCP/IP層是完整的但需要為新的網(wǎng)絡或網(wǎng)絡分段重新 配置它自己,諸如改變客戶端105的IP地址.本領域技術人員將認 識和理解,網(wǎng)絡連接被中斷和沖擊或影響網(wǎng)絡堆棧的第一部分的各 種方式。
在一些實施例中,代理326,或遠程接入客戶端120的任何其它 部分可以通過任何適當?shù)难b置和/或機構(gòu)檢測網(wǎng)絡中斷.在一個實施 例中,代理326可以通過在呼叫或?qū)W(wǎng)絡堆棧310a-310b的第一部 分605a-605b執(zhí)行API調(diào)用時接收錯誤消息或故陣而確定網(wǎng)絡中 斷。例如,對于第二部分610a-610b由代理326保存的SSL會話依 賴于或取決于網(wǎng)絡堆棧310a-310b的第一部分605a-605b的TCP連 接。當代理326經(jīng)由SSL會話進行協(xié)商時,代理326可以接收表示 與TCP連接的問題的錯誤或故陣消息.在其它實施例中,代理326 可以接收來自網(wǎng)絡堆棧310a-310b的第一部分605a-605b的、表示 網(wǎng)絡中斷的任何網(wǎng)絡層的亊件或消息。本領域技術人員將認識和理 解,可以檢測網(wǎng)絡中斷的各種方式。
在說明性步驟665,在一些實施例中,在檢測到網(wǎng)絡中斷時,本 發(fā)明的代理或遠程接入客戶端120的任何其它部分在中斷期間保持
網(wǎng)絡堆棧310a-310b的第二部分610a-610b。例如,雖然由代理326 保持的基于SSL會話取決于根本的TCP連接,但代理326通過對TCP 連接的中斷保持SSL會話打開或激活。由于可以有與網(wǎng)絡堆棧 310a-310b的第二部分610a-610b的一個或多個層關聯(lián)的多個會話, 在一些實施例中,代理326保持多個會話的一個或多個或全部會話 打開或激活,雖然網(wǎng)絡堆棧310a-310b的第一部分605a-605b中斷,
在說明性方法650的步猓670,本發(fā)明的遠程接入客戶端120, 在一些實施例中,在網(wǎng)絡中斷期間將與網(wǎng)絡堆棧310a-310b的笫二 部分610a-610b關聯(lián)的任何協(xié)議的一個或多個網(wǎng)絡分組進行排隊. 遠程接入客戶端120可以使用任何類型和/或形式的排隊機構(gòu),諸如 在圖5A上顯示的任何隊列540a-540n,在其它實施例中,遠程接入 客戶端120在中斷期間可以丟棄網(wǎng)絡分組,諸如與有損協(xié)議關聯(lián)的 任何分組,諸如用于話音通信的在UDP上的RTP.在某些情形下,可 能希望丟棄諸如UDP分組那樣的分組,以便減小諸如在話音通信中 的等待時間和質(zhì)量問題。在另外的實施例中,遠程接入客戶端120 可以將一些網(wǎng)絡分組排隊和丟棄其它網(wǎng)絡分組。在附加的實施例 中,遠程接入客戶端120可以將網(wǎng)絡分組排隊和在預定的時間間隔 后丟棄一些或所有的網(wǎng)絡分組,遠程接入客戶端120可以使用策略 520來確定哪些網(wǎng)絡分組排隊和/或丟棄。例如,第一應用338a的網(wǎng) 絡分組可以進行排列,而第二應用338b的網(wǎng)絡分組被丟棄,在其它 實施例中,遠程接入客戶端120可以使用任何網(wǎng)絡統(tǒng)計資料或任何 網(wǎng)絡業(yè)務檢查技術,例如本領域技術人員已知的狀態(tài)檢查,來確定
在中斷期間是否排隊和/或丟棄網(wǎng)絡分組,
在說明性方法650的步驟675,重新建立網(wǎng)絡堆棧310a-310b的 第一部分605a-605b,而網(wǎng)絡堆棧310a-310b的第二部分610a-610b 被保持,以及保持網(wǎng)絡堆棧310a-310b的第二部分610a-610b的任 何想要的會話。網(wǎng)絡堆棧310a-310b的第一部分605a-605b可以通 過任何適當?shù)难b置和/或機構(gòu)被重新建立。例如,客戶端105可以通 過諸如登錄到用于漫游的移動客戶端105的新網(wǎng)絡而重新建立到網(wǎng) 絡的TCP/IP連接。在其它實施例中,遠程接入客戶端120,諸如經(jīng) 由代理326或濾波器322,重新建立網(wǎng)絡堆棧310a-310b的第一部分 605a-605b。例如,代理326可以發(fā)起和建立新的TCP連接。在重新
建立第一部分605a-605b時,網(wǎng)絡堆棧310a-310b的第二部分 610a-610b與第一部分605a-605b鏈接、與其重新關聯(lián)、或開始使用 或繼續(xù)使用其來重新建立網(wǎng)絡堆棧310a-310b.在一些實施例中,代 理326通過任何網(wǎng)絡層的亊件被告知以第一部分605a-605b已被 重新建立,和在其它實施例中,可以以任何預定的頻率輪詢,以便 確定笫一部分605a-605b被重新建立,例如,代理326可以檢驗TCP 連接是否激活或是否可被重新連接。
在一些實施例中,在步驟680,遠程接入客戶端120,諸如代理 326,可以自動重新鑒權客戶端105,或客戶端105的用戶,用于網(wǎng) 絡連接,諸如對于網(wǎng)絡堆棧310a-310b的第一部分605a-605b的TCP 連接。例如,遠程接入客戶端120可以使用客戶端105的用戶的任 何網(wǎng)絡關聯(lián)的證書來自動重新鑒權到網(wǎng)絡104的客戶端105,另外, 遠程接入客戶端120可以自動重新鑒權客戶端105或客戶端105的 用戶,用于與網(wǎng)絡堆棧310a-310b的第二部分610a-610b關聯(lián)的任 何會話。例如,在代理326與網(wǎng)關340或?qū)Φ扔嬎阍O備102c之間的 SSL會話可以被重新鑒權。
在另一個例子中,應用338a可以接入主機服務、web服務器、 或使用鑒權證書以便接入的應用服務器.代理326可以通過使用與 應用關聯(lián)的鑒權證書來自動重新鑒權對于相應的服務或服務器的應 用338a。在一些實施例中,遠程接入客戶端120可以在多個級別上 重新鑒權客戶端和/或客戶端105的用戶,諸如用于網(wǎng)絡接入和/或 TCP連接、SSL或SSL VPN會話、和/或任何應用級別會話,諸如媒 體互動用戶會話,例如VoIP電話會話。而且,在步驟685之前的任 何時間、在步驟685期間,例如在傳送排隊的網(wǎng)絡分組之后但在繼 續(xù)進行其它通信之前、和在步驟865之后,可響應于對于來自對等 計算設備,諸如服務器或網(wǎng)關340,的鑒權的請求,可以重新鑒權遠 程接入客戶端120。
在說明性方法650的步驟685,本發(fā)明的遠程接入客戶端120繼 續(xù)使用網(wǎng)絡堆棧的第二部分610a-610b的一個或多個會話。如果任 何網(wǎng)絡堆棧已被排列或在步驟670保持排隊,則遠程接入客戶端120 傳送排隊的網(wǎng)絡分組并繼續(xù)傳送客戶端105的任何網(wǎng)絡分組,諸如 通過客戶端105的一個或多個應用338a-338n生成的或發(fā)送到其的
網(wǎng)絡分組。這樣,本發(fā)明的網(wǎng)絡中斷保護技術對漫游的移動計算解 決方案提供無縫的和透明的解決方案,并用于一般地提供可靠的和 持久的網(wǎng)絡連接和接入.
在VoIP通信的例子中,本發(fā)明的說明性方法650將減小由于網(wǎng) 絡中斷造成的電話呼叫失敗的次數(shù)和改進VoIP的使用和體驗。VoIP 用戶不需要由于在網(wǎng)絡可得到性方面的臨時網(wǎng)絡中斷而重新連接電 話呼叫,因為本發(fā)明的遠程接入客戶端120將自動保持會話并重新 連接到網(wǎng)絡,另外,本發(fā)明的遠程接入客戶端120將自動重新鑒權 連接和會話,用于在網(wǎng)絡中斷后提供安全性.而且,本發(fā)明的為了 保護技術對于以下項目是有用的1)在網(wǎng)絡中斷過程中繼續(xù)自動進 行亊務、命令、或操作,2)在網(wǎng)絡中斷過程中保持會話關聯(lián)的上下 文和緩沖存儲器,和3)自動處理由于網(wǎng)絡中的改變造成的客戶端的 網(wǎng)絡地址的改變.
通過提供可靠的和持久的連接,本發(fā)明還避免斷開作為在第一計 算設備102a與計算設備102b,諸如圖1C所示的客戶端105a和105b 之間作為一部分功能的亊務、命令或操作.例如,使用Windows Explorer的文件復制操作沒有被設計成在網(wǎng)絡連接中斷之后繼續(xù)工 作。在客戶端105處的用戶可以使用Windows Explorer的文件復制 特征,把文件從客戶端105復制到服務器102c。因為文件的尺寸, 這個操作可能花費相當大的時間間隔完成.如果在文件復制到服務 器的操作的中間期間,在客戶端105與服務器之間的網(wǎng)絡連接有斷 開,則文件復制失敗. 一旦網(wǎng)絡連接被重新建立,用戶就需要啟動 來自Windows Explorer的另 一個文件復制操作,把文件從客戶端105 復制到服務器。在本發(fā)明下,用戶不需要啟動另一個文件復制搮作, 網(wǎng)絡連接按照本發(fā)明的網(wǎng)絡中斷保護技術被重新建立,如圖6B所 示'這樣,將不把網(wǎng)絡連接的斷開通知Windows Explorer的文件復 制,所以不會失敗。遠程接入客戶端120會重新建立任何連接和發(fā) 送任何排隊的數(shù)據(jù),這樣,操作可以繼續(xù)進行而不失敗.遠程接入 客戶端120保持因為網(wǎng)絡連接的斷開沒有被傳送到服務器的、與文 件復制操作關聯(lián)的數(shù)據(jù)隊列。 一旦網(wǎng)絡連接被重新建立,遠程接入 客戶端120就可以發(fā)送排隊的數(shù)據(jù),然后繼續(xù)傳送與在預期的過程 中文件復制操作關聯(lián)的數(shù)據(jù).
雖然本發(fā)明的這個方面是對于文件復制操作描述的,但本領域技
術人員將認識到,在笫一計算設備102a與第二計算設備102b之間 執(zhí)行的任何操作、亊務、命令、功能等等可被保持和繼續(xù)進行,而 不因為網(wǎng)絡連接中斷而失敗,而且不用客戶端105或客戶端105的 用戶認識到存在中斷或有中斷的通知,另外,亊務或操作可以對于 應用338、網(wǎng)關340、第二計算設備102c和網(wǎng)絡堆棧310a-310b的 第二部分610a-610b的任何部分被透明地保持和繼續(xù)進行,
通過給客戶端105提供與對等計算設備102b或網(wǎng)關340的可靠 的和持久的連接,本發(fā)明通過在網(wǎng)絡連接斷開時保持用戶會話而避 免在對等體處打開與應用338的新的用戶會話的過程,諸如在服務 器處的主機服務。對于在對等計算設備之間的每個用戶會話,每個 計算設備可以保持會話特定的上下文和緩沖存儲器,以及其它用戶 會話的那個實例關聯(lián)的應用特定的機構(gòu)。對于建立的每個新的用戶 會話,這些會話特定的上下文和緩沖存儲器需要被恢復或重新建 立,以便反映新的用戶會話。例如,在客戶端105處的用戶可以具 有與具有web服務器或web應用的服務器102c的http會話。服務 器102c可以保持對于提供與客戶端105的http會話的這個實例特 定的上下文。上下文可被存儲在服務器的存儲器、服務器的文件、 數(shù)據(jù)庫或與提供服務器102c的功能關聯(lián)的其它部件中。并且,客戶 端105可以具有對于http會話的實例特定的本地上下文,諸如用于 跟蹤對于web服務器的未完成請求的機構(gòu)。這個上下文可被存儲在 客戶端105的存儲器、客戶端105的文件、或與客戶端105接口的 其它軟件部件中。如果在客戶端105與服務器102c之間的連接不是 持久的,則需要在服務器102c和客戶端105處用新會話特定的上下 文來建立新的用戶會話。本發(fā)明保持會話,這樣,不需要重新建立 新的會話,以及新的特定會話上下文.
本發(fā)明在網(wǎng)絡級連接斷開時保持用戶會話和不用通知客戶端的 用戶會話被斷開。在本發(fā)明的這方面的操作時,客戶端105建立 到對等計算設備的連接.經(jīng)由該連接,建立在客戶端105與服務器 之間的會話。遠程接入客戶端120可以存儲和保存任何會話關聯(lián)的 消息,諸如鑒權證書,和對于建立的會話的客戶端105和主服務器 102c上下文。在檢測到網(wǎng)絡連接的中斷時,遠程接入客戶端120可
以重新建立網(wǎng)絡堆棧310a-310b的第一部分605a-605b,而同時保持 網(wǎng)絡堆棧的第二部分610a-610b.網(wǎng)絡連接中斷可以引起由在客戶端 105與服務器102c之間的會話所使用的基礎TCP/IP連接的斷開.然 而,由于網(wǎng)絡堆棧310a-310b的第二部分610a-610b被保持,會話 可以在網(wǎng)絡連接被重新建立后被重新建立和/或繼續(xù)進行,而不用通 知客戶端105的用戶會話被斷開,因此,通過使用本發(fā)明的網(wǎng)絡 中斷保護技術,由網(wǎng)絡連接中斷造成的會話斷開有效地對于用戶是 隱蔽的。
而且,通過提供可靠的和持久的連接,本發(fā)明還使得客戶端105 能夠經(jīng)過不同的網(wǎng)絡拓樸,而不用在客戶端105處重新啟動會話或 應用338。例如,客戶端105可以是具有無線網(wǎng)連接的筆記本電腦。 當客戶端105從第一無線網(wǎng)移動到第二無線網(wǎng)時,客戶端的網(wǎng)絡連 接可能與第一無線網(wǎng)臨時斷開,因為在建立了與第二無線網(wǎng)的網(wǎng)絡 連接,第二無線網(wǎng)可以分配新的網(wǎng)絡標識符給客戶端105,諸如主機 名稱或互聯(lián)網(wǎng)協(xié)議地址.這個新的網(wǎng)絡標識符可以不同于由第一無 線網(wǎng)分配給客戶端105的網(wǎng)絡標識符.在另一個例子中,客戶端105 可以物理地通過以太網(wǎng)電纜連接到網(wǎng)絡上的端口 .物理連接可被拔 去,客戶端105移動到另一個位置,以將插入到網(wǎng)絡的不同的端口。 這造成網(wǎng)絡連接的中斷,并有可能造成分配的網(wǎng)絡標識符的改變. 不利用本發(fā)明,在對等計算設備之間的任何會話由于網(wǎng)絡拓樸的改 變、網(wǎng)絡連接的中斷,和/或分配的網(wǎng)絡標識符的改變,可能需要重 新啟動。通過這里描述的方法和系統(tǒng),本發(fā)明的遠程接入客戶端120 保持用于客戶端的網(wǎng)絡連接和自動地重新建立客戶端105的網(wǎng)絡連 接,包括處理網(wǎng)絡拓樸和網(wǎng)絡標識符的改變??蛻舳?05,和在客戶 端105處的任何應用或會話,可以繼續(xù)工作,就好像沒有網(wǎng)絡連接 中斷或網(wǎng)絡標識符改變那樣。而且,在客戶端105處的用戶可能沒 有認識到,有任何斷開或改變,以及客戶端105沒有接收到這樣的 斷開的任何通知.
另一方面,本發(fā)明的任何技術,諸如圖2B、 3B、 3C、 4、 5B和 6B的說明性方法,可以以一個或多個互相組合被實施。在一個實施 例中,對等路由技術可以用虛假確認和/或MTU調(diào)節(jié)技術來實施.這 提供客戶端通信實時數(shù)據(jù),諸如VoIP,以經(jīng)由更加優(yōu)化和直接的路
由連接到對等體和經(jīng)由安全SSL/TCP/IP連接上的UDP傳送實時數(shù) 據(jù),而同時避免由于TCP的任何可靠性機構(gòu)造成的任何等待時間和 減小由于加密開銷造成的分段。另外,這個實施例還可以與客戶端 端應用知道的優(yōu)先化技術和/或網(wǎng)絡中斷保護技術相組合.這樣,安 全實時數(shù)據(jù)通信可以從客戶端以比客戶端的其它應用更高的優(yōu)先權 被傳送,以便改進諸如VoIP的實時體驗的質(zhì)量.網(wǎng)絡中斷技術允許 移動VoIP電話,諸如筆記本電腦的軟電話、在網(wǎng)絡接入點之間漫游、 和自動繼續(xù)進行會話。
本發(fā)明的技術是對于網(wǎng)絡通信最優(yōu)化的互相補充,諸如,例如通 過SSL VPN網(wǎng)關的VoIP通信。這樣,l)對等路由技術,2)虛假確 認技術,3)有效負栽移位技術,4)MTU調(diào)節(jié)技術,5)客戶端端應用知 道的技術,和6)網(wǎng)絡中斷保護技術中的每一項可以通過本發(fā)明的一 1、孰夕1、" r四汰不V取優(yōu)Ui艱頭應1> 可卞路田" 夂個,2乂風1^確 認技術,3)有效負栽移位技術,4)MTU調(diào)節(jié)技術,5)客戶端端應用知 道的技術,和/或6)網(wǎng)絡中斷保護技術。
在本發(fā)明的另一個說明性例子中,在線會議、合作、和/或桌面 共享業(yè)務,諸如GoToMeeting. com, WebEx. co邁或LiveMeeting. com
的主機業(yè)務在本發(fā)明的一個或多個實施例中可使用本發(fā)明的技術. 主機業(yè)務可以使用網(wǎng)關340和說明性方法260的技術,來實行在會 議主持者的第一計算設備與會議參加者的第二計算設備之間的對等 連接。會議主持者與會議參加者的計算設備可以經(jīng)由主機業(yè)務下栽 遠程接入客戶端120,或它的任何部分。 一旦會議主持者與會議參加 者建立對等連接,則對等計算設備就可以使用本發(fā)明任何的最優(yōu)化 技術使得它們的通信最優(yōu)化,諸如MTU調(diào)節(jié)技術、客戶端側(cè)應用知 道的技術、或網(wǎng)絡中斷保護技術。本發(fā)明的最優(yōu)化技術連同對等路 由一起,將改進在線會議、合作、或桌面共享的性能、效率和用戶 體驗。
在再一個方面和參照圖2A,例如,本發(fā)明的遠程接入客戶端120 可以把客戶端105的動態(tài)主配置協(xié)議(DHCP) IP地址和公共可見的 IP地址分發(fā)到電信設備210a-210b,諸如基于硬件或軟件的VoIP電 話.本發(fā)明的網(wǎng)關340易于發(fā)現(xiàn)諸如圖2A所示的客戶端105b那樣 的客戶端的公共IP地址.這樣,本發(fā)明的技術使得通過協(xié)議傳送它
們的IP地址的協(xié)議能夠繼續(xù)起作用.
許多改變和修改方案可以由本領域技術人員作出,而不背離本發(fā) 明的精神和范圍.所以,必須清楚地理解,所說明的實施例僅僅是 作為例子被顯示的,不應當看作為限制本發(fā)明,本發(fā)明是由以下的 權利要求規(guī)定的.這些權利要求被讀出為包括它們在文字上闡述的 內(nèi)容,并且也包括沒有實質(zhì)的不同的、那些等價的單元,雖然與在 上面的說明中顯示和描述的其它方面是不同的,
權利要求
1.一種用于建立在第一網(wǎng)絡上的第一計算設備與第二網(wǎng)絡上的第二計算設備之間的對等通信會話的方法,第一網(wǎng)絡是與第二網(wǎng)絡不連接的,并且不能路由到第二網(wǎng)絡,該方法包括以下步驟(a)由第一計算設備建立與第三計算設備的第一隧道會話,和由第二計算設備建立與第三計算設備的第二隧道會話;(b)由第一計算設備經(jīng)由第三計算設備發(fā)起到第二計算設備的通信會話;(c)由服務器接收用來建立該通信會話的信號;(d)由服務器把第一網(wǎng)絡地址傳送到第一計算設備,該第一網(wǎng)絡地址包括與第二隧道會話關聯(lián)的第二計算設備的網(wǎng)絡地址;(e)由第一計算設備通過使用第一網(wǎng)絡地址來傳送發(fā)起與第二計算設備的連接的請求;(f)由第三計算設備截取該請求,并為第一計算設備提供用于第二計算設備的第二網(wǎng)絡地址,第二網(wǎng)絡地址包括與第二計算設備關聯(lián)的公共網(wǎng)地址;以及(g)由第三計算設備通過使用第二網(wǎng)絡地址把請求傳送到第二計算設備,以便允許來自第一計算設備的連接。
2. 權利要求l的方法,其中第一隧道會話或第二隧道會話之一的 至少一部分包括安全套接字層或虛擬專用網(wǎng)絡之一。
3. 權利要求l的方法,其中第三計算設備包括遠程接入網(wǎng)關。
4. 權利要求l的方法,其中第二計算設備位于與第二網(wǎng)絡地址關 聯(lián)的防火墻的后面。
5. 權利要求l的方法,包括通過把帶外信號經(jīng)由第一隧道會話傳 送到第 一計算設備而由第三計算設備把第二網(wǎng)絡地址提供給笫 一計算設備。
6. 權利要求l的方法,包括由笫二計算設備為第一計算設備提供 在防火墻中的轉(zhuǎn)發(fā)口,以便使用第二網(wǎng)絡地址與第二計算設備通 信。
7. 權利要求l的方法,包括由第三計算設備把密鑰傳送到第一計 算設備和第二計算設備.
8. 權利要求7的方法,包括由第一計算設備把密鑰傳送到第二計算設備,
9. 權利要求8的方法,包括由笫一計算設備在把數(shù)據(jù)發(fā)送到第二計算設備之前檢驗從第二計算設備接收的密鑰與第一計算設備的密 鑰相匹配,
10. 權利要求7的方法,包括由第二計算設備把密鑰傳送到第一 計算設備。
11. 權利要求10的方法,包括由第二計算設備在把數(shù)據(jù)發(fā)送到第 二計算設備之前檢驗從第一計算設備接收的密鑰與第二計算設備的 密鑰相匹配.
12. 權利要求l的方法,把第一電信設備與第一計算設備相關聯(lián), 和把第二電信設備與第二計算設備相關聯(lián).
13. 權利要求12的方法,其中第一電信設備或第二電信設備之一 包括軟件部件或硬件部件之一。
14. 權利要求12的方法,包括經(jīng)由連接建立在笫一電信設備與第 二電信設備之間的電信會話。
15. 權利要求15的方法,包括在第一電信設備和第二電信設備之 間通過電信會話進行通信,而不用經(jīng)過第一計算設備。
16. 權利要求l的方法,包括經(jīng)由在第一計算設備和第二計算設 備之間的連接,來傳送遠程顯示協(xié)議。
17. 權利要求16的方法,其中遠程桌面協(xié)議包括獨立計算結(jié)構(gòu)協(xié) 議或遠程桌面協(xié)議之一 。
18. 權利要求l的方法,包括經(jīng)由連接與第二計算設備共享第一 計算設備的屏幕視圖.
19. 在網(wǎng)關中, 一種用于建立在第一網(wǎng)絡上的第一計算設備與第 二網(wǎng)絡上的第二計算設備之間的對等通信會話的方法,第 一 網(wǎng)絡是 與第二網(wǎng)絡不連接的,并且不能路由到笫二網(wǎng)絡,該方法包括以下 步驟(a) 在第一網(wǎng)絡上建立與第一計算設備的第一隧道會話;(b) 在第二網(wǎng)絡上建立與第二計算設備的第二隧道會話;(c) 接收由第一計算設備發(fā)起與第二計算設備的通信會話的請求;(d) 把用于聯(lián)系第二計算設備的笫 一 網(wǎng)絡地址提供給第 一計算設備,第一網(wǎng)絡地址包括與第二隧道會話關聯(lián)的第二計算設備的網(wǎng)絡地址;(e) 通過使用笫一網(wǎng)絡地址,來接收由笫一計算設備發(fā)起與笫二 計算設備的連接的請求;(f) 截取發(fā)起連接的請求,并為笫一計算設備提供用于第二計算 設備的第二網(wǎng)絡地址,笫二網(wǎng)絡地址包括與笫二計算設備關聯(lián)的公 共網(wǎng)地址;以及(g) 通過使用第二網(wǎng)絡地址把請求傳送到第二計算設備,以便允 許從第 一計算設備到笫二計算設備的連接,
20. 權利要求19的方法,其中第一隧道會話或第二隧道會話之一 的至少一部分包括安全套接字層或虛擬專用網(wǎng)絡之一。
21. 權利要求19的方法,其中第二計算設備位于與第二網(wǎng)絡地址 關聯(lián)的防火墻的后面。
22. 權利要求19的方法,包括通過把帶外信號經(jīng)由笫一隧道會話 傳送到第 一計算設備而把第二網(wǎng)絡地址提供給笫 一計算設備.
23. 權利要求19的方法,包括把密鑰傳送到第一計算設備.
24. 權利要求19的方法,包括把密鑰傳送到第二計算設備.
25. —種用于經(jīng)由第三計算設備建立在笫一網(wǎng)絡上的第一計算設 備與第二網(wǎng)絡上的第二計算設備之間的對等通信會話的系統(tǒng),第一網(wǎng)絡是與第二網(wǎng)絡不連接的,并且不能路由到第二網(wǎng)絡,該系統(tǒng)包 括在第一網(wǎng)絡上的第一計算設備; 在第二網(wǎng)絡上的第二計算設備;第三計算設備,建立與第一計算設備的第一隧道會話,和與第二 計算設備的第二隧道會話;經(jīng)由第三計算設備可接入的服務器;其中服務器經(jīng)由第三計算設備把第 一 網(wǎng)絡地址傳送到第 一計算設 備,該第一網(wǎng)絡地址包括與第二隧道會話關聯(lián)的第二計算設備的網(wǎng) 絡地址;第 一計算設備通過使用第 一 網(wǎng)絡地址經(jīng)由第三計算設備傳送發(fā) 起與第二計算設備的連接的請求; 第三計算設備截取笫 一請求,并為第 一計算設備提供用于第二計 算設備的第二網(wǎng)絡地址,第二網(wǎng)絡地址包括與第二計算設備關聯(lián)的》公共網(wǎng)地址;以及第三計算設備通過使用第二網(wǎng)絡地址傳送第二請求到第二計算 設備,允許來自第一計算設備的連接,
26. 權利要求25的系統(tǒng),其中第一隧道會話或第二隧道會話之一 的至少一部分包括安全套接字層或虛擬專用網(wǎng)絡之一。
27. 權利要求25的系統(tǒng),其中第三計算設備包括遠程接入網(wǎng)關。
28. 權利要求25的系統(tǒng),其中第二計算設備位于與第二網(wǎng)絡地址 關聯(lián)的防火墻的后面.
29. 權利要求25的系統(tǒng),其中第三計算設備通過經(jīng)由第一隧道會 話傳送帶外信號來把第二網(wǎng)絡地址提供給笫一計算設備。
30. 權利要求25的系統(tǒng),其中第二計算設備為第一計算設備提供 在防火墻中的轉(zhuǎn)發(fā)口,以便使用笫二網(wǎng)絡地址與第二計算設備通 信.
31. 權利要求25的系統(tǒng),其中第三計算設備把密鑰傳送到笫一計 算設備和第二計算設備.
32. 權利要求31的系統(tǒng),其中第一計算設備把密鑰傳送到第二計 算設備.
33. 權利要求32的系統(tǒng),其中第一計算設備在把數(shù)據(jù)發(fā)送到第二 計算設備之前檢驗從第二計算設備接收的密鑰與第 一計算設備的密 鑰相匹配。
34. 權利要求31的系統(tǒng),其中第二計算設備把密鑰傳送到第一計 算設備。
35. 權利要求34的系統(tǒng),其中第二計算設備在把數(shù)據(jù)發(fā)送到第二 計算設備之前檢驗從笫一計算設備接收的密鑰與第二計算設備的密 鑰相匹配.
36. 權利要求25的系統(tǒng),包括與第一計算設備關聯(lián)的第一電信設 備,和與第二計算設備關聯(lián)的第二電信設備。
37. 權利要求36的系統(tǒng),其中第一電信設備或第二電信設備之一 包括軟件部件或硬件部件之一。
38. 權利要求37的系統(tǒng),其中第一電信設備經(jīng)由連接建立與第二 電信設備的電信會話.
39. 權利要求38的系統(tǒng),其中第一電信設備通過電信會話與第二 電信設備進行通信,而不用經(jīng)過第三計算設備.
40. 權利要求25的系統(tǒng),第一計算設備和第二計算設備經(jīng)由連接 來傳送遠程顯示協(xié)議.
41. 權利要求25的系統(tǒng),其中遠程桌面協(xié)議包括獨立計算結(jié)構(gòu)協(xié) 議或遠程桌面協(xié)議之一.
42. 權利要求25的系統(tǒng),包括第一計算設備經(jīng)由連接與第二計算 設備共享屏幕視圖.
43. —種用于建立在第一網(wǎng)絡上的第一計算設備與第二網(wǎng)絡上的 第二計算設備之間的對等通信會話的網(wǎng)關,第一網(wǎng)絡是與第二網(wǎng)絡不連接的,并且不能路由到第二網(wǎng)絡,該網(wǎng)關包括用于在第一網(wǎng)絡上建立與第一計算設備的第一隧道會話的裝置;用于在第二網(wǎng)絡上建立與第二計算設備的第二隨道會話的裝置;用于接收由第一計算設備發(fā)起與第二計算設備的通信會話的請求的裝置;用于把用于聯(lián)系第二計算設備的第一網(wǎng)絡地址提供給第一計算 設備的裝置,第一網(wǎng)絡地址包括與第二隧道會話關聯(lián)的第二計算設備的網(wǎng)絡地址;用于通過使用第 一網(wǎng)絡地址,來接收由第 一計算設備發(fā)起與第二 計算設備的連接的請求的裝置;用于截取發(fā)起連接的請求,并為第一計算設備提供用于第二計算 設備的第二網(wǎng)絡地址的裝置,第二網(wǎng)絡地址包括與第二計算設備關 聯(lián)的公共網(wǎng)地址;以及用于通過使用第二網(wǎng)絡地址把請求傳送到第二計算設備,以允許 從第一計算設備到第二計算設備的連接的裝置。
44. 權利要求43的系統(tǒng),其中第一隧道會話或第二隧道會話之一 的至少一部分包括安全套接字層或虛擬專用網(wǎng)絡之一。
45. 權利要求43的系統(tǒng),其中第二計算設備位于與第二網(wǎng)絡地址 關聯(lián)的防火墻的后面.
46. 權利要求43的系統(tǒng),包括用于通過把帶外信號經(jīng)由笫一隧道 會話傳送到第 一計算設備來把第二網(wǎng)絡地址提供給第 一計算設備的 裝置.
47. 權利要求43的系統(tǒng),包括用于把密鑰傳送到笫一計算設備的J£> 。
48. 權利要求43的系統(tǒng),包括把密鑰傳送到第二計算設備的裝置。
49. 一種經(jīng)由無損協(xié)議傳送對于經(jīng)由有損協(xié)議傳輸被構(gòu)建的分組 的方法,該方法包括以下步驟(a) 經(jīng)由無損協(xié)議建立在第一計算設備與第二計算設備之間的連接;(b) 由第一計算設備檢測無損協(xié)議分組,無損協(xié)議分組包括具有 按照有損協(xié)議被構(gòu)建的一個或多個分組的有效負栽;(c) 由第一計算設備把無損協(xié)議分組的接收的虛假確認傳送到第 一計算設備或第二計算設備之一;以及(d) 由第一計算設備把無損協(xié)議分組傳送到第二計算設備.
50. 權利要求49的方法,包括由第一計算設備使用密鑰來加密一 個或多個分組。
51,權利要求50的方法,包括經(jīng)由在第一計算設備與第二計算設 備之間的帶外傳輸安全層會話來提供加密密鑰到第一計算設備。
52. 權利要求49的方法,包括逐個分組地加密一個或多個分組。
53. 權利要求49的方法,還包括在步驟(d)之前執(zhí)行步取(c)。
54. 權利要求49的方法,其中第二計算設備是網(wǎng)關.
55. 權利要求49的方法,包括響應于由第一計算設備或第二計算 設備之一接收到無損協(xié)議分組的接收的虛假確認,阻止第一計算設 備或第二計算設備之一的網(wǎng)絡堆棧執(zhí)行與提供無損協(xié)議的無損特性 關聯(lián)的操作.
56. 權利要求49的方法,其中無損協(xié)議包括傳輸控制協(xié)議.
57. 權利要求56的方法,包括阻止第一計算設備或第二計算設備 之一的網(wǎng)絡堆棧執(zhí)行與無損協(xié)議有關的一個或多個以下的算法重 發(fā)、排序、流控制算法、naple的算法、和滑動窗口算法,
58. 權利要求49的方法,其中有損協(xié)議包括用戶數(shù)據(jù)報協(xié)議。
59. 權利要求49的方法,包括由第一計算設備經(jīng)由安全套接字層 或傳輸安全層隧道之一把無損協(xié)議分組傳送到第二計算設備。
60. 權利要求49的方法,其中一個或多個分組包括實時協(xié)議.
61. 權利要求49的方法,包括由第一計算設備把實時話音、音頻 或數(shù)據(jù)之一經(jīng)由一個或多個分組傳送到第二計算設備。
62. —種用于經(jīng)由無損協(xié)議傳送對于經(jīng)由有損協(xié)議傳輸被構(gòu)建的 分組的系統(tǒng),該系統(tǒng)包括用于經(jīng)由無損協(xié)議建立在笫一計算設備與第二計算設備之間的 連接的裝置;用于由第 一計算設備檢測無損協(xié)議分組的裝置,無損協(xié)議分組包 括具有按照有損協(xié)議被構(gòu)建的一個或多個分組的有效負栽;用于由第一計算設備把無損協(xié)議分組的接收的虛假確認傳送到第一計算設備或第二計算設備之一的裝置;以及用于由第 一計算設備把無損協(xié)議分組傳送到第二計算設備的裝置。
63. 權利要求62的系統(tǒng),包括用于由第一計算設備使用密鑰來加 密一個或多個分組的裝置。
64. 權利要求63的系統(tǒng),包括用于經(jīng)由在第一計算設備與第二計 算設備之間的帶外傳輸安全層會話來提供加密密鑰到第一計算設備 的裝置。
65. 權利要求63的系統(tǒng),包括用于逐個分組地加密一個或多個分 組的裝置。
66. 權利要求62的系統(tǒng),還包括用于在傳送無損協(xié)議分組之前傳 送無損協(xié)議分組的接收的虛假確認的裝置。
67. 權利要求62的系統(tǒng),其中第二計算設備是網(wǎng)關。
68. 權利要求62的系統(tǒng),包括用于響應于由第一計算設備或第二 計算設備之一接收到無損協(xié)議分組的接收的虛假確認,以阻止第一 計算設備或第二計算設備之一的網(wǎng)絡堆棧執(zhí)行與提供無損協(xié)議的無 損特性關聯(lián)的操作的裝置。
69. 權利要求62的系統(tǒng),其中無損協(xié)議包括傳輸控制協(xié)議,
70. 權利要求69的系統(tǒng),包括用于阻止第一計算設備或第二計算 設備之一的網(wǎng)絡堆棧執(zhí)行與無損協(xié)議有關的一個或多個以下的算法重發(fā)、排序、和流控制算法的裝置,
71. 權利要求62的系統(tǒng),其中有損協(xié)議包括用戶數(shù)據(jù)報協(xié)議.
72. 權利要求62的系統(tǒng),包括用于由第一計算設備經(jīng)由安全套接 字層或傳輸安全層隧道之一把無損協(xié)議分組傳送到第二計算設備的 裝置,
73. 權利要求62的系統(tǒng),其中一個或多個分組包括實時協(xié)議.
74. 權利要求62的系統(tǒng),包括用于由第一計算設備把實時話音、 音頻或數(shù)據(jù)之一經(jīng)由一個或多個分組傳送到第二計算設備的裝置。
75. —種通過使用在TCP連接上不可靠的傳輸協(xié)議發(fā)送來自應用 的分組的方法,包括在第 一設備處接收要使用不可靠的傳輸協(xié)議發(fā)送的笫一分組; 創(chuàng)建第一TCP分組,該第一TCP分組包括接收的第 一分組的第 一有效負栽和與在第 一設備與第二設備之間建立的TCP連接關聯(lián)的信息的笫一TCP首部;由第 一設備把第一TCP分組發(fā)送到第二設備; 在第一設備處接收要使用不可靠的傳輸協(xié)議發(fā)送的第二分組; 創(chuàng)建第二TCP分組,該第二TCP分組包括接收的第二分組的笫二有效負載和第一TCP首部信息;以及由第一設備在接收來自第二設備的第一有效負栽的接收的確認之前把第二TCP分組發(fā)送到第二設備。
76. 權利要求75的方法,包括建立與一個端口號的TCP連接,該 端口號與不可靠的傳輸協(xié)議相關聯(lián)。
77. 權利要求75的方法,包括由第一設備動態(tài)地確定包括不可靠 的傳輸協(xié)議的第一TCP分組與第二TCP分組。
78. 權利要求75的方法,其中不可靠的傳輸協(xié)議是UDP。
79. 權利要求75的方法,還包括在笫一設備上通過使用分組捕獲機構(gòu)截取第一TCP分組與第二 TCP分組來接收第一TCP分組與第二TCP分組。
80. 權利要求75的方法,包括由第一設備建立與VPN網(wǎng)關設備的 TCP連接。
81. 權利要求75的方法,包括經(jīng)由TCP連接建立在笫一設備與第 二設備之間的對等通信.
82,權利要求75的方法,包括由第一設備加密第一與第二TCP分 組,和由第二設備解密該加密的笫一與第二TCP分組.
83. —種通過使用在TCP連接上的不可靠的傳輸協(xié)議發(fā)送來自應 用的分組的方法,包括在第二設備處截取在笫一設備處創(chuàng)建的和在笫二設備處接收的 第一TCP分組,笫一TCP分組包括由應用通過使用不可靠的傳輸協(xié)議 生成的第一分組的第一有效負栽和與在第一設備與第二設備之間建 立的TCP連接關聯(lián)的信息的第一TCP首部,截取在笫一TCP分組被提供 給第二設備的TCP堆棧之前發(fā)生;響應于信息的TCP首部來識別第一有效負栽是由應用通過使用不 可靠的傳輸協(xié)議而生成的分組;從第一TCP分組剝離信息的TCP首部;以及通過使用不可靠的傳輸協(xié)議把第一有效負栽轉(zhuǎn)發(fā)到應用。
84. 權利要求83的方法,其中不可靠的協(xié)議是UDP.
85. 權利要求83的方法,其中識別的步驟包括識別TCP首部信息, TCP首部信息包括與不可靠的傳輸協(xié)議關聯(lián)的端口號.
86. 權利要求83的方法,還包括由第二設備通過使用分組捕獲驅(qū)動器截取第一TCP分組.
87. 權利要求83的方法,其中第一設備是客戶端設備并且第二設 備是VPN網(wǎng)關。
88. 權利要求87的方法,還包括在把第一有效負栽轉(zhuǎn)發(fā)到應用之前在第二設備上執(zhí)行網(wǎng)絡地址 轉(zhuǎn)換(NAT ).
89. —種用于通過使用在TCP連接上的不可靠的傳輸協(xié)議發(fā)送來 自應用的分組的系統(tǒng),該系統(tǒng)包括第一設備,第一設備包括生成第一和第二分組的應用,第一和第二分組打算通過使用不可 靠的傳輸協(xié)議被發(fā)送;過濾器進程,過濾器進程截取來自應用的第一和第二分組,并把 截取的分組轉(zhuǎn)發(fā)到隧道進程.隧道進程,隧道進程請求打開在第一設備與第二設備之間的TCP 連接,打開TCP連接的請求向第一和第二設備表示,TCP連接將傳輸打算用不可靠的傳輸協(xié)議發(fā)送的分組,隧道進程把笫一和第二分組作為在第 一和笫二TCP分組中的有效負栽轉(zhuǎn)發(fā)到第二設備,隧道進程在發(fā)送第一TCP分組之后并在接收對于第一TCP分組的確認之前發(fā)送第二TCP分組;以及與第一設備進行通信的第二設備,第二設備包括 第二隧道進程,該第二隨道進程打開由第一設備請求的TCP連接,并識別和把TCP連接的源地址轉(zhuǎn)發(fā)到第二過濾器進程;以及 第二過濾器進程,該笫二過濾器進程截取在第二設備處用首部中的TCP連接源地址接收的、來自應用的分組,第二過濾器進程從接收的分組剝離TCP首部,把被剝離的分組轉(zhuǎn)發(fā)到打算的目的地,并繞過在第二設備上的TCP/ IP堆棧.
90. 權利要求89的系統(tǒng),其中在第一設備上的第一過濾器進程包 括分組捕獲驅(qū)動器.
91. 權利要求89的系統(tǒng),其中在第二設備上的第二過濾器進程包 括分組捕獲驅(qū)動器.
92. 權利要求89的系統(tǒng),其中第一設備是客戶端設備并且第二設 備是VPN網(wǎng)關設備。
93. 權利要求89的系統(tǒng),還包括 第三設備,剝離的分組被發(fā)送到該第三設備。
94. 權利要求93的系統(tǒng),其中第二設備還包括網(wǎng)絡地址轉(zhuǎn)換(NAT)表,用來在把剝離的分組發(fā)送到第三設備之 前執(zhí)行網(wǎng)絡地址轉(zhuǎn)換。
95. 權利要求89的系統(tǒng),其中不可靠的數(shù)據(jù)協(xié)議是UDP。
96. —種用于調(diào)節(jié)安全網(wǎng)絡通信的最大傳輸單元以減小網(wǎng)絡分段 的方法,該方法包括以下步驟(a) 建立在第 一計算設備與第二計算設備之間的會話,第 一計算 設備具有第一網(wǎng)絡堆棧;(b) 由第 一計算設備檢測具有加密的有效負栽的網(wǎng)絡分組;(c) 由第一計算設備確定對于第一網(wǎng)絡堆棧的最大傳輸單元參數(shù) 的設置,以將最大傳輸單元尺寸減小至少與有效負栽的加密部分關 聯(lián)的一個尺寸;以及(d) 把第一網(wǎng)絡堆棧的最大傳輸單元(MTU)參數(shù)改變到所確定的設置。
97. 權利要求96的方法,包括經(jīng)由安全套接字層或傳輸層安全隧 道之一把網(wǎng)絡分組傳送到笫二計算設備。
98. 權利要求96的方法,其中有效負栽包括實時協(xié)議.
99. 權利要求96的方法,還包括經(jīng)由第一網(wǎng)絡堆棧的網(wǎng)絡驅(qū)動器 接口技術規(guī)范水平機構(gòu)來改變最大傳輸單元參數(shù)。
100. 權利要求96的方法,還包括對每個在第一計算設備與笫二 計算設備之間的會話動態(tài)地確定最大傳輸單元參數(shù)的設置.
101. 權利要求96的方法,包括經(jīng)由網(wǎng)關建立在第一計算設備與 第二計算設備之間的會話。
102. 權利要求96的方法,包括由第一計算設備把實時話音、音 頻或數(shù)據(jù)之一經(jīng)由網(wǎng)絡分組的有效負栽傳送到第二計算設備.
103. 權利要求96的方法,包括在傳送網(wǎng)絡分組之前把網(wǎng)絡分組 的接收的虛假確認傳送到第一計算設備或笫二計算設備之一。
104. 權利要求96的方法,還包括經(jīng)由第一計算設備的代理建立 在第 一計算設備與第二計算設備之間的會話。
105. 權利要求104的方法,包括由代理經(jīng)由IOCTL應用編程接口 與第一網(wǎng)絡堆棧通信,以便把最大傳輸單元參數(shù)改變到所確定的設 置。
106. —種用于調(diào)節(jié)安全網(wǎng)絡通信的最大傳輸單元以減小網(wǎng)絡分 段的系統(tǒng),該系統(tǒng)包括用于建立在第 一計算設備與第二計算設備之間的會話的裝置,第一計算設備具有第 一 網(wǎng)絡堆棧;用于由第一計算設備檢測具有加密的有效負栽的網(wǎng)絡分組的裝置;用于由笫一計算設備確定對于第一網(wǎng)絡堆棧的最大傳輸單元參 數(shù)的設置,以將最大傳輸單元尺寸減小至少與有效負栽的加密部分 關聯(lián)的一個尺寸的裝置;以及用于把第一網(wǎng)絡堆棧的最大傳輸單元(MTU)參數(shù)改變到所確定的設置的裝置.
107. 權利要求106的系統(tǒng),包括用于經(jīng)由安全套接字層或傳輸層 安全隧道之一把網(wǎng)絡分組傳送到第二計算設備的裝置.
108. 權利要求106的系統(tǒng),其中有效負栽包括實時協(xié)議.
109. 權利要求106的系統(tǒng),其中有效負栽包括實時話音、音頻或 數(shù)據(jù)之一的表示.
110. 權利要求106的系統(tǒng),還包括用于經(jīng)由第一網(wǎng)絡堆棧的網(wǎng)絡 驅(qū)動器接口技術規(guī)范水平機構(gòu)來改變第一計算設備的最大傳輸單元參數(shù)的裝置。
111. 權利要求106的系統(tǒng),還包括用于對每個在第一計算設備與 第二計算設備之間的會話動態(tài)地確定最大傳輸單元參數(shù)的設置的裝置。
112. 權利要求106的系統(tǒng),包括用于經(jīng)由網(wǎng)關建立在第一計算設 備與第二計算設備之間的會話的裝置。
113. 權利要求106的系統(tǒng),包括用于由第一計算設備把實時話 音、音頻或數(shù)據(jù)之一經(jīng)由網(wǎng)絡分組的有效負栽傳送到第二計算設備 的裝置。
114. 權利要求106的系統(tǒng),包括用于在傳送網(wǎng)絡分組之前把網(wǎng)絡 分組的接收的虛假確認傳送到第 一計算設備或第二計算設備之一 的 裝置。
115. 權利要求106的系統(tǒng),其中網(wǎng)絡分組包括無損協(xié)議分組。
116. 權利要求115的系統(tǒng),其中無損協(xié)議分組包括傳輸控制協(xié)議。
117. 權利要求106的系統(tǒng),其中有效負栽包括有損協(xié)議分組.
118. 權利要求117的系統(tǒng),其中有損協(xié)議分組包括用戶數(shù)據(jù)報協(xié)議。
119. 權利要求106的系統(tǒng),包括第一計算設備的代理,用于建立 在第 一計算設備與第二計算設備之間的會話。
120. 權利要求119的系統(tǒng),其中代理經(jīng)由IOCTL應用編程接口與 第一網(wǎng)絡堆棧通信,以便把最大傳輸單元參數(shù)改變到所確定的設 置。
121. —種為客戶端優(yōu)先化與客戶端的應用關聯(lián)的網(wǎng)絡通信的方 法,該方法包括以下步驟(a)由客戶端截取與客戶端的一個或多個應用關聯(lián)的一個或多個 網(wǎng)絡分組; (b) 由客戶端存儲該一個或多個網(wǎng)絡分組到一個隊列;(c) 由客戶端確定與客戶端的笫一應用關聯(lián)的排隊的一個或多個 網(wǎng)絡分組;(d) 由客戶端表示所確定的一個或多個網(wǎng)絡分組的優(yōu)先權,以便 把確定的一個或多個網(wǎng)絡分組放置在與客戶端的第二應用關聯(lián)的、 隊列中的至少一個網(wǎng)絡分組之前;以及(e) 提供優(yōu)先化的一個或多個網(wǎng)絡分組以便經(jīng)由客戶端的網(wǎng)絡堆 棧通信.
122. 權利要求121的方法,其中由客戶端確定的步猓還包括確定 第一應用的排隊的一個或多個網(wǎng)絡分組包括實時數(shù)據(jù)。
123. 權利要求122的方法,其中實時數(shù)據(jù)包括以下的一項實時 協(xié)議、用戶數(shù)據(jù)報協(xié)議、和話音或音頻之一的表示,
124. 權利要求121的方法,包括由客戶端阻止第二應用的至少一 個網(wǎng)絡分組在第 一應用的一個或多個網(wǎng)絡分組之前經(jīng)由網(wǎng)絡堆棧被 傳送。
125. 權利要求121的方法,包括由客戶端把與第二應用關聯(lián)的網(wǎng) 絡分組保存在隊列中,并當在保存的網(wǎng)絡分組之前優(yōu)先化的、與第 一應用關聯(lián)的一個或多個網(wǎng)絡分組被傳送時釋放保存的網(wǎng)絡分組.
126. 權利要求121的方法,包括由客戶端對于客戶端上的一個或 多個應用透明地截取一個或多個網(wǎng)絡分組。
127. 權利要求121的方法,包括在前臺運行第一應用,以及在后 臺運行第二應用。
128. 權利要求121的方法,包括把比與第二應用關聯(lián)的優(yōu)先權更 高的優(yōu)先權與第一應用相關聯(lián),
129. 權利要求128的方法,還包括由用戶規(guī)定的第一應用或第二 應用之一的優(yōu)先權。
130. 權利要求121的方法,包括由客戶端接收來自計算設備的一 個或多個網(wǎng)絡分組.
131. 權利要求121的方法,包括由該一個或多應用提供一個或多 個網(wǎng)絡分組,用于從客戶端到計算設備傳送。
132. —種客戶端,用于對與客戶端的應用關聯(lián)的客戶端網(wǎng)絡通 信進行優(yōu)先化,該客戶端包括 用于截取與客戶端的一個或多個應用關聯(lián)的客戶端的一個或多個網(wǎng)絡分組的機構(gòu);網(wǎng)絡驅(qū)動器,用于存儲一個或多個網(wǎng)絡分組到一個隊列,并經(jīng)由 客戶端的網(wǎng)絡堆棧傳送該一個或多個網(wǎng)絡分組;以及代理,用于確定與客戶端的第一應用關聯(lián)的一個或多個網(wǎng)絡分 組,并向網(wǎng)絡驅(qū)動器表示該一個或多個網(wǎng)絡分組的優(yōu)先權,以把所 確定的一個或多個網(wǎng)絡分組放置在與客戶端的第二應用關聯(lián)的、隊 列中的至少一個網(wǎng)絡分組的前面.
133. 權利要求132的客戶端,其中代理確定第一應用的一個或多 個網(wǎng)絡分組包括實時數(shù)據(jù).
134. 權利要求132的客戶端,其中實時數(shù)據(jù)包括以下的一項實 時協(xié)議、用戶數(shù)據(jù)報協(xié)議、和話音或音頻之一的表示.
135. 權利要求132的客戶端,其中代理或網(wǎng)絡驅(qū)動器之一阻止第 二應用的至少一個網(wǎng)絡分組在第一應用的一個或多個網(wǎng)絡分組之前 經(jīng)由網(wǎng)絡堆棧被傳送。
136. 權利要求132的客戶端,其中網(wǎng)絡驅(qū)動器把與第二應用關聯(lián) 的網(wǎng)絡分組保存在隊列中,并當在保存的網(wǎng)絡分組之前優(yōu)先化的、 與第一應用關聯(lián)的一個或多個網(wǎng)絡分組被傳送后釋放所保存的網(wǎng)絡 分組。
137. 權利要求132的客戶端,其中機構(gòu)對于客戶端上的一個或多 個應用透明地截取一個或多個網(wǎng)絡分組。
138. 權利要求132的客戶端,其中第一應用在前臺運行,以及第 二應用在后臺運行。
139. 權利要求132的客戶端,其中第一應用具有比客戶端的第二應用更高的優(yōu)先權。
140. 權利要求132的客戶端,包括用于由用戶規(guī)定優(yōu)先權的配置 機構(gòu)。
141. 權利要求132的客戶端,其中客戶端接收來自計算設備的一 個或多個網(wǎng)絡分組,
142. 權利要求132的客戶端,其中該一個或多個應用提供一個或 多個網(wǎng)絡分組以便從客戶端到計算設備的傳送.
143. 權利要求132的客戶端,其中網(wǎng)絡驅(qū)動器包括網(wǎng)絡驅(qū)動器接口技術規(guī)范(NDIS)驅(qū)動器
144. 權利要求132的客戶端,其中網(wǎng)絡驅(qū)動器在客戶端的操作泉統(tǒng)的內(nèi)核模式下工作.
145. 權利要求132的客戶端,其中代理在客戶端的搮作系統(tǒng)的用戶模式下工作。
146. 權利要求132的客戶端,其中代理或網(wǎng)絡驅(qū)動器之一包括用 于截取客戶端的 一個或多個網(wǎng)絡分組的機構(gòu)。
147. —種用于保護經(jīng)由第一協(xié)議建立的會話免受網(wǎng)絡中斷的方 法,該方法包括以下步驟(a) 經(jīng)由客戶端的代理建立在客戶端與設備之間的網(wǎng)絡連接上經(jīng) 由第一協(xié)議的會話的步驟,網(wǎng)絡連接與網(wǎng)絡堆棧相關聯(lián),網(wǎng)絡堆棧 的第一部分包括在第一協(xié)議的層下面的網(wǎng)絡堆棧的一個或多個層,b 并且網(wǎng)絡堆棧的第二部分包括用于笫一協(xié)議的層和在第一協(xié)議上面 的網(wǎng)絡堆棧的一個或多個層;(b) 檢測造成網(wǎng)絡堆棧的笫一部分被解除的、在網(wǎng)絡連接中的中斷;(c) 在中斷期間由代理保持會話和網(wǎng)絡堆棧的第二部分;以及(d) 重新建立網(wǎng)絡堆棧的第二部分和網(wǎng)絡連接,同時保持會話和 網(wǎng)絡堆棧的第二部分.
148. 權利要求147的方法,還包括以下步驟(e) 用網(wǎng)絡堆棧的保持的笫二部分和網(wǎng)絡堆棧的重新建立的第一 部分繼續(xù)進行會話。
149. 權利要求147的方法,還包括以下步驟 (e)由網(wǎng)絡堆棧的第二部分丟棄在中斷期間接收的任何網(wǎng)絡分組。
150. 權利要求147的方法,其中設備包括遠程接入網(wǎng)關或計算設 備之一。
151. 權利要求147的方法,還包括經(jīng)由以下的協(xié)議之一的第一協(xié) 議建立會話安全套接字層(SSL)協(xié)議、傳輸層安全(TLS)協(xié)議、 和隧道協(xié)議.
152. 權利要求147的方法,包括由代理經(jīng)由在客戶端與設備之間 的會話傳送實時數(shù)據(jù)。
153. 權利要求152的方法,其中實時數(shù)據(jù)包括實時協(xié)議.
154. 權利要求152的方法,其中實時數(shù)據(jù)包括話音或音頻之一的 表示,
155. 權利要求147的方法,包括代理在客戶端的操作系統(tǒng)的用戶 模式下操作。
156. 權利要求147的方法,其中網(wǎng)絡的第一部分包括傳輸控制協(xié) 議或互聯(lián)網(wǎng)協(xié)議之一,
157. 權利要求147的方法,其中網(wǎng)絡堆棧的第二部分包括互聯(lián)網(wǎng) 協(xié)議、用戶數(shù)據(jù)報協(xié)議、或通過互聯(lián)網(wǎng)的話音協(xié)議之一.
158. 權利要求147的方法,包括客戶端經(jīng)由遠程顯示協(xié)議與設備 通信。
159. 權利要求158的方法,其中遠程顯示協(xié)議包括獨立計算結(jié)構(gòu) 協(xié)議或遠程桌面協(xié)議之一.
160. 權利要求147的方法,包括對于經(jīng)由網(wǎng)絡連接通信的客戶端 的應用透明地執(zhí)行步驟(b)、 (c)和(d)之一。
161. 權利要求147的方法,包括由代理對于客戶端的應用透明地 截取與應用關聯(lián)的一個或多個網(wǎng)絡分組,
162. 權利要求147的方法,包括由與堆棧的第二部分關聯(lián)的網(wǎng)絡 驅(qū)動器對于客戶端上的應用透明地截取與應用關聯(lián)的一個或多個網(wǎng) 絡分組,
163. —種用于保護經(jīng)由第一協(xié)議建立的會話免受網(wǎng)絡中斷的系 統(tǒng),該系統(tǒng)包括客戶端的代理,經(jīng)由第一協(xié)議通過網(wǎng)絡連接建立在客戶端與設備 之間的會話;網(wǎng)絡堆棧,具有第一部分和第二部分,網(wǎng)絡堆棧的第一部分包括 在第一協(xié)議的層下面的網(wǎng)絡堆棧的一個或多個層,并且網(wǎng)絡堆棧的 第二部分包括用于第一協(xié)議的層和在第一協(xié)議上面的網(wǎng)絡堆棧的一個或多個層;以及檢測器,用于檢測造成網(wǎng)絡堆棧的第一部分被解除的、在網(wǎng)絡連 接中的中斷;其中在由檢測器檢測中斷時,代理在中斷期間保持會話和網(wǎng)絡堆棧的第二部分;客戶端重新建立網(wǎng)絡堆棧的笫 一部分和網(wǎng)絡連接,同時代理保持 會話和網(wǎng)絡堆棧的第二部分。
164. 權利要求163的系統(tǒng),其中代理用網(wǎng)絡堆棧的保持的第二部 分和網(wǎng)絡堆棧的重建的第一部分繼續(xù)進行會話.
165. 權利要求163的系統(tǒng),其中網(wǎng)絡堆棧的第一或第二部分之一 丟棄在中斷期間接收的任何網(wǎng)絡分組。
166. 權利要求163的系統(tǒng),其中設備包括遠程接入網(wǎng)關或計算設 備之一。
167. 權利要求163的系統(tǒng),其中第一協(xié)議包括以下的協(xié)議之一 安全套接字層(SSL)協(xié)議、傳輸層安全(TLS)協(xié)議、和隧道協(xié)議。
168. 權利要求163的系統(tǒng),其中代理經(jīng)由在客戶端與設備之間的 會話傳送實時數(shù)據(jù).
169. 權利要求168的系統(tǒng),其中實時數(shù)據(jù)包括實時協(xié)議之一。
170. 權利要求168的系統(tǒng),其中實時數(shù)據(jù)包括話音或音頻之一的 表示。
171. 權利要求163的系統(tǒng),其中代理在客戶端的操作系統(tǒng)的用戶 模式下操作.
172. 權利要求163的系統(tǒng),其中網(wǎng)絡堆棧的笫一部分包括傳輸控 制協(xié)議或互聯(lián)網(wǎng)協(xié)議之一 。
173. 權利要求163的系統(tǒng),其中網(wǎng)絡堆棧的第二部分包括互聯(lián)網(wǎng) 協(xié)議、用戶數(shù)據(jù)報協(xié)議、或通過互聯(lián)網(wǎng)的話音協(xié)議之一。
174. 權利要求163的系統(tǒng),其中第一協(xié)議包括遠程顯示協(xié)議。
175. 權利要求174的系統(tǒng),其中遠程顯示協(xié)議包括獨立計算結(jié)構(gòu) 協(xié)議或遠程桌面協(xié)議之一。
176. 權利要求163的系統(tǒng),其中代理對于客戶端的應用透明地截 取與該應用關聯(lián)的一個或多個網(wǎng)絡分組.
177. 權利要求163的系統(tǒng),包括與網(wǎng)絡堆棧的第二部分關聯(lián)的網(wǎng) 絡驅(qū)動器,網(wǎng)絡驅(qū)動器對于客戶端的應用透明地截取與該應用關聯(lián) 的一個或多個網(wǎng)絡分組,并經(jīng)由會話把該一個或多個分組提供給代 理.
178. 權利要求177的系統(tǒng),其中網(wǎng)絡驅(qū)動器包括網(wǎng)絡驅(qū)動器接口技術規(guī)范(NDIS)驅(qū)動器.
179.權刮要求177的系統(tǒng),其中網(wǎng)絡驅(qū)動器在客戶端的操作系統(tǒng) 的內(nèi)核模式下操作。
全文摘要
本發(fā)明總的針對用于提供對等通信和遠程接入連接性的遠程接入結(jié)構(gòu)。在一個實施例中,本發(fā)明的遠程接入結(jié)構(gòu)提供用于經(jīng)由諸如網(wǎng)關的第三計算設備建立對等計算設備之間的直接通信的方法。另外,本發(fā)明提供以下的使得對等通信最優(yōu)化的技術1)網(wǎng)絡分組的接收的虛假確認允許經(jīng)由無損分組協(xié)議傳送對于經(jīng)由有損協(xié)議傳輸被構(gòu)建的分組,2)網(wǎng)絡分組的有效負載移位允許經(jīng)由無損分組協(xié)議傳送對于經(jīng)由有損協(xié)議傳輸被構(gòu)建的分組,3)考慮由于加密造成的開銷,通過調(diào)節(jié)最大傳輸單元(MTU)參數(shù)而減小分組分段,4)客戶端網(wǎng)絡通信的應用知道的優(yōu)先化,以及5)網(wǎng)絡中斷保護,用于可靠的和持久的網(wǎng)絡連接性與接入。
文檔編號H04L29/08GK101199187SQ200580030928
公開日2008年6月11日 申請日期2005年7月22日 優(yōu)先權日2004年7月23日
發(fā)明者E·布呂格曼, G·P·勞, R·羅德里格茲 申請人:茨特里克斯系統(tǒng)公司