1)P2P๋ (Peer to Peer)ย
์ปดํจํฐ์ ์๋ฐฉํฅ ํ์ผ ์ ์ก ์์คํ ์ ๊ฐ๋ฆฌํต๋๋ค. ์ค์์๋ฒ ์์ด ์ปดํจํฐ์ ์ปดํจํฐ๊ฐ์ ์ฐ๊ฒฐํด์ฃผ๋ฉฐ ํ๋ก๊ทธ๋จ ์์ง๋ง ๋ง๋ค๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๊ฐํธํ๊ฒ ํ์ผ์ ์ ์กํ ์ ์๋ค. ์ธํฐ๋ท์ด ๋ฐ๋ฌ๋๋ฉด์ ํ์ผ์ ์ก์๋๊ฐ ๋ ๋นจ๋ผ์ง๋๋ค.
์ฆ ๋คํธ์ํฌ๋ฅผ ํ์ํ๊ณ ์๋ ๋น์ฌ์๊ฐ ๋์ผํ ๊ธฐ๋ฅ์ ๊ฐ๊ณ ์ด๋ ๋น์ฌ์๋ ํต์ ์ธ์ ์ ์์ํ ์ ์๋ ๋ถ์ฐ๋ ํต์ ๋ชจ๋ธ์ ๋๋ค. ๋๊ท๋ชจ ๋ณ๋ ฌ ์ปดํจํ , ๋ถ์ฐ ์คํ ๋ฆฌ์ง ๋ฐ ๊ธฐํ ๊ธฐ๋ฅ์ ์ต๋ช ํ ๋ ๋ผ์ฐํฐ๋ฅผ ์ ๊ณตํ๋๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.ย
๊ฒฐ๋ก ์ ์ผ๋ก P2Pํ์ผ์ ๋ค์ด๋ก๋ ํ๋๋ฐ ์ฌ์ฉ ๋๋ ๋คํธ์ํฌ ํ๋กํ ์ฝ์ ๋๋ค.
2)ํผ์ด(PEER) - A(B)
ย ํผ์ด๋ ๋คํธ์ํฌ์ ๋ค๋ฅธ ์ฌ์ฉ์์ด๊ฑฐ๋ ์ธํฐ๋ท๊ณผ ๊ฐ์ ๊ฒ์ ๋๋ค. ํผ์ด๋ ์์ ์ ์ปดํจํฐ์ ์ ์ฒด ํ์ผ์ด ์์ต๋๋ค. ย
A๋ ์์ ์๊ฒ ๋ถ์ ๋ชจ๋ ์ฌ๋๋ค ๋ปํฉ๋๋ค. ์ฆ 2(18)์ด๋ผ๋ฉด 2ใ ๋ช ์ด ๋ด๊ฐ ๋ฐฐํฌํด์ฃผ๊ณ ์๋ ์ธ์์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. B๋ ์๋ฃ๋ ์ฌ๋์ ์ ์ธํ ์ด ํ์ผ์ ๊ด๊ณ๋ ๋ชจ๋ ์ฌ๋์ ๋ปํฉ๋๋ค ย ย Seeder ์ Leecher ๋ฅผ ์ด์นญ
3)Swarm(์ค์)
ํน์ ํ์ผ๊ณผ ๊ด๋ จ๋ ์ฌ๋๋ค์ ๊ทธ๋ฃน์ ๋๋ค ์ฌ๊ธฐ์๋ ์จ์๊ณผ ๋๋ฃ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํจ๊ป ํ ๋ ํธ๋ฅผ ๊ณต์ ํ๋ ์ฌ๋๋ค์ ์ค์์ด๋ผ๊ณ ํฉ๋๋ค. 6๋ช ์ ํผ์ด(๋๋ฃ)์ 2๋ช ์(์๋) ๋ 8๊ฐ์ ์ค์์ด๋ผํ ์ ์์ต๋๋ค. ํธ๋์ปค๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ผ๋ก ๊ณต์ ํ์ผ๋ง๋ค ํด์ ์ ๋ณด์ ํผ์ด ๋ฆฌ์คํธ์ ์ ๋ณด ๋ชจ์์ ๋๋ค.
๋ค์ ๋งํด์ ํ์ฌ ํด๋น ํ์ผ์ ๊ณต์ ํ๊ณ ์๋ค๊ณ Track์๋ฒ ๋ฑ๋ก๋์ด ์๋ ํผ์ด๋ค์ ๋ชฉ๋ก์ ์๋ฏธํฉ๋๋ค. ์ด๋ฅผ Tracker์๊ฒ ์ ์ํ๋ client๋ค์๊ฒ peer๋ชฉ๋ก์ ใ ์ ์กํด์คย
4)lech(๊ฑฐ๋จธ๋ฆฌ)
์ ๋ก๋ํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ง์ด ๋ค์ด๋ก๋ํ๋ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ผ์น๋ ๋๋ฃ์ ๋๋ค.ย
5)Snubbed (์ค๋ ธ๋ณด๋)
๋ค์ด๋ก๋ ํด๋ผ์ด์ธํธ๊ฐ 60์ด๊ฐ ๋์ง ๋ชปํ๋ฉด ์ค๋์ผ๋ก ํ์๋ฉ๋๋ค.ย
6)seeds(์จ์) ย X(Y)
์ด๋ฆ์์ ์ ์ ์๋ค ์ถ์ด ํ์ผ์ ์์ฑ์์ ๋๋ค. ์จ๋์๋ ์ปดํจํฐ์ ์์ ํ ํ์ผ์ด ์์ต๋๋ค. ๋์ผํ ํ์ผ์ ๋ํด ์ฌ๋ฌ ์๋๊ฐ ์ธํฐ๋ท์ ์์ ์ ์์ต๋๋ค. ์ด๊ฒ์ P2P ๊ณต์ ๋ฅผ ๋ณด๋ค ์ํํ๊ฒ ๋ง๋ญ๋๋ค. ย - 11(16) ์ด๋ผ๋ฉด 16๋ช ์ด ๋ค์ด๋ฐ์๊ณ 11๋ช ์ด ์จ๋ผ์ธ์์์ ๊ณต์ ํ๋ฉด์ ์ ๊ฒ ํ์ผ์ ๋ฐฐํฌํ๋ค๊ณ ๋ณด๋ฉด ๋๋ค. 16์ ์์ ์ฒด ์์ ์ด ์ต์ด ๊ณต์ ๋ ๋ฐฐํฌ์๊ฐ ๋์๋ค๋ฉด x๋ ํญ์ 0์ด๋ค. ย ย ๊ณต์ ํ์ผ์ ๋ชจ๋ ์กฐ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ์ฌ๋์ Seeder๋ผ๊ณ ํ๋ค. ์ผ๋ถ๋ง ๊ฐ์ง๊ณ ย ์๋ค๋ฉด Leecher
7)DHT : Distributed Hash Table์ ์ฝ์์ ๋๋ค. ์ด ํ ์ด๋ธ์ ์ถ์ ํ๋ก๊ทธ๋จ์์ ํน์ ํ์ผ์ ํธ์คํธํ๋ ํผ์ด ๋ชฉ๋ก์ ์ปดํ์ผํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
TorrentsTorrent : ์์ ๋ฉํ ๋ฐ์ดํฐ ํ์ผ์ด๋ฉฐ .torrent ํ์ฅ์๋ก ๋๋ฉ๋๋ค. ์ด ํ์ผ์๋ ๋ค์ด๋ก๋ ์ค์ธ ํ์ผ(์ํ, ์์ , ๊ฒ์ ๋ฑ)์ ๋ํ ๋ชจ๋ ์ ๋ณด๊ฐ ๋ค์ด์์ต๋๋ค. P2P ย ๋ค์ด๋ก๋๊ฐ ์์๋๋ฉด ํ ๋ ํธ ํ์ผ์ด ์ปดํจํฐ๋ก ์ ์ก๋ฉ๋๋ค.
8)Piece : ๊ณต์ ํ์ผ์ ํ์กฐ๊ฐ , ํ ๋ ํธ๋ ์กฐ๊ฐ๋จ์๋ก ๊ณต์ ํจ, ์กฐ๊ฐ์ ํฌ๊ธฐ๋ ์์ฑ์ ์ค์ ๊ฐ๋ฅ
9)Trackerย
: ํ์ผ ๊ณต์ ๋ฅผ ์ํ ํผ์ด๋ค์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ์๋ฒ, ๊ด๋ จ ์ง์์ด ์๋ค๋ฉด ๋๊ตฌ๋ ํธ๋์ปค๋ฅผ ๊ฐ์ค, ์ด์ํ ์ ์์, ํ ๋ ํธ ํ์ผ๋ง๋ค ์ฌ๋ฌ ํธ๋์ปค๋ฅผ ๊ฐ์ง ์ ์๊ณ ์ ๋ช ํ ํธ๋์ปค์ผ์๋ก ๋ง์ ํผ์ด๋ค์ด ์์ ์ ์๋ค. ๋ง์ ํผ์ด๊ฐ ์๋ค๋๊ฑด ์๋๊ฐ ๋๋ค๋ ๊ฒ
ย ๊ตฌ๊ธ ๊ฒ์๋ง์ผ๋ก๋ ์ ์ธ๊ณ ์ ๋ช ํธ๋์ปค ์๋ฒ ์ฃผ์๋ค์ ์ ์์์ผ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ๋น๊ณต๊ฐ ํ ๋ ํธ ์ง๋จ์ ํ๋์ ๋น๊ณต๊ฐ ํธ๋์ปค ์๋ฒ๋ฅผ ํตํด ์ด๋ค์ง๋ ๊ฒ์ด๋ฉฐ ํธ๋์ปค์๋ฒ์์๋ ์ ์ํ๋ ํด๋ผ์ด์ธํธ์ ์ ๋ณด(๋๊ฐ ์ผ๋จธ๋ ์ ๋ก๋ ํ๋์ง, ๋ค์ด๋ก๋ํ๋์ง ์ ๋ณด)๋ฅผ ์ด์ฉํด ์ด์ ๊ท์น์ ๋ง์ง ์๋ ์ฌ์ฉ์๋ค์ ํํฐ๋ง ํจ
๊ฐ์ฉ(ratio)
- ์์ ์ด ์์ ์๊ธฐํ A,B๋ค์ด ๊ฐ์ง๊ณ ์๋ ์์ค๋ค์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด์ ๋ช ๊ฐ์ ์์ ์ฒด๋ฅผ ๋ง๋ค ์ ์๋
๋น์จ(Ratio)
- ์ผ์ ์ด ์ฉ๋๊ณผ ์์ ์ด ์ ๋ก๋ํ ์์ ๋ํ ๋น์จ
ํ ๋ ํธ ๋์ ๋ฐฉย
1)ํ ๋ ํธ ์์
- ํ ๋ ํธ ํ์ผ์ ์คํํ์ฌ ํด๋ผ์ด์ธํธ์ ๋ฑ๋ก
- ํด๋น ํ ๋ ํธ ํ์ผ์ ๋ช ์๋ ํธ๋์ปค์ ์ ์
2) ํผ์ด์ ํธ๋์ปค๊ฐ์ ํต์ - Tracker Request (httpํ๋กํ ์ฝ ์ด์ฉ)
ย - ํด๋ผ์ด์ธํธ๊ฐ ํธ๋์ปค์๊ฒ ํด๋น ํ ๋ ํธํ์ผ์ ๊ณ ์ ํ ํด์ ๊ฐ๊ณผ ๋ณด์ธ ํผ์ด์ ์ ๋ณด๋ฅผ ์ ์กํจ (ํด๋น ํ ๋ ํธ ํผ์ด ๋ชฉ๋ก ์ป๊ธฐ ์ํจ)
ย - ํ๋ผ๋ฏธํฐ : ๊ณ ์ (peerid, port, upload(์ด์), download, left(๋จ์ ํฌ๊ธฐ), key(ํด๋ผ์ด์ธํธ ip๋ฐ๋์ด๋ ์ธ์ํ ์ ์๋ ๋น๊ณต๊ฐ ๊ฐ peer๊ฐ์๋ ๊ณต์ ๋์ง ์์), ip
3)ํผ์ด์ ํธ๋์ปค๊ฐ์ ํต์ - ย Tracker Response
- ํธ๋์ปค๊ฐ ํด๋น ํ ๋ ํธ์ ํด์๊ฐ์ ์ฐธ์กฐํ์ฌ ์ค์์ด ์กด์ฌํ๋์ง ๊ฒ์
- ์กด์ฌํ๋ค๋ฉด ์ค์์ ํฌํจ๋ ํผ์ด๋ค์ ๋ชฉ๋ก์ผ๋ก ๋ง๋ค์ด ํด๋ผ์ด์ธํธ์ ์ ์ก ๊ฐฏ์๋ ๊ธฐ๋ณธ 50๊ฐ์ด๊ณ ์์ํ๊ฒ ๋๋ค์ผ๋ก ์ ์ ๋๋ค.ย
- ์ค์์ ์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ Peer๋ค์ด ํ ๋ ํธ ์์์ ์ ์กํ ํธ๋์ปค Tracker Request์ ์ํด ๋ชฉ๋ก์ด ์์ฑ๋๊ณ ๊ด๋ฆฌ๋๋ค.ย
- ํธ๋์ปค response ๋ณด๋ด๋๊ฒ : complete(ํ์ฌ seeder๋ค์ ๊ฐ์), downloaded(๋ค์ด๋ก๋์ใน๋ฃ), incomplete(๊ณต์ ๋ฐ๊ณ ์๋ Leecher๋ค์ ๊ฐ์), min interval(๊ฐ๊ฒฉ)
*ํผ์ด๋ชฉ๋ก์ ๊ฒฐ์ ํ ๋ ๋ฌธ์ ์ ย
- ํธ๋์ปค๊ฐ ํผ์ด๋ฅผ ๊ฒฐ์ ํ ๋๋ ํ์ฌ ๋คํธ์ํฌ ํธ๋ํฝ๊ณผ ํผ์ด๊ฐ์ ๊ฑฐ๋ฆฌ ๋ฑ์ ๊ณ ๋ คํ์ง ์๊ณ ๋๋ค, ๋ค๋ฅธ ๋๋ผ์ ๋คํธ์ํฌ๋ง๊ณผ ์ฐ๊ฒฐ๋๋ฉด ์ถ๊ฐ ๊ธ์ ๋นใ ฃ์ฉ์ด ๋ฐ์ํจ, ์ด๋ฅผ ํด๊ฒฐํด์ ๋์จ๊ฒ์ด p4p isp์ฌ์ ์๋ค์ด ์ซ์ดํ๊ธฐ ๋
4) ย ํผ์ด๊ฐ ํต์ ย - ์ธ์ ์ฐ๊ฒฐย
- ํธ๋์ปค๋ฅผ ํตํด์ ํผ์ด ๋ชฉ๋ก์ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ ํด๋น ํผ์ป๋ฅด์๊ฒ ํด์, ๋ณธ์ธ์ Peer id๋ฅผ ์ ์กํ์ฌ ์ฐ๊ฒฐ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ํ์ ,
- ํด์๋ฅผ ๋ฐ์ ํผ์ด๋ ๋ณธ์ธ์ด ์ฐ๊ฒฐ ๊ฐ๋ฅํ๋ค๋ฉด ํด์ ๋ณธ์ธ์ PeerID๋ฅผ ์ ์กํ์ฌ ์๋ต
- ์๋ก ํด์๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด ์ธ์ ์ด ์ฐ๊ฒฐ๋๊ณ ํ์ผ ์ ์ก์ ์ค๋นํจย
- ํผ์ด์ ์์ ๋ฐ๋ผ ์ฌ๋ฌ๊ฐ์ ์ธ์ ์ด ์ฐ๊ฒฐ ๋จย
- Keep-alive(๋์ ํผ์ด๊ฐ on-line์ํ์ธ์ง), choke (Request๋ฐ์๋ ์๋ตํ ์ ์๋ ์ํ), HAVE(์์ ์ด ๊ฐ์ง๊ณ ์๋ Piace์ ์ธ๋์ค์ Offset ์ ๋ณด๋ฅผ ๋์ Peer์๊ฒ ์๋ฆผ)
5) ํผ์ด๊ฐ ํต์ - Piece์ ์ก
- ์ธ์ ์ฐ๊ฒฐ์ ์ฑ๊ณตํ Peer๋ ์์ ์ด ๋ณด์ ํ Piece์ ๋ณด๋ฅผ ์ ์กํจ
- ํด๋ผ์ด์ธํธ๋ Peer๋ค์๊ฒ ๋ฐ์ Piace๋ฅผ ํ ๋๋ก ์์ ์๊ฒ ํ์ํ piece๋ฅผ ์์ฒญํ๊ณ ํด๋น peer๋ก๋ถํฐ piece๋ฅผ ๋ค์ดํจ
6) peer ๊ฐ ํต์ - Piece ๋ค์ด๋ก๋ ์๋ฃ
- ์๋ฃ๋๋ฉด ๋ค๋ฅธ ํผ์ด๋ค์๊ฒ ํด๋น Piece๋ฅผ ๋ณด์ ํ๊ณ ์๋ค๊ณ ์ ๋ณด๋ฅผ ์ ์กํจ
7) ๋ชจ๋ Piece๋ค์ด๋ก๋ ์๋ฃย
- ํด๋ผ์ด์ธํธ๋ ๋ชจ๋ piece ๋ฅผ ๋ฐ์ผ๋ฉด ํด๋น ํ ๋ ํธ๋ฅผ Leecher์์ seeder๋ก ๋ณ๊ฒฝํ๊ณ ์ ๋ก๋ ๋๊ธฐํจย