๐Ÿ”ฌComputer Science/๋„คํŠธ์›Œํฌ

TIL) ํšŒ์„  ๊ตํ™˜ ๋ฐฉ์‹๊ณผ ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹ ์ฐจ์ด, IP ํŒจํ‚ท์˜ ํ•œ๊ณ„, TCP์™€ UDP

hellohailie 2022. 7. 13. 11:09

 

ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹

 

ํšŒ์„  ๊ตํ™˜ ๋ฐฉ์‹ : ์†ก์ˆ˜์‹  ๋‹จ๋ง์žฅ์น˜ ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ๋งˆ๋‹ค ํ†ต์‹ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. 

ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹ : ์ผ์ •ํ•œ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์ธ ํŒจํ‚ท์„ ๊ตํ™˜๊ธฐ๊ฐ€ ์ˆ˜์‹ ์ธก ์ฃผ์†Œ์— ๋”ฐ๋ผ ์ ๋‹นํ•œ ํ†ต์‹ ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ „์†กํ•˜๋Š” ๊ตํ™˜๋ฐฉ์‹์ด๋‹ค. ์ „์†กํ•˜๊ณ ์ž ํ•˜๋Š” ์ •๋ณด๋ฅผ ์ผ์ •ํ•œ ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๋กœ ๋ถ„ํ• ํ•œ ํ›„, ์†ก์ˆ˜์‹  ์ฃผ์†Œ์ธ ํ—ค๋”๋ฅผ ๊ฐ๊ฐ์— ๋ถ€๊ฐ€ํ•œ ํŒจํ‚ท๋‹จ์œ„๋กœ ์ „์†กํ•œ๋‹ค. 

 

IP(์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ) = ์ธํ„ฐ๋„ท ํ†ต์‹ ์˜ ๊ธฐ๋ณธ

 

IP ์ฃผ์†Œ๋ฅผ ์ปดํ“จํ„ฐ์— ๋ถ€์—ฌํ•˜์—ฌ ํ†ต์‹ ํ•œ๋‹ค. IP๋Š” ์ง€์ •ํ•œ IP์ฃผ์†Œ์— ํŒจํ‚ท์ด๋ผ๋Š” ํ†ต์‹  ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. 

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

์ด๋ฅผ ํ†ตํ•ด ๋ณต์žกํ•œ ์ธํ„ฐ๋„ท ๋ง ์‚ฌ์ด์—์„œ๋„ ์ •ํ™•ํ•œ ๋ชฉ์ ์ง€๋กœ ํŒจํ‚ท์„ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

์„œ๋ฒ„์—์„œ ๋ฌด์‚ฌํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก๋ฐ›์•˜๋‹ค๋ฉด ์„œ๋ฒ„๋„ ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ค˜์•ผํ•œ๋‹ค. ์„œ๋ฒ„ ์—ญ์‹œ IP ํŒจํ‚ท์„ ์ด์šฉํ•ด ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ต์„ ์ „๋‹ฌํ•œ๋‹ค. 

 

์ด๋Ÿฌํ•œ IP ํ”„๋กœํ† ์ฝœ๋„ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค. 

  • ๋น„์—ฐ๊ฒฐ์„ฑ

- ํŒจํ‚ท์„ ๋ฐ›์„ ๋Œ€์ƒ์ด ์—†๊ฑฐ๋‚˜ ์„œ๋น„์Šค ๋ถˆ๋Šฅ ์ƒํƒœ์—ฌ๋„ ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค. (ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•  ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—!)

 

  • ๋น„์‹ ๋ขฐ์„ฑ

- ์ค‘๊ฐ„์— ํŒจํ‚ท์ด ์‚ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. (์ค‘๊ฐ„์— ์žˆ๋Š” ์„œ๋ฒ„๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋˜ ์ค‘ ์žฅ์• ๊ฐ€ ์ƒ๊ฒจ ํŒจํ‚ท์ด ์†Œ์‹ค๋  ์ˆ˜ ์žˆ๋‹ค. )

- ํŒจํ‚ท์˜ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค. (์ „๋‹ฌ ๋ฐ์ดํ„ฐ์˜ ์šฉ๋Ÿ‰์ด ํฌ๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ๋…ธ๋“œ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์˜๋„ํ•˜์ง€ ์•Š์€ ์ˆœ์„œ๋กœ ์„œ๋ฒ„์— ํŒจํ‚ท์ด ๋„์ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค. )

 


IP ํŒจํ‚ท์˜ ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๋ณด์™„ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด์ž! (TCP & UDP)

 

๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ ๊ณ„์ธต

IP ํ”„๋กœํ† ์ฝœ ๋ณด๋‹ค ๋” ๋†’์€ ๊ณ„์ธต์— TCP ํ”„๋กœํ† ์ฝœ์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— IP ํ”„๋กœํ† ์ฝœ์˜ ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

์ฑ„ํŒ… ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๋ฉด HTTP ๋ฉ”์„ธ์ง€๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  Socket** ์„ ํ†ตํ•ด ์ „๋‹ฌ๋œ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  IP ํŒจํ‚ท์„ ์ƒ์„ฑํ•˜๊ธฐ ์ „ TCP ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 

์ด๋ ‡๊ฒŒ ์ƒ์„ฑ๋œ TCP/IP ํŒจํ‚ท์€ LAN ์นด๋“œ์™€ ๊ฐ™์€ ๋ฌผ๋ฆฌ์  ๊ณ„์ธต์„ ์ง€๋‚˜๊ธฐ ์œ„ํ•ด ์ด๋”๋„ท ํ”„๋ ˆ์ž„ ์›Œํฌ์— ํฌํ•จ๋˜์–ด ์„œ๋ฒ„๋กœ ์ „์†ก๋œ๋‹ค. 

 

** ์—ฌ๊ธฐ์„œ Socket ์ด๋ž€, ํ”„๋กœ๊ทธ๋žจ์ด ๋„คํŠธ์›Œํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก, ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์—ฐ๊ฒฐ๋ถ€์ด๋‹ค. 

 


TCP (transmission control protocol) / ์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ

 

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

 

TCP ํŠน์ง•

  • ์—ฐ๊ฒฐ ์ง€ํ–ฅ - TCP 3 way handshake (๊ฐ€์ƒ ์—ฐ๊ฒฐ) (์žฅ์น˜๋“ค ์‚ฌ์ด์— ๋…ผ๋ฆฌ์ ์ธ ์ ‘์† ์„ฑ๋ฆฝ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ)

๋งŒ์•ฝ ์„œ๋ฒ„๊ฐ€ ๊บผ์ ธ ์žˆ๋‹ค๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ SYN์„ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„์—์„œ ์‘๋‹ต์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค. 

 

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

ํด๋ผ์ด์–ธํŠธ๊ฐ€ SYN์„ ๋ณด๋‚ด๊ณ , ์„œ๋ฒ„๋Š” SYN ์š”์ฒญ์„ ๋ฐ›๊ณ  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•œ๋‹ค๋Š” SYN๊ณผ ACK๋ฅผ ๋ณด๋‚ด๋Š”๋ฐ, ์ด์ฒ˜๋Ÿผ IP ํŒจํ‚ท์˜ ํ•จ๊ณ„์ธ ๋น„์—ฐ๊ฒฐ์„ฑ์„ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

  • ์ˆœ์„œ ๋ณด์žฅ

๋งŒ์•ฝ ํŒจํ‚ท์ด ์ˆœ์„œ๋Œ€๋กœ ๋„์ฐฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด TCP ์„ธ๊ทธ๋จผํŠธ์— ์žˆ๋Š” ์ •๋ณด๋ฅผ ํ† ๋Œ€๋กœ ๋‹ค์‹œ ํŒจํ‚ท ์ „์†ก์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋‹ค. 

์ด๋ฅผ ํ†ตํ•ด IP ํŒจํ‚ท์˜ ํ•œ๊ณ„์ธ ๋น„์‹ ๋ขฐ์„ฑ์„ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

  • ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ

UDP (user datagram protocol) / ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ

IP ํ”„๋กœํ† ์ฝœ์— PORT, ์ฒดํฌ์„ฌ** ํ•„๋“œ ์ •๋ณด๋งŒ ์ถ”๊ฐ€๋œ ๋‹จ์ˆœํ•œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. 

TCP ํŠน์ง•๊ณผ ๋น„๊ตํ•˜๋ฉด, ์‹ ๋ขฐ์„ฑ์€ ๋‚ฎ์ง€๋งŒ 3 way handshake ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋น„๊ต์  ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. 

HTTP3๋Š” UDP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ด๋ฏธ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋œ TCP๋ณด๋‹ค๋Š” ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. 

 

**์ฒดํฌ์„ฌ(checksum)์€ ์ค‘๋ณต ๊ฒ€์‚ฌ์˜ ํ•œ ํ˜•ํƒœ๋กœ, ์˜ค๋ฅ˜ ์ •์ •์„ ํ†ตํ•ด, ๊ณต๊ฐ„์ด๋‚˜ ์‹œ๊ฐ„ ์†์—์„œ ์†ก์‹ ๋œ ์ž๋ฃŒ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณดํ˜ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. 

 

UDP ํŠน์ง•

  • ๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ ์—†์Œ(์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•ด์•ผํ•จ)
  • ๋น„ ์—ฐ๊ฒฐ์ง€ํ–ฅ - TCP 3 way handshake ์•„๋‹˜!
  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ ์•ˆํ•จ
  • ์ˆœ์„œ ๋ณด์žฅ ์•ˆํ•จ
  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์ง€๋งŒ, ๋‹จ์ˆœํ•˜๊ณ  ๋น ๋ฆ„
  • ์‹ ๋ขฐ์„ฑ๋ณด๋‹ค๋Š” ์—ฐ์†์„ฑ์ด ์ค‘์š”ํ•œ ์„œ๋น„์Šค์— ์ž์ฃผ ์‚ฌ์šฉ๋จ (์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ)

QUIC ํฌ๋กฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” UDP


TCP UDP
์—ฐ๊ฒฐ์ง€ํ–ฅํ˜• ํ”„๋กœํ† ์ฝœ ๋น„ ์—ฐ๊ฒฐ์ง€ํ–ฅํ˜• ํ”„๋กœํ† ์ฝœ
์ „์†ก ์ˆœ์„œ ๋ณด์žฅ ์ „์†ก ์ˆœ์„œ ๋ณด์žฅ ์•ˆํ•จ
๋ฐ์ดํ„ฐ ์ˆ˜์‹  ์—ฌ๋ถ€ ํ™•์ธํ•จ ๋ฐ์ดํ„ฐ ์ˆ˜์‹  ์—ฌ๋ถ€ ํ™•์ธ ์•ˆํ•จ
์‹ ๋ขฐ์„ฑ ๋†’์ง€๋งŒ ์†๋„ ๋Š๋ฆผ ์‹ ๋ขฐ์„ฑ ๋‚ฎ์ง€๋งŒ ์†๋„ ๋น ๋ฆ„

 

๐Ÿ˜ƒ ์ž˜๋ชป๋œ ๊ฐœ๋… ์ „๋‹ฌ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ €์˜ ์„ฑ์žฅ์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค๐Ÿค“