JP6690959B2 - Tcpハンドシェークをリフォームするデバイス及び方法 - Google Patents

Tcpハンドシェークをリフォームするデバイス及び方法 Download PDF

Info

Publication number
JP6690959B2
JP6690959B2 JP2016027475A JP2016027475A JP6690959B2 JP 6690959 B2 JP6690959 B2 JP 6690959B2 JP 2016027475 A JP2016027475 A JP 2016027475A JP 2016027475 A JP2016027475 A JP 2016027475A JP 6690959 B2 JP6690959 B2 JP 6690959B2
Authority
JP
Japan
Prior art keywords
syn
message
tcp
ack message
handshaker
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.)
Active
Application number
JP2016027475A
Other languages
English (en)
Other versions
JP2016154332A (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 JP2016154332A publication Critical patent/JP2016154332A/ja
Application granted granted Critical
Publication of JP6690959B2 publication Critical patent/JP6690959B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/01Protocols
    • 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

Description

本開示は一般にコンピュータシステムに関連し、特にそのようなシステムにおけるTCP/IPハンドシェークを実行することに関連する。
このセクションは様々な技術的側面を読者に紹介するように意図されており、以下に記述及び/又は請求される本開示の様々な側面に関連する。本説明は、本開示の様々な側面の適切な理解を促すように背景情報を読者に提供することを支援するものと考えられる。従って、これらの記述は、その観点から読み取られるべきであり、従来技術の自認としてではなく理解されるべきである。
本説明において、「クライアント」という言葉はTCPクライアント(すなわち、SYNメッセージ及びACKメッセージを送信するデバイス)に関連して使用されることが可能であり、及び、「サーバー」という言葉はTCPサーバー(すなわち、SYNメッセージを受信するデバイス)に関連して使用されることが可能である。そのような「クライアント」は、より一般的な用語の使い方では(ウェブサーバーのような)サーバーであってもよいこと、及び、「サーバー」はそれに応じてウェブクライアントのようなクライアントであってもよいことが、認められるであろう。これらの用語がどのように解釈されるべきかは文脈から明らかである。
TCP/IPは非常に良く知られた通信プロトコルである。2つのデバイスの間でTCP/IPコネクションを設定するために、デバイスは図1に示されるTCPハンドシェークを実行する。第1デバイス(クライアントと言及される)は、第1デバイスのIPアドレス及び第1の整数mを含むSYN(m)メッセージを、第2デバイス(サーバーと言及される)に送信する。サーバーがリクエストを受け入れると、受信したIPアドレス宛にSYN-ACK(m+1,n)メッセージで応答し、そのメッセージは、第2の整数nと、第1の整数mを1つインクリメントしたもの(すなわち、m+1)とを含む。SYNメッセージを送信した後、クライアントは、送信したSYNメッセージの記録を維持し、所定の期間にわたって待機し;対応するSYN-ACKメッセージを、期間が経過する前に受信しなかった場合、待機することを止める。サーバーからSYN-ACKメッセージを受信すると、クライアントは、SYN-ACKメッセージがm+1を含むことを検査する。含んでいる場合、第2の整数nを1つだけインクリメントしたもの(すなわち、n+1)を含むACK(n+1)メッセージをサーバーへ送信することにより、受信を確認する。サーバーは、最終的に、ACKメッセージがn+1を含むことを確認する。サーバーの確認が成功すると、以後、ハンドシェークは適切に実行されている。
クライアントが、複数のサーバーと並列的にハンドシェークを実行しようとするような所定の状況において、デバイスが、ハンドシェークの間、割り当てられたリソースを維持しなければならないことは、問題となり得る。送信又は受信されるSYNの各々に関し、TCPスタックは1つの伝送制御ブロック(Transmission Control Block:TCB)の記録を開始し、各々の記録は何百バイトも必要とする。3方向ハンドシェークの際に、ネットワーク速度に関する何らの事前予測もなされていない。従って、TCBの記録はおそらく長時間にわたって生き残り、リソースを消費することになる。更に悪いことに、接続されていないデバイス或いはTCPスタックに応答しないデバイスに対するSYNの送信が、ある時間(タイムアウト持続時間)にわたって、対応するTCBを維持する場合、リソースを浪費してしまう。
TCPハンドシェークに関する問題の少なくとも一部を克服する解決手段をもたらすことが望まれることは、認められるであろう。本開示はそのような解決手段を提供する。
第1側面において、本原理はTCPハンドシェークを実行するデバイスに関連する。本デバイスは、少なくとも1つの外部デバイスと当該デバイスのプロセッサとの間でメッセージを送信するように構成されるインターフェース;並びに
インターフェースからSYN-ACKメッセージを受信することであって、当該デバイスは対応するSYNメッセージを送信しておらず、SYN-ACKメッセージはソースアドレスを含む、こと;SYN-ACKメッセージに対応するACKメッセージを生成すること;及び、ソースアドレスへの送信のためにインターフェースにACKメッセージを送信すること;を行うように構成されるプロセッサ;を有する。
第1側面の様々な形態は、以下を含む:
・ プロセッサが、送信されたSYNメッセージの記録を保存するTCPスタックにアクセスするように構成され、かつ、当該デバイスが対応するSYNメッセージをあたかも送信していたかのようにTCPスタックにパッチを適用し(patching)、及び、対応するSYNメッセージに対応する記録を作成することにより、当該デバイスが対応するSYNメッセージをあたかも送信していたかのように、TCPハンドシェークを再構築するように構成される。各々の記録はSYNメッセージのシーケンス番号を含むこと、及び、SYN-ACKメッセージにおける対応する整数から1を減算することにより、対応するSYNメッセージのシーケンス番号を取得するように、プロセッサが更に構成されることは、有利である。
・ 当該デバイスは、SYN-ACKメッセージをインターセプトし、そのインターセプトをプロセッサに通知するように構成されるファイヤウォールを更に有する。プロセッサは、ソースアドレスに向けて送信される対応するSYNメッセージを生成し、TCPスタックを更新するように更に構成される。ファイヤウォールは、プロセッサにより生成される対応するSYNメッセージをインターセプトし、SYN-ACKメッセージをプロセッサに転送するのみであるように更に構成される。
・ プロセッサは、データのリクエスト(第1の整数を含む)をサーバーに送信し、 サーバーからデータを受信し、第1の整数及びSYN-ACKメッセージとともに受信された第2の整数を利用して、SYN-ACKメッセージがリクエストに関連することを確認するように更に構成される。
第2側面において、本原理は、TCPハンドシェークを実行するための方法に関連する。デバイスのプロセッサは、SYN-ACKメッセージを受信し、デバイスは対応するSYNメッセージを送信しておらず、SYN-ACKメッセージはソースアドレスを含み、デバイスのプロセッサは、SYN-ACKメッセージに対応するACKメッセージを生成し、ソースアドレスへ送信する。
第2側面の様々な形態は、以下を含む:
・ 本方法が、送信されたSYNメッセージの記録を保存するTCPスタックにアクセスするステップと、デバイスが対応するSYNメッセージをあたかも送信していたかのようにTCPスタックにパッチを適用し、及び、対応するSYNメッセージに対応する記録を作成することにより、デバイスが対応するSYNメッセージをあたかも送信していたかのように、TCPハンドシェークを再構築するステップとを更に有する。各々の記録はSYNメッセージのシーケンス番号を含むここと、及び、プロセッサが、SYN-ACKメッセージにおける対応する整数から1を減算することにより、対応するSYNメッセージのシーケンス番号を取得するように構成されることは、有利である。
・ 当該デバイスは、SYN-ACKメッセージをインターセプトし、そのインターセプトをプロセッサに通知するように構成されるファイヤウォールを更に有する。プロセッサは、ソースアドレスに向けて送信される対応するSYNメッセージを生成し、TCPスタックを更新するように更に構成される。ファイヤウォールは、プロセッサにより生成される対応するSYNメッセージをインターセプトし、SYN-ACKメッセージをプロセッサに転送するのみであるように更に構成される。
・ プロセッサは、データのリクエスト(第1の整数を含む)をサーバーに送信し、 サーバーからデータを受信し、第1の整数及びSYN-ACKメッセージとともに受信された第2の整数を利用して、SYN-ACKメッセージがリクエストに関連することを確認するように更に構成される。
第3側面において、本原理はプロセッサを有するサーバーに関連し、プロセッサは、データのリクエストをクライアントから受信することであって、データは第1部分及び第2部分を有し、リクエストはクライアントのアドレスを含む、こと; 第1部分をクライアントに送信すること;及び、TCPハンドシェークのSYNメッセージを、第2部分をクライアントに提供するように構成される別のデバイスへ送信することであって、SYNメッセージはクライアントのアドレスをソースアドレスとして含む、こと;を行うように構成される。
第3側面の形態は、リクエストが整数を含むこと、及び、プロセッサが、整数を別のデバイスへSYNメッセージとともに送信するように更に構成されることを含む。
第4側面において、本原理は、サーバーのプロセッサにおける方法に関連し、本方法は、データのリクエストをクライアントから受信するステップであって、データは第1部分及び第2部分を有し、リクエストはクライアントのアドレスを含む、ステップ;第1部分をクライアントに送信するステップ;及び、TCPハンドシェークのSYNメッセージを、第2部分をクライアントに提供するように構成される別のデバイスへ送信するステップであって、SYNメッセージはクライアントのアドレスをソースアドレスとして含む、ステップ;を有する。
第4側面の形態は、リクエストが整数を含むこと、及び、プロセッサが、整数を別のデバイスへSYNメッセージとともに送信することを含む。
第5側面において、本原理は、命令を記憶する非一時的な記憶媒体に関連し、命令は、プロセッサにより実行される場合に、第2側面の方法を実行する。
本原理の好ましい特徴が、非限定的な具体例により、添付図面に関連して説明される。
図1は従来技術によるTCPハンドシェークを示す。 図2は本原理を実現するシステムを示す。 図3は本原理に従ってデバイスでTCPハンドシェークを実行する方法を示す。
図2は本原理を実現するシステム200を示す。システム200は、イニシエータデバイス(又は開始装置)210と、少なくとも1つのサーバーデバイス(又はサーバー装置)220と、少なくとも1つのターミネータデバイス(又は終端装置)230とを有する。いくつかのデバイスしか示されていないが、これらのデバイスの各々210、220、230は、少なくとも1つのハンドシェーク処理ユニット(プロセッサ)211、231と、メモリ212、232と、少なくとも1つの通信インターフェース(I/O)213、233とを有し、通信インターフェースは、他のデバイスからプロセッサへ及びプロセッサから他のデバイスへのメッセージを通信するように構成される。ターミネータデバイス230はファイヤウォール234を含むことも可能であり、ファイヤウォールは場合によってはプロセッサ231の中又は別のプロセッサ(図示せず)の中に実装される。図示のデバイスは簡明化の理由から非常に簡略化されていること、及び、実際のデバイスは内部接続及び電力供給などのような機能を更に有することを、当業者は認めるであろう。プロセッサは、本願で説明されるように、メッセージを取り扱うことや、計算を実行すること等のための命令(場合によっては、少なくとも部分的にメモリに保存される)を実行するように構成される。非一時的な記憶媒体(図示せず)は命令を格納し、命令は、プロセッサにより実行されると、本願で説明されるようにターミネータデバイスでTCPハンドシェーク方法を実行する。
TCPハンドシェークを実行するために、イニシエータデバイス210は、SYN(m)メッセージ240をサーバー220へ送信することにより、それを開始する。SYNメッセージは、第1の整数mと、標準的な従来のハンドシェークとは異なり、ターミネータデバイスのIPアドレスとを含む。この後、イニシエータデバイス210は、送信したSYNメッセージ240に関する全てを忘れることが可能であり;イニシエータデバイス210にとってTCBを保存することは有用ではなく、その理由は、イニシエータデバイスは対応する如何なるSYN-ACKメッセージも受信しないであろうからである。例えば多くのサーバーデバイスの監視に特に適した一実施形態では、イニシエータデバイス210は、ターミネータデバイス間の負荷のバランスをとるために、(複数の)ターミネータデバイスのネットワークアドレスの中からソースアドレスを選択することが可能であり;従って、ターミネータデバイスにとって、各自の負荷についてのフィードバックをイニシエータデバイスに提供することは有用である。
サーバー220は、従来のサーバーのように反応し、すなわち、m+1及び第2の整数nを含む対応するSYN-ACKメッセージ(m+1,n)とともに応答する。サーバー220は、SYNメッセージ240のソースIPアドレスへレスポンスを送信し、その理由は、サーバー220は、それがSYN-ACKメッセージ240の送信元のIPアドレスであると考えているからであることに、留意すべきである。
SYN-ACKメッセージを受信するターミネータデバイス230は、対応するTCBを保存しておらず、これは、SYN-ACKメッセージがTCPハンドシェークに関する最初の接触(ファーストコンタクト)であることを意味する。そして、ターミネータデバイス230は、あたかも当初のSYNメッセージ240を送信していたかのように、TCPハンドシェークを(改めて)構築する必要がある。これは様々な方法で実行されることが可能であり、以下に2つの具体例が示される。
第1方法は、TCP状態マシンを「ESTABLISHED(設定済み)」に設定すること、及び、第1の整数mに対応するシーケンス番号を利用してTCBを再構築することにより、TCPスタックにパッチを適用することである。シーケンス番号は、SYN-ACKメッセージ250で受信したインクリメントされた整数から1を減算することにより、すなわち(m+1)-1を計算することにより、容易に算出される。一般に、TCPスタックはSYNメッセージ240のタイムスタンプも維持しており;このタイムスタンプは、SYN-ACKメッセージ250の受信時点より前の時間を利用して再構築されてもよい。この方法の利点は簡易(lightweight)であることであるが、その一方において、TCPコードにパッチを適用する点で複雑化するかもしれない。
第2方法は、ターミネータデバイス230におけるファイヤウォール234を利用してSYN-ACKメッセージ250をインターセプト(受信)し、その受信をターミネータデバイス230の機能部に通知することである。機能部は、サーバー220へ向けて送信されるがファイヤウォールによってインターセプトされる対応するSYN(m)メッセージを生成し、ファイヤウォールはSYN-ACKメッセージ250をTCPスタックに転送するのみである。この方法の利点は、TCPスタックが修正されないことであるが、ファイヤウォール及び機能部のような追加的なリソースを必要とする。
TCPスタックは、プロセッサが保存に十分なリソースを有する場合にはプロセッサに若しくはメモリに、又は、それらの組み合わせで保存されることが可能である。何れにせよ、プロセッサはTCPスタックに対するアクセス(権)を有する。
そして、ターミネータデバイス230はACK(n+1)メッセージ260をサーバー220に送信し、以後ハンドシェークは終了する。
図3は、本原理によるターミネータデバイスにおけるTCPハンドシェークを実行する方法を示す。ターミネータデバイス230は、今後のTCPハンドシェークのための如何なるTCBも保存していない;言い換えれば、開始SYNメッセージを送信しておらず、及び、そのようなメッセージが送信されたことにさえ気付いていなくてもよい。
ステップS310において、ターミネータデバイスの通信インターフェースは、SYN-ACK(m+ 1,n)メッセージをサーバーから受信する。ステップS320では、ターミネータデバイスは、例えば、上述した2つの方法の何れかを利用して、あたかもオリジナルのSYNメッセージを送信していたかのように、TCPハンドシェークを再構築する。そして、ターミネータデバイスは、ステップS330において、ACK(n+1)メッセージをサーバーに送信し、以後ハンドシェークは終了する。
本原理は、ゲートウェイや移動電話のようなリモート監視装置で使用されてもよい。そのような監視に対する従来のソリューションは、主に、 (何十万ないし何百万もの)大量のデバイスに起因する問題に遭遇し、その理由は、監視サーバーにおいて、SYNメッセージが送信される各デバイスにリソースが割り当てられるからである。主な従来のソリューションは、横並びのスケーリング(horizontal scaling)であり、すなわち、監視されるべきデバイス数の関数として(それに応じて)監視サーバーを追加している。スケーリングのコストはせいぜい直線的であるが、通常、外的なインフラストラクチャが必要になる。
本原理はその問題を少なくとも部分的に克服できることが認められるであろう。イニシエータデバイスは、如何なる状態も維持せず、如何なるTCBも保存せず、これらは、(SYNメッセージを送信するのに必要なリソースを除いて)監視される各々のデバイスにリソースを割り当てる必要がないことを意味する。監視されるデバイスは、上述したように従来の方法で動作する。最終的に、ターミネータデバイス(この例では、通常、1つより多い)は、SYN-ACKメッセージの受信の場合に、監視されるデバイスにリソースを割り当てることしか要しない。従って、何らかの又は他の理由で応答しないデバイスにリソースを割り当てる必要はない。
本原理は、ウェブブラウザのようなクライアントが、様々なプロバイダにより提供される情報を有するウェブページを要求する場合に使用されてもよい。そのようなウェブページの主な具体例は、オンライン新聞のフロントページであり、それは、新聞自体により提供されるニュース記事とは別に、様々な広告プロバイダにより提供さえる広告を含んでいる。
本原理は次のような例にも使用可能であることが認められるであろう。クライアントがサーバーからのウェブページを要求する場合に、サーバーは、イニシエータデバイスの役割を果たし、及び、トラッキング(tracking)、広告、キャッシング(caching)、組込コンテンツ等を要求されたウェブページに提供する第三者サーバーにSYNメッセージを送信することが可能である。サーバーは、これらのSYNメッセージのソースアドレスをなりすまし(spoof)、SYNメッセージがクライアントから由来しているように見せる。第三者サーバーは、通常のTCPハンドシェークに従って動作し、すなわち、それらは、クライアントに送信されるSYN-ACKメッセージとともに「応答」する。そして、SYN-ACKメッセージを受信する場合に、クライアントはターミネータデバイスのように動作し、すなわち、TCPコネクションを再接続し、SYNメッセージを第三者サーバーへ送信する。
SYNクッキー(SYN-cookies)に類似する特徴を利用することは有用である:クライアントのリクエストは或る整数を有し、その整数は、クライアントへ送信されるSYN-ACKメッセージに含めるために、サーバーにより第三者サーバーへ転送される。このようにして、クライアントは、受信されるSYN-ACKメッセージが、ウェブページのリクエストに関連することを確認することが可能である。第三者サーバーは、整数をそのまま含めてもよいが、含める前に、例えば(SYNメッセージ中の整数に対してなされたのと同様に)整数をインクリメントすることにより、整数を処理してもよく、何れにせよ、受信される整数は、SYN-ACKメッセージがリクエストに関連することの確認を可能にする。
これについての利点は、接続の高速化が可能になることであり、その理由は、クライアントと第三者サーバーとの間の接続が迅速化するからであり、また、サーバーがTCPハンドシェークを開始する場合にウェブページ中の第三者サーバーに関する情報をクライアントが待機する必要がないからである。修正されたTCPハンドシェークを処理することが可能であることを、クライアントが例えばリクエストにおいてサーバーに通知することは有利であり、その理由は、そのように動作できないデバイスは第三者サーバーからのSYN-ACKメッセージを単に拒否することになるからである。
本原理は、少なくとも所定の状況において、従来のTCPハンドシェークを改善することが可能なTCPハンドシェークを提供することが、認められるであろう。
本説明及び(適切であるならば)特許請求の範囲及び図面に開示される各々の特徴は、独立に又は何らかの適切な組み合わせにより提供されてよい。ハードウェアで実現されるように説明される特徴は、ソフトウェアで実現されてもよく、その逆も成り立つ。参照番号が特許請求の範囲に登場する場合、それらは例示であるに過ぎず、特許請求の範囲に対する如何なる効力の制限も有しない。
[付記1]
TCPハンドシェークを実行するデバイスであって:
少なくとも1つの外部デバイスと当該デバイスの処理手段との間でメッセージを送信するインターフェース手段;並びに
インターフェースからSYN−ACKメッセージを受信することであって、当該デバイスは対応するSYNメッセージを送信しておらず、前記SYN−ACKメッセージはソースアドレスを含む、こと;
前記SYN−ACKメッセージに対応するACKメッセージを生成すること;及び
前記ソースアドレスへの送信のために前記インターフェースに前記ACKメッセージを送信すること;のための処理手段;
を有するデバイス。
[付記2]
送信されたSYNメッセージの記録を保存するTCPスタックにアクセスする手段と、
当該デバイスが前記対応するSYNメッセージをあたかも送信していたかのように前記TCPスタックにパッチを適用し、及び、前記対応するSYNメッセージに対応する記録を作成することにより、当該デバイスが前記対応するSYNメッセージをあたかも送信していたかのように、前記TCPハンドシェークを再構築する手段と、
を更に有する付記1に記載のデバイス。
[付記3]
各々の記録は前記SYNメッセージのシーケンス番号を含み、当該デバイスは、前記SYN−ACKメッセージにおける対応する整数から1を減算することにより、前記対応するSYNメッセージの前記シーケンス番号を取得する手段を更に有する、付記2に記載のデバイス。
[付記4]
前記SYN−ACKメッセージをインターセプトし、そのインターセプトをプロセッサに通知するファイヤウォール手段と、前記ソースアドレスに向けて送信される前記対応するSYNメッセージを生成する手段と、TCPスタックを更新する手段とを更に有し、
前記ファイヤウォール手段は、前記プロセッサにより生成される前記対応するSYNメッセージをインターセプトし、前記SYN−ACKメッセージを前記プロセッサに転送するのみである、付記1に記載のデバイス。
[付記5]
データのリクエストをサーバーに送信する手段であって、前記リクエストは第1の整数を含む、手段;
前記サーバーからデータを受信する手段;及び
前記第1の整数及び前記SYN−ACKメッセージとともに受信された第2の整数を利用して、前記SYN−ACKメッセージが前記リクエストに関連することを確認する手段;
を更に有する付記1に記載のデバイス。
[付記6]
デバイスにおいてTCPハンドシェークを実行するための方法であって:
受信手段により、SYN−ACKメッセージを受信することであって、前記デバイスは対応するSYNメッセージを送信しておらず、前記SYN−ACKメッセージはソースアドレスを含む、受信すること;
生成及び送信手段により、前記SYN−ACKメッセージに対応するACKメッセージを生成し、前記ソースアドレスへ送信すること;
を有する方法。
[付記7]
アクセス手段により、送信されたSYNメッセージの記録を保存するTCPスタックにアクセスすることと、
再構築手段により、前記デバイスが前記対応するSYNメッセージをあたかも送信していたかのように前記TCPスタックにパッチを適用し、及び、前記対応するSYNメッセージに対応する記録を作成することにより、前記デバイスが前記対応するSYNメッセージをあたかも送信していたかのように、前記TCPハンドシェークを再構築することと、
を更に有する付記6に記載の方法。
[付記8]
各々の記録は前記SYNメッセージのシーケンス番号を含み、
当該方法は、取得手段が、前記SYN−ACKメッセージにおける対応する整数から1を減算することにより、前記対応するSYNメッセージの前記シーケンス番号を取得することを更に有する、付記7に記載の方法。
[付記9]
ファイヤウォール手段により、前記SYN−ACKメッセージをインターセプトすること;
前記ファイヤウォール手段により、そのインターセプトをプロセッサに通知すること;
SYNメッセージ生成手段により、前記対応するSYNメッセージを生成すること;
SYNメッセージ送信手段により、前記ソースアドレスに向けて前記対応するSYNメッセージを送信すること;
更新手段により、TCPスタックを更新すること;
前記ファイヤウォール手段により、前記プロセッサにより生成された前記対応するSYNメッセージをインターセプトすること;及び
前記ファイヤウォール手段により、前記SYN−ACKメッセージを前記プロセッサに転送すること;
を更に有する付記6に記載の方法。
[付記10]
リクエスト送信手段により、データのリクエストをサーバーに送信することであって、前記リクエストは第1の整数を含む、送信すること;
データ受信手段により、前記サーバーからデータを受信すること;及び
確認手段により、前記第1の整数及び前記SYN−ACKメッセージとともに受信された第2の整数を利用して、前記SYN−ACKメッセージが前記リクエストに関連することを確認すること;
を更に有する付記6に記載の方法。
[付記11]
データのリクエストをクライアントから受信する手段であって、前記データは第1部分及び第2部分を有し、前記リクエストは前記クライアントのアドレスを含む、手段;
前記第1部分を前記クライアントに送信する手段;及び
TCPハンドシェークのSYNメッセージを、前記第2部分を前記クライアントに提供するように構成される別のデバイスへ送信する手段であって、前記SYNメッセージは前記クライアントのアドレスをソースアドレスとして含む、手段;
を有するサーバー。
[付記12]
前記リクエストは整数を含み、前記サーバーは、前記整数を前記別のデバイスへ前記SYNメッセージとともに送信する手段を更に有する、付記11に記載のサーバー。
[付記13]
サーバーにおける方法であって:
受信手段により、データのリクエストをクライアントから受信することであって、前記データは第1部分及び第2部分を有し、前記リクエストは前記クライアントのアドレスを含む、受信すること;
第1部分送信手段により、前記第1部分を前記クライアントに送信すること;及び
SYNメッセージ送信手段により、TCPハンドシェークのSYNメッセージを、前記第2部分を前記クライアントに提供するように構成される別のデバイスへ送信することであって、前記SYNメッセージは前記クライアントのアドレスをソースアドレスとして含む、送信すること;
を有する方法。
[付記14]
前記リクエストは整数を含み、当該方法は、前記SYNメッセージ送信手段により、前記整数を前記別のデバイスへ前記SYNメッセージとともに送信することを更に有する、付記13に記載の方法。
[付記15]
命令を記憶する非一時的な記憶媒体であって、前記命令は、プロセッサにより実行される場合に、付記6ないし10のうち何れか1項に記載の方法を実行する、記憶媒体。

Claims (9)

  1. TCPハンドシェークターミネータデバイスであって
    少なくとも1つの外部デバイスと前記TCPハンドシェークターミネータデバイスにおける処理手段との間でメッセージを受信及び送信するインターフェースを有し、
    当該TCPハンドシェークターミネータデバイスは、
    TCPハンドシェークサーバーデバイスから、前記インターフェースを介して、TCPハンドシェークイニシエータデバイスが対応するSYNメッセージを送信しているSYN−ACKメッセージを受信、前記SYN−ACKメッセージは前記TCPハンドシェークサーバーデバイスのソースIPアドレスを含み、
    前記SYN−ACKメッセージに対応するACKメッセージを、前記インターフェースを介して前記ソースIPアドレスによって示される前記TCPハンドシェークサーバーデバイスへ送信する
    ように構成された処理手段
    更に有するTCPハンドシェークターミネータデバイス。
  2. 送信されたSYNメッセージの記録を保存するTCPスタックにアクセスする手段と、
    当該TCPハンドシェークターミネータデバイスが前記対応するSYNメッセージをあたかも送信していたかのように前記TCPスタックにパッチを適用し、及び、前記対応するSYNメッセージに対応する記録を作成することにより、当該TCPハンドシェークターミネータデバイスが前記対応するSYNメッセージをあたかも送信していたかのように、前記TCPハンドシェークを再構築する手段と、
    を更に有する請求項1に記載のTCPハンドシェークターミネータデバイス。
  3. 各々の記録は前記SYNメッセージのシーケンス番号を含み、当該TCPハンドシェークターミネータデバイスは、前記SYN−ACKメッセージにおける対応する整数から1を減算することにより、前記対応するSYNメッセージの前記シーケンス番号を取得する手段を更に有する、請求項2に記載のTCPハンドシェークターミネータデバイス。
  4. 前記SYN−ACKメッセージをインターセプトし、そのインターセプトをプロセッサに通知するファイヤウォール手段と、前記ソースIPアドレスに向けて送信される前記対応するSYNメッセージを生成する手段と、TCPスタックを更新する手段とを更に有し、
    前記ファイヤウォール手段は、前記プロセッサにより生成される前記対応するSYNメッセージをインターセプトし、前記SYN−ACKメッセージを前記プロセッサに転送するのみである、請求項1に記載のTCPハンドシェークターミネータデバイス。
  5. TCPハンドシェークターミネータデバイスにおいてTCPハンドシェークを実行するための方法であって:
    TCPハンドシェークサーバーデバイスからTCPハンドシェークイニシエータデバイスが対応するSYNメッセージを送信しているSYN−ACKメッセージを受信することであって、前記SYN−ACKメッセージは前記TCPハンドシェークサーバーデバイスのソースIPアドレスを含む、受信すること
    記SYN−ACKメッセージに対応するACKメッセージを前記ソースIPアドレスによって示される前記TCPハンドシェークサーバーデバイスへ送信すること
    を有する方法。
  6. アクセス手段により、送信されたSYNメッセージの記録を保存するTCPスタックにアクセスすることと、
    再構築手段により、前記TCPハンドシェークターミネータデバイスが前記対応するSYNメッセージをあたかも送信していたかのように前記TCPスタックにパッチを適用し、及び、前記対応するSYNメッセージに対応する記録を作成することにより、前記TCPハンドシェークターミネータデバイスが前記対応するSYNメッセージをあたかも送信していたかのように、前記TCPハンドシェークを再構築することと、
    を更に有する請求項に記載の方法。
  7. 各々の記録は前記SYNメッセージのシーケンス番号を含み、
    当該方法は、取得手段が、前記SYN−ACKメッセージにおける対応する整数から1を減算することにより、前記対応するSYNメッセージの前記シーケンス番号を取得することを更に有する、請求項に記載の方法。
  8. ファイヤウォール手段により、前記SYN−ACKメッセージをインターセプトすること
    前記ファイヤウォール手段により、そのインターセプトをプロセッサに通知すること
    SYNメッセージ生成手段により、前記対応するSYNメッセージを生成すること
    SYNメッセージ送信手段により、前記ソースIPアドレスに向けて前記対応するSYNメッセージを送信すること
    更新手段により、TCPスタックを更新すること
    前記ファイヤウォール手段により、前記プロセッサにより生成された前記対応するSYNメッセージをインターセプトすること;及び
    前記ファイヤウォール手段により、前記SYN−ACKメッセージを前記プロセッサに転送すること
    を更に有する請求項に記載の方法。
  9. 命令を記憶する非一時的な記憶媒体であって、前記命令は、プロセッサにより実行される場合に、請求項ないしのうち何れか1項に記載の方法を実行する、記憶媒体。
JP2016027475A 2015-02-20 2016-02-17 Tcpハンドシェークをリフォームするデバイス及び方法 Active JP6690959B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP15305261.8A EP3059922A1 (en) 2015-02-20 2015-02-20 Devices and methods for performing tcp handshakes
EP15305261.8 2015-02-20

Publications (2)

Publication Number Publication Date
JP2016154332A JP2016154332A (ja) 2016-08-25
JP6690959B2 true JP6690959B2 (ja) 2020-04-28

Family

ID=52692575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016027475A Active JP6690959B2 (ja) 2015-02-20 2016-02-17 Tcpハンドシェークをリフォームするデバイス及び方法

Country Status (6)

Country Link
US (1) US10165049B2 (ja)
EP (2) EP3059922A1 (ja)
JP (1) JP6690959B2 (ja)
KR (1) KR20160102348A (ja)
CN (1) CN105933298B (ja)
TW (1) TW201644249A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10645176B2 (en) * 2016-12-29 2020-05-05 Cyphort Inc. System and method to process packets in a transmission control protocol session
EP4254907A1 (de) 2022-03-29 2023-10-04 Siemens Aktiengesellschaft Verfahren und system zur ereignisgesteuerten übermittlung von steuerungsdaten
CN114979237A (zh) * 2022-05-16 2022-08-30 咪咕文化科技有限公司 一种长连接验证方法、装置、设备及可读存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US765427A (en) 1903-09-19 1904-07-19 George Ira Herrick Flag case and pole.
US6823387B1 (en) * 2000-06-23 2004-11-23 Microsoft Corporation System and method for enhancing a server's ability to withstand a “SYN flood” denial of service attack
CN1241133C (zh) * 2003-08-29 2006-02-08 迈普(四川)通信技术有限公司 防范计算机网络攻击的方法
JP4313266B2 (ja) * 2004-07-29 2009-08-12 株式会社エヌ・ティ・ティ・ドコモ サーバ装置、その制御方法およびコネクション確立方法
US8145908B1 (en) 2004-10-29 2012-03-27 Akamai Technologies, Inc. Web content defacement protection system
US8069352B2 (en) * 2007-02-28 2011-11-29 Sourcefire, Inc. Device, system and method for timestamp analysis of segments in a transmission control protocol (TCP) session
US7921282B1 (en) * 2007-08-20 2011-04-05 F5 Networks, Inc. Using SYN-ACK cookies within a TCP/IP protocol
US8274886B2 (en) 2009-10-28 2012-09-25 At&T Intellectual Property I, L.P. Inferring TCP initial congestion window
US8750304B2 (en) * 2010-04-16 2014-06-10 Cisco Technology, Inc. Controlling directional asymmetricity in wide area networks
US8433808B1 (en) * 2011-02-01 2013-04-30 Juniper Networks, Inc. Learning values of transmission control protocol (TCP) options
US9553809B2 (en) * 2013-04-16 2017-01-24 Amazon Technologies, Inc. Asymmetric packet flow in a distributed load balancer
US9560126B2 (en) * 2013-05-06 2017-01-31 Alcatel Lucent Stateless load balancing of connections
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
US10165049B2 (en) 2018-12-25
TW201644249A (zh) 2016-12-16
EP3059922A1 (en) 2016-08-24
KR20160102348A (ko) 2016-08-30
CN105933298B (zh) 2020-10-16
CN105933298A (zh) 2016-09-07
EP3059924A1 (en) 2016-08-24
EP3059924B1 (en) 2020-10-28
US20160248855A1 (en) 2016-08-25
JP2016154332A (ja) 2016-08-25

Similar Documents

Publication Publication Date Title
JP6858749B2 (ja) 負荷平衡システムにおいて接続を確立するデバイス及び方法
JP5986654B2 (ja) ウェブソケット通信の分散エミュレーションを通してウェブアプリケーションサポートを提供する企業クライアント/サーバーシステム及び方法
CN104137511B (zh) 用于安全协议的动态选择的方法、设备和客户端设备
CN111314499B (zh) 一种域名代理方法、装置、设备及可读存储介质
US9417831B2 (en) Method and system of providing computer network based limited visibility service discovery
CN102790808A (zh) 一种域名解析方法和系统、一种客户端
CN101877710A (zh) 代理网关防病毒实现方法、预分类器和代理网关
CN107995233B (zh) 建立连接的方法及相应的设备
US20190312937A1 (en) System and method for improving efficiency of ssl/tls connections
JP6690959B2 (ja) Tcpハンドシェークをリフォームするデバイス及び方法
CN103685213A (zh) 一种减少针对dns的攻击的装置、系统和方法
CN110557355B (zh) 一种用于通过用户设备检测中间人攻击的方法与设备
CN110417632B (zh) 一种网络通信方法、系统及服务器
CA3116663C (en) Accelerating connections to a host server
US11943278B2 (en) Loading a web page in a telecommunication network using an access point server
US11444882B2 (en) Methods for dynamically controlling transmission control protocol push functionality and devices thereof
JP6074550B2 (ja) ウェブページプッシュ方法及び装置、並びに端末
CN112165449A (zh) web应用实时权限的控制方法、电子装置和存储介质
US20140047014A1 (en) Network access system
KR20090071542A (ko) 호스트 가장 네트워크 디바이스 및 그의 방법
CN114363204A (zh) 请求监控方法、网络设备及存储介质
US20220014530A1 (en) Protection method and protection device under direct routing mode
JP6407114B2 (ja) 通信システム、通信方法、通信ノード装置、及びプログラム

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20181220

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20181227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191016

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20191111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200304

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: 20200317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200409

R150 Certificate of patent or registration of utility model

Ref document number: 6690959

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250