TCP vs UDP
๐ฌ Intro
TCP์ UDP์ ์ฐจ์ด์ ๋ํด ์์๋ด ์๋ค.
โ TCP
1. ์ฐ๊ฒฐ ๊ธฐ๋ฐ ์ ์ก ๊ณ์ธต
TCP๋ ๋ ํ๋ก์ธ์ค ๊ฐ์ ์ฐ๊ฒฐ์ ๋จผ์ ์ค์ ํ ํ์ ํต์ ํ๋ ์ฐ๊ฒฐ ์งํฅํ
ํ๋กํ ์ฝ์
๋๋ค. ํต์ ์ด ์์๋๋ฉด ์ดํ ํจํท๋ง๋ค ์๋ ํ๋ก์ธ์ค์ ์ฃผ์๋ฅผ ๋ฐ๋ณตํด์ ๋ช
์ํ ํ์๊ฐ ์์ต๋๋ค.
2. 1:1 ์ฐ๊ฒฐ
์๋ฒ์ ํด๋ผ์ด์ธํธ๋ 1:1๋ก ์ฐ๊ฒฐ๋๋ฉฐ, ๊ฐ ์ฐ๊ฒฐ์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌ๋ฉ๋๋ค.
3. ์คํธ๋ฆผ ์ ์ก
TCP๋ ๋ฐ์ดํฐ๋ฅผ ์คํธ๋ฆผ ๋ฐฉ์
์ผ๋ก ์ ์กํ๋ฉฐ, ์ ์กํ ๋ฐ์ดํฐ ํฌ๊ธฐ์ ์ ํ์ด ์์ต๋๋ค. ์ด๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํธ ๋จ์๋ก ์ฐ์์ ์ผ๋ก ์ ์กํ๋ค๋ ์๋ฏธ์
๋๋ค.
4. ์ ๋ขฐ์ฑ ๋ณด์ฅ
TCP๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ ์กํ๊ธฐ ์ํด ๊ฐ ํจํท์ ์์ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ , ์์ค๋ ํจํท์ ์ฌ์ ์กํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๊ฐ ์ ํํ๊ฒ ์ ๋ฌ๋๊ณ , ์์ ํ ํจํท์ด ์์๋๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
5. ์ฑ๋ฅ ์ ํ ๊ฐ๋ฅ์ฑ
ํจํท์ ๋ํ ์๋ต์ ๋ฐ์์ผ ํ๋ฏ๋ก ์๋๊ฐ ๋ค์ ๋๋ฆด ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์คํธ๋ฆฌ๋ฐ ์๋น์ค
์์๋ ์ฌ์ ์ก์ผ๋ก ์ธํด ์ง์ฐ์ด ๋ฐ์ํ ์ ์์ด ๋ถ๋ฆฌํฉ๋๋ค.
6. ์ฐ๊ฒฐ ๊ด๋ฆฌ
TCP๋ 3-way handshaking
์ ํตํด ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ , 4-way handshaking
์ผ๋ก ์ฐ๊ฒฐ์ ํด์ ํฉ๋๋ค. ํด๋น ๋ถ๋ถ์ ๋ค๋ฅธ ํฌ์คํธ์์ ์์ธํ ๋ค๋ฃฐ ์์ ์ด๋ฏ๋ก ๊ฐ๋จํ๊ฒ๋ง ์ค๋ช
๋๋ฆฌ๊ฒ ์ต๋๋ค.
- 3-way handshaking: ์ก์ ์์ ์์ ์ ๊ฐ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ธฐ ์ํด 3๋จ๊ณ์ ์ ํธ ๊ตํ์ ํตํด ์ฐ๊ฒฐ์ ํ๋ฆฝํฉ๋๋ค.
- 4-way handshaking: ์ฐ๊ฒฐ์ ์ข ๋ฃํ ๋, ์์ธก ๋ชจ๋๊ฐ ์ฐ๊ฒฐ์ ์ข ๋ฃํ์์ ํ์ธํ๋ 4๋จ๊ณ ์ ์ฐจ์ ๋๋ค.
7. ํผ์ก ์ ์ด
TCP๋ ๋คํธ์ํฌ ์ํ์ ๋ฐ๋ผ ์ ์ก ์๋๋ฅผ ์กฐ์ ํ๋ ํผ์ก ์ ์ด
๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ด๋ ๋ฐ์ดํฐ์ ํ๋ฆ์ ์ ์ดํ์ฌ ๋คํธ์ํฌ ํผ์ก์ ๋ฐฉ์งํ์ง๋ง, ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์์ต๋๋ค.
์ฌ์ฉ ์ฌ๋ก
- ์น ๋ธ๋ผ์ฐ์ง (HTTP/HTTPS): TCP์ ์ ๋ขฐ์ฑ ์๋ ์ฐ๊ฒฐ์ด ์น ํ์ด์ง๋ฅผ ์์ ํ๊ฒ ์ ์กํ๋ ๋ฐ ์ ๋ฆฌํฉ๋๋ค.
- ์ด๋ฉ์ผ ์ ์ก (SMTP): ๋ฐ์ดํฐ ์์ค์ ํ์ฉํ์ง ์๋ ํ๊ฒฝ์์ TCP๋ ์ ํฉํ ํ๋กํ ์ฝ์ ๋๋ค.
โ UDP
1. ๋ฌด์ฐ๊ฒฐ ์ ์ก ๊ณ์ธต
UDP๋ ๋น์ฐ๊ฒฐํ
ํ๋กํ ์ฝ๋ก, ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ก์ ์์ ์์ ์ ๊ฐ์ ์ฐ๊ฒฐ์ ์ค์ ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์, ๊ฐ ํจํท์๋ ์์ ์์ ์ฃผ์๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค.
2. 1:N ์ฐ๊ฒฐ
UDP๋ 1:1๋ฟ๋ง ์๋๋ผ 1:N ์ฐ๊ฒฐ๋ ๊ฐ๋ฅํ์ฌ, ์ฌ๋ฌ ์์ ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์์ต๋๋ค.
3. ๋ฐ์ดํฐ ์ ์ค ํ์ฉ
UDP๋ ๋ฐ์ดํฐ ์์ค์ ํ์ฉํ๋ฉฐ, ํจํท์ด ์์ค๋๊ฑฐ๋ ์์๊ฐ ๋ค๋ฐ๋์ด๋ ์ฌ์ ์ก์ ์์ฒญํ์ง ์์ต๋๋ค.
4. ์ฑ๋ฅ ์ฐ์
UDP๋ ์ต๋ ์ฑ๋ฅ
์ ์ฐ์ ์ํ์ฌ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ ์ก์ด ํ์ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์ค๋ฅ ์ ์ด๋ ํ๋ฆ ์ ์ด๊ฐ ์์ด TCP๋ณด๋ค ์๋๊ฐ ๋น ๋ฆ
๋๋ค.
5. ์คํธ๋ฆฌ๋ฐ ์๋น์ค์ ์ ๋ฆฌ
UDP๋ ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก์ด ์ค์ํ ํ๊ฒฝ์์ ๋งค์ฐ ์ ๋ฆฌํฉ๋๋ค. ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํด๋ ์๋น์ค ํ์ง์ ํฐ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๊ฒฝ์ฐ, ์๋ฅผ ๋ค์ด ๋น๋์ค ์คํธ๋ฆฌ๋ฐ
์ด๋ ์จ๋ผ์ธ ๊ฒ์
์์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
6. ์ค์ ์ฌ์ฉ
์ค์๊ฐ ์ฑ๋ฅ์ด ์ค์ํ ์คํธ๋ฆฌ๋ฐ ์๋น์ค๋ ๊ฒ์์์ UDP๊ฐ ์์ฃผ ์ฌ์ฉ๋์ง๋ง, ์ต๊ทผ์๋ TCP๋ ์คํธ๋ฆฌ๋ฐ ์๋น์ค์์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ์ด๋ TCP๊ฐ ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฌ์ฉ ์ฌ๋ก
- ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ: ๋น ๋ฅธ ๋ฐ์ดํฐ ์ ์ก์ด ํ์ํ ๋น๋์ค๋ ์ค๋์ค ์คํธ๋ฆฌ๋ฐ ์๋น์ค์์ UDP๋ ์ฑ๋ฅ์ ์ฐ์ ํฉ๋๋ค.
- ์จ๋ผ์ธ ๊ฒ์: ๋น ๋ฅธ ๋ฐ์ ์๊ฐ์ด ์ค์ํ ์จ๋ผ์ธ ๊ฒ์์์๋ UDP๋ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
โ TCP์ UDP์ ์ฐจ์ด์
ํน์ฑ | TCP | UDP |
---|---|---|
์ฐ๊ฒฐ ๋ฐฉ์ | ์ฐ๊ฒฐ ์งํฅํ (3-way handshaking) | ๋น์ฐ๊ฒฐํ |
์๋ฒ-ํด๋ผ์ด์ธํธ ๊ด๊ณ | 1:1 ์ฐ๊ฒฐ | 1:N ์ฐ๊ฒฐ ๊ฐ๋ฅ |
๋ฐ์ดํฐ ์ ์ก ๋ฐฉ์ | ์คํธ๋ฆผ ์ ์ก (ํฌ๊ธฐ ๋ฌด์ ํ) | ๋ฉ์์ง ์ ์ก (๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ฐ์ดํฐ๊ทธ๋จ) |
์ฑ๋ฅ | ์ฑ๋ฅ์ด ๋ฎ์ ์ ์์ | ์ฑ๋ฅ์ด ๋น ๋ฆ |
์ค๋ฅ ์ ์ด | ์์ (๋ฐ์ดํฐ ์ ์ค ์ ๋ณต๊ตฌ ๊ฐ๋ฅ) | ์์ (๋ฐ์ดํฐ ์ ์ค ๊ฐ๋ฅ) |
๋ฐ์ดํฐ ์์ ๋ณด์ฅ | ์์ ๋ณด์ฅ | ์์ ๋ณด์ฅ ์์ |
์ฌ์ฉ ์ฌ๋ก | ์น ๋ธ๋ผ์ฐ์ง, ์ด๋ฉ์ผ, ํ์ผ ์ ์ก | ์ค์๊ฐ ๋ฐฉ์ก, ์จ๋ผ์ธ ๊ฒ์ |
์คํธ๋ฆฌ๋ฐ ์๋น์ค | ๋นํจ์จ์ (์ฌ์ ์ก์ผ๋ก ์ธํด ์ง์ฐ ๋ฐ์) | ํจ์จ์ (๋น ๋ฅธ ์ ์ก) |
์ค์๊ฐ ์๋น์ค์์์ ์ฌ์ฉ | ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง, ์ฑ๋ฅ์ ์ ์ฝ์ด ์์ | ์ฑ๋ฅ์ด ์ค์ํ ๊ฒฝ์ฐ์ ์ ํฉ |
โจ Summary
TCP
๋ ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ๊ณผ ์์๋ฅผ ๋ณด์ฅํ์ง๋ง, ์๋๊ฐ ๋๋ฆฝ๋๋ค. ์ฌ์ ์ก์ ํตํด ๋ฐ์ดํฐ์ ์ ํ์ฑ์ ๋ณด์ฅํ๋ ๊ฒ์ด ์ค์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋ฉ๋๋ค.UDP
๋ ๋น ๋ฅธ ์๋๋ฅผ ์ฐ์ ์ํ๋ฉฐ, ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ๋ณด๋ค๋ ์ค์๊ฐ์ฑ์ด ์ค์ํ ๊ฒฝ์ฐ์ ์ ํฉํฉ๋๋ค. ๋ฐ์ดํฐ ์์ค์ด ์ฝ๊ฐ ๋ฐ์ํด๋ ํฐ ์ํฅ์ ๋ฏธ์น์ง ์๋ ์๋น์ค์์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.