JP2018528679A - 負荷平衡システムにおいて接続を確立するデバイス及び方法 - Google Patents

負荷平衡システムにおいて接続を確立するデバイス及び方法 Download PDF

Info

Publication number
JP2018528679A
JP2018528679A JP2018508649A JP2018508649A JP2018528679A JP 2018528679 A JP2018528679 A JP 2018528679A JP 2018508649 A JP2018508649 A JP 2018508649A JP 2018508649 A JP2018508649 A JP 2018508649A JP 2018528679 A JP2018528679 A JP 2018528679A
Authority
JP
Japan
Prior art keywords
packet
client
syn
self
connection information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018508649A
Other languages
English (en)
Other versions
JP6858749B2 (ja
Inventor
シュエ,ボンボン
ウー,ジャーミン
リー,イー
Original Assignee
アリババ グループ ホウルディング リミテッド
アリババ グループ ホウルディング リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アリババ グループ ホウルディング リミテッド, アリババ グループ ホウルディング リミテッド filed Critical アリババ グループ ホウルディング リミテッド
Publication of JP2018528679A publication Critical patent/JP2018528679A/ja
Application granted granted Critical
Publication of JP6858749B2 publication Critical patent/JP6858749B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/1607Details of the supervisory signal
    • H04L1/1671Details of the supervisory signal the supervisory signal being transmitted together with control information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Abstract

負荷平衡システムにおいて接続を確立する装置が提供される。装置は、クライアントデバイスと、クライアントデバイスにサービスを提供するリアルサーバとの間に結合される。装置は、命令を記憶するメモリデバイスと、プロセッサとを含み、プロセッサは、メモリに記憶された命令を実行して、クライアントデバイスから同期(SYN)パケットを受信することであって、SYNパケットはクライアント接続情報を含む、受信することと、クライアント接続情報に基づいて、シリアルナンバーを計算することと、第1の同期肯定応答(SYN+ACK)パケットをクライアントデバイスに返送することであって、第1のSYN+ACKパケットはリアルサーバの接続情報を含む、返送することと、クライアントから肯定応答(ACK)パケットを受信することと、クライアント接続情報を含む自己定義パケットを生成することと、自己定義パケットをリアルサーバに転送することとを行うように構成される。

Description

相互出願の相互参照
本願は、2015年8月20日に出願された中国特許出願第201510516359.9号に基づき、この優先権を主張するものであり、この出願の全体内容を参照により本明細書に援用する。
技術分野
本開示は、一般的には通信技術の分野に関し、より詳細には、負荷平衡システムにおいて接続を確立するデバイス及び方法に関する。
背景
サーバの負荷平衡は、負荷平衡デバイスがクライアントビジットのフローを幾つかのバックエンドサーバにリダイレクトして、前記バックエンドサーバへのビジットを均等に分散させる技法である。
負荷平衡システムは負荷平衡デバイスを含むため、クライアントデバイス(クライアント)からのサービス要求パケットは、負荷平衡デバイスにより、サービス要求パケットを処理するバックエンドサーバ(例えば、リアルサーバ)にリダイレクトされる必要がある。これは、パケットの処理フローを変える。関連する負荷平衡システムでは、パケットの処理フローは、クライアントによる要求パケットを負荷平衡デバイスに転送することを含み、負荷平衡デバイスは次に、クライアント要求パケットをリアルサーバに転送する。次に、リアルサーバは、応答パケットをクライアントに直接転送する。
クライアント要求パケットを転送する前、クライアントとリアルサーバとの間に、伝送制御プロトコル(TCP)に基づく接続を確立する必要がある。関連技術では、TCP接続を確立するには、TCPに従って3ウェイハンドシェイクを実行する必要がある。上記負荷平衡システムでのTCP接続の確立は、以下のステップを含む。
クライアントは、同期(SYN)パケットを負荷平衡デバイスに転送する。SYNパケットのオプションフィールドは、クライアント接続情報を含む。
負荷平衡デバイスは、SYNパケットをリアルサーバに転送する。リアルサーバは、クライアント接続情報を記憶するデータベースを作成し、クライアントとハーフオープン接続を確立する。
リアルサーバは、同期肯定応答(SYN+ACK)パケットをクライアントに返送する。SYN+ACKパケットは、リアルサーバの接続情報を含む。
クライアントは、肯定応答(ACK)パケットを負荷平衡デバイスに転送する。
負荷平衡デバイスは、ACKパケットをリアルサーバに転送する。
リアルサーバは、ACKパケットを受信する場合、ハーフオープンTCP接続をクライアントとのフルTCP接続に変換する。
しかし、TCP接続が確立されている間、攻撃者がプロトコルの欠陥を使い、TCP接続を攻撃することがある。攻撃者が沢山のSYNパケットをリアルサーバに送信する場合、サーバは、非常に大きなデータベースを作成する必要があり、多くのシステムリソースをハーフオープンTCP接続の確立に割き、その結果、正当な要求は処理されず、リアルサーバにより提供される通常のサービスに影響を及ぼす。
概要
上記概説及び以下の詳細な説明が、単に例示的及び説明的なものであり、特許請求の範囲に記載される本発明の限定ではないことを理解されたい。
本開示の実施形態によれば、負荷平衡システムにおいて接続を確立する装置が提供される。本装置は、クライアントデバイスと、クライアントデバイスにサービスを提供するリアルサーバとの間に結合される。本装置は、命令を記憶するメモリデバイスと、プロセッサとを含み、プロセッサは、メモリデバイスに記憶された命令を実行して、クライアントデバイスから同期(SYN)パケットを受信することであって、SYNパケットはクライアント接続情報を含む、受信することと、クライアント接続情報に基づいて、シリアルナンバーを計算することと、第1の同期肯定応答(SYN+ACK)パケットをクライアントデバイスに返送することであって、シリアルナンバーは、第1のSYN+ACKパケットのシリアルナンバーであるように割り当てられ、第1のSYN+ACKパケットはリアルサーバの接続情報を含む、返送することと、クライアントから肯定応答(ACK)パケットを受信し、ACKパケットの確認番号に基づいて計算してクライアント接続情報を取得することと、クライアント接続情報を含む自己定義パケットを生成することと、自己定義パケットをリアルサーバに転送し、それにより、リアルサーバはクライアント接続情報を自己定義パケットから抽出し、クライアント接続情報に基づいて、クライアントデバイスとの伝送制御プロトコル(TCP)接続を確立することとを行うように構成される。
本開示の実施形態によれば、方法をデバイスに実行させるためにデバイスの少なくとも1つのプロセッサによって実行可能な1組の命令を記憶する非一時的コンピュータ可読媒体が提供される。方法は、クライアントデバイスから同期(SYN)パケットを受信することであって、SYNパケットはクライアント接続情報を含む、受信することと、クライアント接続情報に基づいて、シリアルナンバーを計算することと、第1の同期肯定応答(SYN+ACK)パケットをクライアントデバイスに返送することであって、シリアルナンバーは、第1のSYN+ACKパケットのシリアルナンバーであるように割り当てられ、第1のSYN+ACKパケットはリアルサーバの接続情報を含む、返送することと、クライアントから肯定応答(ACK)パケットを受信し、ACKパケットの確認番号に基づいて計算してクライアント接続情報を取得することと、クライアント接続情報を含む自己定義パケットを生成することと、自己定義パケットをリアルサーバに転送し、それにより、リアルサーバはクライアント接続情報を自己定義パケットから抽出し、クライアント接続情報に基づいて、クライアントデバイスとの伝送制御プロトコル(TCP)接続を確立することとを含む。
本開示の実施形態によれば、負荷平衡システムにおいて接続を確立する方法が提供される。本方法は、クライアントデバイスと、クライアントデバイスにサービスを提供するリアルサーバとの間に結合される負荷平衡デバイスにより実行される。本方法は、クライアントデバイスから同期(SYN)パケットを受信することであって、SYNパケットはクライアント接続情報を含む、受信することと、クライアント接続情報に基づいて、シリアルナンバーを計算することと、第1の同期肯定応答(SYN+ACK)パケットをクライアントデバイスに返送することであって、シリアルナンバーは、第1のSYN+ACKパケットのシリアルナンバーであるように割り当てられ、第1のSYN+ACKパケットはリアルサーバの接続情報を含む、返送することと、クライアントから肯定応答(ACK)パケットを受信し、ACKパケットの確認番号に基づいて計算してクライアント接続情報を取得することと、クライアント接続情報を含む自己定義パケットを生成することと、自己定義パケットをリアルサーバに転送し、それにより、リアルサーバはクライアント接続情報を自己定義パケットから抽出し、クライアント接続情報に基づいて、クライアントデバイスとの伝送制御プロトコル(TCP)接続を確立することとを含む。
本開示の実施形態によれば、負荷平衡システムにおいて接続を確立する方法が提供される。本方法は、負荷平衡デバイス及びサービスをクライアントデバイスに提供するリアルサーバに結合されるクライアントデバイスにより実行される。本方法は、同期(SYN)パケットを負荷平衡デバイスに転送することであって、SYNパケットはクライアント接続情報を含む、転送することと、負荷平衡デバイスから返送される同期肯定応答(SYN+ACK)パケットを受信することであって、SYN+ACKパケットのシリアルナンバーは、負荷平衡デバイスがSYNパケットに含まれるクライアント接続情報に基づいて計算することにより取得され、SYN+ACKパケットはリアルサーバの接続情報を含む、受信することと、肯定応答(ACK)パケットを負荷平衡デバイスに転送し、それにより、負荷平衡デバイスは、ACKパケットの確認番号に基づいて計算を実行して、クライアント接続情報を取得することと、自己定義パケットをリアルサーバに転送し、それにより、リアルサーバは、クライアント接続情報を自己定義パケットから抽出し、クライアント接続情報に基づいて、クライアントデバイスとの伝送制御プロトコル接続を確立することとを含む。
本開示の実施形態によれば、負荷平衡システムにおいて接続を確立する方法が提供される。本方法は、負荷平衡デバイス及びクライアントデバイスに結合されるリアルサーバにより実行される。リアルサーバは、サービスをクライアントデバイスに提供するように構成される。本方法は、自己定義パケットを負荷平衡デバイスから受信することであって、自己定義パケットは、負荷平衡デバイスがクライアントデバイスから送信された同期(SYN)パケットを受信し、リアルサーバの接続情報を含む同期肯定応答(SYN+ACK)パケットにシリアルナンバーを割り当て、肯定応答(ACK)パケットをクライアントデバイスから受信し、ACKパケットの確認番号に基づいて計算を実行して、クライアント接続情報を取得し、クライアント接続情報を含む自己定義パケットを生成するプロセスにより生成される、受信することと、クライアント接続情報を自己定義パケットから抽出することと、クライアント接続情報に基づいて、クライアントデバイスとの伝送制御プロトコル接続を確立することとを含む。
本開示の実施形態によれば、負荷平衡システムにおいて接続を確立する装置が提供される。本装置は、クライアントデバイスと、クライアントデバイスにサービスを提供するリアルサーバとの間に結合される。本装置は、同期(SYN)パケットをクライアントデバイスから受信するように構成される第1の受信モジュールであって、SYNパケットはクライアント接続情報を含む、第1の受信モジュールと、クライアント接続情報に基づいて、シリアルナンバーを計算するように構成される計算モジュールと、第1の同期肯定応答(SYN+ACK)パケットをクライアントデバイスに返送するように構成される第1の応答モジュールであって、シリアルナンバーは第1のSYN+ACKパケットのシリアルナンバーであるように割り当てられ、第1のSYN+ACKパケットは、リアルサーバの接続情報を含む、第1の応答モジュールと、肯定応答(ACK)パケットをクライアントから受信し、ACKパケットの確認番号に基づいて計算してクライアント接続情報を取得するように構成される第2の受信モジュールと、クライアント接続情報を含む自己定義パケットを生成するように構成される生成モジュールと、リアルサーバがクライアント接続情報を自己定義パケットから抽出し、クライアント接続情報に基づいて、クライアントデバイスとの伝送制御プロトコル(TCP)接続を確立するように、自己定義パケットをリアルサーバに転送するように構成される第1の転送モジュールを含む。
本開示の実施形態により、負荷平衡システムにおいて接続を確立する装置が提供される。本装置は、負荷平衡デバイス及び本装置にサービスを提供するリアルサーバに結合される。本装置は、同期(SYN)パケットを負荷平衡デバイスに転送するように構成される第2の転送モジュールであって、SYNパケットはクライアント接続情報を含む、第2の転送モジュールと、負荷平衡デバイスから返送された同期肯定応答(SYN+ACK)パケットを受信するように構成される第3の受信モジュールであって、SYN+ACKパケットのシリアルナンバーは、負荷平衡デバイスがSYNパケットに含まれるクライアント接続情報に基づいて計算を実行することにより取得され、SYN+ACKパケットはリアルサーバの接続情報を含む、第3の受信モジュールと、負荷平衡デバイスが、ACKパケットの確認番号に基づいて計算を実行して、クライアント接続情報を取得し、クライアント接続情報を含む自己定義パケットを生成し、自己定義パケットをリアルサーバに転送し、それにより、リアルサーバがクライアント接続情報を自己定義パケットから抽出し、クライアント接続情報に基づいて本装置との伝送制御プロトコル接続を確立するように、肯定応答(ACK)パケットを負荷平衡デバイスに転送するように構成される第2の応答モジュールとを含む。
本開示の実施形態によれば、負荷平衡システムにおいて接続を確立する装置が提供される。本装置は、負荷平衡デバイスとクライアントデバイスとに結合され、サービスをクライアントデバイスに提供するように構成される。本装置は、負荷平衡デバイスにより送信された自己定義パケットを受信するように構成される第4の受信モジュールであって、自己定義パケットは、負荷平衡デバイスがクライアントデバイスから送信された同期(SYN)パケットを受信し、SYNパケットに含まれるクライアント接続情報に基づいてシリアルナンバーを計算し、本装置の接続情報を含む同期肯定応答(SYN+ACK)パケットにシリアルナンバーを割り当て、肯定応答(ACK)パケットをクライアントデバイスから受信し、ACKパケットに確認番号に基づいて計算を実行して、クライアント接続情報を取得し、クライアント接続情報を含む自己定義パケットを生成するプロセスにより生成される、第4の受信モジュールと、自己定義パケットからクライアント接続情報を抽出するように構成される抽出モジュールと、クライアント接続情報に基づいて、クライアントデバイスと伝送制御プロトコル接続を確立するように構成される接続確立モジュールとを含む。
図面の簡単な説明
添付図面は、本明細書に組み込まれ、本明細書の一部をなし、本発明による実施形態を示し、説明と共に本発明の原理を説明する役割を果たす。
本開示の実施形態による、負荷平衡システムにおいて接続を確立する方法を示すフローチャートである。 本開示の実施形態による、負荷平衡システムにおいて接続を確立する別の方法を示すフローチャートである。 本開示の実施形態による、負荷平衡システムにおいて接続を確立する別の方法を示すフローチャートである。 本開示の実施形態による例示的な負荷平衡デバイスを示すブロック図である。 本開示の実施形態による、図4Aに示されるような転送モジュールを示すブロック図である。 本開示の実施形態による、図4Aに示されるような第2の受信モジュールを示すブロック図である。 本開示の実施形態による負荷平衡システムの例示的なクライアントデバイスのブロック図である。 本開示の実施形態による負荷平衡システムの例示的なリアルサーバのブロック図である。 本開示の実施形態による例示的な負荷平衡システムのブロック図である。
詳細な説明
これより、例が添付図面に示される例示的な実施形態を詳細に参照する。以下の説明は、別段のことが表される場合を除き、様々な図面中の同じ番号が同じ又は同様の要素を表す添付図面を参照する。例示的な実施形態の以下の説明に記載される実施態様は、本発明による全ての実施態様を表すわけではない。その代わり、以下の説明に記載される実施態様は、添付の特許請求の範囲に記載される本発明に関連する態様による装置及び方法の単なる例である。
図1は、本開示の実施形態による、負荷平衡システムにおいて接続を確立する方法100を示すフローチャートである。方法100は、負荷平衡システム内の負荷平衡デバイスにより実行し得る。図1を参照すると、方法100は以下のステップを含む。
ステップ101において、負荷平衡デバイスは、SYNパケットをクライアントから受信する。SYNパケットはクライアント接続情報を含む。本開示の実施形態によれば、クライアント接続情報は、クライアントへの接続に使用し得る。
ステップ102において、負荷平衡デバイスは、クライアントから受信したSYNパケットに基づいて、シリアルナンバーを計算する。
ステップ103において、負荷平衡デバイスは、SYN+ACKパケットをクライアントに返送し、前記シリアルナンバーをSYN+ACKパケットに割り当てる。幾つかの実施形態では、SYN+ACKパケットは、リアルサーバの接続情報を含み得る。本開示の実施形態によれば、リアルサーバの接続情報は、リアルサーバへの接続に使用し得る。
ステップ104において、負荷平衡デバイスは、ACKパケットをクライアントから受信し、ACKパケットに含まれる確認番号に基づいて、クライアント接続情報を取得する。
一実施形態では、確認番号は、シリアルナンバーに1等のある数を足したものであり得る。負荷平衡デバイスは、確認番号から1を減算するという単純な計算を実行して、シリアルナンバーを取得し得る。シリアルナンバーに基づいて、負荷平衡デバイスは、クライアント接続情報を特定し得る。
ステップ105において、負荷平衡デバイスは、クライアント接続情報を含む自己定義パケットを生成する。
ステップ106において、負荷平衡デバイスは、自己定義パケットをリアルサーバに転送し、それにより、リアルサーバは、クライアント接続情報を自己定義パケットから抽出し、クライアントとのTCP接続を確立し得る。
示される実施形態では、負荷平衡デバイスは、SYNパケットに含まれるクライアント接続情報を使用して、シリアルナンバーを計算し、前記シリアルナンバーをSYN+ACKパケットに割り当て、それにより、リアルサーバは、クライアント接続情報を記憶するデータベースを作成する必要がない。リアルサーバは、クライアント接続情報を記憶するデータベースを作成するリソースを消費しないため、方法100は、リソースの消費を低減し、リアルサーバに大きなデータベースを作成させ、リソースを枯渇させる攻撃への防御を提供する。
示される実施形態では、攻撃への防御は、負荷平衡デバイスより実現され、負荷平衡デバイスは、攻撃からリアルサーバを更に保護する。クライアント接続情報をSYN+ACKパケットのシリアルナンバーと相関付け、ACKパケットをクライアントから受信することにより、負荷平衡デバイスは、TCPの3ウェイハンドシェイクと同様の通信プロセスを完了する。さらに、負荷平衡デバイスは、リアルサーバの接続情報をクライアントに送信し、それにより、リアルサーバは、クライアントとのTCP接続を確立し得る。これは、クライアントとリアルサーバとの間に通常のTCP接続の確立に役立つ。
TCP接続はクライアントとリアルサーバとの間に確立されるため、負荷平衡デバイスの負荷平衡モードに基づいて、クライアントは要求パケットを負荷平衡デバイスに転送し得る。次に、負荷平衡デバイスは、要求パケットをリアルサーバに転送し得、それにより、リアルサーバは、応答パケットでクライアントに直接返信し得る。
幾つかの実施形態では、TCPパケットのヘッダは一般に、ソースポート、宛先ポート、シリアルナンバー、確認番号、予備ビット、TCPオプション、窓、チェック部分、緊急ポインタ等のフィールドを含み得る。ソースポートは、パケットを送信するポート又はプロシージャである。宛先ポートは、パケットを受信するポート又はプロシージャである。
シリアルナンバーは、パケットを受信するデバイスがシリアルナンバーに基づいてパケットに含まれるデータを確認し得るように、パケットをマークするのに使用される。接続確立時、両者は初期シリアルナンバーを提供し得る。示される実施形態では、SYN+ACKパケットのシリアルナンバーは初期シリアルナンバーであり得、これは、クライアント接続情報に基づく計算により取得し得る。クライアント接続情報は、デバイス間で伝送されるシリアルナンバーにおいて保持され得る。これは、クライアント接続情報を記憶するデータベースを作成する必要性を回避し、リソースの使用を低減する。
確認番号は、1つ又は複数の特定のパケットが受信されたことを確認するのに使用し得る。示される実施形態では、確認番号は、最後に受信したパケットのシリアルナンバーに1を加えたものに等しい数であり得る。
示される実施形態では、クライアント接続情報に基づいて計算されるシリアルナンバーは、クライアントから返送されたACKパケットに含まれる確認番号から1を減算することにより取得し得る。シリアルナンバーに基づいて、クライアント接続情報を特定し得る。
接続情報は、TCPオプションフィールドに含め得る。負荷平衡デバイスは、SYNパケットのTCPオプションフィールドを分析して、クライアント接続情報を取得し得る。クライアントは、SYN+ACKパケットのTCPオプションフィールドを分析して、リアルサーバの接続情報を取得し得る。クライアント接続情報は、自己定義パケットのTCPオプションフィールドに含め得る。
負荷平衡デバイスから返送されるSYN+ACKパケットのTCPオプションフィールドは、リアルサーバの接続情報を含む。リアルサーバの接続情報は、リアルサーバとのネゴシエーションを通して、負荷平衡デバイスにより取得し得る。
関連技術では、攻撃者は、TCP方式の抜け穴を利用し、大量のSYNパケットを送信して、リアルサーバを攻撃することがある。これは同期フラッド(SYNフラッド)と呼ばれる。攻撃は、リアルサーバが大量のSYNパケットを受信すると、沢山のリソースを使用して、SYNパケットに含まれるデータを記憶する大きなデータベースを作成するように強いられ得るため、行われる。これは、リアルサーバが通常パケットに対処できないようにし、リアルサーバにより提供されるサービスに影響を及ぼす。
SYNフラッドは、周知のサービス妨害(DoS)攻撃又は分散サービス妨害(DDoS)攻撃の1つである。攻撃は、攻撃されたデバイスにリソースを使い果たさせる。例えば、攻撃により、CPUはフル稼働に達し得、通常のサービス要求を処理することができず、又は攻撃されたデバイスの内部メモリは、ゴミ情報を記憶する必要性から忙殺される。
クライアント接続情報は、負荷平衡デバイスから送信されるSYN+ACKパケットのシリアルナンバーに含まれるため、クライアント接続情報を記憶するデータベースを作成する必要はない。本開示の実施形態による方法は、大きなリソースを消費せず、負荷平衡デバイスでのSYNフラッド攻撃への防御を提供する。方法は、攻撃への防御を改善し、リソースの消費を低減し、それにより、通常のサービス要求にサービスを提供し得る。
本開示の実施形態によれば、負荷平衡モードにおいて、要求は、クライアントから負荷平衡デバイスを通してリアルサーバに流れ、応答は、リアルサーバから負荷平衡デバイスを通してクライアントに流れる。応答フローでは、リアルサーバは、応答パケットをクライアントに直接送信し、それにより、負荷平衡デバイスへの負荷を低減する。したがって、負荷平衡デバイスは、応答フローのボトルネックである。
幾つかの実施形態では、TCPオプションフィールドに含まれる接続情報は、
mss:TCP接続を介して別の端末に送信される最大データ長を示す最大セグメントサイズ、
wsscale:65536バイトを超えてTCP受信窓のサイズを増大させるのに使用される窓スケールオプション、
タイムスタンプ:パケットの送信側がパケットにタイムスタンプを含めるために利用するタイムスタンプオプションであり、タイムスタンプは、送信側が各ACKパケットの往復時間(RTT)を計算し得るように、受信側が受信を確認した後、受信側により返送される、及び
SACK:当事者が、全ての後続パケットではなく、損失パケットのみを再送信できるようにし、受信側が損失データ、再送信データ、及び受信データ等を送信側に通知できるようにする、対応するメカニズムを提供する選択的肯定応答
を含み得る。
クライアント接続情報を含む自己定義パケットを生成する例示的な方法について、以下に説明する。
一実施形態では、クライアントから返送されるACKパケットは、自己定義パケットを形成するように直接変更し得る。クライアント接続情報は、ACKパケットのTCPオプションフィールドに書き込まれ得る。変更されたACKパケットは、自己定義パケットを形成する変更ACKパケットであることを示す識別子を含み得る。
一実施形態では、変更ACKパケット識別子は、TCPヘッダの予備ビットに配置し得る。例えば、4つの予備ビットがある場合、それらのビットのうちの1つを識別子に使用し得、残りの3ビットは空のままであり得る。
リアルサーバは、ACKパケットを変更することにより生成される自己定義パケットを受信すると、識別子に基づいて、受信パケットが自己定義パケットであると判断し得る。リアルサーバは、クライアント接続情報を自己定義パケットのTCPオプションフィールドから抽出し得る。リアルサーバの接続情報は、クライアントに送信されているため、リアルサーバは、抽出されたクライアント接続情報に基づいてクライアントとのTCP接続を確立し得る。
一実施形態では、自己定義パケットのシリアルナンバーは、ACKパケットのシリアルナンバーと同じであり、クライアント、負荷平衡デバイス、及びリアルサーバの間で伝送されるパケットのシリアルナンバーに不一致がないことを保証する。
幾つかの実施形態では、クライアントとのTCP接続を確立するとき、リアルサーバは、クライアント接続情報を抽出し、ソケットデータ構造を適用し、ソケットの関連するメンバ変数を初期化し、ソケットのTCPステータスを「確立済み」に設定し、システムソケット作成機能を利用して、ソケットを作成し、接続を確立する。ソケットは、アドレス及びポートを記述して、通信チェーンのノードを示し、仮想マシンとコンピュータとの間の通信を実現するのに使用される。
別の実施形態では、自己定義パケットは自己定義SYNパケットであり得、自己定義SYNパケットは、TCP方式の3ウェイハンドシェイクを採用する。
自己定義SYNパケットのシリアルナンバーは、クライアントから送信されるSYNパケットに基づいて計算されるシリアルナンバーであり得る。自己定義SYNパケットの確認番号は、負荷平衡デバイスから返送されるSYN+ACKパケットのシリアルナンバーに設定し得る。シリアルナンバーの上記割り当ては、クライアント、負荷平衡デバイス、及びリアルサーバの間で伝送されるパケットのシリアルナンバーに不一致がないことを保証する。
クライアント接続情報は、自己定義SYNパケットのTCPオプションフィールドに書き込み得る。一実施形態では、負荷平衡デバイスのアドレスもTCPオプションフィールドに書き込み得る。これらは、自己定義TCPオプションフィールドを自己定義SYNパケットに追加して、負荷平衡デバイスのアドレスをそこに書き込むことにより実施し得る。
リアルサーバは、自己定義SYNパケットを受信した後、そこからクライアント接続情報を抽出し、抽出されたクライアント接続情報に基づいて、クライアントとのハーフオープンTCP接続を確立し、最後に、ハーフオープンTCP接続をフルTCP接続に変換し得る。
例えば、リアルサーバは、抽出されたクライアント接続情報に基づいて、クライアントとのハーフオープンTCP接続を確立し得る。リアルサーバは、例えば、TCPオプションフィールドに含まれる負荷平衡デバイスのアドレスをパケットが含むか否かをチェックすることにより、パケットが自己定義SYNパケットであるか否かを判断し得る。
TCP及び負荷平衡デバイスのアドレスに基づいて、リアルサーバは、SYN+ACKパケットを負荷平衡デバイスに返送し得、それにより、負荷平衡デバイスは、クライアントから受信したACKパケットをリアルサーバに転送し得る。ACKパケットを受信すると、リアルサーバは、ハーフオープンTCP接続をフルTCP接続に変換し得る。
示される実施形態では、負荷平衡デバイスは、攻撃への防御を提供する。負荷平衡デバイスは、クライアント接続情報をSYN+ACKパケットのシリアルナンバーに保持する。負荷平衡デバイスは、クライアントから返送されたACKパケットを受信すると、自己定義SYNパケットをリアルサーバに送信し得、それにより、リアルサーバは、処理すべき正当なSYNパケットであると判断し得る。
リアルサーバは、自己定義SYNパケットを受信すると、自己定義SYNパケット内の自己定義TCPオプションフィールドを識別し、ハーフオープンTCP接続を確立し、自己定義TCPオプションフィールドに含まれる負荷平衡デバイスのアドレスに基づいて、SYN+ACKパケットを負荷平衡デバイスに返送し得る。
負荷平衡デバイスにより記憶される接続情報は、負荷平衡デバイスのアドレスを含まないことがある。接続を確立するために、クライアントのアドレス及びポート並びにリアルサーバのアドレス及びポートが一般に必要である。返送されたSYN+ACKパケットは、そのような情報を含む必要があり得る。リアルサーバは、例えば、IPIPトンネルを通して送信することによりSYN+ACKパケットを返送して、アドレス及びポート情報を保持し得る。IPIPトンネルとは、IP(インターネットプロトコル)をIPパケットのヘッダに取り付けるプロトコルである。
図2は、クライアント1、負荷平衡デバイス2、及びリアルサーバ3を含む負荷平衡システムにおいてTCP接続を確立する例示的な方法200を示すフローチャートである。方法200は以下のステップを含む。
ステップ201において、クライアント1は、SYNパケットを負荷平衡デバイス2に転送する。SYNパケットは、クライアント接続情報を含む。
ステップ202において、負荷平衡デバイス2は、クライアント接続情報に基づいてシリアルナンバーを計算する。
一実施形態では、シリアルナンバーは、同期クッキー(SYNクッキー)技術を用いて取得し得る。SYNパケットに含まれるクライアント接続情報は、クッキー機能を用いて処理されて、クッキー値を生成し得、クッキー値はシリアルナンバーとして使用し得る。SYNクッキー技術を利用して、SYNフラッド攻撃を阻止し得る。TCPパケットに応答してSYN+ACKパケットを返送するとき、SYNクッキー技術は、特定のデータセグメントを割り振らない。その代わり、SYNクッキー技術は、SYNパケットに基づいてクッキー値を計算し得る。
Saddrがクライアントソースアドレスであり、daddrがビジット宛先アドレスであり、sportがクライアントソースポートであり、dportがビジット宛先ポートであると仮定すると、クッキー値は、以下のように取得し得る。
1.A=cookie_hash(saddr, daddr, sport, dport, 0,0)但し、ハッシュ関数はcre32アルゴリズムを利用する。
2.B=クライアントからのSYNパケットのシリアルナンバー。
3.C=jiffies/(HZ*60)但し、jiffiesは現在のシステムクロックカウントであり、HZは秒単位のシステムクロックカウントであり、Cの単位は分である。
4.D=cookie_hash(saddr, daddr, sport, dport, C, 1)
5.E=保存されたTCPオプション値、宛先:[21][20][19−16][15−0]但し、21ビットはSACKオプションであり、20ビットはタイムスタンプオプションであり、19−16ビットはwscaleオプションであり、15−0ビットはmssオプションである。
6.cookie=A+B+(C<<24)+((D+E)&0x00FFFFFF)。
ステップ203において、負荷平衡デバイス2は、リアルサーバ3の接続情報を含むSYN+ACKパケットをクライアント1に返送する。負荷平衡デバイス2がクライアント接続情報に基づいて計算したシリアルナンバーは、SYN+ACKパケットのシリアルナンバーとして割り当てられる。
ステップ204において、クライアント1はACKパケットを負荷平衡デバイス2に返送する。ACKパケットの確認番号は、SYN+ACKパケットのシリアルナンバーに基づいて生成し得る。一実施形態では、ACKパケットの確認番号は、SYN+ACKのシリアルナンバーに1と加えたものに等しい。
ステップ205において、負荷平衡デバイス2は、ACKパケットの確認番号に基づいてクライアント接続情報を取得する。一実施形態では、シリアルナンバーは、確認番号から1を減算することにより取得し得る。シリアルナンバーがクッキー値である場合、アルゴリズムはクッキー値をチェックして、クライアント接続情報を取得し得る。例えば、チェックプロセスは以下のように説明される。
1.クッキー値をACKパケットの確認番号から1を減算したものに設定する。
2.クッキー=クッキー−A−B(A及びBの定義は上で説明した)を計算する。
3.C1=jiffies/(HZ*60)但し、jiffiesは、時間の経過と共に増大する。
4.Diff=C1-(クッキー>>24)=C1-C但し、Diffは時間差であり、Diffが所定の閾値よりも大きい場合、クッキーは無効である。
5.C=C1-Diff, D=cookie_hash(saddr, daddr, sport, dport, C, 1)
6.E=(cookie-D)&0x00FFFFFF、保存されたTCPオプションを取得する。
7.取得したTCPオプションが正当であるか否かを判断する。
8.TCPオプションが正当である場合、TCPオプションの値を返す。
TCPオプションが正当ではない場合、方法200は、更なるステップに進まずに即座に終了し得る。
ステップ206において、負荷平衡デバイス2は、クライアント1から返送されたACKパケットに識別子を含め得、クライアント接続情報をACKパケットに書き込んで、自己定義パケットを生成し得る。
識別子は、自己定義パケットの識別に使用し得る。一実施形態では、識別子は、ACKパケットヘッダの予備ビットの1つに書き込み得る。クライアント接続情報は、TCPオプションフィールドに書き込み得る。
ステップ207において、負荷平衡デバイス2は、自己定義ACKパケットをリアルサーバ3に転送する。
ステップ208において、リアルサーバ3は、クライアント接続情報を自己定義パケットから抽出し、クライアント接続情報に基づいてクライアント1とのTCP接続を確立する。
幾つかの実施形態では、クライアント1から返送されたACKパケットはデータ要求を含み得、又はACKパケットは、確認識別子を含む要求パケットであり得、それにより、自己定義ACKパケットはデータ要求を含むこともできる。
リアルサーバ3は、クライアント1とのTCP接続を確立した後、データ要求に基づいて、応答パケットをクライアントに提供し得る。
示された実施形態では、クライアント接続情報は、負荷平衡デバイス2によりクライアント1に返送されたSYN+ACKパケットにおいて保持され得る。クライアント接続情報を記憶するデータベースを作成する必要がなくなり得る。加えて、データベースを作成するためにシステムリソースが消費されない。システムがSYNフラッド攻撃下にある場合であっても、負荷平衡デバイス2は攻撃への防御を提供し得、それにより、クライアント1からリアルサーバ3への通常のサービス要求に影響を及ぼさない。
図3は、クライアント1、負荷平衡デバイス2、及びリアルサーバ3を含む負荷平衡システムにおいてTCP接続を確立する別の方法300を示すフローチャートである。方法300は以下のステップを含む。
ステップ301において、クライアント1は、SYNパケットを負荷平衡デバイス2に転送する。SYNパケットは、クライアント接続情報を含む。
ステップ302において、負荷平衡デバイス2は、クライアント接続情報に基づいてシリアルナンバーを計算する。
一実施形態では、シリアルナンバーは、SYNクッキー技術を用いて取得し得る。SYNパケットに含まれるクライアント接続情報は、クッキー機能を用いて処理されて、クッキー値を生成し得、クッキー値はシリアルナンバーとして使用し得る。SYNクッキー技術を利用して、SYNフラッド攻撃を阻止し得る。TCPパケットに応答してSYN+ACKパケットを返送するとき、SYNクッキー技術は、特定のデータセグメントを割り振らない。その代わり、SYNクッキー技術は、SYNパケットに基づいてクッキー値を計算し得る。
ステップ303において、負荷平衡デバイス2は、リアルサーバ3の接続情報を含むSYN+ACKパケットをクライアント1に返送する。ステップ302において計算されたシリアルナンバーは、SYN+ACKパケットのシリアルナンバーであるものとして割り当てられる。
ステップ304において、クライアント1はACKパケットを負荷平衡デバイス2に返送する。ACKパケットの確認番号は、SYN+ACKパケットのシリアルナンバーに基づいて形成し得る。一実施形態では、ACKパケットの確認番号は、SYN+ACKのシリアルナンバーに1と加えたものに等しい。
ステップ305において、負荷平衡デバイス2は、ACKパケットの確認番号に基づいてクライアント接続情報を取得する。一実施形態では、シリアルナンバーは、確認番号から1を減算することにより取得し得る。シリアルナンバーがクッキー値である場合、アルゴリズムはクッキー値をチェックして、クライアント接続情報を取得し得る。クッキー値をチェックするプロセスについては、方法200に関して上で説明してあり、ここでは繰り返さない。
ステップ306において、負荷平衡デバイス2は、クライアント1から返送されたSYNパケットに基づいて自己定義SYNパケットを生成する。負荷平衡デバイス2は、自己定義SYNパケットのシリアルナンバーとして、クライアント1から返送されたSYNパケットのシリアルナンバーを使用し、自己定義SYNパケットの確認番号として、負荷平衡デバイス2から送信されたSYN+ACKパケットのシリアルナンバーを使用し、クライアント接続情報を自己定義SYNパケットに書き込み、負荷平衡デバイス2のアドレスを自己定義SYNパケットの自己定義フィールドに書き込む。
ステップ307において、負荷平衡デバイス2は、自己定義SYNパケットをリアルサーバ3に転送する。
ステップ308において、リアルサーバ3は、自己定義SYNパケットに含まれるクライアント接続情報に基づいて、クライアント1とのハーフオープンTCP接続を確立する。
ステップ309において、リアルサーバ3は、負荷平衡デバイス2のアドレスに基づいて、SYN+ACKパケットを負荷平衡デバイス2に返送する。リアルサーバ3から返送されるSYN+ACKパケットのシリアルナンバーは、自己定義SYNパケットの確認番号であり得る。
ステップ310において、負荷平衡デバイス2は、リアルサーバ3からSYN+ACKパケットを受信した後、クライアント1から返送されたACKパケットをリアルサーバ3に転送する。
ステップ311において、リアルサーバ3は、クライアント1のACKパケットを受信した後、クライアント1とのフルTCP接続を確立する。
幾つかの実施形態では、クライアント1から返送されたACKパケットは、データ要求を含み得、又はACKパケットは、確認識別子を含む要求パケットであり得る。リアルサーバ3は、クライアント1から返送されたACKパケットを受信し、クライアント1とのTCP接続を確立した後、データ要求に基づいて応答パケットをクライアントに提供し得る。
示される実施形態では、クライアント接続情報は、負荷平衡デバイス2からクライアント1に送信されるSYN+ACKパケットにおいて保持され得る。クライアント接続情報を記憶するデータベースの作成を省き得る。加えて、データベースを作成するためにシステムリソースは消費されない。システムは、SYNフラッド攻撃下である場合であっても、システムリソースは使い果たされず、クライアント接続情報を記憶するデータベースは作成されないため、システムはなお、通常のサービスを提供し得る。負荷平衡デバイス2は、攻撃への防御を提供するため、リアルサーバ3は、正当なSYNパケット(自己定義SYNパケット)を受信し、それにより、通常のサービスを提供し得る。
図4Aは、本開示の実施形態による例示的な負荷平衡デバイス400を示すブロック図である。デバイス400は、第1の受信モジュール401、計算モジュール402、第1の応答モジュール403、第2の受信モジュール404、生成モジュール405、及び第1の転送モジュール406を含み得る。
第1の受信モジュール401は、クライアントから送信されたSYNパケットを受信するように構成し得る。
計算モジュール402は、クライアントから受信されるSYNパケットに基づいて、シリアルナンバーを計算するように構成し得る。
第1の応答モジュール403は、SYN+ACKパケットをクライアントに返送し、前記シリアルナンバーをSYN+ACKパケットに割り当てるように構成し得る。
第2の受信モジュール404は、ACKパケットをクライアントから受信し、ACKパケットの確認番号に基づいて、クライアント接続情報を取得するように構成し得る。
生成モジュール405は、クライアント接続情報を含む自己定義パケットを生成するように構成し得る。
第1の転送モジュール406は、自己定義パケットをリアルサーバに転送するように構成し得、それにより、リアルサーバは、クライアント接続情報を自己定義パケットから抽出し、クライアント接続情報に基づいてクライアントとのTCP接続を確立し得る。
示される実施形態では、負荷平衡デバイスは、SYNパケットに含まれるクライアント接続情報を使用して、シリアルナンバーを計算し、前記シリアルナンバーを、負荷平衡デバイスから送信されるSYN+ACKパケットに割り当て、それにより、リアルサーバは、クライアント接続情報を記憶するデータベースを作成する必要がなくなり得る。クライアント接続情報を記憶するデータベースを作成する必要がないため、デバイス400は、リソースの消費を低減し、リアルサーバに巨大なデータベースを作成させ、そのリソースを使い果たさせる攻撃への防御を提供する。
示される実施形態では、攻撃への防御は負荷平衡デバイスにより実現され、負荷平衡デバイスはリアルサーバを攻撃から更に保護する。
負荷平衡デバイス400は、ACKパケットをクライアントから受信した後、クライアント接続情報を含む自己定義パケットをリアルサーバに転送し、それにより、リアルサーバは、クライアントとのTCP接続を確立し得る。
幾つかの実施形態では、生成モジュール405は、識別子を追加し、クライアント接続情報をクライアントから返送されたACKパケットに書き込んで、自己定義パケットを生成するように更に構成し得る。識別子は、パケットが変更されたACKパケットであることを示すのに使用し得る。
すなわち、クライアントから返送されたACKパケットは、自己定義パケットを生成するように直接変更し得る。TCP方式によれば、ACKパケットのTCPオプションフィールドは空であり得、それにより、クライアント接続情報をそこに書き込み得る。さらに、変更されたACKパケットに識別子を追加して、自己定義パケットを生成し得る。
一実施形態では、変更ACKパケット識別子は、TCPヘッダの予備ビットに配置し得る。例えば、4つの予備ビットがある場合、ビットのうちの1つを識別子に使用し得、他の3ビットは使用のために空であり得る。
リアルサーバは、ACKパケットを変更することにより生成された自己定義パケットを受信すると、識別子に基づいて受信パケットが自己定義パケットであるか否かを判断し得る。リアルサーバは、TCPオプションフィールドからクライアント接続情報を抽出し得る。リアルサーバの接続情報は、クライアントに送信されているため、リアルサーバは、抽出されたクライアント接続情報に基づいてクライアントとのTCP接続を確立し得る。
一実施形態では、自己定義パケットのシリアルナンバーは、ACKパケットのシリアルナンバーと同じであり得、クライアント、負荷平衡デバイス、及びリアルサーバの間で伝送されるパケットのシリアルナンバーに不一致がないことを保証する。
幾つかの実施形態では、クライアントとのTCP接続を確立するとき、リアルサーバは、クライアント接続情報を抽出し、ソケットデータ構造を適用し、ソケットの関連するメンバ変数を初期化し、ソケットのTCPステータスを「確立済み」に設定し、システムソケット作成機能を利用して、ソケットを作成し、クライアントとのTCP接続を確立する。
別の実施形態では、生成モジュール405は、自己定義SYNパケットのシリアルナンバーを、クライアントから送信されたSYNパケットのシリアルナンバーとなるように設定し、負荷平衡デバイスから送信するSYN+ACKパケットのシリアルナンバーを、自己定義SYNパケットの確認番号となるように設定し、クライアント接続情報を自己定義SYNパケットに書き込み、負荷平衡デバイスのアドレスを自己定義SYNパケットの自己定義フィールドに追加するように更に構成される。
幾つかの実施形態では、図4Bを参照すると、第1の転送モジュール406は、第1の転送サブモジュール406−1及び第2の転送サブモジュール406−2を含み得る。
第1の転送サブモジュール406−1は、自己定義SYNパケットをリアルサーバに転送するように構成し得、それにより、リアルサーバは、自己定義SYNパケットに含まれるクライアント接続情報に基づいて、クライアントとのハーフオープンTCP接続を確立し得る。
第2の転送サブモジュール406−2は、負荷平衡デバイスのアドレスに基づいてリアルサーバからSYN+ACKパケットが送信された後、クライアントから返送されたACKパケットをリアルサーバに転送するように構成し得、それにより、リアルサーバは、ハーフオープンTCP接続をクライアントとのフルTCP接続に変換し得る。
例えば、リアルサーバは、抽出されたクライアント接続情報に基づいてクライアントとのハーフオープンTCP接続を確立し得る。リアルサーバは、パケットが、例えば、TCPオプションフィールドに含まれる負荷平衡デバイスのアドレスを含むか否かをチェックすることにより、パケットが自己定義SYNパケットであるか否かを判断し得る。
TCP及び負荷平衡デバイスのアドレスに基づいて、リアルサーバは、SYN+ACKpケットを負荷平衡デバイスに返送し得、それにより、負荷平衡デバイスは、クライアントから受信したACKパケットをリアルサーバに転送し得る。ACKパケットを受信すると、リアルサーバは、ハーフオープンTCP接続をフルTCP接続に変換し得る。
示される実施形態では、負荷平衡デバイスは、攻撃への防御を提供する。負荷平衡デバイスは、クライアントから返送されたACKパケットを受信すると、自己定義SYNパケットをリアルサーバに送信し得、それにより、リアルサーバは、そのパケットが処理すべき正当なSYNパケットであると判断し得る。
幾つかの実施形態では、クライアントから返送されたACKパケットはデータ要求を含み得、それにより、自己定義ACKパケットは、データ要求を含むこともできる。リアルサーバは、クライアントとのTCP接続を確立した後、データ要求に基づいて応答パケットをクライアントに提供し得る。
幾つかの実施形態では、第2の受信モジュール404は、クライアントから返送されたデータ要求を含むACKパケットを受信し、ACKパケットの確認番号に基づいて、クライアント接続情報を計算するように更に構成し得る。
生成モジュール405は、クライアント接続情報及びデータ要求を含む自己定義パケットを生成するように更に構成される。
第1の転送モジュール406は、自己定義パケットをリアルサーバに転送するように構成し得、それにより、リアルサーバは、クライアント接続情報及びデータ要求を自己定義パケットから抽出し、クライアント接続情報に基づいて、クライアントとのTCP接続を確立し、データ要求に基づいて応答パケットをクライアントに送信し得る。
一実施形態では、シリアルナンバーは、SYNクッキー技術を用いて取得し得る。SYNパケットに含まれるクライアント接続情報は、クッキー機能を用いて処理されて、クッキー値を生成し得、クッキー値はシリアルナンバーとして使用し得る。計算モジュール402は、SYNクッキー技術のクッキー機能を利用して、クライアント接続情報を処理し、負荷平衡デバイスからクライアントに返送されるSYN+ACKパケットのシリアルナンバーとしてクッキー値を取得するように更に構成される。
幾つかの実施形態では、図4Cを参照すると、第2の受信モジュールは、受信サブモジュール404−1及びチェックサブモジュール404−2を含み得る。
受信サブモジュール404−1は、クライアントから返送されたACKパケットを受信し、ACKパケットの確認番号に基づいてクッキー値を計算するように構成し得る。
チェックサブモジュール404−2は、クッキー値をチェックし、クッキー値の有効性を確認した後、クライアント接続情報を取得するように構成し得る。
一実施形態では、クッキー値は、確認番号から1を減算したものの値に等しい。クッキー値がチェックサブモジュール404−2によるチェックに合格する場合、クライアント接続情報をそこから取得し得る。
クッキー値の計算及びチェックについては上で説明され、本明細書で再び繰り返さない。
図5は、本開示の実施形態による負荷平衡システムのクライアントデバイス500のブロック図である。図5を参照すると、クライアントデバイス500は、第2の転送モジュール501、第3の受信モジュール502、及び第2の応答モジュール503を含む。
第2の転送モジュール501は、クライアント接続情報を含むSYNパケットを負荷平衡デバイスに転送するように構成し得る。
第3の受信モジュール502は、負荷平衡デバイスから返送されたSYN+ACKパケットを受信するように構成し得る。SYN+ACKパケットのシリアルナンバーは、SYNパケットに含まれるクライアント接続情報に基づいて負荷平衡デバイスにより計算し得る。SYN+ACKパケットは、リアルサーバの接続情報を含む。
第2の応答モジュール503は、ACKパケットで負荷平衡デバイスに応答するように構成し得、それにより、負荷平衡デバイスは、ACKパケットの確認番号に基づいて計算を実行して、クライアント接続情報を取得し、クライアント接続情報を自己定義パケットに書き込み、自己定義パケットをリアルサーバに転送し得る。リアルサーバは、クライアント接続情報を自己定義パケットから抽出し、クライアント接続情報に基づいてクライアントとのTCP接続を確立し得る。
幾つかの実施形態では、第2の応答モジュール503から送信されるACKパケットは、データ要求を含み得、それにより、負荷平衡デバイスは、データ要求を自己定義パケットに含み得る。リアルサーバは、クライアントとのTCP接続を確立した後、データ要求に基づいて応答パケットをクライアントに転送し得る。
図6は、本開示の実施形態による負荷平衡システムのリアルサーバ600のブロック図である。図6を参照すると、リアルサーバ600は、第4の受信モジュール601、抽出モジュール602、及び接続確立モジュール603を含み得る。
第4の受信モジュール601は、負荷平衡デバイスから送信される自己定義パケットを受信するように構成し得る。一実施形態では、自己定義パケットは以下のプロセスにより生成される。負荷平衡デバイスは、クライアントから送信されたSYNパケットを受信し、SYNパケットに含まれるクライアント接続情報に基づいてシリアルナンバーを計算し得る。負荷平衡デバイスは、リアルサーバの接続情報を含むSYN+ACKパケットにシリアルナンバーを割り当て、SYN+ACKパケットをクライアントに送信し得る。次に、負荷平衡デバイスは、クライアントからACKパケットを受信し得、ACKパケットの確認番号に基づいて計算を実行し、クライアント接続情報を取得し得る。負荷平衡デバイスは、クライアント接続情報を自己定義パケットに書き込み得る。
抽出モジュール602は、クライアント接続情報を自己定義パケットから抽出するように構成し得る。
接続確立モジュール603は、クライアント接続情報に基づいてクライアントとのTCP接続を確立するように構成し得る。
幾つかの実施形態では、自己定義パケットは、クライアントから返送された変更ACKパケットである。ACKパケットには、クライアント接続情報と、それが自己定義ACKパケットであることを示す識別子とが追加されている。抽出モジュール602は、識別子を認識することにより、ACKパケットが自己定義パケットであると判断し、クライアント接続情報を変更ACKパケットから抽出する。接続確立モジュール603は、クライアント接続情報に基づいてクライアントとのTCP接続を確立する。
幾つかの実施形態では、自己定義パケットは自己定義SYNパケットである。自己定義SYNパケットのシリアルナンバーは、クライアントから送信されるSYNパケットのシリアルナンバーである。自己定義SYNパケットの確認番号は、負荷平衡デバイスからクライアントに送信されるSYN+ACKパケットのシリアルナンバーであり得る。自己定義SYNパケットは、クライアント接続情報をTCPオプションフィールドに含み、負荷平衡デバイスのアドレスを自己定義フィールドに含むように変更された、クライアントから送信されるSYNパケットの変更版であり得る。自己定義フィールドは自己定義TCPオプションフィールドであり得る。
TCP方式及びクライアント接続情報に基づいて、接続確立モジュール603は、クライアントとのハーフオープンTCP接続を確立し、後に、ハーフオープンTCP接続をフルTCP接続に変換し得る。
抽出モジュール602は、自己定義フィールドを含む自己定義SYNパケットを受信した後、クライアント接続情報を抽出し、接続確立モジュール603にクライアントとのハーフオープンTCP接続を確立するように促すように構成し得る。
幾つかの実施形態では、リアルサーバ600は、負荷平衡デバイスのアドレスに基づいて、SYN+ACKパケットを負荷平衡デバイスに返送するように構成される第3の応答モジュール604を更に含む。
幾つかの実施形態では、第4の受信モジュール601は、クライアントから負荷平衡デバイスに返送され、かつ、負荷平衡デバイスが第3の応答モジュール604により送信されたSYN+ACKパケットを受信した後、負荷平衡デバイスにより転送されたACKパケットを受信するように更に構成される。第4の受信モジュール601がクライアントのACKパケットを受信した後、接続確立モジュール603は、ハーフオープンTCP接続をフルTCP接続に変換し得る。
幾つかの実施形態では、クライアントのACKパケットは、データ要求を含み得る。リアルサーバ600は、クライアントとのTCP接続を確立した後、データ要求に基づいて応答パケットを返送し得る。
図7は、本開示の実施形態による負荷平衡システム700を示すブロック図である。負荷平衡システム700は、クライアントデバイス701、負荷平衡デバイス702、及びリアルサーバ703を含む。
クライアントデバイス701は、SYNパケットを負荷平衡デバイス702に転送し、負荷平衡デバイス702から返送されたSYN+ACKパケットを受信し、ACKパケットを負荷平衡デバイス702に転送するように構成し得る。
負荷平衡デバイス702は、クライアントデバイス701から送信されるSYNパケットに含まれるクライアント接続情報に基づいて、シリアルナンバーを計算し、SYN+ACKパケットをクライアントデバイス701に返送し、前記シリアルナンバーをSYN+ACKパケットに割り当て、クライアントデバイス701から返送されるACKパケットの確認番号に基づいて計算してクライアント接続情報を取得し、自己定義パケットを生成し、自己定義パケットをリアルサーバ703に転送するように構成し得る。
リアルサーバ703は、負荷平衡デバイス702から送信された自己定義パケットからクライアント接続情報を抽出し、クライアント接続情報に基づいてクライアントデバイス701とのTCP接続を確立するように構成し得る。
示される実施形態では、負荷平衡デバイス702は、SYNパケットに含まれるクライアント接続情報をSYN+ACKパケットにおいて保持し、それにより、クライアント接続情報を記憶するデータベースを作成する必要がなく、システムリソースの消費が低減する。負荷平衡デバイス702は、攻撃への防御を提供し、セキュリティを改善する。自己定義パケットに基づいて、負荷平衡デバイス702は、クライアント接続情報をリアルサーバ703に送信し得る。リアルサーバ703は、自己定義パケットを受信した後、クライアントデバイス701とのTCP接続を確立し得る。
本開示の実施形態による方法及びデバイスは、クライアント及びリアルサーバの間でのTCP接続の確立を可能にし、SYNフラッド攻撃を効率的に防ぎ得る。クライアント接続情報を記憶するデータベースを作成する必要はなく、それにより、システムリソースの消費が低減する。本開示の実施形態による方法及びデバイスは、通常のサービス要求へのサービス提供を可能にする。
本開示の実施形態によるデバイス及びサーバは、1つ又は複数のプロセッサ、入/出力ポート、ネットワークコネクタ、及びメモリデバイスを含み得る。
メモリデバイスは、命令を記憶する非一時的コンピュータ可読媒体を含み、命令は、1つ又は複数のプロセッサにより実行されると、プロセッサに上述した方法を実行させる。媒体は、ランダムアクセスメモリ(RAM)又は読み取り専用メモリ(ROM)若しくはフラッシュメモリ等の他の不揮発性メモリであり得る。メモリデバイスはコンピュータの内部にあり得る。
非一時的コンピュータ可読媒体は、情報を永久的又は一時的に記憶し得る。非一時的コンピュータ可読媒体は、モバイル媒体又は静止媒体であり得る。情報は、コンピュータ可読命令、データ構造、プロセスモジュール、又は他のデータであり得る。非一時的コンピュータ可読媒体は、相変化ランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、他のタイプのRAM、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、フラッシュメモリ、レジスタ、キャッシュ、CD、DVD、他のタイプの光学記憶媒体、磁気テープ、磁気ドライブ、又は他のタイプの磁気記憶媒体、記憶コンピュータメッセージを含み得る。
示される方法、デバイス、サーバ、及びシステムは、ソフトウェア、ハードウェア、又は専用構成要素を有する専用デバイスが上述した機能を実行できるようにするソフトウェアとハードウェアとの組み合わせにより実行し得る。例えば、示される方法、デバイス、サーバ、及びシステムは、特定用途向け集積回路(ASIC)又は他のハードウェアデバイスで実施し得る。一実施形態では、モジュール又はサブモジュールのステップ及び機能は、物理的なプロセッサにより実行し得る。一実施形態では、ステップ及びそれに関連するデータ構造は、RAM、磁気ドライブ、光学ドライブ、及び磁気ディスク等の非一時的コンピュータ可読媒体に記憶し得る。幾つかの実施形態では、本開示のステップ又は機能は、プロセッサと協働して、ステップ又は機能を実行するように設計される回路等のハードウェアデバイスを用いて実施し得る。
幾つかの実施形態では、方法の全て又は一部は、コンピュータ命令等のコンピュータプログラムにより実施し得、コンピュータプログラムは、コンピュータにより実行されると、コンピュータに方法又は機能を実行させる。これらのコンピュータ命令は、ポータブル又は非ポータブルの非一時的コンピュータ記憶媒体に記憶し得、ブロードキャストにより又はネットワークにおいて伝送し得、及び/又は計算デバイスのメモリデバイスに記憶し得る。本開示の実施形態によるデバイスは、コンピュータ命令を記憶するように構成されるメモリデバイスと、命令を実行して、本開示の方法又は実施形態を実行するように構成されるプロセッサとを含む。
本発明の他の実施形態が、本明細書を考慮し、本明細書に開示される本発明を実施することから当業者に明らかになる。本願は、本発明の一般原理に従い、本開示からの、当分野での既知又は慣習的な実施内にある逸脱を包含する本発明のあらゆる変形、使用、又は適合を包含することが意図される。本明細書及び例が単なる例示として見なされることが意図され、本発の真の範囲及び趣旨は以下の特許請求の範囲により示される。上述したステップ又はモジュールの複数のステップ又はモジュールを1つのステップ又はモジュールとして結合してもよく、上述した各モジュールを複数のサブモジュールに更に分割してもよいことも当業者は理解する。本開示の単数形の用語表現は、複数であり得ることを除外しない。本開示で使用される序数は、必ずしもステップ又は方法の順序を表すわけではない。ステップ又は方法の順序は、実際のニーズに従って変更し得る。
本発明が、上述され、添付図面に示された厳密な構造に限定されず、本発明の範囲から逸脱せずに、様々な変更及び変形を行い得ることが理解される。本発明の範囲は添付の特許請求の範囲によってのみ限定されることが意図される。

Claims (18)

  1. 負荷平衡システムにおいて接続を確立する装置であって、前記装置はクライアントデバイスと、前記クライアントデバイスにサービスを提供するリアルサーバとの間に結合され、
    命令を記憶するメモリデバイスと、
    プロセッサと
    を含み、
    前記プロセッサは、前記メモリデバイスに記憶された前記命令を実行して、
    前記クライアントデバイスから同期(SYN)パケットを受信することであって、前記SYNパケットはクライアント接続情報を含む、受信することと、
    前記クライアント接続情報に基づいて、シリアルナンバーを計算することと、
    第1の同期肯定応答(SYN+ACK)パケットを前記クライアントデバイスに返送することであって、前記シリアルナンバーは、前記第1のSYN+ACKパケットのシリアルナンバーであるように割り当てられ、前記第1のSYN+ACKパケットは前記リアルサーバの接続情報を含む、返送することと、
    前記クライアントから肯定応答(ACK)パケットを受信し、前記ACKパケットの確認番号に基づいて計算して前記クライアント接続情報を取得することと、
    前記クライアント接続情報を含む自己定義パケットを生成することと、
    前記自己定義パケットを前記リアルサーバに転送し、それにより、前記リアルサーバは前記クライアント接続情報を前記自己定義パケットから抽出し、前記クライアント接続情報に基づいて、前記クライアントデバイスとの伝送制御プロトコル(TCP)接続を確立することと
    を行うように構成される、装置。
  2. 前記プロセッサは、
    前記クライアントから返送された前記ACKパケットに識別子を追加し、前記クライアント接続情報を書き込んで、前記自己定義パケットを生成する
    ように更に構成され、前記識別子は前記自己定義パケットを識別する、請求項1に記載の装置。
  3. 前記プロセッサは、
    前記自己定義SYNパケットのシリアルナンバーを、前記クライアントから送信された前記SYNパケットのシリアルナンバーとなるように設定することと、
    前記負荷平衡デバイスから送信された前記第1のSYN+ACKパケットのシリアルナンバーを、前記自己定義SYNパケットの確認番号となるように設定することと、
    前記クライアント接続情報を前記自己定義SYNパケットに書き込むことと、
    前記負荷平衡デバイスのアドレスを前記自己定義SYNパケットに追加することと
    を行うように更に構成される、請求項1又は2に記載の装置。
  4. 前記プロセッサは、
    前記自己定義SYNパケットを前記リアルサーバに転送し、それにより、前記リアルサーバは、前記自己定義SYNパケットに含まれる前記クライアント接続情報に基づいて前記クライアントとハーフオープンTCP接続を確立することと、
    前記負荷平衡デバイスの前記アドレスに基づいて前記リアルサーバから送信される第2のSYN+ACKパケットを受信した後、前記クライアントデバイスから返送された前記ACKパケットを前記リアルサーバに転送し、それにより、前記リアルサーバは、前記ハーフオープンTCP接続を前記TCP接続に変換することであって、前記第2のSYN+ACKパケットのシリアルナンバーは、前記自己定義SYNパケットの前記確認番号である、転送することと
    を行うように更に構成される、請求項3に記載の装置。
  5. 前記クライアントデバイスから返送される前記ACKパケットは、データ要求を含み、
    前記プロセッサは、
    前記クライアント接続情報及び前記データ要求を含む前記自己定義パケットを生成することと、
    前記自己定義パケットを前記リアルサーバに転送し、それにより、前記リアルサーバは、前記クライアント接続情報及び前記データ要求を前記自己定義パケットから抽出し、それにより、前記リアルサーバは、前記クライアントデバイスとの前記TCP接続を確立し、前記TCP接続の確立後、前記データ要求に基づいて応答パケットを前記クライアントデバイスに転送することと
    を行うように更に構成される、請求項1〜4のいずれか一項に記載の装置。
  6. 前記プロセッサは、
    前記シリアルナンバーとしてクッキー値を取得して前記クライアント接続情報を計算するために、同期クッキー技術のクッキー機能を使用して前記シリアルナンバーを計算することと、
    前記ACKパケットを前記クライアントデバイスから受信し、前記ACKパケットの前記確認番号を計算し、前記クッキー値を取得することと、
    前記クッキー値の有効性をチェックし、前記クッキー値が前記チェックに合格する場合、前記クライアント接続情報を取得することと
    を行うように更に構成される、請求項1〜5のいずれか一項に記載の装置。
  7. 負荷平衡システムにおいて接続を確立するコンピュータ実施方法であって、前記方法は、クライアントデバイスと、前記クライアントデバイスにサービスを提供するリアルサーバとの間に結合される負荷平衡デバイスにより実行され、前記方法は、
    前記クライアントデバイスから同期(SYN)パケットを受信することであって、前記SYNパケットはクライアント接続情報を含む、受信することと、
    前記クライアント接続情報に基づいて、シリアルナンバーを計算することと、
    第1の同期肯定応答(SYN+ACK)パケットを前記クライアントデバイスに返送することであって、前記シリアルナンバーは、前記第1のSYN+ACKパケットのシリアルナンバーであるように割り当てられ、前記第1のSYN+ACKパケットは前記リアルサーバの接続情報を含む、返送することと、
    前記クライアントから肯定応答(ACK)パケットを受信し、前記ACKパケットの確認番号に基づいて計算して前記クライアント接続情報を取得することと、
    前記クライアント接続情報を含む自己定義パケットを生成することと、
    前記自己定義パケットを前記リアルサーバに転送し、それにより、前記リアルサーバは前記クライアント接続情報を前記自己定義パケットから抽出し、前記クライアント接続情報に基づいて、前記クライアントデバイスとの伝送制御プロトコル(TCP)接続を確立することと
    を含む、コンピュータ実施方法。
  8. 前記自己定義パケットを生成することは、
    前記クライアントから返送された前記ACKパケットに識別子を追加し、前記クライアント接続情報を書き込んで、前記自己定義パケットを生成することを含み、前記識別子は前記自己定義パケットを識別する、請求項7に記載のコンピュータ実施方法。
  9. 自己定義パケットは自己定義SYNパケットであり、前記自己定義SYNパケットは、
    前記自己定義SYNパケットのシリアルナンバーを、前記クライアントから送信された前記SYNパケットのシリアルナンバーとなるように設定することと、
    前記負荷平衡デバイスから送信された前記第1のSYN+ACKパケットのシリアルナンバーを、前記自己定義SYNパケットの確認番号となるように設定することと、
    前記クライアント接続情報を前記自己定義SYNパケットに書き込むことと、
    前記負荷平衡デバイスのアドレスを前記自己定義SYNパケットに追加することと
    により生成される、請求項7又は8に記載のコンピュータ実施方法。
  10. 前記自己定義SYNパケットは前記リアルサーバに転送され、それにより、前記リアルサーバは、前記自己定義SYNパケットに含まれる前記クライアント接続情報に基づいて前記クライアントとハーフオープンTCP接続を確立し、前記リアルサーバは、前記負荷平衡デバイスの前記アドレスに基づいて、第2のSYN+ACKパケットを前記負荷平衡デバイスに転送し、前記第2のSYN+ACKパケットのシリアルナンバーは、前記自己定義SYNパケットの前記確認番号であり、
    前記方法は、前記第2のSYN+ACKパケットを受信した後、前記クライアントデバイスから返送された前記ACKパケットを前記リアルサーバに転送し、それにより、前記リアルサーバは、前記ハーフオープンTCP接続を前記TCP接続に変換することを更に含む、請求項9に記載のコンピュータ実施方法。
  11. 前記クライアントデバイスから返送される前記ACKパケットは、データ要求を含み、
    前記自己定義パケットを生成することは、前記クライアント接続情報及び前記データ要求を前記自己定義パケットに書き込むことを含み、
    前記自己定義パケットを前記リアルサーバに転送することは、前記リアルサーバに、前記クライアント接続情報及び前記データ要求を抽出するように促し、それにより、前記リアルサーバは、前記クライアントデバイスとの前記TCP接続を確立し、前記TCP接続の確立後、前記データ要求に基づいて応答パケットを前記クライアントデバイスに転送する、請求項7〜10のいずれか一項に記載のコンピュータ実施方法。
  12. 前記シリアルナンバーを計算することは、前記シリアルナンバーとしてクッキー値を取得して前記クライアント接続情報を計算するために、同期クッキー技術のクッキー機能を使用するし、ことを含み、
    前記確認番号に基づいて計算して前記クライアント接続情報を取得することは、前記確認番号を計算して、前記クッキー値を取得し、前記クッキー値の有効性をチェックし、前記クッキー値が前記チェックに合格する場合、前記クライアント接続情報を取得することを含む、請求項7〜11のいずれか一項に記載のコンピュータ実施方法。
  13. 方法をデバイスに実行させるために前記デバイスの少なくとも1つのプロセッサによって実行可能な1組の命令を記憶する非一時的コンピュータ可読媒体であって、前記方法は、
    クライアントデバイスから同期(SYN)パケットを受信することであって、前記SYNパケットはクライアント接続情報を含む、受信することと、
    前記クライアント接続情報に基づいて、シリアルナンバーを計算することと、
    第1の同期肯定応答(SYN+ACK)パケットを前記クライアントデバイスに返送することであって、前記シリアルナンバーは、前記第1のSYN+ACKパケットのシリアルナンバーであるように割り当てられ、前記第1のSYN+ACKパケットは前記リアルサーバの接続情報を含む、返送することと、
    前記クライアントから肯定応答(ACK)パケットを受信し、前記ACKパケットの確認番号に基づいて計算して前記クライアント接続情報を取得することと、
    前記クライアント接続情報を含む自己定義パケットを生成することと、
    前記自己定義パケットを前記リアルサーバに転送し、それにより、前記リアルサーバは前記クライアント接続情報を前記自己定義パケットから抽出し、前記クライアント接続情報に基づいて、前記クライアントデバイスとの伝送制御プロトコル(TCP)接続を確立することと
    を含む、非一時的コンピュータ可読媒体。
  14. デバイスの前記少なくとも1つのプロセッサによって実行可能な前記1組の命令が、
    前記クライアントから返送された前記ACKパケットに識別子を追加し、前記クライアント接続情報を書き込んで、前記自己定義パケットを生成することを前記デバイスに更に実行させ、前記識別子は前記自己定義パケットを識別する、請求項13に記載の非一時的コンピュータ可読媒体。
  15. 前記自己定義パケットは自己定義SYNパケットであり、データ処理デバイスの前記少なくとも1つのプロセッサによって実行可能な前記1組の命令が、
    前記自己定義SYNパケットのシリアルナンバーを、前記クライアントから送信された前記SYNパケットのシリアルナンバーとなるように設定することと、
    前記負荷平衡デバイスから送信された前記第1のSYN+ACKパケットのシリアルナンバーを、前記自己定義SYNパケットの確認番号となるように設定することと、
    前記クライアント接続情報を前記自己定義SYNパケットに書き込むことと、
    前記負荷平衡デバイスのアドレスを前記自己定義SYNパケットに追加することと
    を前記デバイスに更に実行させる、請求項13又は14に記載の非一時的コンピュータ可読媒体。
  16. 前記自己定義SYNパケットは前記リアルサーバに転送され、それにより、前記リアルサーバは、前記自己定義SYNパケットに含まれる前記クライアント接続情報に基づいて前記クライアントとのハーフオープンTCP接続を確立し、前記リアルサーバは、前記負荷平衡デバイスの前記アドレスに基づいて、第2のSYN+ACKパケットを前記負荷平衡デバイスに転送し、前記第2のSYN+ACKパケットのシリアルナンバーは、前記自己定義SYNパケットの前記確認番号であり、
    データ処理デバイスの前記少なくとも1つのプロセッサによって実行可能な前記1組の命令が、
    前記第2のSYN+ACKパケットを受信した後、前記リアルサーバが、前記ハーフオープンTCP接続を前記TCP接続に変換するように、前記クライアントデバイスから返送された前記ACKパケットを前記リアルサーバに転送すること
    を前記デバイスに更に実行させる、
    請求項15に記載の非一時的コンピュータ可読媒体。
  17. 前記クライアントデバイスから返送される前記ACKパケットは、データ要求を含み、
    前記自己定義パケットを生成することは、前記クライアント接続情報及び前記データ要求を前記自己定義パケットに書き込むことを含み、
    前記自己定義パケットを前記リアルサーバに転送することは、前記リアルサーバに、前記クライアント接続情報及びデータ要求を抽出するように促し、それにより、前記リアルサーバは、前記クライアントデバイスとの前記TCP接続を確立し、前記TCP接続の確立後、前記データ要求に基づいて応答パケットを前記クライアントデバイスに転送する、請求項13〜16のいずれか一項に記載の非一時的コンピュータ可読媒体。
  18. 前記シリアルナンバーを計算することは、前記シリアルナンバーとしてクッキー値を取得して前記クライアント接続情報を計算するために、同期クッキー技術のクッキー機能を使用することを含み、
    前記確認番号に基づいて計算して前記クライアント接続情報を取得することは、前記確認番号を計算して、前記クッキー値を取得し、前記クッキー値の有効性をチェックし、前記クッキー値が前記チェックに合格する場合、前記クライアント接続情報を取得することを含む、請求項13〜17のいずれか一項に記載の非一時的コンピュータ可読媒体。
JP2018508649A 2015-08-20 2016-08-19 負荷平衡システムにおいて接続を確立するデバイス及び方法 Active JP6858749B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510516359.9 2015-08-20
CN201510516359.9A CN106470238A (zh) 2015-08-20 2015-08-20 应用于服务器负载均衡中的连接建立方法及装置
PCT/US2016/047876 WO2017031460A1 (en) 2015-08-20 2016-08-19 Device and method for establishing connection in load-balancing system

Publications (2)

Publication Number Publication Date
JP2018528679A true JP2018528679A (ja) 2018-09-27
JP6858749B2 JP6858749B2 (ja) 2021-04-14

Family

ID=58052026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018508649A Active JP6858749B2 (ja) 2015-08-20 2016-08-19 負荷平衡システムにおいて接続を確立するデバイス及び方法

Country Status (6)

Country Link
US (1) US20170054640A1 (ja)
EP (1) EP3338396B1 (ja)
JP (1) JP6858749B2 (ja)
CN (1) CN106470238A (ja)
TW (1) TWI677222B (ja)
WO (1) WO2017031460A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107547620B (zh) * 2017-06-22 2021-06-22 新华三信息安全技术有限公司 一种响应时间获取方法及装置
JP2020537211A (ja) * 2017-10-13 2020-12-17 ホアウェイ・テクノロジーズ・カンパニー・リミテッド アプリケーション管理方法および端末
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
CN106470238A (zh) 2017-03-01
EP3338396B1 (en) 2021-09-22
TW201713093A (zh) 2017-04-01
US20170054640A1 (en) 2017-02-23
TWI677222B (zh) 2019-11-11
EP3338396A4 (en) 2018-08-08
JP6858749B2 (ja) 2021-04-14
EP3338396A1 (en) 2018-06-27
WO2017031460A1 (en) 2017-02-23

Similar Documents

Publication Publication Date Title
JP6858749B2 (ja) 負荷平衡システムにおいて接続を確立するデバイス及び方法
Kumar et al. Implementation and analysis of QUIC for MQTT
Shelby et al. The constrained application protocol (CoAP)
US10498831B2 (en) Communication sessions at a CoAP protocol layer
US8533343B1 (en) Virtual network pairs
US9350711B2 (en) Data transmission method, system, and apparatus
US10341286B2 (en) Methods and systems for updating domain name service (DNS) resource records
JP2009525708A (ja) プロトコルリンクレイヤ
CN106714154B (zh) 用于通用自举架构协议的代理服务器、方法和系统
CN109196842B (zh) 一种会话保持方法、设备及存储介质
US9619662B1 (en) Virtual network pairs
CN107995233B (zh) 建立连接的方法及相应的设备
CN112152880A (zh) 一种链路健康检测方法及装置
US10742751B2 (en) User based mDNS service discovery
CN108064441B (zh) 一种加速网络传输优化方法以及系统
US11444882B2 (en) Methods for dynamically controlling transmission control protocol push functionality and devices thereof
JP6690959B2 (ja) Tcpハンドシェークをリフォームするデバイス及び方法
US11038994B2 (en) Technique for transport protocol selection and setup of a connection between a client and a server
CN109818912B (zh) 防范泛洪攻击的方法、装置、负载均衡设备和存储介质
CN114598675A (zh) 基于arp实现主机阻断的控制方法、装置、设备及介质
EP3902222A1 (en) Dr mode protection method and device
US11496438B1 (en) Methods for improved network security using asymmetric traffic delivery and devices thereof
US8676993B1 (en) Bundled transmission control protocol connections
CN116418661A (zh) 信息传输方法、装置、电子设备、软件程序及存储介质
KR20150089894A (ko) 쿠키 프락시 기능을 구비한 네트워크 주소 변환 장치 및 쿠키 프락시 기능을 지원하는 네트워크 주소 변환 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210324

R150 Certificate of patent or registration of utility model

Ref document number: 6858749

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250