๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CS

[CS] : TCP / UDP

by ๊ถŒ์Šพํ–„ 2023. 8. 28.

TCP ? 

์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ”„๋กœํ† ์ฝœ

์žฅ์น˜๋“ค ์‚ฌ์ด ๋…ผ๋ฆฌ์ ์ธ ์ ‘์†์„ ์„ฑ๋ฆฝํ•˜๊ธฐ ์œ„ํ•ด์„œ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ด "์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค"
TCP๋Š” ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ๊ฐ„์— "์ผ๋ จ์˜ ์˜ฅํ…Ÿ (๋ฐ์ดํ„ฐ, ๋ฉ”์‹œ์ง€, ์„ธ๊ทธ๋ŸฐํŠธ๋ผ๋Š” ๋ธ”๋ก ๋‹จ์œ„)์„"
"์•ˆ์ •์ ์œผ๋กœ, ์ˆœ์„œ๋Œ€๋กœ, ์—๋Ÿฌ์—†์ด" ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค.

 

์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ”„๋กœํ† ์ฝœ ? 

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ”„๋กœํ† ์ฝœ์„ ์˜๋ฏธ

 

TCP์˜ ํŠน์ง•

1. ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋กœ ๊ฐ€์ƒ ํšŒ์„  ๋ฐฉ์‹์„ ์ œ๊ณต

  • 3-way handshaking ๊ณผ์ •์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ 
  • 4-way handshaking ๊ณผ์ •์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•œ๋‹ค.

2. ํ๋ฆ„ ์ œ์–ด

  • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์†๋„๋ฅผ ์กฐ์ ˆํ•˜์—ฌ ์ˆ˜์‹ ์ž์˜ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ๋ฐฉ์ง€

3. ํ˜ผ์žก ์ œ์–ด

  • ๋„คํŠธ์›Œํฌ ๋‚ด์˜ ํŒจํ‚ท ์ˆ˜๊ฐ€ ๊ณผ๋„ํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€

4. ๋†’์€ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅ

  • ์‹ ๋ขฐ์„ฑ์ด ๋†’์€ ์ „์†ก์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— UDP๋ณด๋‹ค ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.

5. ์ „์ด์ค‘, ์ ๋Œ€์  ๋ฐฉ์‹

  • ์ „์ด์ค‘ : ์ „์†ก์ด ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋™์‹œ์— ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค.
  • ์ ๋Œ€์  : ๊ฐ ์—ฐ๊ฒฐํžˆ ์ •ํ™•ํžˆ 2๊ฐœ์˜ ์ข…๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

๊ฐ€์ƒ ํšŒ์„  ๋ฐฉ์‹์„ ์ œ๊ณต ?

๋ฐœ์‹ ์ง€์™€ ์ˆ˜์‹ ์ง€๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ํŒจํ‚ท์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๋…ผ๋ฆฌ์  ๊ฒฝ๋กœ๋ฅผ ๋ฐฐ์ •ํ•œ๋‹ค๋Š” ์˜๋ฏธ

 

3-way handshaking ?

๋ฐœ์‹ ์ง€์™€ ์ˆ˜์‹ ์ง€ ์‚ฌ์ด์— ๋…ผ๋ฆฌ์ ์ธ ์ ‘์†(์„ธ์…˜)์„ ์„ฑ๋ฆฝํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธ

 

TCP๊ฐ€ ์œ„์™€ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง€๋Š” ์ด์œ 

TCP๋Š” ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋กœ "์‹ ๋ขฐ์„ฑ"์„ ๋ณด์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ.

๋”ฐ๋ผ์„œ, 3-way handshaking ๊ณผ์ •๋„ ์‚ฌ์šฉ์„ ํ•˜๋Š”๊ฒƒ์ด๊ณ , ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„ / ํ˜ผ์žก ์ œ์–ด์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ๋„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๋ฉด์—์„œ๋Š” UDP๋ณด๋‹ค ๋А๋ฆฐ ์†๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

TCP ์—ฐ๊ฒฐ๊ณผ์ • (3-way handshaking)

1. ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„ : ๋‚ด ๋ง ๋“ค๋ฆฌ๋‹ˆ ? (SYN)
SYN(Syncronize sequence Numbers) - ์—ฐ๊ฒฐ ํ™•์ธ์„ ๋ณด๋‚ด๋Š” ๋ฌด์ž‘์œ„ ์ˆซ์ž๊ฐ’ (๋‚ด ๋ง ๋“ค๋ฆฌ๋‹ˆ?)

2. ์„œ๋ฒ„ -> ํด๋ผ์ด์–ธํŠธ : ์ž˜ ๋“ค๋ ค! ๋„ˆ๋Š” ๋‚ด ๋ง ์ž˜ ๋“ค๋ ค ? (SYN + ACK)
ACK(acknowledgements) - ํด๋ผ์ด์–ธํŠธ ํ˜น์€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ SYN์— 1์„ ๋”ํ•œ๊ฐ’์„ ๋ณด๋‚ด ์ž˜ ๋ฐ›์•˜๋‹ค๋Š” ์‘๋‹ต (์ž˜ ๋“ค๋ ค!)

3. ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„ : ์–ด ์ž˜ ๋“ค๋ ค ! (ACK)

 

TCP ์—ฐ๊ฒฐํ•ด์ œ ๊ณผ์ • (4-way handshaking)

1. ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„ : ์šฐ๋ฆฌ ๋ณผ ์ผ ๋๋‚ฌ์œผ๋‹ˆ ์ด์ œ ์—ฐ๊ฒฐ ๋๋‚ด์ž ! (FIN)

2. ์„œ๋ฒ„ -> ํด๋ผ์ด์–ธํŠธ : ์˜ค์ผ€์ด ๊ธฐ๋‹ค๋ ค๋ด ~ (ACK)

3. ์„œ๋ฒ„ -> ํด๋ผ์ด์–ธํŠธ : ๋‚˜๋„ ์ด์ œ ๋Š๋Š”๋‹ค ? (FIN)

4. ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„ : ์˜ค์ผ€์ด ~! (ACK)

 

UDP ?

๋น„ ์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ

 

๋น„ ์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ ?

์—ฐ๊ฒฐ์„ ์œ„ํ•ด ํ• ๋‹น๋œ ๋…ผ๋ฆฌ์ ์ธ ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ณ , ๊ฐ๊ฐ์˜ ํŒจํ‚ท์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ์ „์†ก๋˜๋ฉฐ ๋…๋ฆฝ์ ์ธ ๊ด€๊ณ„๋ฅผ ์ง€๋‹ˆ๊ฒŒ๋œ๋‹ค.

 

UDP ํŠน์ง•

1. ๋น„ ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋กœ ๋ฐ์ดํ„ฐ๊ทธ๋žจ ๋ฐฉ์‹์„ ์ œ๊ณต

  • ๋ฐ์ดํ„ฐ์˜ ์ „์†ก ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค.

2. ๋ฐ์ดํ„ฐ์˜ ์ˆ˜์‹  ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • TCP์˜ 3-way handshaking๊ณผ ๊ฐ™์€ ๊ณผ์ • X

3. ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ๋‹ค

  • ํ๋ฆ„์ œ์–ด๊ฐ€ ์—†์–ด์„œ ์ œ๋Œ€๋กœ ์ „์†ก๋˜์—ˆ๋Š”์ง€, ๋˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค.

4. TCP๋ณด๋‹ค ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

5. 1:1 / 1:N / N:N ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

TCP vs UDP

TCP

UDP

 

์ •๋ฆฌํ•˜์ž๋ฉด TCP๋Š” ์—ฐ์†์„ฑ๋ณด๋‹ค๋Š” ์‹ ๋ขฐ์„ฑ์ด ์ค‘์š”์‹œ ๋˜๋Š” ์ „์†ก์— ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๊ณ ,

UDP๋Š” TCP๋ณด๋‹ค ๋น ๋ฅด๊ณ  ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๊ฐ€ ์ ๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ–๊ณ  ์žˆ์ง€๋งŒ , ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์—๋Š” ์•Œ๋งž์ง€ ์•Š๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— UDP๋Š” ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ๊ฐ™์€ ์„œ๋น„์Šค์— ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค.