(57)【特許請求の範囲】
【請求項１】
ＴＣＰハンドシェークターミネータデバイスであって、
少なくとも１つの外部デバイスと前記ＴＣＰハンドシェークターミネータデバイスにおける処理手段との間でメッセージを受信及び送信するインターフェースを有し、
当該ＴＣＰハンドシェークターミネータデバイスは、
ＴＣＰハンドシェークサーバーデバイスから、前記インターフェースを介して、ＴＣＰハンドシェークイニシエータデバイスが対応するＳＹＮメッセージを送信しているＳＹＮ−ＡＣＫメッセージを受信し、前記ＳＹＮ−ＡＣＫメッセージは前記ＴＣＰハンドシェークサーバーデバイスのソースＩＰアドレスを含み、
前記ＳＹＮ−ＡＣＫメッセージに対応するＡＣＫメッセージを、前記インターフェースを介して前記ソースＩＰアドレスによって示される前記ＴＣＰハンドシェークサーバーデバイスへ送信する、
ように構成された処理手段
を更に有するＴＣＰハンドシェークターミネータデバイス。
【請求項２】
送信されたＳＹＮメッセージの記録を保存するＴＣＰスタックにアクセスする手段と、
当該ＴＣＰハンドシェークターミネータデバイスが前記対応するＳＹＮメッセージをあたかも送信していたかのように前記ＴＣＰスタックにパッチを適用し、及び、前記対応するＳＹＮメッセージに対応する記録を作成することにより、当該ＴＣＰハンドシェークターミネータデバイスが前記対応するＳＹＮメッセージをあたかも送信していたかのように、前記ＴＣＰハンドシェークを再構築する手段と、
を更に有する請求項１に記載のＴＣＰハンドシェークターミネータデバイス。
【請求項３】
各々の記録は前記ＳＹＮメッセージのシーケンス番号を含み、当該ＴＣＰハンドシェークターミネータデバイスは、前記ＳＹＮ−ＡＣＫメッセージにおける対応する整数から１を減算することにより、前記対応するＳＹＮメッセージの前記シーケンス番号を取得する手段を更に有する、請求項２に記載のＴＣＰハンドシェークターミネータデバイス。
【請求項４】
前記ＳＹＮ−ＡＣＫメッセージをインターセプトし、そのインターセプトをプロセッサに通知するファイヤウォール手段と、前記ソースＩＰアドレスに向けて送信される前記対応するＳＹＮメッセージを生成する手段と、ＴＣＰスタックを更新する手段とを更に有し、
前記ファイヤウォール手段は、前記プロセッサにより生成される前記対応するＳＹＮメッセージをインターセプトし、前記ＳＹＮ−ＡＣＫメッセージを前記プロセッサに転送するのみである、請求項１に記載のＴＣＰハンドシェークターミネータデバイス。
【請求項５】
ＴＣＰハンドシェークターミネータデバイスにおいてＴＣＰハンドシェークを実行するための方法であって：
ＴＣＰハンドシェークサーバーデバイスから、ＴＣＰハンドシェークイニシエータデバイスが対応するＳＹＮメッセージを送信しているＳＹＮ−ＡＣＫメッセージを受信することであって、前記ＳＹＮ−ＡＣＫメッセージは前記ＴＣＰハンドシェークサーバーデバイスのソースＩＰアドレスを含む、受信すること；
前記ＳＹＮ−ＡＣＫメッセージに対応するＡＣＫメッセージを前記ソースＩＰアドレスによって示される前記ＴＣＰハンドシェークサーバーデバイスへ送信すること；
を有する方法。
【請求項６】
アクセス手段により、送信されたＳＹＮメッセージの記録を保存するＴＣＰスタックにアクセスすることと、
再構築手段により、前記ＴＣＰハンドシェークターミネータデバイスが前記対応するＳＹＮメッセージをあたかも送信していたかのように前記ＴＣＰスタックにパッチを適用し、及び、前記対応するＳＹＮメッセージに対応する記録を作成することにより、前記ＴＣＰハンドシェークターミネータデバイスが前記対応するＳＹＮメッセージをあたかも送信していたかのように、前記ＴＣＰハンドシェークを再構築することと、
を更に有する請求項５に記載の方法。
【請求項７】
各々の記録は前記ＳＹＮメッセージのシーケンス番号を含み、
当該方法は、取得手段が、前記ＳＹＮ−ＡＣＫメッセージにおける対応する整数から１を減算することにより、前記対応するＳＹＮメッセージの前記シーケンス番号を取得することを更に有する、請求項６に記載の方法。
【請求項８】
ファイヤウォール手段により、前記ＳＹＮ−ＡＣＫメッセージをインターセプトすること；
前記ファイヤウォール手段により、そのインターセプトをプロセッサに通知すること；
ＳＹＮメッセージ生成手段により、前記対応するＳＹＮメッセージを生成すること；
ＳＹＮメッセージ送信手段により、前記ソースＩＰアドレスに向けて前記対応するＳＹＮメッセージを送信すること；
更新手段により、ＴＣＰスタックを更新すること；
前記ファイヤウォール手段により、前記プロセッサにより生成された前記対応するＳＹＮメッセージをインターセプトすること；及び
前記ファイヤウォール手段により、前記ＳＹＮ−ＡＣＫメッセージを前記プロセッサに転送すること；
を更に有する請求項５に記載の方法。
【請求項９】
命令を記憶する非一時的な記憶媒体であって、前記命令は、プロセッサにより実行される場合に、請求項５ないし８のうち何れか１項に記載の方法を実行する、記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般にコンピュータシステムに関連し、特にそのようなシステムにおける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と、第１の整数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ハンドシェークを実行するデバイスに関連する。本デバイスは、少なくとも１つの外部デバイスと当該デバイスのプロセッサとの間でメッセージを送信するように構成されるインターフェース；並びに
インターフェースから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メッセージにおける対応する整数から１を減算することにより、対応するSYNメッセージのシーケンス番号を取得するように構成されることは、有利である。
【００１３】
・  当該デバイスは、SYN-ACKメッセージをインターセプトし、そのインターセプトをプロセッサに通知するように構成されるファイヤウォールを更に有する。プロセッサは、ソースアドレスに向けて送信される対応するSYNメッセージを生成し、TCPスタックを更新するように更に構成される。ファイヤウォールは、プロセッサにより生成される対応するSYNメッセージをインターセプトし、SYN-ACKメッセージをプロセッサに転送するのみであるように更に構成される。
【００１４】
・  プロセッサは、データのリクエスト(第1の整数を含む)をサーバーに送信し、  サーバーからデータを受信し、第1の整数及びSYN-ACKメッセージとともに受信された第2の整数を利用して、SYN-ACKメッセージがリクエストに関連することを確認するように更に構成される。
【００１５】
第３側面において、本原理はプロセッサを有するサーバーに関連し、プロセッサは、データのリクエストをクライアントから受信することであって、データは第１部分及び第2部分を有し、リクエストはクライアントのアドレスを含む、こと；  第1部分をクライアントに送信すること；及び、TCPハンドシェークのSYNメッセージを、第2部分をクライアントに提供するように構成される別のデバイスへ送信することであって、SYNメッセージはクライアントのアドレスをソースアドレスとして含む、こと；を行うように構成される。
【００１６】
第3側面の形態は、リクエストが整数を含むこと、及び、プロセッサが、整数を別のデバイスへSYNメッセージとともに送信するように更に構成されることを含む。
【００１７】
第4側面において、本原理は、サーバーのプロセッサにおける方法に関連し、本方法は、データのリクエストをクライアントから受信するステップであって、データは第１部分及び第2部分を有し、リクエストはクライアントのアドレスを含む、ステップ；第1部分をクライアントに送信するステップ；及び、TCPハンドシェークのSYNメッセージを、第2部分をクライアントに提供するように構成される別のデバイスへ送信するステップであって、SYNメッセージはクライアントのアドレスをソースアドレスとして含む、ステップ；を有する。
【００１８】
第4側面の形態は、リクエストが整数を含むこと、及び、プロセッサが、整数を別のデバイスへSYNメッセージとともに送信することを含む。
【００１９】
第5側面において、本原理は、命令を記憶する非一時的な記憶媒体に関連し、命令は、プロセッサにより実行される場合に、第2側面の方法を実行する。
【図面の簡単な説明】
【００２０】
本原理の好ましい特徴が、非限定的な具体例により、添付図面に関連して説明される。
【図１】図1は従来技術によるTCPハンドシェークを示す。
【図２】図2は本原理を実現するシステムを示す。
【図３】図３は本原理に従ってデバイスで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ハンドシェークを提供することが、認められるであろう。
【００３８】
本説明及び(適切であるならば)特許請求の範囲及び図面に開示される各々の特徴は、独立に又は何らかの適切な組み合わせにより提供されてよい。ハードウェアで実現されるように説明される特徴は、ソフトウェアで実現されてもよく、その逆も成り立つ。参照番号が特許請求の範囲に登場する場合、それらは例示であるに過ぎず、特許請求の範囲に対する如何なる効力の制限も有しない。
［付記１］
ＴＣＰハンドシェークを実行するデバイスであって：
少なくとも１つの外部デバイスと当該デバイスの処理手段との間でメッセージを送信するインターフェース手段；並びに
インターフェースからＳＹＮ−ＡＣＫメッセージを受信することであって、当該デバイスは対応するＳＹＮメッセージを送信しておらず、前記ＳＹＮ−ＡＣＫメッセージはソースアドレスを含む、こと；
前記ＳＹＮ−ＡＣＫメッセージに対応するＡＣＫメッセージを生成すること；及び
前記ソースアドレスへの送信のために前記インターフェースに前記ＡＣＫメッセージを送信すること；のための処理手段；
を有するデバイス。
［付記２］
送信されたＳＹＮメッセージの記録を保存するＴＣＰスタックにアクセスする手段と、
当該デバイスが前記対応するＳＹＮメッセージをあたかも送信していたかのように前記ＴＣＰスタックにパッチを適用し、及び、前記対応するＳＹＮメッセージに対応する記録を作成することにより、当該デバイスが前記対応するＳＹＮメッセージをあたかも送信していたかのように、前記ＴＣＰハンドシェークを再構築する手段と、
を更に有する付記１に記載のデバイス。
［付記３］
各々の記録は前記ＳＹＮメッセージのシーケンス番号を含み、当該デバイスは、前記ＳＹＮ−ＡＣＫメッセージにおける対応する整数から１を減算することにより、前記対応するＳＹＮメッセージの前記シーケンス番号を取得する手段を更に有する、付記２に記載のデバイス。
［付記４］
前記ＳＹＮ−ＡＣＫメッセージをインターセプトし、そのインターセプトをプロセッサに通知するファイヤウォール手段と、前記ソースアドレスに向けて送信される前記対応するＳＹＮメッセージを生成する手段と、ＴＣＰスタックを更新する手段とを更に有し、
前記ファイヤウォール手段は、前記プロセッサにより生成される前記対応するＳＹＮメッセージをインターセプトし、前記ＳＹＮ−ＡＣＫメッセージを前記プロセッサに転送するのみである、付記１に記載のデバイス。
［付記５］
データのリクエストをサーバーに送信する手段であって、前記リクエストは第１の整数を含む、手段；
前記サーバーからデータを受信する手段；及び
前記第１の整数及び前記ＳＹＮ−ＡＣＫメッセージとともに受信された第２の整数を利用して、前記ＳＹＮ−ＡＣＫメッセージが前記リクエストに関連することを確認する手段；
を更に有する付記１に記載のデバイス。
［付記６］
デバイスにおいてＴＣＰハンドシェークを実行するための方法であって：
受信手段により、ＳＹＮ−ＡＣＫメッセージを受信することであって、前記デバイスは対応するＳＹＮメッセージを送信しておらず、前記ＳＹＮ−ＡＣＫメッセージはソースアドレスを含む、受信すること；
生成及び送信手段により、前記ＳＹＮ−ＡＣＫメッセージに対応するＡＣＫメッセージを生成し、前記ソースアドレスへ送信すること；
を有する方法。
［付記７］
アクセス手段により、送信されたＳＹＮメッセージの記録を保存するＴＣＰスタックにアクセスすることと、
再構築手段により、前記デバイスが前記対応するＳＹＮメッセージをあたかも送信していたかのように前記ＴＣＰスタックにパッチを適用し、及び、前記対応するＳＹＮメッセージに対応する記録を作成することにより、前記デバイスが前記対応するＳＹＮメッセージをあたかも送信していたかのように、前記ＴＣＰハンドシェークを再構築することと、
を更に有する付記６に記載の方法。
［付記８］
各々の記録は前記ＳＹＮメッセージのシーケンス番号を含み、
当該方法は、取得手段が、前記ＳＹＮ−ＡＣＫメッセージにおける対応する整数から１を減算することにより、前記対応するＳＹＮメッセージの前記シーケンス番号を取得することを更に有する、付記７に記載の方法。
［付記９］
ファイヤウォール手段により、前記ＳＹＮ−ＡＣＫメッセージをインターセプトすること；
前記ファイヤウォール手段により、そのインターセプトをプロセッサに通知すること；
ＳＹＮメッセージ生成手段により、前記対応するＳＹＮメッセージを生成すること；
ＳＹＮメッセージ送信手段により、前記ソースアドレスに向けて前記対応するＳＹＮメッセージを送信すること；
更新手段により、ＴＣＰスタックを更新すること；
前記ファイヤウォール手段により、前記プロセッサにより生成された前記対応するＳＹＮメッセージをインターセプトすること；及び
前記ファイヤウォール手段により、前記ＳＹＮ−ＡＣＫメッセージを前記プロセッサに転送すること；
を更に有する付記６に記載の方法。
［付記１０］
リクエスト送信手段により、データのリクエストをサーバーに送信することであって、前記リクエストは第１の整数を含む、送信すること；
データ受信手段により、前記サーバーからデータを受信すること；及び
確認手段により、前記第１の整数及び前記ＳＹＮ−ＡＣＫメッセージとともに受信された第２の整数を利用して、前記ＳＹＮ−ＡＣＫメッセージが前記リクエストに関連することを確認すること；
を更に有する付記６に記載の方法。
［付記１１］
データのリクエストをクライアントから受信する手段であって、前記データは第１部分及び第２部分を有し、前記リクエストは前記クライアントのアドレスを含む、手段；
前記第１部分を前記クライアントに送信する手段；及び
ＴＣＰハンドシェークのＳＹＮメッセージを、前記第２部分を前記クライアントに提供するように構成される別のデバイスへ送信する手段であって、前記ＳＹＮメッセージは前記クライアントのアドレスをソースアドレスとして含む、手段；
を有するサーバー。
［付記１２］
前記リクエストは整数を含み、前記サーバーは、前記整数を前記別のデバイスへ前記ＳＹＮメッセージとともに送信する手段を更に有する、付記１１に記載のサーバー。
［付記１３］
サーバーにおける方法であって：
受信手段により、データのリクエストをクライアントから受信することであって、前記データは第１部分及び第２部分を有し、前記リクエストは前記クライアントのアドレスを含む、受信すること；
第１部分送信手段により、前記第１部分を前記クライアントに送信すること；及び
ＳＹＮメッセージ送信手段により、ＴＣＰハンドシェークのＳＹＮメッセージを、前記第２部分を前記クライアントに提供するように構成される別のデバイスへ送信することであって、前記ＳＹＮメッセージは前記クライアントのアドレスをソースアドレスとして含む、送信すること；
を有する方法。
［付記１４］
前記リクエストは整数を含み、当該方法は、前記ＳＹＮメッセージ送信手段により、前記整数を前記別のデバイスへ前記ＳＹＮメッセージとともに送信することを更に有する、付記１３に記載の方法。
［付記１５］
命令を記憶する非一時的な記憶媒体であって、前記命令は、プロセッサにより実行される場合に、付記６ないし１０のうち何れか１項に記載の方法を実行する、記憶媒体。
【図１】
0006690959.tif 000002
【図２】
0006690959.tif 000003
【図３】
0006690959.tif 000004