コンピュータ科学III
担当:武田敦志 <[email protected]> http://takeda.cs.tohoku-gakuin.ac.jp/
IPネットワーク(1)
コンピュータ間の通信 To : B Data to : x To : B Data to : x to : y To : B Data to : y to : z To : B Data to : z to : B To : B Data to : B A B x y z p q 宛先Bのパケットは y に渡す 宛先Bのパケットは z に渡す ルーティング情報TCP/IP - ポート番号(1)
IPの問題点 To : B Data to : x A x y To : B Data to : z To : B Data to : y p q r z To : B Data to : B B To : B Data-1 to : B 対応する アプリケーションは? パケットとアプリケーションとの関係は考慮されていないTCP/IP - ポート番号(2)
TCPパケット version ヘッダ長 パケット長 識別子 フラグ 生存時間 プロトコル チェックサム 送信元IPアドレス 宛先IPアドレス オプション データ 32bit オプション 送信元ポート番号 送信先ポート番号 シーケンス番号 確認応答番号 ウィンドウサイズ 緊急ポインタ パケット長 チェックサム オプション データ 32bitTCP/IP - ポート番号(3)
Applicaion TCP Internet層 物理層 Network Inteface層 Applicaion TCP Internet層 物理層 Network Interface層 HTTP SMTP SSH port :8 0 port :2 5 port :2 2 ポート番号の利用 ポート番号で通信先のアプリケーションを決定するTCP/IP - 再送制御(1)
IPの問題点 パケットを処理出来ず Aからのデータをロスト To : B Data-1 to : x A x y To : B Data-1 to : z To : B Data-1 to : y p q To : B Data-2 to : z z To : B Data-1 to : B To : B Data-2 to : B To : B Data-2 to : r B To : B Data-2 to : B 損失データの回復(再送制御)を行わないTCP/IP - 再送制御(2)
TCPパケット version ヘッダ長 パケット長 識別子 フラグ 生存時間 プロトコル チェックサム 送信元IPアドレス 宛先IPアドレス オプション データ 32bit オプション 送信元ポート番号 送信先ポート番号 シーケンス番号 確認応答番号 ウィンドウサイズ 緊急ポインタ パケット長 チェックサム オプション データ 32bit IPパケット TCPパケットTCP/IP - 再送制御(3)
TCP通信 通信開始処理 データの送受信 通信終了処理 データを『確実に』送受信するためのプロトコルを使う A BTCP/IP - 再送制御(4)
TCP通信(コネクションの確立) SYN (接続要求) ACK (確認応答) + SYN ACK 通信開始 通信するための準備を行う A BTCP/IP - 再送制御(5)
TCP通信(データ通信) 1~1000のデータを送信 ACK (1000まで受信確認) 1001~2000のデータを送信 パケット喪失 1001~2000のデータを送信 A BTCP/IP - 再送制御(6)
TCP通信(コネクションの切断) FIN (切断要求) ACK (切断応答) + FIN ACK 通信終了 通信が終了したことを通知する A BインターネットとIPアドレス(1)
インターネット通信 IPアドレスは32bit整数値 IPアドレスによって送信元・送信先を決定 ルーティングテーブルを使ったパケット中継 送信先のIPアドレスによって転送先を決定インターネットでデータを送受信するためには
送信先の
IPアドレスを知る必要がある
インターネットとIPアドレス(2)
送信先の指定 送信先の指定(HTTP Requestの送信先) ・IPアドレス(32bit整数値)ではない ・通信時にはIPアドレスが必要 ⇒ どのようにして通信しているのか?名前解決(1)
DNS(Domain Name System)
ホスト名とIPアドレスの関係を管理するシステム ホスト名 IPアドレス(文字列表現) www.yahoo.co.jp www.tohoku-gakuin.ac.jp www.google.com 124.83.147.204 157.118.7.21 ホスト名の方が 記憶しやすい
名前解決(2)
% nslookup www.tohoku-gakuin.jp Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: Name: www.tohoku-gakuin.jp Address: 157.118.7.21 名前解決 ホスト名からIPアドレスを調べる ホスト名 IPアドレス Webブラウザなどは、この操作を自動で行っている名前解決(3)
http://www.tohoku-gakuin.jp/
http://157.118.7.21/
名前解決(4)
$TTL 43200
takedarts.jp. IN SOA ns.takedarts.jp. atushi.takedarts.jp. ( 20100707 ; serial 10800 ; reflesh (3h) 1800 ; retry (30min) 1209600 ; expire (2w) 43200 ) ; min (12h) IN NS ns.takedarts.jp. IN MX 10 smtp.takedarts.jp. IN A 219.111.6.194 $origin takedarts.jp. ns IN A 219.111.6.194 harp IN A 219.111.6.194 www IN CNAME harp smtp IN CNAME harp 名前解決のためのデータベース % nslookup www.takedarts.jp Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: www.takedarts.jp
canonical name = harp.takedarts.jp. Name: harp.takedarts.jp
名前解決(5)
名前解決の手続き <ROOT> .jp .ac.jp .com .tohoku-gakuin.jp .takedarts.jp www = 157.118.7.21 www = 219.111.6.194 DNSサーバ www.tohoku-gakuin.jp のIPアドレスを調べる (1) (2) (3) (4)名前解決(6)
名前解決のための設定
使用するDNSサーバを設定 ⇒ 名前解決が可能になる
HTTP(1)
Hyper Text Transfer Protocol
HTTP(2)
HTTPの仕組み クライアント (Webブラウザ) サーバ (Webサーバ) Internet index.html title.jpg sound.mp3 取得 組み合わせて表示するHTTP(3)
Internet HTTPの通信手順 基本は「1要求-1応答」のプロトコル index.html GET /index.html HTTP/1.1 例:http://takeda-lab.jp/index.html takeda-lab.jp GET /title.jpg HTTP/1.1HTTP(4)
Webページのデータ