コンピュータ科学 III 担当 : 武田敦志 <takeda@cs.tohoku-gakuin.ac.jp> http://takeda.cs.tohoku-gakuin.ac.jp/
IP ネットワーク (1) コンピュータ間の通信 to : x Data to : x y Data to : y z Data 宛先 B のパケットは z に渡す A 宛先 B のパケットは y に渡す ルーティング情報 p x q y z to : B z Data to : B Data B r page 2
TCP/IP - ポート番号 (1) IP の問題点 パケットとアプリケーションとの関係は考慮されていない to : x Data to : y Data to : z Data A x y p q z 対応するアプリケーションは? to : B Data B to : B Data-1 r page 3
TCP/IP - ポート番号 (2) TCP パケット 32bit 32bit version ヘッダ長パケット長 送信元ポート番号 送信先ポート番号 識別子 生存時間プロトコル フラグ チェックサム シーケンス番号 確認応答番号 送信元 IPアドレス宛先 IPアドレスオプション チェックサムパケット長 オプション ウィンドウサイズ 緊急ポインタ データ IP パケット データ TCP パケット page 4
TCP/IP - ポート番号 (3) ポート番号の利用 ポート番号で通信先のアプリケーションを決定する Applicaion HTTP Applicaion SMTP SSH TCP Internet 層 Network Inteface 層物理層 port:80 port:25 port:22 TCP Internet 層 Network Interface 層物理層 page 5
TCP/IP - 再送制御 (1) IPの問題点損失データの回復 ( 再送制御 ) を行わない to : x Data-1 to : y Data-1 to : z Data-1 A x y to : r Data-2 p q to : z Data-2 パケットを処理出来ず A からのデータをロスト to : B to : B To Data-1 : B Data-2 z B to : B Data-2 C r page 6
TCP/IP - 再送制御 (2) TCP パケット 32bit 32bit version ヘッダ長パケット長 送信元ポート番号 送信先ポート番号 識別子 生存時間プロトコル フラグ チェックサム シーケンス番号 確認応答番号 送信元 IPアドレス宛先 IPアドレスオプション チェックサムパケット長 オプション ウィンドウサイズ 緊急ポインタ データ IP パケット データ TCP パケット page 7
TCP/IP - 再送制御 (3) TCP 通信 データを 確実に 送受信するためのプロトコルを使う A 通信開始処理 データの送受信 通信終了処理 B page 8
TCP/IP - 再送制御 (4) TCP 通信 ( コネクションの確立 ) 通信するための準備を行う A SYN ( 接続要求 ) ACK ( 確認応答 ) + SYN ACK 通信開始 B page 9
TCP/IP - 再送制御 (5) TCP 通信 ( データ通信 ) A 1~1000 のデータを送信 ACK (1000 まで受信確認 ) 1001~2000 のデータを送信 B パケット喪失 1001~2000 のデータを送信 ACK (2000 まで受信確認 ) page 10
TCP/IP - 再送制御 (6) TCP 通信 ( コネクションの切断 ) 通信が終了したことを通知する A 通信終了 B FIN ( 切断要求 ) ACK ( 切断応答 ) + FIN ACK page 11
インターネットと IP アドレス (1) インターネット通信 IPアドレスによって送信元 送信先を決定 IPアドレスは32bit 整数値ルーティングテーブルを使ったパケット中継送信先のIPアドレスによって転送先を決定 インターネットでデータを送受信するためには送信先の IP アドレスを知る必要がある IP アドレスは人にやさしくない ( 覚えにくい ) page 12
インターネットと IP アドレス (2) 送信先の指定 送信先の指定 (HTTP Request の送信先 ) IP アドレス (32bit 整数値 ) ではない 通信時には IP アドレスが必要 どのようにして通信しているのか? page 13
名前解決 (1) DNS(Domain Name System) ホスト名とIPアドレスの関係を管理するシステムホスト名 www.tohoku-gakuin.ac.jp www.yahoo.co.jp www.google.com IP アドレス ( 文字列表現 ) ホスト名の方が記憶しやすい 157.118.7.21 124.83.147.204 66.249.89.104 page 14
名前解決 (2) 名前解決 ホスト名から IP アドレスを調べる Web ブラウザなどは この操作を自動で行っている % 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 アドレス page 15
名前解決 (3) http://www.tohoku-gakuin.jp/ http://157.118.7.21/ 同じ Web サーバからデータを取得 page 16
名前解決 (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 smtp IN CNAME harp 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 Address: 219.111.6.194 page 17
名前解決 (5) 名前解決の手続き www.tohoku-gakuin.jp の IP アドレスを調べる (2) <ROOT> (1) DNS サーバ (4) (3).jp.ac.jp.com.tohoku-gakuin.jp.takedarts.jp www = 157.118.7.21 www = 219.111.6.194 page 18
名前解決 (6) 名前解決のための設定 使用する DNS サーバを設定 名前解決が可能になる page 19
HTTP(1) Hyper Text Transfer Protocol Web ページのデータを取得するためのプロトコル page 20
HTTP(2) HTTP の仕組み クライアント (Web ブラウザ ) サーバ (Web サーバ ) Internet index.html 取得 title.jpg 組み合わせて表示する sound.mp3 page 21
HTTP(3) HTTPの通信手順基本は 1 要求 -1 応答 のプロトコル例 :http://takeda-lab.jp/index.html Internet takeda-lab.jp GET /index.html HTTP/1.1 index.html GET /title.jpg HTTP/1.1 title.jpg page 22
HTTP(4) Web ページのデータ Hyper Text Markup Language (HTML) で記述する page 23