第 12回 - IPLab

1'/,
6EH8N;GMF@I
EJ=M?N;GM
P2P()?
:ND</+#3?
6EH8N;GMEKA9I
C>ALN7!" 2
1'/OTCP/IP
1'/OTCP/IP Protocol Suits
OSI
2
EKA9I
Session Layer5EKA9I (Upper Layer
Protocol) *0
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
6BJ<
– 6EH8N;GM-&43
– 6EH8N;GM$2.-%&43
Application
Presentation
C>ALN7!" 2
1
Session
C>ALN7!" 2
3
C>ALN7!" 2
4
1
Session Layer
Presentation Layer
a_qx
9P/NP2
mubxfz_qx
gzcP4+
– _`fnymrehlZznP.*C>gzcB(EC4+y,6
DVUHRP0
– – Transaction
– Session
9POEJ>
,W2
• #}P4+
– Transaction Logging & Roll-back operation
– Session Termination
– jYhIJ4+FUA
» 1, 2, 4, less than 1 byte (6 bits), ….
Xms]z_qxAT5H>9P%/N2L$
/N
,
iehwz\7<=1;2
– jYh[zdzQM@FUPA
» Little Endian / Big Endian
– 8FUPkeh[zdzQM@FUPA
» MSB first, LSB first
5
iehwz\7<=1;2
6
Application Layer
Xms]z_qx{-| (Layer 7)
/NXms]z_qxW& FUHRPmvh^t
– )~Xms]z_qxGPSPKQN?
– :oztP"KQ SMTP (simple mail transfer protocol)
B2DVJ?U
– EAENBT:ozt"'3W!IHXms]z_qxB#
C
Xms]z_qxpgt
Xms]z_qxpgt
• MTA: sendmail, qmail, postfix, etc….
• MUA: Eudora, Mozilla Thunderbird, MS/Outlook, etc….
iehwz\7<=1;2
7
iehwz\7<=1;2
8
2
V•¢¨
V•¢¨ client/server
ˆ›¡¥Ÿ¤•¢{R;
ˆ›¡¥Ÿ¤•¢{R;
V•¢
– Client / Server model
– Broadcast based parallelization
– Peer-to-Peer (P2P) model
server
client
Request/reply
>•¢
– ?1‚ / <m
• Process semantics
– Atomic / checkpoint
client
p~p~x‡y6L†+nƒ{h
– End user services
– Network management
'—“–£¥ŒSabF`2
9
'—“–£¥ŒSabF`2
yo client / server h!}sq{h
h!}sq{h
Client / server {[@
6LBy]i…h‚nf
u{>œ–¢—“Œ|Ž¥˜
– ž¥Š¤’š‹¥‘: client
– D>: server
10
– Q5Ž¥™‘†3HnƒzcŽ¥˜{Q5i&O
– M y‘¥ ™¡”‰ (scalability) C
– Ž¥™‘{Q5z#nƒ4dy*(
• 6L\JwT:\G>i"=vjƒ
• X?G>~"/mnf3W
.',•¢z…yf
Ž¥™‘AP•¢iIrsq
– -{Œ Šˆ¤–z#muc"U$-{Ž¥˜
– Well-known address ¦Ž¥˜§ + well-known port (Ž¥™‘{
D_§z€suc0|Ž¥™‘†APmufq
– BZtl (dynamic binding) |^mhsq
– Ž¥˜zeƒ'†cŒ Šˆ¤–i9?nƒ
– Œ Šˆ¤–h'†Yz8nƒ€gyŽ¥™‘cŒ Š
ˆ¤–{T:†E2Bz?m€gwnƒw<>if
• •¢~cG>•¢i7}yhsq
• ‘¥ ™¡”‰{K)i^¦Q5Ž¥™‘i‚zkf§
• =| dynamic binding ~%kN…„ufƒ (Sun RPC bind etc.)
'—“–£¥ŒSabF`2
11
'—“–£¥ŒSabF`2
12
3
A
†{Š:
A
†{Š: parallelization using broadcast
^VJ€‹Ž}p‡w|?
^VJ€‹Ž}p‡w|?
€‹Ž}p‡w|
“up & running” ._Kj‚w|_SZJUDP€‹Ž}
p‡w|lWZsƒ}l@i>e
– '3_lA
(broadcast) _gWZ#
– UcZ`‹xw[l&
– mqzn€^‚w|l8XQjR\O[Pj
– T port _CYQhkZLj‚w|`‹xwaJT/
lUjH/lEUj€‹Ž}p‡w|
– T~y|ŒŽqxr…|_Uj‚w|l+1
–  rwhod
TCP[)
[Pj
UkbJxr…|\LMDl9*
– Server federation `(3^mo{nmaJR`=iNh0d
kZPZLj
~y|ŒŽq;GI6F2
~y|ŒŽq;GI6F2
13
14
A
†{А
A
†{А Peer-to-Peer (P2P)
A
†{АtŽB$
A
†{АtŽB$
ˆŽuO!X<-O4"#l7M
– ]`vwz„ftŽ[Kiq‰om|[Kj
server
%?,7
– Gnutera, Winny, …..
server
client
`28\vwz„\SZ`5O:D
Request/reply
server
~y|ŒŽq;GI6F2
15
~y|ŒŽq;GI6F2
16
4
Overlay network
Ag¦¨§
P2P’¥›”ƒ%b‚‡{}'sXE
]„ 1yŠ
– Packet loss ( §
– Packet duplication (aR§
– Retransmission (\)‚‡ŠRe@
!™–—¢¥8^„_n™–—¢¥8^kŽœŸ
‘¥“£&~‰tŠ
– ™–—¢¥8^ƒ-
@ƒA
– ƒ@S<q6zr‚k!Q+€ƒ‡n‚|ƒ
pq|ƒ@w}CfB‚NoŠ*SqlŠ
– Identification ‚|m}:wm@V
– !Qƒ.
IP&
• Exactly once semantics
• At least once semantics ¦ž¥W#§
• At most once semanticsj¦\W#§
,™–—¢¥YijFh2
,™–—¢¥YijFh2
17
Ag¦©§
AgNoŠ
AgNoŠ….
“idempotent”
Idempotent @„qJ
– ’¥š‚$w}R3ƒ@Ÿ”—qDwk@v‹}
…k;xM7q)ˆ‹Š
– uƒ‡n@KŠ‚‡{}k\@ƒ80“£œ ‚8IyŠuq~rŠ
18
’¥šƒ`8^VyŠu~kU9@qO
~|ƒ’¥š‚ToŠ
• wpw>/4yŠ@‚„=.q*S
The Internet
,™–—¢¥YijFh2
19
Idempotent@
A5‰@
•j¡¥˜šž£’ƒA
•jmŒ†Šž”•(0
•j[P2¤c"H@‚5
•j@dL!?
•jDBGq$Z
,™–—¢¥YijFh2
20
5
/9726
/9726
Non structured
– Binary
– ASCII
HK?MCO=JM
HK?MCO=JM
Structured
– TLV: Type, Length, Value
– ASN.1
– XML
FBELO<#,-+2
FBELO<#,-+2
21
Trade-off
22
Binary & ASCII
.60R!6*0
Binary
ASCII
– IP header (RFC791), TCP
header (RFC793)
– I>ENGBE;OA (host bit
order) 3FBENGBE;OA
(network bit order) 6(.:
5
– PQ6.6)
XML
ASN.1
ASCII
– FTP (RFC959)
– SMTP (RFC2821)
– POP3 (RFC1939) – 8bit clean 24.'$28
1.DO@%&:"
TLV
binary
FBELO<#,-+2
23
FBELO<#,-+2
24
6
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.
`[_hjW5<=-;2
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)
`[_hjW5<=-;2
25
TVL
!"+KbgYi]jXci1M*
!"+KbgYi]jXci1M*
Type, Length, Value
OSPF (RFC2328)
RADIUS (RFC2138)
XDR (eXtended Data Representation) for Sun
RPC/NFS (1980’s)
ASN.1 (1980’s)
XML (1990’s)
#7CG2'
$OQTS%
26
– )& (wire efficiency)
– TypeLPHI(U:
– LengthUTGJ8^jZUASP@LKS
– ValueN>ETFT2'U/DS
– R?M B
– 36
• ^jZkstatic typing), ,9M.( (name space)
• ^jZM04
– \jf>dVadeM
`[_hjW5<=-;2
27
`[_hjW5<=-;2
28
7
ASN.1 (BER encoding)
SNMP
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
– 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 ()
2
29
2
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>
2
31
2
30
32
8
XMLP@DUgtc
vXML
XML Schema
XMLP@DUgtcv
XMLvHQQ
!
XMLvHQQ!
<?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>
gtcQ-2: RDF
etpQ: XPath, XSLT,
APIQ: DOM, SAX, etc.
idhrt]3:;)92
5Q,<
– XML Digital Signature
– XML Encryption
33
idhrt]3:;)92
34
idhrt]3:;)92
36
XMLRNLS
6/
XMLRNLS6/
XMLY$=I`afnBCXVUT>POKL=U
– XMLMQ."
– XML#+
P2PNR
A
P2PNRA
idhrt]7XU_tja`afnY*GU
P
R<XMLY$=UQB4NOKL=U
–
–
–
–
XMLR8('
Qbkh[\ZMSgtc."PXMLY>ENB?L=U
HWHW &OP%FH>J
lq^oms^01uXML
idhrt]3:;)92
35
9
‹qs–%dK
P2P/%Wl)f
P2P/%Wl)f ž Winnyd<g`
Winnyd<g`
v”sr™ƒz›ˆ
Warez%šL
‡sŒ•€„P2P
Š’rP2P
– ftp, WWW, Netnewsp9[]J1‹qs–d%šL
– F,XZY2>pNhnceClbW^]
: Server
‹qs–%r•x›{“™d<
– *: Gnutella, NapstercknP2Pr•x›{“™d<
– *: WinMX ()SKaZaa ()a[_km3AZo]f
– ‡sŒ•€„P2P
Šr
‹qs–)fa
– Winny (2002)d<
– Š’rP2Pf
– Œ—›„ˆ™„
d#[cknSkm6dTT4I!
†€ƒ˜›vHQR?P2
: Server
Šr
Šr
”™‚Œ›iIi`
DU
”™‚Œ›p`DTS
IpŠr`DU
”™‚Œ›iIiŠr
`DU
FTPjWWWp9[]
‹qs–%
WinMX, KaZaa
Gnutella, Freenet,
Winny
†€ƒ˜›vHQR?P2
37
P2P‹qs–%r•x›{“™d'
P2P‹qs–%r•x›{“™d'
Napster
Napster
Gnutella
Winny
WinMX
LimeWire
Share
BitTorrent
Cabos
5
38
– ")\nO+‹qs–(mp3)d•|ƒp)[S‹qs–pBa[
]~‹ƒtur
– ‡sŒ•€„P2Pa[_7Zo_T]
– ‘€ƒ-BXEZo_VmS‹qs–)p>=a[]y’…x›
{“™›–a[_i-B[_T]
:/
– Northeastern Universityœ@z’›}€Ž|ƒ™d8 {‘t
™š‹q…™wœShawn Fanning0X19991(cM;
– 20007( RIAAkm$GZo&GS†€ƒ˜›vp.
– 200310(kmSO+Lz›‰|a[_8
†€ƒ˜›vHQR?P2
39
†€ƒ˜›vHQR?P2
40
10
Gnutella
Winny (1)
_=
Winny¯³
– WinMX²<r¯¥­KOž‘f¥ªÓÀÃÛN²ª·²ÁÔÚ
ÇßÊØÞ
– ÒÖÁP2P,±º½ÓÀÃÛNÐÍÏÝ߯QoÌÓÏÄÅÁ
– )b®š½¢¯¯B†±c%v«¬ª¢¯»/X{¥˜ÓÀÃÛN
ÐÍÏÝ߯žQA£¾ª
– mp3ÓÀÃÛ±“»°›£¶¤¶°ÓÀÃÛ;:²‘¿%v¯
¥ªÌÓÏÄÅÁ
– n`>¯°½Èßў0*¨§n`¸0*¥°›
– ÒÖÁP2P,²3}
– ©²<²P2PÓÀÃÛHÌÓÏÄÅÁ²"\ÕÎÛ¯°¬ª
eU
Winny²eU
– 200082M pNullsoftk²‘fu»‘
– 200083M ‘˜¥¥‘²AOLk²I±º¬­24L’
®‘S
– £¶¤¶°ÆÜßÞ]žg.¥­›½
@-ÐÍÏÝ߯ƒ–—m•2'
– 200285M6K ]‘
– 200385M5K 2.0]‘
– 2004811M28K Winnycu²‹D˜‘fu51Eq˜‘f²S
(2.07.1)
– 200485M31K Ž+Pž‘fu¿…˜xRW#àzˆR²4á
²7s
– 200486M1K ‘fu
– 2006812M13K Ž+|±­V™Nsàtá˜ KF
@-ÐÍÏÝ߯ƒ–—m•2'
41
Winny (2)
Winny¿·¡½&”
Winny¿·¡½&”
20038L[®20(ÐÍÏÝ߯k‚µ)â200
(ACCS‚µ)²×ßÉߞ0*¯G2£¾½
2004811M²‹Dužfa<®˜)ÏÙÓÂÍ
Ʋ1/6‡ žZ¥ª àWinny²cZ6?)
200687M²-Œ®³˜175²cu¯G2
X‰¦½@-²„´²&”
42
– ²x^²WX‰
– ŠÓÀÃÛ¹€lÓÀÃÛ²X‰
– ÄÂÛ˲y9
ÓÀÃÛ²$¼C›JW±!(
– ÓÀÃÛ¯›œ@-
¿c›ª¢¯ž­²!(
•
•
•
•
¸žwd±ÓÀÃÛfž®Ÿ½
fÓÀÃÛ²$¼Y¥ž®Ÿ°›
ÓÀÃÛf²_2ž%v
ih¯¦½ÓÀÃÛ¿T¥ j½JWž°›
– º¼QŠ£¾ª@-žH£¾½?~žš½
@-ÐÍÏÝ߯ƒ–—m•2'
43
@-ÐÍÏÝ߯ƒ–—m•2'
44
11
Winnyz‘–z…„ˆ
Winnyz‘–z…„ˆ
P2PBgTŒVP2PBgTŒV-
Cn!Œ P2PBgTŽŒ;+
–
–
–
–
– hŠ<ˆ-‹…†›·¤·£dŒn!ˆŠ’x“
%{ ‚“ˆ—_7„
±¸¸‹“WHŠBgTŒ>R
– ›·¤·£Bg‹y}“8Œ› ¦Z‡v“BgTŒ4
‹"†Œ6w]{ ‚“ˆ—M„
P¹PBgTŒ4‹,Zˆ€”“/Y
–
–
–
–
rohŠ/Y#‹“.BgJˆ†ŒV-
.©¢¦¶¸šbqsQp2
BgŒ0|‹“<*~
XUz‘±¸¸ŽŒK1HŠBgŒV› ¦mz‘D\€”†|„®™¨¸XEŒBg4
› ¦Œ€‹“?uŠXEŒBg&Œ4
45
¬˜™³
c
±¸¸
c
aj
¬˜™³Œfe
_
.©¢¦¶¸šbqsQp2
46
wˆ•—’ƒxˆwx`
P2P©¢¦¶¸šŒO=HF
– 2005(109‹t¡¶¸´›¸§ˆSNapsterN{23Napster
Ÿ°ª·—^P
– SKazaaNt­µ¯¸ž²·¬˜™³Œi't:5¬˜™³i
t)Љ‹“I¯¥³—LP
[@œ¸« >R
[@œ¸« >R
Skype
– Gnutella Œ/Y—AF„tlgœ¸« – GH‹[@‹$k
.©¢¦¶¸šbqsQp2
47
.©¢¦¶¸šbqsQp2
48
12
†} ^?v,\†ˆu
^?v,\†ˆu
bY4vš¹
bY4 (load balance) •"F{’@=v,k
µ¹¦©±·Ÿ (LB; Load Balancer) •(xBH
G
5ˆ›±—–·¥‡o&5ˆŸ¹©
ƒˆŸ¹©‡]t’
– TCPž¨› °·ˆTMD•LBvPG
The Internet
Server1: 192.168.20.1
Client: 163.221.50.15
/Ÿ¹©: 202.247.15.1
Server2: 192.168.20.2
The Internet
Idempotent†G
H9‘G
•nµ¹¦©±·ŸˆH
•nr”Ž’›±¡¢•*0
•nbY4¸g#PG‡9
•nGiR•"F
•nDBOv$a
.¨¤¥¶¹›`mnNl2
Forwarding Table
Src: 163.221.50.15
Dst: 192.168.20.[1-3]
.¨¤¥¶¹›`mnNl2
49
TMDPG
TMDPG
z‡I'Q
z‡I'Q
…ˆŸ¹©‡ž¨› °·•TMz|’u
Ÿ¹©‰¨¤¥¶¹›‡Ex‚ !
– ±˜·¦µ«·6)o8%2U6)o-W_C6)†…ˆ>p†
1AvV:¸"[z“‚r’
– g#PGf\
• Server down •…ˆs‡K’u
Server3: 192.168.20.3
50
– ¥·¨²·œ•€‚o—·¢¹¨¤¥‡©±©±‡q’Ÿ¹©
•ˆŸ¹©‡]|’y„ƒw’
– Sever federation „rsŠ“6•{’y„
CDN (Contents Delivery Network)
Ÿ¹©ˆ–¦´¡ˆer•…ˆs‡hZ{’u
– Ÿ¹©
ƒ¬±—­¹¥IP•€‚r’‡‰o~ˆ+j•d
ˆƒ7w3t’,\vq’
– S†NATƒ‰£¯
– z‡ ISP ƒL<J‡bY4•{’6)vXJ‡†€
– CDN„Š“’
– Akamai.com v;Ÿ¹«¡ƒˆª—™§–
• Cookie, HTTPˆ®—µ¹¦‡–¦´¡.vŒc‹“‚r’y
„vq’
• –¬²¹ °·¬µ¥ž³‡€‚‰Hvq’
.¨¤¥¶¹›`mnNl2
51
.¨¤¥¶¹›`mnNl2
52
13
Providing Service at your site…
site….
Contents Delivery Network
DNEOBOK+<7
7ANHNG7
(freshness control)
server
Data Center
IX
clients
ISP6!/>1CD7
BOK+<)7ISP7%
6BOLC? *
(well-managed access)
clients
JFIMO@"'(&2
JFIMO@"'(&2
53
7
P anycast 7
7P
54
Anycast 58
$?96*.56;23)#:4
-=
Root DNS BOK,07
2001::1
HOST
HOST
HOST
HOST
2001::1
2001::1
JFIMO@"'(&2
55
JFIMO@"'(&2
56
14
Geographical distribution using “Anycast”
Anycast”
F root DNS
– Originally at ISC in Silicon
Valley, Calif.
– Currently, Hong Kong &
Amsterdam
?
? ?
5=43@9-*
1!+;89?A5*
)
%*
6A<)$'.
Hong Kong, CN
6A<+ 3:>72
(-2"/#
/*&0-,
Silicon Valley, Calif.
Amsterdam, NL
;89?A52
57
15