インターネットの通信メカニズム 概要 WEBアプリ研究会 2回目.

Slides:



Advertisements
Similar presentations
TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
Advertisements

1 情報ネットワーク 課題レポート 模範解答 身の回りで、階層化されている物事を 1 つあげて、その階層構造を説明 せよ 課題のポイント – 機能が階層ごとに分割されているか – 同じ層でのやりとり(プロトコル)があるか – 上位層と下位層での情報のやりとり(インタフェース)があるか –
第1章 ネットワークとコミュニケーション 第2節 ネットワークのしくみ 2 ネットワークを支える技術 (教科書 p36 ~ p37) 今日の用語  モデム (modulator/demodulator:modem)  IP アドレス (internet protocol address)  ドメインネーム.
LANどうしを、通信規約として TCP/IP プロトコルで ルータ を経由してつなぎ合わせ、 世界規模で情報のやりとりを可能にしたもの アプリケーション 層 プレゼンテーショ ン層 セッション層 トランスポート層 ネットワーク層 データリンク層 物理層 アプリケーション 層 プレゼンテーショ ン層 セッション層.
Web アプリケーション開発入門 大岩研究会 今野隆平 2002 年 5 月 9 日 Introduction to Web Application Development.
TCP / IP の基礎 ネットワーク管理者入門. インターネットを支える技術 ISO の 7 階層プロトコルと TCP / IP の実装 階層機能関連する TCP / IP プロ トコル アプリケーション層電子メールやファイルの転送 といった、具体的なアプリ ケーションが使用する規約 TELNET.
インターネットのアプリケーション 情報ネットワーク 後藤(2) 教科書:  第8章 アプリケーション プロトコル pp
Step.5 パケットダンプ Wiresharkでパケットをキャプチャする PC 1 PC 2 PC 3 PC 4 ネットワーク
情報基礎A 情報科学研究科 徳山 豪.
インターネットと プロトコル(TCP/IP)
第1回.
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
Webアプリケーションの 通信メカニズム WEBアプリ研究プロジェクト 第2回.
第2章 ネットサービスとその仕組み(前編) [近代科学社刊]
Ibaraki Univ. Dept of Electrical & Electronic Eng.
IPアドレス、IPパケットとはなにか? 情報塾( ) URLとの関係は? コンピュータ同士はどう繋がっているか?
WWW (=World Wide Web)とは
TCP (Transmission Control Protocol)
「コンピュータと情報システム」 07章 インターネットとセキュリティ
インターネット概論 第9回12月11日 Webって、どんなシステム?.
第4回 個人の動画配信補足のためのWeb構築
OpenID 勉強会 (OpenID Authentication1.1)
30分でわかるTCP/IPの基礎 ~インターネットの標準プロトコル~ 所属: 法政大学 情報科学研究科 馬研究室 氏名: 川島友美
情報処理1 1.インターネット利用の基礎.
インターネット メールサーバ DNSサーバ WWWサーバ ファイアウォール/プロキシサーバ クライアント.
第13回 今日の目標 §4.3 情報セキュリティー 情報化社会の特徴を社会的な面から概観する 情報に関わる危険の要因を示す
HTTPプロトコルとJSP (1) データベース論 第3回.
心理学情報処理法Ⅰ コンピュータネットワーク概論.
HTTPプロトコル J2EE I 第7回 /
ネットワーク機器接続 2SK 情報機器工学.
パケットの流れ ブラウザ OS TCP IP LANアダプタ ハブ ルータ HTTPメッセージ TCP HTTP断片 TCP HTTP断片
情報コミュニケーション入門 総合実習(1) 基礎知識のポイント(2)
「コンピュータと情報システム」 06章 通信ネットワーク
第2章 第1節 情報通信の仕組み 1 ネットワークの仕組み 2 通信プロトコル 3 認証と情報の保護
2012年度 春学期 情報基礎 第5回 ネットワーク入門.
第8章 Web技術とセキュリティ   岡本 好未.
インターネット概論第3回 kudo担当分.
情報検索概説II(99秋) 第3回 1999/10/21 インターネットの仕組み(2).
HTTPとHTML 技術領域専攻 3回 中川 晃.
情報コミュニケーション入門b 第10回 Web入門(1)
情報コミュニケーション入門b 第10回 Web入門(1)
Linux リテラシ 2006 第4回 ネットワーク CIS RAT.
TCP/UDP プロセス間の通信のためのプロトコル TCP:信頼性高、処理時間大 UDP:信頼性低、処理時間小 ftp SMTP HTTP
卒業論文発表 「Web アクセスに伴う脅威の特徴分析」
岡村耕二 トランスポート層 ソケットプログラミング 岡村耕二 情報ネットワーク.
ネットワークの基礎知識 電子制御設計製図Ⅰ   2014年5月2日 Ⅲ限目.
インターネットにおける真に プライベートなネットワークの構築
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
第7回JavaScriptゼミ セクション4-5 発表者 直江 宗紀.
TCP/IP入門          櫻井美帆          蟻川朋未          服部力三.
情報の授業 ネットワークの中を見てみよう(3)まとめ LAN Local SMTP Mail Transfer Go.Ota.
情報スキル活用 第1週 基礎技術ー1 : URLとWebページの基本.
情報コミュニケーション入門e 第11回 Part2 Web入門(1)
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Webプロキシ HTTP1.0 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
ネットワークプログラミング (3回目) 05A1302 円田 優輝.
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
ウェッブページ書法の復習 ネットワーク論以前のお話.
最低限インターネット ネットワークにつなぎましょ!
LAN(TCP/IP) インターネットワーキング編
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
情報実験 第五回 最低限 internet ~ネットワークの仕組みを知ろう~
Step.8 ファイアウォール PC 3 PC 1 PC 2 許可したアクセス のみ通過させる アクセスする ファイアウォール
システムプログラミング 第10回 プロセス間通信3 簡易Web server(準備) Chat プログラム 担当:青木義満、篠埜 功
ネットワークプロトコル.
アプリケーションゲートウェイ実験 2001.10.5 鬼塚 優.
ポートスキャン実習 2002年9月19日 修士1年 兼子 譲 牧之内研究室「インターネット実習」Webページ
ネットワークシステム ネットワークシステム概要.
情報スキル活用 第1週 基礎技術ー1 : URLとWebページの基本.
HTTPプロトコルの詳細 M1 峯 肇史.
Presentation transcript:

インターネットの通信メカニズム 概要 WEBアプリ研究会 2回目

目的 この舞台裏はどうなってるの? ページ表示 URL入力 リンククリック ページ表示 ボタンクリック 送信 http://www.sfc.keio.ac.jp/ http://www.sfc.keio.ac.jp/ http://www.sfc.keio.ac.jp/ hogehogehgoehgoe hogehoehgoehgoeh hgeoheohgoehgoeg gehoghoeghoehgoe image ページ表示 ボタンクリック http://www.sfc.keio.ac.jp/ hogehogehgoehgoe hogehoehgoehgoeh hgeoheohgoehgoeg gehoghoeghoehgoe image 送信

今日の目標 クライアント・サーバシステムの通信の仕組みについて簡単に説明できるようになる プロトコルの意味・目的について説明できるようになる HTTPの仕組みについて簡単に説明できるようになる

ネットワーク アプリケーションの基本 クライアント・サーバシステム サーバ クライアントがサーバのサービスと受けるには、 サービスを公開し、サービス要求者にサービスを提供するプログラムのこと クライアント サーバに対してサービスを要求し、サービスを受けるプログラムのこと クライアントがサーバのサービスと受けるには、 クライアントプログラムをサーバプログラムに 接続する必要がある

論理的な話をすると・・・ クライアントプログラムがサーバプログラムを識別するために必要なもの IPアドレスまたはホスト・ドメイン名 ネットワーク上でサーバコンピュータを特定する ポート番号 サーバコンピュータ上で動いているプログラムを特定する クライアントプログラムが実際にサーバプログラムからサービスを受けるために必要なもの ソケット プログラムとプログラムをネットワーク越しにつなぐ ポート番号は1~65535

プログラムとプログラムを つなぐソケット 電話の受話器(または郵便ポスト) 接続した相手との間に仮想的な回線ができる ソケットに喋りかけたり手紙を投函すれば、相手のソケットに届く インターネット上のコンピュータと通信するときは、必ず使わなければならないインターフェース 後述するインターネット共通の通信のルールに従うため 仮想的な回線 spitfire(133.27.173.237) entrance(133.27.36.64) プログラム プログラム ソケット port:10001 ソケット port:10002

ソケット間通信の手順 3、受け入れ 2、接続要求 サーバ: 133.27.36.64 クライアント: 133.27.173.237 Port:79 Port:xxxx Port:80 Server Socket socket 1、ソケット生成 socket 4、ソケット生成 → → → → → → → → → → データ → → → → → → → → → → ← ← ← ← ← ← ← ← ← ← データ ← ← ← ← ← ← ← ← ← ← 5、データの交換 Port:81 Port:82

コンピュータ通信を行う上での様々なルール 通信には様々なルールがある IPアドレス(またはホスト名)とポート番号をもとに、相手のプログラムを特定し、ソケットを使って通信するというのは、コンピュータ通信におけるルール コンピュータ通信の世界では、様々な通信レイヤーごとに、様々なルールがある ケーブルの規格 目的のIPアドレスのコンピュータまでのたどり着き方 転送するファイルのフォーマット 等等 通信には コンピュータ通信を行う上での様々なルール プロトコル

OSI7層モデル OSI(Open System Interconnection) コンピュータ同士が機種に依存せず、相互に接続するためのプロトコルの枠組み 7つのレイヤーからなるプロトコルスタック 7層: アプリケーション層 6層: プレゼンテーション層 5層: セッション層 4層: トランスポート層 3層: ネットワーク層 2層: データリンク層 1層: 物理層 サービスの提供 論理的 表現方法の決定 ルールを階層的に定めたもの 接続相手の認証 データの信頼性確保 ネットワーク上の目的地までの経路 ネットワーク上の交通ルール ネットワークを構成するものの物理的な規格 物理的

例 運送業者の例 7層: アプリケーション層 6層: プレゼンテーション層 5層: セッション層 4層: トランスポート層 7層: アプリケーション層 6層: プレゼンテーション層 5層: セッション層 4層: トランスポート層 3層: ネットワーク層 2層: データリンク層 1層: 物理層 サービス(シロネコヤマト宅急便) オプション決定(クール宅急便、天地無用、われもの) 受け取り相手の決定 socket 最終届け先の決定、荷物の運び込み方の決定 サービスとは、アプリケーションそのもの 目的地までの経路決定 道路の交通ルール 道路の材質

それぞれの層が独立して 会話する 荷物を送りたい! 接続してくれ! 7層: アプリケーション層 6層: プレゼンテーション層 シロネコヤマトで頼む! 7層: アプリケーション層 6層: プレゼンテーション層 5層: セッション層 4層: トランスポート層 3層: ネットワーク層 2層: データリンク層 1層: 物理層 7層: アプリケーション層 6層: プレゼンテーション層 5層: セッション層 4層: トランスポート層 3層: ネットワーク層 2層: データリンク層 1層: 物理層 クール宅急便でおくるぞ! ○○さん当てだな! ι308に立て続けにおくる! 場所は慶応大学ι館だ! 交通ルールはこうだ! アスファルトの道を通って来い!

インターネットアプリケーションのためのプロトコル OSI7層モデルで言う アプリケーション層 プレゼンテーション層 セッション層          にあたるプロトコル ソケットに対してどのように話しかけるかを定義する 通信手順、データフォーマットなどのルールを定義 HTTP,SMTP,POP,MIME,IMAP,FTP等

HTTPについて Hyper Text Transfer Protocol 現在HTTP1.1(RFC2616) ハイパーテキストの転送を行うプロトコル HTML、画像、音声ファイルなど ハイパーテキストとは リンク、マルチメディアコンテンツを含むことのできるデジタル文書フォーマット 現在HTTP1.1(RFC2616) 実際は1.0と共存している状態 リソースの送受信だけを行うことを目的としている シンプル:複雑な処理がない ステートレス:接続状態を保たない

HTTPによる通信 メッセージ交換 クライアントからサーバへの「リクエスト・メッセージ」 サーバからクライアントへの「レスポンス・メッセージ」 ※ 原則として1リソースごとに1往復のメッセージ交換 WEBブラウザ WEB サーバ Hoge.html (1) HTMLファイルの取得 (2) 画像1ファイルの取得 画像1 (3) 画像2ファイルの取得 画像2

WEBサーバの指定 HTTPはURLが示す場所のファイルを取得する URL(Uniform Resource Locator) 書式: リソースの場所を指定する 全世界で一意 書式: http://www.sfc.keio.ac.jp:80/~taka/index.html 相対URLでは、ドキュメントルートをサーバが自分で補って解釈してくれている スキーム: リソースにアクセスする手段。 他にも、mailto、ftp、file、telnetなんかがある。デフォルトはHTTP。 WEBサーバ名: IPアドレスを使用することも可能 ポート: アクセスするサーバのポート番号。デフォルトはHTTP標準の80番。 パス: WEBサーバの ドキュメントルートからのパス

(参考)URI/URL/URN リソース指定の3形態 URL(Uniform Resource Locator) リソースの「位置」を示すもの URN(Uniform Resource Name) リソースそのものの永続的な「名前」を指定する URI(Uniform Resource Identifier) 識別可能な全てのものを指定する スキーム(Scheme) URNのスキームはリソース取得手段とは関係ないのでURLに含まれない URI URN urn: URL http: mailto: pln: oasis: file: news: NID(Name Space ID)

WEBサーバはソケットに対してこういうことを話しかける! HTTPメッセージの構造(1) リクエスト・メッセージ レスポンス・メッセージ GET /index.html HTTP/1.1 Accept: */* Accept-Language: ja Accept-Encoding: gzip, deflate Referer:http://www.sfc.keio.ac.jp/~kobataka/ User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) Host: www.sfc.keio.ac.jp HTTP/1.1 200 OK Server: Apache/1.3.12 (TurboLinux) mod_perl/1.24 ApacheJServ/1.1 Date: Sun, 11 Feb 2001 07:57:02 GMT Connection: close Content-Type: text/html  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML lang="ja"> <HEAD> <META HTTP-EQUIV="Content-Type" content="text/html;charset=SHIFT_JIS"> (略) </BODY></HTML>  WEBサーバはソケットに対してこういうことを話しかける!

HTTPメッセージの構造(2) リクエスト・メッセージ レスポンス・メッセージ 命令 結果 報告 引数 内容 リクエスト・ライン ・ヘッダ リクエスト・ライン メッセージ ・ヘッダ ステータス・ライン 命令 結果 報告 各種ヘッダフィールド (リクエスト・ヘッダ 一般ヘッダ エンティティヘッダ) 各種ヘッダフィールド (リクエスト・ヘッダ 一般ヘッダ エンティティヘッダ) 空行(CR+LF) 空行(CR+LF) メッセージボディ (フォームのパラメータなど) メッセージボディ (HTMLファイル、 マルチメディアデータなど) 引数 内容

HTTPリクエスト リクエスト・ラインの書式 メソッド一覧 メソッド [空白] リクエストURL [空白] HTTPバージョン ※リクエストURLは、WEBサーバのドキュメントルートからの相対パス メソッド HTTPバージョン 機能 HEAD 1.0/1.1共通 指定したURL取得の結果レスポンスのヘッダーのみ取得する。 GET 1.0/1.1共通 指定したURLが示すリソースを取得する。 POST 1.0/1.1共通 指定したURLが示すサーバーに対してデータを転送する。 PUT 1.0/1.1共通 指定したURLが示すリソースに対して、データを転送して置き換える。 DELETE 1.0/1.1共通 指定したURLが示すリソースを削除する TRACE 1.1より追加 サーバーやプロキシの動作を診断するための情報を返答する OPTIONS 1.1より追加 使用できるメソッドやオプションの一覧を取得する CONNECT 1.1より追加 プロキシでのトンネリング接続を行う

HTTPバージョン [空白] ステータスコード [空白] 結果フレーズ HTTPレスポンス ステータスラインの書式 ステータスコード一覧(有名どころ) HTTPバージョン [空白] ステータスコード [空白] 結果フレーズ ステータス・コード HTTPバージョン 結果フレーズ 200 1.0/1.1共通 OK 301 1.0/1.1共通 Moved Permanently 302 1.0/1.1共通 Moved Temporarily 400 1.0/1.1共通 Bad Request 401 1.0/1.1共通 Unauthorized 403 1.0/1.1共通 Forbidden 404 1.0/1.1共通 Not Found 500 1.0/1.1共通 Internal Server Error

リクエスト・メッセージを送り、結果を受け取る TelnetによるHTTP実習 Telnetを使って、WEBサーバに リクエスト・メッセージを送り、結果を受け取る やること 学校の端末(ccz01など)にSSHでログインする telnetでSFCのWEBサーバに接続します HTTPリクエストのGETメソッドを試してみよう! % telnet www.sfc.keio.ac.jp 80 Trying 133.27.4.212... Connected to www. Escape character is '^]'.

GETメソッド % telnet www.sfc.keio.ac.jp 80 Trying 133.27.4.212... Connected to www. Escape character is '^]'. GET /~kobataka/index.html 1.1 [+改行2回] --------------------------------------------- GET /~kobataka/cgi-bin/httptry.cgi?name=hoge&age=22 1.1 [+改行2回]

まとめ クライアント(プログラム)とサーバは、ソケットを通して会話することで成り立っている IPによりコンピュータを特定する ポートによりサービスを特定する プロトコルは通信のためのルールであり、OSI7層モデルによって、通信レイヤーごとにまとめられている HTTPはURLで指定したコンピュータとメッセージを交換することでハイパーテキストの転送を行うプロトコルである