[UDP ํํ์นญ(Hole Punching)] - NAT ๊ทธ๋ฆฌ๊ณ P2P(1/2)
์ค๋ช ์ 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 ํต์ ์ ํ๋๋ฐ ์ค์ํ ๊ฑธ๋ฆผ๋์ด ์๊ฒผ๋ค.
- ๋(์ปดํจํฐ A)๋ ๋ค๋ฅธ ์ ์ ์ ํต์ ์ ํด์ผ๋๋๋ฐ ๋ด ์ปดํจํฐ์ Private IP์ ํฌํธ๋ฒํธ๋ง ์์ง NAT๋ฅผ ๊ฑฐ์ณ์ ์ด๋ค Public IP์ Port๋ฒํธ๋ก ๋ณํ๋ ์ง ๋ชจ๋ฅธ๋ค. -> ๋ฐ๋ผ์ ๋ค๋ฅธ ์ ์ ํํ ๋ด IP์ Port๋ฒํธ๋ฅผ ์๋ ค์ฃผ์ด ํต์ ์ ํด์ผ๋๋๋ฐ Private IP๋ผ ์๋ฏธ๊ฐ ์๋ค
- ๋ค๋ฅธ ์ ์ ๋ ๋ด ์ปดํจํฐ A์ ์ฐ๊ฒฐ์ ํ ๋ ๋ด ์ปดํจํฐ A์ Public IP, Port๋ฒํธ๋ ์์ง๋ง Private IP์ Port๋ฒํธ๋ ์์ง ๋ชปํ๋ค
์ด ๋ ๊ฐ์ง์ ๊ฑธ๋ฆผ๋์ ํด๊ฒฐ ํ ์ ์๋ ๋ฐฉ์์ผ๋ก UDP Hole Punching์ด๋ผ๋ ๊ธฐ๋ฒ์ด ์๋ค.
๋ค์ํธ์ ๊ณ์...
'Development > Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํด๋ผ์ด์ธํธ์ ์น ๊ฒ์์ ํต์ ๊ด๊ณ(feat. ์ด๋ฒคํธํ์ด์ง) (0) | 2021.03.30 |
---|---|
[๋คํธ์ํฌ ๊ธฐ์ด ์ง์] IP, CIDR ํ๊ธฐ๋ฒ, ์๋ธ๋ท ๋ง์คํฌ (0) | 2019.07.03 |
[UDP ํํ์นญ(Hole Punching)] - UDP ํํ์นญ(2/2) (24) | 2018.12.04 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
ํด๋ผ์ด์ธํธ์ ์น ๊ฒ์์ ํต์ ๊ด๊ณ(feat. ์ด๋ฒคํธํ์ด์ง)
ํด๋ผ์ด์ธํธ์ ์น ๊ฒ์์ ํต์ ๊ด๊ณ(feat. ์ด๋ฒคํธํ์ด์ง)
2021.03.30๋ณดํต ๊ฒ์์์ ํต์ ์ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ์ด ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ๊ณ ์๋ฒ๊ฐ ๊ทธ์๋ํด ์๋ตํ๋ ๋ฐฉ์์ ๊ทธ๋ ๋ค๋ฉด ๋ฐ๋๋ก ์๋์ ๊ฐ์ด ์๋ฒ๊ฐ ๋จผ์ ์์ฒญํ๊ฑฐ๋ ๋ช ๋ นํ๋ ๊ฒฝ์ฐ๋ ์์๊น? ์๋ค๊ณ ๋ด๋ ๋ฌด๋ฐฉํจ. ๊ฒ์์ผ๋ก ์๋ฅผ ๋ค์๋ฉด ์์ ๊ฐ์ด ๋ด ๋ชฌ์คํฐ๊ฐ ์๋๋ฐฉ์ ๋ชฌ์คํฐ๋ฅผ ์ฃฝ์ฌ์ ์ฌํ๋ฅผ ์ป๋ ๊ฒฝ์ฐ๋ ์๋์ ๊ฐ๊ฒ ์ง? 1. ํด๋ผ์ด์ธํธ๊ฐ ํน์ ๋ชฌ์คํฐ(ํฌํ์ด๋)๋ฅผ ์ฌ๋ฅํ๋ค๊ณ ์๋ฒ์๊ฒ ์์ฒญํ๋ฉด, 2. ์๋ฒ๋ ์ง์ง๋ก ๊ทธ ๋ชฌ์คํฐ๊ฐ ์ฌ๋ฅ๋์๋์ง ๋ฐ์ดํฐ๋ฅผ ๊ฒํ ํด์ ํ์ธํ๊ณ ์ง์ง๋ก ์ฃฝ์๋ค๋ฉด? ์๋ฒ์ ์ ์ฅ๋์ด์๋ ๋ณด์ ํ ์ด๋ธ์ ๊ฒ์ํด(ํฌํ์ด๋ ์ฌ๋ฅํ์ ๋ ๋ณด์์ ๋ฌด์์ธ๊ฐ?) 3. ๊ทธ ๋ณด์์ ์๋ฒ ๋ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ ํด๋ผ์ด์ธํธ์ชฝ์ผ๋ก ๊ฒฝํ์น 300 ์ฌ๋ ธ๋ค๊ณ ์๋ตํด์ค 4. ํด๋ผ์ด์ธํธ๋ ๊ทธ ์๋ต์ ๋ฐ๊ณ ์๋ฒ๊ฐ ๋ณด๋ด์ค ๊ฒฝํ์น๋งํผ ๊ฒฝํ์น ์์นํโฆ -
[๋คํธ์ํฌ ๊ธฐ์ด ์ง์] IP, CIDR ํ๊ธฐ๋ฒ, ์๋ธ๋ท ๋ง์คํฌ
[๋คํธ์ํฌ ๊ธฐ์ด ์ง์] IP, CIDR ํ๊ธฐ๋ฒ, ์๋ธ๋ท ๋ง์คํฌ
2019.07.03IP๋? IP? IP Address? Internet Protocol(์ธํฐ๋ท ํ๋กํ ์ฝ)์ ์ฝ์๋ค. ์ค๋ช ํ๊ธฐ ์ํด ์๋ฅผ ๋ค์๋ฉด, ์ฌ๋๋ง๋ค ์ฌ์ฉํ๋ ์ปดํจํฐ๋ ์ด์์ฒด์ ๋ ๋ค๋ฅด๊ณ , ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ ๊ตฌํ๋ ์ธ์ด๋ ๋ค๋ฅด๋ค. ์ด๋ ๊ฒ ๊ฐ์ ๋ค๋ฅธ ์์คํ ๋ผ๋ฆฌ ํต์ ํ๋ ๋ฐฉ๋ฒ๋ ๊ฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋ง๋ จ์ธ๋ฐ, ๋ค๋ฅธ ์์คํ ๋ผ๋ฆฌ ํต์ ์ด ๊ฐ๋ฅํ๋๋ก ์ผ์ข ์ ๊ท์ฝ์ ์ ํด์ผ ํ๋๋ฐ ์ด๊ฒ์ ์ธํฐ๋ท ํ๋กํ ์ฝ์ด๋ผ ํ๋ค. ๋น์ ๋ฅผ ํ์๋ฉด ํ๊ตญ์ธ, ์ผ๋ณธ์ธ, ์ค๊ตญ์ธ์ ์๋ก ์ฌ์ฉํ๋ ์ธ์ด๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ํ๊ฐ ๋์ง ์๋๋ค. ๋ฐ๋ผ์, ์์ด๋ผ๋ ์ธ๊ณ ๊ณต์ฉ์ด(์ผ์ข ์ ๊ท์ฝ)๋ฅผ ์ ํด์ ์์ฌ์ํต์ด ๊ฐ๋ฅํ๋๋ก ๋ง๋ค์๋๋ฐ ์ด๋ฅผ ์ปดํจํฐ ์ ์ฅ์์ ์๊ฐํด๋ณด์ ์ด์ , ์๋ก ์ด๋ป๊ฒ ํต์ ํ ๊ฒ์ธ์ง ๊ท์ฝ์ ์ ํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์๋ก ํต์ ์ ํ๊ธฐ ์ํด์ ์๋๋ฐฉ์ด ๋๊ตฐ์ง ์์์ผ ํ๋ค. (๋ดโฆ -
[UDP ํํ์นญ(Hole Punching)] - UDP ํํ์นญ(2/2)
[UDP ํํ์นญ(Hole Punching)] - UDP ํํ์นญ(2/2)
2018.12.042์ค ์์ฝ UDP ํํ์นญ์ ํตํด NAT๊ฐ ๊ตฌ์ฑ๋์ด์๋ ํธ์คํธ๋ผ๋ฆฌ ํต์ ์ด ๊ฐ๋ฅํ๋ค ํํ์นญ์ ์ํด์ ์ค๊ฐ์๋ฒ๊ฐ ํ์ํ๋ค UDP ํํ์นญ ์ด์ ๊ธ์์ NAT๋ก ์ธํด ์๋ก์ Public IP์ Port๋ฒํธ๋ฅผ ๋ชฐ๋ผ, P2P ํต์ ์ ํ๊ธฐ๊ฐ ์ด๋ ต๋ค๊ณ ํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐ ํ ๊น? ๊ฐ๋จํ๋ค, ์ด ๊ธ์ ์ฃผ์ ๋๋ก UDP ํํ์นญ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ด๋ฌํ ๊ธฐ๊ณ๋ฅผ ์ค์ํ์์ ๋ณธ ์ ์ด ์์๊ฒ์ด๋ค. ๊ตฌ๋ฉ์ ๋ซ์ด์ฃผ๋ ๋ ์์ธ๋ฐ UDP ํํ์นญ๋ ์๋ฏธ๋๋ก P2Pํต์ ์ ํ๊ธฐ ์ํด NAT์๋ค๊ฐ ํต๋ก(?)๊ฐ์ ๊ฒ์ ๋ซ์ด์ฃผ๋ ๊ธฐ๋ฒ์ ๋ปํ๋ค UDP ํํ์นญ์ ์ํด์ ์ค๊ฐ์๋ฒ๋ผ๋ ์กด์ฌ๊ฐ ํ์ํ๋ค. ์ค๊ฐ ์๋ฒ ์๋ ์์์์ IP ์ฒด๊ณ์ 300.300.300.300์ด๋ผ๋ IP๋ ์กด์ฌํ ์ ์์ต๋๋ค. (255๊ฐ ์ต๋ ์์น๊ธฐ ๋๋ฌธ) โฆ
๋๊ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.