๊ธ€ ์ž‘์„ฑ์ž: ๋˜ฅํด๋ฒ .
๋ฐ˜์‘ํ˜•

์„ค๋ช… ์ „ 2์ค„ ์š”์•ฝ

  • NAT๋Š” ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์—์„œ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๋กœ ํ†ต์‹ ์„ ํ•  ๋•Œ IP๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค.
  • ๋ณดํ†ต P2P ํ˜•์‹์˜ ๊ฒŒ์ž„์„ ๋งŒ๋“ค ๋•Œ NAT๋•Œ๋ฌธ์— UDP ํ™€ํŽ€์นญ์ด๋ž€ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด ํ†ต์‹  ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

P2P(Peer to Peer)


์Šคํƒ€ํฌ๋ž˜ํ”„ํŠธ๊ฐ™์€ ๋Œ€์ „๊ฒŒ์ž„์€ ์ƒ๋Œ€๋ฐฉ๊ณผ ์–ด๋–ค ๊ตฌ์กฐ๋กœ ํ†ต์‹ ํ•˜๋ฉด์„œ ํŒจํ‚ท์„ ์ฃผ๊ณ ๋ฐ›์„๊นŒ?

์œ„์™€ ๊ฐ™์ด ์ค‘๊ฐ„์— ํŠน๋ณ„ํ•œ ์„œ๋ฒ„ ์—†์ด ์œ ์ €์™€ ์œ ์ €๋ผ๋ฆฌ ์ง์ ‘์ ์œผ๋กœ ํ†ต์‹ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.

(๋ฌผ๋ก  ๋กœ๊ทธ์ธ์ด๋‚˜ ์Šน/ํŒจ ๊ด€๋ฆฌ ๋“ฑ๋“ฑ ์ด๋Ÿฐ ๊ธฐ๋Šฅ๋“ค์€ ๊ฒŒ์ž„์„œ๋ฒ„๊ฐ€ ๊ด€๋ฆฌํ•œ๋‹ค)

 

์œ„์™€ ๊ฐ™์ด, ์œ ์ €์™€ ์œ ์ €๋ผ๋ฆฌ ํ†ต์‹ ์„ ํ•˜๋Š” ๋ฐฉ์‹์„ P2P(Peer to Peer)๋ผ๊ณ  ํ•œ๋‹ค.

๋ณดํ†ต P2P ์Šคํƒ€์ผ์˜ ๊ฒŒ์ž„์—์„œ ์ง€์—ฐ์„ ์ตœ์†Œํ™” ํ•˜๊ธฐ ์œ„ํ•ด UDP๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ์„ ํ•˜๋Š”๋ฐ TCP๋„ ๊ทธ๋ ‡์ง€๋งŒ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์„œ๋กœ๊ฐ€ ์„œ๋กœ์˜ IP์ฃผ์†Œ์™€ ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ์•Œ์•„์•ผํ•œ๋‹ค.

๋ญ, ์—ฌ๊ธฐ๊นŒ์ง„ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค! ๋ฌธ์ œ๋Š” ์ธํ„ฐ๋„ท ๋ณด๊ธ‰๋ฅ ์ด ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋˜๊ณ  ํ•œ ๊ฐ€์ •์—์„œ ์ธํ„ฐ๋„ท์„ ์ด์šฉํ•˜๋Š” ๊ธฐ๊ธฐ๋“ค์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋˜๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ๊ฐ€์ •์ด ๊ณต์œ ๊ธฐ๋ผ๋Š” ๊ฒƒ์„ ์„ค์น˜ํ•ด ์ธํ„ฐ๋„ท์„ ์ด์šฉํ•œ๋‹ค.

 

์ด ๊ณต์œ ๊ธฐ๋ผ๋Š” ๊ฒƒ์€ ์œ„์˜ ๋ง ๊ทธ๋Œ€๋กœ, ํ•˜๋‚˜์˜ ์ธํ„ฐ๋„ท ์„ ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ธฐ๊ธฐ๋“ค์ด ์ธํ„ฐ๋„ท์„ ์œ ์„  ํ˜น์€ ๋ฌด์„ ์œผ๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

(์œ„์˜ ๊ทธ๋ฆผ์€ ์šฐ๋ฆฌ ์ง‘์˜ ์ธํ„ฐ๋„ท ๊ตฌ์กฐ์ธ๋ฐ LAN์„ ์ด ๊ณต์œ ๊ธฐ์— ์—ฐ๊ฒฐ๋˜๊ณ  ์ด ๊ณต์œ ๊ธฐ์™€ ์ปดํ“จํ„ฐ A, ์ปดํ“จํ„ฐ B๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ ๋‘ ๋Œ€์˜ ์ปดํ“จํ„ฐ ๋ชจ๋‘ ์ธํ„ฐ๋„ท์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ ์—ญ์‹œ ๊ณต์œ ๊ธฐ Wi-fi๋ฅผ ํ†ตํ•ด ์ธํ„ฐ๋„ท์ด ๊ฐ€๋Šฅํ•˜๋‹ค)

 

NAT(Network Address Translation)๋กœ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ


๋‹ค์‹œ ๋ณธ๋ก ์œผ๋กœ ๋Œ์•„๊ฐ€ P2P๊ฒŒ์ž„์—์„œ ์„œ๋กœ์˜ IP๋ฒˆํ˜ธ์™€ ํฌํŠธ๋ฒˆํ˜ธ๋งŒ ์•Œ๋ฉด ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ–ˆ๋‹ค.

๋ฌธ์ œ๋Š” ๊ณต์œ ๊ธฐ์—๋Š” NAT๋ผ๋Š” ๋…€์„์ด๋‹ค. ์ด NAT๋ผ๋Š” ๋…€์„์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•ด์„œ Private IP, Port๋ฒˆํ˜ธ๋ฅผ Public IP, Port๋ฒˆํ˜ธ ํ˜น์€ ๊ทธ ๋ฐ˜๋Œ€๋กœ ๋ณ€ํ™˜์‹œ์ผœ์ฃผ๋Š” ๊ฐœ๋…์ธ๋ฐ ์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด์ž.

์šฐ๋ฆฌ ์ง‘ ํ™˜๊ฒฝ์„ ์˜ˆ๋ฅผ ๋“ค๋ฉด, ๊ณต์œ ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ์ธํ„ฐ๋„ท์œผ๋กœ ์—ฌ๋Ÿฌ ๊ธฐ๊ธฐ๊ฐ€ ์ธํ„ฐ๋„ท์„ ์ด์šฉ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ํ†ต์‹ ์‚ฌ์—์„œ ์šฐ๋ฆฌ ์ง‘์œผ๋กœ ๋ฐœ๊ธ‰ํ•ด์ค€ IP๋Š” 100.100.100.100์ด๋‹ค.

์ด IP๋ฅผ ํ†ตํ•ด์„œ ์–ด๋Š ๋ˆ„๊ตฌ๋“ ์ง€ ์šฐ๋ฆฌ ์ง‘ ๋„คํŠธ์›Œํฌ๋กœ ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ธํ„ฐ๋„ท์„ ์ด์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ธฐ๊ธฐ๋Š” ์—ฌ๋Ÿฌ๋Œ€๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€์—ญ์ด ๋ถ„๋ฆฌ๋˜์–ด์žˆ๋‹ค.

์ปดํ“จํ„ฐ A๋Š” 192.168.0.2, ์ปดํ“จํ„ฐ B๋Š” 192.168.0.3์ธ๋ฐ ์ด IP๋Š” ๊ณต์œ ๊ธฐ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ IP์ฃผ์†Œ๊ณ  ์™ธ๋ถ€์—์„œ๋Š” ์ด IP๋กœ ์ ‘๊ทผ ํ•  ์ˆ˜ ์—†๋‹ค(์™œ๋ƒํ•˜๋ฉด, ๊ณต์œ ๊ธฐ๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ์šฐ๋ฆฌ ์ง‘ ๋„คํŠธ์›Œํฌ์—์„œ๋งŒ ์œ ํšจํ•œ IP์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค)

์ •๋ฆฌํ•˜์ž๋ฉด, ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋Š” IP๋ฅผ Public IP๋ผ ํ•˜๊ณ  ๋‚ด๋ถ€์—์„œ๋งŒ ์ด์šฉ ํ•  ์ˆ˜ ์žˆ๋Š” IP๋ฅผ Private IP๋ผ ํ•œ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ ์ง‘์—์„œ ์™ธ๋ถ€ ์ธํ„ฐ๋„ท๊ณผ ํ†ต์‹ ํ•  ๋•Œ๋Š” ์–ด๋–ค ๊ณผ์ •์ด ์ด๋ฃจ์–ด์งˆ๊นŒ?

 

์‹ค์ œ๋กœ ํ†ต์‹ ์‚ฌ๊ฐ€ ์šฐ๋ฆฌ ์ง‘์œผ๋กœ ๋ฐœ๊ธ‰ํ•œ IP๋Š” 100.100.100.100์ด๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ถ€์—์„œ๋Š” ์ด IP(Public IP)๋ฅผ ํ†ตํ•ด์„œ ํ†ต์‹ ์„ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ, ๋‚˜(์ปดํ“จํ„ฐ A)๋Š” 192.168.0.2๋ผ๋Š” Private IP๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด Private IP๋ฅผ Public IP๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•œ๋ฐ ์ด๊ฒƒ์„ NAT๋ผ๊ณ  ํ•œ๋‹ค.

์ด NAT๊ฐ€ ๋‚˜์˜ Private IP, Port๋ฒˆํ˜ธ๋ฅผ Public IP์™€ ์ ์ ˆํ•œ ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ์ฐพ์•„์„œ ๋ฐ”๊ฟ”์ค€๋‹ค.

์‹ค์ œ๋กœ ๋‹ค๋ฅธ ์œ ์ €๋Š” ๋‚ด Private IP์™€ Port๋ฒˆํ˜ธ๋Š” ๋ชจ๋ฅด๊ณ  ๋ณ€ํ™˜๋œ Public IP, Port์™€ ํ†ต์‹ ์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

โ€ป ์—ฌ๊ธฐ์„œ ์ถ”๊ฐ€์ ์ธ ์„ค๋ช…์„ ํ•˜์ž๋ฉด ์šฐ๋ฆฌ ์ง‘ ์ปดํ“จํ„ฐ A(192.168.0.2)์™€ ์ปดํ“จํ„ฐ B(192.168.0.3)๋Š” ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์•ˆ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— NAT์—†์ด Private IP ๋งŒ์œผ๋กœ๋„ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ด NAT๋•Œ๋ฌธ์— P2P ํ†ต์‹ ์„ ํ•˜๋Š”๋ฐ ์ค‘์š”ํ•œ ๊ฑธ๋ฆผ๋Œ์ด ์ƒ๊ฒผ๋‹ค.

  1. ๋‚˜(์ปดํ“จํ„ฐ A)๋Š” ๋‹ค๋ฅธ ์œ ์ €์™€ ํ†ต์‹ ์„ ํ•ด์•ผ๋˜๋Š”๋ฐ ๋‚ด ์ปดํ“จํ„ฐ์˜ Private IP์™€ ํฌํŠธ๋ฒˆํ˜ธ๋งŒ ์•Œ์ง€ NAT๋ฅผ ๊ฑฐ์ณ์„œ ์–ด๋–ค Public IP์™€ Port๋ฒˆํ˜ธ๋กœ ๋ณ€ํ™˜๋ ์ง€ ๋ชจ๋ฅธ๋‹ค. -> ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ์œ ์ €ํ•œํ…Œ ๋‚ด IP์™€ Port๋ฒˆํ˜ธ๋ฅผ ์•Œ๋ ค์ฃผ์–ด ํ†ต์‹ ์„ ํ•ด์•ผ๋˜๋Š”๋ฐ Private IP๋ผ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค
  2. ๋‹ค๋ฅธ ์œ ์ €๋Š” ๋‚ด ์ปดํ“จํ„ฐ A์™€ ์—ฐ๊ฒฐ์„ ํ•  ๋•Œ ๋‚ด ์ปดํ“จํ„ฐ A์˜ Public IP, Port๋ฒˆํ˜ธ๋Š” ์•Œ์ง€๋งŒ Private IP์™€ Port๋ฒˆํ˜ธ๋Š” ์•Œ์ง€ ๋ชปํ•œ๋‹ค

์ด ๋‘ ๊ฐ€์ง€์˜ ๊ฑธ๋ฆผ๋Œ์„ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์•ˆ์œผ๋กœ UDP Hole Punching์ด๋ผ๋Š” ๊ธฐ๋ฒ•์ด ์žˆ๋‹ค.

๋‹ค์ŒํŽธ์— ๊ณ„์†...

๋ฐ˜์‘ํ˜•