一種基于sdn網絡的tcp連接復用方法
【專利摘要】本發明公開了一種基于SDN網絡的TCP連接復用方法,通過SDN控制器將前端多個客戶端的HTTP請求復用到SDN交換機與服務器建立的一個TCP連接上,由SDN控制器進行統一的TCP連接復用技術管理與配置。包括步驟:SDN控制器設置有TCP連接表,所述TCP連接表包含若干條TCP連接信息;所述客戶端發送與所述服務器建立TCP連接的請求;所述SDN控制器在所述TCP連接表中查詢并獲取匹配TCP連接;使用所述匹配TCP連接建立所述客戶端與所述服務器之間的TCP連接。本發明通過在SDN網絡中實現TCP連接復用,摒棄傳統網絡中分散管理負載均衡設備而帶來的復雜性,配置簡單靈活,實現高效集中管理、提高網絡運行效率。
【專利說明】
一種基于SDN網絡的TCP連接復用方法
技術領域
[0001 ] 本發明涉及軟件定義網絡(Software Defined Network,SDN)技術領域,尤其涉及一種基于SDN網絡的TCP連接復用方法。
【背景技術】
[0002]在傳統互聯網架構中,客戶端與服務器之間要建立HTTP連接,基本的處理方法是,客戶端在發送HTTP請求之前需要先與服務器進行TCP三次握手,建立TCP連接,然后發送HTTP請求。服務器收到HTTP請求后進行處理,并將處理的結果發送回客戶端,然后客戶端和服務器互相發送FIN并在收到FIN的ACK確認后關閉連接,一個完整的HTTP請求響應結束。
[0003]隨著技術發展,出現了基于傳統互聯網絡的TCP連接復用技術。如圖1所示,在客戶端(如:Cl ientA)與負載均衡設備之間進行三次握手并發送HTTP請求;負載均衡設備收到請求后,會檢測服務器是否存在空閑的長連接,如果不存在,服務器將建立一個新連接。當HTTP請求響應完成后,客戶端則與負載均衡設備協商關閉連接,而負載均衡則保持與服務器之間的這個連接。當有其它客戶端(如:ClientB)需要發送HTTP請求時,負載均衡設備會直接向與服務器之間保持的這個空閑連接發送HTTP請求,從而實現TCP連接復用。在這種實現方式中,負載均衡設備分散設置于網絡中,需要分別進行配置管理。
[0004]至2006年,軟件定義網絡興起,這種新型網絡創新架構是網絡虛擬化的一種實現方式,其核心技術OpenFlow通過將網絡設備控制面與數據面分離開來,從而實現了網絡流量的靈活控制。SDN將網絡設備上的控制權分離出來,由集中的控制器管理,無須依賴底層網絡設備(路由器、交換機、防火墻),屏蔽了來自底層網絡設備的差異。而控制權是完全開放的,用戶可以自定義任何想實現的網絡路由和傳輸規則策略,從而更加靈活和智能。SDN具備的靈活性和敏捷性更能夠適應互聯網/移動互聯網瞬息萬變的業務環境,因此,近年來SDN這一下一代互聯網關鍵技術蓬勃發展,它推動了未來互聯網技術創新。包括HP、IBM、Cisco、NEC以及國內的華為、H3C、中興等傳統網絡設備制造商都已紛紛加入到SDN及OpenFlow的陣營,同時有一些支持OpenFlow的網絡硬件設備已經面世。
[0005]基于SDN實現數據通信成為趨勢,SDN與OpenFlow的相關規范與標準持續演進,眾多基于傳統互聯網絡實現的功能需要針對SDN架構重新設計實現,因此基于SDN的TCP連接復用技術成為一個亟待解決的課題。同時,由于SDN將網絡設備的控制權分離出來,由控制器集中管理,因此,可以通過SDN控制器集中配置管理TCP連接復用技術所需配置項,摒棄了傳統網絡中TCP連接復用技術需要分散管理負載均衡設備而帶來的復雜性,配置簡單靈活,實現高效集中管理、提高網絡運行效率。
【發明內容】
[0006]本發明的目的在于提供一種基于SDN網絡的TCP連接復用方法,以實現在SDN網絡中運用TCP連接復用,通過控制器將前端多個客戶的HTTP請求復用到SDN交換機與服務器建立的一個TCP連接上,由控制器進行統一的TCP連接復用技術管理與配置。摒棄傳統網絡中分散管理負載均衡設備而帶來的復雜性,配置簡單靈活,實現高效集中管理、提高網絡運行效率。
[0007]本發明提供的一種基于SDN網絡的TCP連接復用方法,基于SDN網絡利用已有TCP連接建立客戶端與服務器之間的TCP連接,包括步驟:
[0008]當客戶端發送與服務器建立TCP連接的請求消息后,SDN控制器查詢設置于SDN控制器上的TCP連接表,該TCP連接表包含若干條TCP連接信息;
[0009]獲取查詢到的匹配TCP連接;
[0010]使用匹配的TCP連接建立客戶端與服務器之間的TCP連接。
[0011 ] 優選的,TCP連接表包含SDN交換機的標識IP地址和/或Mac地址。
[0012]優選的,TCP連接表中記錄的TCP連接信息數據至少包含服務器的IP地址、TCP連接信息的空閑時間以及TCP連接的當前使用狀態。
[0013]根據本發明的一優選實施例,SDN控制器中設有TCP連接的空閑時間參考值,當TCP連接表中TCP連接信息的空閑時間大于參考值時,SDN控制器執行一 TCP連接老化刪除動作。
[0014]根據本發明的一優選實施例,還包括SDN交換機向SDN控制器上報其私有信息的步驟,私有信息含SDN交換機標識信息。
[0015]優選的,SDN交換機使用可擴展報文Experimenter向SDN控制器上報其私有信息,Experimenter報文的Experimenter字段設置為255 ,Experimenter Type字段設置為I,Exper imenter報文私有字段存儲SDN交換機私有信息。
[0016]優選的,在TCP連接表中查詢匹配TCP連接信息時,使用服務器的IP地址和/SPortId作為查詢關鍵字。
[0017]根據本發明的一優選實施例,還包括步驟:
[0018]客戶端與服務器之間數據傳輸結束后,SDN控制器保留SDN交換機與服務器之間的TCP連接;
[0019]在TCP連接表中將保留的TCP連接狀態標記為空閑。
[0020]根據本發明的一優選實施例,還包括TCP連接老化刪除步驟:
[0021 ]判斷所述TCP連接表中各TCP連接信息的連接空閑時間是否超時;
[0022]如果超時,關閉SDN交換機與服務器之間的超時TCP連接;
[0023]將TCP連接表中的超時TCP連接信息刪除。
[0024]根據本發明的另一優選實施例,在SDN控制器根據客戶端發出的請求消息查詢TCP連接表之后,如果TCP連接表中存在匹配的TCP連接,并且匹配的TCP連接空閑,則使用本發明提出的TCP連接復用方法,復用匹配的TCP連接;如果TCP連接表中不存在匹配的TCP連接,或者匹配的TCP連接目前正在使用,則執行如下步驟:
[0025]SDN控制器建立新TCP連接;
[0026]SDN控制器使用新TCP連接為客戶端與服務器之間建立TCP連接
[0027]SDN控制器在TCP連接表中增加新TCP連接,并將狀態設置為使用中。
[0028]通過以上解決方案,本發明實現在SDN網絡中運用TCP連接復用,摒棄傳統網絡中分散管理負載均衡設備而帶來的復雜性,配置簡單靈活,實現高效集中管理、提高網絡運行效率。
【附圖說明】
[0029]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹。顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0030]圖1是本發明的現有技術流程不意圖;
[0031]圖2是本發明的工作原理網絡示意圖;
[0032]圖3是本發明的第一實施例示意圖;
[0033]圖4是本發明的第二實施例流程示意圖;
[0034]圖5是本發明的TCP連接查詢操作流程示意圖;
[0035]圖6是本發明的Experimenter報文示意圖;
[0036]圖7是本發明的TCP連接斷開操作流程示意圖;
[0037]圖8是本發明的TCP連接老化刪除流程示意圖。
[0038]附圖標號說明:
[0039]SDN控制器10、 SDN交換機20、服務器30、
[0040]客戶端40、 Exper imenter報文私有字段50、 TCP連接表60。
【具體實施方式】
[0041]下面結合附圖對本發明的優選實施例進行詳細闡述,以使本發明的優點和特征能更易于被本領域技術人員理解,從而對本發明的保護范圍做出更為清楚明確的界定。顯而易見地,下面描述中的附圖僅僅是本發明的部分實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖,并獲得其他的實施方式。
[0042]為使圖面簡潔,各圖中只示意性地表示出了與本發明相關的部分,它們并不代表其作為產品的實際結構。另外,以使圖面簡潔便于理解,在有些圖中具有相同結構或功能的部件,僅示意性地繪示了其中的部分結構示意,或僅標出了其中的一個。在本文中,“一個”不僅表示“僅此一個”,也可以表示“多于一個”的情形。
[0043]本發明的實施例提供了一種基于SDN網絡的TCP連接復用方法,以實現在SDN網絡中運用TCP連接復用,摒棄傳統網絡中分散管理負載均衡設備而帶來的復雜性,配置簡單靈活,實現高效集中管理、提高網絡運行效率。
[0044]結合圖2所示,提出本發明第一實施例,該發明實施例基于SDN網絡。SDN網絡包括SDN控制器10及SDN交換機20,SDN控制器10負責生成及下發數據流表,SDN交換機20依據流表進行數據轉發。客戶端40通過SDN交換機20與服務器30建立TCP連接。此處,為敘述上的簡便,SDN交換機20為實現數據轉發功能的互聯網構件統稱,它可以是單一 SDN交換機、多個SDN交換機,或者可實現SDN交換機數據轉發功能的互聯網構件組合。
[0045]結合圖3所示,在該發明實施例中,SDN控制器10中設置有TCP連接表60,TCP連接表60中記錄SDN交換機20與若干服務器30之間的TCP連接信息。進一步的,TCP連接表60包含SDN交換機20標識,SDN交換機20與TCP連接表60相對應。
[0046]當客戶端40向SDN交換機20發送與服務器30建立TCP連接的請求時,SDN交換機20在TCP連接表60中查找匹配連接信息,查找到可用匹配連接后,SDN控制器10使用該匹配連接建立客戶端40與服務器30之間的TCP連接。
[0047]TCP連接表60中的TCP連接信息具有使用狀態標識“空閑”或“使用”,“空閑”狀態表示該TCP連接目前沒有被使用,可以用于進行新的數據傳輸。“使用”狀態表示該TCP連接目前正在被使用,無法進行新的數據傳輸。
[0048]進一步的,TCP連接表60中可使用SDN交換機的Mac地址和/或IP地址作為SDN交換機20標識。TCP連接表60中記錄的TCP連接信息中包含服務器30的IP地址、TCP連接信息的空閑時間以及TCP連接的當前使用狀態。
[0049]為進一步闡述本發明的技術方案,現提出本發明第二實施例。結合圖4、圖5所示,SDN控制器中設有TCP連接的空閑時間參考值,當TCP連接表中TCP連接信息的空閑時間大于參考值時,則判定為TCP連接空閑超時。
[0050]本發明第二實施例包括如下步驟。
[0051 ] 步驟S2,SDN交換機20向SDN控制器10上報自身的Mac地址、IP地址等私有信息。
[0052]步驟S3,客戶端40向SDN交換機20發送與服務器30建立TCP連接的請求。
[0053]步驟S4,SDN交換機20分析接收到的請求報文信息,查詢流表,并從流表中獲取轉發規則。
[0054]步驟S5,查詢TCP連接表60,根據關鍵字查找匹配的連接。
[0055]步驟S6,判斷匹配的連接的使用狀態。
[0056]步驟S7,當匹配連接的使用狀態為“空閑”時,SDN控制器使用該匹配連接建立客戶端40與服務器30之間的TCP連接。
[0057]進一步的,本發明第二實施例還可以包括步驟S41、S42。
[0058]步驟S41,在步驟S4中SDN交換機20查詢流表時,如果流表中無匹配路由信息,SDN交換機20將客戶端40的請求報文上報SDN控制器10,SDN控制器10分析客戶端40的請求報文后,新增轉發規則。
[0059]步驟S42,SDN控制器10將更新后的流表下發SDN交換機20,SDN交換機20從流表中獲取轉發規則。
[0060]進一步的,本發明第二實施例在SDN控制器根據客戶端請求消息查詢TCP連接表之后,還包括步驟38、39、310。
[0061 ] 步驟S8,當步驟S5中查詢TCP連接表60無匹配的連接時;或者步驟S6中匹配連接的使用狀態為“使用”時,SDN控制器1向服務器30發起建立新TCP連接請求。
[0062]步驟S9,SDN控制器10使用該TCP新連接為客戶端40與服務器30之間的建立TCP連接。
[0063]步驟SlO,SDN控制器10在TCP連接表60中增加該TCP新連接信息,并將使用狀態設置為“使用”。
[0064]進一步的,結合圖6所示,步驟S2中,SDN交換機20使用可擴展報文Experimenter向SDN控制器1上報SDN交換機私有信息。Experimen ter報文的Ver si on、Type、Length、Transact1n Id字段為SDN規范統一字段,具實設置;Experimenter報文的Experimenter字段設置為255,數值255需要向開放網絡基金會(Open Networking Foundat1n,0NF)組織申請。Exper imenter Type字段設置為I,表示由SDN交換機20向SDN控制器1上報數據。Experimenter報文私有字段50用于存儲SDN交換機20的私有信息,含Mac地址、IP地址、PortId等標識信息。
[0065]進一步的,步驟S5中查詢TCP連接表60前,首先查詢SDN控制器10上是否有TCP連接表60,如果不存在,則創建TCP連接表60。
[0066]進一步的,步驟S5中查詢TCP連接表60時,使用服務器30的IP地址和/SPort Id作為查詢關鍵字,查找匹配的TCP連接信息。
[0067]結合圖7、圖8所示,本發明第二實施例還可以包括如下步驟。
[0068]步驟S13,客戶端40與服務器30之間數據傳輸結束后,客戶端40發送TCP連接關閉請求報文,SDN控制器10解析TCP連接關閉請求報文。
[0069]步驟S14,SDN控制器10關閉客戶端40與SDN交換機20之間的TCP連接,保留SDN交換機20與服務器30之間的TCP連接。
[0070]步驟S15,在TCP連接表60中,將步驟S14中保留的SDN交換機20與服務器30之間的TCP連接使用狀態更改為“空閑”。可選的,可根據關鍵字在TCP連接表60中查詢步驟S14中保留的SDN交換機20與服務器30之間的TCP連接,將該TCP連接信息使用狀態更改為“空閑”。[0071 ]進一步的,本實施例還可以包括TCP連接老化刪除步驟。根據SDN控制器設置的TCP連接的空閑時間參考值,判斷TCP連接表60中“空閑”狀態的TCP連接信息是否超時,如果超時,關閉SDN交換機20與服務器30之間的TCP連接,同時將TCP連接表中的匹配TCP連接信息刪除。
[0072]以上,僅為本發明的【具體實施方式】,但本發明的保護范圍并不局限于此,任何不經過創造性勞動想到的變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求書所限定的保護范圍為準。
【主權項】
1.一種基于SDN網絡的TCP連接復用方法,其特征在于:在所述SDN網絡中,一SDN交換機與一服務器之間存在一TCP連接,當所述TCP連接使用狀態為空閑,同時一客戶端向所述SDN交換機發起與所述服務器之間建立TCP連接的請求,則所述SDN控制器復用所述空閑TCP連接,該TCP連接復用的方法包括步驟: 當所述客戶端發送與所述服務器建立TCP連接的請求消息后,所述SDN控制器查詢設置于所述SDN控制器上的TCP連接表,所述TCP連接表包含若干條所述TCP連接信息; 獲取查詢到的匹配TCP連接; 使用所述匹配TCP連接建立所述客戶端與所述服務器之間的TCP連接。2.如權利要求1所述的一種基于SDN網絡的TCP連接復用方法,其特征在于,所述TCP連接表包含SDN交換機的標識IP地址和/或Mac地址。3.如權利要求1所述的一種基于SDN網絡的TCP連接復用方法,其特征在于,所述TCP連接表中記錄的所述TCP連接信息至少包含所述服務器的IP地址、所述TCP連接的空閑時間以及所述TCP連接的當前使用狀態。4.如權利要求3所述的一種基于SDN網絡的TCP連接復用方法,其特征在于,所述SDN控制器中設有TCP連接的空閑時間參考值,當所述TCP連接表中所述TCP連接信息的空閑時間大于所述參考值時,所述SDN控制器執行一 TCP連接老化刪除動作。5.如權利要求2所述的一種基于SDN網絡的TCP連接復用方法,其特征在于,還包括所述SDN交換機向所述SDN控制器上報其私有信息的步驟,所述私有信息含SDN交換機標識信息。6.如權利要求5所述的一種基于SDN網絡的TCP連接復用方法,其特征在于,所述SDN交換機使用可擴展報文Experimenter向所述SDN控制器上報其私有信息,Experimenter報文的Experimenter字段設置為255 ,Experimenter Type字段設置為I ,Experimenter報文私有字段存儲所述SDN交換機私有信息。7.如權利要求1所述的一種基于SDN網絡的TCP連接復用方法,其特征在于,在所述TCP連接表中查詢所述匹配的TCP連接時,使用所述服務器的IP地址和/SPort Id作為查詢關鍵字。8.如權利要求1所述的一種基于SDN網絡的TCP連接復用方法,其特征在于,還包括步驟: 所述客戶端與所述服務器之間數據傳輸結束后,所述SDN控制器保留所述SDN交換機與所述服務器之間的TCP連接; 在所述TCP連接表中將所述保留的TCP連接狀態標記為空閑。9.如權利要求1所述的一種基于SDN網絡的TCP連接復用方法,其特征在于,還包括TCP連接老化刪除步驟: 判斷所述TCP連接表中各TCP連接信息的連接空閑時間是否超時; 如果超時,關閉所述SDN交換機與所述服務器之間的超時TCP連接; 將所述TCP連接表中的所述超時TCP連接刪除。10.—種基于SDN網絡的TCP連接方法,其特征在于,在所述SDN控制器根據所述客戶端發出的TCP連接請求消息查詢所述TCP連接表之后,如果所述TCP連接表中存在所述匹配的TCP連接,并且所述匹配的TCP連接空閑,則使用如權利要求1所述的一種基于SDN網絡的TCP連接復用方法,復用所述匹配的TCP連接;如果所述TCP連接表中不存在所述匹配的TCP連接,或者所述匹配的TCP連接目前正在使用,執行如下步驟: 所述SDN控制器建立新TCP連接; 所述SDN控制器使用所述新TCP連接為所述客戶端與所述服務器之間建立TCP連接 所述SDN控制器在所述TCP連接表中增加所述新TCP連接,并將狀態設置為使用中。
【文檔編號】H04L29/08GK106027641SQ201610333969
【公開日】2016年10月12日
【申請日】2016年5月19日
【發明人】翟躍
【申請人】上海斐訊數據通信技術有限公司