第6章 自IPアドレスの決定

第7章 Internet Protocol (IP)
コネクションを使わない Datagram
Internet の階層

Internet は仮想ネットワークに見える.
– 物理ネットワークの抽象化

階層化
– 他に影響を及ぼすことなく並行して各個の改
良が可
応用サービス
信頼度の高い transport
コネクションを張らない packet 配送
コネクションのない配送システム

Unreliable (配送の保証がない)
– 紛失・2重・順不同の検知・通知をしない.

Connectionless (各パケットは独立に配
送)

Best effort (精一杯の配送努力をする)
– かってに(気まぐれに)packetを廃棄しない.
– Unreliable になるのは
• 資源が尽きた
• 基盤ネットワークのfail
の時だけである.
Internet Protocol (IP)
– Packet の format
– routing の方法
– packet の取り扱い方、エラーの処理

Internet Datagram
– 物理ネット ・・・
– 仮想ネット ・・・
フレーム
IP データグラム
Datagram
header
Frame
header
Datagram data area
Frame Data Area
Datagram format
Type-of-service フィールド
/usr/include/netinet/ip.h
IP header components

vers
バージョン番号 4=IPv4
– 次世代 IP … 6=IPv6
– 異なるバージョンのパケットは廃棄される.

hlen
ヘッダ長 (32ビット語長)
– 最小5、最大15

service type
– 優先度 0 ~ 7
• 0: 通常、7: 網制御
IP header components

service type
– サービスのタイプ
•D
•T
•R
遅延を重視 (delay)
スループットを重視 (throughput)
信頼性を重視 (reliability)
– 要求ではなく、ヒント
IP header components

Total length
– ヘッダ+データの長さ (octet)

ident
– datagram の識別番号 (プロトコルごとに設
定)
– (src-addr, ident) が一意にデータグラムを決
める.

Flag
DF MF
• DF don’t fragment
• MF more fragment
IP header components

Offset
– フラグメントが元のデータグラム・データ中に
占める位置 8 octet を単位とする数
元のデータグラム・データ
Fragment 制御
Fragment 制御

MTU (maximum transfer unit)
– ethernet 1500 octet
– その他にたとえば 128 octet, 2044 octet など
共通の最大公約数がない → 1 frameで運べないものは、いく
つかの fragment に分解する→ 任意の大きさのデータグラム
を保証
Reassembly of fragments

組立て
– どのルータで fragment されるか分からない.
– 各フラグメントはみな同じデータグラム形式
– どこで組立てを行うのか?→ 最終地

欠点
– 一度小さなMTUのnetworkを通ると小さいまま
– 一つでも未着だと全部が廃棄 (reassembly timer)

長所
– 途中のルータで蓄積再構成をしないですむ.
– それぞれのフラグメントが独立に配送される.
IP header components

Time to live 生存時間
– 経路表が損傷 → パケットのループ
– ループを断ち切る.
– 時間をどう測るか?
• 遅延の大きな通信路
• 広帯域幅の通信路
– forward するたびに1を引く
– 0 になったら廃棄して誤りを通知
• traceroute
IP header components

protocol
– data 部分の高位プロトコル番号

Hdr checksum
– ヘッダだけの検査 (16ビット整数の加算)
– 長所
• 処理時間を短くで切る
• 高位プロトコルが独自の検査を持てる.
– 短所
• 高位プロトコルで付けなければならない.
• ダメなデータに気づかず送る.
オプション

オプション・コード
– クラス
• データグラム/ネットワークの制御
• デバグと計測
– 番号
0: option list 終了
1: NOP
2: security
3: loose src routing

9: strict src routing
7: record route
8: (stream id)
4: timestamp
オプションの長さ、ポインタ (next avail)

Record route
– ルータを通るたびにIP addr レコードを追加

source routing
– path (経路)の指定
• throughput の測定など
– strict source routing
– loose source routing

この通りに
この順に
timestamp
– 通過時刻の記録、ネットワークのモニタ