用于單個設(shè)備的無損連接故障切換的制作方法
【專利摘要】WAN優(yōu)化設(shè)備延遲ACK,直到在打開TCP窗口的同時從目標(biāo)實際接收到ACK。當(dāng)ACK被接收并轉(zhuǎn)發(fā)時,TCP窗口的大小被減小。如果存在鏡像的WAN優(yōu)化設(shè)備,則起始WAN優(yōu)化設(shè)備發(fā)送數(shù)據(jù)報通過WAN,并同時發(fā)送數(shù)據(jù)報到鏡像WAN優(yōu)化設(shè)備。當(dāng)鏡像WAN優(yōu)化設(shè)備對鏡像的數(shù)據(jù)報ACK時,起始WAN優(yōu)化設(shè)備對主機(jī)ACK。當(dāng)通過WAN的ACK被接收時,鏡像WAN優(yōu)化設(shè)備獲得轉(zhuǎn)發(fā)的ACK并刪除鏡像的數(shù)據(jù)報。在失去設(shè)備時,TCP連接轉(zhuǎn)換到鏡像WAN優(yōu)化設(shè)備,鏡像WAN優(yōu)化設(shè)備關(guān)閉LAN?TCP窗口并發(fā)送所有未經(jīng)ACK的數(shù)據(jù)。接著,一經(jīng)發(fā)送成功,鏡像WAN優(yōu)化設(shè)備重新打開LAN?TCP窗口。
【專利說明】用于單個設(shè)備的無損連接故障切換
[0001]相關(guān)申請交叉引用
[0002]本申請根據(jù)美國法典第35章第119條e款,要求2011年12月6日提交的題為“Lossless Connection Failover for Single and Mirrored Devices”的美國臨時專利申請序列號61/567,282的權(quán)利,其通過引用并入于此。
[0003]此申請還涉及題為“Lossless Connection Failover for Mirrored Devices,,、代理人案卷號為112-0690US1的美國專利申請序列號13/677,922,題為“TCP ConnectionRelocation”、代理人案卷號為112-0691US的美國專利申請序列號13/677,909以及題為“Flow-Based TCP”、代理人案卷號為112-0692US的美國專利申請序列號13/678,032,三者均提交于2012年11月15日,其通過引用并入于此。
【技術(shù)領(lǐng)域】
[0004]本發(fā)明涉及網(wǎng)絡(luò)設(shè)備,更特別地涉及網(wǎng)絡(luò)設(shè)備的故障。
【背景技術(shù)】
[0005]WAN優(yōu)化設(shè)備可從最接近客戶端的本地WAN優(yōu)化設(shè)備進(jìn)行本地TCP確認(rèn)。本地WAN優(yōu)化設(shè)備緩沖數(shù)據(jù)并將數(shù)據(jù)傳遞到遠(yuǎn)程WAN優(yōu)化設(shè)備,遠(yuǎn)程WAN優(yōu)化設(shè)備又將數(shù)據(jù)發(fā)送到服務(wù)器。如果WAN優(yōu)化設(shè)備使得已使用本地TCP確認(rèn)被確認(rèn)的數(shù)據(jù)失效,那么問題就出現(xiàn)了。該數(shù)據(jù)將丟失并且不能恢復(fù)。
【發(fā)明內(nèi)容】
[0006]在根據(jù)本發(fā)明的某些實施例中,WAN優(yōu)化設(shè)備不進(jìn)行可能導(dǎo)致數(shù)據(jù)丟失的本地或早的ACK。取而代之,WAN優(yōu)化設(shè)備延遲ACK,直到從目標(biāo)實際接收到ACK,但打開TCP窗口以允許來自客戶端的改善的流,而沒有節(jié)流(throttling)問題。作為例子,如果連接以64K的窗口開始并且接收到32K的數(shù)據(jù),那么TCP窗口通常將是32K。WAN優(yōu)化設(shè)備將延遲對數(shù)據(jù)確認(rèn),并且將再次打開TCP窗口為64K。當(dāng)ACK最終被接收并轉(zhuǎn)發(fā)時,TCP窗口的大小減小到適當(dāng)?shù)拇笮?,在這個例子中將是64K。
[0007]如果有鏡像的CNE/LDCM設(shè)備(WAN優(yōu)化設(shè)備的一種形式),則可使用根據(jù)本發(fā)明的第二實施例。在本實施例中,主機(jī)CNE/LDCM設(shè)備發(fā)送數(shù)據(jù)報通過WAN,并同時發(fā)送數(shù)據(jù)報到鏡像CNE/LDCM設(shè)備。當(dāng)鏡像CNE/LDCM設(shè)備對鏡像的數(shù)據(jù)報進(jìn)行ACK時,起始的CNE/LDCM設(shè)備對主機(jī)進(jìn)行ACK,這相對于WAN延時是短的時間。當(dāng)ACK通過WAN被接收到時,鏡像CNE/LDCM設(shè)備得到從主機(jī)CNE/LDCM設(shè)備轉(zhuǎn)發(fā)的ACK并刪除鏡像的數(shù)據(jù)報。在失去設(shè)備時,TCP連接轉(zhuǎn)換到鏡像CNE/LDCM設(shè)備,該鏡像CNE/LDCM設(shè)備辨識到這一點,關(guān)閉LAN TCP窗口,并發(fā)送所有未經(jīng)ACK的數(shù)據(jù)。接著,一經(jīng)發(fā)送成功,鏡像CNE/LDCM設(shè)備則重新打開LAN TCP窗口,允許數(shù)據(jù)繼續(xù)。
【專利附圖】
【附圖說明】[0008]并入本說明書并構(gòu)成本說明書一部分的附圖示出了與本發(fā)明一致的裝置和方法的實現(xiàn),附圖和詳細(xì)說明一起用于解釋與本發(fā)明一致的優(yōu)點和原理。
[0009]圖1是根據(jù)本發(fā)明的兩個連接的數(shù)據(jù)中心的實施例的框圖。
[0010]圖2示出了根據(jù)本發(fā)明的一個實施例的包括用于便利跨數(shù)據(jù)中心的通信的CNE設(shè)備的示例性網(wǎng)絡(luò)體系結(jié)構(gòu)。
[0011]圖3示出了根據(jù)本發(fā)明的一個實施例的CNE使能(CNE-enabled)的VCS的示例性實現(xiàn)。
[0012]圖4A呈現(xiàn)了根據(jù)本發(fā)明的一個實施例的示出CNE設(shè)備如何處理跨數(shù)據(jù)中心的廣播、未知單播和多播(BUM)業(yè)務(wù)的示意圖。
[0013]圖4B呈現(xiàn)了根據(jù)本發(fā)明的一個實施例的示出CNE設(shè)備如何處理跨數(shù)據(jù)中心的單播業(yè)務(wù)的示意圖。
[0014]圖5示出了根據(jù)本發(fā)明的實施例的其中兩個CNE設(shè)備被用于構(gòu)造vLAG的例子。
[0015]圖6是根據(jù)本發(fā)明的LDCM裝置的實施例的框圖。
[0016]圖7是根據(jù)本發(fā)明的各方面的被修改以進(jìn)行操作的圖1的數(shù)據(jù)中心的框圖。
[0017]圖8A和圖8B是圖6的LDCM裝置的功能框的框圖。
[0018]圖9是根據(jù)本發(fā)明的Hyper-TCP會話創(chuàng)建和關(guān)閉處理的階梯圖。
[0019]圖10是根據(jù)本發(fā)明的Hyper-TCP數(shù)據(jù)傳送操作的階梯圖。
[0020]圖11是示出根據(jù)本發(fā)明的Hyper-TCP的操作的框圖。
[0021]圖12是根據(jù)本發(fā)明第一實施例的WAN連接的框圖。
[0022]圖13是示出根據(jù)本發(fā)明的第一實施例的WAN連接階段的階梯圖。
[0023]圖14是示出根據(jù)本發(fā)明的第一實施例的WAN數(shù)據(jù)階段的階梯圖。
[0024]圖15是根據(jù)本發(fā)明的第二實施例的HA配置的框圖。
[0025]圖16是示出根據(jù)本發(fā)明的第二實施例的故障切換的框圖。
【具體實施方式】
[0026]參照圖1,示出了描述根據(jù)本發(fā)明的部分的網(wǎng)絡(luò)。第一數(shù)據(jù)中心700被示出為具有三個單獨的內(nèi)部網(wǎng)絡(luò)=TRILL網(wǎng)絡(luò)702,正常的以太網(wǎng)生成樹協(xié)議(STP)網(wǎng)絡(luò)704和存儲區(qū)域網(wǎng)絡(luò)(SAN) 706。應(yīng)用服務(wù)器708連接到TRILL網(wǎng)絡(luò)702,而應(yīng)用服務(wù)器710連接到STP網(wǎng)絡(luò)704和SAN706。存儲設(shè)備712被示出為連接到SAN706。每個網(wǎng)絡(luò)702、704和706都連接有融合網(wǎng)絡(luò)擴(kuò)展(CNE)設(shè)備714、716和718。CNE設(shè)備714、716和718連接到路由器720,路由器720又連接到WAN722。第二數(shù)據(jù)中心750是相似的,具有VCS以太網(wǎng)架構(gòu)網(wǎng)絡(luò)752和SAN754。應(yīng)用服務(wù)器756連接到每個網(wǎng)絡(luò)752和754,存儲設(shè)備連接到SAN754。CNE設(shè)備760,762連接到每個網(wǎng)絡(luò)752和754并連接到路由器764,路由器764也連接到WAN722,以允許數(shù)據(jù)中心700和750進(jìn)行通信。CNE設(shè)備714-718和760-762的操作產(chǎn)生有效的CNE重疊(overlay)網(wǎng)絡(luò)766以及從每個CNE設(shè)備到CNE重疊網(wǎng)絡(luò)766的虛擬鏈路。
[0027]本發(fā)明實施例的一個目標(biāo)是跨數(shù)據(jù)中心延伸VCS和TRILL網(wǎng)絡(luò)并滿足部署所需要的可擴(kuò)展性要求。CNE設(shè)備可按兩個盒子的解決方案來實現(xiàn),其中一個盒子能夠?qū)崿F(xiàn)L2/L3/FCoE交換,并且是VCS的一部分,另一個盒子便利WAN隧道以在WAN上傳輸以太網(wǎng)和/或FC業(yè)務(wù)。CNE設(shè)備也可按一個盒子的解決方案來實現(xiàn),其中單件網(wǎng)絡(luò)設(shè)備組合L2/L3/FCoE交換和WAN隧道的功能。
[0028]VCS作為二層交換機(jī),使用TRILL作為其交換機(jī)之間的連接性,并提供單個邏輯二層交換機(jī)的概念。該單個邏輯二層交換機(jī)提供透明的LAN服務(wù)。VCS的所有邊緣端口支持標(biāo)準(zhǔn)協(xié)議和特征,如鏈路聚合控制協(xié)議(LACP)、鏈路層發(fā)現(xiàn)協(xié)議(LLDP)、VLAN、MAC學(xué)習(xí)等。VCS使用以太網(wǎng)名稱服務(wù)(eNS)實現(xiàn)分布式MAC地址數(shù)據(jù)庫,并嘗試盡可能避免泛洪。VCS還提供各種智能服務(wù),諸如虛擬鏈路聚合組(vLAG)、預(yù)先端口配置管理(APPM)、端到端FCoE、和邊緣環(huán)路檢測等。有關(guān)VCS的更多細(xì)節(jié)可在以下文件中獲得:2011年4月29日提交的、題為“Converged Network Extension”的美國專利申請序列號13/098,360 ;2010年3 月 16 日提交的、題為 “Redundant Host Connection in a Routed Network” 的美國專利申請序列號 12/725,249 ;2011 年 4 月 14 日提交的、題為“Virtual Cluster Switching”的美國專利申請序列號13/087, 239 ;2011年4月22日提交的、題為“Fabric Formation forVirtual Cluster Switching”的美國專利申請序列號13/092,724 ;2011年4月22日提交的、題為“Distributed Configuration Management for Virtual Cluster Switching”的美國專利申請序列號13/092,580 ;2011年3月7日提交的、題為“Port Profile Managementfor Virtual Cluster Switching”的美國專利申請序列號 13/042,259 ;2011 年4月 22 日提交的、題為“Advanced Link Tracking for Virtual Cluster Switching”的美國專利申請序列號 13/092,460 ;2011 年 4 月 22 日提交的、題為“Virtual Port Grouping for VirtualCluster Switching”的美國專利申請序列號13/092, 701 ;2011年4月22日提交的、題為“Name Services for Virtual Cluster Switching” 的美國專利申請序列號 13/092,752 ;2011 年 4 月 22 日提交的、題為 “Traffic Management for Virtual Cluster Switching”的美國專利申請序列號13/092,877 ;2011年4月22日提交的、題為“Method and Systemfor Link Aggregation Across Multiple Switches”的美國專利申請序列號 13/092,864,以上全部通過引用并入于此。
[0029]在本發(fā)明的實施例中,出于跨數(shù)據(jù)中心通信的目的,每個數(shù)據(jù)中心被表示為單個邏輯RBridge。該邏輯RBridge可被分配虛擬RBridge ID或使用執(zhí)行WAN隧道的CNE設(shè)備的 RBridge ID。
[0030]圖2示出了根據(jù)本發(fā)明的一個實施例的包括用于便利跨數(shù)據(jù)中心通信的CNE設(shè)備的示例性網(wǎng)絡(luò)體系結(jié)構(gòu)。在這個例子中,兩個數(shù)據(jù)中心844和846分別經(jīng)由網(wǎng)關(guān)路由器824和828耦合到WAN826。數(shù)據(jù)中心844包括VCS816,VCS816經(jīng)由其成員交換機(jī)(諸如交換機(jī)810)耦合到若干主機(jī)(諸如主機(jī)801)。主機(jī)801包括兩個虛擬機(jī)(VM) 802和804,它們以雙歸屬配置耦合到虛擬交換機(jī)806和808。在一個實施例中,虛擬交換機(jī)806和808存在于主機(jī)801上的兩個網(wǎng)絡(luò)接口卡上。虛擬交換機(jī)806和808耦合到VCS成員交換機(jī)810。VCS816中還包括CNE設(shè)備818。CNE設(shè)備818被配置為從成員交換機(jī)810既經(jīng)由以太網(wǎng)(或TRILL)鏈路812接收以太網(wǎng)(或TRILL)業(yè)務(wù),又經(jīng)由FC鏈路814接收FC業(yè)務(wù)。也耦合到CNE設(shè)備818的是目標(biāo)存儲設(shè)備820和克隆的目標(biāo)存儲設(shè)備822 (由虛線表示)。CNE設(shè)備818維持經(jīng)由網(wǎng)關(guān)路由器824和828通過WAN826的、到數(shù)據(jù)中心846的FCIP隧道。
[0031]類似地,數(shù)據(jù)中心846包括VCS842,VCS842又包括成員交換機(jī)832。成員交換機(jī)832耦合到主機(jī)841,主機(jī)841包括VM834和836,它們二者都耦合到虛擬交換機(jī)838和840。VCS842中還包括CNE設(shè)備830。CNE設(shè)備經(jīng)由以太網(wǎng)(TRILL)鏈路和FC鏈路耦合到成員交換機(jī)832。CNE設(shè)備830還耦合到目標(biāo)存儲設(shè)備822和目標(biāo)存儲設(shè)備的克隆820。
[0032]在操作期間,假設(shè)VM802需要從主機(jī)801移動到主機(jī)841。要注意,該移動之前是不可能的,因為虛擬機(jī)只在同一二層網(wǎng)絡(luò)域內(nèi)可見。一旦二層網(wǎng)絡(luò)域由三層設(shè)備(諸如網(wǎng)關(guān)路由器824)終結(jié),特定的虛擬機(jī)的所有標(biāo)識信息(其在二層報頭中攜帶)都被丟失。然而,在本發(fā)明的實施例中,因為CNE設(shè)備將二層域從VCS816延伸到VCS842,所以VM802從數(shù)據(jù)中心844到數(shù)據(jù)中心846的移動現(xiàn)在是可能的,原因在于上述基本要求得到滿足。
[0033]當(dāng)將TRILL幀從數(shù)據(jù)中心844轉(zhuǎn)發(fā)到數(shù)據(jù)中心846時,CNE設(shè)備818修改出口TRILL幀的報頭,以使得目的地RBridge標(biāo)識符是分配給數(shù)據(jù)中心846的RBridge標(biāo)識符。CNE設(shè)備818接著使用FCIP隧道來將這些TRILL幀傳遞到CNE設(shè)備830,CNE設(shè)備830又將這些TRILL幀轉(zhuǎn)發(fā)到它們各自的二層目的地。
[0034]VCS使用FC控制平面以自動形成架構(gòu),并將RBridge標(biāo)識符分配給每個成員交換機(jī)。在一個實施例中,CNE體系結(jié)構(gòu)在數(shù)據(jù)中心之間將TRILL和SAN架構(gòu)保持為分開。從TRILL的角度,每個VCS (其對應(yīng)于相應(yīng)的數(shù)據(jù)中心)表示為單個虛擬RBridge。另外,CNE設(shè)備可用TRILL鏈路和FC鏈路兩者耦合到VCS成員交換機(jī)。CNE設(shè)備可經(jīng)由TRILL鏈路加入VCS0然而,由于CNE設(shè)備將TRILLVCS架構(gòu)和SAN(FC)架構(gòu)保持為分開,所以CNE設(shè)備與成員交換機(jī)之間的FC鏈路被配置用于FC多架構(gòu)(mult1-fabric)。
[0035]如圖3中所示,數(shù)據(jù)中心908經(jīng)由網(wǎng)關(guān)路由器910耦合到WAN,數(shù)據(jù)中心920經(jīng)由網(wǎng)關(guān)路由器912耦合到WAN。數(shù)據(jù)中心908包括VCS906,VCS906包括成員交換機(jī)904。數(shù)據(jù)中心908中還包括CNE設(shè)備902。CNE設(shè)備902經(jīng)由TRILL鏈路和FC鏈路耦合到VCS成員交換機(jī)904。CNE設(shè)備902可經(jīng)由該TRILL鏈路加入VCS。然而,該FC鏈路允許CNE設(shè)備902維持和VCS成員交換機(jī)904的分開的FC架構(gòu)以攜帶FC業(yè)務(wù)。在一個實施例中,CNE設(shè)備902上的FC端口是FC EX_port。成員交換機(jī)904上對應(yīng)的端口是FC E_Port。CNE設(shè)備902上在WAN側(cè)的端口(耦合到網(wǎng)關(guān)路由器910)是FCIP VE_Port。數(shù)據(jù)中心920具有類似的配置。
[0036]在一個實施例中,每個數(shù)據(jù)中心的VCS包括指定為根RBridge的節(jié)點,用于多播目的。在初始設(shè)置期間,VCS中的CNE設(shè)備交換每個VCS的根RBridge標(biāo)識符。另外,CNE設(shè)備還交換每個數(shù)據(jù)中心的RBridge標(biāo)識符。要注意,該RBridge標(biāo)識符代表整個數(shù)據(jù)中心。關(guān)于數(shù)據(jù)中心RBridge標(biāo)識符的信息被分布作為到本地VCS中所有節(jié)點的靜態(tài)路由。
[0037]圖4A呈現(xiàn)了根據(jù)本發(fā)明的一個實施例的示出CNE設(shè)備如何處理跨數(shù)據(jù)中心的廣播、未知單播和多播(BUM)業(yè)務(wù)的示意圖。在這個例子中,兩個數(shù)據(jù)中心DC-1和DC-2經(jīng)由核心IP路由器耦合到IP WAN。DC-1中的CNE設(shè)備具有RBridge標(biāo)識符RB4,DC_2中的CNE設(shè)備具有RBridge標(biāo)識符RB6。而且,在DC-1中的VCS中,成員交換機(jī)RBl耦合到主機(jī)A。在DC-2中的VCS中,成員交換機(jī)RB5耦合到主機(jī)Z。
[0038]假設(shè)主機(jī)A需要發(fā)送多播業(yè)務(wù)到主機(jī)Z,并且主機(jī)A已經(jīng)具有主機(jī)Z的MAC地址的知識。在操作期間,主機(jī)A組裝以太網(wǎng)幀1002,以太網(wǎng)幀1002具有主機(jī)Z的MAC地址(表示為MAC-Z)作為其目的地地址(DA),和主機(jī)A的MAC地址(表示為MAC-A)作為其源地址(SA)。基于幀1002,成員交換機(jī)RBl組裝TRILL幀1003,其TRILL報頭1006包括為數(shù)據(jù)中心DC-1的根RBridge (表示為“DC 1-ROOT”)的RBridge標(biāo)識符作為目的地RBridge,和RBl作為源RBridge。(也就是說,在DC-1內(nèi),多播業(yè)務(wù)在本地多播樹上分布。)幀1003的外以太網(wǎng)報頭1004具有CNE設(shè)備RB4的MAC地址(表示為MAC-RB4)作為DA,以及成員交換機(jī)RBl的MAC地址(表示為MAC-RB1)作為SA。
[0039]當(dāng)幀1003到達(dá)CNE設(shè)備RB4時,CNE設(shè)備RB4進(jìn)一步修改該幀的TRILL報頭以產(chǎn)生幀1005。CNE設(shè)備RB4用數(shù)據(jù)中心DC-2的根RBridge標(biāo)識符DC2-R00T替換TRILL報頭1010中的目的地RBridge標(biāo)識符。源RBridge標(biāo)識符改變?yōu)閿?shù)據(jù)中心DC-1的虛擬RBridge標(biāo)識符DCl-RB (這允許數(shù)據(jù)中心DC-2學(xué)習(xí)數(shù)據(jù)中心DC-1的RBridge標(biāo)識符)。外以太網(wǎng)報頭1008具有核心路由器的MAC地址(MAC-RTR)作為其DA,以及CNE設(shè)備RB4的MAC地址(MAC-DC-1)作為其 SA。
[0040]幀1005隨后在FCIP隧道中傳輸通過IP WAN并到達(dá)CNE設(shè)備RB6。對應(yīng)地,CNE設(shè)備RB6更新報頭以產(chǎn)生幀1007。幀1007的TRILL報頭1014與幀1005保持相同。外以太網(wǎng)報頭1012現(xiàn)在具有成員交換機(jī)RB5的MAC地址——MAC-RB5——作為其DA,以及CNE設(shè)備RB6的MAC地址——MAC-RB6——作為其SA。一旦幀1007到達(dá)成員交換機(jī)RB5,TRILL報頭就被移除,并且內(nèi)以太網(wǎng)幀被傳遞到主機(jī)Z。
[0041]在各種實施例中,CNE設(shè)備可被配置為允許或不允許未知單播、廣播(例如ARP)或多播(例如IGMP探聽的)業(yè)務(wù)跨過數(shù)據(jù)中心的邊界。通過具有這些選項,可限制跨數(shù)據(jù)中心的BUM業(yè)務(wù)的量。要注意,數(shù)據(jù)中心之間的所有TRILL封裝BUM業(yè)務(wù)可帶有遠(yuǎn)程數(shù)據(jù)中心的根RBridge標(biāo)識符而被發(fā)送。這種轉(zhuǎn)譯在FCIP隧道的終結(jié)點處完成。
[0042]可實現(xiàn)附加的機(jī)制以使跨數(shù)據(jù)中心的BUM業(yè)務(wù)最少。例如,CNE設(shè)備和任何VCS成員交換機(jī)之間的TRILL端口可被配置為不參與任何的VLAN MGID。另外,兩個VCS上的eNS可被配置為同步它們所學(xué)習(xí)的MAC地址數(shù)據(jù)庫以使具有未知MAC DA的業(yè)務(wù)最少。(要注意,在一個實施例中,在所學(xué)習(xí)的MAC地址數(shù)據(jù)庫在不同的VCS中同步之前,具有未知MACDA的幀僅在本地數(shù)據(jù)中心內(nèi)泛洪。)
[0043]為了進(jìn)一步使BUM業(yè)務(wù)最少,可通過探聽ARP響應(yīng)以在VCS成員交換機(jī)上構(gòu)建ARP數(shù)據(jù)庫來減少諸如ARP業(yè)務(wù)的廣播業(yè)務(wù)。所學(xué)習(xí)的ARP數(shù)據(jù)庫接著使用eNS跨不同的數(shù)據(jù)中心交換和同步?;诖淼腁RP用于對VCS中的所有已知ARP請求進(jìn)行響應(yīng)。而且,可通過跨數(shù)據(jù)中心分布多播組成員關(guān)系(通過經(jīng)由eNS共享IGMP探聽信息)來減少跨數(shù)據(jù)中心的多播業(yè)務(wù)。
[0044]在數(shù)據(jù)中心之間轉(zhuǎn)發(fā)單播業(yè)務(wù)的處理描述如下。在FCIP隧道的形成期間,表示數(shù)據(jù)中心的邏輯RBridge標(biāo)識符被交換。當(dāng)TRILL幀到達(dá)FCIP隧道的進(jìn)入節(jié)點時,其中,TRILL目的地RBridge被設(shè)定為遠(yuǎn)程數(shù)據(jù)中心的RBridge標(biāo)識符,TRILL報頭中的源RBridge被轉(zhuǎn)譯為分配給本地數(shù)據(jù)中心的邏輯RBridge標(biāo)識符。當(dāng)巾貞離開FCIP隧道時,TRILL報頭中的目的地RBridge字段被設(shè)定為本地(即目的地)數(shù)據(jù)中心的虛擬RBridge標(biāo)識符。內(nèi)以太網(wǎng)報頭中的MAC DA和VLAN ID接著用于查找對應(yīng)的目的地RBridge (即目的地主機(jī)所附接到的成員交換機(jī)的RBridge標(biāo)識符),并且TRILL報頭中的目的地RBridge字段被相應(yīng)地更新。
[0045]在目的地數(shù)據(jù)中心中,基于入口幀,所有VCS成員交換機(jī)學(xué)習(xí)MAC SA(在幀的內(nèi)以太網(wǎng)報頭中)和TRILL源RBridge (其為分配給源數(shù)據(jù)中心的虛擬RBridge標(biāo)識符)之間的映射。這允許去往該MAC地址的將來的出口幀將被發(fā)送到正確的遠(yuǎn)程數(shù)據(jù)中心。要注意,因為分配給給定的數(shù)據(jù)中心的RBridge標(biāo)識符并不對應(yīng)于物理RBridge,在一個實施例中,使用靜態(tài)路由以將遠(yuǎn)程數(shù)據(jù)中心RBridge標(biāo)識符映射到本地CNE設(shè)備。
[0046]圖4B呈現(xiàn)了根據(jù)本發(fā)明的一個實施例的示出CNE設(shè)備如何處理跨數(shù)據(jù)中心的單播業(yè)務(wù)的示意圖。假設(shè)主機(jī)A需要發(fā)送單播業(yè)務(wù)到主機(jī)Z,而且主機(jī)A已經(jīng)具有主機(jī)Z的MAC地址的知識。在操作期間,主機(jī)A組裝以太網(wǎng)幀1002,以太網(wǎng)幀1002具有主機(jī)Z的MAC地址(MAC-Z)作為其DA,以及主機(jī)A的MAC地址(MAC-A)作為其SA?;趲?002,成員交換機(jī)RBl組裝TRILL幀1003,其TRILL報頭1009包括為數(shù)據(jù)中心DC-2的虛擬Rbridge (表示為“DC2-RB”)的RBridge標(biāo)識符作為目的地RBridge,以及RBl作為源RBridge。幀1003的外以太網(wǎng)報頭1004具有CNE設(shè)備RB4的MAC地址(MAC-RB4)作為DA,以及成員交換機(jī)RBl 的 MAC 地址(MAC-RBl)作為 SA。
[0047]當(dāng)幀1003到達(dá)CNE設(shè)備RB4時,CNE設(shè)備RB4進(jìn)一步修改該幀的TRILL報頭以產(chǎn)生幀1005。CNE設(shè)備RB4用數(shù)據(jù)中心DC-1的虛擬RBridge標(biāo)識符DCl-RB替換TRILL報頭1011中的源RBridge標(biāo)識符(這允許數(shù)據(jù)中心DC-2學(xué)習(xí)數(shù)據(jù)中心DC-1的RBridge標(biāo)識符)。外以太網(wǎng)報頭1008具有核心路由器的MAC地址(MAC-RTR)作為其DA,以及CNE設(shè)備RB4 的 MAC 地址(MAC-DC-1)作為其 SA。
[0048]幀1005隨后在FCIP隧道中傳輸通過IP WAN并到達(dá)CNE設(shè)備RB6。對應(yīng)地,CNE設(shè)備RB6更新報頭以產(chǎn)生幀1007。幀1007的TRILL報頭1015具有更新的目的地RBridge標(biāo)識符,其為RB5,DC-2中耦合到主機(jī)Z的VCS成員交換機(jī)。外以太網(wǎng)報頭1012現(xiàn)在具有成員交換機(jī)RB5的MAC地址——MAC-RB5——作為其DA,以及CNE設(shè)備RB6的MAC地址——MAC-RB6——作為其SA。一旦幀1007到達(dá)成員交換機(jī)RB5,TRILL報頭就被移除,并且內(nèi)以太網(wǎng)幀被傳遞到主機(jī)Z。
[0049]具有未知MAC DA的幀的跨數(shù)據(jù)中心的泛洪是數(shù)據(jù)中心學(xué)習(xí)另一數(shù)據(jù)中心中的MAC地址的一種方式。所有未知的SA在RBridge后面作為MAC被學(xué)習(xí),這對CNE設(shè)備也不例外。在一個實施例中,eNS可用于分布所學(xué)習(xí)的MAC地址數(shù)據(jù)庫,這降低跨數(shù)據(jù)中心的泛洪的量。
[0050]為了優(yōu)化轉(zhuǎn)儲(flush),即使在RBridge后面學(xué)習(xí)了 MAC地址,與MAC地址相關(guān)聯(lián)的實際VCS邊緣端口也存在于eNS MAC更新中。然而,邊緣端口 ID可能不再是跨數(shù)據(jù)中心唯一。要解決此問題,跨數(shù)據(jù)中心的所有eNS更新將用數(shù)據(jù)中心的RBridge標(biāo)識符限制MAC條目。該配置允許端口轉(zhuǎn)儲的跨數(shù)據(jù)中心傳播。
[0051]在本文所描述的體系結(jié)構(gòu)中,不同數(shù)據(jù)中心中的VCS不加入彼此;因此,分布式配置被保持分開。然而,為了允許虛擬機(jī)跨數(shù)據(jù)中心移動,將會存在需要跨數(shù)據(jù)中心被同步的一些配置數(shù)據(jù)。在一個實施例中,出于CNE的目的,創(chuàng)建特殊的模塊(軟件或硬件的)。該模塊被配置為對便利虛擬機(jī)跨數(shù)據(jù)中心的移動所需的配置信息進(jìn)行檢索,并且其在兩個或更多個VCS之間同步。
[0052]在一個實施例中,所學(xué)習(xí)的MAC地址數(shù)據(jù)庫跨數(shù)據(jù)中心分布。同樣,邊緣端口狀態(tài)變更通知(SCN)也跨數(shù)據(jù)中心分布。當(dāng)物理RBridge正停止工作時,SCN被轉(zhuǎn)換為數(shù)據(jù)中心之間的FCIP鏈路上的多個端口 SCN。
[0053]為了保護(hù)數(shù)據(jù)中心之間的連接性,VCS可在兩個或更多個CNE設(shè)備之間形成vLAG。在該模型中,vLAG RBridge標(biāo)識符被用作數(shù)據(jù)中心RBridge標(biāo)識符。FCIP控制平面被配置為知曉這種布置,并在這樣的情況下交換vLAG RBridge標(biāo)識符。[0054]圖5示出了根據(jù)本發(fā)明的實施例的其中兩個CNE設(shè)備被用于構(gòu)造vLAG的例子。在該例子中,VCSl 100包括兩個CNE設(shè)備1106和1108。CNE設(shè)備1106和1108 二者形成vLAGlllO,vLAGlllO耦合到核心IP路由器。vLAGlllO被分配虛擬RBridge標(biāo)識符,其也被用作用于VCS1100的數(shù)據(jù)中心RBridge標(biāo)識符。而且,vLAGlllO可針對VCS1100內(nèi)的任何成員交換機(jī)便利入口和出口二者的負(fù)載均衡(例如基于等價多路徑(ECMP))。
[0055]圖6示出了 CNE/LDCM設(shè)備1200,LDCM特征優(yōu)選被添加到CNE設(shè)備以創(chuàng)建單個設(shè)備。具有多個CPU1204的片上系統(tǒng)(SOC) 1202提供主處理能力。若干以太網(wǎng)連接1206優(yōu)選包括在S0C1202上以用作WAN鏈路,雖然如果期望的話,可使用單獨的以太網(wǎng)設(shè)備。FC交換芯片1208連接到S0C1202以提供到FC SAN的連接。CEE交換芯片1210連接到S0C1202以允許到VCS或到以太網(wǎng)LAN的附接。壓縮引擎1212與S0C1202 —起被提供來提供壓縮和重復(fù)數(shù)據(jù)刪除(dedup)能力,以減少WAN鏈路上的業(yè)務(wù)。出于安全目的,加密引擎1214被提供,因為為了安全性,F(xiàn)CIP隧道優(yōu)選被加密。
[0056]各種軟件模塊1216存在于CNE/LDCM設(shè)備1200中的存儲器中。這些包括底層操作系統(tǒng)1218、管理與VCS的交互的控制平面模塊1220、控制平面之上的用于TRILL功能的TRILL管理模塊1222、管理WAN上的FCIP隧道的FCIP管理模塊1224、與FC SAN交互的FC管理模塊1226、以及地址管理模塊1228。另外的模塊是高可用性(HA)模塊1230,其又包括連接故障切換子模塊1232。連接故障切換子模塊1232中的軟件在CPU1204中執(zhí)行,以執(zhí)行下面關(guān)于圖12-16所描述的連接故障切換操作。
[0057]圖7示出了添加有CNE/LDCM設(shè)備1302和1352的數(shù)據(jù)中心。示出了兩個數(shù)據(jù)中心100和150。每個都具有一系列執(zhí)行實際應(yīng)用的應(yīng)用服務(wù)器集群102和152 (諸如以SaaS (軟件即服務(wù))體系結(jié)構(gòu))。數(shù)據(jù)存儲在存儲架構(gòu)104和154中。到應(yīng)用服務(wù)器集群102和152的訪問被示出為通過web服務(wù)器集群106和156,雖然在LAN層的更直接的訪問是常見的。站點負(fù)載均衡器108和158跨web服務(wù)器集群106和156中的web服務(wù)器分布傳入的請求。全局負(fù)載均衡器110連接到因特網(wǎng)112以在數(shù)據(jù)中心100和150之間均衡負(fù)載。CNE/LDCM設(shè)備1302和1352在它們自身之間創(chuàng)建云虛擬互連(CVI) 1304,其實際上是通過WAN1306的FCIP隧道。CVI1304用于數(shù)據(jù)中心100和150之間的VM移動性、應(yīng)用負(fù)載均衡和存儲復(fù)制。
[0058]云虛擬互連1304優(yōu)選包括以下組件。如在2010年9月13日提交的、題為“FCIP Communications with Load Sharing and Failover” 的美國專利申請序列號12/880,495(其通過引用并入于此)中更充分地描述的,F(xiàn)CIP匯聚聚合多個TCP連接以支持從IOOMbps上至20Gbps的很寬的WAN帶寬范圍。其還支持多歸屬,并使得能夠在冗余網(wǎng)絡(luò)路徑之間透明地故障切換。
[0059]自適應(yīng)速率限制(ARL)在TCP連接上執(zhí)行以改變數(shù)據(jù)通過TCP連接發(fā)送的速率。ARL使用來自TCP連接的信息來動態(tài)地確定和調(diào)整對TCP連接的速率限制。這將允許TCP連接利用最大可用帶寬。其還提供了靈活數(shù)目的用于限定策略的優(yōu)先級,并且用戶可以限定所需要的優(yōu)先級。
[0060]高帶寬TCP(HBTCP)被設(shè)計用于長肥網(wǎng)絡(luò)上的高吞吐量應(yīng)用,諸如虛擬機(jī)和存儲遷移。其克服了 WAN中傳統(tǒng)TCP/IP的負(fù)面影響的挑戰(zhàn)。為了優(yōu)化性能,已經(jīng)做出了以下更改。[0061]I)擴(kuò)展的窗口:在HBTCP中,擴(kuò)展的窗口用于支持高達(dá)350ms或更多的WAN延時。最大可消耗存儲器將按每會話分配,以維持線路速率。
[0062]2)優(yōu)化的重排序耐受性:HBTCP對重復(fù)確認(rèn)具有更大的耐受性,并需要更多的重復(fù)ACK以觸發(fā)快速重傳。
[0063]3)優(yōu)化的快速恢復(fù):在HBTCP中,作為將擁塞窗口(cwnd)減少一半的替代,擁塞窗口所減少的大大小于50 %,來為其中做出大量的網(wǎng)絡(luò)重排序的情況作準(zhǔn)備。
[0064]4)快啟動:慢啟動階段被修改為快啟動,在快啟動中,初始吞吐量被設(shè)定為很大的值,相比擁塞事件之前的吞吐量,吞吐量僅最低限度地減少。
[0065]5)擁塞避免:通過精心地將所發(fā)送的數(shù)據(jù)量匹配到網(wǎng)絡(luò)速度,避免了擁塞,而不是注入更多的業(yè)務(wù)并造成擁塞事件,使得擁塞避免可能被禁用。
[0066]6)優(yōu)化的慢恢復(fù)=HBTCP中的重傳計時器(150ms)到期相比傳統(tǒng)TCP中的快得多,并在快速重傳不能提供恢復(fù)時使用。當(dāng)擁塞事件發(fā)生時,這更早地觸發(fā)慢啟動階段。
[0067]7)丟失分組連續(xù)重試:作為等待對SACK重傳的分組的ACK的替代,連續(xù)地重傳該分組以改善慢恢復(fù),如在2010年12月20日提交的、題為“Repeated Lost PacketRetransmission in a TCP/IP Network”的美國專利申請序列號12/972,713中所更詳細(xì)地描述的,其通過引用并入于此。
[0068]在用于VMware系統(tǒng)的VM移動性中使用的vMotion遷移數(shù)據(jù)通過CEE交換芯片1210的LAN以太網(wǎng)鏈路進(jìn)入CNE/LDCM設(shè)備1302,經(jīng)壓縮、加密的數(shù)據(jù)使用WAN上行鏈路(其使用S0C1202的以太網(wǎng)端口 1206)在WAN基礎(chǔ)結(jié)構(gòu)上被發(fā)送。存儲遷移也類似,來自FC交換芯片1208所提供的SAN FC鏈路的數(shù)據(jù)使用WAN上行鏈路遷移到遷移存儲。控制平面模塊1220負(fù)責(zé)建立、維護(hù)和終結(jié)與應(yīng)用服務(wù)器和目的地LDCM服務(wù)器的TCP會話。
[0069]圖8A和8B示出了 CNE/LDCM設(shè)備的功能框和模塊。LAN終結(jié)1402和SAN終結(jié)1404通過應(yīng)用模塊1408、數(shù)據(jù)精簡引擎1410和高可靠性傳遞應(yīng)用(HRDA)層1412互連到CVI1406 ο
[0070]LAN終結(jié)1402具有連接到LAN端口的二層(以太網(wǎng)或CEE)模塊1420。IP虛擬邊緣路由模塊1422將二層模塊1420連接到Hyper-TCP模塊1424。Hyper-TCP模塊1424操作在下面更詳細(xì)地描述,其包括連接到虛擬邊緣路由模塊1422的TCP分類器1426。TCP分類器1426連接到數(shù)據(jù)處理模塊1428和會話管理器1430。事件管理器1432連接到數(shù)據(jù)處理模塊1428和會話管理器1430。事件管理器1432、數(shù)據(jù)處理模塊1428和會話管理器1430都連接到套接字層1434,套接字層1434用作Hyper-TCP模塊1424和LAN終結(jié)1402到應(yīng)用模塊1408的接口。
[0071 ] SAN終結(jié)1404具有連接到SAN端口的FC 二層模塊1436。批處理/解批處理模塊1438將FC 二層模塊1436連接到路由模塊1440。為FICON業(yè)務(wù)1442、FCP業(yè)務(wù)1444和F_Class業(yè)務(wù)1446提供分開的模塊,每個模塊連接到路由模塊1440,并用作SAN終結(jié)1404和應(yīng)用模塊1408之間的接口。
[0072]應(yīng)用模塊1408具有三個主應(yīng)用:管理程序1448、web/安全1452和存儲1454。管理程序應(yīng)用1448與各種管理程序移動功能(諸如vMotion、XenMotion和MS實時遷移)協(xié)作。高速緩存子系統(tǒng)1450與管理程序應(yīng)用1448 —起被設(shè)置用于在移動操作期間高速緩存數(shù)據(jù)。web/安全應(yīng)用1452與VPN、防火墻和入侵系統(tǒng)協(xié)作。存儲應(yīng)用1454處理iSCS1、NAS和SAN業(yè)務(wù),并具有隨附的高速緩存1456。
[0073]數(shù)據(jù)精簡引擎1410使用壓縮引擎1212來處理壓縮/解壓縮和重復(fù)數(shù)據(jù)刪除操作,以允許WAN鏈路的改進(jìn)的效率。
[0074]HRDA層1412的主要功能是確保網(wǎng)絡(luò)層面以及傳輸層面上的通信可靠性。如所示出的,數(shù)據(jù)中心通過在IP上延伸L2TRILL網(wǎng)絡(luò)通過WAN基礎(chǔ)結(jié)構(gòu)而得以鞏固。提供冗余鏈路用作備份路徑。萬一主路徑失效,HRDA層1412就執(zhí)行到備份路徑的無縫切換。通過在備份路徑上重傳任何未確認(rèn)的分段,防止在主路徑上運(yùn)行的HBTCP會話經(jīng)歷任何擁塞事件。對未確認(rèn)分段的確認(rèn)和未確認(rèn)的分段本身被假定為丟失了。HRDA層1412也確保單個路徑內(nèi)的TCP會話的可靠性。萬一 HBTCP會話失效,使用HBTCP會話的任何遷移應(yīng)用也將失效。為了防止應(yīng)用失效,HRDA層1412透明地切換到備份HBTCP會話。
[0075]CVI1406包括連接到WAN鏈路的IP模塊1466。提供IPSEC模塊1464用于鏈路安全性。提供HBTCP模塊1462以允許上述HBTCP操作。QoS/ARL模塊1460處理上述QoS和ARL功能。匯聚模塊1458處理上述匯聚操作。
[0076]Hyper-TCP是對實時進(jìn)行的(live)服務(wù)和應(yīng)用在長距離網(wǎng)絡(luò)上的遷移進(jìn)行加速的組件。簡單地說,應(yīng)用客戶端和服務(wù)器之間的TCP會話被本地終結(jié),并且通過利用數(shù)據(jù)中心之間的高帶寬傳輸技術(shù),應(yīng)用遷移被加速。
[0077]Hyper-TCP主要支持兩種操作模式:
[0078]I)數(shù)據(jù)終結(jié)模式(DTM):在數(shù)據(jù)終結(jié)模式中,終端設(shè)備TCP會話不改變,但數(shù)據(jù)被本地確認(rèn),并且數(shù)據(jù)序列的完整性得以維持。
[0079]2)完全終結(jié)模式(CTM):在完全終結(jié)模式中,終端設(shè)備TCP會話完全由LDCM終結(jié)。數(shù)據(jù)序列未在終端設(shè)備之間維持,但數(shù)據(jù)完整性得以保障。
[0080]Hyper-TCP中主要有三個階段。它們是會話建立、數(shù)據(jù)傳送和會話終結(jié)。下面說明這三個階段。
[0081]I)會話建立:在該階段期間,連接建立分組被探聽,如連接端節(jié)點、窗口大小、MTU和序列號的TCP會話數(shù)據(jù)被高速緩存。如MAC地址的二層信息也被高速緩存。Hyper-TCP服務(wù)器上的TCP會話狀態(tài)與應(yīng)用服務(wù)器的相同,Hyper-TCP客戶端的TCP會話狀態(tài)與應(yīng)用客戶端相同。使用高速緩存的TCP狀態(tài)信息,Hyper-TCP設(shè)備可本地終結(jié)應(yīng)用客戶端和服務(wù)器之間的TCP連接,并可本地確認(rèn)數(shù)據(jù)分組的接收。因此,由應(yīng)用計算的RTT (往返時延)將被掩蓋而不包括WAN延時,這產(chǎn)生更好的性能。
[0082]圖9中示出了會話創(chuàng)建處理。應(yīng)用客戶端發(fā)送SYN,SYN由Hyper-TCP服務(wù)器探聽。Hyper-TCP服務(wù)器將SYN轉(zhuǎn)發(fā)到Hyper-TCP客戶端,可能在TCP報頭選項字段中帶有種子值。種子值可指示這是否是Hyper-TCP會話、終結(jié)模式和Hyper-TCP版本等。種子值由各種模塊(諸如數(shù)據(jù)精簡引擎1410和CVI1406)使用以確定會話加速的需要和水平。Hyper-TCP客戶端探聽SYN并將其轉(zhuǎn)發(fā)到應(yīng)用服務(wù)器。應(yīng)用服務(wù)器用SYN+ACK進(jìn)行響應(yīng),Hyper-TCP客戶端探聽SYN+ACK并將其轉(zhuǎn)發(fā)到Hyper-TCP服務(wù)器。Hyper-TCP服務(wù)器探聽SYN+ACK并將其轉(zhuǎn)發(fā)到應(yīng)用客戶端。應(yīng)用客戶端用ACK進(jìn)行響應(yīng),Hyper-TCP服務(wù)器將ACK轉(zhuǎn)發(fā)到Hyper-TCP客戶端,Hyper-TCP客戶端又將ACK提供給應(yīng)用服務(wù)器。這產(chǎn)生已創(chuàng)建的TCP會話。
[0083]2)數(shù)據(jù)傳送處理:一旦會話已經(jīng)建立,數(shù)據(jù)傳送始終在Hyper-TCP設(shè)備和終端設(shè)備之間本地處理。用作應(yīng)用客戶端的代理目的地服務(wù)器的Hyper-TCP服務(wù)器本地確認(rèn)數(shù)據(jù)分組,并且TCP會話狀態(tài)被更新。數(shù)據(jù)被移交給Hyper-TCP客戶端和服務(wù)器之間的HBTCP會話。HBTCP會話壓縮數(shù)據(jù)并將其轉(zhuǎn)發(fā)到Hyper-TCP客戶端。這減小了應(yīng)用客戶端和源所“看到”的RTT,因為其掩蓋了在網(wǎng)絡(luò)上發(fā)生的延時。在Hyper-TCP客戶端處所接收的數(shù)據(jù)如同該數(shù)據(jù)是已由該Hyper-TCP客戶端生成的而被對待,并且該數(shù)據(jù)被交給在Hyper-TCP客戶端和應(yīng)用服務(wù)器之間運(yùn)行的Hyper-TCP處理。在網(wǎng)絡(luò)中有擁塞時,從Hyper-TCP套接字(socket)取得的數(shù)據(jù)量被控制。
[0084]圖10示出了該處理。數(shù)據(jù)從應(yīng)用客戶端提供到Hyper-TCP服務(wù)器,Hyper-TCP服務(wù)器按照期望地對數(shù)據(jù)ACK,從而在Hyper-TCP服務(wù)器處本地終結(jié)連接。LDCM設(shè)備聚合并精簡所接收的數(shù)據(jù)以減少WAN業(yè)務(wù),并將數(shù)據(jù)發(fā)送到另一 LDCM設(shè)備中的Hyper-TCP客戶端。接收LDCM設(shè)備解精簡以及解聚合數(shù)據(jù),并將其提供給Hyper-TCP客戶端,Hyper-TCP客戶端又將數(shù)據(jù)提供給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器周期性地對數(shù)據(jù)ACK。如果應(yīng)用服務(wù)器需要將數(shù)據(jù)發(fā)送到應(yīng)用客戶端,則該處理基本是逆轉(zhuǎn)的。通過使Hyper-TCP服務(wù)器和客戶端本地對所接收的數(shù)據(jù)進(jìn)行響應(yīng)從而本地終結(jié)連接,應(yīng)用服務(wù)器和客戶端不知曉由Hyper-TCP服務(wù)器和客戶端之間的WAN鏈路產(chǎn)生的延遲。
[0085]3)會話終結(jié):所接收的FIN/RST像會話建立分組一樣被透明地發(fā)送通過。完成這一點以確保兩個終端設(shè)備之間的數(shù)據(jù)完整性和一致性。只有當(dāng)在接收到FIN之前所接收的所有分組都已經(jīng)被本地確認(rèn)并發(fā)送到Hyper-TCP客戶端時,在Hyper-TCP服務(wù)器處所接收的FIN/RST才會被透明地發(fā)送通過。如果已經(jīng)在Hyper-TCP客戶端上接收到FIN/RST分組,那么在所有的排隊數(shù)據(jù)已經(jīng)被發(fā)送并由應(yīng)用服務(wù)器確認(rèn)之后,該分組將被透明地轉(zhuǎn)發(fā)。在任一方向上,一旦FIN已經(jīng)被接收并轉(zhuǎn)發(fā),進(jìn)一步的分組傳送透明地完成,并且不被本地終結(jié)。
[0086]圖9中更詳細(xì)地示出了這一點。應(yīng)用客戶端提供FIN到Hyper-TCP服務(wù)器。如果Hyper-TCP服務(wù)器沒有接收到任何數(shù)據(jù),Hyper-TCP服務(wù)器則將從應(yīng)用客戶端恢復(fù)數(shù)據(jù)并將其提供給Hyper-TCP客戶端。Hyper-TCP服務(wù)器接著將FIN轉(zhuǎn)發(fā)到Hyper-TCP客戶端,Hyper-TCP客戶端轉(zhuǎn)儲Hyper-TCP客戶端中任何剩余的數(shù)據(jù),并接著將FIN轉(zhuǎn)發(fā)到應(yīng)用服務(wù)器。應(yīng)用服務(wù)器以對轉(zhuǎn)儲數(shù)據(jù)的ACK答復(fù),并接著以FIN答復(fù)。Hyper-TCP客戶端接著從應(yīng)用服務(wù)器接收任何未完成的數(shù)據(jù),并對應(yīng)用服務(wù)器恢復(fù)數(shù)據(jù)。ACK和數(shù)據(jù)被轉(zhuǎn)發(fā)到Hyper-TCP服務(wù)器。在數(shù)據(jù)被傳送之后,Hyper-TCP客戶端將FIN轉(zhuǎn)發(fā)到Hyper-TCP服務(wù)器。當(dāng)接收到ACK時,Hyper-TCP服務(wù)器轉(zhuǎn)發(fā)ACK并轉(zhuǎn)儲任何剩余的數(shù)據(jù)到應(yīng)用客戶端。在完成這些之后,Hyper-TCP服務(wù)器轉(zhuǎn)發(fā)FIN,并且會話結(jié)束。
[0087]圖11示出了 Hyper-TCP服務(wù)器和客戶端在CVI1712上的有效操作。一系列的應(yīng)用1702-1至1702-n分別與應(yīng)用1704-1至1704-n通信。Hyper-TCP服務(wù)器代理1706與應(yīng)用1702協(xié)作,而Hyper-TCP代理1708與應(yīng)用1704協(xié)作。在圖示中,示出了四個不同的Hyper-TCP 會話 H1、H2、H3 和 Hn (1710-1 至 1710-n),這些會話使用 CVI1712 穿過 WAN。
[0088]圖12示出了用于CNE/LDCM設(shè)備的基本高可用性(HA)配置。每個數(shù)據(jù)中心200(250)包括兩個并行的CNE/LDCM設(shè)備202A和202B(252A和252B),以及連接數(shù)據(jù)中心200和250的負(fù)載均衡器/路由器204(254)。
[0089]WAN優(yōu)化中的主要問題之一是提供無損的故障切換??山⒍鄠€TCP連接以提供用于客戶端-服務(wù)器對的WAN優(yōu)化。如圖12所示,建立三個TCP連接TCP1300、TCP2302和TCP3304以提供用于客戶端306和服務(wù)器308之間的TCP連接的WAN業(yè)務(wù)優(yōu)化。
[0090]WAN優(yōu)化設(shè)備(諸如CNE/LDCM202)通常從最接近客戶端306的WAN優(yōu)化設(shè)備202進(jìn)行本地TCP確認(rèn)。該WAN優(yōu)化設(shè)備202緩沖數(shù)據(jù)并將其傳遞到遠(yuǎn)程WAN優(yōu)化設(shè)備252,遠(yuǎn)程WAN優(yōu)化設(shè)備252將數(shù)據(jù)發(fā)送到服務(wù)器308。如果WAN優(yōu)化設(shè)備252使已經(jīng)由WAN優(yōu)化設(shè)備202使用TCP確認(rèn)而確認(rèn)的數(shù)據(jù)失效,那么問題就產(chǎn)生了。數(shù)據(jù)將丟失并且不能恢復(fù)。
[0091]該問題可分為兩個階段:連接建立階段和數(shù)據(jù)階段。在LAN站點200上有客戶端306和CNE/LDCM設(shè)備202之間的LAN連接,在另一 LAN站點250中有CNE/LDCM設(shè)備252和服務(wù)器308之間的連接。在連接建立階段,如圖13所示的以下序列保障在連接建立階段CNE/LDCM設(shè)備202和252之間的同步。
[0092]1.客戶端306發(fā)送去往遠(yuǎn)程服務(wù)器308的SYN請求。
[0093]2.本地側(cè)的CNE/LDCM設(shè)備202截獲SYN請求并隧道傳輸該請求到遠(yuǎn)程CNE/LDCM設(shè)備252。
[0094]3.遠(yuǎn)程CNE/LDCM設(shè)備252使用和其從客戶端306所接收的相同的源和目的地IP地址、TCP端口和序列號發(fā)送SYN請求到遠(yuǎn)程服務(wù)器308。
[0095]4.服務(wù)器308發(fā)送SYN/ACK,SYN/ACK將由遠(yuǎn)程CNE/LDCM設(shè)備252截獲。
[0096]5.遠(yuǎn)程CNE/LDCM設(shè)備252隧道傳輸SYN/ACK到本地CNE/LDCM設(shè)備202。
[0097]6.本地CNE/LDCM設(shè)備202用相同的源/目的地IP地址、TCP端口和序列號發(fā)送SYN/ACK到客戶端306。
[0098]7.客戶端306發(fā)送ACK,ACK由本地站點200中的CNE/LDCM設(shè)備202截獲。
[0099]8.本地CNE/LDCM設(shè)備202使用已經(jīng)創(chuàng)建的隧道將ACK隧道傳輸?shù)竭h(yuǎn)程CNE/LDCM設(shè)備252。
[0100]9.遠(yuǎn)程CNE/LDCM設(shè)備252使用和其所接收的相同的源/目的地IP地址、TCP端口和序列號轉(zhuǎn)發(fā)ACK到服務(wù)器308。
[0101]在一些變型中,可在步驟4之后進(jìn)行步驟9。在該情況下,更接近服務(wù)器308的CNE/LDCM設(shè)備252可能需要緩沖在發(fā)送ACK之后所接收的任何數(shù)據(jù)分組,直到其接收到來自遠(yuǎn)程CNE/LDCM設(shè)備202的ACK。服務(wù)器側(cè)的CNE/LDCM設(shè)備252在其接收到一定量的分組之后可關(guān)閉它的TCP窗口。這可限制該CNE/LDCM設(shè)備在接收到來自CNE/LDCM設(shè)備202的ACK前需要緩沖的分組的數(shù)量。
[0102]為了能夠提供無損的故障切換,來自更接近客戶端306的WAN優(yōu)化設(shè)備202的確認(rèn)應(yīng)當(dāng)與來自服務(wù)器308的確認(rèn)同步。也就是說,CNE/LDCM設(shè)備202不提供ACK到客戶端306,直到其接收到來自服務(wù)器308的轉(zhuǎn)發(fā)的ACK。由于WAN延時,該同步可能降低WAN310的吞吐量。WAN延時可導(dǎo)致TCP窗口被關(guān)閉,直到從遠(yuǎn)程側(cè)CNE/LDCM設(shè)備252接收到確認(rèn)。根據(jù)本發(fā)明,為了改善LAN延時,在本地側(cè)CNE/LDCM202正確地接收到數(shù)據(jù)之后,本地側(cè)CNE/LDCM202中的TCP窗口被打開,而不發(fā)送對該數(shù)據(jù)的確認(rèn)。通過這樣做,由于客戶端306和CNE/LDCM設(shè)備202之間的TCP1300連接的TCP窗口于在WAN優(yōu)化設(shè)備202處接收到該數(shù)據(jù)之后打開,所以在WAN310上有LAN —樣的性能。同時,WAN優(yōu)化設(shè)備202從不對未被傳遞到服務(wù)器308或其它端節(jié)點的數(shù)據(jù)確認(rèn),直到它實際接收到來自服務(wù)器308的轉(zhuǎn)發(fā)的ACK。圖14中針對兩個數(shù)據(jù)傳送示出了這一點。[0103]在根據(jù)本發(fā)明的一個變型中,用于TCP2302連接的WAN TCP窗口可被設(shè)定為大的大小,以從一開始就適應(yīng)WAN延時,而不是每次順序數(shù)據(jù)被接收時都打開TCP窗口。
[0104]同步確認(rèn)和打開TCP窗口的組合允許無損的操作以及對WAN連接的更好使用。
[0105]這可以改述為:不進(jìn)行早的ACK,其可導(dǎo)致數(shù)據(jù)丟失。相反,延遲ACK直到實際從目標(biāo)接收到ACK,但打開TCP窗口以允許沒有節(jié)流問題的改善的流。作為例子,如果連接以64K的窗口開始并接收到32K的數(shù)據(jù),則TCP窗口將是32K。CNE/LDCM設(shè)備202將立即轉(zhuǎn)發(fā)數(shù)據(jù)并將再次打開TCP窗口為64K。當(dāng)從服務(wù)器308接收到ACK并將其轉(zhuǎn)發(fā)到客戶端306時,TCP窗口大小將通過指定64K而不是96K被減小,如果TCP窗口大小未被改變,其會是96K。
[0106]如果有鏡像的CNE/LDCM設(shè)備,則可使用第二實施例,如圖15所示。在該實施例中,主機(jī)CNE/LDCM設(shè)備202A發(fā)送數(shù)據(jù)報通過WAN310,并同時發(fā)送該數(shù)據(jù)報到鏡像CNE/LDCM設(shè)備202B。當(dāng)鏡像CNE/LDCM設(shè)備202B對鏡像的數(shù)據(jù)報ACK時,起始CNE/LDCM設(shè)備202A對主機(jī)206進(jìn)行ACK,這相比WAN延時是短的時間。當(dāng)ACK通過WAN被接收時,鏡像CNE/LDCM設(shè)備202B獲得從起始CNE/LDCNM設(shè)備202A轉(zhuǎn)發(fā)的ACK并刪除鏡像的數(shù)據(jù)報。在失去起始CNE/LDCM設(shè)備202A時,TCP連接轉(zhuǎn)換到鏡像CNE/LDCM設(shè)備202B。鏡像CNE/LDCM設(shè)備202B辨識到該轉(zhuǎn)變,關(guān)閉LAN TCP窗口并發(fā)送所有未經(jīng)ACK的數(shù)據(jù)。接著,一經(jīng)發(fā)送成功,鏡像CNE/LDCM設(shè)備202B重新打開LAN TCP窗口,允許數(shù)據(jù)繼續(xù)。如果兩個CNE/LDCM設(shè)備202同時失效,則該實施例仍具有潛在的數(shù)據(jù)丟失,但它確實提供較早的ACK到主機(jī)。圖16中示出了該序列。
[0107]因此,通過轉(zhuǎn)向具有鏡像的WAN優(yōu)化設(shè)備的冗余環(huán)境,可完成到本地客戶端的快速確認(rèn)和無損的操作兩者。
[0108]系統(tǒng)設(shè)計者在設(shè)計網(wǎng)絡(luò)時可基于冗余以及故障預(yù)期和風(fēng)險而在替換方案之間選擇。另外,當(dāng)失去鏡像時,第二實施例可退回到第一實施例。
[0109]上面的描述旨在是說明性的而非限制性的。例如,上述實施例可彼此組合使用。對于本領(lǐng)域技術(shù)人員來說,在查看上面的描述后,許多其它的實施例將是顯而易見的。因此,本發(fā)明的范圍應(yīng)當(dāng)參照權(quán)利要求以及這樣的權(quán)利要求所享有的等同物的全部范圍來確定。在權(quán)利要求中,術(shù)語“包括(including)”和“其中(in which) ”用作相應(yīng)的術(shù)語“包括(comprising) ”和“其中(wherein) ”的通俗英語等同物。
【權(quán)利要求】
1.一種方法,包括: 在廣域網(wǎng)(WAN)設(shè)備處從源接收第一 TCP數(shù)據(jù); 由所述WAN設(shè)備增加針對所述源的TCP窗口大小以及由所述WAN設(shè)備將所述第一 TCP數(shù)據(jù)轉(zhuǎn)發(fā)到WAN ; 在所述WAN設(shè)備處接收來自所述WAN的對所述第一 TCP數(shù)據(jù)的ACK ;和由所述WAN設(shè)備將來自所述WAN的對所述第一 TCP數(shù)據(jù)的所述ACK轉(zhuǎn)發(fā)到所述源以及減小針對所述源的所述TCP窗口大小。
2.根據(jù)權(quán)利要求1的方法,其中,所述TCP窗口大小的增加和減小是基于所述第一TCP數(shù)據(jù)的大小的。
3.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括: 在所述WAN設(shè)備處從所述源接收SYN ; 由所述WAN設(shè)備將所述SYN轉(zhuǎn)發(fā)到所述WAN ; 在所述WAN設(shè)備處接收來自所述WAN的SYN/ACK ; 由所述WAN設(shè)備將所接收的SYN/ACK轉(zhuǎn)發(fā)到所述源; 在所述WAN設(shè)備處從所述源接收ACK ;和 由所述WAN設(shè)備將所述ACK轉(zhuǎn)發(fā)到所述WAN, 其中,所述操作產(chǎn)生所述第一 TCP數(shù)據(jù)的TCP連接。
4.根據(jù)權(quán)利要求3的方法,進(jìn)一步包括: 在接收到對所述第一 TCP數(shù)據(jù)的ACK之前,在所述WAN設(shè)備處從所述源接收第二 TCP數(shù)據(jù); 由所述WAN設(shè)備增加針對所述源的所述TCP窗口大小以及由所述WAN設(shè)備將所述第二TCP數(shù)據(jù)轉(zhuǎn)發(fā)到所述WAN ; 在所述WAN設(shè)備處從所述WAN接收對所述第二 TCP數(shù)據(jù)的ACK ;和由所述WAN設(shè)備將來自所述WAN的對所述第二 TCP數(shù)據(jù)的所述ACK轉(zhuǎn)發(fā)到所述源以及減小針對所述源的所述TCP窗口大小。
5.根據(jù)權(quán)利要求4的方法,其中,所述TCP窗口大小的增加和減小是基于所述第一TCP數(shù)據(jù)和所述第二 TCP數(shù)據(jù)的大小的。
6.一種廣域網(wǎng)(WAN)設(shè)備,包括: 用于將WAN耦合到TCP數(shù)據(jù)的源的多個網(wǎng)絡(luò)端口 ; 耦合到所述多個網(wǎng)絡(luò)端口的處理器;和 耦合到所述處理器并存儲軟件的存儲器,該軟件使所述處理器執(zhí)行以下操作: 響應(yīng)于從源接收到第一 TCP數(shù)據(jù),增加針對所述源的TCP窗口大小以及將所述第一 TCP數(shù)據(jù)轉(zhuǎn)發(fā)到所述WAN;和 響應(yīng)于從所述WAN接收到對所述第一 TCP數(shù)據(jù)的ACK,將來自所述WAN的對所述第一TCP數(shù)據(jù)的所述ACK轉(zhuǎn)發(fā)到所述源以及減小針對所述源的所述TCP窗口大小。
7.根據(jù)權(quán)利要求6的WAN設(shè)備,其中,所述TCP窗口大小的增加和減小是基于所述第一TCP數(shù)據(jù)的大小的。
8.根據(jù)權(quán)利要求6的WAN設(shè)備,其中,所述軟件進(jìn)一步使所述處理器執(zhí)行以下操作: 響應(yīng)于接收到來自所述源的SYN,將所述SYN轉(zhuǎn)發(fā)到所述WAN ;響應(yīng)于接收到來自所述WAN的SYN/ACK,將所接收的SYN/ACK轉(zhuǎn)發(fā)到所述源;和 響應(yīng)于接收到來自所述源的ACK,將所述ACK轉(zhuǎn)發(fā)到所述WAN, 其中,所述操作產(chǎn)生所述第一 TCP數(shù)據(jù)的TCP連接。
9.根據(jù)權(quán)利要求8的WAN設(shè)備,其中,所述軟件進(jìn)一步使所述處理器執(zhí)行以下操作: 響應(yīng)于在接收到對所述第一 TCP數(shù)據(jù)的ACK之前接收到來自所述源的第二 TCP數(shù)據(jù),增加針對所述源的所述TCP窗口大小以及將所述第二 TCP數(shù)據(jù)轉(zhuǎn)發(fā)到所述WAN ; 響應(yīng)于接收到來自所述WAN的對所述第二 TCP數(shù)據(jù)的ACK,將來自所述WAN的對所述第二 TCP數(shù)據(jù)的所述ACK轉(zhuǎn)發(fā)到所述源以及減小針對所述源的所述TCP窗口大小。
10.根據(jù)權(quán)利要求9的WAN設(shè)備,其中,所述TCP窗口大小的增加和減小是基于所述第一 TCP數(shù)據(jù)和所述第二 TCP數(shù)據(jù)的大小的。
【文檔編號】H04L12/893GK103975563SQ201280059783
【公開日】2014年8月6日 申請日期:2012年12月5日 優(yōu)先權(quán)日:2011年12月6日
【發(fā)明者】R·赫格蘭, A·薩巴, S·阿迪拉朱 申請人:博科通迅系統(tǒng)有限公司