【手続補正書】
【提出日】令和3年5月26日(2021.5.26)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０１８６
【補正方法】変更
【補正の内容】
【０１８６】
このように、本発明を例示的な実施形態を参照しながら具体的に図示・説明してきたが、当業者であれば、添付の特許請求の範囲に包含される本発明の範囲を逸脱しない範疇で、形態や細部に様々な変更が施されてもよいことを理解するであろう。
なお、本発明は、実施の態様として以下の内容を含む。
［態様１］
第１のエンドポイントと第２のエンドポイントとの間に確立された双方向ネットワークセッション中に、
パケットのストリームを検査する過程と、
前記第１のエンドポイントから送信された所与のパケット内のメッセージが変更されるべきであると判断すると、
前記所与のパケット内の前記メッセージを変更して変更後パケットを生成する過程と、
前記メッセージの変更を考慮して変更後のシーケンス番号を決定する過程と、
前記変更後パケットを前記第２のエンドポイントに送信する過程と、
返信メッセージを前記第１のエンドポイントに送信し、元のメッセージが変更されたことを知らせる過程と、
を備える、方法。
［態様２］
態様１に記載の方法において、変更後のシーケンス番号を決定する前記過程が、
変更された前記パケットのシーケンス番号に基づいてシーケンスマーカー値を決定すること、
アキュムレータ値を維持すること、
元の前記所与のパケットと前記変更後パケットとのバイト数の差分を表すデルタ値を記憶すること、
前記第２のエンドポイントからの前記変更後パケットの確認応答を検出すること、および
前記デルタ値を前記アキュムレータ値に加算すること、
を含む、方法。
［態様３］
態様２に記載の方法において、さらに、
受信した後続のパケットのシーケンス番号が前記シーケンスマーカー値以上である場合、
前記第１のエンドポイントから受信した後続のパケットのシーケンス番号を前記アキュムレータ値だけ変更する過程、
を備える、方法。
［態様４］
態様３に記載の方法において、さらに、
前記第２のエンドポイントから受信した別のパケットの確認応答シーケンス番号を前記アキュムレータ値に基づいて調節する過程、
を備える、方法。
［態様５］
態様１に記載の方法において、前記所与のパケット内の前記メッセージを変更する過程が、当該パケット内の当該メッセージを、異なる長さの第２のメッセージに置き換えることを含む、方法。
［態様６］
態様５に記載の方法において、前記第２のメッセージが、ハートビートメッセージ、テストメッセージ、またはシーケンスフィルタメッセージを含む、方法。
［態様７］
態様１に記載の方法において、前記所与のパケット内の前記メッセージを変更する過程が、当該パケットから当該メッセージを除去することを含む、方法。
［態様８］
態様１に記載の方法において、前記第１のエンドポイントが取引業者に対応付けられたクライアント装置であり、前記第２のエンドポイントが証券取引システムに対応付けられた市場装置であり、前記メッセージが証券を売買する注文である、方法。
［態様９］
態様８に記載の方法において、前記返信メッセージが、前記メッセージを変更した理由を含む、方法。
［態様１０］
態様８に記載の方法において、前記メッセージを変更した前記理由が、取引ルールへの準拠、セキュリティリスク又は証券リスク、及びパケットコンテンツフィルタリングのうちの少なくとも一つに関する、方法。
［態様１１］
態様２に記載の方法において、さらに、
前記第２のエンドポイントから前記変更後パケットのＡＣＫを受信したか否かを判断する過程と、
前記変更後パケットのＡＣＫを受信していないと判断した場合、
前記変更後パケットを再送する過程と、
タイムアウト時間後に前記セッションを切断する過程と、
を備える、方法。
［態様１２］
態様１１に記載の方法において、前記変更後パケットのＡＣＫを受信したか否かを判断する過程が、一定間隔で実行される、方法。
［態様１３］
態様１１に記載の方法において、さらに、
前記第２のエンドポイントから受信した前記ＡＣＫのシーケンス番号が前記シーケンスマーカー以上である場合、
変更ペンディング値をクリアする過程、
を備える、方法。
［態様１４］
態様１１に記載の方法において、変更された前記メッセージのＡＣＫを受信したか否かを判断する過程が、前記デルタ値を定期的にポーリングすることを含む、方法。
［態様１５］
態様１に記載の方法において、さらに、
前記変更後パケットのＡＣＫを未だ受信しておらず、かつ、後続のパケットについても変更して第２の変更後パケットを生成する必要がある場合、
前記変更後パケットの前記ＡＣＫを受信するまで前記第２の変更後パケットをストールする過程、
を備える、方法。
［態様１６］
態様１５に記載の方法において、さらに、
前記デルタ値をポーリングして、前記変更後パケットの前記ＡＣＫをいつ受信したかを判断する過程と、
所定の時間間隔で前記変更後パケットを再送する過程と、
前記変更後パケットの前記ＡＣＫを受信することなく所定の時間が経過すると、前記セッションを切断する過程と、
を備える、方法。
［態様１７］
第１のＴＣＰエンドポイントと第２のＴＣＰエンドポイントとの間に確立された双方向ＴＣＰセッション中に、
前記第１のＴＣＰエンドポイントから受信したＴＣＰパケットを検査する過程と、
所与のＴＣＰパケットからＴＣＰシーケンス番号を抽出する過程と、
前記所与のＴＣＰパケットに対応するＴＣＰセッションを特定する過程と、
前記所与のＴＣＰパケット内のコンテンツがルールに準拠しているか否かを判断する過程と、
前記所与のＴＣＰパケットが前記ルールに準拠している場合、
前記所与のＴＣＰパケットを前記第２のＴＣＰエンドポイントに到達させる過程と、
前記所与のＴＣＰパケットが前記ルールに準拠していない場合、
拒絶理由データ値を決定する過程と、
前記所与のＴＣＰパケットの少なくとも一部が前記第２のＴＣＰポイントに到達するのを阻止する過程と、
前記所与のＴＣＰパケットの少なくとも一部を除去して変更後ＴＣＰパケットを形成する過程と、
デルタ値を、そのようにして除去された前記一部のサイズに依存する数値に設定する過程と、
前記デルタ値を、前記ＴＣＰセッションに対応付けられた各セッション用のＴＣＰアキュムレータに適用する過程と、
前記変更後ＴＣＰパケットのＴＣＰシーケンス番号を、前記各セッション用のＴＣＰアキュムレータのサイズに依存する数値だけ調節する過程と、
前記変更後ＴＣＰパケットを前記第２のＴＣＰエンドポイントに送信する過程と、
前記拒絶の理由を表す数値を有する返信パケットを生成する過程と、
前記返信パケットを前記第１のＴＣＰエンドポイントに送信する過程と、
を備える、方法。
［態様１８］
互いに独立して動作する第１のネットワークインターフェース及び第２のネットワークインターフェースを有するカットスルー方式の固定ロジックデバイスであって、１つ又は複数のＴＣＰパケットストリームが前記第１および第２のネットワークインターフェース間を移動することのできる、カットスルー方式の固定ロジックデバイスと、
前記ＴＣＰパケットストリームを検査するパケット検査デバイスであって、
所与のＴＣＰパケットからＴＣＰシーケンス番号を抽出し、
前記所与のＴＣＰパケットに対応するセッションを特定し、
前記所与のＴＣＰパケットが、ルールに準拠していないコンテンツを含んでいるか否かを判断し、
前記所与のＴＣＰパケットが準拠していない場合、
前記所与のＴＣＰパケットの少なくとも一部が前記第２のネットワークインターフェースに到達するのを阻止する、
パケット検査デバイスと、
固定ロジック及び少なくとも１つのプログラマブルなデータプロセッサを含むコントローラであって、
前記パケット検査デバイスから前記所与のＴＣＰパケット及び拒絶理由データ値を受け取り、
前記所与のＴＣＰパケットの前記シーケンス番号に基づく数値を、各セッション用のＴＣＰシーケンスマーカーとして記憶し、
前記ＴＣＰパケットから、拒絶された前記コンテンツをトリミングして、変更後ＴＣＰパケットを形成し、
前記変更後パケットを前記第２のネットワークインターフェースを介して送信できるように、当該変更後パケットを、前記カットスルー方式の固定デバイスと共有するメモリに書き込み、
各セッション用のデルタ値を、トリミングされた前記コンテンツのサイズに依存する数値に設定し、
前記変更後ＴＣＰパケットの前記ＴＣＰシーケンス番号を、各セッション用のＴＣＰアキュムレータの数値に従って調節し、
前記第２のネットワークインターフェースを介して届いた後続のＴＣＰパケットの、シーケンス番号及びセッション識別子を抽出し、
前記第２のネットワークインターフェースを介して届いた後続のＴＣＰパケットのＡＣＫシーケンス番号が、前記対応するセッションのＴＣＰシーケンスマーカー以上である場合、各セッション用の対応付けられた前記デルタ値を、当該セッションに対応付けられた前記ＴＣＰアキュムレータに適用し、
前記第２のネットワークインターフェースを介して届いた前記後続のパケットの前記ＡＣＫシーケンス番号を、前記セッションに対応付けられた前記ＴＣＰアキュムレータの数値だけ調節し、
前記拒絶の理由を表す数値を含む、前記第１のネットワークインターフェースを介して送信する返信パケットを生成する、
コントローラと、
を備える、装置。
［態様１９］
態様１８に記載の装置において、前記コントローラが、さらに、
ルールに準拠していない前記所与のパケットに対応する前記セッションについて、コネクションストールモードを設定し、
前記第２のネットワークインターフェースから受信した後続のパケットが、前記コネクションストールモードを設定した前記セッションに属するものである場合、
生成された前記返信パケットを前記第１のインターフェースに転送し、
前記生成された返信パケットを前記第１のインターフェースに転送した後、前記後続のパケットを前記第１のインターフェースに転送し、
前記セッションの前記コネクションストールモードをクリアする、装置。
［態様２０］
態様１８に記載の装置において、前記コントローラの前記固定ロジックが、
前記パケット検査デバイスから前記所与のＴＣＰパケット及び拒絶理由データ値を受け取る手順、
前記所与のＴＣＰパケットの前記シーケンス番号に基づく数値を、各セッション用のＴＣＰシーケンスマーカーとして記憶する手順、
前記変更後ＴＣＰパケットの前記ＴＣＰシーケンス番号を、各セッション用のＴＣＰアキュムレータの数値に従って調節する手順、
前記第２のネットワークインターフェースを介して届いた後続のＴＣＰパケットの、シーケンス番号及びセッション識別子を抽出する手順、
前記第２のネットワークインターフェースを介して届いた後続のＴＣＰパケットのＡＣＫシーケンス番号が、前記対応するセッションのＴＣＰシーケンスマーカー以上である場合、各セッション用の対応付けられた前記デルタ値を、当該セッションに対応付けられた前記ＴＣＰアキュムレータに適用する手順、ならびに
前記第２のネットワークインターフェースを介して届いた前記後続のパケットの前記ＡＣＫシーケンス番号を、前記セッションに対応付けられた前記ＴＣＰアキュムレータの数値だけ調節する手順、
のうちの少なくとも一つを実行する、装置。
［態様２１］
態様２０に記載の装置において、前記プログラマブルなデータプロセッサが、プログラムコードを実行して、
前記ＴＣＰパケットから、拒絶された前記コンテンツをトリミングして、変更後ＴＣＰパケットを形成する手順、
前記変更後パケットを、前記カットスルー方式の固定デバイスと共有するメモリに書き込む手順、
各セッション用のデルタ値を、トリミングされた前記コンテンツのサイズに依存する数値に設定する手順、
前記第２のネットワークインターフェースを介して届いた後続のＴＣＰパケットの、シーケンス番号及びセッション識別子を抽出する手順、ならびに
前記拒絶の理由を表す数値を含む、前記第１のネットワークインターフェースを介して送信する返信パケットを生成する手順、
のうちの少なくとも一つを実行する、装置。
［態様２２］
態様１８に記載の装置において、前記コントローラが、さらに、
ルールに準拠していない前記所与のＴＣＰパケットに対応する前記セッションについて、阻止モードインジケータ値を設定し、
前記第１のネットワークインターフェースを介して届いた後続のパケットに関連付けられている情報を、処理キューに格納し、
前記処理キュー内の、前記パケットに関連付けられている前記情報が処理されたか否かを判断し、
前記処理キュー内の、前記パケットに関連付けられている前記情報が処理されたと判断すると、前記阻止モードインジケータをクリアする、装置。