Network #TCP #UDP

๊ณฝ์„œํ˜„ยท2022๋…„ 11์›” 9์ผ
0

TCP & UDP(4 layer)

๐Ÿ“UDP

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

UDP ํŠน์ง•

  • ๋ฐ์ดํ„ฐ ๊ฒฝ๊ณ„๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.(๋ฐ์ดํ„ฐ๊ทธ๋žจ ์„œ๋น„์Šค)
  • ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ์ •๋ณด๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฐ›๋Š”๋‹ค๋Š” ์‹ ํ˜ธ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๋Š”๋‹ค.
  • ์˜๋ฏธ์žˆ๋Š” ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ผ์ผ์ด ํŒจํ‚ท์„ ๊ด€๋ฆฌํ•ด์ค˜์•ผ ํ•œ๋‹ค.
  • ํŒจํ‚ท ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ์–ด ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜๊ฐ€ ๊ฐ์†Œ๋œ๋‹ค.
  • VoIP, DNS

UDP ํ—ค๋” ์ •๋ณด

๐Ÿ“TCP

TCP(Transmission Control Protocol)๋Š” ์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์ฆ‰, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์—ฐ๊ฒฐ๋œ ์ƒํƒœ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ”„๋กœํ† ์ฝœ์„ ์˜๋ฏธํ•˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ํ•˜๊ณ  ์„œ๋ฒ„๊ฐ€ ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฝํ•˜๋ฉด ํ†ต์‹  ์„ ๋กœ๊ฐ€ ๊ณ ์ •๋˜๊ณ , ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ๊ณ ์ •๋œ ํ†ต์‹ ์„ ๋กœ๋ฅผ ํ†ตํ•ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์•ˆ์ •์ ์ด๋ฉฐ ์ •ํ™•ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.
=> TCP ์—์„œ ์—ฐ๊ฒฐ ์„ค์ •(connection establishment)๋Š” 3-way handshake๋ฅผ ํ†ตํ•ด ํ–‰ํ•ด์ง„๋‹ค!!
์ฃผ๋กœ client์™€ Server ๋˜๋Š” P2P Socket ํ†ต์‹  ๋“ฑ, ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•œ ํ†ต์‹ ์„ ํ•  ๋•Œ TCP ํ†ต์‹ ์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

TCP ํŠน์ง•

  • ์—ฐ๊ฒฐํ˜• (connnection-oriented) ์„œ๋น„์Šค๋กœ ์—ฐ๊ฒฐ์ด ์„ฑ๊ณตํ•ด์•ผ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. _ ์„ ์—ฐ๊ฒฐ ํ›„์ „์†ก
  • ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค. (๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ ์„œ๋น„์Šค)
  • ๋ฐ์ดํ„ฐ์˜ ์ „์†ก ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•œ๋‹ค. (๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ ์œ ์ง€๋ฅผ ์œ„ํ•ด ๊ฐ ๋ฐ”์ดํŠธ๋งˆ๋‹ค ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌ)
  • ์‹ ๋ขฐ์„ฑ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค. (Sequence Number, Ack Number๋ฅผ ํ†ตํ•œ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ)
  • ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ œ์–ด(์ˆ˜์‹ ์ž ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฐฉ์ง€) ๋ฐ ํ˜ผ์žก ์ œ์–ด(ํŒจํ‚ท ์ˆ˜๊ฐ€ ๊ณผ๋„ํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š” ํ˜„์ƒ ๋ฐฉ์ง€)
  • ์—ฐ๊ฒฐ์˜ ์„ค์ •(3-way handshaking)๊ณผ ํ•ด์ œ(4-way handshaking)
  • ์ „์ด์ค‘(Full-Duplex)// ์ „์†ก์ด ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋™์‹œ์— ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ, ์ ๋Œ€์ (Point to Point) ์„œ๋น„์Šค// ๊ฐ ์—ฐ๊ฒฐ์ด ์ •ํ™•ํžˆ 2 ๊ฐœ์˜ ์ข…๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ 1:1 ํ†ต์‹ ๋งŒ ๊ฐ€๋Šฅํ•จ
  • UDP๋ณด๋‹ค ์ „์†ก์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.(ํŠนํžˆ, ๊ณ ์ • ํ†ต์‹ ์„ ๋กœ๊ฐ€ ์ตœ๋‹จ์„ ์ด ์•„๋‹๊ฒฝ์šฐ)
  • TCP ๋Š” ๋ฉ€ํ‹ฐ์บ์ŠคํŒ…์ด๋‚˜ ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.

TCP ํ—ค๋” ์ •๋ณด

์ œ์–ด ๋น„ํŠธ ์ •๋ณด

[์ฐธ๊ณ ]
https://coding-factory.tistory.com/614

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