did_story

[๋„คํŠธ์›Œํฌ] 3.1 Transport-layer services | ์ „์†ก ๊ณ„์ธต ์„œ๋น„์Šค ๋ณธ๋ฌธ

ComputerScienc๐Ÿ“š/Computer Network

[๋„คํŠธ์›Œํฌ] 3.1 Transport-layer services | ์ „์†ก ๊ณ„์ธต ์„œ๋น„์Šค

์–ด์ œ์‹œ์ž‘ 2025. 10. 15. 00:27

์ „์†ก ๊ณ„์ธต ์„œ๋น„์Šค๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์ „ ๋จผ์ € ์šฉ์–ด์— ๋Œ€ํ•œ ์ •๋ฆฌ๋ถ€ํ„ฐ ๋“ค์–ด๊ฐ€๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

์šฉ์–ด์ •๋ฆฌ

  • ํ”„๋กœ๊ทธ๋žจ
      ๋””์Šคํฌ์— ์ €์žฅ๋œ ์‹คํ–‰ํŒŒ์ผ.
  • ํ”„๋กœ์„ธ์Šค
      ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ ์–ด๋–ค Instance. ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์Œ.
      ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ๊ฐ์˜ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•ด์„œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ์—ญํ• ์„ ํ•จ.
  • ์Šค๋ ˆ๋“œ(thread)
      ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ž‘ํ•˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ผ๋“ค์ด ์žˆ๋Š”๋ฐ ์ด ์ผ์„ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์งœ๋ฉด ๋™์‹œ์— ์šด์˜ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ช‡ ๊ฐœ  ์˜ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆˆ ๊ฒƒ์ด ์Šค๋ ˆ๋“œ๋‹ค.
      ์นด์นด์˜คํ†ก์œผ๋กœ ์น˜๋ฉด์€ ๋‚ด๊ฐ€ ํƒ€์ดํ•‘ํ•˜๋Š”๊ฑธ ๋ฐ›์•„๋“ค์ด๋Š” thread, ๊ทธ๋ฆฌ๊ณ  ์นดํ†ก์„ ํ™”๋ฉด์— ๋„์šฐ๋Š” thread ๋“ฑ๋“ฑ ์ด๊ฒƒ๋“ค์ด ๋‚˜๋ˆ ์ง.
  • ์ „์†ก๊ณ„์ธต์—์„œ์˜ ์ •๋ณด ๋‹จ์œ„๋Š” segment๋ผ๊ณ  ํ•œ๋‹ค.

ํŠนํžˆ ์ด๋ฒˆ์— ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ฃผ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ 2๊ฐœ๋Š” TCP (Transmission Control Protocol)์™€ UDP (User Datagram Protocol)์ด๋‹ค. ๊ทธ๋Ÿผ ์ด ๋‘๊ฐœ์— ๋Œ€ํ•ด์„œ ๊ฐ„๋žตํžˆ ์•Œ์•„๋ณด๊ณ  ๊ฐ€๋ณผ๊นŒ์š”?!

 

TCP (Transmission Control Protocol):

  • ์‹ ๋ขฐ์„ฑ์ด ๋งค์šฐ ์ค‘์š”ํ•œ ํ”„๋กœํ† ์ฝœ์ด์—์š”. ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ฉด ์ƒ๋Œ€๋ฐฉ์ด ์ž˜ ๋ฐ›์•˜๋Š”์ง€ ์ผ์ผ์ด ํ™•์ธํ•˜๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๊ฐ„์— ์‚ฌ๋ผ์ง€๋ฉด ๋‹ค์‹œ ๋ณด๋‚ด์ฃผ์ฃ . ๋งˆ์น˜ ๋“ฑ๊ธฐ์šฐํŽธ์ฒ˜๋Ÿผ ์ •ํ™•ํ•˜๊ณ  ์•ˆ์ „ํ•ด์š”. (์˜ˆ: ์ด๋ฉ”์ผ, ํŒŒ์ผ ์ „์†ก)

UDP (User Datagram Protocol):

  • ์†๋„๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•œ ํ”„๋กœํ† ์ฝœ์ด์—์š”. ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ƒฅ ๋น ๋ฅด๊ฒŒ ๋ณด๋‚ด๊ธฐ๋งŒ ํ•  ๋ฟ, ์ƒ๋Œ€๋ฐฉ์ด ์ž˜ ๋ฐ›์•˜๋Š”์ง€๋Š” ํ™•์ธํ•˜์ง€ ์•Š์•„์š”. ์กฐ๊ธˆ ์†์‹ค์ด ์žˆ์–ด๋„ ๊ดœ์ฐฎ์œผ๋‹ˆ ๋ฌด์กฐ๊ฑด ๋น ๋ฅธ ๊ฒŒ ์ค‘์š”ํ•  ๋•Œ ์“ฐ์ด์ฃ . ์ผ๋ฐ˜ ์šฐํŽธ๊ณผ ๋น„์Šทํ•ด์š”. (์˜ˆ: ์‹ค์‹œ๊ฐ„ ๋™์˜์ƒ ์ŠคํŠธ๋ฆฌ๋ฐ, ์˜จ๋ผ์ธ ๊ฒŒ์ž„)

⇒ ์ฆ‰! 

“TCP๋Š” ๋“ฑ๊ธฐ์šฐํŽธ, UDP๋Š” ์ผ๋ฐ˜์šฐํŽธ”
์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ „์†ก ๊ณ„์ธต(Transport Layer)์˜ ํ•ต์‹ฌ ๊ฐœ๋…๊ณผ ๋‘ ์ฃผ์ธ๊ณต TCP์™€ UDP์˜ ์ฐจ์ด๋ฅผ ์™„์ „ํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณผ๊ฒŒ์š”!

1. Transport Layer๋ž€?

๋„คํŠธ์›Œํฌ์˜ ์ „์†ก ๊ณ„์ธต(Transport Layer)์€ ์„œ๋กœ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์„ธ์Šค ๊ฐ„์˜ ๋…ผ๋ฆฌ์  ํ†ต์‹ (Logical Communication)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

์ฆ‰, ๋ฌผ๋ฆฌ์ ์œผ๋กœ๋Š” ์ˆ˜๋งŽ์€ ๋ผ์šฐํ„ฐ์™€ ์ผ€์ด๋ธ”์„ ๊ฑฐ์น˜์ง€๋งŒ, ๋ณด๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ›๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ง์ ‘ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ๋งŒ๋“œ๋Š” ์—ญํ• ์ด์—์š”.

์—ญํ•  ์„ค๋ช…
๋…ผ๋ฆฌ์  ํ†ต์‹  ์ œ๊ณต ๋‘ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๊ฐ€์ƒ์˜ ์—ฐ๊ฒฐ์„ ์„ค์ •
์„ธ๊ทธ๋จผํŠธ ์ƒ์„ฑ ๋ฐ ์žฌ์กฐ๋ฆฝ ์†ก์‹  ์ธก์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋ถ„ํ• ํ•˜๊ณ , ์ˆ˜์‹  ์ธก์—์„œ ์›๋ž˜ ๋ฉ”์‹œ์ง€๋กœ ๋ณต์›
์ „์†ก ํ”„๋กœํ† ์ฝœ ์ œ๊ณต TCP์™€ UDP ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์ „์†ก ํ”„๋กœํ† ์ฝœ์„ ์ง€์›

2. ๋„คํŠธ์›Œํฌ ๊ณ„์ธต vs ์ „์†ก ๊ณ„์ธต

๊ณ„์ธต๋ณ„ ์—ญํ• 

  • ๋„คํŠธ์›Œํฌ ๊ณ„์ธต (Network Layer): ํ˜ธ์ŠคํŠธ(์ปดํ“จํ„ฐ) ๊ฐ„์˜ ๋…ผ๋ฆฌ์  ํ†ต์‹ ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
    • (์˜ˆ: A ์ปดํ“จํ„ฐ์—์„œ B ์ปดํ“จํ„ฐ๊นŒ์ง€์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ)
  • ์ „์†ก ๊ณ„์ธต (Transport Layer): ํ”„๋กœ์„ธ์Šค(์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ) ๊ฐ„์˜ ๋…ผ๋ฆฌ์  ํ†ต์‹ ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
    • (์˜ˆ: A ์ปดํ“จํ„ฐ์˜ '์›น ๋ธŒ๋ผ์šฐ์ €'์—์„œ B ์ปดํ“จํ„ฐ์˜ '์›น ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ'๊นŒ์ง€์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ)
    • ์ „์†ก ๊ณ„์ธต์€ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์˜ ์„œ๋น„์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ ๊ทธ ๊ธฐ๋Šฅ์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.

⇒ ์ด๊ฒƒ์„ ํ‘œ๋กœ ๋‚˜ํƒ€๋‚ด ๋ณธ๋‹ค๋ฉด,

๊ตฌ๋ถ„๋„คํŠธ์›Œํฌ ๊ณ„์ธต์ „์†ก ๊ณ„์ธต
ํ†ต์‹  ๋‹จ์œ„ ํ˜ธ์ŠคํŠธ ↔ ํ˜ธ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค ↔ ํ”„๋กœ์„ธ์Šค
์˜ˆ์‹œ ์ปดํ“จํ„ฐ A → ์ปดํ“จํ„ฐ B ์›น ๋ธŒ๋ผ์šฐ์ € → ์›น ์„œ๋ฒ„
ํ”„๋กœํ† ์ฝœ ์˜ˆ์‹œ IP TCP, UDP

 

๐Ÿก  ๋น„์œ ๋กœ ์ดํ•ดํ•˜๊ธฐ (์ง‘-ํŽธ์ง€ ์˜ˆ์‹œ [์™ผ์ชฝ])

  • ์ƒํ™ฉ: Ann์˜ ์ง‘์— ์‚ฌ๋Š” 12๋ช…์˜ ์•„์ด๋“ค์ด Bill์˜ ์ง‘์— ์‚ฌ๋Š” 12๋ช…์˜ ์•„์ด๋“ค์—๊ฒŒ ํŽธ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ์ƒํ™ฉ
  • ๊ฐ ์š”์†Œ์˜ ์˜๋ฏธ:
    • ํ˜ธ์ŠคํŠธ (Hosts): ์ง‘ (Ann์˜ ์ง‘, Bill์˜ ์ง‘)
    • ํ”„๋กœ์„ธ์Šค (Processes): ์•„์ด๋“ค (ํŽธ์ง€๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฐ›๋Š” ํŠน์ • ์•„์ด)
    • ์•ฑ ๋ฉ”์‹œ์ง€ (App messages): ํŽธ์ง€
    • ์ „์†ก ํ”„๋กœํ† ์ฝœ (Transport protocol): Ann๊ณผ Bill. ์ด๋“ค์€ ๊ฐ ์•„์ด์—๊ฒŒ ์˜จ ํŽธ์ง€๋ฅผ ์ •ํ™•ํ•œ ์•„์ด์—๊ฒŒ ๋‚˜๋ˆ ์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. (ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ „๋‹ฌ)
    • ๋„คํŠธ์›Œํฌ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ (Network-layer protocol): ์šฐํŽธ ์„œ๋น„์Šค. ์ง‘์—์„œ ์ง‘์œผ๋กœ ํŽธ์ง€๋ฅผ ๋ฐฐ๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. (ํ˜ธ์ŠคํŠธ ๊ฐ„ ์ „๋‹ฌ)

3. Layer Action 

์ „์†ก ๊ณ„์ธต์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋‚ด๋ ค์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ ๋„คํŠธ์›Œํฌ๋กœ ํ˜๋ ค๋ณด๋‚ด๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ์‚ดํŽด๋ณผ๊ฒŒ์š”!

(1) Sender (์ „์†ก ๊ณ„์ธต)

์†ก์‹  ์ธก : ๋ฐ์ดํ„ฐ ์ „์†ก ๊ณผ์ •

 1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ 

๋จผ์ €, ์ƒ์œ„ ๊ณ„์ธต์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(Application Layer)์œผ๋กœ๋ถ€ํ„ฐ ์ „์†กํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ๋ฐ›์Šต๋‹ˆ๋‹ค.

์ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”์‹œ์ง€(Application Message)์ž…๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์— “์ด ํŽ˜์ด์ง€ ๋ณด์—ฌ์ค˜!”๋ผ๊ณ  ์š”์ฒญํ•  ๋•Œ,

๊ทธ ์š”์ฒญ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐ”๋กœ app. msg์ž…๋‹ˆ๋‹ค.


2. ์„ธ๊ทธ๋จผํŠธ ํ—ค๋”(Segment Header) ์ƒ์„ฑ

์ด์ œ ์ „์†ก ๊ณ„์ธต์€ ๋ฉ”์‹œ์ง€๋ฅผ ๊ทธ๋Œ€๋กœ ๋‚ด๋ณด๋‚ด์ง€ ์•Š๊ณ , ๊ทธ ์œ„์— ์ œ์–ด ์ •๋ณด๋ฅผ ๋‹ด์€ ์ „์†ก ๊ณ„์ธต ํ—ค๋”(Transport Header)๋ฅผ ๋ถ™์ž…๋‹ˆ๋‹ค.

์ด ํ—ค๋”์—๋Š” ์ด๋Ÿฐ ์ •๋ณด๋“ค์ด ๋“ค์–ด์žˆ์–ด์š”:

  • ์ถœ๋ฐœ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ (Source Port)
  • ๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ (Destination Port)
  • ์ˆœ์„œ ๋ฒˆํ˜ธ (Sequence Number)
  • ์˜ค๋ฅ˜ ๊ฒ€์ถœ์šฉ ์ฒดํฌ์„ฌ (Checksum)

์ด ์ •๋ณด๋“ค์ด ์žˆ์–ด์•ผ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋А ์•ฑ์œผ๋กœ ๊ฐ€์•ผ ํ•˜๋Š”์ง€, ์ˆœ์„œ๊ฐ€ ๋’ค๋ฐ”๋€Œ์ง€ ์•Š์•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


3. ์„ธ๊ทธ๋จผํŠธ(Segment) ์ƒ์„ฑ

์ด์ œ ํ—ค๋” + ๋ฉ”์‹œ์ง€๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์Šต๋‹ˆ๋‹ค.

์ด ์กฐํ•ฉ์ด ๋ฐ”๋กœ ์ „์†ก ๊ณ„์ธต์˜ ๊ธฐ๋ณธ ๋‹จ์œ„์ธ ์„ธ๊ทธ๋จผํŠธ(Segment)์ž…๋‹ˆ๋‹ค.

๐Ÿ’ก ์„ธ๊ทธ๋จผํŠธ = ํ—ค๋” + ๋ฐ์ดํ„ฐ(payload)

4. ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌ

์™„์„ฑ๋œ ์„ธ๊ทธ๋จผํŠธ๋Š” ํ•˜์œ„ ๊ณ„์ธต์ธ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต(Network Layer)์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ IP๊ฐ€ “์–ด๋А ์ปดํ“จํ„ฐ๋กœ ๋ณด๋‚ผ์ง€”๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ , ์‹ค์ œ๋กœ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ํ˜๋ ค๋ณด๋‚ด์ฃ 


(2) Receiver ( ์ˆ˜์‹  )

์ด๋ฒˆ์—๋Š” ๋ฐ˜๋Œ€๋กœ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋„์ฐฉํ–ˆ์„ ๋•Œ ์ „์†ก ๊ณ„์ธต(Transport Layer)์ด ์–ด๋–ค ์ผ์„ ํ•˜๋Š”์ง€ ๋ณผ ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

์ด ๋‹จ๊ณ„์—์„œ๋Š” ์ฃผ๋กœ ๋””์บก์Аํ™”(Decapsulation)์™€ ์—ญ๋‹ค์ค‘ํ™”(Demultiplexing)๊ฐ€ ํ•ต์‹ฌ์ด์—์š”.

์ˆ˜์‹  ์ธก : ๋ฐ์ดํ„ฐ ์ˆ˜์‹  ๊ณผ์ •

 

 1. ์„ธ๊ทธ๋จผํŠธ ์ˆ˜์‹  (Segment Reception)

๋จผ์ €, ๋„คํŠธ์›Œํฌ ๊ณ„์ธต(Network Layer)์œผ๋กœ๋ถ€ํ„ฐ ์„ธ๊ทธ๋จผํŠธ(Segment)๋ฅผ ์ „๋‹ฌ๋ฐ›์Šต๋‹ˆ๋‹ค.

์ด ์„ธ๊ทธ๋จผํŠธ๋Š” ์†ก์‹  ์ธก์—์„œ ๋งŒ๋“ค์–ด ๋ณด๋‚ธ ์ „์†ก ๊ณ„์ธต์˜ ๋ฐ์ดํ„ฐ ๋‹จ์œ„(PDU)๋กœ, ํ—ค๋”์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•จ๊ป˜ ๋“ค์–ด์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก์‰ฝ๊ฒŒ ๋งํ•ด, IP๊ฐ€ “ํƒ๋ฐฐ ์ƒ์ž”๋ฅผ ๋ฌธ ์•ž๊นŒ์ง€ ๊ฐ€์ ธ๋‹ค์คฌ๋‹ค๋ฉด, ์ด์ œ ์ „์†ก ๊ณ„์ธต์ด ๊ทธ ์ƒ์ž๋ฅผ ๋ฐ›์•„์„œ ์•ˆ์˜ ํŽธ์ง€๋ฅผ ๊บผ๋‚ด๋Š” ๋‹จ๊ณ„์˜ˆ์š”.

2. ํ—ค๋” ๋ถ„์„ (Header Analysis)

์ „์†ก ๊ณ„์ธต์€ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์—ด๊ณ , ๊ฐ€์žฅ ๋จผ์ € ํ—ค๋”(Transport Header)๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ์•ˆ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ •๋ณด๊ฐ€ ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • ๋ชฉ์ ์ง€ ํฌํŠธ ๋ฒˆํ˜ธ (Destination Port Number) → ์–ด๋А ์•ฑ(์†Œ์ผ“)์œผ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋Š”๊ฐ€
  • ์ฒดํฌ์„ฌ (Checksum) → ๋ฐ์ดํ„ฐ๊ฐ€ ์†์ƒ๋˜์ง€ ์•Š์•˜๋Š”๊ฐ€

์ด ๊ณผ์ •์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ํ™•์ธํ•˜๊ณ , ๋ˆ„๊ตฌ์—๊ฒŒ ์ „๋‹ฌํ• ์ง€ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.


3. ๋ฉ”์‹œ์ง€ ์ถ”์ถœ (Message Extraction)

ํ—ค๋” ๋ถ„์„์ด ๋๋‚˜๋ฉด, ์ „์†ก ๊ณ„์ธต์€ ํ—ค๋”๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋ƒ…๋‹ˆ๋‹ค.

์ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌ๋  **app. msg (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”์‹œ์ง€)**์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ƒ์œ„ ๊ณ„์ธต์œผ๋กœ ์˜ฌ๋ฆฌ๊ธฐ ์ „์— ํ—ค๋”๋ฅผ ๋ฒ—๊ฒจ๋‚ด๋Š” ๊ณผ์ •์„ ๋””์บก์Аํ™”(Decapsulation)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐ŸงŠ ๋น„์œ ํ•˜์ž๋ฉด, ํƒ๋ฐฐ ์ƒ์ž(์„ธ๊ทธ๋จผํŠธ)๋ฅผ ์—ด๊ณ  ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ๋ฌผ๊ฑด(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ)์„ ๊บผ๋‚ด๋Š” ๊ณผ์ •์ด์—์š”.

4. ์—ญ๋‹ค์ค‘ํ™” (Demultiplexing)

๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„๋Š” ์—ญ๋‹ค์ค‘ํ™”(Demultiplexing)์ž…๋‹ˆ๋‹ค.

์ „์†ก ๊ณ„์ธต์€ ์„ธ๊ทธ๋จผํŠธ ํ—ค๋”์— ๋“ค์–ด ์žˆ๋Š” ํฌํŠธ ๋ฒˆํ˜ธ(Port Number)๋ฅผ ๋ณด๊ณ , ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ™•ํ•œ ์†Œ์ผ“(Socket)์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

 

์ฆ‰, “์ด ๋ฐ์ดํ„ฐ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์šฉ์ธ์ง€, ์ด๋ฉ”์ผ ํด๋ผ์ด์–ธํŠธ์šฉ์ธ์ง€”๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฑฐ์˜ˆ์š”.

⇒ ์ •๋ฆฌํ•˜์ž๋ฉด,

“๋””์บก์Аํ™”๋Š” ์ƒ์ž๋ฅผ ์—ฌ๋Š” ์ผ, ์—ญ๋‹ค์ค‘ํ™”๋Š” ์•ˆ์˜ ๋ฌผ๊ฑด์„ ์ฃผ์ธ์—๊ฒŒ ์ •ํ™•ํžˆ ์ „๋‹ฌํ•˜๋Š” ์ผ”

4. TCP vs UDP — ๋А๋ฆฌ์ง€๋งŒ ํ™•์‹คํ•˜๊ฒŒ vs ๋น ๋ฅด์ง€๋งŒ ๋‹จ์ˆœํ•˜๊ฒŒ

์ธํ„ฐ๋„ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ๋Š” ๋Œ€๋ถ€๋ถ„ TCP๋‚˜ UDP๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‘ ํ”„๋กœํ† ์ฝœ์€ ๊ฐ™์€ ์ „์†ก ๊ณ„์ธต์— ์†ํ•˜์ง€๋งŒ, ์ฒ ํ•™์ด ์™„์ „ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

(1) TCP (Transmission Control Protocol) :  “๋А๋ฆฌ๋”๋ผ๋„ ๋ฐ˜๋“œ์‹œ ๋„์ฐฉํ•ด์•ผ ํ•œ๋‹ค!”

TCP๋Š” ์‹ ๋ขฐ์„ฑ๊ณผ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜๋Š” ์—ฐ๊ฒฐ ์ง€ํ–ฅํ˜• ํ”„๋กœํ† ์ฝœ์ด์—์š”.

๋งˆ์น˜ ๋“ฑ๊ธฐ์šฐํŽธ์ฒ˜๋Ÿผ, ํ•˜๋‚˜ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ œ๋Œ€๋กœ ๋„์ฐฉํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ 

์†์‹ค๋˜๋ฉด ๋‹ค์‹œ ๋ณด๋‚ด๋Š” ์„ธ์‹ฌํ•œ ์„ฑ๊ฒฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค

TCP์˜ ์ฃผ์š” ํŠน์ง•

  • Reliable Delivery — ์†์‹ค๋œ ๋ฐ์ดํ„ฐ๋Š” ์žฌ์ „์†ก, ์ˆœ์„œ๋„ ๋ณด์žฅ
  • Flow Control — ์ˆ˜์‹ ์ž์˜ ์ฒ˜๋ฆฌ ์†๋„์— ๋งž์ถฐ ์ „์†ก๋Ÿ‰ ์กฐ์ ˆ
  • Congestion Control — ๋„คํŠธ์›Œํฌ๊ฐ€ ํ˜ผ์žกํ•  ๋•Œ ์ „์†ก๋ฅ  ์ž๋™ ๊ฐ์†Œ
  • Connection-oriented — ์ „์†ก ์ „ ๋ฐ˜๋“œ์‹œ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ (3-Way Handshake)
๐Ÿ’ก ์˜ˆ์‹œ: ์ด๋ฉ”์ผ, ์›น ํŽ˜์ด์ง€ ์š”์ฒญ(HTTP), ํŒŒ์ผ ์ „์†ก(FTP) → “์†๋„๋ณด๋‹ค ์ •ํ™•์„ฑ์ด ์ค‘์š”ํ•œ ์„œ๋น„์Šค

 

(2) UDP (User Datagram Protocol) : “๋นจ๋ฆฌ ๋ณด๋‚ด๊ณ  ๋!”

UDP๋Š” ์†๋„์™€ ํšจ์œจ์ด ์ค‘์š”ํ•œ ํ™˜๊ฒฝ์—์„œ ์“ฐ์ด๋Š” ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

TCP์ฒ˜๋Ÿผ ํ™•์ธ ์ ˆ์ฐจ๋‚˜ ์žฌ์ „์†ก ๊ณผ์ •์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ›จ์”ฌ ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด์ฃ .

ํ•˜์ง€๋งŒ ๊ทธ๋งŒํผ ์†์‹ค์ด๋‚˜ ์ˆœ์„œ ๋’ค์„ž์ž„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

UDP์˜ ์ฃผ์š” ํŠน์ง•

  • Unreliable Delivery — ์†์‹ค/์ˆœ์„œ ๋ณด์žฅ X
  • Connection-less — ์—ฐ๊ฒฐ ์„ค์ • ์—†์ด ๋ฐ”๋กœ ์ „์†ก
  • Low Overhead — ํฌํŠธ ๋ฒˆํ˜ธ์™€ ๊ฐ„๋‹จํ•œ ์ฒดํฌ์„ฌ๋งŒ ํฌํ•จ
  • ๋‹จ์ˆœ ๊ตฌ์กฐ — ‘์ตœ์„ ํ˜•(best-effort)’ ์ „๋‹ฌ ๋ฐฉ์‹
๐Ÿ’ก ์˜ˆ์‹œ: ์˜จ๋ผ์ธ ๊ฒŒ์ž„, ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ, VoIP ํ†ตํ™” → “์กฐ๊ธˆ ํ‹€๋ ค๋„ ๋˜๋‹ˆ๊นŒ ์ผ๋‹จ ๋นจ๋ฆฌ!”

 

์ฆ‰! 

“TCP๋Š” ‘๊ผญ ๋„์ฐฉํ•ด์•ผ ํ•  ํŽธ์ง€’,
UDP๋Š” ‘๋นจ๋ฆฌ ๋„์ฐฉํ•˜๋ฉด ์ข‹์€ ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€’๋‹ค.”