๐Ÿ“ก TCP์™€ UDP์˜ ์ฐจ์ด์  ์ •๋ฆฌ

๋„๋‘๋งจยท2025๋…„ 6์›” 25์ผ

๊ณต๋ถ€

๋ชฉ๋ก ๋ณด๊ธฐ
18/23

๐Ÿ‘จโ€๐Ÿซ๋ฅด์œˆ์˜ TCP UDP๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.


๐Ÿ“ฆ Transport Layer๋ž€?

์ „์†ก ๊ณ„์ธต(Transport Layer)์€ ํ†ต์‹ ํ•˜๋Š” ์–‘์ชฝ End Point ๊ฐ„์— ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ถ„์„ค๋ช…
์‹ ๋ขฐ์„ฑ(Reliability)๋ฐ์ดํ„ฐ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ, ์ •ํ™•ํ•˜๊ฒŒ ๋„์ฐฉํ•˜๋Š” ๊ฒƒ
์ „์†กํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์— ์ „๋‹ฌ

โ— ์ „์†ก ๊ณ„์ธต์ด ์—†๋‹ค๋ฉด?

  • ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ๋„์ฐฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ (์˜ˆ: 1,2,3 โ†’ 2,3,1)
  • Flow ๋ฌธ์ œ: ์ˆ˜์‹ ์ž๊ฐ€ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ ์–‘๋ณด๋‹ค ๋ฐ์ดํ„ฐ๋ฅผ ๋งŽ์ด ๋ฐ›์œผ๋ฉด ๋ˆ„๋ฝ ๊ฐ€๋Šฅ
  • Congestion ๋ฌธ์ œ: ๋„คํŠธ์›Œํฌ๊ฐ€ ํ˜ผ์žกํ•  ๊ฒฝ์šฐ ์ „์†ก ์ง€์—ฐ ๋˜๋Š” ์†์‹ค
  • ๋ฐ์ดํ„ฐ ์†์‹ค ์˜ˆ์‹œ:
    "Hello Nice to meet you" โ†’ "Hell to you"

๐Ÿ” TCP (Transmission Control Protocol)

์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์—ฐ๊ฒฐ ์ง€ํ–ฅํ˜• ํ”„๋กœํ† ์ฝœ

โœ… ํŠน์ง•

  • ์—ฐ๊ฒฐ ๊ธฐ๋ฐ˜: 3-way-handshake
  • ์ˆœ์ฐจ์  ์ „์†ก ๋ณด์žฅ
  • ํ๋ฆ„ ์ œ์–ด(Flow Control)
  • ํ˜ผ์žก ์ œ์–ด(Congestion Control)
  • ์˜ค๋ฅ˜ ๊ฒ€์ถœ(Error Detection)

๐Ÿ“Œ TCP ์ „์†ก ๋‹จ์œ„: Segment

PDU (Protocol Data Unit)
โ†’ TCP: Segment (Header + Data)

TCP Header

ํ•„๋“œ์„ค๋ช…
Source/Destination PortํฌํŠธ ๋ฒˆํ˜ธ
Sequence Number๋ฐ์ดํ„ฐ ์ˆœ์„œ ์ง€์ •
Acknowledgment Number์ˆ˜์‹  ํ™•์ธ
Flags (SYN, ACK, FIN ๋“ฑ)์—ฐ๊ฒฐ ์ƒํƒœ ๊ด€๋ฆฌ

๐Ÿ“ถ TCP ์—ฐ๊ฒฐ: 3-Way Handshake

  1. Client โ†’ Server : SYN ์ „์†ก
  2. Server โ†’ Client : SYN + ACK ์ „์†ก
  3. Client โ†’ Server : ACK + Packet ์ „์†ก

์—ฐ๊ฒฐ ์ข…๋ฃŒ๋Š” 4-Way Handshake๋กœ ์ง„ํ–‰๋จ


๐Ÿ“ค TCP ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐฉ์‹

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ ์ „์†ก
  2. ์„œ๋ฒ„๋Š” ACK(์ˆ˜์‹  ํ™•์ธ) ์ „์†ก
  3. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ACK๋ฅผ ๋ชป ๋ฐ›์œผ๋ฉด ์žฌ์ „์†ก

๐Ÿ“ถ TCP Close: 4-Way Handshake

  1. Client โ†’ Server : FIN ์ „์†ก
  2. Server โ†’ Client : ACK ์ „์†ก
  3. Server โ†’ Client : ๋‚จ์€ ํŒจํ‚ท ์ „์†ก (์ผ์ • ์‹œ๊ฐ„ ๋Œ€๊ธฐ)
  4. Server โ†’ Client : FIN ์ „์†ก
  5. Client โ†’ Server : ACK ์ „์†ก

โŒ TCP์˜ ๋‹จ์ 

  • ๋งค๋ฒˆ ์—ฐ๊ฒฐ ์„ค์ • ํ•„์š” โ†’ ์†๋„ ์ €ํ•˜
  • ํŒจํ‚ท ์ผ๋ถ€ ์†์‹ค๋งŒ ์žˆ์–ด๋„ ์ „์ฒด ์žฌ์ „์†ก ๋ฐœ์ƒ

โšก UDP (User Datagram Protocol)

๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ๋กœ ๋น ๋ฅธ ์†๋„๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ ์‹ ๋ขฐ์„ฑ์€ ๋‚ฎ์Œ

โœ… ํŠน์ง•

  • Connectionless: ํ•ธ๋“œ์…ฐ์ดํฌ ์—†์Œ
  • ์ˆœ์ฐจ ์ „์†ก ๋ณด์žฅ X
  • Flow/Congestion Control X
  • ์˜ค๋ฅ˜ ๊ฐ์ง€๋งŒ ์ˆ˜ํ–‰

โœ… ํ™œ์šฉ ์˜ˆ์‹œ

  • ์ŠคํŠธ๋ฆฌ๋ฐ, ๊ฒŒ์ž„, VoIP ๋“ฑ ์ง€์—ฐ๋ณด๋‹ค ์†๋„๊ฐ€ ์ค‘์š”ํ•œ ์ƒํ™ฉ

๐Ÿ“Œ UDP ์ „์†ก ๋‹จ์œ„: Datagram

PDU โ†’ UDP: Datagram (Header + Data)

UDP Header

UDP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ๊ฐ๋‚ด์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ๋ณด๋ƒ„


๐Ÿ“ค UDP ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐฉ์‹

  1. Sender๊ฐ€ ํŒจํ‚ท ์†ก์‹ 

๐Ÿ“Š TCP vs UDP ๋น„๊ต ์š”์•ฝ

ํ•ญ๋ชฉTCPUDP
์—ฐ๊ฒฐ ๋ฐฉ์‹์—ฐ๊ฒฐ ์ง€ํ–ฅ(Connection-Oriented)๋น„์—ฐ๊ฒฐํ˜•(Connectionless)
์†๋„๋А๋ฆผ (์•ˆ์ •์„ฑ ์šฐ์„ )๋น ๋ฆ„ (์‹ ๋ขฐ์„ฑ ๋‚ฎ์Œ)
์ˆœ์„œ ๋ณด์žฅOX
ํ๋ฆ„/ํ˜ผ์žก ์ œ์–ดOX
์žฌ์ „์†กOX
์‚ฌ์šฉ ์‚ฌ๋ก€์›น, ํŒŒ์ผ ์ „์†ก์˜์ƒ ์ŠคํŠธ๋ฆฌ๋ฐ, ๊ฒŒ์ž„ ๋“ฑ

โœ… ๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ

  • TCP๋Š” ์•ˆ์ •์„ฑ, UDP๋Š” ์†๋„์— ์ดˆ์ 
  • TCP์™€ UDP์˜ ๋™์ž‘ ๋ฐฉ์‹๊ณผ ํ—ค๋” ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋ฉด ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐ ๋„คํŠธ์›Œํฌ ์„ค๊ณ„์— ์œ ๋ฆฌ
  • ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ํ”„๋กœํ† ์ฝœ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€