[๋„คํŠธ์›Œํฌ] TCP, UDP

๐Ÿ“„ ํ”„๋กœํ† ์ฝœ ๊ณ„์ธต์—์„œ์˜ ๋ฉ”์„ธ์ง€ ์ „์†ก๊ณผ์ •

ํ”„๋กœํ† ์ฝœ ๊ณ„์ธต

  1. ํ”„๋กœ๊ทธ๋žจ์ด Hello, world! ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ
  2. SOCKET ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ OS๊ณ„์ธต์— ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ
  3. OS์—์„œ ๋ฉ”์‹œ์ง€์— TCP์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  IP ํŒจํ‚ท์„ ์ƒ์„ฑํ•œ๋‹ค.
  4. ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ LAN์นด๋“œ๋ฅผ ํ†ตํ•ด์„œ ๋‚˜๊ฐˆ ๋•Œ Ethernet frame๊ณผ ํ•จ๊ป˜ ๋‚˜๊ฐ„๋‹ค.

๐Ÿ“Œ ํŒจํ‚ท์ด๋ž€? ์ธํ„ฐ๋„ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ๊ณผ์ •์„ ์„ค์ •(๋ผ์šฐํŒ…)ํ•  ๋•Œ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ„๋Š”๋ฐ ์ด ์กฐ๊ฐ์„ ํŒจํ‚ท์ด๋ผ ํ•œ๋‹ค.

๐Ÿ“„ TCP๋ž€?

TCP ํŒจํ‚ท ์ •๋ณด

TCP ์ธํ„ฐ๋„ท์ƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”์„ธ์ง€ํ˜•ํƒœ๋กœ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด IP์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ ํ•˜๋Š” ์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ(Transmission Control Protocl)์ž…๋‹ˆ๋‹ค.

โ–ช TCPํŠน์ง•

  • ์—ฐ๊ฒฐ์ง€ํ–ฅ์„ฑ(TCP 3 way handshake)
    ๋จผ์ € ์—ฐ๊ฒฐ์„ ํ•˜๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค. ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ชจ๋‘ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ์ƒํƒœ์—ฌ์•ผ ๋™์ž‘ํ•œ๋‹ค.

TCP 3 way handshake ๊ณผ์ •

3 way handshake

  1. ํด๋ผ์ด์–ธํŠธ์—์„œ SYN(์ ‘์†์š”์ฒญ)์ด๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค.
  2. ์„œ๋ฒ„๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์œผ๋ฉด Syn(์ ‘์†์š”์ฒญ)๊ณผ ACK(์š”์ฒญ ์ˆ˜๋ฝ)์ด๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค.
  3. ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ACL(์š”์ฒญ์ˆ˜๋ฝ)์„ ๋ณด๋‚ธ๋‹ค. (์ด ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ๋„ ํ•จ๊ป˜ ์ „์†กํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.)
  4. ์—ฐ๊ฒฐ์ด ๋˜๊ณ ๋‚˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋œ๋‹ค.

์—ฐ๊ฒฐ ๊ณผ์ •์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ •์„ฑ์ด ๋ณด์žฅ๋˜๊ณ  ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„์˜ ์‹ ๋ขฐ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ์—ฐ๊ฒฐ๊ณผ์ • ๋•Œ๋ฌธ์— UDP๋ณด๋‹ค ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์‹ ๋ขฐ์„ฑ์ด ์š”๊ตฌ๋˜๋Š” ์ „์†ก์— ์šฐ์„  ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 3 way handshake ๊ณผ์ •์€ ์‹ค์ œ๋กœ(๋ฌผ๋ฆฌ์ ์œผ๋กœ) ์—ฐ๊ฒฐ๋œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.
์ค‘๊ฐ„์˜ ๋…ธ๋“œ๋“ค์€ ์—ฐ๊ฒฐ๊ณผ์ •์—์„œ ์ œ์™ธ๋˜๊ณ  ํด๋ผ์ด์–ธํŠธ์™€ ์ตœ์ข… ์„œ๋ฒ„ ๊ฐ„์˜ ๋…ผ๋ฆฌ์  ์—ฐ๊ฒฐ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ
    ํŒจํ‚ท์ด ์ค‘๊ฐ„์— ๋ˆ„๋ฝ์ด ๋˜๋ฉด ์ƒ๋Œ€๋ฐฉ์ด ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ˆœ์„œ ๋ณด์žฅ
    ๋งŒ์•ฝ ์„œ๋ฒ„์— ์ˆœ์„œ๊ฐ€ ๋งž์ง€ ์•Š๊ฒŒ ๋„์ฐฉํ–ˆ๋‹ค๋ฉด(= ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋˜์—ˆ๋‹ค๋ฉด), ํด๋ผ์ด์–ธํŠธ์— ๋ฌธ์ œ์ ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ณด๋‚ด๋ผ๊ณ  ๋ฐ์ดํ„ฐ ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.(์žฌ์š”์ฒญ)
  • ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ
  • ํ˜„์žฌ๋Š” ๋Œ€๋ถ€๋ถ„ TCP ์‚ฌ์šฉ

๐Ÿ“„UDP๋ž€?

UDP๋Š” ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ(User Datagram Protocol)์„ ๋œปํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํŠธ๊ทธ๋žจ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

UDP๋Š” TCP์™€ ๋‹ค๋ฅด๊ฒŒ ๋น„์—ฐ๊ฒฐ ์„œ๋น„์Šค๋กœ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  ํ•ด์ œํ•˜๋Š” ๊ณผ์ •์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

UDP ํŠน์ง•

  • ํ•˜์–€ ๋„ํ™”์ง€์— ๋น„์œ (๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ ์—†์Œ)
  • ๋น„์—ฐ๊ฒฐ์„ฑ - TCP 3 way hankshacke x
  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ x
  • ์ˆœ์„œ ๋ณด์žฅ x
  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์ง€๋งŒ, ๋‹จ์ˆœํ•˜๊ณ  ๋น ๋ฆ„

  • ์‹ ๋ขฐ์„ฑ๋ณด๋‹ค ์—ฐ์†์„ฑ์ด ์ค‘์š”ํ•œ ์„œ๋น„์Šค์— ์‚ฌ์šฉ(์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋น„์Šค)

์ถœ์ฒ˜

Leave a comment