JP2020523950A - 変更通知ありのtcpストリーム動的処理 - Google Patents
変更通知ありのtcpストリーム動的処理 Download PDFInfo
- Publication number
- JP2020523950A JP2020523950A JP2020517763A JP2020517763A JP2020523950A JP 2020523950 A JP2020523950 A JP 2020523950A JP 2020517763 A JP2020517763 A JP 2020517763A JP 2020517763 A JP2020517763 A JP 2020517763A JP 2020523950 A JP2020523950 A JP 2020523950A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- tcp
- message
- session
- modified
- 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
Links
- 230000008859 change Effects 0.000 title claims description 33
- 238000012545 processing Methods 0.000 title claims description 22
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000007689 inspection Methods 0.000 claims abstract description 68
- 238000012986 modification Methods 0.000 claims abstract description 57
- 230000004048 modification Effects 0.000 claims abstract description 55
- 230000008569 process Effects 0.000 claims abstract description 29
- 239000003550 marker Substances 0.000 claims description 57
- 230000000903 blocking effect Effects 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 3
- 238000009966 trimming Methods 0.000 claims description 3
- 230000002457 bidirectional effect Effects 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000000605 extraction Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 abstract description 18
- 230000006870 function Effects 0.000 description 22
- 239000000872 buffer Substances 0.000 description 19
- 238000010276 construction Methods 0.000 description 14
- 230000003111 delayed effect Effects 0.000 description 14
- 238000002347 injection Methods 0.000 description 14
- 239000007924 injection Substances 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 12
- 238000003780 insertion Methods 0.000 description 12
- 230000037431 insertion Effects 0.000 description 12
- 238000001514 detection method Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 238000012546 transfer Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000006855 networking Effects 0.000 description 5
- 230000004064 dysfunction Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002265 prevention Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000001297 coherence probe microscopy Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
Images
Classifications
-
- 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/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
-
- 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/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- 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/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
既存のコンテンツ検査技術は、一部の用途において問題となる。一例として、多数のクライアント装置が市場装置に対して証券売買(取引)注文を送信する高頻度証券取引ネットワークを取り上げたい。売買注文は、メッセージとして形成され、パケット内で他のメッセージと合体させられたものであり得る。この環境では、多数の(a number of)ルールに準拠していない売買注文については拒絶されなければならず、つまり、クライアントから市場へと(C2M)移動できないようにされなければならない。
本文献では、コンテンツ検査のための、分散型かつ透過的なインラインリスク管理及びトラフィックキャプチャシステムの改良について説明する。本明細書で説明するアプローチは、パケットがリアルタイムで検査デバイスに送り通されるなか、拒絶を受けたメッセージを変更したり、さらには、パケットから当該メッセージを除去したりする解決手段を提供する。除去したバイトを各セッションに基づいて追跡することにより、シーケンス番号の振当て(sequence numbering)が維持される。メッセージが変更された場合には、通知がメッセージ発信元に返されて変更が知らされる。
図3Aは、取引ネットワークにおいて検査デバイス110がストリーム動的変更(DSM)を実現しうる様子の一例を示す図である。ステップ301にて、クライアント装置120が、証券を売買する注文であるメッセージを含んだ元の又は本来の(original)パケットを生成する。当該元のパケットは、クライアント装置120と市場装置130との間でのセッション140コネクションを介して市場装置130へと宛てられたパケットである。ただし、このパケットは、まず、セッション140を監視することも可能な検査デバイス110を通過する(travels through)。この例において、前記元のパケットは、クライアントから市場への注文(OCM)として、キャタピラー社(CAT)の株を購入する第1のOCM、アップルコンピュータ社(APPL)を売却する第2の注文、グーグル社(GOOG)を購入する第3の注文、およびテスラ社(TSLA)を売却する第4の注文の4つを含んでいる。
好ましくは、前述のように検査デバイス110が、C2M TCPストリームのパケットから不合格のメッセージを除去してM2C TCPストリームのパケットにエラーメッセージを追加する手段としてのストリーム動的変更(DSM)を実現する。検査デバイス110は、TCPセッションを妨害することなくこれを実行するために、a)C2M方向において除去された全バイトを追跡し、b)TCPシーケンス番号をオンザフライで(on the fly)変更することによってそれを行う。
DSMは、C2M TCPストリームのパケットから不合格のメッセージを除去すると共に、M2C TCPストリームのパケットにエラーメッセージを追加する。DSMは、コネクションを妨害することなくこれを実行するために、a)除去された全バイトを追跡し、b)TCPシーケンス番号をオンザフライで変更する必要がある。DSMがこれを行うにあたって使用する3種類の数値については、先述のリストアップどおりである(アキュムレータ、シーケンスマーカーおよびデルタ)。
図5及び図6は、シーケンス動的変更を実現するために検査エンジン110により実行され得る一連の処理を表した具体例である。
図8A及び図8Bは、C2M遅延(Lazy)ACKチェック機能を詳細に説明したタイミング図である。
データ挿入は、C2Mメッセージが拒絶されたことに応答してエラーメッセージを注入するために意図されたM2C機能である。クライアント側サーバは市場に送信した注文の状態を把握する必要があるので、メッセージが拒絶されたことをクライアントに通知することは重要な機能である。クライアントに注文についての通知が行かない(fails to receive)と、クライアント側でキャンセルの嵐やアルゴリズムの混乱が典型的に起こり得る。
M2Cエラーパケットがクライアントに送信されている最中にクライアントがセッションから切断されると、クライアントが注入メッセージを見逃す可能性がある。遅延ACKチェックは、同じコネクション内でしかパケットを再送しない。クライアントが再接続した際に、失われたM2Cエラーメッセージを前記検査デバイスから再生する方法が必要となる。
(送信者への)M2C送戻しモードとは、M2Cエラーパケットが前記FPGAによってリングバッファ(ring)に再配備される機能である。M2Cエラーパケットが送信された後、前記FPGAが当該パケットを前記リングバッファにコピーする。これにより、データパスは、当該パケットをパースし、当該パケットがM2C TCPストリームへとどのシーケンスで挿入されたのかを決定し、メッセージ拒絶をログに報告することができる。
M2C遅延ACKチェックは、C2M遅延ACKチェックと同じアーキテクチャで設計されている。これには、2つのモジュールが存在する:
図9に、固定ロジック(FPGA)213ハードウェア、ならびに当該固定ロジック(FPGA)213ハードウェアの、データパス及びPTRSアプリケーション220ソフトウェアとの処理を示す。図9には、クライアントが誤りのあるパケットを送り出した状況に対処する際のさらなる詳細が描かれている。前述したように、このパケットはパケット検査エンジンにより処理されて、当該パケット検査エンジンによりエラーが検出されると共に、当該パケット検査エンジンによりこのパケットは拒絶されたパケットとしてマークされる。そして、このパケットは、PTRSソフトウェア220へと送られて追加の処理を受けたり再送されたりする。
図10には、M2C拒絶メッセージの処理の様子が描かれている。PTRSアプリケーション220ソフトウェアがメッセージを拒絶したばかりであるとして、好ましくは、次に当該PTRSアプリケーション220ソフトウェアが、対応する通知メッセージをクライアントに戻す向きで注入し、このイベントを(場合によっては、拒絶の理由も)当該クライアントに知らせる。これを整然に行うには、ソフトウェア220が影響中のセッションをM2Cコネクションストールモードに設定して、そのセッションのどのトラフィックもFPGA213を通過しないように阻止する。ソフトウェア220は、インターセプトしたトラフィックをDMAで市場130へと送信すると共に、拒絶メッセージを自然な(clean)境界で注入する。
変更前−過去パケットとは、クライアント側又は市場側により再送されたパケットであって、TCPシーケンスを前記FPGAによる通常の方法で更新することができないパケットのことである。これは、その再送がかなり前のTCPシーケンスのものである場合に起こり得て、最新のアキュムレータやデルタではシーケンスの適切な変更を正確に反映することができない。結果として、TCP機能障害を防ぐための措置が講じられる必要がある。
一部の実施形態では、新しいメッセージが届いた際に、固定ロジック213がこの新しいメッセージのTCPシーケンス番号をシーケンスマーカーレジスタの数値と比較し得る。この最新メッセージのTCPシーケンス番号がシーケンスマーカーの数値よりも小さい場合、当該メッセージは変更されずに送信される。この最新のメッセージのTCPシーケンス番号がシーケンスマーカーの数値以上である場合には、当該メッセージのTCPシーケンス番号にアキュムレータレジスタの数値が加算される。
パケットがキルされると、CAM(より広義的には検査デバイス110)がパケットスキップ阻止モードに設定される。パケットスキップ阻止モードは、全てのクライアント→市場(C2M)パケットを、初めに固定ハードウェア213で処理することなくソフトウェアへと送る。
近接変更(CPM)とは、キルされたパケットのACKを市場から未だ受信していないにもかかわらず、別のキルされたパケットが送信を待っているときに起こる稀な状態のことである。この場合、デルタは最初にキルされたパケットから除去された総バイト数を未だ記憶していて、このパケットのACKが届くまでは当該バイト数をアキュムレータに加算したりクリアしたりすることができない。CPMが発生すると、その次の(second)キルされたパケットは、送信可能となるまでストールされる必要がある。最初にキルされたパケットのACKを受信すれば、前記その次のキルされたパケットが送信可能となる。一部の実施形態では、キルされた後続のパケットをストールするのに代えて、キューに格納することが可能であり得る。
時刻t3にてデルタレジスタが「0」になると、第1のキルパケットのACKを受信したということである。この時点で前記ストールが解除され得て、時刻t4にて第2のキルパケットが送信され得る。デルタレジスタが未だ「0」でなければ、最後に変更したパケット(例えば、この例では第1のキルパケット)を決まった間隔で(例えば、10ms毎に)再送する。最後に変更したパケットのACKをタイムアウト時間(例えば、100ms)を過ぎても未だ受信できなければ、セッションを切断する。
本文献で説明するハードウェアメカニズムには、各セッション毎に個別のインスタンスペアが存在する。当該ペア内の一方のインスタンスはTCPセッションのC2M方向を処理し、他方のインスタンスは同じTCPセッション(the TCP session)のM2C方向を処理する。典型的なFPGAは、実際128個のセッション(このメカニズムの256個のインスタンス)をサポートするが、現実的な数はその時々(arbitrary)であり、FPGAチップ上のメモリのみに限られる。
本文献で説明する技術により、C2M方向やM2C方向で、確立されたTCPストリームからメッセージを完全に除去したり、既存のメッセージである「インフライト(in-flight)」メッセージを別のサイズのメッセージに置き換えたり、追加のメッセージを注入したりする、カットスルー方式の超低レイテンシな装置を提供することが可能となる。
本文献で説明する技術により、既存のTCPストリームでのメッセージの除去、追加及び変更が可能となる(accommodate)。これらの低次メカニズムは、リスクチェックに合格しなかった取引イベントメッセージを除去するのに用いられ、データが宛先の取引所に到達するのを防ぐ。そして、取引メッセージが拒絶されたクライアントには、自身のメッセージが取引所により受信されなかったことを把握できるように拒絶通知が必要となる。本技術は、既に取引所プロトコルに合わせてコーディングされたクライアント取引サーバがその拒絶をシームレスに解釈できるように、各プロトコル固有の拒絶メッセージを合成する。取引クライアントにとっては、取引所がメッセージを取引前リスクコントロールの違反で拒絶したかの如く見える。さらに、システムは、元々の取引メッセージが拒絶された確かな理由をクライアントが理解(interpret)できるように、特定の拒絶理由に関する追加情報を付け足す。
一部の実施態様では、FPGA(固定ハードウェア)213とPTRSソフトウェア220との間の主要な通信メカニズムの一つが、リングバッファであり得る。このリングバッファは、ヘッドポインタとテールポインタとの2つのポインタにより維持される。FPGA213は、全データを当該バッファへと、前記テールポインタの位置を開始位置として書き込む。FPGA213がデータの書込みを完了すると、当該FPGA213は最後に書き込んだバイトのメモリ位置へと前記テールポインタを進める。ソフトウェアが当該バッファから読出しを行った際には、最後に読み出されたバイトの位置へと前記ヘッドポインタが進められる。これにより、メモリをFPGA213によって安全に上書きすることが可能となる。有効データの開始メモリ位置を追跡する前記ヘッドポインタ、および当該有効データの終了メモリ位置を追跡する前記テールポインタは、当該リングバッファのベースアドレスから当該ベースアドレスにバッファサイズを足したアドレスにかけて「一周」することで、「環状リング」を形成する。FPGA213が当該リングバッファをオーバーフローさせて、「一周」事象の発生を経た、前記テールポインタが前記ヘッドポインタを越えて上書きするようなことが起こらないための配慮が講じられる。
これまでに述べたアーキテクチャは、他の用途に利用されてもよい。例えば、当該アーキテクチャは、ネットワーク上を流れるデータストリームを監視したり、パケットをキャプチャ(採取)したり、パケットの生データを復号化したり、証券売買注文を検査する以外の理由によりリアルタイムでパケットコンテンツを解析したりするのに利用され得ることも可能である。
なお、これまでに述べた例示的な実施形態は、数多くの様々な方法で実現され得ることを理解されたい。一部の例では、各種「データプロセッサ」が、それぞれ、中央演算処理装置、メモリ、ディスク又は他の大容量記憶装置、少なくとも1つの通信インターフェース、少なくとも1つの入出力(I/O)装置、および他の周辺装置を備えた物理的又は仮想的な汎用コンピュータにより実現され得る。当該汎用コンピュータは、プロセッサへと変換して考えることで、これまでに述べたプロセスを実行する。これは、例えば、ソフトウェア命令を当該プロセッサにロードした後、当該命令を実行して前述の機能を実現すること等により行われる。
Claims (22)
- 第1のエンドポイントと第2のエンドポイントとの間に確立された双方向ネットワークセッション中に、
パケットのストリームを検査する過程と、
前記第1のエンドポイントから送信された所与のパケット内のメッセージが変更されるべきであると判断すると、
前記所与のパケット内の前記メッセージを変更して変更後パケットを生成する過程と、
前記メッセージの変更を考慮して変更後のシーケンス番号を決定する過程と、
前記変更後パケットを前記第2のエンドポイントに送信する過程と、
返信メッセージを前記第1のエンドポイントに送信し、元のメッセージが変更されたことを知らせる過程と、
を備える、方法。 - 請求項1に記載の方法において、変更後のシーケンス番号を決定する前記過程が、
変更された前記パケットのシーケンス番号に基づいてシーケンスマーカー値を決定すること、
アキュムレータ値を維持すること、
元の前記所与のパケットと前記変更後パケットとのバイト数の差分を表すデルタ値を記憶すること、
前記第2のエンドポイントからの前記変更後パケットの確認応答を検出すること、および
前記デルタ値を前記アキュムレータ値に加算すること、
を含む、方法。 - 請求項2に記載の方法において、さらに、
受信した後続のパケットのシーケンス番号が前記シーケンスマーカー値以上である場合、
前記第1のエンドポイントから受信した後続のパケットのシーケンス番号を前記アキュムレータ値だけ変更する過程、
を備える、方法。 - 請求項3に記載の方法において、さらに、
前記第2のエンドポイントから受信した別のパケットの確認応答シーケンス番号を前記アキュムレータ値に基づいて調節する過程、
を備える、方法。 - 請求項1に記載の方法において、前記所与のパケット内の前記メッセージを変更する過程が、当該パケット内の当該メッセージを、異なる長さの第2のメッセージに置き換えることを含む、方法。
- 請求項5に記載の方法において、前記第2のメッセージが、ハートビートメッセージ、テストメッセージ、またはシーケンスフィルタメッセージを含む、方法。
- 請求項1に記載の方法において、前記所与のパケット内の前記メッセージを変更する過程が、当該パケットから当該メッセージを除去することを含む、方法。
- 請求項1に記載の方法において、前記第1のエンドポイントが取引業者に対応付けられたクライアント装置であり、前記第2のエンドポイントが証券取引システムに対応付けられた市場装置であり、前記メッセージが証券を売買する注文である、方法。
- 請求項8に記載の方法において、前記返信メッセージが、前記メッセージを変更した理由を含む、方法。
- 請求項8に記載の方法において、前記メッセージを変更した前記理由が、取引ルールへの準拠、セキュリティリスク又は証券リスク、及びパケットコンテンツフィルタリングのうちの少なくとも一つに関する、方法。
- 請求項2に記載の方法において、さらに、
前記第2のエンドポイントから前記変更後パケットのACKを受信したか否かを判断する過程と、
前記変更後パケットのACKを受信していないと判断した場合、
前記変更後パケットを再送する過程と、
タイムアウト時間後に前記セッションを切断する過程と、
を備える、方法。 - 請求項11に記載の方法において、前記変更後パケットのACKを受信したか否かを判断する過程が、一定間隔で実行される、方法。
- 請求項11に記載の方法において、さらに、
前記第2のエンドポイントから受信した前記ACKのシーケンス番号が前記シーケンスマーカー以上である場合、
変更ペンディング値をクリアする過程、
を備える、方法。 - 請求項11に記載の方法において、変更された前記メッセージのACKを受信したか否かを判断する過程が、前記デルタ値を定期的にポーリングすることを含む、方法。
- 請求項1に記載の方法において、さらに、
前記変更後パケットのACKを未だ受信しておらず、かつ、後続のパケットについても変更して第2の変更後パケットを生成する必要がある場合、
前記変更後パケットの前記ACKを受信するまで前記第2の変更後パケットをストールする過程、
を備える、方法。 - 請求項15に記載の方法において、さらに、
前記デルタ値をポーリングして、前記変更後パケットの前記ACKをいつ受信したかを判断する過程と、
所定の時間間隔で前記変更後パケットを再送する過程と、
前記変更後パケットの前記ACKを受信することなく所定の時間が経過すると、前記セッションを切断する過程と、
を備える、方法。 - 第1のTCPエンドポイントと第2のTCPエンドポイントとの間に確立された双方向TCPセッション中に、
前記第1のTCPエンドポイントから受信したTCPパケットを検査する過程と、
所与のTCPパケットからTCPシーケンス番号を抽出する過程と、
前記所与のTCPパケットに対応するTCPセッションを特定する過程と、
前記所与のTCPパケット内のコンテンツがルールに準拠しているか否かを判断する過程と、
前記所与のTCPパケットが前記ルールに準拠している場合、
前記所与のTCPパケットを前記第2のTCPエンドポイントに到達させる過程と、
前記所与のTCPパケットが前記ルールに準拠していない場合、
拒絶理由データ値を決定する過程と、
前記所与のTCPパケットの少なくとも一部が前記第2のTCPポイントに到達するのを阻止する過程と、
前記所与のTCPパケットの少なくとも一部を除去して変更後TCPパケットを形成する過程と、
デルタ値を、そのようにして除去された前記一部のサイズに依存する数値に設定する過程と、
前記デルタ値を、前記TCPセッションに対応付けられた各セッション用のTCPアキュムレータに適用する過程と、
前記変更後TCPパケットのTCPシーケンス番号を、前記各セッション用のTCPアキュムレータのサイズに依存する数値だけ調節する過程と、
前記変更後TCPパケットを前記第2のTCPエンドポイントに送信する過程と、
前記拒絶の理由を表す数値を有する返信パケットを生成する過程と、
前記返信パケットを前記第1のTCPエンドポイントに送信する過程と、
を備える、方法。 - 互いに独立して動作する第1のネットワークインターフェース及び第2のネットワークインターフェースを有するカットスルー方式の固定ロジックデバイスであって、1つ又は複数のTCPパケットストリームが前記第1および第2のネットワークインターフェース間を移動することのできる、カットスルー方式の固定ロジックデバイスと、
前記TCPパケットストリームを検査するパケット検査デバイスであって、
所与のTCPパケットからTCPシーケンス番号を抽出し、
前記所与のTCPパケットに対応するセッションを特定し、
前記所与のTCPパケットが、ルールに準拠していないコンテンツを含んでいるか否かを判断し、
前記所与のTCPパケットが準拠していない場合、
前記所与のTCPパケットの少なくとも一部が前記第2のネットワークインターフェースに到達するのを阻止する、
パケット検査デバイスと、
固定ロジック及び少なくとも1つのプログラマブルなデータプロセッサを含むコントローラであって、
前記パケット検査デバイスから前記所与のTCPパケット及び拒絶理由データ値を受け取り、
前記所与のTCPパケットの前記シーケンス番号に基づく数値を、各セッション用のTCPシーケンスマーカーとして記憶し、
前記TCPパケットから、拒絶された前記コンテンツをトリミングして、変更後TCPパケットを形成し、
前記変更後パケットを前記第2のネットワークインターフェースを介して送信できるように、当該変更後パケットを、前記カットスルー方式の固定デバイスと共有するメモリに書き込み、
各セッション用のデルタ値を、トリミングされた前記コンテンツのサイズに依存する数値に設定し、
前記変更後TCPパケットの前記TCPシーケンス番号を、各セッション用のTCPアキュムレータの数値に従って調節し、
前記第2のネットワークインターフェースを介して届いた後続のTCPパケットの、シーケンス番号及びセッション識別子を抽出し、
前記第2のネットワークインターフェースを介して届いた後続のTCPパケットのACKシーケンス番号が、前記対応するセッションのTCPシーケンスマーカー以上である場合、各セッション用の対応付けられた前記デルタ値を、当該セッションに対応付けられた前記TCPアキュムレータに適用し、
前記第2のネットワークインターフェースを介して届いた前記後続のパケットの前記ACKシーケンス番号を、前記セッションに対応付けられた前記TCPアキュムレータの数値だけ調節し、
前記拒絶の理由を表す数値を含む、前記第1のネットワークインターフェースを介して送信する返信パケットを生成する、
コントローラと、
を備える、装置。 - 請求項18に記載の装置において、前記コントローラが、さらに、
ルールに準拠していない前記所与のパケットに対応する前記セッションについて、コネクションストールモードを設定し、
前記第2のネットワークインターフェースから受信した後続のパケットが、前記コネクションストールモードを設定した前記セッションに属するものである場合、
生成された前記返信パケットを前記第1のインターフェースに転送し、
前記生成された返信パケットを前記第1のインターフェースに転送した後、前記後続のパケットを前記第1のインターフェースに転送し、
前記セッションの前記コネクションストールモードをクリアする、装置。 - 請求項18に記載の装置において、前記コントローラの前記固定ロジックが、
前記パケット検査デバイスから前記所与のTCPパケット及び拒絶理由データ値を受け取る手順、
前記所与のTCPパケットの前記シーケンス番号に基づく数値を、各セッション用のTCPシーケンスマーカーとして記憶する手順、
前記変更後TCPパケットの前記TCPシーケンス番号を、各セッション用のTCPアキュムレータの数値に従って調節する手順、
前記第2のネットワークインターフェースを介して届いた後続のTCPパケットの、シーケンス番号及びセッション識別子を抽出する手順、
前記第2のネットワークインターフェースを介して届いた後続のTCPパケットのACKシーケンス番号が、前記対応するセッションのTCPシーケンスマーカー以上である場合、各セッション用の対応付けられた前記デルタ値を、当該セッションに対応付けられた前記TCPアキュムレータに適用する手順、ならびに
前記第2のネットワークインターフェースを介して届いた前記後続のパケットの前記ACKシーケンス番号を、前記セッションに対応付けられた前記TCPアキュムレータの数値だけ調節する手順、
のうちの少なくとも一つを実行する、装置。 - 請求項20に記載の装置において、前記プログラマブルなデータプロセッサが、プログラムコードを実行して、
前記TCPパケットから、拒絶された前記コンテンツをトリミングして、変更後TCPパケットを形成する手順、
前記変更後パケットを、前記カットスルー方式の固定デバイスと共有するメモリに書き込む手順、
各セッション用のデルタ値を、トリミングされた前記コンテンツのサイズに依存する数値に設定する手順、
前記第2のネットワークインターフェースを介して届いた後続のTCPパケットの、シーケンス番号及びセッション識別子を抽出する手順、ならびに
前記拒絶の理由を表す数値を含む、前記第1のネットワークインターフェースを介して送信する返信パケットを生成する手順、
のうちの少なくとも一つを実行する、装置。 - 請求項18に記載の装置において、前記コントローラが、さらに、
ルールに準拠していない前記所与のTCPパケットに対応する前記セッションについて、阻止モードインジケータ値を設定し、
前記第1のネットワークインターフェースを介して届いた後続のパケットに関連付けられている情報を、処理キューに格納し、
前記処理キュー内の、前記パケットに関連付けられている前記情報が処理されたか否かを判断し、
前記処理キュー内の、前記パケットに関連付けられている前記情報が処理されたと判断すると、前記阻止モードインジケータをクリアする、装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762516753P | 2017-06-08 | 2017-06-08 | |
US62/516,753 | 2017-06-08 | ||
PCT/US2018/036395 WO2018226919A1 (en) | 2017-06-08 | 2018-06-07 | Dynamic tcp stream processing with modification notification |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020523950A true JP2020523950A (ja) | 2020-08-06 |
JP2020523950A5 JP2020523950A5 (ja) | 2021-07-26 |
JP7184881B2 JP7184881B2 (ja) | 2022-12-06 |
Family
ID=64567216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020517763A Active JP7184881B2 (ja) | 2017-06-08 | 2018-06-07 | 変更通知ありのtcpストリーム動的処理 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP3635916A4 (ja) |
JP (1) | JP7184881B2 (ja) |
CN (2) | CN117834092A (ja) |
AU (1) | AU2018280156C1 (ja) |
CA (1) | CA3065804C (ja) |
WO (1) | WO2018226919A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11539819B2 (en) | 2017-06-08 | 2022-12-27 | Hyannis Port Research, Inc. | Dynamic TCP stream processing with modification notification |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11862306B1 (en) | 2020-02-07 | 2024-01-02 | Cvs Pharmacy, Inc. | Customer health activity based system for secure communication and presentation of health information |
CN112615701B (zh) * | 2020-12-30 | 2023-02-14 | 展讯半导体(成都)有限公司 | 一种数据处理方法及装置 |
CN113673832A (zh) * | 2021-07-27 | 2021-11-19 | 卡斯柯信号有限公司 | 一种运营指标数据的生成方法、装置、设备及介质 |
CN114338466B (zh) * | 2021-12-21 | 2023-10-31 | 卡斯柯信号有限公司 | 一种自适应的丢包检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008028740A (ja) * | 2006-07-21 | 2008-02-07 | Secure Ware:Kk | 通信制御装置、通信制御方法、及びコンピュータプログラム |
JP2009152953A (ja) * | 2007-12-21 | 2009-07-09 | Nec Corp | ゲートウェイ装置およびパケット転送方法 |
US20120166327A1 (en) * | 2010-12-22 | 2012-06-28 | HyannisPort Research | Data capture and real time risk controls for electronic markets |
CN105144660A (zh) * | 2013-02-11 | 2015-12-09 | Q电信公司 | 通信设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6157955A (en) * | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US7486678B1 (en) * | 2002-07-03 | 2009-02-03 | Greenfield Networks | Multi-slice network processor |
US7551620B1 (en) * | 2004-12-15 | 2009-06-23 | Orbital Data Corporation | Protecting data integrity in an enhanced network connection |
US7826487B1 (en) * | 2005-05-09 | 2010-11-02 | F5 Network, Inc | Coalescing acknowledgement responses to improve network communications |
US8050660B2 (en) * | 2006-03-07 | 2011-11-01 | Motorola Mobility, Inc. | Apparatus and method for handling messaging service message adaptation |
US9607307B2 (en) | 2008-03-14 | 2017-03-28 | Microsoft Technology Licensing, Llc | Referral platform |
US20120327779A1 (en) * | 2009-06-12 | 2012-12-27 | Cygnus Broadband, Inc. | Systems and methods for congestion detection for use in prioritizing and scheduling packets in a communication network |
JPWO2011039985A1 (ja) * | 2009-09-30 | 2013-02-21 | パナソニック株式会社 | パケット回復方法、パケット回復システム、その方法で用いられる移動端末及び中間装置 |
US8583053B1 (en) * | 2012-06-20 | 2013-11-12 | Google Inc. | Optimizing TCP traffic for mobile devices using TCP backoff thresholds |
US20150332398A1 (en) * | 2012-09-04 | 2015-11-19 | Slav Brkic | Risk management system and method for monitoring and controlling of messages in a trading system |
US9577918B2 (en) | 2012-11-19 | 2017-02-21 | Cray Inc. | Increasingly minimal bias routing |
US9397938B2 (en) * | 2014-02-28 | 2016-07-19 | Cavium, Inc. | Packet scheduling in a network processor |
-
2018
- 2018-06-07 CN CN202410082200.XA patent/CN117834092A/zh active Pending
- 2018-06-07 AU AU2018280156A patent/AU2018280156C1/en active Active
- 2018-06-07 EP EP18812779.9A patent/EP3635916A4/en active Pending
- 2018-06-07 CN CN201880051533.9A patent/CN110999221B/zh active Active
- 2018-06-07 WO PCT/US2018/036395 patent/WO2018226919A1/en unknown
- 2018-06-07 CA CA3065804A patent/CA3065804C/en active Active
- 2018-06-07 JP JP2020517763A patent/JP7184881B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008028740A (ja) * | 2006-07-21 | 2008-02-07 | Secure Ware:Kk | 通信制御装置、通信制御方法、及びコンピュータプログラム |
JP2009152953A (ja) * | 2007-12-21 | 2009-07-09 | Nec Corp | ゲートウェイ装置およびパケット転送方法 |
US20120166327A1 (en) * | 2010-12-22 | 2012-06-28 | HyannisPort Research | Data capture and real time risk controls for electronic markets |
CN105144660A (zh) * | 2013-02-11 | 2015-12-09 | Q电信公司 | 通信设备 |
JP2016515316A (ja) * | 2013-02-11 | 2016-05-26 | キュー テレコム リミテッド | 通信装置 |
Non-Patent Citations (1)
Title |
---|
"パケットキャプチャプログラムの作成とネットワーク検証", C MAGAZINE, vol. 第14巻 第5号, JPN6022019590, 1 May 2002 (2002-05-01), JP, pages 147 - 154, ISSN: 0004779437 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11539819B2 (en) | 2017-06-08 | 2022-12-27 | Hyannis Port Research, Inc. | Dynamic TCP stream processing with modification notification |
Also Published As
Publication number | Publication date |
---|---|
EP3635916A4 (en) | 2020-12-09 |
CN117834092A (zh) | 2024-04-05 |
CN110999221B (zh) | 2024-02-20 |
CN110999221A (zh) | 2020-04-10 |
AU2018280156A1 (en) | 2019-12-19 |
CA3065804C (en) | 2022-07-26 |
AU2018280156C1 (en) | 2023-05-18 |
AU2018280156B2 (en) | 2023-02-09 |
EP3635916A1 (en) | 2020-04-15 |
CA3065804A1 (en) | 2018-12-13 |
JP7184881B2 (ja) | 2022-12-06 |
WO2018226919A1 (en) | 2018-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11539819B2 (en) | Dynamic TCP stream processing with modification notification | |
JP7184881B2 (ja) | 変更通知ありのtcpストリーム動的処理 | |
JP6427112B2 (ja) | 通信装置 | |
US10873613B2 (en) | TCP processing for devices | |
US7876751B2 (en) | Reliable link layer packet retry | |
EP3707882A1 (en) | Multi-path rdma transmission | |
JP2010250834A (ja) | 二方向的なプロセス対プロセスのバイトストリームのプロトコル | |
EP2001152B1 (en) | Reliable message transport network | |
EP2722768A1 (en) | TCP processing for devices | |
US20130297774A1 (en) | Avoiding delayed data | |
US10505677B2 (en) | Fast detection and retransmission of dropped last packet in a flow | |
CN105610852A (zh) | 处理ack洪泛攻击的方法和装置 | |
JP2020523950A5 (ja) | ||
CN108234089B (zh) | 用于低时延通信的方法和系统 | |
US11695860B2 (en) | Online application layer processing of network layer timestamps | |
US20240146806A1 (en) | Intermediate apparatus, communication method, and program | |
US11729215B2 (en) | Method for inspection and filtering of TCP streams in gateway router | |
KR101959440B1 (ko) | 네트워크 보안 장치 및 그의 트래픽 처리 방법 | |
KR100521801B1 (ko) | 네트워크상에서의 스팸메일 차단 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200605 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210526 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210526 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220524 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20220819 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221019 |
|
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: 20221115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221124 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7184881 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |