第4回 TCP/IP による通信の詳細 / る通信 詳細

第4回
TCP/IP による通信の詳細
/
る通信 詳細
佐藤周行、中山雅哉、西村腱
先週のおさらい
• Web に関する技術
する技術 その2
– 「情報」へのアクセスの詳細
情報」
アク
詳細 → HTTP の実際
実際
今週の内容
• TCP/IP 技術あれこれ
– アクセスに関するより詳細な技術
「情報」にアクセスするとは?
• Web クライアントに「情報」の場所
b クライアントに「情報 の場所 (URI) を指定す
( ) を指定す
る
• URI から、「情報」を提供する
「情報 提供
Web サーバ
バ を抽出
し、アクセスすべきWeb サーバを探す
• Web クライアントが Web サーバに「情報」を要求
(request) する
• Web サーバから Web クライアントに「情報」の内
容が提供
容
提供 ((response) される
p
)さ る
• Web クライアントが「情報」の内容を解釈して表
示する
Web サーバを探す
Web サーバを探す
• 「Web サーバにアクセス」の詳細
「
バ
詳細
– 何気なく 「web サーバにアクセス」
サ
アク
」 と言ってきた
言
きた
が、実際の web サーバはどこにある?
– Web クライアントも
Web クライアントも telnet コマンドも、意識しない
telnet コマンドも 意識しない
で済んだのはなぜ?
• Web サーバの探し方
W b サ バの探し方
– DNS (Domain Name System) RFC1034, RFC1035
• 名前(ドメイン名)-IPアドレスの変換
• FQDN (Fully Qualified Domain Name) と IP address を対
応させる仕組み
DNS の仕組み
DNS の仕組み
• 名前(ドメイン名)
名前 ド
名 ― IP アドレスの変換
ド
変換
– 主なリソースレコード (RR: Resource Record) (
)
•
•
•
•
•
•
A : ドメイン名を IPv4 アドレスにマップする
AAAA : ドメイン名を IPv6 アドレスにマップする
PTR : IP アドレスをドメイン名にマップする
NS : Name Server のドメイン名を指定する
MX : メールを配信するドメイン名を指定する
CNAME : 別名とするドメイン名を指定する
DNS を用いたアドレス検索
DNS を用いたアドレス検索
• DNS を用いて
を
Web サーバのアドレスを検索し
バ
ド
を検索
てみよう
– Terminal アプリケーションを起動
– dig コマンドを使い
dig コマンドを使い web サーバのアドレスを検索
web サーバのアドレスを検索
% dig –t A www‐sato.cc.u‐tokyo.ac.jp
…………………….. (DNS サーバからの検索結果)
% dig –t AAAA www‐sato.cc.u‐tokyo.ac.jp
…………………….. (DNS サーバからの検索結果)
Web サーバへのアクセスの詳細
Web サーバへのアクセスの詳細
• Web サーバにアクセス中の様子を調べる
バ
中 様 を
る
– Terminal アプリケーションを起動
ア リケ ションを起動
– dig コマンドを使い web サーバのアドレスを検索
– telnet コマンドを使い
telnet コマンドを使い web サーバにアクセス
web サ バにアクセス
– (別の Terminal アプリケーションで) netstat コマ
ンドを用いて web サーバへのアクセス状態を調
b サ バ のアクセス状態を調
べる
• どれが Web サーバへのアクセス状態なの?
• 他の行は何を表わしていることになるの?
TCP/UDP の役割
TCP/UDP の役割
• 1台のコンピュータで複数のサービス(アプリ
台
ピ
タ 複数 サ ビ ( プ
ケーション)を利用することがある
– 例: 電子メール、Web など
• 複数のサ
複数のサービスを利用するには、各々の
ビスを利用するには、各々の
サービスを識別する必要がある
→ サービスの識別子(port 番号)を利用
– TCP: Transmission Control Protocol (RFC793)
– UDP: User Datagram Protocol (RFC768)
サービスの識別子(port番号)
• サービスが異なると、プロトコル(通信規約)
が異なる。
– 例えば http と smtp は全く異なるプロトコル
→ サービス識別子 (port 番号)は、一意に識
別できる必要がある。
が
– 割当が調整される必要があるが、それはどこ?
割当が調整される必要があるが、それはど
Port 番号の割り当てについて
Port 番号の割り当てについて
•
•
•
•
Port 番号の一意性はIANAで保証される
番
意性
保証される
1~1023:
1
1023:
IANA well known port
IANA well known port
1024~49151:
IANA 登録済み port
49152~65535:
IANA動的 or Private
1023
49151
5000
512
32768
IANA
BSD
Solaris
TCP/IP参照モデル(参考1)
第5層
インタフェース
第4層
アプリケーション・プロトコル
トランスポート・プロトコル
第5層
アプリケーション層
ア
リケ ション層
第4層
トランスポート層
第3層
第3層
第3層
第3層
ネットワーク層
第2層
第2層
第2層
第2層
データリンク層
デ
タリンク層
第1層
第1層
第1層
第1層
物理層
ホストA
ルータ
ルータ
ホストB
情報の流れ(参考2)
第5層プロトコル
M 5
H4
4
H3
3
H4
第4層プロトコル
M
M M1
M H3
M2 2
第3層プロトコル
H4
M
M H3
H4
M1
H3
H4
M1 T2
H3
M2 2
H3
M2 第2層
プロトコル
2
H2
H3
H4
M1 T2
H2
H3
M2 T2
H2
H2
1
送信元コンピュータ
宛先コンピュータ
T2