n-20070628

ネットワーク
コミュニケーション
トランスポート層
TCP/UDP
6/28/07
1
5/24のスライド No.3
 基 本 機 能 (2)
 4つの機能がモジュー
ル化され,右図のよう
に層をなしている
(階層化)
 これで通信が行われ
る
 今回はトランスポート
層の話
2
トランスポート層のプロトコル
TCPとUDPのふたつのプロトコル
ポートの管理
データの信頼性
パケットの到達性
 信頼性のない IP を使って,信頼性のある通
信を行うものがTCP
 IPを下請けに使って,ホスト間で通信する
 途中のルータでは利用されない
 アプリケーションにより,TCPとUDPを使い分ける




3
ポート番号とポートによる通信
4
ポ ー ト 番 号 (1)
 1台のホストで,複数のアプリケーション
メール,WWWなど異なるアプリケーション
 複数の同じアプリケーション

 どのアプリケーションが送り出したパケットなの
か,どのアプリケーションあてのパケットなのか
区別する
 IPアドレスだけでは不可
 そのためのものがポート番号
5
ポ ー ト 番 号 (2)
 実際にはポート番号だけでなく,
終点IPアドレス
始点IPアドレス
終点ポート番号
始点ポート番号
プロトコル番号(TCP・UDP)
で,通信(パケット)を区別する
 この組合せをアソシエーション(association)
6
ポ ー ト 番 号 (3)
 0~65535 (2オクテット)
 0 ~ 1023 (教科書 p.341-342)
Well Knownポート番号
 1024 ~ 49151
 予約済みポート番号
 49152 ~ 65535
 動的割当て又はプライベート用ポート番号

7
ポ ー ト 番 号 (4)
 Well Knownポート番号

代表的なアプリケーションは使用するポート
番号が決められている

サーバの管理者が勝手に決めると,クライ
アント側は困る(意識的に変える場合もあ
る)

20,21 ftp
25 smtp
80 http
110 pop
8
ポ ー ト 番 号 (5)
 参照サイト
 http://www.iana.org/assignments/port-
numbers
 http://www.vwnet.jp/mura/tcpip-port.htm
 http://www.mm-
labo.com/computer/tcpip/ipaddress/portsort.ht
ml
9
ポ ー ト に よ る 通 信 (1)
 教科書 p.187
 サーバ(例えばwebサーバ)は
リクエスト受け付けるポート番号(80)
 プロトコル(TCP)
を決め,クライアント(利用者)からのリクエスト
を待つ

10
ポ ー ト に よ る 通 信 (2)
 クライアント(利用者)は
自分が通信に使うポート番号(49152~)*
を決め,サーバのポート番号あてに送る
 サーバは,クライアントのポート番号あてに返事
を送る
*実際には,1024~を使っていることもある模様
もちろん,そのポート番号は別のアプリケー
ションが使っていないものである
11
ポ ー ト に よ る 通 信 (3)
 サーバのポート番号は,あらかじめ決まっている
 クライアントのポート番号は,適当に決められる
12
ポ ー ト に よ る 通 信 (4)
 実際にはポート番号だけでは,複数のクライアン
トからのリクエストを区別できないので,IPアドレ
スを含む5つのデータ(アソシエーション)を用い
る
13
TCPとUDP
14
TCPとUDP
15
データの信頼性
 IPとは異なり,データもチェックサムの対象として
いる(p.191,204)
16
U D P
 データが壊れていないことは保証

データ部分もチェックサムの対象
 データの到達性は保証されない

送りっぱなし
17
TCPでのパケットの到達保証
18
TCP(到達性の保証 1)
 交信するホスト間で,データが届いたかどうかの
確認をすることにより,データの到達性の保証を
する
 確認応答
ACK(アック,ACKnowledgement)
 教科書p.193~
19
TCP(到達性の保証 2)
 TCPヘッダ(p.192)
20
TCP(到達性の保証 3)
 シーケンス番号

送信するデータに付ける連続番号
 1オクテットごとにつける

データの大きさが1000オクテットの時,
最初のシーケンス番号が3001なら,
次のシーケンス番号は4001となる

この番号でパケットの順序が分かる
21
TCP(到達性の保証 4)
 確認応答番号

受信側で,次に受け取るべきシーケンス番号
を返答する

シーケンス番号3001の大きさ1000オクテット
のデータを受け取ると,確認応答番号4001の
返事を送る
22
TCP(到達性の保証 6)
 再送処理 ー 送信側は,一定時間内に確認応答
のないパケットを再度送る

このためには,パケットのコピーを残しておか
なければならない
23
コ ネ ク シ ョ ン(1)
 教科書 p.198
 通信相手が確実に応答するか確認するためなど
 データ送信の前に,
通信相手とコネクション(接続?)を確立し,
送信が終わるとコネクションを切断する
24
そ の 他
25
ウィンドウフロー制御
 パケットごとに確認応答をしていると,効率が悪
い
 確認応答を待たずにパケットを送ることができる
 受信側で,まとめて受け取ることのできるデータ
の大きさがウィンドウサイズ
26
輻 輳 制 御
 確認応答が来なくなると,ネットワークが混んで
いるとみなして,送信するデータ量を減らす
27
ストリーム型・データグラム型
 UDPは,アプリケーションから渡されたデータに
ヘッダを付けて,そのまま送る
 データグラム型
 TCPは,データを加工してから送る

ストリーム型
28
即 時 性
 TCPは,到達性を保証するためなどのため
に,即時性は低い
 UDPは,即時性が高い
29
通信相手の数
 TCPはユニキャストのみ
 UDPはユニキャスト,マルチキャスト,ブ
ロードキャスト
30
フロー制御・輻輳制御
 TCPは行うが,UDPは行わない
31
と り あ え ず ま と め(1)
 ポート番号とは,パケットを送り・受け取るアプリ
ケーションを区別するためのもの
 ポート番号がなく,IPアドレスだけしかなかった
らどうなるのか?
 パケットのデータが正しいものであることをチェッ
クできる
32
と り あ え ず ま と め(2)
 TCP
時間がかかっても,確実に相手に届けたい
 IPというあまり当てにならないものを使って,
信頼性のある通信を実現する
 どうやって?
 UDP
 確実性を欠いても,直ぐに相手に届けたい
 ライブ中継
 少ないデータ

33
ファイアウォール
34
ファイアウォール(1)
 外部との境界に置き,外部からの不正アクセス
を防ぐ
 “5分で絶対に分かるファイアウォール”
http://www.atmarkit.co.jp/fsecurity/special/17fi
vemin/fivemin00.html
35
ファイアウォール(2)
 IPアドレスやポート番号でパケットを制限する
 Webサーバを設置していなければ,外部から80
番ポートへのアクセスはありえない
 通常,アクセスを認めるポート番号以外のパケッ
トを規制(廃棄)する
 Webサーバがなければ80番ポートへのパケッ
トは捨ててかまわない
36
ファイアウォール(3)
 外から内への制限だけでなく,内から外への制
限を課す場合もある
 実際には,もっと複雑
37
ファイアウォール(4)
 専用のハードウェア
 ルータにその機能が含まれるの
 ソフト
38
ファイアウォール(5)
 破棄したパケットの記録
 こちらが受け付けるポートを調べている

ポートスキャン
39
ファイアウォール(6)
 ポートスキャン(port scan)とは
攻撃・侵入の前段階に行われる標的サイトの
各ポートにおけるサービスの状態の調査
 http://www.ipa.go.jp/security/ciadr/word_idx.
html より
 定点観測
 http://www.jpcert.or.jp/isdas/
 http://isc.sans.org/

40
次 回 (予 定)
 アプリケーションの代表例
 DNSの仕組み
 NATとDHCP
41