OSI๋ชจ๋ธ์˜ 4๊ณ„์ธต์ธ ์ „์†ก ๊ณ„์ธต์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ธฐ


๐ŸŒ ์ „์†ก ๊ณ„์ธต_์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†กํ•˜๊ธฐ

๐Ÿš€ What I Will Learn

  • ์ „์†ก ๊ณ„์ธต์˜ ์—ญํ• ์„ ์ดํ•ดํ•œ๋‹ค
  • ์—ฐ๊ฒฐํ˜• ํ†ต์‹ ๊ณผ ๋น„์—ฐ๊ฒฐํ˜• ํ†ต์‹ ์„ ์ดํ•ดํ•œ๋‹ค
  • TCP๋ฅผ ์ดํ•ดํ•œ๋‹ค
  • UDP๋ฅผ ์ดํ•ดํ•œ๋‹ค

LESSON 23. ์ „์†ก ๊ณ„์ธต์˜ ์—ญํ• 

1) ์ „์†ก ๊ณ„์ธต์˜ ๋‘ ๊ฐ€์ง€ ์—ญํ• 

โ‘  ๋ฐ์ดํ„ฐ๊ฐ€ ์ œ๋Œ€๋กœ ๋„์ฐฉํ–ˆ๋Š”์ง€ ํ™•์ธ
โ‘ก ์ „์†ก๋œ ๋ฐ์ดํ„ฐ์˜ ๋ชฉ์ ์ง€๊ฐ€ ์–ด๋–ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ธ์ง€ ์‹๋ณ„

OSI๋ชจ๋ธ์˜ ๋ฌผ๋ฆฌ ๊ณ„์ธต, ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต, ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์˜ 3๊ณ„์ธต์ด ์žˆ์œผ๋ฉด ๋ชฉ์ ์ง€์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

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

  • ๋ผ์šฐํŒ… ์ •๋ณด๊ฐ€ ์ž˜๋ชป๋  ์ˆ˜ ์žˆ๊ณ 
  • ๋งŽ์€ ๋ผ์šฐํ„ฐ๋ฅผ ๊ฒฝ์œ ํ•˜๋Š” ๋„์ค‘์— ๋ผ์šฐํ„ฐ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ฑฐ๋‚˜
  • ํŒจํ‚ท์ด ์†์ƒ๋˜๊ฑฐ๋‚˜ ์œ ์‹ค๋˜๋”๋ผ๋„

์ด 3๊ณ„์ธต์—์„œ๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์—†๋‹ค

OSI๋ชจ๋ธ์˜ ์ „์†ก ๊ณ„์ธต์€ ๋ชฉ์ ์ง€์— ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”!!!

์ „์†ก ๊ณ„์ธต์—๋Š” ์˜ค๋ฅ˜๋ฅผ ์ ๊ฒ€ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์–ด์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์ „์†กํ•˜๋„๋ก ์š”์ฒญํ•œ๋‹ค

์ฆ‰, ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์ „์†ก ๊ณ„์ธต์—์„œ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ œ๋Œ€๋กœ ๋„์ฐฉํ–ˆ๋Š”์ง€ ํ™•์ธ

์ „์†ก ๊ณ„์ธต์€ ์ปดํ“จํ„ฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ๋ฐ›๊ณ  ์–ด๋–ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ „๋‹ฌํ•ด์•ผ ํ•˜๋Š”์ง€ ํŒ๋‹จ ํ›„ ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค


- ์ „์†ก ๊ณ„์ธต์˜ ๋‘ ๊ฐ€์ง€ ์—ญํ•  โ‘  ๋ฐ์ดํ„ฐ๊ฐ€ ์ œ๋Œ€๋กœ ๋„์ฐฉํ–ˆ๋Š”์ง€ ํ™•์ธ
โ‘ก ์ „์†ก๋œ ๋ฐ์ดํ„ฐ์˜ ๋ชฉ์ ์ง€๊ฐ€ ์–ด๋–ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ธ์ง€ ์‹๋ณ„


1) ์—ฐ๊ฒฐํ˜• ํ†ต์‹ ๊ณผ ๋น„์—ฐ๊ฒฐํ˜• ํ†ต์‹ 

์ „์†ก ๊ณ„์ธต์˜ ํŠน์ง•์„ ๊ฐ„๋‹จํžˆ ์š”์•ฝํ•˜๋ฉด ์‹ ๋ขฐ์„ฑ/์ •ํ™•์„ฑ๊ณผ ํšจ์œจ์„ฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค

  • ์‹ ๋ขฐ์„ฑ/์ •ํ™•์„ฑ: ๋ฐ์ดํ„ฐ๋ฅผ ๋ชฉ์ ์ง€์— ๋ฌธ์ œ์—†์ด ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ
  • ํšจ์œจ์„ฑ: ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ

์—ฌ๊ธฐ์„œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ†ต์‹ ์„ ์—ฐ๊ฒฐํ˜• ํ†ต์‹ ์ด๋ผ๊ณ  ํ•˜๊ณ ,

์—ฐ๊ฒฐํ˜• ํ†ต์‹ : ์‹ ๋ขฐ์„ฑ/์ •ํ™•์„ฑ์ด ์šฐ์„ ์ธ ํ†ต์‹ ์ด๋ผ์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ํ™•์ธํ•˜๊ณ  ๋ณด๋‚ด๋Š”, ์ƒ๋Œ€ํŽธ๊ณผ ํ™•์ธํ•ด๊ฐ€๋ฉฐ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ์‹

ํšจ์œจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ†ต์‹ ์„ ๋น„์—ฐ๊ฒฐํ˜• ํ†ต์‹ ์ด๋ผ๊ณ  ํ•œ๋‹ค

๋น„์—ฐ๊ฒฐํ˜• ํ†ต์‹ : ํšจ์œจ์„ฑ์ด ์šฐ์„ ์ธ ํ†ต์‹ ์ด๋ฏ€๋กœ ํ™•์ธ ์ ˆ์ฐจ ์—†์ด ์ผ๋ฐฉ์ ์œผ๋กœ ๋ณด๋‚ด๋Š”, ์ƒ๋Œ€ํŽธ์„ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ์ผ๋ฐฉ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹
์˜ˆ์‹œ) ๋™์˜์ƒ: ๋ฐ์ดํ„ฐ๊ฐ€ ๋Šฆ๊ฒŒ ๋„์ฐฉํ•ด์„œ ํ™”๋ฉด์ด ๋ฒ„๋ฒ…๊ฑฐ๋ฆฌ๋Š” ๊ฒƒ ๋ณด๋‹ค, ๋ฐ์ดํ„ฐ๊ฐ€ ์•ฝ๊ฐ„ ์œ ์‹ค๋˜๋”๋ผ๋„ ์›ํ™œํ•˜๊ฒŒ ๋ณด๋Š” ๊ฒƒ์ด ์ข‹์œผ๋‹ˆ๊นŒ!

์ „์†ก ๊ณ„์ธต์˜ ์—ฐ๊ฒฐํ˜• ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์—๋Š” TCP๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ , ๋น„์—ฐ๊ฒฐํ˜• ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์—๋Š” UDP๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค



LESSON 24. TCP์˜ ๊ตฌ์กฐ

1) TCP(Transmission Control Protocol, ์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ)๋ž€?

TCP: ์ „์†ก ๊ณ„์ธต์—์„œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •ํ™•ํ•œ ํ†ต์‹ ์„ ์ œ๊ณตํ•˜๋Š”, ์‹ ๋ขฐ์„ฑ/์ •ํ™•์„ฑ์ด ์šฐ์„ ์ธ ์—ฐ๊ฒฐํ˜• ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ธ TCP

  • ์„ธ๊ทธ๋จผํŠธ(segment): TCP ํ—ค๋”๊ฐ€ ๋ถ™์€ ๋ฐ์ดํ„ฐ

  • TCP ํ—ค๋”: TCP๋กœ ์ „์†กํ•  ๋•Œ ๋ถ™ํžˆ๋Š” ํ—ค๋”. ๋ชฉ์ ์ง€๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๋Œ€๋กœ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค

๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์ „์— ์—ฐ๊ฒฐ(connection)์ด๋ผ๋Š” ๊ฐ€์ƒ์˜ ๋…์  ํ†ต์‹ ๋กœ ํ™•๋ณด ์ž‘์—…์„ ํ•ด์•ผํ•˜๋Š”๋ฐ, ์ด ์—ฐ๊ฒฐ์„ ํ™•๋ฆฝํ•œ ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค

์—ฐ๊ฒฐ(connection): TCP ํ†ต์‹ ์—์„œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฐ€์žฅ์˜ ํ†ต์‹ ๋กœ๋กœ, ์—ฐ๊ฒฐ์„ ํ™•๋ฆฝํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค

TCP ํ—ค๋”์—๋Š” ์ฝ”๋“œ ๋น„ํŠธ๋ผ๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ, ์ฝ”๋“œ ๋น„ํŠธ๋Š” TCP ํ—ค๋”์˜ ์—ฐ๊ฒฐ ์ œ์–ด ์ •๋ณด๊ฐ€ ๊ธฐ๋ก๋˜๋Š” ๊ณณ์ด๋‹ค

์ดˆ๊ธฐ๊ฐ’์€ 0์ด๊ณ , ์—ฐ๊ฒฐ์„ ํ™•๋ฆฝํ•˜๋ ค๋ฉด SYN(์—ฐ๊ฒฐ ์š”์ฒญ)๊ณผ ACK(ํ™•์ธ ์‘๋‹ต)๊ฐ€ ํ•„์š”ํ•˜๋‹ค


2) 3-way ํ•ธ๋“œ์…ฐ์ดํฌ(three-way handshake)๋ž€?

์—ฐ๊ฒฐ(connection)์€ SYN(์—ฐ๊ฒฐ ์š”์ฒญ)๊ณผ ACK(ํ™•์ธ ์‘๋‹ต)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•๋ฆฝ ํ•  ์ˆ˜ ์žˆ๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ๊ฒฐ์„ ํ•˜๋ ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์ „์— ํŒจํ‚ท ๊ตํ™˜์„ ์„ธ ๋ฒˆ(three-way handshake) ํ™•์ธ ํ•œ๋‹ค

3-WAY ํ•ธ๋“œ์…ฐ์ดํฌ(three-way handshake): ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „์— ์—ฐ๊ฒฐ์„ ํ™•๋ฆฝํ•˜๊ธฐ ์œ„ํ•ด ํŒจํ‚ท ์š”์ฒญ์„ ์„ธ๋ฒˆ ๊ตํ™˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ.
ํ•ธ๋“œ์…ฐ์ดํฌ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ƒ๋Œ€๋ฐฉ์„ ํ™•์ธํ•˜๊ณ  ์•…์ˆ˜๋ฅผ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์—์„œ๋„ ํ™•์‹คํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ฉด์„œ ์ด๋ฃจ์–ด์ง€๋Š” ํ†ต์‹  ์ˆ˜๋‹จ์ด๋‹ค.

โ‘  ํ†ต์‹ ์„ ํ•˜๋ ค๋ฉด ์„œ๋ฒ„์—๊ฒŒ ํ—ˆ๊ฐ€๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋ฏ€๋กœ, ๋จผ์ € ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐ ํ™•๋ฆฝ ํ—ˆ๊ฐ€๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•œ ์š”์ฒญ(SYN)์„ ๋ณด๋‚ธ๋‹ค.
โ‘ก ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์„ ๋ฐ›์€ ํ›„์— ํ—ˆ๊ฐ€ํ•œ๋‹ค๋Š” ์‘๋‹ต์„ ํšŒ์‹ ํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ๊ฒฐ ํ™•๋ฆฝ ์‘๋‹ต(ACK)์„ ๋ณด๋‚ธ๋‹ค. ๋™์‹œ์— ์„œ๋ฒ„๋„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ ์ „์†ก ํ—ˆ๊ฐ€๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ์—ฐ๊ฒฐ ํ™•๋ฆฝ ์š”์ฒญ(SYN)๋ฅผ ๋ณด๋‚ธ๋‹ค.
โ‘ข ์„œ๋ฒ„์˜ ์š”์ฒญ์„ ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๋กœ ํ—ˆ๊ฐ€ํ•œ๋‹ค๋Š” ์‘๋‹ต์œผ๋กœ ์—ฐ๊ฒฐ ํ™•๋ฆฝ ์‘๋‹ต(ACK)๋ฅผ ๋ณด๋‚ธ๋‹ค.



๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ „์†กํ•œ ํ›„์—๋„ ์—ฐ๊ฒฐ์„ ๋Š๊ธฐ ์œ„ํ•œ ์š”์ฒญ์„ ๊ตํ™˜ํ•ด์•ผ ํ•œ๋‹ค. ์—ฐ๊ฒฐ์„ ๋Š์„ ๋•Œ๋Š” FIN(์—ฐ๊ฒฐ ์ข…๋ฃŒ)๊ณผ ACK(ํ™•์ธ ์‘๋‹ต)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

โ‘  ์ปดํ“จํ„ฐ 1์—์„œ ์ปดํ“จํ„ฐ 2๋กœ ์—ฐ๊ฒฐ ์ข…๋ฃŒ ์š”์ฒญ(FIN)์„ ๋ณด๋‚ธ๋‹ค.
โ‘ก ์ปดํ“จํ„ฐ 2์—์„œ ์ปดํ“จํ„ฐ 1๋กœ ์—ฐ๊ฒฐ ์ข…๋ฃŒ ์‘๋‹ต(ACK)๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
โ‘ข ๋˜ํ•œ ์ปดํ“จํ„ฐ 2์—์„œ๋„ ์ปดํ“จํ„ฐ 1๋กœ ์—ฐ๊ฒฐ ์ข…๋ฃŒ ์š”์ฒญ(FIN)์„ ๋ณด๋‚ธ๋‹ค.
โ‘ฃ ์ปดํ“จํ„ฐ 1์—์„œ ์ปดํ“จํ„ฐ 2๋กœ ์—ฐ๊ฒฐ ์ข…๋ฃŒ ์‘๋‹ต(ACK)์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.



LESSON 25. ์ผ๋ จ๋ฒˆํ˜ธ์™€ ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ์˜ ๊ตฌ์กฐ

1) ์ผ๋ จ๋ฒˆํ˜ธ์™€ ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ๋ž€?

3-way ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ๋๋‚˜๊ณ  ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ์ƒ๋Œ€๋ฐฉ์ด ๋ฐ›์„ ๋•Œ๋Š” TCP ํ—ค๋”์˜ ์ผ๋ จ ๋ฒˆํ˜ธ(sequence number)์™€ ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ(acknowledgement number)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

TCP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• ํ•ด์„œ ๋ณด๋‚ด๋Š”๋ฐ

  • ์ผ๋ จ๋ฒˆํ˜ธ๋Š” ์†ก์‹  ์ธก์—์„œ ์ˆ˜์‹  ์ธก์— _์ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ช‡ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ์ธ์ง€_ ์•Œ๋ ค ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

    • ์ „์†ก๋œ ๋ฐ์ดํ„ฐ์— ์ผ๋ จ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•˜๋ฉด ์ˆ˜์‹ ์ž๋Š” ์›๋ž˜ ๋ฐ์ดํ„ฐ์˜ ๋ช‡ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ๋Š” ์ˆ˜์‹  ์ธก์ด _๋ช‡ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ–ˆ๋Š”์ง€_ ์†ก์‹  ์ธก์— ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

    • ๊ทธ๋ž˜์„œ ์ด ๋ฒˆํ˜ธ๋Š” ๋‹ค์Œ ๋ฒˆํ˜ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋Š”๋ฐ๋„ ์‚ฌ์šฉํ•œ๋‹ค.


๋ฐ์ดํ„ฐ๊ฐ€ ํ•ญ์ƒ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฏ€๋กœ ์ผ๋ จ๋ฒˆํ˜ธ์™€ ํ™•์ธ ์‘๋‹ต ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์ƒ๋˜๊ฑฐ๋‚˜ ์œ ์‹ค๋œ ๊ฒฝ์šฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์ „์†กํ•˜๊ฒŒ ๋˜์–ด์žˆ๋‹ค. ์ด๊ฒƒ์„ ์žฌ์ „์†ก ์ œ์–ด๋ผ๊ณ  ํ•œ๋‹ค.


1) ์œˆ๋„์šฐ ํฌ๊ธฐ๋ž€?

์œˆ๋„์šฐ ํฌ๊ธฐ: ๋ฒ„ํผ(์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ์Œ“์ธ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ๋ณด๊ด€ํ•˜๋Š” ์žฅ์†Œ) ์šฉ๋Ÿ‰์˜ ํฌ๊ธฐ

TCP์˜ ํŠน์ง•์€ ์„ธ๊ทธ๋จผํŠธ(๋ฐ์ดํ„ฐ) ํ•˜๋‚˜๋ฅผ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ํ™•์ธ ์‘๋‹ต์„ ํ•œ ๋ฒˆ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ†ต์‹ ์ธ๋ฐ, ํ•œ ๋ฒˆ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ํ•œ ๋ฒˆ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์ด์–ด์„œ ํšจ์œจ์ด ๋‚ฎ๋‹ค

ํ•˜์ง€๋งŒ, ๋งค๋ฒˆ ํ™•์ธ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋Œ€์‹  ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์—ฐ์†ํ•ด์„œ ๋ณด๋‚ด๊ณ  ๋‚œ ๋‹ค์Œ์— ํ™•์ธ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ํšจ์œจ์ด ๋†’์•„์ง€์ง€๋งŒ ์ƒ๋Œ€๋ฐฉ์—๋Š” ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์ ์  ์Œ“์ด๊ฒŒ ๋œ๋‹ค. ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ์Œ“์ธ ์„ธ๊ทธ๋จผํŠธ๋Š” ๋ฒ„ํผ(buffer)๋ผ๋Š” ์žฅ์†Œ์— ์ผ์‹œ์ ์œผ๋กœ ๋ณด๊ด€ํ•œ๋‹ค.

  • ๋ฒ„ํผ(buffer) ๋•๋ถ„์— ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์—ฐ์†ํ•ด์„œ ๋ณด๋‚ด๋„ ์ˆ˜์‹  ์ธก์€ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๊ณ  ํšจ์œจ๋„ ๋†’์•„์ง„๋‹ค
  • ํ•˜์ง€๋งŒ ์ˆ˜์‹  ์ธก์€ ๋Œ€๋Ÿ‰์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋˜๋ฉด ๋ณด๊ด€ํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋„˜์ณ ๋ฒ„๋ฆฌ๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜ค๋ฒ„ํ”Œ๋กœ(overflow)๋ผ๊ณ  ํ•œ๋‹ค.

์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๋ฒ„ํผ์˜ ํ•œ๊ณ„ ํฌ๊ธฐ๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๊ฒƒ์ด TCP ํ—ค๋”์˜ ์œˆ๋„์šฐ ํฌ๊ธฐ(window size) ๊ฐ’์— ํ•ด๋‹นํ•œ๋‹ค.

์œˆ๋„์šฐ ํฌ๊ธฐ: ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด ๋‘˜ ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ฆ‰, ํ™•์ธ ์‘๋‹ต์„ ์ผ์ผ์ด ํ•˜์ง€ ์•Š๊ณ  ์—ฐ์†ํ•ด์„œ ์†ก์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋‹ค.



LESSON 26. ํฌํŠธ ๋ฒˆํ˜ธ(port number)์˜ ๊ตฌ์กฐ

1) ํฌํŠธ ๋ฒˆํ˜ธ(port number)๋ž€?

ํฌํŠธ ๋ฒˆํ˜ธ: ์–ด๋–ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๋Š” ์—ญํ• 

์ „์†ก ๊ณ„์ธต์˜ ์—ญํ•  ์ค‘ ์ „์†ก๋œ ๋ฐ์ดํ„ฐ์˜ ๋ชฉ์ ์ง€๊ฐ€ ์–ด๋–ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์›น ๋ธŒ๋ผ์šฐ์ €๋‚˜ ๋ฉ”์ผ ํ”„๋กœ๊ทธ๋žจ ๋“ฑ)์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„  TCP ํ—ค๋”์˜ ์ถœ๋ฐœ์ง€ ํฌํŠธ ์ฃผ์†Œ(source port number)์™€ ๋ชฉ์ ์ง€ ํฌํŠธ ์ฃผ์†Œ(destination port number)๊ฐ€ ํ•„์š”ํ•˜๋‹ค. TCP ํ—ค๋”์— ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

ํฌํŠธ ๋ฒˆํ˜ธ๋Š” 0 ~ 65535๋ฒˆ ๊นŒ์ง€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ํฌ๊ฒŒ ์„ธ ์ข…๋ฅ˜๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

ํฌํŠธ ์ข…๋ฅ˜ ๋ฒ”์œ„ ์„ค๋ช…
์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ (well-known port) 0๋ฒˆ ~ 1023๋ฒˆ ์ฃผ์š” ํ”„๋กœํ† ์ฝœ์ด ์‚ฌ์šฉํ•˜๋„๋ก ์˜ˆ์•ฝ๋˜์–ด ์žˆ์Œ
์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„ ์ธก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ
๋“ฑ๋ก๋œ ํฌํŠธ (registered port) 1024๋ฒˆ ~ 49151๋ฒˆ - 1024๋ฒˆ: ์˜ˆ์•ฝ๋˜์–ด ์žˆ์ง€๋งŒ ์‚ฌ์šฉ๋˜์ง€๋Š” ์•Š๋Š” ํฌํŠธ
- 1025 ์ด์ƒ: ๋žœ๋ค ํฌํŠธ๋ผ๊ณ  ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ์†ก์‹  ํฌํŠธ๋กœ ์‚ฌ์šฉ
๋™์  ํฌํŠธ (dynamic port) 49152๋ฒˆ ~ 65535๋ฒˆ ย 

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํฌํŠธ ๋ฒˆํ˜ธ
SSH 22
SMTP 25
DNS 53
HTTP 80
POP3 110
HTTPS 443

์ด์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ฐ๊ฐ ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ์–ด์„œ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์„œ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ๋Š” ์ƒ๋Œ€๋ฐฉ์˜ **IP ์ฃผ์†Œ**๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ, ์–ด๋–ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š”์ง€ ๊ตฌ๋ถ„ํ•˜๋ ค๋ฉด **TCP๋Š” ํฌํŠธ ๋ฒˆํ˜ธ**๊ฐ€ ํ•„์š”ํ•˜๋‹ค.



LESSON 27. UDP(User Datagram Protocol)์˜ ๊ตฌ์กฐ

1) UDP(User Datagram Protocol)๋ž€?

UDP: ์‚ฌ์šฉ์ž ๋‹ค์ด์–ด๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ. ์ „์†ก ๊ณ„์ธต์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์ด๊ณ  ๋น ๋ฅด๊ฒŒ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ

UDP๋Š” ๋น„์—ฐ๊ฒฐํ˜• ํ†ต์‹ ์ด๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ TCP์ฒ˜๋Ÿผ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ํ™•์ธ ์ž‘์—…์„ ์ผ์ผ์ด ํ•˜์ง€ ์•Š๋Š”๋‹ค.

UDP๋Š” TCP์™€ ๋‹ฌ๋ฆฌ ํšจ์œจ์„ฑ</span>์„ ์ค‘์š”ํ•˜๊ฒŒ ์—ฌ๊ธฐ๋Š” ํ”„๋กœํ† ์ฝœ ์ด๋ผ TCP์™€ ๊ฐ™์€ ์‹ ๋ขฐ์„ฑ๊ณผ ์ •ํ™•์„ฑ์„ ์š”๊ตฌํ•˜๊ฒŒ ๋˜๋ฉด ํšจ์œจ์ด ๋–จ์–ด์ง„๋‹ค.

UDP์˜ ์žฅ์ ์€ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋ผ์„œ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐฉ์‹์œผ๋กœ ์ „์†กํ•˜๋Š” ๋™์˜์ƒ ์„œ๋น„์Šค์™€ ๊ฐ™์€ ๊ณณ์— ์‚ฌ์šฉ๋œ๋‹ค.

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


2) UDP ํ—ค๋”๋ž€?

UDP ์—์„œ๋Š” UDP ํ—ค๋”๊ฐ€ ๋ถ™์€ ๋ฐ์ดํ„ฐ๋ฅผ UDP ๋ฐ์ดํ„ฐ ๊ทธ๋žจ์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • TCP์™€ UDP ์ฐจ์ด

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




:: ์šฉ์–ด ์ •๋ฆฌ๐Ÿ’ก

  • ์ „์†ก ๊ณ„์ธต(transport layer, ํŠธ๋žœ์ŠคํฌํŠธ ๊ณ„์ธต): ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋ฏ€๋กœ ์ƒ์œ„ ๊ณ„์ธต๋“ค์ด ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์˜ ์œ ํšจ์„ฑ์ด๋‚˜ ํšจ์œจ์„ฑ์„ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๋„๋ก ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต๋˜๊ฑฐ๋‚˜ ๋ˆ„๋ฝ๋˜์ง€ ์•Š๊ณ  ์˜ค๋ฅ˜ ์—†์ด ์ˆœ์„œ์— ๋งž๊ฒŒ ์ „์†ก๋˜๋„๋ก ๊ด€๋ฆฌํ•œ๋‹ค.

  • ์—ฐ๊ฒฐํ˜•(connection-oriented): ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์ „์— ์—ฐ๊ฒฐ์„ ๋งบ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๋™์•ˆ ๊ณ„์† ์—ฐ๊ฒฐ์„ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์˜ ํ•œ ํ˜•ํƒœ๋‹ค.

  • ๋น„์—ฐ๊ฒฐํ˜•(connectionless): ์—ฐ๊ฒฐ(connection)์— ๋Œ€ํ•œ ์ดˆ๊ธฐํ™” ๊ณผ์ •์ด ์—†๋Š” ํ†ต์‹ ์ด๋‹ค.

  • TCP(Transmission Control Protocol, ์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ): ์ „์†ก ๊ณ„์ธต์˜ ํ”„๋กœํ† ์ฝœ์€ ์—ฐ๊ฒฐํ˜•(connection-oriented) ํ†ต์‹  ๋ฐฉ์‹์ด๋ฉฐ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๋ณด์žฅํ•œ๋‹ค.

  • ๋Œ€์—ญํญ(bandwidth): ์ •ํ•ด์ง„ ์‹œ๊ฐ„ ๋™์•ˆ ์ „์†ก๋  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘(์ฃผ๋กœ ์†๋„๋ฅผ ์˜๋ฏธํ•œ๋‹ค)์„ ๋งํ•œ๋‹ค. ๋Œ€์—ญํญ์€ ์ œํ•œ์ ์ด๋‹ค.

  • UDP(User Datagram Protocol): ์ •๋ณด๋ฅผ ์„œ๋กœ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ๋ณด๋‚ด๋Š” ์ชฝ์—์„œ ์ผ๋ฐฉ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์—ฐ๊ฒฐ์„ ๋งบ์„ ํ•„์š”๊ฐ€ ์—†๊ณ  ์ •๋ณด๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฐ›๋Š”๋‹ค๋Š” ์‹ ํ˜ธ๋„ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.

  • 3-way ํ•ธ๋“œ์…ฐ์ดํŠธ(three-way handshake): TCP ํ†ต์‹ ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์‹ ๋ขฐ์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ํ†ต์‹  ๋ฐฉ์‹์ด๋‹ค. ์ปดํ“จํ„ฐ ๊ฐ„์— ์—ฐ๊ฒฐ์„ ๋งบ๊ธฐ ์œ„ํ•œ ์ดˆ๊ธฐํ™” ๊ณผ์ •์œผ๋กœ ์„ธ ๋‹จ๊ณ„๋กœ ๋˜์–ด ์žˆ์–ด์„œ three-way๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

  • ์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ(well-known ports): ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์˜ˆ์•ฝ๋˜์–ด ์žˆ๋Š” ํฌํŠธ๋กœ 1~1023๋ฒˆ ํฌํŠธ๋ฅผ ๋งํ•œ๋‹ค.

  • ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ(broadcast): ๋„คํŠธ์›Œํฌ์˜ ๋ชจ๋“  ์ปดํ“จํ„ฐ์™€ ์žฅ๋น„์— ๊ฐ™์€ ํŒจํ‚ท์„ ์ผ๊ด„ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

  • ์ผ๋ จ๋ฒˆํ˜ธ(sequence number): TCP์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ๊ฐ ๋ฐ์ดํ„ฐ์— ๊ณ ์œ ํ•œ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•ด์„œ ์ „์†ก์„ ์‹œ๋„ํ•œ๋‹ค. ์ด ๋ฒˆํ˜ธ๋ฅผ ์ด์šฉํ•˜์—ฌ TCP ํŒจํ‚ท์˜ ์ˆœ์„œ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํฌํŠธ ๋ฒˆํ˜ธ(port number): ์ปดํ“จํ„ฐ๊ฐ€ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์„ ํ•  ๋•Œ ํ†ตํ•˜๊ณ ์ž ํ•˜๋Š” ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋‚˜ ํŠน์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋…ธ๋ฆฌ ๋‹จ์œ„๋‹ค. ํฌํŠธ ๋ฒˆํ˜ธ๋Š” 0~65535๋ฒˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 0~1023๋ฒˆ์€ ์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ(well-known ports)๋กœ ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์˜ˆ์•ฝ๋œ ๋ฒˆํ˜ธ๋‹ค.