JPWO2007010593A1 - Tcpセッションエミュレーション装置 - Google Patents
Tcpセッションエミュレーション装置 Download PDFInfo
- Publication number
- JPWO2007010593A1 JPWO2007010593A1 JP2007525461A JP2007525461A JPWO2007010593A1 JP WO2007010593 A1 JPWO2007010593 A1 JP WO2007010593A1 JP 2007525461 A JP2007525461 A JP 2007525461A JP 2007525461 A JP2007525461 A JP 2007525461A JP WO2007010593 A1 JPWO2007010593 A1 JP WO2007010593A1
- Authority
- JP
- Japan
- Prior art keywords
- session
- tcp
- protocol
- packet
- header
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 claims description 48
- 230000004044 response Effects 0.000 claims description 48
- 230000007704 transition Effects 0.000 claims description 25
- 238000012546 transfer Methods 0.000 claims description 13
- 230000002159 abnormal effect Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 8
- 238000012790 confirmation Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 31
- 238000000034 method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
TCPセッションエミュレーション装置は、受信パケットのヘッダから得られるIP(Internet Protocol)アドレス及びポート番号の少なくとも1つを検索キーとしてTCPプロトコルのセッションを特定する識別子を検索するためのセッション検索テーブルと、前記セッション検索テーブルの検索結果として求められる前記識別子に基づいて引かれ、セッションステータスコードを得るためのセッション状態管理メモリと、前記セッション状態管理メモリから得られた前記セッションステータスコードに応じて、複数のアプリケーションプロトコルのいずれかが使用する前記TCPプロトコルの擬似セッション動作を決定するシーケンサとを備える。
Description
本発明は通信プロトコルとしてTCP(Transmission Control Protocol)を用いる通信ネットワークシステムにおいてTCP通信の性能を検証する装置に関し、特にIP(Internet Protocol)ネットワークに接続される機器(通信装置)あるいはアプリケーションソフトウェアにおいて発生するイベント(事象)をエミュレート(模擬)するためのTCPセッションエミュレーション装置に関する。
特開平11−27308号公報(特許文献1)などには、TCPプロトコルの振る舞い及び内部手順をエミュレートすることにより、通信シーケンス状態を解析し、スループット低下時の原因を調査する技術が開示されている。これらの技術では、実際の通信をモニタし、TCPプロトコルの状態遷移を解析することにより、問題動作の原因となる状態を調査している。
しかし、従来のエミュレーション技術では、通信システムまたは通信装置同士の実通信をモニタし、TCPプロトコルの状態遷移の正常性を確認することは可能であるが、意図的に(擬似的に)異常シーケンス状態や高負荷状態などを発生し、その時の通信システムの処理動作の正当性を確認することはできない。また、通信システム同士のハンドシェーク動作の応答遅延を意図的に発生することにより、応答待ち処理のタイムアウト時における動作の正当性を確認することもできない。
また、従来の試験装置の一構成例を図10に示すが、この構成においては、ヘッダ抽出・プロトコル識別部20において受信パケットのヘッダを抽出してプロトコルの識別を行い、選択されたパケットを受信パケット読出/書込(R/W)制御部21により受信パケットバッファ22に書き込むこと、及び送信パケット読出/書込(R/W)制御部23により指定される送信パケットバッファ24のデータにヘッダ内容設定レジスタ25及びパケットヘッダ生成部26の協働にて生成されたヘッダを付加し、送出パケット生成部27により送信パケットを生成して、ネットワークに送出することは可能である。しかし、この従来の試験装置においては、やはりTCPプロトコルの状態遷移を擬似的に発生していない。
[特許文献1]特開平11−27308号公報
[特許文献2]特開2000−267963号公報
[特許文献3]特開2000−106557号公報
[特許文献4]特開2004−140596号公報
[特許文献1]特開平11−27308号公報
[特許文献2]特開2000−267963号公報
[特許文献3]特開2000−106557号公報
[特許文献4]特開2004−140596号公報
本発明の課題は、実際のネットワークでは意図的に発生することが難しいTCPプロトコル上の異常シーケンス状態の発生や高負荷状態の発生を設定に応じて任意に発生することを可能にする技術を提供することにある。
上記課題を解決するために、本発明のTCPセッションエミュレーション装置は、受信パケットのヘッダから得られるIP(Internet Protocol)アドレス及びポート番号の少なくとも1つを検索キーとしてTCP(Transmission Control Protocol)プロトコルのセッションを特定する識別子を検索するためのセッション検索テーブルと;前記セッション検索テーブルの検索結果として求められる前記識別子に基づいて引かれ、セッションステータスコードを得るためのセッション状態管理メモリと;前記セッション状態管理メモリから得られた前記セッションステータスコードに応じて、複数のアプリケーションプロトコルのいずれかが使用する前記TCPプロトコルの擬似セッション動作を決定するシーケンサとを備える。
この構成を採るTCPセッションエミュレーション装置において、前記シーケンサは、HTTP(Hyper Text Transfer Protocol)、FTP(File Transfer Protocol)、及びSMTP(Simple Mail Transfer Protocol)を含むアプリケーションプロトコル毎に設けられている。
また、前記セッションステータスコードは、前記TCPプロトコルのセッションが通信しているポート番号、前記TCPプロトコルの遷移状態を示すTCP状態コード、及び前記アプリケーションプロトコルの遷移状態を示す上位状態コードから構成されている。
TCPセッションエミュレーション装置は、意図的に前記TCPプロトコルのセッションの異常処理動作を発生させるために予め設定される設定値を保持する状態設定レジスタを更に備え;前記設定値及び前記セッションステータスコードの双方の値に応じて、前記シーケンサの動作を決定する。
また、TCPセッションエミュレーション装置は、前記受信パケットのヘッダからヘッダ情報として、前記IPアドレス及び前記ポート番号とともに、TCPプロトコルの順序番号、確認応答番号及びコードビットを得る抽出手段と;前記抽出手段で得た前記ヘッダ情報及び前記シーケンサからのヘッダ内容指示に基づいて、送信パケットのヘッダ情報を生成し、応答パケットのヘッダとして付加して送信する手段とを更に備える。
さらに、TCPセッションエミュレーション装置は、前記受信パケットの受信時刻をタイムスタンプ情報として対応のセッション毎に前記セッション状態管理メモリに格納する手段と;応答パケットの遅延時間を設定するレジスタとを更に備え;前記応答パケットを前記設定された遅延時間後に送出して応答遅延を実現する。
本発明によれば、TCPプロトコルのセッション動作を擬似的に実行可能にすることにより、意図的に異常シーケンス、大量のトラフィック、応答遅延などを発生させることが可能となり、ネットワーク機器(通信装置)やアプリケーションソフトウェアの検証に有益である。これにより、IPネットワーク関連システムの品質向上に大いに寄与する。
本発明の他の課題、特徴及び利点は、図面及び請求の範囲とともに取り上げられる際に、以下に記載される一実施の形態を読むことにより明らかになるであろう。
TSE TCPセッションエミュレーション装置
1 ヘッダ抽出・プロトコル識別部
2 セッション検索テーブル
3 セッション状態管理メモリ
4 受信パケットバッファ
5 送信パケットバッファ
6 応答パケット生成シーケンサ
7 状態設定レジスタ
8 パケットヘッダ生成部
9 応答パケット生成部
10 タイムスタンプ生成部
11 受信パケット読出/書込(R/W)制御部
12 送信パケット読出/書込(R/W)制御部
13 遅延設定レジスタ
1 ヘッダ抽出・プロトコル識別部
2 セッション検索テーブル
3 セッション状態管理メモリ
4 受信パケットバッファ
5 送信パケットバッファ
6 応答パケット生成シーケンサ
7 状態設定レジスタ
8 パケットヘッダ生成部
9 応答パケット生成部
10 タイムスタンプ生成部
11 受信パケット読出/書込(R/W)制御部
12 送信パケット読出/書込(R/W)制御部
13 遅延設定レジスタ
以下、添付図面を参照して、本発明について更に詳細に説明する。図面には本発明の好ましい実施形態が示されている。しかし、本発明は、多くの異なる形態で実施されることが可能であり、本明細書に記載される実施形態に限定されると解釈されてはならない。むしろ、これらの実施形態は、本明細書の開示が徹底的かつ完全となり、当業者に本発明の範囲を十分に伝えるように提供される。
図2に示す本発明の一実施の形態のTCP(Transmission Control Protocol)セッションエミュレーション装置TSEは、図1(A),(B)に構成例を示す通信ネットワークシステムSYSに適用する。
図1、図2及び動作手順を示す図3を併せ参照すると、通信ネットワークシステムSYSは少なくとも1つのネットワーク(IP(Internet Protocol)ネットワーク)NWを含む。このネットワークNWはUNIX(登録商標)などのコンピュータネットワークや広域のパケット交換網を構成する。ネットワークNWには、通常、IPアドレスをそれぞれ持つ通信装置として、サーバSV及びクライアントCLが接続される。サーバSVとクライアントCLとは、ネットワークNWを経由する通信回線(通信路またはコネクションと記載することもある)を通してデータの送受信(TCP通信)を行う。
通信プロトコルとしてのTCPは、OSI(Open Systems Interconnection)参照モデルの第三層のIP(ネットワーク層)の上の第四層(トランスポート層)のプロトコルである。TCPの特徴は信頼性のあるデータ伝送(転送)を行うこと、つまり通信の開始から終了まで通信路の信頼性を保持してデータの正常な送信の制御と、さらにエラー時のエラー検出及び回復とを行うことにある。このため、TCPではコネクション・オリエンテッドなバーチャル通信路を設定して、上位層のユーザに全二重・双方向のストリームサービスを提供する。
通信ネットワークシステムSYSにおいて、ストリームサービスでコネクション・オリエンテッドなデータ転送を行い、信頼性を維持するには、TCP通信の性能を模擬試験することが必要不可欠となる。
TCPセッションエミュレーション装置TSEは、擬似クライアントCLあるいは擬似サーバSVに実装可能である。ここで、擬似クライアントCLは、非常に多くのクライアントCLがサーバSVへのアクセスを行っている状態を擬似的に発生させるものであり、擬似サーバSVは、多くの実際のクライアントCLとの擬似的な通信を行うものである。TCPセッションエミュレーション装置TSEを擬似クライアントCLあるいは擬似サーバSVとして、通信ネットワークシステムSYSに導入することにより、通常では難しいサーバSVの限界処理性能に近いクライアント数を用いた実機検証や、ネットワークNW上でのパケットロスなどにより発生するシーケンス異常を擬似的に発生することが可能である。
TCPセッションエミュレーション装置TSEにおいて、ヘッダ抽出・プロトコル識別部1は、ネットワークNWから受信したパケットよりヘッダ部の抽出及びプロトコルの識別を行う(図3中、S10,S11)。ヘッダ抽出・プロトコル識別部1は、対象となるTCPパケット(厳密には、TCP/IPパケット)のIPアドレス及びポート番号を抽出し、TCPセッションを検索するためのセッション検索テーブル2に検索キーとして入力する(図3中、S12,S13)。セッション検索テーブル2は検索エンジンを含む連想メモリ(CAM:Content Addressable Memory)で構成される。
セッション検索テーブル2の検索結果は、それぞれのTCPセッション番号を示すセッション識別子(アドレス)として、セッション状態管理メモリ3のエントリ番号を特定するために使用される(図3中、S14)。セッション状態管理メモリ3には、コネクションが確立されているそれぞれのTCPセッションの状態(ステート:state)を示すコード(セッションステータスコード)、受信パケットバッファ4のパケット格納位置を示すアドレス(受信バッファアドレス)、パケット受信の時刻を示すタイムスタンプなどの情報が、エントリ番号(セッション番号)毎に登録されている(図3中、S15,S16)。
セッション状態管理メモリ3から出力されるセッションステータスコードは、応答パケット生成シーケンサ6の次ステートへの遷移条件として使用される(図3中、S17)。ここでは、応答パケット生成シーケンサ6は、TCPセッションの状態遷移を実現するハードウェアシーケンサであり、セッションステータスコードと、主制御部(CPU:Central Processor Unit)から設定される状態設定レジスタ7の値とを条件として遷移することにより、通常動作あるいは異常動作について、TCPセッション上のハンドシェーク(3way handshake)動作を実現する(図3中、S18)。応答パケット生成シーケンサ6は、遷移後の状態を示すセッションステータスコードをセッション状態管理メモリ3に書き込む(図3中、S19)。
応答パケット生成シーケンサ6において受信パケットに対する応答動作が決定後に、応答動作に対応する送信ヘッダの内容及び送信データの内容がパケットヘッダ生成部8及び送信パケット読出/書込(R/W)制御部12に渡される。パケットヘッダ生成部8は、応答パケット生成シーケンサ6からの指示内容(送信ヘッダの内容)に基づいて、送信パケットヘッダを生成し、応答パケット生成部9に出力する。送信パケットR/W制御部12は、応答パケット生成シーケンサ6からの指示内容(送信データの内容)に基づいて、送信パケット読出アドレスを送信パケットバッファ5に出力する。応答パケット生成部9は、送信パケットバッファ5からの送信パケットデータにパケットヘッダ生成部8からの送信パケットヘッダを付加して、応答パケットを生成し、ネットワークNWのコネクションを通して相手先へ返送する(図3中、S21)。
遅延設定レジスタ13に設定された遅延時間が経過したか否かについては、セッション状態管理メモリ3から読み出されるタイムスタンプ情報と、タイムスタンプ生成部10のタイマ値との比較に基づいて、送信パケットR/W制御部12において判定され、設定遅延時間の経過後に、送信パケットバッファ5から送信パケットデータが読み出され、応答パケット生成部9から送信される(図3中、S20,S21)。
なお、セッション検索テーブル2に一致するエントリがない場合、受信パケットのIPアドレス及びポート番号がセッション検索テーブル2に登録され、セッション状態管理メモリ3において対応のセッションステータスコードが初期値に設定される(図3中、S14,S22,S23)。
また、ヘッダ抽出・プロトコル識別部1においては、送信するパケットのヘッダ情報として、TCPヘッダの順序番号(シーケンス番号)及び確認応答番号が更に抽出され、パケットヘッダ生成部8に送られる。これらの順序番号及び確認応答番号は、応答パケット生成部9における応答パケットの生成に使用される。
TCPセッションエミュレーション装置TSEにおいては、受信パケット読出/書込(R/W)制御部11により受信パケットバッファ4に格納されたパケットデータをCPUから読み出すこと、及び送信パケットバッファ5に対するパケットデータをCPUが設定することが可能であり、上位プロトコル処理をCPUにより処理することが可能である。応答パケット生成シーケンサ6においてCPUによるプロトコル処理が必要とされた場合には、応答パケット生成シーケンサ6からCPUに対して割り込み通知が行われる。なお、TCPセッションエミュレーション装置TSEから先に、つまりネットワークNWにパケット(応答パケットではなくトラフィック生成のためのパケット)を送信する場合には、CPUから送信パケットR/W制御部12に送出制御を通知することにより、パケットの送信が実施される。
一層詳述すると、上述したTCPセッションエミュレーション装置TSEにおいては、送信パケットバッファ5の内容については、図4に示すように、アプリケーションの各プロトコル(例えば、HTTP(Hyper Text Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)など)に対応するパケットデータが、予めCPUにより書き込まれている。したがって、セッション状態管理メモリ3からセッションステータスコードを受けた応答パケット生成シーケンサ6は、該当するプロトコルが格納されているアドレスを示す送信データ内容指示を送信パケットR/W制御部12に渡すことにより、送信パケットバッファ5における該当プロトコルの格納されているアドレスから送信パケットデータが読み出される。
図5はセッション検索テーブル2の構成例を示す。この構成例に示すように、セッション検索テーブル2には、発信元アドレス及び宛先アドレス(いずれもIPアドレス)、プロトコルコード、発信元ポート番号及び宛先ポート番号が格納されている。このテーブル2の各エントリはTCPの個々のセッション(セッション番号)に対応しており、受信パケットから抽出された上記ヘッダ情報、つまり発信元アドレス、宛先アドレス、プロトコルコード、発信元ポート番号、及び宛先ポート番号の少なくとも1つに基づいて、このテーブル2を検索することにより、TCPセッションが識別される。
図6はセッション状態管理メモリ3の構成例を示す。セッション状態管理メモリ3の各エントリはセッション検索テーブル2の各エントリと対応している。セッション状態管理メモリ3には、セッション状態を示すセッションステータスコード、受信パケットの格納位置を示す受信バッファアドレス、及びパケットを受信した時刻を示すタイムスタンプが格納されている。ここで、セッションステータスコードは、TCPセッションが通信しているポート番号、TCPの遷移状態を示すTCP状態コード、及び上位プロトコル(アプリケーションプロトコル)の遷移状態を示す上位状態コードから構成されている。上位プロトコルの状態遷移については、ハードウェア及びソフトウェアのいずれかにより実施されるが、ソフトウェアにより状態遷移を実施する場合には、応答パケット生成シーケンサ6から通知される割り込みにより、次状態の状態遷移が発生する。
図7は応答パケット生成シーケンサ6の動作手順例を示す。この動作手順(S71〜S78)により、TCPプロトコルの状態遷移が実現されるが、TCPプロトコル状態がESTABLISHEDになっている場合に、上位プロトコルの通信が実施される。上位プロトコルの状態遷移については、ハードウェアあるいはソフトウェアにて構成される応答パケット生成シーケンサ6内部の上位プロトコル処理シーケンサ(プロトコルシーケンサ)(図8)に現在の状態を示す上位状態コードを渡すことにより行われる。
また、異常シーケンスを発生させる場合には、状態設定レジスタ7の設定内容に応じて、TCPプロトコルの状態遷移を通常とは異なる状態へと遷移させる。なお、この動作手順で示されるTCPプロトコルの状態遷移はハードウェアにて実施することより、大量のトラフィック発生状態を生成することが可能となる。
図8は応答パケット生成シーケンサ6の構成例を示す。この構成例のように、応答パケット生成シーケンサ6は、図9に示すTCPプロトコルの状態遷移においてESTABLISHEDとなり上位プロトコルの通信が可能となった際に、ポート番号に応じて、応答パケット生成シーケンサ6内部の上位のプロトコル処理シーケンサが動作するような階層的な構成を採る。上位プロトコル処理シーケンサについては、FINの送受信によりTCPプロトコルの状態遷移がCLOSE状態に遷移する際に、シーケンス動作を完了する。
異常状態発生の具体例として、TCPプロトコルのSYNパケット受信に対するACKの応答パケットが正常に返らないという場合を示すと、状態設定レジスタ7に異常状態発生の設定を行い、応答パケット生成シーケンサ6内部のTCPシーケンサがSYN_RCVDの状態で、通常であればACKパケットをSYNパケットの送信元に返すような送信指示を送信パケットR/W制御部12及びパケットヘッダ生成部8に送るところを、この動作を実施せずにACKパケットを送信しないまま、SYN_RCVDに留まるという動作をする。
また、パケットヘッダ内部の確認応答番号の異常を発生させる場合には、状態設定レジスタ7に異常状態発生の設定を行い、応答パケット生成シーケンサ6を経由して、送信パケットヘッダ内容指示にて異常生成指示の信号が伝えられ、パケットヘッダ生成部8において、通常とは異なる確認応答番号が格納されたパケットヘッダが生成され、通信先には、この異常ヘッダを有するパケットが送信されることになる。
図9はRFC793で規定されているTCPプロトコルの状態遷移を示し、この状態遷移に則って、応答パケット生成シーケンサ6の動作が決定される。TCPプロトコルでは、TCPヘッダ中の発信元ポート番号及び宛先ポート番号と、IPヘッダ中のIPアドレスとにより識別されるコネクションを確立する。このコネクション確立は、3ウエイハンドシェーク、つまりSYN(同期)、ACK(確認)、及びSYN+ACK(確認応答)という3つのTCPセグメントで行われる。データ転送においては、TCPヘッダ中の順序番号及び確認応答番号を用いる。データ転送が終わると、FIN(終了)及びACK(確認)という2つのTCPセグメントの交換を通信装置または通信システム間で行うことにより、コネクションを解放する。
TCPヘッダには、発信元ポート番号、宛先ポート番号、順序番号、確認応答番号、コードビット(制御ビット)、ウインドウサイズ、チェックサム、及び緊急(アージェント)ポインタなどのフィールドがある。
TCPヘッダの6ビットのコードビットフィールドには、URG、ACK、PSH、RST、SYN、及びFINの6個のフラグビットがある。各コードビットの意味は次のとおりである。
(1)URG:緊急ポインタが有効である。
(2)ACK:確認応答番号が有効である。
(3)PSH:受信側(受け手)はデータを可能な限り早急にアプリケーションに渡さなければならない。
(4)RST:コネクションをリセットする。
(5)SYN:コネクションを初期化するために順序番号を同期させる。
(6)FIN:送信側(送り手)はデータの送信を終了した。
(1)URG:緊急ポインタが有効である。
(2)ACK:確認応答番号が有効である。
(3)PSH:受信側(受け手)はデータを可能な限り早急にアプリケーションに渡さなければならない。
(4)RST:コネクションをリセットする。
(5)SYN:コネクションを初期化するために順序番号を同期させる。
(6)FIN:送信側(送り手)はデータの送信を終了した。
これらのコードビットは1つだけをオン状態にするか、複数を同時にオン状態にすることができる。コードビットがオン状態のTCPセグメントを次のように呼ぶ。
(1)SYNセグメント:SYNビットのみがオン(ACKビットはオフ)。
(2)SYN+ACKセグメント:SYNビット及びACKビットのみがオン。
(3)ACKセグメント:データフィールドにユーザデータは無く、ACKビットのみがオン。
(4)DTセグメント:URGビット及びRSTビットのオン・オフに関係なく、ユーザデータが有り、ACKビットのみがオン。
(5)FINセグメント:FINビットがオン(ACKビットがオンのことが多い)。
(6)RSTセグメント:RSTビットがオン(ACKビットがオンのことが多い)。
(1)SYNセグメント:SYNビットのみがオン(ACKビットはオフ)。
(2)SYN+ACKセグメント:SYNビット及びACKビットのみがオン。
(3)ACKセグメント:データフィールドにユーザデータは無く、ACKビットのみがオン。
(4)DTセグメント:URGビット及びRSTビットのオン・オフに関係なく、ユーザデータが有り、ACKビットのみがオン。
(5)FINセグメント:FINビットがオン(ACKビットがオンのことが多い)。
(6)RSTセグメント:RSTビットがオン(ACKビットがオンのことが多い)。
TCPプロトコルに対するイベント(事象)には、送信イベント(送信したTCPセグメント)及び受信イベント(受信したTCPセグメント)などがあり、代表例及びその意味は次に示すとおりである。
(1)SYNsent:送信したSYNセグメント。
(2)SYN+ACKsent:送信したSYN+ACKセグメント。
(3)ACKsent:送信したACKセグメント。
(4)DT/ACKsent:送信したDTセグメントまたはACKセグメント。
(5)FINsent:送信したFINセグメント。
(6)SYNrecv:受信したSYNセグメント。
(7)SYN+ACKrecv:受信したSYN+ACKセグメント。
(8)ACKrecv:受信したACKセグメント。
(9)DT/ACKrecv:受信したDTセグメントまたはACKセグメント。
(10)FINrecv:受信したFINセグメント。
(1)SYNsent:送信したSYNセグメント。
(2)SYN+ACKsent:送信したSYN+ACKセグメント。
(3)ACKsent:送信したACKセグメント。
(4)DT/ACKsent:送信したDTセグメントまたはACKセグメント。
(5)FINsent:送信したFINセグメント。
(6)SYNrecv:受信したSYNセグメント。
(7)SYN+ACKrecv:受信したSYN+ACKセグメント。
(8)ACKrecv:受信したACKセグメント。
(9)DT/ACKrecv:受信したDTセグメントまたはACKセグメント。
(10)FINrecv:受信したFINセグメント。
TCPプロトコルにおける状態(ステート)は、図9に示すように、CLOSED、LISTEN、SYN_SENT、SYN_RCVD、ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、CLOSING、CLOSE_WAIT、LAST_ACK、及びTIME_WAITという値を採り得る。これらの値の意味は次に示すとおりである。
(1)CLOSED:コネクション無しの状態。
(2)LISTEN:待ち状態。
(3)SYN_SENT:SYNセグメントを送信してコネクション確立処理中の状態。
(4)SYN_RCVD:SYNセグメントを受信してコネクション確立処理中の状態。
(5)ESTABLISHED:双方向にデータ転送可能な状態。
(6)FIN_WAIT_1:データ送信終了要求の状態。
(7)FIN_WAIT_2:データ送信終了完了の状態。
(8)CLOSING:データ送受信同時終了の状態。
(9)TIME_WAIT:コネクション解放完了時のコネクション情報保持状態。
(10)CLOSE_WAIT:コネクション解放の待機状態。
(11)LAST_ACK:最終ACKの受信待ち状態。
(1)CLOSED:コネクション無しの状態。
(2)LISTEN:待ち状態。
(3)SYN_SENT:SYNセグメントを送信してコネクション確立処理中の状態。
(4)SYN_RCVD:SYNセグメントを受信してコネクション確立処理中の状態。
(5)ESTABLISHED:双方向にデータ転送可能な状態。
(6)FIN_WAIT_1:データ送信終了要求の状態。
(7)FIN_WAIT_2:データ送信終了完了の状態。
(8)CLOSING:データ送受信同時終了の状態。
(9)TIME_WAIT:コネクション解放完了時のコネクション情報保持状態。
(10)CLOSE_WAIT:コネクション解放の待機状態。
(11)LAST_ACK:最終ACKの受信待ち状態。
上述したように、TCPセッションエミュレーション装置TSEにおいては、ネットワークNWの通信回線からの受信パケットがTCPパケットであることを認識した場合、セッション検索テーブル2が検索され、セッション状態管理メモリ3の記憶情報と状態設定レジスタ7の設定値とにより、応答パケット生成シーケンサ6の初期状態及び動作状態が決定される。また、パケットを受信した時刻はタイムスタンプとして、セッション状態管理メモリ3に格納され、パケット送出タイミングの決定に使用される。
[変形例]
上述した一実施の形態における処理はコンピュータで実行可能なプログラムとして提供され、CD−ROMやフレキシブルディスクなどの記録媒体、さらには通信回線を経て提供可能である。
上述した一実施の形態における処理はコンピュータで実行可能なプログラムとして提供され、CD−ROMやフレキシブルディスクなどの記録媒体、さらには通信回線を経て提供可能である。
また、上述した一実施の形態における各処理はその任意の複数または全てを選択し組合せて実施することもできる。
Claims (6)
- 受信パケットのヘッダから得られるIP(Internet Protocol)アドレス及びポート番号の少なくとも1つを検索キーとしてTCP(Transmission Control Protocol)プロトコルのセッションを特定する識別子を検索するためのセッション検索テーブルと;
前記セッション検索テーブルの検索結果として求められる前記識別子に基づいて引かれ、セッションステータスコードを得るためのセッション状態管理メモリと;
前記セッション状態管理メモリから得られた前記セッションステータスコードに応じて、複数のアプリケーションプロトコルのいずれかが使用する前記TCPプロトコルの擬似セッション動作を決定するシーケンサと;
を備えるTCPセッションエミュレーション装置。
- 前記シーケンサは、HTTP(Hyper Text Transfer Protocol)、FTP(File Transfer Protocol)、及びSMTP(Simple Mail Transfer Protocol)を含むアプリケーションプロトコル毎に設けられている
請求項1記載のTCPセッションエミュレーション装置。
- 前記セッションステータスコードは、前記TCPプロトコルのセッションが通信しているポート番号、前記TCPプロトコルの遷移状態を示すTCP状態コード、及び前記アプリケーションプロトコルの遷移状態を示す上位状態コードから構成されている
請求項1記載のTCPセッションエミュレーション装置。
- 意図的に前記TCPプロトコルのセッションの異常処理動作を発生させるために予め設定される設定値を保持する状態設定レジスタを更に備え;
前記設定値及び前記セッションステータスコードの双方の値に応じて、前記シーケンサの動作を決定する
請求項1記載のTCPセッションエミュレーション装置。
- 前記受信パケットのヘッダからヘッダ情報として、前記IPアドレス及び前記ポート番号とともに、TCPプロトコルの順序番号、確認応答番号及びコードビットを得る抽出手段と;
前記抽出手段で得た前記ヘッダ情報及び前記シーケンサからのヘッダ内容指示に基づいて、送信パケットのヘッダ情報を生成し、応答パケットのヘッダとして付加して送信する手段と;
を更に備える請求項1記載のTCPセッションエミュレーション装置。
- 前記受信パケットの受信時刻をタイムスタンプ情報として対応のセッション毎に前記セッション状態管理メモリに格納する手段と;
応答パケットの遅延時間を設定するレジスタとを更に備え;
前記応答パケットを前記設定された遅延時間後に送出して応答遅延を実現する
請求項1記載のTCPセッションエミュレーション装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2005/013164 WO2007010593A1 (ja) | 2005-07-15 | 2005-07-15 | Tcpセッションエミュレーション装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2007010593A1 true JPWO2007010593A1 (ja) | 2009-01-29 |
Family
ID=37668482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007525461A Pending JPWO2007010593A1 (ja) | 2005-07-15 | 2005-07-15 | Tcpセッションエミュレーション装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2007010593A1 (ja) |
WO (1) | WO2007010593A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5183331B2 (ja) * | 2008-07-14 | 2013-04-17 | 三菱電機株式会社 | 通信再現装置 |
JP5067362B2 (ja) * | 2008-12-26 | 2012-11-07 | 富士通株式会社 | 通信端末、ネットワークインタフェースカード及びその方法 |
JP5532755B2 (ja) * | 2009-08-28 | 2014-06-25 | カシオ計算機株式会社 | データ処理装置、ネットワークシステム及びプログラム |
JP5271873B2 (ja) * | 2009-10-30 | 2013-08-21 | 日本電信電話株式会社 | エラー発生装置および方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05260055A (ja) * | 1992-03-16 | 1993-10-08 | Nippondenso Co Ltd | 擬似異常信号発生装置 |
US5732213A (en) * | 1996-03-22 | 1998-03-24 | Ericsson Inc. | System and method of testing open systems interconnection (OSI) layers in telecommunication networks |
JP2002007232A (ja) * | 2000-06-21 | 2002-01-11 | Cybird Co Ltd | Wwwサーバーの性能試験方法およびサーバー試験装置 |
US20030117959A1 (en) * | 2001-12-10 | 2003-06-26 | Igor Taranov | Methods and apparatus for placement of test packets onto a data communication network |
JP2003316666A (ja) * | 2002-04-19 | 2003-11-07 | Sony Computer Entertainment Inc | スタックのセッション数検証方法、コンピュータに実行させるためのスタックのセッション数検証プログラム、コンピュータに実行させるためのスタックのセッション数検証プログラムを記録したコンピュータ読み取り可能な記録媒体、スタックのセッション数検証システム |
JP4195264B2 (ja) * | 2002-09-09 | 2008-12-10 | 株式会社アイピースクエア | 情報処理装置及び情報処理方法 |
JP2004180185A (ja) * | 2002-11-29 | 2004-06-24 | Hitachi Ltd | コンピュータシステムのネットワーク評価方法および通信データ発生装置 |
-
2005
- 2005-07-15 WO PCT/JP2005/013164 patent/WO2007010593A1/ja active Application Filing
- 2005-07-15 JP JP2007525461A patent/JPWO2007010593A1/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2007010593A1 (ja) | 2007-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7523198B2 (en) | Integrated testing approach for publish/subscribe network systems | |
US8121148B2 (en) | Protocol stack using shared memory | |
US7827295B2 (en) | Protocol stack | |
JP5270901B2 (ja) | ネットワーク試験装置及び方法 | |
US6981180B1 (en) | Method and apparatus for testing request-response service using live connection traffic | |
US7573829B2 (en) | Method and apparatus for low overhead network protocol performance assessment | |
EP1437877A2 (en) | Method and apparatus for hardware implementation independent verification of network layers | |
US20090037587A1 (en) | Communication system, communication apparatus, communication method, and program | |
US7009967B1 (en) | Systems and methods for transmitting data packets | |
JP5157586B2 (ja) | エミュレータ装置 | |
US9319441B2 (en) | Processor allocation for multi-core architectures | |
JPWO2007010593A1 (ja) | Tcpセッションエミュレーション装置 | |
WO2022259452A1 (ja) | 中間装置、通信方法、およびプログラム | |
US20210288945A1 (en) | Low-Latency MACsec Authentication | |
JP3569149B2 (ja) | 通信制御装置 | |
Griffin | Testing protocol implementation robustness | |
CN114095398A (zh) | 探测时延的确定方法、装置、电子设备及存储介质 | |
CN106385409B (zh) | 一种tcp报文的处理方法及装置 | |
JP4220861B2 (ja) | テスト支援方法及びテスト支援装置 | |
CN117294783B (zh) | 芯片验证方法、装置和设备 | |
Surton et al. | Man-in-the-middle tcp recovery | |
Billington et al. | Parameterised coloured Petri net channel models | |
Mesotten | MPAIOQUIC: On the design and implementation of MultiPath in QUIC | |
JP2006148358A (ja) | オンラインシステム及び通信方法 | |
Leduc | Lambda functions for network control and monitoring |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090818 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091215 |