๐Ÿ“–TCP & UDP

์ „์†ก ๊ณ„์ธต์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

๐Ÿ“–TCP์™€ UDP์˜ ํƒ„์ƒ๋ฐฐ๊ฒฝ

IP์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ICMP์—์„œ ์•Œ๋ ค์ฃผ์ง€๋งŒ, ์•Œ๋ ค์ฃผ๊ธฐ๋งŒ ํ•  ๋ฟ ๋Œ€์ฒ˜๋ฅผ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— IP๋ณด๋‹ค ์œ„์—์„œ ์ฒ˜๋ฆฌ ํ•„์š”

โ†’ ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์œ„ ํ”„๋กœํ† ์ฝœ์ธ TCP์™€ UDP ํƒ„์ƒ

IP์™€ ICMP

ICMP

  • ์ธํ„ฐ๋„ท ์ œ์–ด ๋ฉ”์„ธ์ง€ ํ”„๋กœํ† ์ฝœ
  • ๋„คํŠธ์›Œํฌ ๋‚ด ์žฅ์น˜๊ฐ€ ๋ฐ์ดํ„ฐ ์ „์†ก๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

IP(Internet Protocol)

  • ํŒจํ‚ท์ด๋ผ๋Š” ํ†ต์‹  ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ
  • Host to Host(์žฅ์น˜ to ์žฅ์น˜)๋งŒ์„ ์ง€์›

๐Ÿ”–ย IP์˜ ํ•œ๊ณ„ ํ•˜๋‚˜์˜ ์žฅ์น˜์•ˆ์—์„œ ์ˆ˜๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ํ†ต์‹ ์„ ํ•  ๊ฒฝ์šฐ์—๋Š” IP๋งŒ์œผ๋กœ๋Š” ํ•œ๊ณ„ ์กด์žฌ โ†’ ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํฌํŠธ๋ฒˆํ˜ธ๊ฐ€ ํƒ„์ƒ

๐Ÿ“Ž๊ทธ๋ ‡๋‹ค๋ฉด TCP์™€ UDP๊ฐ€ ์–ด๋–ป๊ฒŒ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๊ฐ€?

TCP์˜ ๊ฒฝ์šฐ

  • ๋ฐ์ดํ„ฐ์˜ ๋ถ„์‹ค, ์ค‘๋ณต, ์ˆœ์„œ๊ฐ€ ๋’ค๋ฐ”๋€œ ๋“ฑ์„ ์ž๋™์œผ๋กœ ๋ณด์ •ํ•ด์ค˜์„œ ์†ก์ˆ˜์‹  ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•ํ•œ ์ „๋‹ฌ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ

UDP์˜ ๊ฒฝ์šฐ

  • IP๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ •๋„์˜ ์ˆ˜์ค€๋งŒ์„ ์ œ๊ณต
  • TCP์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ์—๋Ÿฌ๊ฐ€ ๋‚  ์ˆ˜๋„ ์žˆ๊ณ , ์žฌ์ „์†ก์ด๋‚˜ ์ˆœ์„œ๊ฐ€ ๋’ค๋ฐ”๋€” ์ˆ˜๋„ ์žˆ์–ด์„œ ์ด ๊ฒฝ์šฐ, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์กด์žฌ

๐Ÿ“–TCP(Transmission Control Protocol)

๐Ÿ“ŽTCP๋ž€?

  • ์ „์†ก๊ณ„์ธต์˜ ์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ”„๋กœํ† ์ฝœ
  • ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ง€์›ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ
  • network congestion avoidance algorithm ์‚ฌ์šฉ

๐Ÿ“ŽTCP ํŠน์ง•

  • ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค
  • 3-way handshaking๊ณผ์ •์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  4-way handshaking์„ ํ†ตํ•ด ์—ฐ๊ฒฐ ํ•ด์ œ
  • ๋†’์€ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅ โ†’ TCP ํ๋ฆ„์ œ์–ด & ํ˜ผ์žก์ œ์–ด
  • ์ƒ๋Œ€์ ์œผ๋กœ UDP๋ณด๋‹ค ์ „์†ก์†๋„๊ฐ€ ๋А๋ฆผ
  • ์ „์ด์ค‘(Full-Duplex), ์ ๋Œ€์ (Point to Point) ๋ฐฉ์‹

๐Ÿ“ŽTCP ๋™์ž‘๊ณผ์ • เดฆเตเดฆเดฟแขโ€ขแ—œโ€ขแขโ‚Ž go go

๐Ÿ“–UDP(User Datagram Protocol)

๐Ÿ“ŽUDP๋ž€?

  • ์ „์†ก๊ณ„์ธต์˜ ๋น„์—ด๊ฒฐ ์ง€ํ–ฅ์  ํ”„๋กœํ† ์ฝœ
  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๊ทธ๋žจ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

๐Ÿ“ŽUDP ํŠน์ง•

  • ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋กœ ๋ฐ์ดํ„ฐ๊ทธ๋žจ ๋ฐฉ์‹์„ ์ œ๊ณต
  • ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์ •๋ณด๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฐ›๋Š”๋‹ค๋Š” ์‹ ํ˜ธ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜์ง€ X
  • UDP Header์˜ CheckSum ํ•„๋“œ๋ฅผ ํ†ตํ•ด ์ตœ์†Œํ•œ์˜ ์˜ค๋ฅ˜๋งŒ ๊ฒ€์ถœ
  • ์‹ ๋ขฐ์„ฑ ๋‚ฎ์Œ (๋ฐ์ดํ„ฐ ์žฌ์ „์†กX, ๋ฐ์ดํ„ฐ ์ˆœ์„œ ์œ ์ง€๋ฅผ ์œ„ํ•œ ์ž‘์—… X)
  • ํŒจํ‚ท ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ์–ด ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๊ฐ€ ๊ฐ์†Œ
  • ์ƒ๋Œ€์ ์œผ๋กœ TCP๋ณด๋‹ค ์ „์†ก์†๋„๊ฐ€ ๋น ๋ฆ„
  • ์—ฐ์†์„ฑ์ด ์ค‘์š”ํ•œ ์„œ๋น„์Šค(streaming) ๋“ฑ์— ์ž์ฃผ ์‚ฌ์šฉ

๐Ÿ“ŽUDP ๋™์ž‘๊ณผ์ •

  • UDP๋Š” ์—ฐ๊ฒฐ์ด๋ž€ ๊ฐœ๋…์ด ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— listen, connect, accept ํ•จ์ˆ˜ ํ•„์š” X

  1. UDP๋Š” ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํฌํŠธ(ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” ์šด์˜ ์ฒด์ œ๋กœ๋ถ€ํ„ฐ ํฌํŠธ ๋ฒˆํ˜ธ ๋ถ€์—ฌ๋ฐ›์Œ)์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฒ„ํผ ์—ญํ• ์„ ํ•˜๋Š” ๋‘ ๊ฐœ์˜ ํ(Queue)๋ฅผ ๋งŒ๋“ค๊ณ  ์—ฐ๊ฒฐ
  • ์†ก์‹ ์šฉ ๋ชฉ์ ์ธ ์†ก์‹  ํ(Outgoing Queue), ์ˆ˜์‹ ์šฉ ๋ชฉ์ ์ธ ์ˆ˜์‹  ํ(Incoming Queue)๋กœ ๊ตฌ๋ถ„
  1. ํ”„๋กœ์„ธ์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์™ธ๋ถ€๋กœ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์†ก์‹  ํ(Outgoing Queue)์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ€์–ด๋„ฃ์œผ๋ฉด, UDP๋Š” ํ”„๋กœ์„ธ์Šค์—์„œ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฝ๊ณ  ํ—ค๋”๋ฅผ ๋ถ™์—ฌ์„œ 3๊ณ„์ธต(IP)์œผ๋กœ ๋„˜๊ฒจ์ค€ ํ›„ ์†ก์‹  ํ(Outgoing Queue)์—์„œ ์ œ๊ฑฐ

์†ก์‹  ํ(Outgoing Queue)์— ๋ฌด์ž‘์ • ๋ง‰๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘์–ด๋„ฃ๋Š”๋‹ค๋ฉด?

์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒ ๊ฐ€๋Šฅ

๐Ÿ”–ย ๋ณดํ†ต ์šด์˜ ์ฒด์ œ์—์„œ๋Š” ์†ก์‹  ํ(Outgoing Queue)์— ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๋”ฐ๋กœ ๊ด€๋ฆฌ

  1. ์ˆ˜์‹  ํ(Incoming Queue)๋Š” 3๊ณ„์ธต(IP)์—์„œ ์ˆ˜์‹ ๋œ ํŒจํ‚ท์ด ์žˆ๋‹ค๋ฉด, ์ด๋ฅผ ๋ถ„์„ํ•˜์—ฌ ํ†ต์‹ ํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ํฌํŠธ ๋ฒˆํ˜ธ์™€ ์—ฐ๊ฒฐ์„ ์‹œ๋„. ํ˜„์žฌ ์ปดํ“จํ„ฐ์— ํ•ด๋‹น ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด ํŒจํ‚ท์—์„œ ํ†ต์‹  ๊ณผ์ •์— ํ•„์š”ํ–ˆ๋˜ ํ—ค๋” ์ •๋ณด๋ฅผ ๋ฒ—๊ฒจ๋‚ธ ํ›„, ์ด๋ฅผ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋กœ ์ „์†ก

๐Ÿ“–TCP VS UDP

TCP : ์ •ํ™•์„ฑ UDP : ์‹ ์†์„ฑ

๐Ÿ“ŽTCP์™€ UDP์˜ ๊ณตํ†ต์ 

  • ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฃผ์†Œ ์ง€์ •
  • ๋ฐ์ดํ„ฐ ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•œ ์ฒดํฌ์„ฌ ์กด์žฌ

๐Ÿ“ŽTCP์™€ UDP์˜ ์ฐจ์ด์ 