P2P
1. File distribution time
ํ ์๋ฒ์์ N๊ฐ์ peer๋ก size F์ธ ํ์ผ์ ๋ณด๋ด๋๋ฐ ์ผ๋ง๋ ๊ฑธ๋ฆด๊น??
(Peer์ upload/download capacity๋ ํ์ ๋์ด ์๋ค)
1. Client-Server
- Server transmission : ํ์ผ์ N๊ฐ๋ก ๋ณต์ฌํด์ ์์ฐจ์ ์ผ๋ก ๋ณด๋ด์ผ ํจ
- ๋ณต์ฌ๋ณธ ํ๋ ๋ณด๋ด๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ = F/us (์ ์ฒด์ฉ๋ / ์๊ฐ๋น upload ํ ์ ์๋ capacity)
- N๊ฐ ๋ณด๋ด๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ = NF/us
- Client : ๊ฐ client๋ ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ์์ผ ํจ
- d_min = download rate์ ์ต์๊ฐ (์๊ฐ ๋น ๋ฐ์ ์ ์๋ ํ์ผ (๊ฐ์ฅ capacity๊ฐ ์์ ๊ฒ ๊ธฐ์ค))
- client๊ฐ ๋ค์ด๋ก๋ ํ๋ ์๊ฐ์ ์ต์๊ฐ = F/d_min
์ฆ client-server approach๋ฅผ ์ฌ์ฉํด์ F ๋งํผ์ ํ์ผ์ N clients์๊ฒ ๋ถ๋ฐฐํ๋๋ฐ ๊ฑธ๋ฆฌ๋ total delay
D_c-s >= max {NF/us, F/d_min}
2. P2P
- Server transmission : ์ต์ํ ํ๋์ copy๋ฅผ upload ํด์ผ ํจ
- ํ ๊ฐ์ copy ๋ณด๋ด๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ = F/us
- Client : ๊ฐ client๊ฐ copy๋ณธ์ ๋ค์ด๋ก๋ ํด์ผํจ
- Min client download time = F/d_min
- Clients : ์ข
ํฉํด์ ์ด NF bits๋ฅผ ๋ค์ด๋ก๋ ํด์ผํจ
- ์ต๋ ์ ๋ก๋ rate (์ต๋ ๋ค์ด๋ก๋ ์๋๋ฅผ ์ ํํ์ ๋) = us+∑ui
์ฆ, server-client๋ N๊ฐ์ ํ์ผ์ ์ฌ๋ฆด ๋, ์๋ฒ๊ฐ ์์ฐจ์ ์ผ๋ก(capacity๋งํผ์ฉ) ๋ค ์ฌ๋ ค์ผํ๊ณ , P2P์์๋ peers๋ค์ด 1๊ฐ ์ด์์ฉ ์ฌ๋ ค์ N๊ฐ๊ฐ ๋๋ฉด ๋๋๊น, P2P์ file distribution time์ด ๋ ์งง๋ค.
2. A case study : BitTorrent
P2P File Distribution : BitTorrent
- ํ์ผ์ 256kb์ ๋ฉ์ด๋ฆฌ๋ก ์ชผ๊ฐ ๋ค
- torrent์ ์๋ peer๋ค์ด file ๋ฉ์ด๋ฆฌ๋ฅผ ๋ณด๋ด๊ณ ๋ฐ๋๋ค.
- Tracker : torrent์ ์ฐธ์ฌํ๋ peer๋ค์ ์ถ์ ํ๋ค
- Torrent : ํ์ผ ๋ฉ์ด๋ฆฌ๋ฅผ ๊ตํํ๋ peer๋ค์ ๊ทธ๋ฃน
- torrent์ ์ฐธ์ฌํ peer
- ์ฒ์์ ์๋ฌด๊ฒ๋ ์์ง๋ง ์ ์ฐจ ์๊ฐ์ด ์ง๋ ์๋ก ๋ค๋ฅธ peers์ chunk๊ฐ ์ถ์ ๋๋ค
- tracker์ ๋ฑ๋กํด์ peer์ ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๊ณ , peers("neighbors")์ ํ์ ์งํฉ์ ์ฐ๊ฒฐํ๋ค.
- ๋ค์ด๋ก๋ ํ๋ ๋์ peer๋ chunks๋ฅผ ๋ค๋ฅธ peers์๊ฒ ์
๋ก๋ํ๋ค.
- peer๋ chunk๋ฅผ ๊ตํํ๋ peers๋ฅผ ๋ฐ๊ฟ ์ ์๋ค.
- ๋ง์ฝ peer๊ฐ ์ ์ฒด ํ์ผ์ ๊ฐ๊ฒ ๋๋ฉด, ๊ทธ๊ฒ์ ๋ ๋ ์๋, torrent์ ๋จ์ ์์ ์๋ ์๋ค.
Exchanging File Chunk
Requesting chunks
- ์ด๋ ์๊ฐ์๋, ๋ค๋ฅธ peer๋ ํ์ผ chunk์ ๋ค๋ฅธ ๋ถ๋ถ์ ๊ฐ์ง๊ณ ์๋ค.
- ์ฃผ๊ธฐ์ ์ผ๋ก alice๋ ๊ฐ๊ฐ์ peer์๊ฒ ๊ทธ๋ค์ด ๊ฐ์ง๊ณ ์๋ chunk ๋ชฉ๋ก์ ์์ฒญํ๋ค.
- alice๋ ๊ฐ์ฅ ๋๋ฌธ(?) missing chunk๋ฅผ peers์๊ฒ ์์ฒญํ๋ค.
Sending chunks : tit-for-tat
- Alice๋ 4๋ช
์ peers์๊ฒ ๊ฐ์ฅ ๋น ๋ฅธ ์๋๋ก ๊ทธ๋
์ chunk๋ฅผ ์ ์กํ๋ค.
- ๋ค๋ฅธ peers๋ Alice์๊ฒ ์ง์ํ๋ค(choked) ; ๊ทธ๋ ๋ก๋ถํฐ chunks๋ฅผ ๋ฐ์ง ๋ชปํจ
- 10์ด๋ง๋ค ์์ 4๊ฐ๋ฅผ ์ฌํ๊ฐํ๋ค.
- 30์ด๋ง๋ค ๋ฌด์์๋ก ๋ค๋ฅธ peer์ ๊ณจ๋ผ์ chunks๋ฅผ ๋ณด๋ธ๋ค
- Optimistically unchoke this peer
- ์๋ก ์ ํํ peer๊ฐ top 4์ join ํ ์ ์๋ค.
Streaming and CDN
Video Streaming and CDNs
- video traffic : ์ธํฐ๋ท bandwidth์ ๊ฐ์ฅ ์ฃผ์ consumer! ํธ๋ ํฝ์ ๋ง์ ๋ถ๋ถ์ ์ฐจ์ง
- Netflix, Youtube๋ downstream residental ISP Traffic์ ๊ฐ๊ฐ 37%, 16%๋ฅผ ์ฐจ์งํจ
- ~1B๋ ์ ํ๋ธ ์ ์ , ~75M ๋ ๋ทํ๋ฆญ์ค ์ ์
- Challenge
- scalability (ํ์ฅ์ฑ)
: ์ด๋ป๊ฒ ~1B ์ ์ ๋ค์๊ฒ ๋๋ฌํ ๊ฒ์ธ๊ฐ.
ํ๋์ mega-video server๋ก๋ ์๋ํ์ง ์์ ๊ฒ - heterogeneity (์ด์ง์ฑ)
: ์ฌ์ฉ์๋ค๋ง๋ค capabilities์ด ๋ค๋ฅด๋ค.
ex. ์ ์ vs ๋ชจ๋ฐ์ผ, bandwidth๊ฐ ํ๋ถํ ๊ณณ๊ณผ ๊ทธ๋ ์ง ์์ ๊ณณ
- scalability (ํ์ฅ์ฑ)
- Solution : distributed, application-level infrastructure!!!
1. Streaming multimedia
Multimedia : Video
- Video๋ : ์ผ์ ํ ์๋๋ก ํ์๋๋ ์ด๋ฏธ์ง๋ค์ sequence
- Digital image : ํฝ์
๋ค์ ๋ฐฐ์ด. ๊ฐ ํฝ์
๋ค์ bits๋ก ํ์๋จ
-> CBR (=Constant Bit Rate) - Encoding : ์ด๋ฏธ์ง ๋ด๋ถ์ ์ด๋ฏธ์ง ์ฌ์ด์ ์ค๋ณต์ฑ์ ์ด์ฉํด ์ด๋ฏธ์ง๋ฅผ ์ธ์ฝ๋ํ๋๋ฐ ์ฌ์ฉ๋๋ ๋นํธ์๋ฅผ ์ค์ธ๋ค
- spatial : ์ด๋ฏธ์ง ์์์ ์
- temporal : ํ ์ด๋ฏธ์ง์์ ๋ค์ ์ด๋ฏธ์ง๋ก ๋์ด๊ฐ ๋ ์
-> VBR (=Variable Bit Rate) : ๋น๋์ค์ ์ธ์ฝ๋ฉ ์๋๋ spatial, temporal coding changes ์์ ๋ฐ๋ผ์ ๋ณํ๋ค.
- spatial coding example : N๊ฐ์ ๊ฐ์ ์์ ๊ฐ์ง ํฝ์ ์ ๋ณด๋ฅผ ๋ค ๋ณด๋ด๋ ๋์ , ์ ์ ๋ณด์ ๋ฐ๋ณต๋๋ ๊ฐ์๋ง ์ ์กํ๋ค.
- temporal coding example : i+1 ๋ฒ์งธ ์ด๋ฏธ์ง ํฝ์ ์ ๋ค ๋ณด๋ด๋๊ฒ ์๋๋ผ frame i ์ ๋ฌ๋ผ์ง ๋ถ๋ถ๋ง ๋ณด๋ธ๋ค.
Streaming Multimedia : DASH
DASH : Dynamic, Adaptive Streaming over Http
- Server
- ๋น๋์ค ํ์ผ์ ์ฌ๋ฌ๊ฐ์ ๋ฉ์ด๋ฆฌ๋ก ๋๋๋ค
- ๊ฐ๊ฐ์ ๋ฉ์ด๋ฆฌ๋ฅผ ์ ์ฅํ๊ณ ๊ฐ๊ธฐ ๋ค๋ฅธ ์๋๋ก ์ธ์ฝ๋ฉํ๋ค.
- Manifest file: ๊ฐ๊ฐ ๋ค๋ฅธ ๋ฉ์ด๋ฆฌ์ ๋ํ URLs ์ ์ ๊ณตํ๋ค.์ปดํจํ ์์ ์งํฉ์ ์ผ๋ถ ๋๋ ๋ ผ๋ฆฌ์ ์ฐํ ๋จ์์ธ ํ์ผ๋ค์ ๊ทธ๋ฃน์ ์ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ํ์ผ์ด๋ค.
- Client
- ์ฃผ๊ธฐ์ ์ผ๋ก server-to-client์ ๋์ญํญ์ ์ธก์ ํ๋ค.
- manifest๋ฅผ consultingํ๊ณ ํ ๋ฒ์ ํ๋์ chunk๋ฅผ ์์ฒญํ๋ค.
- ํ์ฌ ์ฃผ์ด์ง ๋์ญํญ ์์์ ๋ฐ์ ์ ์๋ ๊ฐ์ฅ ํฐ coding rate์ ํ์ผ์ ๊ณ ๋ฅธ๋ค.
- ์์ ์ ๋ฐ๋ผ(์ฌ์ฉ ๊ฐ๋ฅํ ๋์ญํญ์ ๋ฐ๋ผ) ๋ค๋ฅธ coding rate๋ฅผ ์ ํํ ์ ์๋ค.
- Client ์ "Intelligence" ; ํด๋ผ์ด์ธํธ๊ฐ ๊ฒฐ์ ํ๋ ๊ฒ
- ์ธ์ chunk๋ฅผ ์์ฒญํ ์ง (๋ฒํผ๊ฐ ๋จ๊ฑฐ๋ ์ค๋ฒํ๋ก์ฐ๊ฐ ์ผ์ด๋์ง ์์ ๋)
- ์ด๋ค ์ธ์ฝ๋ฉ rate๋ฅผ ์์ฒญํด์ผ ํ ์ง (๋ ๋์ ๋์ญํญ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ ๋์ ํ์ง ์ถ๊ตฌ)
- ์ด๋๋ก chunk๋ฅผ ์์ฒญํด์ผ ํ๋์ง ( client์๊ฒ ๋ ๊ฐ๊ฐ๊ฑฐ๋ ๋ ๋ง์ ๋์ญํญ์ ์ฌ์ฉ ๊ฐ๋ฅํ URL server์ ์์ฒญ์ ๋ณด๋ผ ์ ์๋ค)
Case Study : Netflix
2. Content distribution networks ( = CDN )
- Challenge : ์ด๋ป๊ฒ ํ๋ฉด ์์ญ๋ง ๋ช ์ ๋์ ์ฌ์ฉ์์๊ฒ ์ปจํ ์ธ ๋ฅผ ์คํธ๋ฆฌ๋ฐ ํ ์ ์์๊น?
OPTION 1 : ํ๋์ ๋์ "Mega-server"๋ฅผ ์ด์ฉํ๋ค.
- ํ๋ ์๋ชป๋๋ฉด ๋ค ์๋ชป๋จ (Single point of failure)
- network congestion ; ๋คํธ์ํฌ์ ๋ฐ์ง, ์ ์ฒด
- ๋จผ ๊ณ ๊ฐ๊น์ง ๊ฐ๋ ๊ธธ์ด ๋ฉ๋ค
- ์ฌ๋ฌ ๊ฐ์ ๋น๋์ค์ ๋ณต์ฌ๋ณธ์ด ์ก์ ๋งํฌ๋ฅผ ํตํด ์ ์ก๋จ
- ... ์ด๊ฑด ์ข ์๋ ๋ฏ
OPTION 2 : ์ฌ๋ฌ ๊ฐ์ ๋น๋์ค์ ๋ณต์ฌ๋ณธ์ ์ง๋ฆฌํ์ ์ผ๋ก ๋ถ์ฐ๋ ์ฌ๋ฌ ๊ณณ์ ๋๋์ด ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ค.
- CDN ์๋ฒ๋ฅผ ์ฌ๋ฌ access networks(์ฌ์ฉ์๋ค์๊ฒ ๊ฐ๊น์ด)์ ๋ฐ์ ๋ฃ์ด๋๋ค.
- Smaller number (10’s) of larger clusters in POPs (points of presence) near (but not within) access networks
- limelight์ ์ํด ์ฌ์ฉ๋จ
- More Challenges
- ์ด๋ค CDN node์์ ์ปจํ ์ธ ๋ฅผ ๊ฒ์ํด์ฌ ๊ฒ์ธ๊ฐ
- ์ด๋ค ์ปจํ ์ธ ๋ฅผ ์ด๋ค CDN node์ ๋ฐฐ์นํ ๊ฒ์ธ๊ฐ
CDN Content Access : A closer Look
Socket programming
1. UDP socket ; unreliable datagram
- ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ No Connection
- ๋ฐ์ดํฐ ์ ์ก ์ ์ handshaking ๋จ๊ณ X
- Sender๋ ๋์ฐฉ์ง์ IP ์ฃผ์์ ํฌํธ ๋๋ฒ๋ฅผ ํจํท์ ๋ช ์์ ์ผ๋ก ๋ด์์ ๋ณด๋ธ๋ค
- Receiver๋ ์์ ํ ํจํท์์ sender์ IP ์ฃผ์์ ํฌํธ ๋๋ฒ๋ฅผ ์ถ์ถํ๋ค.
- ์ ์ก๋ ๋ฐ์ดํฐ๊ฐ ๋ถ์ค๋๊ฑฐ๋, ์์ฒญ์ด ์ง๋ ํ ๋ฐ๊ฒ๋ ์ ์๋ค.
- *UDP๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ ๋ขฐํ ์ ์๋ bytes ๊ทธ๋ฃน("datagram") ์ ์ก ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. *
2. TCP socket ; reliable, byte stream-oriented
*TCP๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ ๋ขฐํ ์ ์๋, ์์๊ฐ ์๋ byte-stream ์ ์ก("PIPE") ๋ฅผ ์ ๊ณตํ๋ค. *
- ํด๋ผ์ด์ธํธ๋ ๋ฌด์กฐ๊ฑด ์๋ฒ์ contact ํด์ผ ํจ!!
- ์๋ฒ ํ๋ก์ธ์ค๊ฐ ์ผ๋จ ๋จผ์ ์คํ ๋์ด์ผ ๋ญ ํจ
- ์๋ฒ๋ client์ contact์ ๋ฐ์ socket์ ๋ง๋ค๊ฒ ๋จ
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ contact ํ๋ ค๋ฉด
- TCP Socket์ ๋ง๋ฆ (์๋ฒ ํ๋ก์ธ์ค์ IP address์ port number๋ก ๊ตฌ๋ถ๋๋)
- client๊ฐ socket์ ๋ง๋ค ๋ client TCP๋ server TCP์๊ฒ ์ฐ๊ฒฐ์ ์ค์ ํจ(establishes)
- ์๋ฒ๋ client์๊ฒ contacted ๋๋ฉด ์๋ก์ด TCP socket์ ๋ง๋ฆ
- ๊ทธ client์ ํต์ ํ๊ธฐ ์ํด!
- ์๋ฒ๊ฐ ์ฌ๋ฌ ํด๋ผ์ด์ธํธ์ ๋ํํ ์ ์๋๋ก ํ๋ ค๊ณ !
- Source port number๋ ๊ฐ ํด๋ผ์ด์ธํธ๋ค์ ๊ตฌ๋ถํ๋๋ฐ ์ฐ์ธ๋ค.
'๐ก๐ธ๐ธ๐ถ5: ๐ฆ๐๐๐๐ถ ๐ฐ๐๐พ๐ > Computer Network(COSE342)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ปดํจํฐ๋คํธ์ํฌ] CH3. Transport Layer (#2) (0) | 2021.10.19 |
---|---|
[์ปดํจํฐ๋คํธ์ํฌ] CH3. Transport Layer (#1) (0) | 2021.10.19 |
[์ปดํจํฐ๋คํธ์ํฌ] CH2. Application Layer (#3) (0) | 2021.10.17 |
[์ปดํจํฐ๋คํธ์ํฌ] CH2. Application Layer (#2) (0) | 2021.10.17 |
[์ปดํจํฐ๋คํธ์ํฌ] CH2. Application Layer (#1) (0) | 2021.10.17 |