...

日本語 - IPLab

by user

on
Category: Documents
13

views

Report

Comments

Transcript

日本語 - IPLab
2009/5/22
概要
 まずは簡単な復習
 アプリケーションモデル
 プレゼンテーション層
 P2Pって何?
 大規模サービスはどう作る?
アプリケーションプロトコル
情報ネットワーク論I 第12回
まずは復習:TCP/IP Protocol Suits
OSI
2
上位層プロトコル
 Session Layer以上を上位層プロトコル (Upper Layer
Protocol) と呼ぶ
TCP/IP
処理単位
Application
Message / Stream
Transport
Transport
Transport Packet
Port
Network
Internet
IP Datagram
IP address
Data Link
Network Interface
Frame
Datalink Address
Physical
Hardware
アドレス
– 各アプリケーション毎に定義される
– アプリケーションからの要求に強く拘束される
Application
Presentation
情報ネットワーク論I 第12回
1
Session
情報ネットワーク論I 第12回
情報ネットワーク論I 第12回
3
Session Layer
Presentation Layer
 セション層
 通信の意味的な単位の定義
 プレゼンテーション層
 データの表現形式
– Transaction
– Session
– システム・プラットフォームの差異無く、データが正しく表現・理解
されるための基盤
– 例
 通信の単位に対して、処理を定義
• 数値1の表現
– Transaction Logging & Roll-back operation
– Session Termination
– 何バイト使って表現するか
» 1, 2, 4, less than 1 byte (6 bits), ….
– バイトオーダーはどうするのか
» Little Endian / Big Endian
– 送信する場合のビットオーダーはどうするのか
» MSB first, LSB first
 アプリケーションから見た、通信の概念的な定義と基本
的な処理
情報ネットワーク論I 第12回
4
5
情報ネットワーク論I 第12回
6
1
2009/5/22
Application Layer
 アプリケーション層(応用層) (Layer 7)
 具体的なアプリケーションを構成するためのプロトコル
– 注意:アプリケーションそのものではない
– 電子メールの交換では SMTP (simple mail transfer protocol)
が定義されている
– しかしながら電子メール交換機能を持ったアプリケーションが数
多く存在
アプリケーションモデル
• MTA: sendmail, qmail, postfix, etc….
• MUA: Eudora, Mozilla Thunderbird, MS/Outlook, etc….
情報ネットワーク論I 第12回
情報ネットワーク論I 第12回
7
アプリケーションモデルの視点
8
通信モデル: client/server
 通信モデル
– Client / Server model
– Broadcast based parallelization
– Peer-to-Peer (P2P) model
server
client
Request/reply
 処理モデル
– 副作用有り / 無し
• Process semantics
– Atomic / checkpoint
client
 そもそもどんな機能を提供するのか
– End user services
– Network management
情報ネットワーク論I 第12回
9
情報ネットワーク論I 第12回
なぜ client / server から始まったのか
Client / server の限界
 機能的な分離がわかりやすい
 全ての処理ボトルネックはサーバ
– ユーザインタフェース: client
– 各種処理: server
10
– 大規模サービスを構築する場合に、サーバの大規模化が必要
– 良好なスケーラビリティ (scalability) 確保
– サービスの大規模化に対する様々な挑戦
• 機能集約と資源集中管理が実現できる
• 運用管理も実施しやすい構造
 双方向情報交換モデルに合わない
 サービス発見モデルが簡単だった
– 大多数のクライアントに対して、実質尐数のサーバ
– Well-known address (サーバ) + well-known port (サービスの
種類)によって、最初はサービスを発見していた
– 動的関係づけ (dynamic binding) は難しかった
– サーバにある情報を、クライアントが活用する
– クライアント側から情報を大量に注入するようなサービス、クライ
アント側の資源を積極的に利用しようとすると無理が多い
• 名前モデルも、管理モデルが決まらなかった
• スケーラビリティの維持が困難(大規模サービスが作りにくい)
• 現在は dynamic binding も広く行われている (Sun RPC bind etc.)
情報ネットワーク論I 第12回
11
情報ネットワーク論I 第12回
12
2
2009/5/22
通信モデル: parallelization using broadcast
なぜ、ブロードキャスト?
 ブロードキャスト型
 “up & running” 状態にあるホストに対して、UDPブロード
キャストを使ってコマンドを送り込む
– 定期的に情報を同報通信 (broadcast) によって交換
– すべてのプロセスで情報を共有
– アクティブなホストを見つけることができる
– 同じ port に関係づけられているホスト上のプロセスは、同じ処理
をする→並列処理を駆動するブロードキャスト
– 同じネットワークセグメント上に存在するホストを活用
– 例) rwhod
 TCPで構成すれば、同一セグメント上という問題を解決
できる
– Server federation の基本的なアイディアは、この辺りから生ま
れてきている
情報ネットワーク論I 第12回
情報ネットワーク論I 第12回
13
通信モデル:サーバ連携型
14
通信モデル: Peer-to-Peer (P2P)
 ユーザが持つ資源同士が直接情報交換を行う
– どのシステムもサーバでありクライアントである
server
 最近大流行
– Gnutella, Winny, …..
server
client
 情報の発見とシステム全体としての安定性確保が課題
Request/reply
server
情報ネットワーク論I 第12回
情報ネットワーク論I 第12回
15
Overlay network
副作用問題(1)
 P2P型サービスの展開によって広く認知
 実ネットワーク構造とは違うネットワーク構造を、アプリ
ケーション層で作り上げる
 通信は失敗する
16
– Packet loss (喪失)
– Packet duplication (重複)
– Retransmission (再送)による複雑な処理
– ネットワーク構造の仮想化
 処理の副作用
– 同一の処理要求が来たときに、同一実行性をどのように保つの
かが一つの処理として真面目に考える必要がある
– Identification について正しい理解
– 実行の意味
IP層
• Exactly once semantics
• At least once semantics (エラーを許容)
• At most once semantics (再送を許容)
情報ネットワーク論I 第12回
17
情報ネットワーク論I 第12回
18
3
2009/5/22
副作用問題(2)
副作用問題を考えると….
 “idempotent”
 Idempotent な処理は並列化が簡単
 サーバの内部構造を分解することで、大規模処理が可
能
– サーバに対して複数の同一処理リクエストが到着し、処理されて
も、毎回同じ結果が得られる
– このような処理系を作る事によって、再送処理の構成をシンプル
に構築することができる
全体で一つのサーバに見える
• しかし状態を変更する処理には注意が必要
The Internet
Idempotentな処理
• ロードバランサの利用
• いわゆるクラスタを形成
• 負荷分散・障害管理に有効
情報ネットワーク論I 第12回
副作用有り処理
• 処理集約を実現
• DB等が対象
情報ネットワーク論I 第12回
19
20
これまでの技術
 Non structured
– Binary
– ASCII
プレゼンテーション層
 Structured
– TLV: Type, Length, Value
– ASN.1
– XML
情報ネットワーク論I 第12回
情報ネットワーク論I 第12回
21
Trade-off
22
Binary & ASCII
取扱いの容易さ/表現能力の高さ
 Binary
 ASCII
– IP header (RFC791), TCP
header (RFC793)
– ホスト・ビットオーダ (host bit
order) とネット・ビットオーダ
(network bit order) の違いを
明確に定義
– 数値(整数値)の取扱いの適
正化
XML
ASN.1
ASCII
– FTP (RFC959)
– SMTP (RFC2821)
– POP3 (RFC1939) 等
– 8bit clean でない通信路でも
正しいデータ転送を保証
TLV
binary
帯域使用効率
情報ネットワーク論I 第12回
23
情報ネットワーク論I 第12回
24
4
2009/5/22
FTP
SMTP
001.204.01754: 220 ftp.isi.edu NcFTPd Server (free educational license) ready.
176.020.00021: USER anonymous
001.204.01754: 331 Guest login ok, send your complete e-mail address as password.
176.020.00021: PASS -wget@
001.204.01754: 230 Logged in anonymously.
176.020.00021: SYST
001.204.01754: 215 UNIX Type: L8
176.020.00021: PWD
001.204.01754: 257 "/" is cwd.
176.020.00021: TYPE I
001.204.01754: 200 Type okay.
176.020.00021: CWD /in-notes
001.204.01754: 250 "/in-notes" is new cwd.
情報ネットワーク論I 第12回
1758: 220 ns.ixj-mc.com ESMTP Sendmail 8.9.3p2+3.1W/3.7W/ns; Fri, 30 May
2003 00:15:43 +09
0025: EHLO mf.aist-nara.ac.jp
1758: 250 ns.ixj-mc.com Hello 168.pool3.ftthtokyo.att.ne.jp [165.76.67.168], pleased
to meet you
0025: MAIL FROM:<[email protected]> SIZE=1524
1758: 250 <[email protected]>... Sender ok
0025: RCPT TO:<[email protected]>
1758: 250 <[email protected]>... Recipient ok
0025: DATA
1758: 354 Enter mail, end with "." on a line by itself
0025: Received: from mf.aist-nara.ac.jp (localhost [127.0.0.1])
3 +0900 (JST)
情報ネットワーク論I 第12回
25
TLV
本格的なプレゼンテーション層技術の登場
 Type, Length, Value
 OSPF (RFC2328)
 RADIUS (RFC2138)
 XDR (eXtended Data Representation) for Sun
RPC/NFS (1980’s)
 ASN.1 (1980’s)
 XML (1990’s)
 構造化した情報表現
 求められる特性
26
– 帯域使用効率 (wire efficiency)
– 取り扱いの容易さ
– 記述性
– Typeによって処理を駆動
– Lengthを入れた事で可変長データを扱えるようになる
– Valueは、それぞれ表現形式を定義する
• データ型(static typing), 名前空間の管理 (name space)
• データの自己説明性
– ツール、ライブラリの充実
情報ネットワーク論I 第12回
情報ネットワーク論I 第12回
27
ASN.1 (BER encoding)
SNMPで用いられる Object Identifier
 (tag, length, value)
 Iso(1).org(3).dod(6).internet(1)
– Tag: ASN.1 type
– Length: size of the ASN.1 value
– Value: ASN.1 value
28
– Mgmt (2)
– Experimental (3)
– Private (4)
 1.3.6.1.2.1….
– SNMPで用いられるデータ構造を定義
– MIB-II (RFC1214),
– Structure of Management Information version 2 (SMIv2)
(RFC2578)
 ASN.1の型
–
–
–
–
INTEGER
OCTET STRING
OBJECT IDENTIFIER
SEQUENCE (配列)
情報ネットワーク論I 第12回
29
情報ネットワーク論I 第12回
30
5
2009/5/22
XML
XML namespace
 <?xml version = "1.0"?>
 <tag attribute="value">
 <another-tag another-attribute="value" />
 </tag attribute="value">
<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'
xmlns:xsi='http://www.w3.org/1999/XMLSchema-instance'
xmlns:xsd='http://www.w3.org/1999/XMLSchema'
xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
soap:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>
<soap:Body>
<n:getQuoteResponse xmlns:n='urn:xmethods-delayed-quotes'>
<Result xsi:type='xsd:float'>7.92</Result>
</n:getQuoteResponse>
</soap:Body>
</soap:Envelope>
情報ネットワーク論I 第12回
情報ネットワーク論I 第12回
31
XMLにおけるデータ型:XML Schema
XML:その他の特徴
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema“
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<namesp1:getQuote xmlns:namesp1="urn:xmethods-delayed-quotes">
<symbol xsi:type="xsd:string">AKAM</symbol>
</namesp1:getQuote>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
 データの自己説明性: RDF
 ツールの充実: XPath, XSLT,
 APIの充実: DOM, SAX, etc.
 一部分の署名、暗号化
情報ネットワーク論I 第12回
32
– XML Digital Signature
– XML Encryption
33
情報ネットワーク論I 第12回
34
情報ネットワーク論I 第12回
36
XMLはとても重要
 XMLを用いたシステムが広く使われるようになっている
– XMLでの表現
– XML処理系
 ネットワーク関わるサービスシステムを構築する場合に
は、XMLを用いるのが常識となっている
–
–
–
–
P2Pとは何か
XMLは必須科目
他のソフトウェアでもデータ表現にXMLを使うことが増えている
そろそろ標準的な手法に発展しそうだ
プログラミング言語+XML
情報ネットワーク論I 第12回
35
6
2009/5/22
ファイル交換の変遷
P2P/交換から共有へ ~ Winnyの登場まで
クライアントサーバ
 Warez交換・配布
ハイブリッドP2P
ピュアP2P
– ftp, WWW, Netnewsを利用した違法ファイルの交換・配布
– 規模が小さく注目を集めるには至らなかった
中心
: Server
 ファイル交換アプリケーションの登場
– 初期: Gnutella, NapsterによるP2Pアプリケーションの登場
– 中後期: WinMX ()、KaZaa ()としてより洗練された形へ
– ハイブリッド型P2P
ピア
 ファイル共有へと変化
– Winny (2002)の登場
– ピュアP2Pへ
– ブロードバンド化の後押しによる、より効率のいい流通形態
情報ネットワーク論I 第12回
中心
: Server
ピア
ピア
ランデブーも通信も中心で
行う
ランデブーを中心で行い、
通信をピア同士で行う
ランデブーも通信もピア同
士で行う
FTPやWWWを利用した
ファイル交換
WinMX, KaZaa
Gnutella, Freenet,
Winny
情報ネットワーク論I 第12回
37
P2Pファイル交換アプリケーションの普及
Napster
 Napster
 Gnutella
 Winny
 WinMX
 LimeWire
 Share
 BitTorrent
 Cabos
 特徴
38
– 所有する音楽ファイル(mp3)のリストを共有し、ファイル取得を可能とし
たソフトウェア
– ハイブリッド型P2Pとして実現されていた
– チャット機能が実装されており、ファイル共有を目的としたコミュニケー
ションツールとしても機能していた
 略歴
– Northeastern University(米マサチューセッツ州ボストン)の学生 シャウ
ン・ファニング(Shawn Fanning)氏が1999年1月に開発
– 2000年7月 RIAAより提訴され敗訴、ネットワークを停止
– 2003年10月より、音楽配信サービスとして再生
情報ネットワーク論I 第12回
情報ネットワーク論I 第12回
39
Gnutella
Winny (1)
 特徴
 Winnyとは
40
– WinMXの後継として日本人が開発したファイル共有のためのアプリ
ケーション
– ピュアP2P型によるファイル共有ネットワーク構築ソフトウェア
– 国産であることと手軽に利用可能だったことから大流行し、ファイル共有
ネットワークが構成された
– mp3ファイルに限らないさまざまなファイル形式の公開を可能と
したソフトウェア
– 管理中心となるサーバが存在せず管理主体も存在しない
– ピュアP2P型の実装
– その後のP2Pファイル交換ソフトウェアの参照モデルとなった
 略歴
 Winnyの略歴
– 2000年2月 米Nullsoft社の開発者から公開
– 2000年3月 公開、しかし公開元のAOL社の判断によって24時間
で公開停止
– さまざまなクローン版が登場している
情報ネットワーク論I 第12回
41
– 2002年5月6日 β版公開
– 2003年5月5日 2.0β版公開
– 2003年11月28日 Winny利用者の逮捕、開発者家宅捜索、開発の停止
(2.0β7.1)
– 2004年5月31日 京都地検が開発者を起訴、著作権法違反(公衆送信権の侵害)
の幇助罪
– 2004年6月1日 開発者保釈
– 2006年12月13日 京都地裁にて判決「有罪(罰金刑)、即日控訴
情報ネットワーク論I 第12回
42
7
2009/5/22
Winny (2)
Winnyをめぐる問題
 2003年時点で20万人(ネットワーク社調べ)~200万人
(ACCS調べ)のユーザーが存在と推定される
 2004年11月の逮捕者が発生以前以後で、国内トラフィッ
クの1/6近くが低減した (Winnyの利用減尐分?)
 2006年7月の報道では、175万人の利用者と推定
 流通する情報の質への問題
– 他人の著作物の違法流通
– 偽造ファイルや詐称ファイルの流通
– ウィルスの蔓延
 ファイルの取り扱い方法に原因
– ファイルという情報単位を用いたことが全ての原因
•
•
•
•
誰もが自由にファイル発信ができる
発信ファイルの取り消しができない
ファイル発信元の特定が不可能
目的とするファイルを正しく知る方法がない
– より構造化された情報が交換される必要がある
情報ネットワーク論I 第12回
情報ネットワーク論I 第12回
43
Winnyからわかったこと
P2P流通網の可能性
 潜在顧客の存在
 P2P流通網への期待
– 適切な価格と利便性によってはコンテンツ購入の顧客となりうる
層が存在することを証明した
 ユーザーによる自主的な流通網の構築
– コンテンツ流通における最大のコスト要因である流通網の整備
に対しての新しい解が存在することを示した
流通の中抜きによる価格引下げ
著作者からユーザーへの直接的な流通の可能性
コスト問題から無視されてきたマイナー著作物の流通整備
参入コストの低さによる様々な著作物の流通市場の整備
 P2P流通網の整備に必要とされる技術例
–
–
–
–
→ 適切な技術導入による情報流通基盤としての可能性
情報ネットワーク論I 第12回
–
–
–
–
44
45
ファイル保護
ユーザー保護
課金
ファイルの追跡保証
情報ネットワーク論I 第12回
46
よいところを取り出そうという試み
 P2Pネットワークの積極的利用
– 2005年10月に、タワーレコードと米Napster社が提携しNapster
ジャパンを設立
– 米Kazaa社は、プロモーションファイルの配布、有料ファイル配信、
広告などによる収益モデルを確立
大規模サービス構築
 Skype
– Gnutella の技術を活用した、音声通信サービス
– 全世界的に大規模に展開中
情報ネットワーク論I 第12回
47
情報ネットワーク論I 第12回
48
8
2009/5/22
なぜ大規模化が必要なのか
負荷分散がキー
 大多数のクライアントに、尐数のサーバ
 負荷分散 (load balance) を実現する機構が必須
 ロードバランサ (LB; Load Balancer) を広く活用
 動作原理
全体で一つのサーバに見える
– TCPコネクションの終端点をLBが管理
The Internet
Server1: 192.168.20.1
Client: 163.221.50.15
仮想サーバ: 202.247.15.1
Server2: 192.168.20.2
The Internet
Idempotentな処理
• ロードバランサの利用
• いわゆるクラスタを形成
• 負荷分散・障害管理に有効
副作用有り処理
Forwarding Table
Src: 163.221.50.15
Dst: 192.168.20.[1-3]
• 処理集約を実現
• DB等が対象
情報ネットワーク論I 第12回
Server3: 192.168.20.3
情報ネットワーク論I 第12回
49
50
終端点管理
さらに発展系
 どのサーバにコネクションを終端させるか
 サーバは同一ネットワーク内に無くても大丈夫
– ラウンドロビン方式、最小接続方式、性能観測方式などの様々な
手法が考案・実装されている
– 障害管理も重要
• Server down をどのように知るか
– トンネリングを使って、インターネット上にバラバラにあるサーバ
を一つのサーバに見せることもできる
– Sever federation という呼ばれ方をすることも
 CDN (Contents Delivery Network)
 サーバのアドレスの違いをどのように隠蔽するか
– サーバ側でプライベートIPを使っている場合には、その影響を通
信の中で書き換える必要がある
– 単純なNAT型ではダメ
– さらに ISP で積極的に負荷分散をする方式が一般的になった
– CDNと呼ばれる
– Akamai.com が商業サービスでのパイオニア
• Cookie, HTTPのペイロードにもアドレス情報が埋め込まれているこ
とがある
• アプリケーションプロトコルによっては副作用がある
情報ネットワーク論I 第12回
情報ネットワーク論I 第12回
51
Providing Service at your site….
52
Contents Delivery Network
センターサーバからの最
新のコンテンツの供給
(freshness control)
server
Data Center
IX
clients
clients
情報ネットワーク論I 第12回
53
各ISPに設置されたCD用の
サーバから、自己のISPの顧
客にサービス提供を行う
(well-managed access)
情報ネットワーク論I 第12回
54
9
2009/5/22
別の発展系: anycast の利用
Anycast とは
 経路制御情報を巧みに使うことによって、負荷分散もで
きる
 Root DNS サーバがその典型例
2001::1
HOST
HOST
HOST
HOST
2001::1
2001::1
情報ネットワーク論I 第12回
55
情報ネットワーク論I 第12回
56
Geographical distribution using “Anycast”
 F root DNS
– Originally at ISC in Silicon
Valley, Calif.
– Currently, Hong Kong &
Amsterdam
?
? ?
クライアントからの問い合
わせは、ネットワークの経
路制御に依存して最短の
サーバにたどり着く
Hong Kong, CN
各サーバは同じアドレスを使
いながら、経路情報をそれぞ
れのところから流し込む
Silicon Valley, Calif.
Amsterdam, NL
情報ネットワーク論I 第12回
57
10
Fly UP