© Hisato Shima (shima@kic.ac.jp) 2016/6/29
インターネットの構造
全てはルータがつなぐセグメント (ネットワーク)
ルータ経由で全ホスト間が通信可能
host
host
host
host
router
host
router
router
host
router
host
host
host
(ネットワーク)セグメント
(ネットワーク)
セグメント
(ネットワーク)
セグメント
(ネットワーク)
セグメント
© Hisato Shima (shima@kic.ac.jp)
宅配便のネットワーク
営業所、コンビニ=
ルーター (Router):
Route(経路)を決める人
最終目的地をもとに、次の目的地を決め、荷物の積み替えをする
トラック、飛行機=
リンク
次の目的に荷物を届ける
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2host
host
host
host
router
host
router
router
host
router
host
host
host
(ネットワーク)セグメント
(ネットワーク)
セグメント
(ネットワーク)
セグメント
(ネットワーク)
セグメント
コンビニ
営業所
空港
ネットワークセグメント
:
1つのリンクがカバーする範囲
4
© Hisato Shima (shima@kic.ac.jp)
インターネットプロトコル
リンク層:ネットワークセグメント内の通信
MACアドレスを使う
ネットワーク層:グローバルな通信
グローバルなアドレス(IPアドレス)を使う
ルーターが複数のネットワークセグメントをつなげ、目的地まで届ける
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2host
host
host
host
router
host
router
router
host
router
host
host
host
(ネットワーク)セグメント
(ネットワーク)
セグメント
(ネットワーク)
セグメント
(ネットワーク)
セグメント
router
やってくれること
指定したホストにIP
パケット(Max 1500
byte)を届ける
6
インターネットの中のリンク層
ネットワークセグメント内の通信
host
host
host
host
router
host
router
router
host
router
host
host
host
(ネットワーク)セグメント
(ネットワーク)
セグメント
(ネットワーク)
セグメント
(ネットワーク)
セグメント
© Hisato Shima (shima@kic.ac.jp)
リンク層=つなげる手段
LAN(Local Area Network)
オフィスの中、家の中のリンク
有線
Ethernet
IEEE802.3
無線
WirelessLAN(WLAN)
IEEE802.11
Wifi
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2 ハブ アクセスポイント8
リンク層フレーム
リンク層におけるデータ表現
リンク層のパケットを「フレーム」と呼ぶ
フレームの構成
フレームはヘッダとペイロードから構成
ヘッダに制御情報、ペイロードに上位層データ
制御情報としてレイヤ2アドレスなど
All 1ならブロー
ペイロードにIPパケットが格納される
ペイロード
(46~1500バイト)
タイプ
宛先
アドレス
送信元
アドレス
エラー
検出
イーサネットフレーム
(DIX規格)
ヘッダ
© Hisato Shima (shima@kic.ac.jp)
リンク層アドレス
MACアドレス
リンク層にて機器(インターフェイス)を区別するアドレス
16進数12桁
例: 00-22-FA-AB-30-90
EUI-48
EthernetのMACアドレス体系、IEEEが規定、48ビット長
世界中で一意なアドレス (224 = 約1677万)
IEEE OUI and Company_id Assignments
http://standards.ieee.org/regauth/oui/index.shtml
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2
OUI
(Organizationally Unique Identifier)
24bit
IEEEがネットワーク機器のメーカーに 割り当てる部分機器毎のID
(各メーカーが割り付け)
24bit
各メーカーがネットワーク機器に割り当てる部分10
インターネットプロトコル(ネットワーク層)
グローバルな通信
グローバルなアドレス(IPアドレス)を使う
ルーターを介して複数のネットワークセグメントをつなげる
host
host
host
host
router
host
router
router
host
router
host
host
host
(ネットワーク)セグメント
(ネットワーク)
セグメント
(ネットワーク)
セグメント
(ネットワーク)
セグメント
© Hisato Shima (shima@kic.ac.jp)
IPアドレスとは
IPネットワークでのホスト(ネットワークインターフェース)識別
子
インターネット全体で一意なもの (=グローバルアドレス)
アドレスの構造: IPv4は32ビット長
8ビット毎に区切って表記 (0.0.0.0 ~ 255.255.255.255)
数字ひとつが8ビット x 4個
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2172 . 16 . 254 . 3
10101100.00010000.11111110.00000011
1バイト = 8ビット
32ビット (4バイト)
12
ネットワーク部とホスト部
IPアドレスを前後に分割して利用
前半がネットワーク部
ネットワーク毎に割り当てられるアドレス (組織毎など)
後半がホスト部
ネットワーク内のホストに割り当てられるアドレス
ネットマスク表現
ネットワーク部とホスト部の境目を表現
先頭からのビット長
172 . 16
.
254
. 3 /24
10101100.00010000
.
11111110
.00000011
ネットワーク部
ホスト部
172.16.254.0というネットワーク内で
使える172.16.254.1~172.16.254.255
というアドレス
ネットマスクとして24ビットを指定
先頭から24ビットがネットワーク部
© Hisato Shima (shima@kic.ac.jp)
同一ネット内の機器への通信
172.16.254.3/24から172.16.254.131/24にIPパケットを送る
自分のネットワーク部のアドレス(172.16.254.*)が相手先のIPアドレスと一
致 ⇒ 同じネットワークセグメントの中にある
相手の機器(172.16.254.131)に直接送る
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2ルーター
172.16.254
.1
172.16.254
.3
172.16.254
.131
172.16.255
.3
172.16.255
.5
ルーター
172.16.252
.5
172.16.252
.3
宛先
差出人
14
異なるネットワークの機器への通信2
172.16.254.3から172.16.252.3にIPパケットを送る
自分のネットワーク部のアドレス(172.16.252.*)が相手先のIP
アドレスと異なる
デフォールトゲートウェイ(172.16.254.1)にパケットを送る
ルーター
172.16.254
.1
172.16.254
.3
172.16.254
.131
172.16.255
.3
ルーター
172.16.252
.5
172.16.252
.3
宛先
差出人
ルーター
172.16.252
.2
ルーター
172.16.255
.1
© Hisato Shima (shima@kic.ac.jp)
経路表(ルーティングテーブル)
宛先: 172.16.254.11 宛先ネットワーク 次ホップルータアドレス 0.0.0.0/0 172.16.252.1 172.16.254.0/24 172.16.252.5 172.16.255.0/24 172.16.252.1ルータ: 172.16.252.5
宛先: 172.16.255.3ルータ: 172.16.252.1
宛先: 7.7.7.7ルータ: 172.16.252.1
172.16.254.0/24に一致 172.16.255.0/24に一致 デフォルトルートパケット送信元
172.16.254.0/24
172.16.255.0/24
172.16.252.5 172.16.252.1R
R
デフォルトルート 宛先ネットワークに該当が無い場 合に選択される経路 (外部ネットワークへの接続経路) デフォルトルートとなるルータをデ フォルトゲートウェイと呼ぶ 2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2インターネット
R
172.16.252.316
ARP
ARP(Address Resolution Protocol) とは
「アドレス解決プロトコル」
IPアドレスに対応するMACアドレスを調査する
ノードA
ノードB
①Ethernetに広報ノードC
送信元 MACアドレス(A) IPアドレス(A) 送信先 MACアドレス(空) IPアドレス(B) ② 自IPアドレスでないので無視 ② 自IPアドレス宛を 検知して返信 送信元 MACアドレス(B) IPアドレス(B) 送信先 MACアドレス(A) IPアドレス(A)© Hisato Shima (shima@kic.ac.jp)
インターネットプロトコル
リンク層:ネットワークセグメント内の通信
MACアドレスを使う
ネットワーク層:グローバルな通信
グローバルなアドレス(IPアドレス)を使う
ルーターが複数のネットワークセグメントをつなげ、目的地まで届ける
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2host
host
host
host
router
host
router
router
host
router
host
host
host
(ネットワーク)セグメント
(ネットワーク)
セグメント
(ネットワーク)
セグメント
(ネットワーク)
セグメント
router
やってくれること
指定したホストにIP
パケット(Max 1500
byte)を届ける
18
© Hisato Shima (shima@kic.ac.jp)
インターネット層がやってくれないこと
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2本棚の中の本を全部
室蘭支店の資料室に
送りたい
ネットワーク層(宅配業者)
箱を指定の住所に届ける
室蘭
支店
神戸
支店
20
インターネット層がやってくれないこと
本棚の中の本を全部
室蘭支店の資料室に
送りたい
トランスポート層(秘書)
確認
確認
トランスポート層(秘書)
室蘭
支店
神戸
支店
ネットワーク層(宅配業者)
箱を指定の住所に届ける
本を箱に詰める
うまくつかなかった場合は再送
正しい順に戻して箱から出す
受け取りの確認を送る
© Hisato Shima (shima@kic.ac.jp)
インターネット層がやってくれないこと
インターネット層がやってくれること
エンドホスト間でのIPパケット(Max 1500 byte)の伝送
インターネット層がやってくれないこと
宛先アプリケーション間の識別
IPパケットの伝達エラー(不達)の検出と再送
大きなデータの分割、復元
IPパケットの到着順入れ替わりの検出と復元
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2必要に応じて
トランスポート
層で行う
22
本を室蘭支店に送りたい
本棚の中から1つ
の箱に入る分を
取り出す
IPパケット
宛先:室蘭市本町1-2
差出人:神戸市加納町2-3
…
…
…
宛先:資料室
番号:10~13
TCPパケット
© Hisato Shima (shima@kic.ac.jp)
主要トランスポート層プロトコル
高い制御性を持つTCP
信頼性のある通信セッションを提供
セッション間で混雑を回避するように自動調整
何もしないUDP
シンプルなUDP
制御を必要としない軽量な通信を提供
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#224
UDPとTCPの再送制御
TCPとUDPのパケット喪失への対応
送信側
受信側
データ
データ
データ
エラー
データ
データ
送信側
受信側
データ
データ
データ
エラー
データ
TCP
UDP
データが
届かない
ことがある
データの
遅れが
大きい
© Hisato Shima (shima@kic.ac.jp) 2016/6/29
host Y
host X
ポートA
ポートB
ポートC
トランスポート層のアドレス(宛先)
通信ホスト内のアドレス
TCP/UDPポート番号
ポート番号が通信回線を意味
16ビット、0~65535の番号
有名なアプリケーションはあらかじめ割り当て
例: HTTP通信はTCP80番
IANAが設定:
http://www.iana.org/assignments/port-numbers
アプリ
アプリ
アプリ
ポートX
ポートY
ポートZ
アプリ
アプリ
アプリ
IPアドレス X
© Hisato Shima (shima@kic.ac.jp)
ポート番号の例
WWWシステム
TCPポート80番を用いる
サーバがTCP80番で通信を受付け
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2ブラウザ
(
Webクライアント)
Webサーバ
TCP
80
Webサーバ
プログラム
Webクライアント
プログラム
TCP
XX
TCP接続
このTCP回線を用いて、要求送信や
データ受信を処理http://www.example.com:
11111
/
ポート番号を明示的に指 定する例: TCP11111を利用28
ポート番号
TCP/UDPのポート番号
0~1023はwell knownポートとして設定
1024~49151は予約済み、ユーザー用
49152~65535はプライベート
用途推奨されているのがwell knownポート
TCP 80はHTTPに利用することが推奨
UDP53, TCP53はDNSに利用することが推奨
一般的に広く利用されているポート番号
© Hisato Shima (shima@kic.ac.jp)
well knownポート番号の例
ポート番号
説明
0/TCP,UDP
予約済
20/TCP
FTP - データ転送ポート
21/TCP
FTP - コントロールポート
22/TCP,UDP
Secure Shell (SSH)
23/TCP
Telnet
25/TCP,UDP
Simple Mail Transfer Protocol (SMTP)
53/TCP,UDP
Domain Name System (DNS)
67/UDP
Dynamic Host Configuration Protocol (DHCP)
68/UDP
Dynamic Host Configuration Protocol (DHCP)
80/TCP,UDP
Hypertext Transfer Protocol (HTTP)
110/TCP
Post Office Protocol 3 (POP3)
123/UDP
Network Time Protocol (NTP)
143/TCP,UDP
Internet Message Access Protocol (IMAP)
443/TCP,UDP
Hypertext Transfer Protocol over TLS/SSL (HTTPS)
2016/6/29
© Hisato Shima (shima@kic.ac.jp)
クライアントとサーバー
クライアント:接続要求を送る
サーバー:接続要求を待っている側
通信の流れ
コネクションの確立
Clientからサーバーに
データの通信
双方向でデータのやり取り
コネクションの切断
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2client
server
接続したい
接続要求
通信
切断要求
32
本を室蘭支店に送りたい
本棚の中から1つ
の箱に入る分を
取り出す
IPパケット
宛先:室蘭市本町1-2
差出人:神戸市加納町2-3
…
…
…
宛先:資料室
番号:10~13
TCPパケット
© Hisato Shima (shima@kic.ac.jp) … … …
TCPデータの送り方
IP
ヘッダ
IPペイロード
ペイロードにIPパケットが格納される
ペイロード
(46~1500バイト)
タイプ
宛先
アドレス
送信元
アドレス
エラー
検出
イーサネットフレーム(DIX規格)
ヘッダ
IPパケット
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2TCP
ヘッダ
TCPデータ
TCPパケット
35
TCPヘッダ
Source Port: 送信ポート番号
Destination Port: 受信ポート番号
SEQ: シーケンス番号
ACK: 応答確認番号
FLAG: フラグコード
URG(1ビット)– 緊急ポインタ・フィールドが有効 ACK(1ビット)– 確認応答番号フィールドが有効 PSH(1ビット)– プッシュ機能 RST(1ビット)– コネクションを強制終了する SYN(1ビット)– 通信開始 FIN(1ビット)– 送信終了
HLEN: ヘッダ長
Reserved: 将来のための拡張用
WINDOW: 同時送信セグメント数
CHECKSUM: エラーチェック用
Urgent Pointer: 緊急処理データの場所
Option: 拡張情報のため
HLEN Reserved
FLAG
TCP Destination Port
SEQ
CHECKSUM
Urgent Pointer
ACK
WINDOW
TCP Source Port
Option
1
5
13
17
32
TCPデータ
ヘッダ© Hisato Shima (shima@kic.ac.jp)
TCPデータ送信
TCPのデータ送信
データを送信する
TCPデータ受信ホストがACK (Acknowledge):
確認応答
メッセージを送る
TCPデータ送信ホストACKを受信する
しばらく待って受信しなければデータが届かなかったとみなし、データ再送
ACK受信までの時間をRTT (Round Trip Time)と呼ぶ
DATA
ACK
(DATA)
RTT
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2受信側からも送りたいデー
タがあるときはACKとまと
めてデータを送ってもよい。
TCPデータ送信
ACKの返信
アプリケーション アプリケーションデータ送信側
データ受信側
データ送信側
データ受信側
37
© Hisato Shima (shima@kic.ac.jp)
TCPのセッション確立(接続)
3-Way Handshake
SYN: 接続要求の送信
SYN/ACK: 確認と要求の送信
ACK: 確認の送信
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2SYN
SYN/ACK
ACK
client
server
接続したい
接続OK 接続39
TCPのセッション切断
「FIN」の送信
「Finish」の意味
FINで切断要求、
ACK受信で切断
双方向で切断
FIN
ACK
FIN
ACK
切断したい切断
切断したい 切断Client/Server
Client/Server
© Hisato Shima (shima@kic.ac.jp)
SYN FLOOD攻撃(DoS攻撃の1つ)
サーバーはSYNを受け取ると、
SYN/ACKを返すとともに、そのク
ライアントの通信のためのメモリな
どを確保し、クライアントからの
ACKを待ち続ける。
ACKが来ずにSYNばかり受信する
と、サーバーはメモリを使い果たし
動かなくなってしまう。
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2攻撃Client
被害server
SYN
(差出IPアドレス偽装)SYN/ACK
ACK待ちSYN
(差出IPアドレス偽装)SYN/ACK
ACK待ち
SYN
(差出IPアドレス偽装)SYN/ACK
ACK待ちSYN
(差出IPアドレス偽装)SYN/ACK
ACK待ち41
© Hisato Shima (shima@kic.ac.jp)
TCPデータ送受信
ACK返信
ACK (Acknowledge):
確認応答
メッセージ
TCP受信ホストがパケット受信を報告
ひとつのパケット受信につきひとつのACK返信
TCP制御のための手段として用いられる
TCPデータ送信
ACKの返信
アプリケーション アプリケーション 2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#243
TCP再送制御
TCPの再送制御
ACKを利用する
ACKを受信できないと再送
RTT: Round Trip Time,
往復時間の意味
DATA
ACK
RTT
© Hisato Shima (shima@kic.ac.jp)
TCPのデータ送信と再送制御(1)
TCPのデータ送信
送りたいデータを分割して
IPパケットに入れて送信
一つのIPパケットには約
1500バイトしか入らない
ACKで受信を確認
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2A
B
C
D
DATA
ACK
データ送信側
データ受信側
DATA
ACK
DATA
ACK
A
B
C
送りたいデータ
45
TCPのデータ送信と再送制御(2)
TCPの再送制御
しばらく待って、ACKを
受信できないと再送
ACKの通信エラーの時
は同じデータが2つ届く
ことがある
A
B
C
D
送りたいデータ
DATA
ACK
データ送信側
データ受信側
DATA
A
B
DATA
B
ACK
DATA
B
DATA
B
ACK
ACK
© Hisato Shima (shima@kic.ac.jp) 2016/6/29
TCPデータ送信量の自動調整
TCPにおけるデータ送信量の自動調整
ウィンドウサイズ(=ACKを確認せず送れるパケット数)の調整
相手のバッファに余裕があり、途中のネットワークが空いている場合はウィンド
ウサイズを上げる
相手のバッファに余裕がなかったり、通信が輻輳している場合はウィンドウサイ
ズを下げる
輻輳: 通信リンクが混雑していること
DATA
ACK
DATA
ACK
DATA
ACK
DATA
ACK
ウィンドウサイズ 小
ウィンドウサイズ 中
ウィンドウサイズ 大
© Hisato Shima (shima@kic.ac.jp)
流量制御
受信側の機器が処理しきれない多量のデータを送ると、受
信側の機器がデータを取りこぼす。
ACKを待たずにどのくらいのデータを送ってよいかを受信側
から送信側に知らせる⇒HeaderのなかのWINDOWフィー
ルド
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2HLEN Reserved
FLAG
TCP Destination Port
SEQ
CHECKSUM
Urgent Pointer
ACK
WINDOW
TCP Source Port
Option
1
5
13
17
32
TCPデータ
ヘッダ49
輻輳制御とは
受信側の機器が処理できるからと言ってどんどんデータを送
ると、途中のネットワークが混雑(輻輳)してエラーが起きる
送信側の機器が送信を減らさないと混雑で通信できない
host
host
host
host
router
host
router
host
host
混雑
© Hisato Shima (shima@kic.ac.jp)
送信時のウィンドウサイズの調整
ACKが返ってくる⇒送信パケットは送信先に届いている
ホスト間の経路上の帯域には余裕がある
そこで、ウィンドウサイズを増加(受信側から指定された上限まで)
ACKが返ってこない⇒送信パケットは送信先に届いていない(輻輳発生)
経路上の帯域には余裕がない(だろうと推測)
ウィンドウサイズを減少させる
ウィンドウサイズは結果的に途中の回線利用可能帯域に合わせて調節される
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2DATA
ACK
スループットTの計算:
T [bps] = RWIN [bytes] /RTT [ms] * 8 * 1000
RWIN: ウィンドウサイズ
RTT: ラウンドトリップタイム
RTT
RWIN
51
© Hisato Shima (shima@kic.ac.jp)
IPv4アドレスの枯渇とプライベートアドレス
IPv4アドレスの枯渇
全ての機器に割り当てるだけのアドレスはない
グローバルアドレス
インターネット内で一意のアドレス=ICANNから割り当て
Webサーバなど外部からアクセスが必要な場合に使用
プライベートアドレス
隔離ネットワーク内のみで利用可能なアドレス
=ICANNから割り当ててもらわなくても使ってもよいアドレス
10.0.0.0/8 クラスA
10.0.0.0-10.255.255.255, 16,777,216個のアドレス
172.16.0.0/16~ 172.31.0.0/16 クラスB*16個
172.16.0.0-172.31.255.255, 1,048,576個
192.168.0.0/24~192.168.255.0/24 クラスC*255個
192.168.0.0-192.168.255.255, 65,536個
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#253
NAT(Network Address Translation)
NATとは
Network Address Translation
ネットワークアドレス変換装置
という意味
例: 家庭用ホームルータなど
NATの機能
プライベートアドレスをグロー
バルアドレスに変換
企業内LANや家庭内LANとイ
ンターネットをつなげる
プライベートネットワーク
インターネット
プライベートアドレ
スは使えない
ホスト
192.168.0.11:Xホスト
163.221.52.80:80NAT
ルータ
114.48.7.249プライベート
アドレスの
ネットワーク
192.168.0.1© Hisato Shima (shima@kic.ac.jp)
NAT:IPアドレスとポート番号の変換
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2 プライベートネットワーク
インターネット
送信元 192.168.0.11:X 送信先 163.221.52.80:80ホスト
192.168.0.11:Xホスト
163.221.52.80:80NAT
ルータ
送信元 114.48.7.249:Y 送信先 163.221.52.80:80 114.48.7.249 送信元 163.221.52.80:80 送信先 192.168.0.11:X 送信元 163.221.52.80:80 送信先 114.48.7.249:Y 192.168.0.11:X <-> 114.48.7.249:Y① 通信送信
② 返信受信
55
© Hisato Shima (shima@kic.ac.jp)
World Wide Web
WWW
HyperText共有基盤
文書間のリンク構造
ホームページ
自由に作成・安価
世界中に公開
多彩な表現力
双方向性
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2 神戸情報大学院大学 WWWページ http://www.kic.ac.jp/57
WWWイメージ
WWW構成要素
URI(URL): Webページの場所を記す記法
HTTP: Webページを転送する通信手順
HTML: Webページを記述する言語
インターネット
③ index.htmlファイルの送信
ブラウザ (Webクライアント)Webサーバ
shima.kic.ac.jp
GET /index.html HTTP/1.1
http://shima.kic.ac.jp/index.html
<HTML> <TITLE>Shima-lab</TITLE> <BODY> <H1> Name </H1> <P>Hisato Shima</P> <H2> Introduction </H2> <P> Hello! I am a professor at <A HREF="http://www.kic.ac.jp/"> KIC</A>. </P> </BODY> </HTML>① HTTPリクエスト: index.htmlファイルを送れ
② index.htmlファイルの取出
④ index.htmlファイルの表示
⓪ shima.kic.ac.jpのIPアドレスを調べる
URL
© Hisato Shima (shima@kic.ac.jp)
Web Pageへのアクセス
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2キーワード
検索サービス
URL
ショートカット
お気に入り
他のページか
らのリンク
IPアドレス
DNS
59
URI (Uniform Resource Identifier)
HTML文書などの場所を表す表記法
URL(Uniform Resource Locator)とも呼ばれる
Uniform(一定の形の) Resource (資源、供給源) Locator(場所を示すもの)
Webページを表現する場合はURL
その他一般的な表現がURI (Uniform Resource Identifier)
アクセス手段 + 資源場所
RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
http://study.kic.ac.jp/moodle/jp/log
アクセス手段 スキーム部資源場所
リソース部 ホスト名 パス名© Hisato Shima (shima@kic.ac.jp)
ホスト名とIPアドレス
ホスト名はIPアドレスに変換しないと通信できない
2つ以上のホスト名が同じIPアドレスを持つこともある。
(1つサーバーが2つのホスト名を持っている)
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2study.kic.ac.jp
210.146.64.133
www.kic.ac.jp
153.127.229.226
kic.ac.jp
shima.kic.ac.jp
61
© Hisato Shima (shima@kic.ac.jp)
名前の問い合わせ機構(DNS)
DNSへ「名前」を問い合わせする
DNSは名前管理データベース
ホスト名やドメイン名が「名前」
DNSの機能
ホスト名とそのIPアドレスを登録、管理する
世界中の多くのコンピューターからの問い合わせに答える
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2DNS
ホスト名
ホスト名と
IPアドレスの組
DNSへ問い合わせ
DNSへ登録
IPアドレス
63
DNS問い合わせ
「名前解決」には他のDNSと協調動作
クライアントは指定のネームサーバへ問い合わせ(ローカルネーム
サーバ、キャッシュネームサーバ)
キャッシュネームサーバは他のDNSへ問い合わせ
DNSキャッシュ
サーバー
DNSコンテンツ
サーバー
ホスト名
IPアドレス
DNSへの
問い合わせ
DNSクライアント
ホスト名と
IPアドレスの組
ホスト名と
IPアドレスの組
ホスト名と
IPアドレスの組
DNSへの
登録
© Hisato Shima (shima@kic.ac.jp) 2016/6/29
WWWイメージ
WWW構成要素
URI(URL): Webページの場所を記す記法
HTTP: Webページを転送する通信手順
HTML: Webページを記述する言語
インターネット
③ index.htmlファイルの送信
ブラウザ (Webクライアント)Webサーバ
shima.kic.ac.jp
GET /index.html HTTP/1.1
http://shima.kic.ac.jp/index.html
<HTML> <TITLE>Shima-lab</TITLE> <BODY> <H1> Name </H1> <P>Hisato Shima</P> <H2> Introduction </H2> <P> Hello! I am a professor at <A HREF="http://www.kic.ac.jp/"> KIC</A>. </P> </BODY> </HTML>① HTTPリクエスト: index.htmlファイルを送れ
② index.htmlファイルの取出
④ index.htmlファイルの表示
⓪ shima.kic.ac.jpのIPアドレスを調べる
URL
© Hisato Shima (shima@kic.ac.jp)
HTTP
Webサーバとブラウザ間での通信プロトコル
HyperText Transfer Protocol
HTML文書やその他のファイル伝送に利用
ファイル名を指定して取り出す
TCPを用いた通信 (80番ポートがよく利用される)
通信形態
クライアントサーバ型
リクエストレスポンス型
RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1
2016/6/29
HTTPリクエスト
リクエストメッセージ
クライアントからサーバへデータを要求
「GET」命令とアクセスヘッダ(任意の補助情報)
GET /index.html HTTP/1.1⏎
Host: shima.kic.ac.jp⏎
⏎
http://shima.kic.ac.jp/index.html へアクセスした場合(一番簡単な場合)
リクエストメッセージ
リクエストヘッダ
© Hisato Shima (shima@kic.ac.jp)
HTTPレスポンス
サーバからクライアントへデータを返信
レスポンスヘッダとデータそのもの
レスポンスコード: 200番台成功、400番台失敗
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2HTTP/1.1 200 OK ⏎
Date: Sun, 07 Sep 2014 08:09:16 GMT ⏎
Server: Apache/2.2.22 (Ubuntu) ⏎
Last-Modified: Sun, 10 Nov 2013 12:48:27 GMT ⏎
Content-Length: 1928 ⏎
Content-Type: text/html ⏎
⏎
<!DOCTYPE html > ⏎
⏎
<head> ⏎
<title>嶋 研究室 / Hisato Shima Laboratory</title> ⏎
</head> ⏎
(中略)
</ html > ⏎
レスポンスメッセージ (レスポンスコード)
レスポンスヘッダ
(一部省略)
レスポンスデータ
(一部省略)
69
HTML
HyperText Markup Language
WWWの文書記述記法
タグと呼ばれる命令文
「<」「>」で囲まれた命令文
「<(開始タグ)>」「</(終了タグ)>」
<!DOCTYPE html > <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-style-Type" content="text/css">
<link rel="stylesheet" href="base.css" type="text/css">
<title>嶋 研究室 / Hisato Shima Laboratory</title> </head>
<body> : (中略)
</body>
© Hisato Shima (shima@kic.ac.jp)
今までのものがどう組み合わさって動くのか
2016/6/29
ブラウザでホームページにアクセス
http://shima.kic.ac.jp/index.html
ブラウザ (Webクライアント)
© Hisato Shima (shima@kic.ac.jp)
ホスト名をIPアドレスに変換(DNS)
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2http://shima.kic.ac.jp/index.html
ブラウザ (Webクライアント)DNS
サーバ
ホスト名: shima.kic.ac.jp
IPアドレス:210.146.64.133
ホスト名
73
Webサーバにアクセス:TCP接続
host
host
host
router
host
router
router
host
router
host
host
host
ブラウザ(ポートX) (Webクライアント) …SYN: ポート80
SYN/ACK: ポートX
ACK: ポート80
80番ポート
Webサーバ
210.146.64.133
© Hisato Shima (shima@kic.ac.jp)
Webサーバにアクセス:HTTP
2016/6/29 セキュリティのキャリアを目指すーネットワーク基礎 2016#2host
host
host
router
host
router
router
host
router
host
host
host
ブラウザ(ポートX) (Webクライアント) …GET /index.html HTTP/1.1
HTTP/1.1 200 OK …….
80番ポート
Webサーバ
210.146.64.133
……….
データが大き
い時は分割
75
ブラウザが受け取ったデータを表示
ブラウザ (Webクライアント)
© Hisato Shima (shima@kic.ac.jp) 2016/6/29
IPv6アドレスの構造
(Global Unicast Address)
ネットワーク識別部分は64ビット
固定長の構造(サブネットマスクはない)
ホスト(インターフェース)識別部分は64ビット
インターフェイスIDと呼ばれている
001
(3bit)
グローバルルーティング
プレフィックス
インターフェイスID (64bit)
サブネットID
ネットワーク識別
ホスト(インターフェース)識別
(ISPが割り当てる部分) (組織内での割当)
IPv6
128bit
(合計61bit)IPv4
32bit
ネットワーク部
(多くの場合24bit)
(多くの場合8bit)
ホスト部
© Hisato Shima (shima@kic.ac.jp) 2016/6/29
来週の授業について
ハンズオンで行うため、遠隔講義は行わずに、兵庫県立大
学の教室のみで行うことを検討中です。
その場合、全員来週は兵庫県立大学の教室に来ていただく
© Hisato Shima (shima@kic.ac.jp)