Skip to content

TCP, UDP

YoungMinKim edited this page Jul 17, 2021 · 2 revisions

๋ชฉ์ฐจ

  • ์ธํ„ฐ๋„ท ํ†ต์‹ 
  • IP
  • TCP, UDP
  • PORT
  • DNS

TCP & UDP

TCP/UDP๋Š” ์–ด๋Š ์ƒํ™ฉ์— ์‚ฌ์šฉ์ด ๋˜๋Š”๊ฒƒ์ด๊ณ , ์–ด๋–ค ํŠน์ง•์ด ์žˆ๋Š”์ง€ ์ •๋ฆฌ

์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ 4๊ณ„์ธต

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต
    • HTTP, FTP
  • ์ „์†ก ๊ณ„์ธต
    • TCP, UDP
  • ์ธํ„ฐ๋„ท ๊ณ„์ธต
    • IP
  • ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต
    • LAN Driver
    • LAN ์žฅ๋น„

์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ 4๊ณ„์ธต

์ฑ„ํŒ… ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ๋ฉ”์‹œ์ง€ ์ „์†ก ๊ณผ์ •:
1. ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์ฑ„ํŒ… ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด Hello World๋ผ๋Š” ๋ฉ”์‹œ์ง€ ์ž…๋ ฅ
2. ์†Œ์ผ“ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Socket Library)๋ฅผ ํ†ตํ•ด OS๊ณ„์ธต(์ „์†ก๊ณ„์ธต)์— ํ•ด๋‹น ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ
3. OS๊ณ„์ธต(์ „์†ก๊ณ„์ธต)์—์„œ๋Š” TCP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ฉ”์‹œ์ง€๋ฅผ ํŒจํ‚ท์— ๋‹ด์•„ ์ธํ„ฐ๋„ท ๊ณ„์ธต์— ์ „๋‹ฌ
4. OS๊ณ„์ธต(์ธํ„ฐ๋„ท๊ณ„์ธต)์—์„œ๋Š” IP ํŒจํ‚ท ์ƒ์„ฑ ํ›„ TCP ํŒจํ‚ท์˜ ์ •๋ณด๋ฅผ ๋‹ด๋Š”๋‹ค
5. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์— IP ํŒจํ‚ท์„ ์ „๋‹ฌ.
6. ์ด ๋•Œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค LAN์นด๋“œ๋ฅผ ํ†ตํ•ด ๋‚˜๊ฐˆ๋•Œ ์ด๋”๋„ท ํ”„๋ ˆ์ž„์ด ํฌํ•จ๋˜์–ด ์„œ๋ฒ„์— ๋˜์ง„๋‹ค

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

TCP/IP ํŒจํ‚ท์˜ ์ดํ•ด:
์œ„์—์„œ ๋งํ–ˆ๋‹ค์‹œํ”ผ, TCP์ •๋ณด๋ฅผ IPํŒจํ‚ท์œผ๋กœ ๊ฐ์‹ธ์ค€๋‹ค. 
์ด๋•Œ TCP ์ •๋ณด์—๋Š” ์ถœ๋ฐœ์ง€ PORT, ๋ชฉ์ ์ง€ PORT, ์ „์†ก์ œ์–ด ์ •๋ณด, ์ˆœ์„œ, ๊ฒ€์ฆ ์ •๋ณด, ์ „์†ก๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

TCP ํŠน์ง• (์ค‘์š”)

์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ(Transmission Control Protocol)

  • ์—ฐ๊ฒฐ ์ง€ํ–ฅ (๊ณ„์†ํ•ด์„œ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๋Š” ํŠน์ง•)
    • TCP 3way handshake(๊ฐ€์ƒ ์—ฐ๊ฒฐ : ์‹ค์ œ ๋ฌผ๋ฆฌ์  ์—ฐ๊ฒฐ์ด ์•„๋‹Œ, ๋…ผ๋ฆฌ์  ์—ฐ๊ฒฐ)
  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ
    • ๋ฉ”์‹œ์ง€ ์ „์†ก ์‹œ ํŒจํ‚ท์ด ์ค‘๊ฐ„์— ๋ˆ„๋ฝ๋˜๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค
  • ์ˆœ์„œ ๋ณด์žฅ
    • ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋˜๋Š” ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•œ๋‹ค
    • ์—ฐ๊ฒฐ์ง€ํ–ฅ, ํŒจํ‚ท ์†์‹ค ์—ฌ๋ถ€, ์ˆœ์„œ ๋ณด์žฅ์ด๋ผ๋Š” ํŠน์ง•์„ ํ†ตํ•ด ์‹ ๋ขฐ์„ฑ์ด ๋†’์€ ํ”„๋กœํ† ์ฝœ์ด๋‹ค
  • ํ˜„์žฌ๋Š” ๋Œ€๋ถ€๋ถ„ TCP ์‚ฌ์šฉํ•˜์ง€๋งŒ UDP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค ์—ญ์‹œ ๋งŽ๋‹ค

์—ฐ๊ฒฐ์ง€ํ–ฅ : TCP 3 way hasdShake

  • SYN : ์ ‘์† ์š”์ฒญ
    • Client์ธก์—์„œ ์„œ๋ฒ„์ชฝ์— ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•œ์ง€ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
  • ACK : ์š”์ฒญ ์ˆ˜๋ฝ
    • ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋ฉด ํ•ด๋‹น Client ์„œ๋ฒ„์— ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค.
  • ์ฐธ๊ณ  : 3. ACK์™€ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ€๋Šฅ

๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ

TCP ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ:
1. โ—๏ธ๊ธฐ์กด IP(Interent Protocol)๋งŒ์œผ๋กœ๋Š” ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค
ex) ์‰ฝ๊ฒŒ ๋งํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋ฒ„์— ์ž˜ ๋„์ฐฉ์„ ํ–ˆ๋Š” ์ง€ ํ™•์ธํ•  ๋ฐฉ๋ฒ•์ด ์—†์Œ(IP๋งŒ์œผ๋กœ)
2. TCP/IP์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ฒŒ๋˜๋ฉด ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ๋ฐ›์•˜๋‹ค๋Š” ์‘๋‹ต์„ ๋ณด๋‚ด์ค€๋‹ค.
3. ์—ฌ๊ธฐ์„œ ํ•œ๋ฒˆ ๋” ๋ณต๊ธฐํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์€ TCP๋Š” IP์˜ ํ•œ๊ณ„์„ฑ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ํ”„๋กœํ† ์ฝœ
4. ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ, ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•˜๋Š” ๊ฒƒ์— ํฌ์ปค์Šค

์ˆœ์„œ ๋ณด์ฆ

TCP ๋ฐ์ดํ„ฐ ์ˆœ์„œ ๋ณด์ฆ:
1. ํŒจํ‚ท์•ˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š”๋‹ค.
2. ํŒจํ‚ท(1๋ฒˆ, 2๋ฒˆ, 3๋ฒˆ)์ด ์ธํ„ฐ๋„ท๋ง์— ๋˜์ ธ์ง„๋‹ค, ์ด ๋•Œ ์ˆ˜๋งŽ์€ ์„œ๋ฒ„(๋…ธ๋“œ)๋ฅผ ํ†ตํ•ด ๋ชฉ์ ์ง€ ์„œ๋ฒ„์— ๋„์ฐฉ
3. ๊ทผ๋ฐ ํŒจํ‚ท์ด 2๋ฒˆ, 3๋ฒˆ, 1๋ฒˆ ์ˆœ์œผ๋กœ ๋„์ฐฉ ํ•˜์˜€๋‹ค
4. ์ด ๋•Œ ๋ชฉ์ ์ง€ ์„œ๋ฒ„๋Š” ํŒจํ‚ท์˜ ์ˆœ์„œ๊ฐ€ ์ž˜๋ชป ๋˜์—ˆ์Œ์„ ํŒ๋‹จํ•˜๊ณ , ํ•ด๋‹น ํŒจํ‚ท์„ ์ „๋ถ€ ๋ฒ„๋ฆฐ๋‹ค
5. ํ›„์— ํด๋ผ์ด์–ธํŠธ์ธก์— 1๋ฒˆ ํŒจํ‚ท๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ณด๋‚ด๋ผ๋Š” ์‘๋‹ต(ACK)์„ ๋ณด๋‚ธ๋‹ค
6. ํ•ด๋‹น ์š”์ฒญ์„ ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ๋Š” ํŒจํ‚ท์— ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ ๋‹ด์•„ ์š”์ฒญ(Request)์„ ๋ณด๋‚ธ๋‹ค

UDP

์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ(User Datagram Protocol)

  • ํ•˜์–€ ๋„ํ™”์ง€์— ๋น„์œ (๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ ์—†์Œ)
  • ๋น„์—ฐ๊ฒฐ์ง€ํ–ฅ
    • TCP 3 way handshake๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค
    • ์ผ๋ฐฉ์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์„œ๋ฒ„ ์ธก์œผ๋กœ ์ „์†กํ•œ๋‹ค ์ƒ๊ฐํ•˜๋ฉด ๋จ
  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ
    • UDP๋Š” ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค, ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋˜๋„ ์ฐพ์„ ์ˆ˜ ์—†์Œ
  • ์ˆœ์„œ ๋ณด์žฅ
    • UDP๋Š” ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ ์—ญ์‹œ ๋ณด์ฆ์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค
  • ์‚ฌ์šฉ ๋ชฉ์ 
    • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์ง€๋งŒ, ๋‹จ์ˆœํ•˜๊ณ  ๋น ๋ฆ„
    • ์ฆ‰, ์†๋„๊ฐ€ TCP์— ๋น„ํ•ด ์ƒ๋‹นํžˆ ๋น ๋ฅด๊ธฐ์— ์‚ฌ์šฉ์ด ๋œ๋‹ค.
  • ์ •๋ฆฌ
    • IP์™€ ๊ฑฐ์˜ ๊ฐ™๋‹ค. +PORT +์ฒดํฌ์„ฌ ์ •๋„๋งŒ ์ถ”๊ฐ€
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ถ”๊ฐ€ ์ž‘์—… ํ•„์š”

ํ˜„์žฌ ์ƒํƒœ๊ณ„

TCP?, UDP?:
ํ˜„์žฌ ์ธํ„ฐ๋„ท๋ง์€ ๋Œ€๋ถ€๋ถ„ TCP ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„์ด ๋˜์–ด์žˆ๋‹ค. 
ํ•˜์ง€๋งŒ UDP๋ฅผ ํ†ตํ•ด ๋”์šฑ ๋” ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
Clone this wiki locally