TW201713093A - 應用於伺服器負載均衡中的連接建立方法及裝置 - Google Patents
應用於伺服器負載均衡中的連接建立方法及裝置 Download PDFInfo
- Publication number
- TW201713093A TW201713093A TW105107224A TW105107224A TW201713093A TW 201713093 A TW201713093 A TW 201713093A TW 105107224 A TW105107224 A TW 105107224A TW 105107224 A TW105107224 A TW 105107224A TW 201713093 A TW201713093 A TW 201713093A
- Authority
- TW
- Taiwan
- Prior art keywords
- message
- client
- connection information
- server
- connection
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1671—Details of the supervisory signal the supervisory signal being transmitted together with control information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本發明公開了一種應用於伺服器負載均衡中的連接建立方法及裝置,該方法包括:負載均衡伺服器接收用戶端發送的同步訊息;根據同步訊息中的用戶端連接資訊,計算得到序列值;向用戶端回復寫入真實伺服器連接資訊的同步確認訊息,並將該序列值作為同步確認訊息中的序號;接收用戶端回復的確認訊息,並根據確認訊息中的確認號,計算得到用戶端連接資訊;構建寫入用戶端連接資訊的自定義訊息;將自定義訊息發送至真實伺服器,以便於真實伺服器從自定義訊息中解析獲得用戶端連接資訊;根據用戶端連接資訊實現與用戶端傳輸控制協議TCP連接的建立。本發明實施例降低了連接建立過程中的資源消耗,能夠有效防禦攻擊者攻擊。
Description
本發明屬於通信技術領域,具體地說,關於一種應用於伺服器負載均衡中的連接建立方法及裝置。
伺服器負載均衡是指由負載均衡伺服器將用戶端的訪問流量均衡到多個後端的真實伺服器的技術,以實現對真實伺服器負載的均衡效果。
在進行負載均衡時,由於加入了負載均衡伺服器,用戶端發送的請求訊息需要經由負載均衡伺服器轉發給真實伺服器,因此,訊息處理的流程也發生了變化。在現有的一種伺服器負載均衡模式中,訊息處理流程是用戶端將請求訊息發送至負載均衡伺服器,再由負載均衡伺服器將用戶端請求訊息轉發至調用的真實伺服器,然後真實伺服器直接向用戶端回復應答訊息。
而在發送請求訊息之前,需要先建立用戶端與服務端的傳輸控制協定(英文全稱:Transmission Control Protocol,簡稱:TCP)連接,現有技術中,按照TCP的協議規定,TCP連接建立需要經過三次握手,在上述提供的
現有伺服器負載均衡模式中,TCP連接建立過程為:用戶端發送同步(英文全稱:Synchronous,簡稱:SYN)訊息至負載均衡伺服器,同步訊息中的選項欄位攜帶待協商的用戶端連接資訊;負載均衡伺服器將該同步訊息轉發至真實伺服器,真實伺服器創建資料區保存用戶端連接資訊,建立與用戶端的TCP半連接;真實伺服器向該用戶端回復同步確認(英文全稱:Synchronous Acknowledgement,簡稱:SYN+ACK)訊息,同步確認訊息中攜帶待協商的真實伺服器連接資訊;用戶端回復確認(英文全稱:Acknowledgement,簡稱:ACK)訊息給負載均衡伺服器;負載均衡伺服器將確認訊息轉發至真實伺服器;真實伺服器接收到用戶端的確認訊息時,將與用戶端建立的TCP半連接轉換為TCP連接。
但是,現有的這種TCP連接建立過程,攻擊者容易利用協議缺陷進行攻擊。如果攻擊者大量發送同步訊息,就會造成伺服器創建多個資料區,建立大量TCP半連接消耗系統資源,導致正常的請求無法得到處理,影響系統服務。
有鑑於此,本發明提供了應用於伺服器負載均衡中的連接建立方法及裝置,用以解決存在攻擊時,系統資源消
耗較多,導致正常的請求無法得到處理,影響系統服務的技術問題。
為了解決上述技術問題,本發明公開了一種應用於伺服器負載均衡中的連接建立方法,包括:負載均衡伺服器接收用戶端發送的同步SYN訊息;根據該同步訊息中的用戶端連接資訊,計算得到序列值;向該用戶端回復寫入真實伺服器連接資訊的同步確認同步確認訊息,並將該序列值作為該同步確認訊息中的序號;接收用戶端回復的確認確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息;將該自定義訊息發送至該真實伺服器,以便於該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端傳輸控制協議TCP連接的建立。
較佳地,該構建寫入該用戶端連接資訊的自定義訊息包括:在該用戶端回復的確認訊息中添加建連識別符,以及將該用戶端連接資訊寫入該確認訊息中,獲得構建的自定義訊息;該建連識別符用於識別該自定義訊息。
較佳地,該自定義訊息為自定義同步訊息;該構建寫入該用戶端連接資訊的自定義訊息包括:
將該用戶端的同步訊息中的序號作為該自定義同步訊息的序號;將該負載均衡伺服器的同步確認訊息中的序號作為該自定義同步訊息的確認號;將該用戶端連接資訊寫入該自定義同步訊息中,並在該自定義同步訊息中添加自定義欄位以寫入該負載均衡伺服器的位址;該將該自定義訊息發送至該真實伺服器,以便於該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端TCP連接的建立包括:將該自定義同步訊息發送至該真實伺服器,以便於該真實伺服器根據該自定義同步訊息中的用戶端連接資訊,建立與用戶端的TCP半連接,並根據該負載均衡伺服器位址向該負載均衡伺服器回復同步確認訊息,其中,該真實伺服器回復的同步確認訊息的序號為該自定義同步訊息的確認號;接收到真實伺服器回復的該同步確認訊息之後,將該用戶端回復的該確認訊息發送至該真實伺服器,以便於該真實伺服器將該TCP半連接轉換為TCP連接。
較佳地,該接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊包括:接收用戶端回復的攜帶請求資料的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊;
該構建寫入該用戶端連接資訊的自定義訊息包括:構建寫入該用戶端連接資訊,且攜帶該請求資料的自定義訊息;該將該自定義訊息發送至該真實伺服器,以便於該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端TCP連接的建立包括:將該自定義訊息發送至該真實伺服器,以便於該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊以及該請求資料;根據該用戶端連接資訊實現與該用戶端TCP連接的建立;基於該TCP連接,向該用戶端回復該請求資料的應答訊息。
較佳地,該根據該同步訊息中的用戶端連接資訊,計算得到序列值包括:將該同步訊息中的用戶端連接資訊,採用同步cookie技術的cookie處理函數進行處理,將計算得到的cookie值作為序列值;該接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊包括:接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該cookie值;對該cookie值進行校驗,並在校驗通過之後,獲得該用戶端連接資訊。
一種應用於伺服器負載均衡中的連接建立方法,包
括:用戶端向負載均衡伺服器發送攜帶該用戶端連接資訊的同步訊息;接收該負載均衡伺服器回復的同步確認訊息;其中,該同步確認訊息的序號為該負載均衡伺服器根據該同步訊息中的用戶端連接資訊,計算得到的序列值;該同步確認訊息攜帶真實伺服器連接資訊;向該負載均衡伺服器回復確認訊息,以便於該負載均衡伺服器根據該確認訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息;將該自定義訊息發送至該真實伺服器,由該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端TCP連接的建立。
一種應用於伺服器負載均衡中的連接建立方法,包括:真實伺服器接收負載均衡伺服器發送的自定義訊息,該自定義訊息按照如下方式獲得:該負載均衡伺服器接收用戶端發送的同步訊息;根據該同步訊息中的用戶端連接資訊,計算得到序列值;向該用戶端回復寫入真實伺服器連接資訊的同步確認訊息,並將該序列值作為該同步確認訊息中的序號;接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息;從該自定義訊息中解析獲得該用戶端連接資訊;
根據該用戶端連接資訊實現與該用戶端TCP連接的建立。
一種應用於伺服器負載均衡中的連接建立裝置,包括:第一接收模組,用於接收用戶端發送的同步訊息;計算模組,用於根據該同步訊息中的用戶端連接資訊,計算得到序列值;第一回復模組,用於向該用戶端回復寫入真實伺服器連接資訊的同步確認訊息,並將該序列值作為該同步確認訊息中的序號;第二接收模組,用於接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊;構建模組,用於構建寫入該用戶端連接資訊的自定義訊息;第一發送模組,用於將該自定義訊息發送至該真實伺服器,以便於該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端TCP連接的建立。
較佳地,該構建模組具體用於:在該用戶端回復的確認訊息中添加建連識別符,以及將該用戶端連接資訊寫入該確認訊息中,獲得構建的自定義訊息;該建連識別符用於識別該自定義訊息。
較佳地,該構建模組具體用於:
將該用戶端的同步訊息中的序號作為該自定義同步訊息的序號;將該負載均衡伺服器的同步確認訊息中的序號作為該自定義同步訊息的確認號;將該用戶端連接資訊寫入該自定義同步訊息中,並在該自定義同步訊息中添加自定義欄位寫入該負載均衡伺服器的位址;該第一發送模組包括:第一發送子模組,用於將該自定義同步訊息發送至該真實伺服器,以便於該真實伺服器根據該自定義同步訊息中的用戶端連接資訊,建立與用戶端的TCP半連接;第二發送子模組,用於接收到真實伺服器根據該負載均衡伺服器位址發送的同步確認訊息之後,將該用戶端回復的該確認訊息發送至該真實伺服器,以便於該真實伺服器將該TCP半連接轉換為TCP連接,其中,該真實伺服器回復的同步確認訊息的序號為該自定義同步訊息的確認號。
較佳地,該第二接收模組具體用於:接收用戶端回復的攜帶請求資料的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊;該構建模組具體用於:構建寫入該用戶端連接資訊,且攜帶該請求資料的自定義訊息;該第一發送模組具體用於:將該自定義訊息發送至該真實伺服器,以便於該真實伺服器接收到該自定義訊息之後,解析獲得該用戶端連接資訊以及請求資料;並根據該用戶端連接資訊建立與該用
戶端的TCP連接,基於該TCP連接,向該用戶端回復該請求資料的應答訊息。
較佳地,該計算模組具體用於:將該同步訊息中的用戶端連接資訊,採用同步cookie技術中的cookie處理函數進行處理,計算得到cookie值,作為序列值;該第二接收模組包括:接收子模組,用於接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該cookie值;校驗子模組,用於對該cookie值進行校驗,並在校驗通過之後,獲得該用戶端連接資訊。
一種應用於伺服器負載均衡中的連接建立裝置,包括:第二發送模組,用於向負載均衡伺服器發送攜帶該用戶端連接資訊的同步訊息;第三接收模組,用於接收該負載均衡伺服器回復的同步確認訊息,其中,該同步確認訊息的序號為該負載均衡伺服器根據該SYN訊息中的用戶端連接資訊,計算得到的序列值;該同步確認訊息攜帶真實伺服器連接資訊;第二回復模組,用於向該負載均衡伺服器回復確認訊息,以便於該負載均衡伺服器根據該確認訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息;將該自定義訊息發送至該真實伺服器,由該真實伺服器從該自定義訊息中解析獲得該用戶端
連接資訊;根據該用戶端連接資訊實現與該用戶端TCP連接的建立。
一種應用於伺服器負載均衡中的連接建立裝置,包括:第四接收模組,用於接收負載均衡伺服器發送的自定義訊息,該自定義訊息按照如下方式獲得:該負載均衡伺服器接收用戶端發送的同步訊息;根據該同步訊息中的用戶端連接資訊,計算得到序列值;向該用戶端回復寫入真實伺服器連接資訊的同步確認訊息,並將該序列值作為該同步確認訊息中的序號;接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息;解析模組,用於從該自定義訊息中解析獲得該用戶端連接資訊;連接建立模組,用於根據該用戶端連接資訊實現與該用戶端TCP連接的。
與現有技術相比,本發明可以獲得包括以下技術效果:負載均衡伺服器將用戶端發送的同步訊息中的用戶端連接資訊,保存在回復的同步確認的序號中,無需創建資料區保存,不會消耗過多的系統資源,從而在負載均衡伺服器即可以有效防禦攻擊者的攻擊,不會導致系統資源消耗殆盡,使得能夠處理正常的請求,降低了對系統服務的影響,且負載均衡伺服器可以通過構建自定義訊息將用戶
端回復的確認訊息中的用戶端連接資訊發送至真實伺服器,真實伺服器即可以建立與用戶端的TCP連接,保證了TCP連接的正常建立。
當然,實施本發明的任一產品必不一定需要同時達到以上所述的所有技術效果。
此處所說明的圖式用來提供對本發明的進一步理解,構成本發明的一部分,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在圖式中:圖1是本發明實施例的一種應用於伺服器負載均衡中的連接建立方法一個實施例的流程圖;圖2是本發明實施例的一種應用於伺服器負載均衡中的連接建立方法又一個實施例的信令圖;圖3是本發明實施例的一種應用於伺服器負載均衡中的連接建立方法又一個實施例的信令圖;圖4是本發明實施例的一種應用於伺服器負載均衡中的連接建立裝置一個實施例的結構示意圖;圖5是本發明實施例的一種應用於伺服器負載均衡中的連接建立裝置又一個實施例的結構示意圖;圖6是本發明實施例的一種應用於伺服器負載均衡中的連接建立裝置又一個實施例的結構示意圖;圖7是本發明實施例的一種連接建立系統一個實施例
的結構示意圖。
以下將配合圖式及實施例來詳細說明本發明的實施方式,藉此對本發明如何應用技術手段來解決技術問題並達成技術功效的實現過程能充分理解並據以實施。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀介質中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀介質的示例。
電腦可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存介質的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸介質,可用於儲存可以被計算設備訪問的資訊。按照本文中的界定,電腦可
讀介質不包括非暫存電腦可讀媒體(transitory media),如調製的資料信號和載波。
圖1為本發明實施例提供的一種應用於伺服器負載均衡中的連接建立方法一個實施例的流程圖,該方法可以包括以下幾個步驟:
101:負載均衡伺服器接收用戶端發送的同步(英文全稱:Synchronous,簡稱:SYN)訊息。
102:根據該SYN訊息中的用戶端連接資訊,計算得到序列值。
103:向該用戶端回復寫入真實伺服器連接資訊的同步確認(英文全稱:Synchronous Acknowledgement,簡稱:SYN+ACK)訊息,並將該序列值作為該SYN+ACK訊息中的序號。
104:接收用戶端回復的確認(英文全稱:Acknowledgement,簡稱:ACK)訊息,並根據該ACK訊息中的確認號,計算得到該用戶端連接資訊。
確認號即為該SYN+ACK訊息中的序號加1,因此將確認號減1即得到根據用戶端連接資訊計算得到的序列值,根據序列值,即可以獲得用戶端連接資訊。
105:構建寫入該用戶端連接資訊的自定義訊息。
106:將該自定義訊息發送至該真實伺服器,以便於該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端傳輸控制協議(英文全稱:Transmission Control Protocol,簡稱:
TCP)連接的建立。
本發明實施例中,負載均衡伺服器利用SYN中的用戶端連接資訊,計算得到一個序列值,該序列值作為負載均衡伺服器回復的SYN+ACK的序號,從而避免了創建資料區保存用戶端連接資訊,降低了對資源的消耗。即便存在攻擊,由於未創建資料區,因此不會導致資源消耗殆盡,有效實現了攻擊防禦。
且本發明實施例在負載均衡伺服器中即實現了攻擊防禦,增加了防禦性能。且將用戶端連接資訊保存在SYN+ACK的序號中,在接收到ACK訊息時,完成了類似三次握手協商的過程,負載均衡伺服器通過構建自定義訊息可以將用戶端連接資訊發送至真實伺服器,且負載均衡伺服器已將真實伺服器的連接資訊發送至用戶端,因此,真實伺服器即可以建立與用戶端的TCP連接,保證了TCP連接的正常建立。
基於建立的TCP連接,按照伺服器負載均衡模式,用戶端即可以將請求訊息發送至負載伺服器,由負載伺服器轉發至真實伺服器,真實伺服器即可以直接向用戶端回復應答訊息。
在實際應用中,TCP訊息的表頭結構通常包括來源埠、目的埠、序號、確認號、預留位、TCP選項、窗口、校驗和、緊急資料指標等欄位。
來源埠為發送訊息的埠或進程,目的埠為接收訊息的埠或進程。
序號用於標識每個訊息段,使目的主機可確認已收到的訊息段中的資料。在建立連接時,雙方都提供一個初始序號。本發明實施例中,SYN+ACK中的序號即為一個初始序號,該初始序號,利用用戶端的連接資訊計算得到,使得將用戶端連接資訊保存在了序號中,無需創建資料區進行保存,可以減少資源佔用。
確認號用於確定某個或幾個訊息已被接收,確認號等於順序接收到的最後一個訊息的序號加1。
因此根據用戶端回復的ACK訊息中的確認號,將其減去1,即可以得到根據用戶端連接資訊計算得到的序列值,進而可以獲得用戶端連接資訊。
連接資訊寫入TCP選項中,因此負載均衡伺服器可以從SYN訊息的TCP選項中解析獲得用戶端連接資訊,用戶端可以從SYN+ACK的TCP選項中解析獲得真實伺服器連接資訊。該自定義訊息中,用戶端連接資訊具體寫入到自定義訊息的TCP選項中。
其中,負載均衡伺服器回復的SYN+ACK訊息的TCP選項寫入的是真實伺服器連接資訊,真實伺服器連接資訊可以由負載均衡伺服器與真實伺服器協商獲得。
在現有技術中,攻擊者可以利用TCP的協議漏洞,發送大量的SYN訊息進行攻擊,也即SYN洪水(英文全稱:Synchronous flood,簡稱:SYN flood)攻擊,而導致創建大量的資料區,使得資源大量消耗,導致正常的請求,也即正常的訊息無法得到處理,影響系統服務。
SYN flood攻擊是一種廣為人知的拒絕服務攻擊(英文全稱:Denial of Service,簡稱:DoS)與分散式拒絕服務攻擊(英文全稱:Distributed Denial of Service,簡稱:DDoS)的方式之一,採用使得被攻擊方資源耗盡,如CPU滿負荷或記憶體不足的攻擊方式。
而通過本發明實施例,由於負載均衡伺服器回復SYN+ACK訊息,用戶端連接資訊保存在了負載等化器的SYN+ACK訊息的序號中,因此無需創建資料區,不會造成資源大量消耗,在負載均衡伺服器即實現了對SYN flood攻擊的有效防禦,提高了防禦性能,且降低了對資源消耗,使得正常請求可以得到處理。
本發明的伺服器負載均衡模式中,請求流量經由負載均衡伺服器,而應答流量不經過負載均衡伺服器,真實伺服器可以向用戶端直接回復應答訊息,降低了負載均衡伺服器的負擔,負載均衡伺服器也不會成為出口頻寬的瓶頸。
其中,TCP選項中的連接資訊可以包括:
mss:Maxitum Segment Size,最大訊息段長度,表示TCP傳往另一端的最大塊資料的長度
wscale:Window Scale Option,TCP視窗縮放選項,是用來增加TCP接收視窗的大小而超過65536位元組
timestamp:時間戳記選項,使發送方在每個訊息段中放置一個時間戳記值。接收方在確認中返回這個數值,從而允許發送方為每一個收到的ACK計算RTT
SACK:Selective Acknowledgment,選擇性確認選項,使TCP只重新發送丟失的封包,不用發送後續所有的封包,而且提供相應機制使接收方能告訴發送方哪些資料丟失,哪些資料重發了,哪些資料已經提前收到等
其中,構建寫入用戶端連接資訊的自定義訊息可以有多種可能的實現方式:在一種可能的實現方式中,可以直接將用戶端回復的ACK訊息進行修改,可以將用戶端連接資訊寫入ACK訊息的TCP選項,同時在ACK訊息中設置一個建連識別符,以便於區分該ACK訊息,從而即可以構建得到自定義訊息。
該建立識別符可以設置在ACK訊息的預留位中,可以取預留位中的一位元寫入建立標識,保留三位元。
真實伺服器接收到根據ACK訊息構建的自定義訊息時,根據建連識別符,可以確定該ACK訊息為自定義訊息,從而解析出其TCP選項中的用戶端連接資訊,真實伺服器的連接資訊已發送至用戶端,因此即可以建立與用戶端的TCP連接。
該自定義訊息的序號與ACK訊息一致,因此可以保證用戶端、負載伺服器以及真實伺服器的通行沒有序號的偏差。
在具體建立過程中,解析獲得用戶端連接資訊之後,發明通訊端(英文全稱:socket,用於描述位址和埠,是一個通信鏈的控制碼,可以用來實現不同虛擬機器或不同電腦之間的通信)資料結構,初始化socket的相關成員變
數,設置socket的TCP狀態為已建立(英文全稱:Established,在TCP狀態機中代表雙向通訊已建立),調用系統的socket創建函數創建socket,從而即可以完成TCP連接。
作為另一種可能的實現方式,仍然採用三次握手的方式,該自定義訊息為自定義SYN訊息;該自定義SYN訊息中,序號為用戶端發送的SYN訊息的序號,確認號為負載均衡伺服器回復的SYN+ACK訊息中的序號,使得真實伺服器回復的SYN+ACK訊息中的序號即為該自定義SYN訊息的確認號,也即負載均衡伺服器回復的SYN+ACK訊息中的序號;從而保證用戶端、負載伺服器以及真實伺服器的通行沒有序號的偏差。
TCP選項中寫入用戶端連接資訊;另外還攜帶負載均衡伺服器位址,具體可以通過在自定義SYN訊息中添加自定義的TCP選項欄位,以用來寫入負載均衡伺服器位址。
真實伺服器接收到該自定義SYN訊息之後,解析獲得用戶端連接資訊,根據該用戶端連接資訊實現與該用戶端TCP連接的建立包括建立TCP半連接,以及將TCP半連接轉換為TCP連接。
具體過程可以是:基於TCP協定,首先建立與用戶端的TCP半連接。
自定義SYN訊息的區分可以通過是否攜帶負載均衡伺服器位址來確定,具體可以是通過是否存在自定義TCP選項確定。
基於TCP協定,根據該負載均衡伺服器位址,真實伺服器向負載均衡伺服器回復SYN+ACK訊息,從而負載均衡伺服器即可以將該用戶端回復的該ACK訊息發送至該真實伺服器,真實伺服器即可以將TCP半連接轉換為TCP連接。
由於在負載均衡伺服器進行了攻擊防禦,將SYN訊息中的用戶端連接資訊保存在了SYN+ACK訊息的序號中,負載均衡伺服器接收到用戶端的ACK訊息之後,向真實伺服器發起自定義SYN訊息;因此真實伺服器接收到的SYN訊息可以認為是合法的SYN訊息,可以進行正常的處理。
當真實伺服器接收到自定義SYN訊息之後,識別出自定義SYN訊息中的自定義TCP選項,建立TCP半連接,並根據自定義TCP選項中的負載均衡伺服器位址,向負載均衡伺服器回復SYN+ACK訊息。
由於負載均衡伺服器保存的連接資訊中不包含負載均衡伺服器的本地位址,而查找連接需要用到用戶端位址、埠和真實伺服器位址、埠,所以回復的SYN+ACK訊息中需要攜帶這些資訊,真實伺服器回復的SYN+ACK訊息可以通過IPIP隧道(英文全稱:IPIP tunnel)方式發送,以保存這些資訊。IPIP隧道是將網路通訊協定(英文全稱:Internet Protocol,簡稱:IP)封包封裝在附加的IP封包頭中,通過IP網路傳送的簡單協定)
下面結合圖2所示的信令圖,對本發明實施例的應用於伺服器負載均衡中的連接建立方法的又一個實施例進行
描述,該方法應用在用戶端、負載均衡伺服器以及真實伺服器構成的負載均衡系統中,可以包括以下幾個步驟:
201:用戶端向負載均衡伺服器發送SYN訊息。
該SYN訊息的TCP選項攜帶用戶端連接資訊。
202:負載均衡伺服器根據該SYN訊息中的用戶端連接資訊,計算得到序列值。
具體的,序列值可以採用同步cookie(英文全稱:Synchronous cookie,簡稱:SYN cookie)技術,利用cookie處理函數對SYN訊息中的用戶端連接資訊進行處理,計算出一個cookie值,將計算得到的cookie值,作為序列值。SYN cookie技術是用來防範SYN flood攻擊的一種技術手段。它的原理即是在收到TCP訊息封包並返回SYN+ACK訊息時,不分配一個專門的資料區,而是根據這個SYN訊息計算出一個cookie值。
假設,Saddr是用戶端來源位址,daddr是訪問目標位址,sport是用戶端來源埠,dport是訪問目標埠,則cookie值的計算過程如下該:1、A=cookie_hash(saddr,daddr,sport,dport,0,0),hash函數使用crc32演算法;2、B=用戶端的SYN包的序號;3、C=jiffies/(HZ*60),jiffies是系統的目前時鐘計數,HZ為1秒鐘系統的時鐘計數,C的單位為分鐘;4、D=cookie_hash(saddr,daddr,sport,dport,C,1);5、E=保存的tcp選項值,分佈:[21][20][19-16][15-
0],21位元為SACK選項,20位元為timestamp選項,19-16位元為wscale送項,15-0位元為mss選項;6、cookie=A+B+(C《24)+((D+E)& 0x00FFFFFF)。
203:負載均衡伺服器向該用戶端回復寫入真實伺服器連接資訊的SYN+ACK訊息,並將該序列值作為該SYN+ACK訊息中的序號。
204:用戶端向該負載均衡伺服器回復ACK訊息。
該ACK訊息中的確認號根據該SYN+ACK訊息中的序號得到,具體的ACK訊息的確認號為SYN+ACK訊息中的序號加1。
205:負載均衡伺服器根據該ACK訊息中的確認號,計算得到該用戶端連接資訊。
其中,負載均衡伺服器將確認號減1,可以到序列值,在序列值為cookie值時,通過對cookie值進行校驗,在校驗通過之後,得到用戶端連接資訊;校驗過程可以如下該:1、cookie值為ACK訊息的確認序號-1;2、cookie=Cookie-A-B(見上文);3、C1=jiffies/(HZ*60),這裡的jiffies已經隨著時間推進往上增;4、Diff=C1-(Cookie》24)=C1-C,得到時間的差值,大於預設閾值則判斷不合法;5、C=C1-Diff,D=cookie_hash(saddr,daddr,
sport,dport,C,1);6、E=(cookie-D)& 0x00FFFFFF,得到保存的tcp option選項;7、校驗解析得到的選項是否是合法值;8、校驗通過,返回解析得到的選項值。
若檢驗未通過,則可以直接結束流程,不對用戶端訊息進行處理。
206:負載均衡伺服器在該用戶端回復的ACK訊息中添加建連識別符,以及將該用戶端連接資訊寫入該ACK訊息中,獲得構建的自定義訊息。
該建連識別符用於識別該自定義訊息,該建連識別符可以寫入ACK訊息表頭的預留位中。用戶端連接資訊寫入ACK訊息的TCP選項中。
207:將自定義訊息發送至真實伺服器。
208:真實伺服器解析獲得該用戶端連接資訊,根據該用戶端連接資訊建立與該用戶端的TCP連接。
其中,用戶端回復的ACK訊息中可以攜帶請求資料,或者該ACK訊息為攜帶確認標識的請求訊息。
因此在構建的自定義訊息中也攜帶該請求數據。
真實伺服器建立TCP連接之後,還可以基於該TCP連接,針對該請求資料,向用戶端回復應答訊息。
在本實施例中,用戶端連接資訊保存在負載均衡伺服器回復的SYN+ACK訊息中,無需創建資料區儲存,不佔用系統資源,因此即便存在SYN flood攻擊,在負載均衡
伺服器有效進行了攻擊防禦,不會影響正常請求的處理,不會影響系統服務。
下面結合圖3所示的信令圖,對本發明實施例的應用於伺服器負載均衡中的連接建立方法的又一個實施例進行描述,該方法應用在用戶端、負載均衡伺服器以及真實伺服器構成的負載均衡系統中,可以包括以下幾個步驟:
301:用戶端向負載均衡伺服器發送SYN訊息。
該SYN訊息的TCP選項攜帶用戶端連接資訊。
302:負載均衡伺服器根據該SYN訊息中的用戶端連接資訊,計算得到序列值。
其中,具體的,可以採用SYN cookie技術,利用cookie處理函數對用戶端連接資訊進行處理,將計算得到的cookie值作為序列值。
303:負載均衡伺服器向該用戶端回復寫入真實伺服器連接資訊的SYN+ACK訊息,並將該序列值作為該SYN+ACK訊息中的序號。
304:用戶端向該負載均衡伺服器回復ACK訊息。
該ACK訊息中的確認號根據該SYN+ACK訊息中的序號得到,具體的ACK訊息的確認號為該SYN+ACK訊息中的序號加1。
305:負載均衡伺服器根據該ACK訊息中的確認號,計算得到該用戶端連接資訊。
其中,負載均衡伺服器將確認號減1,可以得到序列值,在序列值為cookie值時,通過對cookie值進行校驗,
在校驗通過之後,得到用戶端連接資訊。
Cookie值的計算和校驗,可以參見上述實施例中該,在此不再贅述。
306:負載均衡伺服器將該用戶端的SYN訊息中的序號作為自定義SYN訊息的序號;將該負載均衡伺服器的SYN+ACK訊息中的序號作為該自定義SYN訊息的確認號;將該用戶端連接資訊寫入該自定義SYN訊息中,並在該自定義SYN訊息中添加自定義欄位寫入該負載均衡伺服器的位址。
307:負載均衡伺服器將該自定義SYN訊息發送至該真實伺服器。
308:真實伺服器根據該自定義SYN訊息中的用戶端連接資訊,建立與用戶端的TCP半連接。
309:真實伺服器根據該負載均衡伺服器位址,向該負載均衡伺服器回復SYN+ACK訊息。
真實伺服器回復的SYN+ACK訊息的序號為該自定義SYN訊息的確認號。
310:負載均衡伺服器接收到該真實伺服器回復的SYN+ACK訊息之後,將該用戶端回復的該ACK訊息發送至該真實伺服器。
311:真實伺服器建立與該用戶端的TCP連接。
其中,用戶端回復的ACK訊息中可以攜帶請求資料,或者該ACK訊息為攜帶確認標識的請求訊息。真實伺服器接收到用戶端的ACK訊息之後,基於該TCP連接,針對該
請求資料,向用戶端回復應答訊息。
在本實施例中,用戶端連接資訊保存在SYN+ACK訊息中,無需創建資料區儲存,不會消耗系統資源,即便存在SYN flood攻擊,由於沒有創建半連接,因此也不會導致系統資源消耗殆盡,不會影響正常請求的處理。由於在負載均衡伺服器已進行了有效的攻擊防禦,真實伺服器接收到的SYN訊息可以認為是合法訊息,可以正常進行處理。
圖4為本發明實施例提供的應用於伺服器負載均衡中的連接建立裝置一個實施例的結構示意圖,該裝置具體應用於負載均衡伺服器中,該裝置可以包括:第一接收模組401,用於接收用戶端發送的SYN訊息;計算模組402,用於根據該SYN訊息中的用戶端連接資訊,計算得到序列值;第一回復模組403,用於向該用戶端回復寫入真實伺服器連接資訊的SYN+ACK訊息,並將該序列值作為該SYN+ACK訊息中的序號;第二接收模組404,用於接收用戶端回復的ACK訊息,並根據該ACK訊息中的確認號,計算得到該用戶端連接資訊;構建模組405,用於構建寫入該用戶端連接資訊的自定義訊息;第一發送模組406,用於將該自定義訊息發送至該真
實伺服器,以便於該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端TCP連接的建立。
本發明實施例中,利用SYN訊息中的用戶端連接資訊,計算得到一個序列值,該序列值作為負載均衡伺服器回復的SYN+ACK的序號,從而避免了需要創建資料區保存用戶端連接資訊,即便存在攻擊,由於未創建資料區,因此不會導致資源浪費。
且本發明實施例在負載均衡伺服器即實現了攻擊防禦,使得增加了防禦性能。
且負載均衡伺服器接收到用戶端的ACK訊息之後,向真實伺服器發送了攜帶用戶端連接資訊的自定義訊息,使得真實伺服器建立與用戶端的TCP連接,保證了TCP連接的正常建立。
其中,作為一種可能的實現方式中,該構建模組405可以具體用於:在該用戶端回復的ACK訊息中添加建連識別符,以及將該用戶端連接資訊寫入該ACK訊息中,獲得構建的自定義訊息;該建連識別符用於識別該自定義訊息。
也即可以直接將用戶端回復的ACK訊息進行修改,根據TCP協定的規定,ACK訊息的TCP選項為空,因此可以將用戶端連接資訊寫入ACK訊息的TCP選項,同時在ACK訊息中設置一個建連識別符,從而即可以構建得到自定義訊息。
該建立識別符可以設置在ACK訊息的預留位中,可以取預留位中的一位元寫入建立標識,保留三位元。
真實伺服器接收到根據ACK訊息構建的自定義訊息時,根據建連識別符,可以確定該ACK訊息為自定義訊息,從而解析出其TCP選項中的用戶端連接資訊,真實伺服器的連接資訊已發送至用戶端,因此即可以建立與用戶端的TCP連接。
該自定義訊息的序號與ACK訊息一致,因此可以保證用戶端、負載伺服器以及真實伺服器的通行沒有序號的偏差。
在具體建立過程中,解析獲得用戶端連接資訊之後,發明socket資料結構,初始化socket的相關成員變數,設置socket的TCP狀態為Established,調用系統的socket創建函數創建socket,從而即可以完成TCP連接。
在另一種可能的實現方式中,該構建模組405可以具體用於:將該用戶端的SYN訊息中的序號作為該自定義SYN訊息的序號;將該負載均衡伺服器的SYN+ACK訊息中的序號作為該自定義SYN訊息的確認號;將該用戶端連接資訊寫入該自定義SYN訊息中,並在該自定義SYN訊息中添加自定義欄位寫入該負載均衡伺服器的位址;在該可能實現方式中,該第一發送模組406可以包括:第一發送子模組,用於將該自定義SYN訊息發送至該
真實伺服器,以便於該真實伺服器根據該自定義SYN訊息中的用戶端連接資訊,建立與用戶端的TCP半連接;第二發送子模組,用於接收到真實伺服器根據該負載均衡伺服器位址發送的SYN+ACK訊息之後,將該用戶端回復的該ACK訊息發送至該真實伺服器,以便於該真實伺服器將該TCP半連接轉換為TCP連接。
由於採用了三次握手方式,自定義SYN訊息可以觸發建立TCP連接,真實伺服器接收到該ACK訊息之後,再將TCP半連接轉換為TCP連接,用戶端即可以進行請求訊息的發送。
由於在負載均衡伺服器已經進行了攻擊防禦;因此真實伺服器接收到SYN訊息可以認為是合法的SYN訊息,可以進行正常的處理。
其中,用戶端回復的ACK訊息中可以攜帶請求資料。因此在該自定義訊息中也攜帶該請求數據。真實伺服器建立TCP連接之後,還可以基於該TCP連接,針對該請求資料,向用戶端回復應答訊息。
因此,本發明實施例中第二接收模組404可以具體用於:接收用戶端回復的攜帶請求資料的ACK訊息,並根據該ACK訊息中的確認號,計算得到該用戶端連接資訊;構建模組405可以具體用於:構建寫入該用戶端連接資訊,且攜帶該請求資料的自定義訊息;
第一發送模組406發送至真實伺服器的自定義訊息,用於觸發該該真實伺服器接收到該自定義訊息之後,解析獲得該用戶端連接資訊以及請求資料;並根據該用戶端連接資訊實現與該用戶端的TCP連接,根據該請求資料,基於該TCP連接向該用戶端回復應答訊息。
其中,可以採用SYN cookie技術,利用cookie處理函數對用戶端連接資訊進行處理,將計算得到的cookie值作為序列值。因此該計算模組可以具體用於:將該SYN訊息中的用戶端連接資訊,採用SYN cookie技術中的cookie處理函數進行處理,將計算得到的cookie值作為序列值。
該第二接收模組可以包括:接收子模組,用於接收用戶端回復的ACK訊息,並根據該ACK訊息中的確認號,計算得到該cookie值;校驗子模組,用於對該cookie值進行校驗,並在校驗通過之後,獲得該用戶端連接資訊。
將確認號減1,可以到序列值,在序列值為cookie值時,通過對cookie值進行校驗,在校驗通過之後,得到用戶端連接資訊。
Cookie值的計算和校驗,可以參見上述方法實施例的描述中所述,在此不再贅述。
如圖5所示,為本發明實施例提供的應用於伺服器負載均衡中的連接建立裝置的又一個實施例,該裝置具體應用於用戶端中,可以包括:
第二發送模組501,用於向負載均衡伺服器發送攜帶該用戶端連接資訊的SYN訊息。
第三接收模組502,用於接收該負載均衡伺服器回復的SYN+ACK訊息,其中,該SYN+ACK訊息的序號為該負載均衡伺服器根據該SYN訊息中的用戶端連接資訊,計算得到的序列值;,該SYN+ACK訊息攜帶真實伺服器連接資訊。
第二回復模組503,用於向該負載均衡伺服器回復ACK訊息,以便於該負載均衡伺服器根據該ACK訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息;將該自定義訊息發送至該真實伺服器,由該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端TCP連接的建立。
其中,該第二回復模組回復的ACK訊息中可以攜帶請求資料,從而負載均衡伺服器可以將請求資料攜帶在自定義訊息中,真實伺服器建立TCP連接之後,可以基於該TCP連接,向該裝置回復該請求資料的應答訊息。
如圖6所示,為本發明實施例提供的應用於伺服器負載均衡中的連接建立裝置的又一個實施例,該裝置具體應用於真實伺服器中,該真實伺服器為負載均衡伺服器調用的後端伺服器,可以包括:第四接收模組601,用於接收負載均衡伺服器發送的自定義訊息,該自定義訊息按照如下方式獲得:該負載均
衡伺服器接收用戶端發送的SYN訊息;根據該SYN訊息中的用尸端連接資訊,計算得到序列值;向該用戶端回復寫入真實伺服器連接資訊的SYN+ACK訊息,並將該序列值作為該SYN+ACK訊息中的序號;接收用戶端回復的ACK訊息,並根據該ACK訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息;解析模組602,用於從該自定義訊息中解析獲得該用戶端連接資訊;連接建立模組603,用於根據該用戶端連接資訊實現與該用戶端TCP連接的建立。
其中,當該自定義訊息是在該用戶端回復的ACK訊息中添加建連識別符,以及將該用戶端連接資訊寫入該ACK訊息中獲得的時,該解析模組602具體是在檢測到攜帶建連識別符ACK訊息時,從該ACK訊息中獲得該用戶端連接資訊,並觸發連接建立模組603根據該用戶端連接資訊建立與該用戶端的TCP連接。
當該自定義訊息為自定義的SYN訊息時,該自定義SYN訊息的序號為該用戶端發送的SYN訊息中的序號;確認號為該負載均衡伺服器回復的SYN+ACK訊息中的序號;TCP選項寫入的是用戶端連接資訊,還包括寫入該負載均衡伺服器的位址的自定義欄位。
該自定義欄位具體是自定義的TCP選項。
基於TCP協定,此時連接建立模組603根據該用戶端連接資訊實現與該用戶端TCP連接的建立包括TCP半連接
建立以及TCP半連接到TCP連接的轉換。
解析模組602具體是在接收到攜帶自定義欄位的該自定義SYN訊息時,解析獲得該用戶端連接資訊,觸發該連接建立模組建立與該用戶端的TCP半連接。
該裝置還可以包括:第三回復模組,用於根據該負載均衡伺服器位址,向該負載均衡伺服器回復SYN+ACK訊息。
該第四節接收模組還用於負載均衡伺服器接收到真實伺服器回復的SYN+ACK訊息之後,發送該用戶端回復的該ACK訊息。
從而該連接建立模組即可以將TCP半連接轉換為TCP連接。
用戶端回復的ACK訊息中還可以攜帶請求資料。
此時該裝置還可以用於針對該請求資料,基於該TCP連接向該用戶端回復應答訊息。
本發明實施例還提供了一種連接建立系統,如圖7所示,該系統可以包括用戶端701、負載均衡伺服器702以及真實伺服器703。
用戶端701,用於向負載均衡伺服器702發送SYN訊息;接收到負載均衡伺服器702回復的SYN+ACK訊息之後,向該負載均衡伺服器702回復ACK訊息;負載均衡伺服器702,用於根據該SYN訊息中的用戶端連接資訊,計算得到序列值;向該用戶端701回復寫入真實伺服器連接資訊的SYN+ACK訊息,並將該序列值作
為該SYN+ACK訊息中的序號;根據用戶端701該ACK訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息;將該自定義訊息發送至該真實伺服器703;真實伺服器703,用從該自定義訊息中解析獲得該用戶端連接資訊,並根據該用戶端連接資訊實現與該用戶端TCP連接的建立。
本發明實施例,負載均衡伺服器將SYN訊息中的用戶端連接資訊,保存在SYN+ACK訊息的序號中,無需創建資料區保存,避免了對系統資源的消耗,在負載均衡伺服器即實現了攻擊防禦,提高了防禦性能。且通過自定義訊息可以將用戶端連接資訊發送至真實伺服器,從而真實伺服器在接收到該自定義訊息之後,即可以建立TCP連接,包括了TCP連接的建立。
本發明實施例既保證了TCP連接的建立,同時可以有效防禦SYN flood攻擊,無需創建資料區保存用戶端發送的SYN訊息中的用戶端連接資訊,不會使得系統資源消耗殆盡,可以處理正常的請求,不會影響系統服務。
如在說明書及申請專利範圍當中使用了某些詞彙來指稱特定元件。本領域技術人員應可理解,硬體製造商可能會用不同名詞來稱呼同一個元件。本說明書及申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。如在通篇說明書及申請專利範圍當中所提及的“包含”為一開放式用語,故應解
釋成“包含但不限定於”。“大致”是指在可接收的誤差範圍內,本領域技術人員能夠在一定誤差範圍內解決所述技術問題,基本達到所述技術效果。此外,“耦接”一詞在此包含任何直接及間接的電性耦接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表該第一裝置可直接電性耦接於該第二裝置,或通過其他裝置或耦接手段間接地電性耦接至該第二裝置。說明書後續描述為實施本發明的較佳實施方式,然所述描述乃以說明本發明的一般原則為目的,並非用以限定本發明的範圍。本發明的保護範圍當視所附申請專利範圍所界定者為准。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的商品或者系統不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種商品或者系統所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,並不排除在包括所述要素的商品或者系統中還存在另外的相同要素。
上述說明示出並描述了本發明的若干較佳實施例,但如前所述,應當理解本發明並非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用於各種其他組合、修改和環境,並能夠在本文所述發明構想範圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本發明的精神和範圍,則都應在本發明所附申請專利範圍的保護範圍內。
Claims (14)
- 一種應用於伺服器負載均衡中的連接建立方法,包括:負載均衡伺服器接收用戶端發送的同步訊息;根據該同步訊息中的用戶端連接資訊,計算得到序列值;向該用戶端回復寫入真實伺服器連接資訊的同步確認訊息,並將該序列值作為該同步確認訊息中的序號;接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息;將該自定義訊息發送至該真實伺服器,以便於該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊,根據該用戶端連接資訊實現與該用戶端傳輸控制協議TCP連接的建立。
- 如申請專利範圍第1項所述的方法,其中,該構建寫入該用戶端連接資訊的自定義訊息包括:在該用戶端回復的確認訊息中添加建連識別符,以及將該用戶端連接資訊寫入該確認訊息中,獲得構建的自定義訊息;該建連識別符用於識別該自定義訊息。
- 如申請專利範圍第1項所述的方法,其中,該自定義訊息為自定義同步訊息;該構建寫入該用戶端連接資訊的自定義訊息包括:將該用戶端的同步訊息中的序號作為該自定義同步訊 息的序號;將該負載均衡伺服器的同步確認訊息中的序號作為該自定義同步訊息的確認號;將該用戶端連接資訊寫入該自定義同步訊息中,並在該自定義同步訊息中添加自定義欄位以寫入該負載均衡伺服器的位址;該將該自定義訊息發送至該真實伺服器,以便於該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端TCP連接的建立包括:將該自定義同步訊息發送至該真實伺服器,以便於該真實伺服器根據該自定義同步訊息中的用戶端連接資訊,建立與用戶端的TCP半連接,並根據該負載均衡伺服器位址向該負載均衡伺服器回復同步確認訊息,其中,該真實伺服器回復的同步確認訊息的序號為該自定義同步訊息的確認號;接收到真實伺服器回復的該同步確認訊息之後,將該用戶端回復的該確認訊息發送至該真實伺服器,以便於該真實伺服器將該TCP半連接轉換為TCP連接。
- 如申請專利範圍第1項所述的方法,其中,該接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊包括:接收用戶端回復的攜帶請求資料的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊; 該構建寫入該用戶端連接資訊的自定義訊息包括:構建寫入該用戶端連接資訊,且攜帶該請求資料的自定義訊息;該將該自定義訊息發送至該真實伺服器,以便於該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端TCP連接的建立包括:將該自定義訊息發送至該真實伺服器,以便於該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊以及該請求資料;根據該用戶端連接資訊實現與該用戶端TCP連接的建立;基於該TCP連接,向該用戶端回復該請求資料的應答訊息。
- 如申請專利範圍第1~4項中任一項之方法,其中,該根據該同步訊息中的用戶端連接資訊,計算得到序列值包括:將該同步訊息中的用戶端連接資訊,採用同步cookie技術的cookie處理函數進行處理,將計算得到的cookie值作為序列值;該接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊包括:接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該cookie值;對該cookie值進行校驗,並在校驗通過之後,獲得該用戶端連接資訊。
- 一種應用於伺服器負載均衡中的連接建立方法,包括:用戶端向負載均衡伺服器發送攜帶該用戶端連接資訊的同步訊息;接收該負載均衡伺服器回復的同步確認訊息;其中,該同步確認訊息的序號為該負載均衡伺服器根據該同步訊息中的用戶端連接資訊,計算得到的序列值;該同步確認訊息攜帶真實伺服器連接資訊;向該負載均衡伺服器回復確認訊息,以便於該負載均衡伺服器根據該確認訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息;將該自定義訊息發送至該真實伺服器,由該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊,根據該用戶端連接資訊實現與該用戶端TCP連接的建立。
- 一種應用於伺服器負載均衡中的連接建立方法,包括:真實伺服器接收負載均衡伺服器發送的自定義訊息,該自定義訊息按照如下方式獲得:該負載均衡伺服器接收用戶端發送的同步訊息;根據該同步訊息中的用戶端連接資訊,計算得到序列值;向該用戶端回復寫入真實伺服器連接資訊的同步確認訊息,並將該序列值作為該同步確認訊息中的序號;接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息; 從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端TCP連接的建立。
- 一種應用於伺服器負載均衡中的連接建立裝置,包括:第一接收模組,用於接收用戶端發送的同步訊息;計算模組,用於根據該同步訊息中的用戶端連接資訊,計算得到序列值;第一回復模組,用於向該用戶端回復寫入真實伺服器連接資訊的同步確認訊息,並將該序列值作為該同步確認訊息中的序號;第二接收模組,用於接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊;構建模組,用於構建寫入該用戶端連接資訊的自定義訊息;第一發送模組,用於將該自定義訊息發送至該真實伺服器,以便於該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端TCP連接的建立。
- 如申請專利範圍第8項所述的裝置,其中,該構建模組具體用於:在該用戶端回復的確認訊息中添加建連識別符,以及將該用戶端連接資訊寫入該確認訊息中,獲得構建的自定 義訊息;該建連識別符用於識別該自定義訊息。
- 如申請專利範圍第8項所述的裝置,其中,該構建模組具體用於:將該用戶端的同步訊息中的序號作為該自定義同步訊息的序號;將該負載均衡伺服器的同步確認訊息中的序號作為該自定義同步訊息的確認號;將該用戶端連接資訊寫入該自定義同步訊息中,並在該自定義同步訊息中添加自定義欄位寫入該負載均衡伺服器的位址;該第一發送模組包括:第一發送子模組,用於將該自定義同步訊息發送至該真實伺服器,以便於該真實伺服器根據該自定義同步訊息中的用戶端連接資訊,建立與用戶端的TCP半連接;第二發送子模組,用於接收到真實伺服器根據該負載均衡伺服器位址發送的同步確認訊息之後,將該用戶端回復的該ACK訊息發送至該真實伺服器,以便於該真實伺服器將該TCP半連接轉換為TCP連接,其中,該真實伺服器回復的同步確認訊息的序號為該自定義同步訊息的確認號。
- 如申請專利範圍第8項所述的裝置,其中,該第二接收模組具體用於:接收用戶端回復的攜帶請求資料的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊;該構建模組具體用於:構建寫入該用戶端連接資訊,且攜帶該請求資料的自 定義訊息;該第一發送模組具體用於:將該自定義訊息發送至該真實伺服器,以便於該真實伺服器接收到該自定義訊息之後,解析獲得該用戶端連接資訊以及請求資料;並根據該用戶端連接資訊建立與該用戶端的TCP連接,基於該TCP連接,向該用戶端回復該請求資料的應答訊息。
- 如申請專利範圍第8~11項中任一項之裝置,其中,該計算模組具體用於:將該同步訊息中的用戶端連接資訊,採用同步cookie技術中的cookie處理函數進行處理,計算得到cookie值,作為序列值;該第二接收模組包括:接收子模組,用於接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該cookie值;校驗子模組,用於對該cookie值進行校驗,並在校驗通過之後,獲得該用戶端連接資訊。
- 一種應用於伺服器負載均衡中的連接建立裝置,包括:第二發送模組,用於向負載均衡伺服器發送攜帶該用戶端連接資訊的同步訊息;第三接收模組,用於接收該負載均衡伺服器回復的同步確認訊息,其中,該同步確認訊息的序號為該負載均衡伺服器根據該同步訊息中的用戶端連接資訊,計算得到的 序列值;該同步確認訊息攜帶真實伺服器連接資訊;第二回復模組,用於向該負載均衡伺服器回復確認訊息,以便於該負載均衡伺服器根據該確認訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息;將該自定義訊息發送至該真實伺服器,由該真實伺服器從該自定義訊息中解析獲得該用戶端連接資訊;根據該用戶端連接資訊實現與該用戶端TCP連接的建立。
- 一種應用於伺服器負載均衡中的連接建立裝置,包括:第四接收模組,用於接收負載均衡伺服器發送的自定義訊息,該自定義訊息按照如下方式獲得:該負載均衡伺服器接收用戶端發送的同步訊息;根據該同步訊息中的用戶端連接資訊,計算得到序列值;向該用戶端回復寫入真實伺服器連接資訊的同步確認訊息,並將該序列值作為該同步確認訊息中的序號;接收用戶端回復的確認訊息,並根據該確認訊息中的確認號,計算得到該用戶端連接資訊;構建寫入該用戶端連接資訊的自定義訊息;解析模組,用於從該自定義訊息中解析獲得該用戶端連接資訊;連接建立模組,用於根據該用戶端連接資訊實現與該用戶端TCP連接的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??201510516359.9 | 2015-08-20 | ||
CN201510516359.9A CN106470238A (zh) | 2015-08-20 | 2015-08-20 | 应用于服务器负载均衡中的连接建立方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201713093A true TW201713093A (zh) | 2017-04-01 |
TWI677222B TWI677222B (zh) | 2019-11-11 |
Family
ID=58052026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105107224A TWI677222B (zh) | 2015-08-20 | 2016-03-09 | 應用於伺服器負載均衡中的連接建立方法及裝置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20170054640A1 (zh) |
EP (1) | EP3338396B1 (zh) |
JP (1) | JP6858749B2 (zh) |
CN (1) | CN106470238A (zh) |
TW (1) | TWI677222B (zh) |
WO (1) | WO2017031460A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547620B (zh) * | 2017-06-22 | 2021-06-22 | 新华三信息安全技术有限公司 | 一种响应时间获取方法及装置 |
CN110073336A (zh) * | 2017-10-13 | 2019-07-30 | 华为技术有限公司 | 应用管理方法及终端 |
CN109818912B (zh) * | 2017-11-22 | 2021-11-26 | 北京金山云网络技术有限公司 | 防范泛洪攻击的方法、装置、负载均衡设备和存储介质 |
CN109936543A (zh) * | 2017-12-18 | 2019-06-25 | 中国移动通信集团辽宁有限公司 | ACK Flood攻击的防护方法、装置、设备及介质 |
CN110198298B (zh) * | 2018-10-11 | 2021-08-27 | 腾讯科技(深圳)有限公司 | 一种信息处理方法、装置及存储介质 |
CN109088892B (zh) * | 2018-10-19 | 2021-02-12 | 网宿科技股份有限公司 | 数据传输方法、系统以及代理服务器 |
CN111193756B (zh) * | 2018-11-14 | 2023-04-07 | 中移(杭州)信息技术有限公司 | 一种vxlan隧道负载均衡方法及相关设备 |
CN109587163B (zh) * | 2018-12-27 | 2022-08-16 | 网宿科技股份有限公司 | 一种dr模式下的防护方法和装置 |
CN109587275A (zh) * | 2019-01-08 | 2019-04-05 | 网宿科技股份有限公司 | 一种通信连接的建立方法及代理服务器 |
US11223567B2 (en) * | 2019-01-18 | 2022-01-11 | Cisco Technology, Inc. | Transmission control protocol session mobility |
CN109729104B (zh) * | 2019-03-19 | 2021-08-17 | 北京百度网讯科技有限公司 | 客户端源地址获取方法、装置、服务器和计算机可读介质 |
CN112242934B (zh) * | 2019-07-16 | 2022-10-11 | 北京华耀科技有限公司 | 一种tcp连接的rtt计算方法 |
CN110572438A (zh) * | 2019-08-14 | 2019-12-13 | 北京天融信网络安全技术有限公司 | 一种网络连接建立方法、装置、网络设备和存储介质 |
CN110784464B (zh) * | 2019-10-24 | 2022-09-09 | 新华三信息安全技术有限公司 | 泛洪攻击的客户端验证方法、装置、系统及电子设备 |
CN111049754B (zh) * | 2019-12-18 | 2023-01-10 | 上海众源网络有限公司 | 数据通信方法、装置、设备和计算机可读存储介质 |
CN111800499B (zh) * | 2020-06-30 | 2022-04-15 | 北京百度网讯科技有限公司 | 一种数据传输方法、装置及电子设备 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6587438B1 (en) * | 1999-12-22 | 2003-07-01 | Resonate Inc. | World-wide-web server that finds optimal path by sending multiple syn+ack packets to a single client |
US7853781B2 (en) * | 2001-07-06 | 2010-12-14 | Juniper Networks, Inc. | Load balancing secure sockets layer accelerator |
US7058718B2 (en) * | 2002-01-15 | 2006-06-06 | International Business Machines Corporation | Blended SYN cookies |
US7337470B2 (en) * | 2002-08-23 | 2008-02-26 | International Business Machines Corporation | Method for minimizing denial of service attacks on network servers |
US7290050B1 (en) * | 2002-09-20 | 2007-10-30 | Blue Coat Systems, Inc. | Transparent load balancer for network connections |
US7979694B2 (en) * | 2003-03-03 | 2011-07-12 | Cisco Technology, Inc. | Using TCP to authenticate IP source addresses |
CN1315298C (zh) * | 2003-07-01 | 2007-05-09 | 智邦科技股份有限公司 | 同步封包处理系统与方法 |
US7519954B1 (en) * | 2004-04-08 | 2009-04-14 | Mcafee, Inc. | System and method of operating system identification |
US8145908B1 (en) * | 2004-10-29 | 2012-03-27 | Akamai Technologies, Inc. | Web content defacement protection system |
FI20050412A0 (fi) * | 2005-04-21 | 2005-04-21 | Nokia Corp | Menetelmä yhteyksien muodostamiseksi tietoliikennejärjestelmässä |
US7921282B1 (en) * | 2007-08-20 | 2011-04-05 | F5 Networks, Inc. | Using SYN-ACK cookies within a TCP/IP protocol |
CN102209023B (zh) * | 2010-03-31 | 2015-01-21 | 华为数字技术(成都)有限公司 | 一种建立FCoE通信连接的方法、装置、名字服务器和系统 |
US9027129B1 (en) * | 2012-04-30 | 2015-05-05 | Brocade Communications Systems, Inc. | Techniques for protecting against denial of service attacks |
US9338192B1 (en) * | 2012-12-28 | 2016-05-10 | Juniper Networks, Inc. | Connection management using connection request transfer protocol |
CN103139672B (zh) * | 2013-02-01 | 2016-05-04 | 北京邮电大学 | 无源光网络中支持有线无线混合环境的网络编码方法 |
US9560172B2 (en) * | 2013-05-06 | 2017-01-31 | Alcatel Lucent | Stateless recognition of keep-alive packets |
US20150189010A1 (en) * | 2013-12-30 | 2015-07-02 | Alcatel-Lucent Canada Inc. | Communication network with load balancing functionality |
US8984635B1 (en) * | 2014-01-06 | 2015-03-17 | Cloudflare, Inc. | Authenticating the identity of initiators of TCP connections |
-
2015
- 2015-08-20 CN CN201510516359.9A patent/CN106470238A/zh active Pending
-
2016
- 2016-03-09 TW TW105107224A patent/TWI677222B/zh not_active IP Right Cessation
- 2016-08-19 WO PCT/US2016/047876 patent/WO2017031460A1/en active Application Filing
- 2016-08-19 EP EP16837932.9A patent/EP3338396B1/en active Active
- 2016-08-19 JP JP2018508649A patent/JP6858749B2/ja active Active
- 2016-08-19 US US15/242,419 patent/US20170054640A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP6858749B2 (ja) | 2021-04-14 |
CN106470238A (zh) | 2017-03-01 |
US20170054640A1 (en) | 2017-02-23 |
EP3338396B1 (en) | 2021-09-22 |
EP3338396A4 (en) | 2018-08-08 |
EP3338396A1 (en) | 2018-06-27 |
TWI677222B (zh) | 2019-11-11 |
JP2018528679A (ja) | 2018-09-27 |
WO2017031460A1 (en) | 2017-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI677222B (zh) | 應用於伺服器負載均衡中的連接建立方法及裝置 | |
US10305904B2 (en) | Facilitating secure network traffic by an application delivery controller | |
Kumar et al. | Implementation and analysis of QUIC for MQTT | |
US10498831B2 (en) | Communication sessions at a CoAP protocol layer | |
CN109412946B (zh) | 一种确定回源路径的方法、装置、服务器及可读存储介质 | |
CN109196842B (zh) | 一种会话保持方法、设备及存储介质 | |
JP2009525708A (ja) | プロトコルリンクレイヤ | |
US20150189010A1 (en) | Communication network with load balancing functionality | |
WO2017162117A1 (zh) | 一种集群精确限速方法和装置 | |
CN107995233B (zh) | 建立连接的方法及相应的设备 | |
CN113810349B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
US11700321B2 (en) | Transparent proxy conversion of transmission control protocol (TCP) fast open connection | |
CN102427452B (zh) | 同步报文发送方法、装置和网络设备 | |
US11349934B2 (en) | Opportunistic transmission control protocol (TCP) connection establishment | |
CN108064441B (zh) | 一种加速网络传输优化方法以及系统 | |
EP3059924B1 (en) | Devices and methods for performing tcp handshakes | |
US11706290B2 (en) | Direct server reply for infrastructure services | |
CN114679265A (zh) | 流量获取方法、装置、电子设备和存储介质 | |
US10263913B2 (en) | Tunnel consolidation for real-time communications | |
CN114125080A (zh) | 一种报文链终端协议栈构建方法和解析方法、装置及终端 | |
US8676993B1 (en) | Bundled transmission control protocol connections | |
KR101104599B1 (ko) | 네트워크 상에서 tcp syn 플러딩 공격을 차단하는 장치 및 방법 | |
US11588925B2 (en) | Method for transferring large amounts of data through a telematic network in an efficient and reliable manner at a high-speed | |
CN116938598B (zh) | 信息发送方法、装置、电子设备和计算机可读介质 | |
CN117082123A (zh) | 通信方法、装置、系统、介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |