コンピュータネットワーク
第8回
第2回課題:内容と提出物
課題内容
◦
Wiresharkを使ってパケットデータを取得
そのときにWebでどこかのサイトにアクセスする
◦
パケットデータより
⾃分が利⽤したホスト(PC)のIPアドレスを調べよ
TCPで通信している通信のポート番号(送信元、宛
先)を調べよ
提出内容
◦
⾃分が利⽤したホスト(PC)のIPアドレス
◦
TCP通信におけるポート番号と、
その該当パケットの番号
◦
パケットデータ
第2回課題:提出⽅法と締切
提出⽅法 ◦ 電⼦メール ◦ ⾃分のIPアドレスはメール本⽂に記載 ◦ パケットデータ中のパケット番号と、そのパケットにおけるTCPの宛先ポートと 送信元ポートの番号をそれぞれメール本⽂に記載 ◦ パケットデータはファイルをメールに添付 メールタイトル(件名)に「[コンピュータネットワーク:(学籍番 号)]」と⼊れること ◦ akira.kanaoka@is.sci.toho-u.ac.jp ◦ (アットマークが全⾓になっていますので、半⾓に直してから送ってください) 締切 ◦ 2013年6⽉14⽇(⾦)18:00 注意: ◦ 電⼦メールで提出した場合、必ず私から「受領しました」というメールを返信し ます。返信がない場合は、メールば届いていない可能性があります。課題提出後 は、⾦岡からの受領メールを必ず確認してください。 英語ではメール返信はしません ◦ データが全く同じ⼈達がいた場合、「最初に提出した⼈のみを通常の評価」にし、 後の⼈は「半分の評価」とします 2013/6/14 コンピュータネットワーク 3先週までのおさらい
通信の階層
リンク層
◦
イーサネット(Ethernet)
◦
CSMA/CD
インターネット層
◦
IP(Internet Protocol)
◦
ルーティング
トランスポート層
◦
TCP(Transmission Control Protocol)
アプリケーション層
OSI参照モデル
2013/6/14 コンピュータネットワーク 5階層の名称
役割
応⽤層
特定応⽤サービスと共通応⽤サービスの
提供
プレゼンテーション層 抽象構⽂と転送構⽂の相互変換
セッション層
セッション制御:⽚⽅向、半⼆重、全⼆
重
トランスポート層
順序制御や誤り制御機構
ネットワーク層
データ転送のための経路選択や中継機能
データリンク層
フレーム(ビット列)の順序制御、誤り
制御機能
物理層
2ノード間においてビット列の伝送を⾏な
うための規格、⼿順、機能特性
TCP/IP階層モデル
階層の名称 概要 具体例 アプリケーション層 (Application) アプリケーションを実現 HTTP、DNS、SMTP、POP、 IMAP、FTP、 SNMP、NNTP トランスポート層 (Transport) アプリケーションのためにエンド間の通信サービスを提供 TCP、UDP インターネット層(Internet) データを送信元から宛先に運ぶ IP、ICMP、ARP、RARP リンク層 (Link) 直接接続されたネットワーク上で通信されるための通信プ ロトコル イーサネット、 FDDI、X.25、 ISDN、同軸ケー ブル、UTP、光 ファイバー
リンク層
階層の名称 概要 具体例 アプリケーション層 (Application) アプリケーションを実現 HTTP、DNS、SMTP、POP、 IMAP、FTP、 SNMP、NNTP トランスポート層 (Transport) アプリケーションのためにエンド間の通信サービスを提供 TCP、UDP インターネット層(Internet) データを送信元から宛先に運ぶ IP、ICMP、ARP、RARP
リンク層 (Link) 直接接続されたネットワーク上で通信されるための通信プ ロトコル イーサネット、 FDDI、X.25、 ISDN、同軸ケー ブル、UTP、光 ファイバー 2013/6/14 コンピュータネットワーク 7
TCP/IP 階層モデル
リンク層
直接接続されたネットワーク上での通信を確⽴する層 代表的なものは以下の3つ
◦ イーサネット(Ethernet)
◦ トークンリング
◦ FDDI(Fiber Distributed Data Interface)
LAN(ローカルエリアネットワーク)上でデータ転送を⾏なうための
プロトコル
◦ いずれもデータ転送に「フレーム」と呼ばれるデータのかたまりを⽤いる
データの衝突を排除するための仕組み:CSMA/CD(Carrire Sense
Multiple Access/Collision Detection)
直接接続 リピータ・ハブを介した接続
インターネット層
階層の名称 概要 具体例 アプリケーション層 (Application) アプリケーションを実現 HTTP、DNS、SMTP、POP、 IMAP、FTP、 SNMP、NNTP トランスポート層 (Transport) アプリケーションのためにエンド間の通信サービスを提供 TCP、UDP インターネット層(Internet) データを送信元から宛先に運ぶ IP、ICMP、ARP、RARP
リンク層 (Link) 直接接続されたネットワーク上で通信されるための通信プ ロトコル イーサネット、 FDDI、X.25、 ISDN、同軸ケー ブル、UTP、光 ファイバー 2013/6/14 コンピュータネットワーク 9
TCP/IP 階層モデル
リンク層とインターネット層
LAN A LAN B ホスト X ホスト X ホスト Yホスト Y ホストXからホストYへ通信する場合 ・ リンク層プロトコルは同⼀ネットワーク内しか送ることができない ・ インターネット層プロトコルを利⽤し、ホストYまで中継してもらうIP (Internet Protocol)
インターネットにおいてデータ転送の
基礎となるプロトコル
さまざまな特徴
◦
コネクションレス
◦
ベストエフォート
◦
経路選択(ルーティング)
「データグラム」と呼ばれるデータの
かたまりごとに通信を⾏う
2013/6/14 コンピュータネットワーク 11トランスポート層
階層の名称 概要 具体例 アプリケーション層 (Application) アプリケーションを実現 HTTP、DNS、SMTP、POP、 IMAP、FTP、 SNMP、NNTP トランスポート層 (Transport) アプリケーションのためにエンド間の通信サービスを提供 TCP、UDP インターネット層(Internet) データを送信元から宛先に運ぶ IP、ICMP、ARP、RARP リンク層 (Link) 直接接続されたネットワーク上で通信されるための通信プ ロトコル イーサネット、 FDDI、X.25、 ISDN、同軸ケー ブル、UTP、光 ファイバー
TCP/IP 階層モデル
TCPとUDP
IPが出来ること
◦
経路制御(ルーティング)を⽤いて、遠くの相⼿とで
もデータをやり取り可能
IPが出来ないこと
◦
信頼できる通信
◦
複数のサービスを同時提供
そこでTCPとUDP
◦
TCP
(Transmission Control
Protocol)
◦
UDP
(User Datagram Protocol)
2013/6/14 コンピュータネットワーク 13 HTTP、DNS、SMTP、POP3、 IMAP、FTP、SNMP、NNTP TCP UDP IP (ICMP、ARP、RARP) イーサネット、FDDI、X.25、ISDN、 同軸ケーブル、UTP、光ファイバー
TCP(Transport Control Protocol)
信頼性のある通信を実現
◦
信頼性提供のための機能
コネクション指向 3-Way Handshake 順序制御 再送制御 フロー(流量)制御 輻輳回避
ポートを⽤いた多重化
◦
ポート番号(0-65535番)
WebやメールはTCPの上で動いている
「セグメント」と呼ばれるデータのかたまり
ごとに通信を⾏う
で、⽤件 なんだけど・・・ おれも 元気だよ。 SYN SYN+ACK ACK 元気? 元気だよ。 おまえは?UDP(User Datagram Protocol)
TCPが持っていた機能を持たない、シンプルなプロトコ
ル
◦ コネクションレス、順序・再送制御なし、フロー制御なし リアルタイム性の⾼いサービスはUDPの上で動いている
◦ VoIP、ストリーミング 「データグラム」と呼ばれるデータのかたまりごとに通
信を⾏う
2013/6/14 コンピュータネットワーク 15 送信元ポート あて先ポート セグメント⻑ チェックサム データアプリケーション層
階層の名称 概要 具体例 アプリケーション層 (Application) アプリケーションを実現 HTTP、DNS、SMTP、POP、 IMAP、FTP、 SNMP、NNTP トランスポート層 (Transport) アプリケーションのためにエンド間の通信サービスを提供 TCP、UDP インターネット層(Internet) データを送信元から宛先に運ぶ IP、ICMP、ARP、RARP リンク層 (Link) 直接接続されたネットワーク上で通信されるための通信プ ロトコル イーサネット、 FDDI、X.25、 ISDN、同軸ケー ブル、UTP、光 ファイバー
TCP/IP 階層モデル
DNS(Domain Name System)
IPアドレス ◦ ⼀意な番号で世界中と通信可能 ◦ ⼈間の記憶には向かない情報 ◦ 202.16.211.113と202.16.210.**と…などなど ⼈間が覚えやすいように名前をつけよう ◦ 202.16.211.113さんは「cheese」ね。 ◦ 130.158.81.38さんは「kanaweb」ね。 ◦ でもこれも数が多いとわからなくなる 所属をつけるようにしよう ◦ 130.158.103.51さんは、⽇本の、筑波⼤の、リスク⼯学専攻の、暗号・情報セ キュリティ研究室の「kanaweb」さんね。 2013/6/14 コンピュータネットワーク 17cheese.klab.is.sci.toho-u.ac.jp
所属(ドメイン)ごとに名前を管理し、表記する 命名規則とその解決システムDNS
⽇本 東邦⼤ 理学部 ⾦岡研究室 情報科学科 学術機関FQDNと正引き/逆引き
FQDN(Fully Qualified Domain Name)
◦ 完全修飾ドメイン名 ◦ ドメインやホストに対する絶対指定を⾏なう際に使われる ◦ 例:www.klab.is.sci.toho-u.ac.jp 正問い合わせ(正引き)と逆問い合わせ(逆引き)
◦ 正問い合わせ:ドメインやホスト名からリソース(IPアドレ ス)を問い合わせる ◦ 逆問い合わせ:リソース(IPアドレス)からドメインやホス ト名を問い合わせるwww.klab.is.sci.toho-u.ac.jp
202.16.211.113
正引き 逆引き2013/6/14 コンピュータネットワーク 19 DNSのFQDNが記載される
電⼦メール
メッセージを交換するシ
ステム
メールアドレス
◦
相⼿を特定するための情
報
[email protected]
場所(アドレス) 名前(ユーザ) ドメイン、ホスト名電⼦メールのプロトコル:SMTP
SMTP(Simple Mail Transfer Protocol)
◦
メール配送のためのプロトコル
◦
TCPのポート25番利⽤される
HELO *** 通信開始 MAIL FROM: *** 送信者の指定 RCPT TO: *** 受信者の指定 DATA メール本文 VRFY *** ユーザ名の確認 QUIT 終了 SMTPの主なコマンド コマンドの やりとり HELO mail.example.com RCPT TO:[email protected]2013/6/14 コンピュータネットワーク 21
電⼦メールのプロトコル:POP
POP(Post Office Protocol)
電⼦メールをサーバから受け取るためのプロ トコル もともとSMTPだけで成り⽴つものだったが、 メールサーバとしての常時稼動が必要 TCPのポート110番が利⽤される(POP3) 認証機能 SMTP POP POP
POPの認証
メールをサーバから取り出すとき
にユーザ名とパスワードが必要
通常では暗号化されていない
USER kanaoka PASS hirosue POP USER *** ユーザ名 PASS *** パスワード LIST *** メール一覧取得 RETR :** メール本文の取得 POPの主な コマンド LIST RETR 1 盗聴が可能今週やること
アプリケーション層(2)
◦
WWW (World Wide Web)
2013/6/14 コンピュータネットワーク 23 階層の名称 概要 具体例 アプリケーション層 (Application) アプリケーションを実現 HTTP、DNS、SMTP、POP、 IMAP、FTP、 SNMP、NNTP トランスポート層 (Transport) アプリケーションのためにエンド間の通信サービスを提供 TCP、UDP インターネット層
(Internet) データを送信元から宛先に運ぶ IP、ICMP、ARP、RARP リンク層
(Link) 直接接続されたネットワーク上で通信されるための通信プロトコル イーサネット、FDDI、X.25、 ISDN等
WWW(World Wide Web)
WWWとは ◦ インターネットで提供されるサービスの1つ ◦ 世界中に広がるクモの巣(web) ◦ 単にWeb(ウェブ)とも 情報提供を⾏うサービス ◦ ハイパーテキストと呼ばれる情報をやり取りする Webブラウザ ◦ WWWの情報を表⽰するソフトウェア 使われている技術◦ URL(Uniform Resource Locator)
情報の場所や取得⽅法の指定 ◦ HTML Webの情報を記述するための⾔語 ◦ HTTP 情報の送受信を⾏うプロトコル 2013/6/14 コンピュータネットワーク 25 HTML:情報の記述⽅法 HTML:情報をやりとりする⽅法 URL:どこに情報があるかを⽰す WWW
URL (Uniform Resource Locator)
インターネットサービスで提供される
情報などの資源(リソース)の所在を
⽰す⽅法
http://www.klab.is.sci.toho-u.ac.jp/classes/
スキーム://ホスト名/パス名
スキーム HTTP www.klab.is.sci.toho-u.ac.jpホスト名 classes/パス名HTML(HyperText Markup Language)
WWWの⽂書を記述するための⾔語
◦
ハイパーテキスト
複数の⽂書を「リンク」で結ぶ
ハイパーリンク◦
マークアップ⾔語
⽂章を「タグ」と呼ばれる⽂字列で挟みこむ
⽂章構造や、⽂字の表現などを⽰すことができ
る
XMLやTex、SGMLなどもマークアップ⾔語
2013/6/14 コンピュータネットワーク 27HTML
http://www.klab.is.sci.toho-u.ac.jp/classes/ を表⽰しているときのHTML
2013/6/14 コンピュータネットワーク 29
単純なHTML例
http://www.klab.is.sci.toho-u.ac.jp/classes/
「コンピュータネットワーク(2013)」
のページ
「リンク」から「HTML Examples」
をたどってみる。
英語サイトだけど、いくつかシンプル
なHTMLと、ブラウザで⾒たときの様
⼦が対⽐できる。
HTTP
(HyperText Transfer Protocol)
WWWでHTMLなどの情報を
送受信するためのプロトコル
GET index.html PUT ***** GET 指定URLのデータを取得 PUT 指定URLにデータを保存 POST 指定URLにデータを登録 HTTPの主な コマンド 応答メッセージHTTPの主な 応答メッセージ GET index2.html HTTP/1.1 200 OK HTTP/1.1 404 Not Found 200 OK 302 Moved Temporarily 304 Not Modified 401 Unauthorized 403 Forbidden 404 Not Found 500 Internal Server Error 503 Service Unavailable2013/6/14 コンピュータネットワーク 31
Sir Timothy John Berners-Lee (1955- )
2013/6/14 コンピュータネットワーク 33
Webの発展
ネットサーフィン
◦
リンクをたどり、次々に新しい情報を得る
Yahooによるインデックスサービス
◦
情報のデータベース化
Googleによる検索
◦
機械的なクローリングによるデータベース
化
◦
Page Rank
電⼦商取引のスタート
◦
Amazon
Lawrence Edward "Larry" Page
(1973- )
Sergey Brin (1973- )
2013/6/14 コンピュータネットワーク 35
Youtube Google Maps/ Gmail
/ iGoogle /Google AdSense
Wikipedia ソーシャルサービス ブログ
新たなWWW上のサービス
さまざまな技術 Javascript CGI Flash HTML5変わってきたWeb
プラットフォームとしてのWeb
情報のユーザによるコントロール
パッケージソフトウェアではなくサービ
ス
ユーザ参加のアーキテクチャ
⾼い拡張性とコスト効率
再構成可能なデータソースとデータの変
換
単⼀のデバイスの枠を超えたソフトウェ
ア
集合知の利⽤
Tim O'Reilly, “What Is Web 2.0”
WWW上の広告
WWWが発展するに従い、Webページ上
で広告を載せることが注⽬されてきた
◦
≒ビジネスとして価値があると判断され始めた
クリック数による報酬制
当初は、Webページに広告を掲載する
ユーザがどの広告を載せるかを決めてい
た
◦
アフィリエイトサービス
◦
例
http://d.hatena.ne.jp/kowagari/20080106/1199
590354
2013/6/14 コンピュータネットワーク 37Google AdSense
Google AdSenseのシステムが⾃動的
にサイトの内容を解析し、サイトに
あった広告を配信するシステム
◦
https://www.google.com/adsense/logi
n/ja/?hl=ja&gsessionid=sHPvIScbcCk
◦
ユーザが本当にほしいものに近い広告を提
供できる
◦
広告を提供する側は、効果的に広告を配信
できる
ロングテール
◦
80対20の法則
2013/6/14 コンピュータネットワーク 39
Intermission:ロングテール
1897年に、イタリアの社 会・経済学者ヴィルフレッ ド・パレートが発⾒したパ レートの法則 ◦ べき則 いろいろな現象・関係性が べき則であることが近年知 られてきている ◦ 所得分布 ◦ ⼈間のつながり 学術論⽂のつながり ◦ 男⼥の性的関係 ◦ インターネット構造 ◦ WWW ◦ 電⼦メール 0 5 10 15 20 0 2 4 6 8 10 0.01 0.1 1 10 100 0.1 1 10筑波⼤ 暗号・情報セキュリティ研究室の電⼦
メールによるつながりを⽰すネットワーク
2013/6/14 コンピュータネットワーク 41
動的⽣成ページによるユーザ参加
ブログサービス
SNS
(Social Networking
Service)
◦
mixiが⽇本最⼤か
◦
Amazon レビュー
◦ http://kirik.tea-nifty.com/diary/2007/12/amazon_86cb.html Wikipedia
ジェネレータ
◦
もんじろう
http://monjiro.net/◦
幕末古写真ジェネレータ
http://labs.wanokoto.jp/oldsMark Elliot Zuckerberg (1984- )
2013/6/14 コンピュータネットワーク 43
Javascript
スクリプト⾔語の⼀種 ◦ スクリプト⾔語:簡易なプログラム⾔語 主にWebブラウザ上で実⾏される ◦ 知らずに世話になっている ◦ インタラクティブなページ(Google Mapsや、検索ページで の⼊⼒補完) 簡単にできるものをいろいろとやってみよう ◦ (ちょっと古いけど)webをレイザーラモンHG⼝調に変換さ せる JavaScript:with(document.body)innerHTML=innerHTML.repl ace(/<¥/(a|A)> /g,'フゥーーー!!').replace(/。/g,'フゥーーー!! ').replace(/」/g,'オッケ〜〜!!」').replace (/w/g,'セイセイ ');focus() ◦ Webサイトの⾊を反転 javascript:void(document.body.style.filter="progid:DXImage Transform.Microsoft.basicimage(Invert=1)") ◦ ぼやける javascript:document.body.style.filter="blur(add=false, direction=225, strength=5)";eval();Javascript 続き
Webページが崩壊 javascript:(function(){var s=document.createElement("script");s.charset="UTF-8";var da=new Date();s.src="http://www.rr.iij4u.or.jp/~kazumix/d/javascript/mel tdown/meltdown.js?"+da.getTime(); document.body.appendChild(s)})(); Web福笑い javascript:(function(){var s=document.createElement("script");s.charset="UTF-8";var da=new Date();s.src="http://www.rr.iij4u.or.jp/~kazumix/d/javascript/fuk uwarai.js?"+da.getTime(); document.body.appendChild(s)})(); 画像が幕末⾵に javascript:(function(d){if(typeof Bakumatsu != "undefined"){Bakumatsu.convert(d.getElementsByTagName('img') );}else{s=d.createElement('script');s.type='text/javascript';s.src= 'http://tech.nitoyon.com/bakumatsu/allbakumatsu.js';d.body.appe ndChild(s);}})(document);2013/6/14 コンピュータネットワーク 45
XMLHttpRequest
スクリプト⾔語
◦
Microsoft社(Internet Explorer)が開発
◦
その後Mozilla(Firefox)が採⽤
サーバとのHTTP通信を⾏うための組み
込みオブジェクト(API)
すでに読み込んだページからさらに
HTTPリクエストを発することができる
◦
ページ遷移することなしにデータを送受信
可能
DHTML
静的な HTML の内容をCSS
(Cascading Style Sheets)と
JavaScript 等のクライアントサイドス
クリプト⾔語を⽤いて動的に変更する
ウェブ技術を指す抽象概念
◦
マウスを当てると動作が変わる、など
Youtube
◦
http://jp.youtube.com/
2013/6/14 コンピュータネットワーク 47
Ajax
「エイジャックス」「アジャックス」どちらで
も正しい
ウェブブラウザ内で⾮同期通信とインターフェ
イスの構築などを⾏う技術の総称
◦
Javascript
◦
XMLHttpRequest
◦
DHTML
具体的なサービス例
◦
Google Map
Ajaxによるサービス
◦
インクリメンタルサーチ
第3回課題:内容と提出物
課題1)
◦ Wiresharkを使ってパケットデータを取得 ◦ そのときにWebでどこかのサイトにアクセスする ◦ パケットデータより 1-1)アクセスした先のURLを調べる 1-2)アクセスした先のDNSのFQDN名とIPアドレスを調べる 課題2)
◦ toho_comnet_005.pcapにおいて、POPアクセスしている ユーザの名前とパスワードを調べる 提出内容
◦ 課題1) 1-1)アクセスした先のURL 1-2)アクセス先のDNS名とIPアドレス パケットデータ(pcap⽅式) ◦ 課題2) ユーザ名とパスワード2013/6/14 コンピュータネットワーク 49