[๋คํธ์ํฌ] TCP, UDP
๐ ํ๋กํ ์ฝ ๊ณ์ธต์์์ ๋ฉ์ธ์ง ์ ์ก๊ณผ์
- ํ๋ก๊ทธ๋จ์ด Hello, world! ๋ฉ์์ง ์์ฑ
- SOCKET ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ OS๊ณ์ธต์ ๋ฉ์์ง ์ ๋ฌ
- OS์์ ๋ฉ์์ง์ TCP์ ๋ณด๋ฅผ ์์ฑํ๊ณ IP ํจํท์ ์์ฑํ๋ค.
- ๋คํธ์ํฌ ์ธํฐํ์ด์ค์์ LAN์นด๋๋ฅผ ํตํด์ ๋๊ฐ ๋ Ethernet frame๊ณผ ํจ๊ป ๋๊ฐ๋ค.
๐ ํจํท์ด๋? ์ธํฐ๋ท์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๊ณผ์ ์ ์ค์ (๋ผ์ฐํ )ํ ๋ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ์กฐ๊ฐ์ผ๋ก ๋๋๋๋ฐ ์ด ์กฐ๊ฐ์ ํจํท์ด๋ผ ํ๋ค.
๐ TCP๋?
TCP ์ธํฐ๋ท์์์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ์ธ์งํํ๋ก ๋ณด๋ด๊ธฐ ์ํด IP์ ํจ๊ป ์ฌ์ฉ ํ๋ ์ ์ก ์ ์ด ํ๋กํ ์ฝ(Transmission Control Protocl)์ ๋๋ค.
โช TCPํน์ง
- ์ฐ๊ฒฐ์งํฅ์ฑ(TCP 3 way handshake)
๋จผ์ ์ฐ๊ฒฐ์ ํ๊ณ ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค. ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ๋ชจ๋ ์ฐ๊ฒฐ ๊ฐ๋ฅ์ํ์ฌ์ผ ๋์ํ๋ค.
TCP 3 way handshake ๊ณผ์
- ํด๋ผ์ด์ธํธ์์ SYN(์ ์์์ฒญ)์ด๋ผ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค.
- ์๋ฒ๊ฐ ๋ฉ์์ง๋ฅผ ๋ฐ์ผ๋ฉด Syn(์ ์์์ฒญ)๊ณผ ACK(์์ฒญ ์๋ฝ)์ด๋ผ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค.
- ๋ฉ์์ง๋ฅผ ๋ฐ์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ACL(์์ฒญ์๋ฝ)์ ๋ณด๋ธ๋ค. (์ด ๊ณผ์ ์์ ๋ฐ์ดํฐ๋ ํจ๊ป ์ ์กํ๋ ๊ฒฝ์ฐ๋ ์๋ค.)
- ์ฐ๊ฒฐ์ด ๋๊ณ ๋๋ฉด ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋ค.
์ฐ๊ฒฐ ๊ณผ์ ์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๋ฉ์์ง๋ฅผ ๋ณด๋ด ์๊ธฐ ๋๋ฌธ์ ์์ ์ฑ์ด ๋ณด์ฅ๋๊ณ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ์ ์ ๋ขฐ๊ฐ ์์ฑ๋ฉ๋๋ค.
ํ์ง๋ง ์ด๋ฌํ ์ฐ๊ฒฐ๊ณผ์ ๋๋ฌธ์ UDP๋ณด๋ค ์๋๊ฐ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
๋ฐ๋ผ์ ์ ๋ขฐ์ฑ์ด ์๊ตฌ๋๋ ์ ์ก์ ์ฐ์ ์ฌ์ฉํฉ๋๋ค.
3 way handshake ๊ณผ์ ์ ์ค์ ๋ก(๋ฌผ๋ฆฌ์ ์ผ๋ก) ์ฐ๊ฒฐ๋ ๊ฒ์ด ์๋๋๋ค.
์ค๊ฐ์ ๋
ธ๋๋ค์ ์ฐ๊ฒฐ๊ณผ์ ์์ ์ ์ธ๋๊ณ ํด๋ผ์ด์ธํธ์ ์ต์ข
์๋ฒ ๊ฐ์ ๋
ผ๋ฆฌ์ ์ฐ๊ฒฐ์ผ ๋ฟ์
๋๋ค.
- ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ
ํจํท์ด ์ค๊ฐ์ ๋๋ฝ์ด ๋๋ฉด ์๋๋ฐฉ์ด ์ ์ ์์ต๋๋ค. - ์์ ๋ณด์ฅ
๋ง์ฝ ์๋ฒ์ ์์๊ฐ ๋ง์ง ์๊ฒ ๋์ฐฉํ๋ค๋ฉด(= ๋ฐ์ดํฐ๊ฐ ์์ค๋์๋ค๋ฉด), ํด๋ผ์ด์ธํธ์ ๋ฌธ์ ์ ๋ถํฐ ๋ค์ ๋ณด๋ด๋ผ๊ณ ๋ฐ์ดํฐ ์์ฒญ์ ํฉ๋๋ค.(์ฌ์์ฒญ) - ์ ๋ขฐํ ์ ์๋ ํ๋กํ ์ฝ
- ํ์ฌ๋ ๋๋ถ๋ถ TCP ์ฌ์ฉ
๐UDP๋?
UDP๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ๊ทธ๋จ ํ๋กํ ์ฝ(User Datagram Protocol)์ ๋ปํ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํธ๊ทธ๋จ ๋จ์๋ก ์ฒ๋ฆฌํ๋ ํ๋กํ ์ฝ์ ๋๋ค.
UDP๋ TCP์ ๋ค๋ฅด๊ฒ ๋น์ฐ๊ฒฐ ์๋น์ค๋ก ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ํด์ ํ๋ ๊ณผ์ ์ด ์กด์ฌํ์ง ์์ต๋๋ค.
UDP ํน์ง
- ํ์ ๋ํ์ง์ ๋น์ (๊ธฐ๋ฅ์ด ๊ฑฐ์ ์์)
- ๋น์ฐ๊ฒฐ์ฑ - TCP 3 way hankshacke x
- ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ x
- ์์ ๋ณด์ฅ x
-
๋ฐ์ดํฐ ์ ๋ฌ ๋ฐ ์์๊ฐ ๋ณด์ฅ๋์ง ์์ง๋ง, ๋จ์ํ๊ณ ๋น ๋ฆ
- ์ ๋ขฐ์ฑ๋ณด๋ค ์ฐ์์ฑ์ด ์ค์ํ ์๋น์ค์ ์ฌ์ฉ(์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ์๋น์ค)
๐ฌ ์ต์ ๋๊ธ