์์
ใด IP address / ์์ดํผ ์ฃผ์
ใด IP์ ํ๊ณ์ (TCP์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ)
IP(Internet Protocal)๋?
IP๋ ์ธํฐ๋ท ํ๋กํ ์ฝ ํน์ ์ธํฐ๋ท ํต์ ๊ท์ฝ ์ด๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
ํต์ ๊ท์ฝ์ด๋๊ฒ ๋ฌด์จ ๋ง์ผ๊น?
์ธํฐ๋ท์ ์์ฃผ ๋ฉ๋ฆฌ ๋จ์ด์ ธ์๋ ๋ ์๋ฒ ํน์ ์ปดํจํฐ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ฒํด์ฃผ๋ ์ญํ ์ ํด์ฃผ๋ ํธ๋ฆฌํ ์กด์ฌ์ด๋ค.
์ฐ๋ฆฌ๊ฐ ์ปดํจํฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉด(๋ฉ์ธ์ง๋, ๋ฉ์ผ ๊ฐ์ ๊ฒ์ ์ ์ก) ์ธ๊ณต์์ฑ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ์ ์๋ํธ์ ์ปดํจํฐ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ฃผ๋ ์ค ์์์ง๋ง(์ปดํจํฐ๋ฅผ ๊ณต๋ถํ๊ธฐ์ ์ ๋ ๊ทธ๋ ๊ฒ ์๊ฐํ์๋ค...) ์ฌ์ค ๊ทธ๋ ์ง ์๋ค.
์ปดํจํฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋, ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ค๋ฉด, ๋ฐ์๋ค์ด๊ธฐ ์ฝ๋ค(๋๋ ๊ทธ๋ ๋ค).
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์ธํฐ๋ท์(์์ดํ์ด ์ญ์) ๊ฒฐ๊ตญ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด์๋ค. ์ด๊ฑธ ๋์ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ด๊ฐ ์ ์กํ ๋ฐ์ดํฐ๋ฅผ ์ง๊ตฌ ๋ฐ๋ํธ์ ์๋ ์น๊ตฌ์๊ฒ ์ ์กํ ๋, ์ฌ์ค ๊ทธ ์ฌ์ด์๋ ๋ ๋ง์ ์๋ฒ(์ปดํจํฐ ํน์ ๋ ธ๋)๋ฅผ ๊ฑฐ์น๋ ๊ฒ์ด๋ค.
์ฌ์ค ์ด๋ ๊ฒ ๋ณต์กํ ๊ณผ์ ์ ๊ฑฐ์ณ์ ๋ฐ์ดํฐ(ํน์ ํจํท)์ด ์ ์ก๋๋๋ฐ ์ ํด์ง ๊ท์น์ด ์๋ค๋ฉด, ๊ธธ์ ์๊ณ ๋ฐ์ดํฐ๋ฅผ ์์คํ ํ๋ฅ ์ด ๋๋ค.
์ต์ํ ์ด๋์ ์ด๋๋ก ๋ณด๋ด๋์ง๋ ์์์ผ์ง...
๊ทธ๋์ ํ์ํ ๊ฒ์ด ํต์ ๊ท์ฝ์ด๋ค.
์ฐ๋ฆฌ๊ฐ ์ธํฐ๋ท์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋, ์ ๋๋ก ์ ์กํ๊ธฐ ์ํด์ ํน์ ํ ๊ท์น์ ๋ฐ๋ฅด์๊ณ ์ฝ์ํ ๊ฒ์ด๋ค.
๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋, ํจํท(packet)์ด๋ผ๋ ํต์ ๋จ์๋ก ์ ์กํ๋๋ฐ ์ด ํจํท์ ์ด๋ค ์ ๋ณด๋ฅผ ๋ด์ ๊ฒ์ธ๊ฐ๋ฅผ ์ ํ๋ ๊ฒ์ด IP์ ์ญํ ์ด๋ค.
IP address / ์์ดํผ ์ฃผ์
๋ชจ๋ ์๋ฒ(ํน์ ์ปดํจํฐ)๋ ๊ฐ์ ๊ณ ์ ์ IP์ฃผ์๋ฅผ ๊ฐ์ง๋ค. ์ธํฐ๋ท ์์ ์ฃผ์๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
IPv4(IP version 4)๋ผ๋ ๊ฒ ๋ณธ์ ์์ํ ๋ฐ IP์ฃผ์์ ์ฒด๊ณ๋ฅผ ์๋ฏธํ๋ค. IPv4๋ 3์๋ฆฌ์ฉ 4๋ง๋๋ฅผ ๊ฐ์ง๋ฉฐ ํ ๋ง๋๋ฅผ ์ฅํฏ(octet)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ฐ ์ฅํ ์ 0~255์ฌ์ด์ ์ซ์์ด๋ค.
ex) 192.111.111.121
์ปดํจํฐ์ ์๊ฐ ๋ง์์ง๋ฉด์ IPv6๊น์ง ๋์์๋ค. ์ด ๋ถ๋ถ์ ๋์ค์ ๋ค๋ฅธ ๊ธ์์ ๋ค๋ฃจ๋ ๊ฑธ๋ก..
๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋, ํจํท์ด ๊ธธ์ ์์ง ์๊ฒ ๋ณด๋ด๋ ๊ณณ๊ณผ ๋ฐ๋ ๊ณณ์ IP์ฃผ์๋ฅผ ๋ฃ์ด์ค๋ค.
IP์ ํ๊ณ์
TCP๊ฐ ํ์ํ ๋ฐฐ๊ฒฝ์ด IP๊ฐ ๋ง๋ฅ์ด ์๋๋ผ๋ ์ ์ด๋ค.
IP์ ๋ฌธ์ ์ ์ด 3๊ฐ์ง๊ฐ ์๋๋ฐ ๋น์ฐ๊ฒฐ์ฑ / ๋น์ ๋ขฐ์ฑ / ํ๋ก์ธ์ค(ํ๋ก๊ทธ๋จ) ๊ตฌ๋ถ ์ด๋ค.
โถ ๋น์ฐ๊ฒฐ์ฑ
ํจํท์๋ ๋์ฐฉ์ง(๋์ฐฉ IP์ฃผ์)๊ฐ ์๋๋ฐ ๋ง์ฝ ํด๋น IP์ฃผ์๊ฐ ์๋ค๋ฉด?(๋ฉ์ธ์ง๋ฅผ ๋ฐ์ ์ฌ์ฉ์๊ฐ ์๋ฒ๋ฅผ ์ข ๋ฃ)
ํจํท์ ์ ๋ฌ๋์ง ์์ ๊ฒ์ ๊ฒ์ด๊ณ ํจํท์ ๋ณด๋ธ ์ฌ์ฉ์๋ ์ด๋ฅผ ์ ๋ฐฉ๋ฒ์ด ์๋ค.
โถ ๋น์ ๋ขฐ์ฑ
์ธํฐ๋ท๋ง์์๋ ๋ฐ์ดํฐ๊ฐ ์ ์ก๋ ๋, ์ฌ๋ฌ ๋ ธ๋(์ธํฐ๋ท์์ ๋ง์ ์๋ฒ)๋ฅผ ํตํด์ ๋์ฐฉ์ง๋ ์ด๋ํ๋ค๊ณ ํ๋ค.
์ด๋ ๊ฒ ์ด๋ํ๋ ๊ณผ์ ์์ ์ค๊ฐ ๋จ๊ณ์ ๋ ธ๋(์๋ฒ)์ ๋ฌธ์ ๊ฐ ์๊ฒจ ํจํท์ด ์์ค๋๋ค๋ฉด?
๋ ์ ์กํ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ํจํท์ผ๋ก ๋๋๋๋ฐ ์ด ํจํท๋ค์ด ์๋ก ๋ค๋ฅธ ๋ ธ๋๋ฅผ ๊ฑฐ์ณ์ ์ ์ก๋ ์๋ ์๋ค.(๋ ธ๋์ ๊ฒฝ๋ก๊ฐ ๋ณด์ฅ๋์ง๋ ์๋๋ค.)
๊ทธ๋ ๋ค๋ฉด ํจํท ์ต์ข ๋์ฐฉํ๋ ์์๊ฐ ๋ณด์ฅ๋์ง๋ ์๋๋ค.
์) ๋ณด๋ผ ๋ฉ์์ง๊ฐ ํจํท1, ํจํท2, ํจํท3์ ์์๋๋ก ๋์ฐฉํด์ผํ๋๋ฐ ํจํท2, ํจํท1, ํจํท3์ ์์๋ก ๋์ฐฉํ ์๋ ์๋ค.
โถ ํ๋ก์ธ์ค ๊ตฌ๋ถ
์ฐ๋ฆฌ๋ ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ ๋, ํ๋์ ์์ ๋งํ์ง๋ ์์ ๊ฒ์ด๋ค.
์ด ๊ธ์ ์ฐ๊ณ ์๋ ๋๋ ๋ฉ์ ์ ๋ฅผ ์ผ๋๊ณ ์คํธ๋ฆฌ๋ฐ ์์ ์ ํ๊ณ ๊ทธ๋ฆผ ํด์ ์ผ๊ณ IDE๋ ์ฌ์ฉํ๋ค. ๋ฌผ๋ก , ์ธํฐ๋ท ๋ธ๋ผ์ฐ์ ๊น์ง..
์ด์ฒ๋ผ ๊ฐ ํ๋ก๊ทธ๋จ(ํ๋ก์ธ์ค)๋ค์ด ์ธํฐ๋ท์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ก ๋ฐ์ํ ๋ฐ ๋ชจ๋ ํ๋์ ์ปดํจํฐ(์๋ฒ)์์ ์ด๋ค์ง๋ฏ๋ก ๋์ฐฉํ๋ IP์ฃผ์๋ ๋์ผํ๋ค.
ํจํท์ ๋์ฐฉIP์ฃผ์๊ฐ ๋ด๊ฒจ์์ด ๋ด ์ปดํจํฐ๊น์ง๋ ์ฌํ ์ง๋ง ์ด๋ค ํ๋ก๊ทธ๋จ(ํ๋ก์ธ์ค)์ ํ์ํ ๊ฒ์ธ์ง๋ ์ ์๊ฐ ์๋ค.
์ ๊ฐ์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด์ TCP๊ฐ ์ฌ์ฉ๋๋ค.
TCP(Transmission Control Protocol)
TCP (Transmission Control Protocol)๋ IP ๋คํธ์ํฌ์ ๋ ์ปดํจํฐ ๊ฐ์ ์ฐ๊ฒฐ ์งํฅ ํต์ ์ ์ํ ์ ์ก ๊ณ์ธต ํธ์คํธ ๊ฐ ํ๋กํ ์ฝ์ ๋๋ค. TCP๋ ๊ฐ์ ํฌํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์ปดํจํฐ ๊ฐ์ ๋ฌผ๋ฆฌ์ ์ฐ๊ฒฐ์ ์ฌ์ฌ์ฉ ํ ์ ์๋ ๊ฐ์ ์ข ๋จ ๊ฐ ์ฐ๊ฒฐ์ ๋ง๋ญ๋๋ค. TCP๋ HTTP ๋ฐ SMTP (email)๊ณผ ๊ฐ์ ์์ ๋ ๋ฒจ ํ๋กํ ์ฝ ๋ฐ์ดํฐ๋ฅผ ์บก์ํํฉ๋๋ค.
-์ถ์ฒ: MDN ํํ์ด์ง
์ฝ๊ฒ ๋งํด ์์๋งํ IP์ ํ๊ณ์ ์ ๊ทน๋ณตํ ์ ์๋ ์ ๋ณด๋ฅผ ๋ฉ์ธ์ง์ ๋จผ์ ๊ฐ์ผ๋ค๋ ์ด์ผ๊ธฐ์ด๋ค.
TCP ์ธ๊ทธ๋จผํธ(TCP segment)
TCP์ ์ญํ ์ ์ ์กํ ๋ฐ์ดํฐ๋ฅผ ์คํธ๋ฆผ์์ ๋ฐ์ ํค๋์ ์ก์ ํฌํธ, ์์ ํฌํธ, ์ํ์ค ๋๋ฒ ๋ฑ ์ ์ก ์ ์ด์ ํ์ํ ์ ๋ณด๋ฅผ ๋ฃ์ด์ ์บก์ํ ํด์ค๋ค.
์ด๋ ๊ฒ ์บก์ํ๋ ๋จ์๋ฅผ TCP segment๋ผ๊ณ ํ๋ค. ์ด๋ฅผ ๋ค์ IP ๋ฐ์ดํฐ๊ทธ๋จ ํน์ ํจํท์ ์บก์ํํด์ ์ ์กํ๋ค.
TCPํค๋์๋ ์ด๋ค ํ๋ก๊ทธ๋จ์ ์ฌ์ฉ๋ ์ ๋ณด์ธ์ง, ํจํท์ ์์๋ ์ด๋ป๊ฒ ๋๋์ง ๋ฑ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์ ๋๋๋ค.
TCP ์ธ๊ทธ๋จผํธ๋ฅผ ์บก์ํํด์ ๋ณด๋์ผ๋ก์จ, IP๊ฐ ๊ฐ์ง๋ ๋น์ ๋ขฐ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ์ ์๋ค.
์ฌ๊ธฐ์ ํฌํธ(Port)๋?
ํฌํธ๋, ๊ฐ์ ์์ดํผ ์์์ ํ๋ก์ธ์ค๋ฅผ ์๋ณํ๊ธฐ ์ํ ๋ฒํธ์ด๋ค.
IP:PORT ๊ฐ์ด ์ฐ์ธ๋ค.
ex) http://192.111.23.1:80 => IP์ฃผ์ 192.111.23.1์ 80๋ฒ ํฌํธ๋ผ๋ ์๋ฏธ์ด๋ค.
3-way handshake
TCP ์ธ๊ทธ๋จผํธ๋ฅผ ์บก์ํํ๋ ๊ฒ๋ง์ผ๋ก๋ IPํ๊ณ์ ๋น์ฐ๊ฒฐ์ฑ์ ํด๊ฒฐํด์ฃผ์ง๋ ์๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด 3-way handshake ์ด๋ค.
3-way handshake๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ๋์ด์์์ ํ์ธํ๋ ๊ณผ์ ์ ๋๋ค.
1. ํด๋ผ์ด์ธํธ๋ ๋๊ธฐํ๋ฅผ ์์ฒญ, SYN(Synchronize)
2. ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋๊ธฐํ ์์ฒญ SYN๊ณผ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์น์ธ๋์์์ ์๋ฆผ ACK(Acknowledgement)
3. ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์์ฒญ์ ์น์ธ ACK
์ ์ธ ๊ณผ์ (3 way handshake)๋ฅผ ๊ฑฐ์ณ ์ฐ๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
์๋ฌธ ์ค๋ช ์ ์๋์ ๋งํฌ์์ ํ์ธํ ์ ์์ต๋๋ค.
MDN TCP ํธ๋์์ดํฌ: https://developer.mozilla.org/en-US/docs/Glossary/TCP_handshake
TCP์ UDP์ ์ฐจ์ด
๋จผ์ TCP์ UDP๋ IP์ ํ๊ณ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด์ ํ์ํ ๊ฒ์ธ๋ฐ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ TCP๋ฅผ ์ฌ์ฉํ๋ค.
๊ทธ๋์ TCP/IP๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
UDP(User Datagram Protocol)๋ TCP๋ฅผ ์ปค์คํฐ๋ง์ด์ง ํ ์ ์๋ ํ๋กํ ์ฝ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ด ๊ธ์์๋ TCP์ ๋ํ ๋ถ๋ถ๋ง ๋ค๋ฃน๋๋ค.
์๋ชป๋๊ฑฐ๋ ์์ ํด์ผํ ๋ถ๋ถ์ด ์๋ค๋ฉด ์๊ฒฌ ๋จ๊ฒจ์ฃผ์๋ฉด ๊ฐ์ฌํฉ๋๋ค.