連載第3回
|
|
生のTCPに触れてみよう |
ここまでTCPのキホン的な仕組みと、そしてJasper(参照:TCPの迷宮を さまよってみませんか?)を使ったシミュレーション画面を見てきました。しばらく仮想世界の話が続いたので、少し頭も疲れてきたかもしれません。また、ホンモノのTCPがどんなふうになっているのか、気になる方も多いと思います。そこで、ここからは実物のTCPを観察する方法を紹介したいと思います。
ネットワークを流れているデータを拾い出し、人間の目に見える形で表示するソフトは、普通「プロトコルアナライザ」とか「パケットキャプチャソフト」と呼びます。こういったソフトウェアは、主にネットワークにトラブルが起こったときや、ソフトウェアの開発をしているときに使用します。また、このページのようにTCPを学習するときにも、このプロトコルアナライザは学習の助けになります。
Etherealというプロトコルアナライザが、無料で利用できるうえに、機能も充実していますので、これを使ってみましょう。
まずhttp://www.ethereal.com/download.htmlに接続し、「Windows 98/ME/2000/XP/2003 Installers」の「HTTP」列にあるJapanをクリックします。現れたページの下部には、ファイルのリストがあるはずです。ここにある、ethereal-setup-xxx.exeを右クリックし、「対象をファイルに保存」を選択してください。ちなみに執筆時点ではethereal-setup-0.10.2.exeでした。
フォルダの指定が現れたら、適当なフォルダを指定します。ファイルのダウンロードが始まり、指定フォルダにファイルが保存されるはずです。
同様の手順でWinPcap_xxx.exeもダウンロードしておきます。こちらは執筆時点でWinPcap_3_0.exeでした。
なおEtherealのマニュアルが必要な方はhttp://www.ethereal.com/docs/から入手できます。ただし英語版です。
注意: 本記事ではWindows版を想定していますが、Unix版をご使用の方はご参照ください |
セキュリティ問題を修正するためのアップデートが必要です CIAC Bulletin O-105 Multiple Vulnerabilities in Ethereal 0.10.2 http://www.ciac.org/ciac/bulletins/o-105.shtml パッケージによるアップデートは、各ディストリビューション のアップデート情報をご覧ください 【例】(日本語)Red Hat セキュリティアドバイス RHSA-2004:136-09 セキュリティ問題を修正したEtherealのアップデート パッケージ http://www.jp.redhat.com/support/errata/RHSA/RHSA-2004-136J.html |
まず先にWinPcapを組み込みます。これはネットワークからデータを拾い出すための機能を追加するプログラムです。ダウンロードしておいたWinPcap_3_0.exeをダブルクリックして実行します。組み込みは基本的に「Next」をクリックしていけば進みます。「License Agreement」のページだけは「Yes, I agree with all the terms of this license agreement」にチェックを付けてから「Next」をクリックします。難しいところはないでしょう。
次にEthereal本体を組み込みます。ethereal-setup-0.10.2.exeをダブルクリックするとインストーラが立ち上がります(画面1)。
画面1 Etherealを起動したところ |
こちらもインストールはカンタンで「Next」または「I Agree」または「Install」をクリックしていけば、特別な操作をしなくても組み込みは終了します。
「スタート」→「プログラム」→「Ethereal」→「Ethereal」と選ぶと、Etherealが起動します(画面1)。この画面で「Capture」→「Start」を選択します。すると画面2が現れますので「OK」をクリックしてください。これでネットワークを流れる情報の拾い出しが始まります。
画面2 キャプチャ条件の指定。とりあえずそのままで |
拾い出しスタートと同時に画面3が現れます。これは、ネットワークから拾い出した情報のうち、どんな種類のものがどの程度あったかを示すものです。
画面3 記録した通信の種類。Webアクセスなら大部分がTCP |
ここでブラウザを立ち上げ、www.atmarkit.co.jpにアクセスしてみました。するとTCPのカウントがどんどん上がり、WebページへのアクセスはTCPであることを確認できます。このとき、Etherealはwww.atmarkti.co.jpへのアクセスでやりとりした内容を拾い出して、次々に記録しています。
画面の「Stop」をクリックすると、Etherealはデータの拾い出しを終わり、そこまでに記録した通信内容を時間順に表示します(画面4)。
画面4 記録した通信内容を一覧表示したところ |
画面は3つに分かれています。一番上が時間順にデータを並べたもので、中間がその中身を文字で表したもの、そして一番下が生のデータで表したものです。なかなか難しそうな画面ですが、こんな画面を見ていると、少し、TCPに近づいた気もしてきます。
通信の概要を大ざっぱに理解するためには、まず一番上の画面を見ます。左から時間、送信元のIPアドレス、あて先のIPアドレス、プロトコル、通信内容の概略が表示されています。
ここでNo.1、2、3をジーっと眺めてみてください。このやりとり、どこかで見たことがありませんか? そうTCPで通信をはじめるときのやりとりです(3ウェイハンドシェイクといいます)。自分のPC(192.168.1.5)が、AtmarkITのWebサーバ(211.4.250.170)に通信の開始を依頼してACKが戻ってきて、逆にAtmarkITのWebサーバからも自分のPCに向けて通信の開始要求がやって来ています。ポイントは、そう「SYN」でしたね。実際の通信がお話どおりに進んでいるのを見ると、ちょっとうれしくなってきます。
なお、Etherealはネットワークの情報を原則すべて拾い出すので、ほかのコンピュータ同士の通信が紛れ込んで、この画面どおりにならないこともあります。
では前半で登場したシーケンス番号はどこにあるでしょうか? No.4のデータで見てみましょう。1番目のデータのやりとりです。
画面上の部分でデータを選択すると、その詳しい内容が画面中間に表れます。この中の「Sequence number:1」という部分があります。これがシーケンス番号を示しています。この通信はシーケンス番号1番から始まることが分かります。
なお、この通信で何を送っているかは、画面下の生データを見ると分かります。いろんな情報に交ざって、「GET / HTTP/1.1……」という部分が見えます。これはブラウザがWebサーバに対して、そのページのHTMLファイルを送るようにリクエストしています。詳しくはHTTPのお話(HTTP語でWebブラウザとしゃべってみよう )を参照してみてください。
Etherealはネットワークから情報を拾い出すツールですので、悪用すれば、ネットワークをのぞくような使い方もできてしまいます。そのため、特に会社などの組織では、利用を制限したり、利用者を自動的に発見して警告したりするような仕組みが導入してある場合があります。自宅以外の場所で試すときには、使ってもいいのかどうか、あらかじめネットワーク管理者に相談してみてください。
いえいえ。ここまでに出てきたTCPの話は、まだごくさわりの部分だけです。それにEtherealは「個々の情報を詳しく見る」のは得意ですが、全体像を把握するのにはあまり向きません。
次回からは、これまでと同様に身近な例でTCPの働きを説明し、JasperでTCP通信の流れを確認、その後でEtherealで通信内容の細かい部分を見るという3段構えで、TCPのややこしい部分に少しずつ分け入っていきたいと思います。お楽しみに。
スライディングウィンドウの謎に迫る |
|
|
関連リンク | |
連載:TCP/IPアレルギー撲滅ドリル【超実践編】(上位レイヤ編) 連載:インターネット・プロトコル詳説 連載:ルータの仕組みを学ぼう ホストのネット接続は正しく行われているか? 〜netstatによるネットワーク設定の確認〜 |
「Master of IP Network総合インデックス」 |
- 完全HTTPS化のメリットと極意を大規模Webサービス――ピクシブ、クックパッド、ヤフーの事例から探る (2017/7/13)
2017年6月21日、ピクシブのオフィスで、同社主催の「大規模HTTPS導入Night」が開催された。大規模Webサービスで完全HTTPS化を行うに当たっての技術的、および非技術的な悩みや成果をテーマに、ヤフー、クックパッド、ピクシブの3社が、それぞれの事例について語り合った - ソラコムは、あなたの気が付かないうちに、少しずつ「次」へ進んでいる (2017/7/6)
ソラコムは、「トランスポート技術への非依存」度を高めている。当初はIoT用格安SIMというイメージもあったが、徐々に脱皮しようとしている。パブリッククラウドと同様、付加サービスでユーザーをつかんでいるからだ - Cisco SystemsのIntent-based Networkingは、どうネットワークエンジニアの仕事を変えるか (2017/7/4)
Cisco Systemsは2017年6月、同社イベントCisco Live 2017で、「THE NETWORK. INTUITIVE.」あるいは「Intent-based Networking」といった言葉を使い、ネットワークの構築・運用、そしてネットワークエンジニアの仕事を変えていくと説明した。これはどういうことなのだろうか - ifconfig 〜(IP)ネットワーク環境の確認/設定を行う (2017/7/3)
ifconfigは、LinuxやmacOSなど、主にUNIX系OSで用いるネットワーク環境の状態確認、設定のためのコマンドだ。IPアドレスやサブネットマスク、ブロードキャストアドレスなどの基本的な設定ができる他、イーサネットフレームの最大転送サイズ(MTU)の変更や、VLAN疑似デバイスの作成も可能だ。
|
|