HTTPパケット入力コネクター定義(HttpPacketInputConnectorDefinitionタグ)は,入力用CB定義(InputCBDefinitionタグ)の子要素として定義します。
なお,HTTPパケットの入力の処理については,「11.3 HTTPパケットの入力」を参照してください。
<HttpPacketInputConnectorDefinition>
<input buffersize="<入出力バッファーサイズ>"
assemblingtime="<分割パケット組み立て時間>">
<packetdata
globalheader="<グローバルヘッダー領域長>"
packetheader="<パケットヘッダー領域長>"
packetoffset="<パケットデータサイズ領域オフセット>"
packetlength="<パケットデータサイズ領域長>"
timeoffset="<タイムスタンプ領域オフセット>"/>
<command path="<コマンドパス名>"
parameter="<コマンドパラメーター>"/>
</input>
<output unit="<最大出力単位>">
<record name="<レコード名>" type="{REQUEST|RESPONSE}">
<field name="<フィールド名>"/>
</record>
</output>
</HttpPacketInputConnectorDefinition>
図9-2 タイムスタンプ領域のフォーマット
<?xml version="1.0" encoding="UTF-8"?>
<root:AdaptorCompositionDefinition
xmlns:hpicon="http://www.hitachi.co.jp/soft/xml/sdp/adaptor/definition/callback/HttpPacketInputConnectorDefinition">
<!-- 途中略 -->
<!-- 入力用CB定義 -->
<cb:InputCBDefinition
class="jp.co.Hitachi.soft.sdp.adaptor.callback.io.packetinput.HttpPacketInputCBImpl" name="inputer2">
<!-- HTTPパケット入力コネクター定義 -->
<hpicon:HttpPacketInputConnectorDefinition>
<!-- 読み込み定義 -->
<hpicon:input buffersize="096" assemblingtime="2000">
<!-- HTTPパケット定義 -->
<hpicon:packetdata globalheader="24" packetheader="16" packetoffset="8"
packetlength="4" timeoffset="0"/>
<!-- コマンド定義 -->
<hpicon:command path="C:¥Program Files¥WinDump¥WinDump.exe"
parameter=" -i 1 -s 2048 -w - -n "tcp port 80 and host 133.145.224.19""/>
</hpicon:input>
<!-- 出力定義 -->
<hpicon:output unit="100">
<!-- レコード定義 -->
<hpicon:record name="RECORD1" type="REQUEST">
<!-- フィールド定義 -->
<hpicon:field name="SEND_IP"/>
<hpicon:field name="RECEIVE_IP"/>
<hpicon:field name="SEND_PORT"/>
<hpicon:field name="RECEIVE_PORT"/>
<hpicon:field name="MESSAGE_TYPE"/>
<hpicon:field name="TARGET_URI"/>
</hpicon:record>
</hpicon:output>
</hpicon:HttpPacketInputConnectorDefinition>
</cb:InputCBDefinition>
パケットアナライザーとしてWinDumpを使用する場合に,commandタグで指定する内容について説明します。なお,ここでは,WinDumpのバージョン3.9.5を使用する場合の例を示します。WinDumpの起動コマンドの詳細については,WinDumpのドキュメントを参照してください。
HTTPパケット入力コネクターでは,次の書式で記述されたWinDumpの起動コマンド(WinDump.exe)をサポートします。
WinDump.exe△-i△<ネットワークデバイスの番号>△-s△<内部バッファーサイズ>△-w△-△-n△"tcp△port△<ポート番号>△and△host△<IPアドレス>"
書式の「△」は半角スペースを表します。commandタグのparameter属性では,半角スペースを省略しないで記述してください。
書式に示した値について説明します。
パケットアナライザーとしてtcpdumpを使用する場合に,commandタグで指定する内容について説明します。なお,ここでは,tcpdumpのバージョン3.9.4を使用する場合の例を示します。tcpdumpの起動コマンドの詳細については,tcpdumpのドキュメントを参照してください。
HTTPパケット入力コネクターでは,次の書式で記述されたtcpdumpの起動コマンドをサポートします。
/usr/sbin/tcpdump△-i△<LANインタフェース名>△-s△<内部バッファーサイズ>△-w△-△-n△tcp△port△<ポート番号>△and△host△<IPアドレス>
書式の「△」は半角スペースを表します。commandタグのparameter属性では,半角スペースを省略しないで記述してください。
書式に示した値について説明します。
fieldタグのname属性のフィールド名として指定できる識別子を次の表に示します。
表9-9 fieldタグのname属性のフィールド名として指定できる識別子
項番 | 識別子 | データ | 内容 | プロトコル | レコードの種類ごとの指定可否 | |
---|---|---|---|---|---|---|
リクエスト | レスポンス | |||||
1 | TIME | 時刻※1 | パケットデータが到着した時刻 | - | ○ | ○ |
2 | PACKET_LENGTH | パケットサイズ※2 | パケットデータの長さ(単位:バイト) | - | ○ | ○ |
3 | SEND_MAC | 送信元MACアドレス | パケット送信元のMACアドレス | Ethernet | ○ | ○ |
4 | SEND_IP | 送信元IPアドレス | パケット送信元のIPアドレス | IP | ○ | ○ |
5 | RECEIVE_IP | 送信先IPアドレス | パケット送信先のIPアドレス | IP | ○ | ○ |
6 | SEND_PORT | 送信元ポート番号 | パケット送信元のポート番号 | TCP | ○ | ○ |
7 | RECEIVE_PORT | 送信先ポート番号 | パケット送信先のポート番号 | TCP | ○ | ○ |
8 | MESSAGE_TYPE | メッセージ種別 | Request,Responseの種別 | HTTP | ○ | ○ |
9 | METHOD_NAME | メソッド情報 | GET,POSTなどのメソッド情報 | HTTP | ○ | × |
10 | TARGET_URI | URI情報※3 | アクセス先のURI情報 | HTTP | ○ | × |
11 | REFERER | Referer※3 | リンク元のURI情報 | HTTP | ○ | × |
12 | COOKIE | Cookie※3 ※4 | クッキー情報※5 | HTTP | ○ | ○ |
13 | STATUS_CODE | ステータスコード | 要求の処理結果 | HTTP | × | ○ |
14 | CONNECTION | Connection | 接続の永続性情報 | HTTP | ○ | ○ |
15 | CONTENT_LENGTH | Content-Length | コンテンツの長さ(単位:バイト) | HTTP | ○ | ○ |
16 | CONTENT_TYPE | Content-Type | コンテンツの種類 | HTTP | ○ | ○ |
17 | MESSAGE_BODY | メッセージ・ボディ※3 | 実データ | HTTP | ○※6 | × |
fieldタグのname属性で指定した識別子に従って抽出された各プロトコルデータは,次の表に示すJavaのデータ型に変換されます。Javaのデータ型への変換の際に,プロトコルデータの値が値の範囲の上限を超えている場合は,上限値までがフィールド値に格納されます。指定した識別子に対応するデータがプロトコルデータにない場合,フィールド値には,String型のときは空文字,Integer型のときは-1が格納されます。
表9-10 フィールド値に格納されるデータのJavaのデータ型
項番 | データ | プロトコル | Javaのデータ型 | 値の範囲 |
---|---|---|---|---|
1 | 時刻※ | - | Timestamp | 1970/01/01 00:00:00.000000 ~ 2261/12/31 23:59:59.999999 |
2 | パケットサイズ | - | Integer | 0~2,147,483,647 |
3 | 送信元MACアドレス | Ethernet | String | 17文字(00:00:00:00:00:00 ~ FF:FF:FF:FF:FF:FF) |
4 | 送信元ポート番号 | TCP | Integer | 0~65,535 |
5 | 送信先ポート番号 | TCP | Integer | |
6 | 送信元IPアドレス | IP | String |
|
7 | 送信先IPアドレス | IP | String | |
8 | データ種別 | HTTP | String | 7~8文字(RequestまたはResponse) |
9 | メソッド情報 | HTTP | String | 1~127文字(GET,CONNECTなど) |
10 | URI情報 | HTTP | String | 1~255文字 |
11 | Referer | HTTP | String | |
12 | Cookie | HTTP | String | 1~4,096文字 |
13 | ステータスコード | HTTP | String | 3文字(200,404など) |
14 | Connection | HTTP | String | 1~127文字(closeまたはKeep-Alive) |
15 | Content-Length | HTTP | Integer | 0~2,147,483,647 |
16 | Content-Type | HTTP | String | 3~255文字 |
17 | メッセージ・ボディ | HTTP | String | 0~2,048文字 |