スライド 1

詳解TCP/IP
ACE B2
mewtwo
IP:インターネットプロトコル
イントロダクション
• IPには信頼性がなく、上位層(TCPなど)に依
存している。
• エラー処理アルゴリズムはデータを破棄し発
信元にICMPメッセージを送り返すのみ。
• 2つの連続するデータ(AとB)を同ーのあて先
に送信しても、それぞれが別々のルートで伝
送され、BがAより先に到達する場合もある
IPヘッダ
• ヘッダのサイズは通常20バイト
ビット数
4
4
8
16
16
3
13
8
8
16
32
32
0~
名前
バージョン
ヘッダ長
サービスタイプ
データ長
ID
フラグ
フラグメント・オフセット
TTL
プロトコル
ヘッダ・チェックサム
送信元IPアドレス
宛先IPアドレス
オプション
説明
IPのバージョン
IPヘッダの長さ
上位プロトコルによって割り当てられた重要度
IPヘッダとセグメント・データを合わせた長さ
大きいデータを分割した際につける識別番号
分割する際に使用するフラグ
分割を繋ぎあわせる時に使う
パケットの生存時間。無限ループを防ぐ
使用している上位プロトコルの番号
IPヘッダのエラーチェック
送信元の論理アドレス
宛先の論理アドレス
なくてもよい(最大40バイト)
IPルーティング
• データはルーターのルーティング・テーブルの
情報から最適なルートを探し出し転送される。
• データが転送できなかった場合は「ホスト到
達不可」か「ネットワーク到達不可」のエラー
が返される。
サブネット・アドレッシング
• IPアドレスのホスト番号をサブネット番号とホ
スト番号に分割する。
第1
オクテット
第2
オクテット
11000000 10101000
第3
オクテット
1100100
第4オクテット
サブネット
ホスト
00000000
0
0000000
00
000000
000
00000
0000
0000
00000
000
000000
00
0000000
0
00000000
-
サブネットの数
192.168.100.0のクラスCネットワークの例
0個
2個
4個
8個
16個
32個
64個
128個
256個
各サブネットの
ホストの数
254個
126個
62個
30個
14個
6個
2個
0個
0個
サブネット・マスク
• ネットワーク番号・サブネット番号のビットを全
て1、ホスト番号を0にしたもの。
• これによってデータのあて先が同一サブネッ
ト上なのか、同一ネットワーク上の別のサブ
ネットなのか、異なるネットワーク上のホスト
なのか識別できる。
各種コマンド
• ifconfig:ネットワーク・インタフェースのコン
フィギュレーション、詳解のためのコマンド
ダイヤルアップでは接続や切断のたびに
ifconfigが実行されなければならない。
• netstat:各インタフェースのMTU、週出力パ
ケット数、入出力エラー数、衝突の数、現在
の出力キューのサイズの情報を出力する。
IPの未来
• クラスBアドレスの半分以上が既に割り当てら
れている。(1994年)
• 現在のルーティング・テーブルでは、ネット
ワークの数が増加すればクラスCのアドレス
を割り当てるようになり、ルーティング・テーブ
ルのサイズが急速に拡大していく。
• 次世代のIPとして128ビットのIPv6の仕様が
決定された。
Pingプログラム
イントロダクション
• ICMPエコー要求メッセージをホストに送り、
返答が帰ってくるかをテストする。
• Pingはあるホストまでの往復時間を測定し、
そのホストまでの距離を示す。
タイプ
0
3
5
8
11
説明
Echo Reply
Destination Unreachable
Redirect
Echo Request
Time Exceeded
意味
Echo応答
宛先到達不能
最適経路通知
Echo要求
時間超過によるパケット破棄
ICMPのタイプ
Pingプログラム
• 識別子:複数のpingが同時刻に同じホストで
実行されていても識別可能にするためのもの。
• シーケンス番号:0からスタートしエコー要求
が送られるたびに増加する。
タイプ(0または8)
識別子
コード(0)
チェックサム
シーケンス番号
エコー要求とエコー応答のICMPメッセージの形式
出力例
•
•
•
•
•
•
•
•
•
•
•
•
•
•
gemini % ping vangogh.cs.berkeley.edu
PING vangogh.cs.berkeley.edu: 56 data bytes
64 bytes from (128.32.130.2): icmp_seQ=0.time=660.ms
64 bytes from (128.32.130.2): icmp_seQ=5.time=1780.ms
64 bytes from (128.32.130.2): icmp_seQ=7.time=380.ms
64 bytes from (128.32.130.2): icmp_seQ=8.time=420.ms
64 bytes from (128.32.130.2): icmp_seQ=9.time=390.ms
64 bytes from (128.32.130.2): icmp_seQ=14.time=110.ms
64 bytes from (128.32.130.2): icmp_seQ=15.time=170.ms
64 bytes from (128.32.130.2): icmp_seQ=16.time=100.ms
割り込みキーをタイプして終了させる
一一一一vangogh.CS.Berkeley.EDUPING Statistics---17 packets transmitted, 8 packets received, 5296 packet loss
round-trip (ms) min/avg/max 100/501/1780
IPレコード・ルート・オプション
• 通過したルーターのIPアドレスが分かるオプ
ション。
• ping -Rで有効になる
• IPヘッダの制限で、9つのIPアドレスまでしか
カバーできない。
例
•
•
•
•
•
•
•
•
•
•
•
•
•
Svr4 % ping –R slip
PING slip (140.252.13.65): 56 data bytes
64 bytes from 140.252.13.65: icmp_seq=O tt1=254 time=280 ms
RR: bsdi (140.252.13.66)
slip (140.252.13.65)
bsdi (140.252.13.35)
svr4 (140.252.13.34)
64 bytes from 140.252.13.65:icmp_seq=l tt1=254 time=280 ms
(same route)
64 bytes from 140.252.13.65:icmp_seq=2 tt1=254 time=270 ms
(same route)
^?
--- slip ping statistics --3 packets transmitted, 3 packets received, 096 packet 10ss
round-trip min/avg/max 270/276/280 ms
IPタイムスタンプ・オプション
• ルーターを通過した際のタイムスタンプが分
かるオプション。
• IPアドレスとタイムスタンプを記録することも
出来るが4ペアまでしかスペースがない。
• どのルーターのタイムスタンプを記録するか
選択することも出来る。
まとめ
• PingプログラムはTCP/IPが稼動する二つの
システム間の接続テストを行うものである。
Tracerouteプログラム
イントロダクション
• IPデータグラムが一方のホストから他のホス
トに流れるルートを確認することが出来る。
• レコード・ルート・オプションと違い中継ルー
ターに特別な機能を要求しない。
タイプ
0
3
5
8
11
説明
Echo Reply
Destination Unreachable
Redirect
Echo Request
Time Exceeded
意味
Echo応答
宛先到達不能
最適経路通知
Echo要求
時間超過によるパケット破棄
ICMPのタイプ
Tracerouteプログラムの操作
• まずTTLが1のデータグラムを送信する。
• 最初のルーターでTTLが0になり、ICMP時間
超過メッセージが返送される。
• これにより最初のルーターのアドレスと到達
までの時間が分かる。
• 同様にTTLを1ずつ追加していく。
例
•
•
sun % traceroute nic.ddn.mll
traceroute to nic.ddn.mil (192.112.36.5), 30 hops max, 40 byte packets
•
•
•
•
•
•
•
•
•
•
•
•
•
1 netb.tuc.noao.edu (140.252.1.183) 218 ms 227 ms 233 ms
2 gateway.tuc.noao.edu (140.252.1.4) 233 ms 229 ms 204 ms
3 butch.telcom.arizona.edu (140.252.104.2) 204 ms 228 ms 234 ms
4 Gabby.Telcom.Arizona.EDU (128.196.128.1) 234 ms 228 ms 204 ms
5 NSIgate.Telcom.Arizona.EDU (192.80.43.3) 233 ms 228 ms 234 ms
6 ]PL1.NSN.NASA.GOV (128.161.88.2) 234 ms 590 ms 262 ms
7 ]PL3.NSN.NASA.GOV (192.100.15.3) 238 ms 223 ms 234 ms
8 GSFC3.NSN.NASA.GOV (128.161.3.33) 293 ms 318 ms 324 ms
9 GSFC8.NSN.NASA.GOV (192.100.13.8) 294 ms 318 ms 294 ms
10 SURA2.NSN.NASA.GOV (128.161.166.2) 323 ms 319 ms 294 ms
11 nsn-FIX-pe.sura.net (192.80.214.253) 294 ms 318 ms 294 ms
12 GSI.NSN.NASA.GOV (128.161.252.2) 293 ms 318 ms 324 ms
13 NIC.DDN.MIL (192.112.36.5) 324 ms 321 ms 324 ms
IPソース・ルーティング・オプション
•
ストリクト・ソース・ルーティング
:送り手が通るべき正確な経路を指定する。
ルーターが存在しない場合はエラーを返す。
•
ルーズ・ソース・ルート
:経由すべきIPアドレスのリストを指定するが、リス
トにないルーターを通ることも可能。
ストリクト・ソース・ルートの失敗例
• sun % traceroute -G netb -G gateway -G gabby
westgate
• traceroute to westgate (192.80.43.2), 30 hops
max, 40 byte packets
• 1 netb (140.252.1.183) 272 ms 257 ms 261 ms
• 2 gateway (140.252.1.4) 263 ms 259 ms 234 ms
• 3 gateway (140.252.1.4) 263 ms !S * 235 ms !S
まとめ
• TracerouteはTCP/IPのネットワークを管理す
る際に非常に便利なツールである。
• 動作はTTLを1から増やしていく単純なもので、
最終あて先によってポート到達不可エラーが
戻ってくる。