3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Macのパケット・トレースで3270データストリームを解析してみる

Last updated at Posted at 2016-12-27

##はじめに

前回の記事(『Macで3270エミュレーターを使ってみる』)のフォローで、使用した3270エミュレーターのソフト・キーボードでキー・アサインの不明部分を調査するためにネットワーク・レベルで送受信パケットを捕捉し解析してみましょう。
##本編
###方法
3270エミュレーターのソフト・キーボードで発生するアテンションIDを調査するのが主目的であり、できるだけシンプルな試験手順とします。

  • ツールはWireshark

こちらからダウンロード。感覚的な使い勝手で操作はいたって容易です。パケット内容を解釈して形式化してくれるので解析対象部分もすぐに識別できます。
スクリーンショット 2016-12-27 14.17.33.png
(導入・起動方法は簡単なので割愛)

  • 'EYECATCHER'という文字列を入力した3270画面データをソフト・キーボード(Fkey)押下によりメインフレームに送信しパケット・トレースから該当するアテンションIDを判断する
    スクリーンショット 2016-12-27 14.22.13.png

この画面でソフト・キーボード(FKey)からアテンション・キーを押下するとメインフレームにデータが送信されます。'EYECATCHER'の文字列はEBCDICエンコーディングでx'C5 E8 C5 C3 C1 E3 C3 C8 C5 D9'。

###結果

TN3270プロトコル接続なのでTELNETのパケットに着目し、ユーザー・データ(すなわち3270データストリーム)を解析します(下図の反転部分)。

スクリーンショット 2016-12-27 12.22.22.png

最初の3バイトのx'7d 40 4a'が3270制御コード、それ以降がメインフレームに送信されている画面データ('EYECATCHER')を示しています。インバウンド・データストリーム形式の時、先頭がアテンションIDとなり、x'7d'すなわちエンター・キーのアテンションIDが送信されていることが分かります。続く2バイトはカーサー・アドレスでx'40 4a'は、24 x 80画面のスクリーン・サイズで1行目の11カラム目を指しています。

3270データストリームについてはこちらを参照。

おまけ

最後81バイト目のx'ef'(d'239')は、RFC885(TELNET END OF RECORD OPTION)で規定されているTELNETデータのEnd-Of-Recordエスケープ・シーケンス。

##まとめ

上述の手順を繰り返し、不明であったソフト・キーボード(FKey)のアテンション・キーのIDを補足すると以下の通りとなります。

スクリーンショット 2016-12-27 14.13.16.png

使用ツールではパケットがASCIIエンコーディングで形式化・表示される為、送信データ内容(EBCDICエンコーディング)が判読できないのがちょっと残念(エンコード指定のオプションがあるかもしれません)。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?