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

[TIL] TCP, UDP๋ž€? ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ 4๊ณ„์ธต

hellohailie 2023. 1. 2. 11:21

 

๐Ÿค“๋ฐฐ์›€ ์š”์•ฝํ•˜๊ธฐ

์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ 4๊ณ„์ธต์ด๋ž€?
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(HTTP, FTP), ์ „์†ก ๊ณ„์ธต (TCP, UDP), ์ธํ„ฐ๋„ท ๊ณ„์ธต (IP), ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต (LAN ๋“ฑ๋“ฑ)์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. 

TCP๋ž€?
TCP๋Š” IP ํ”„๋กœํ† ์ฝœ์˜ ํ•œ๊ณ„๋ฅผ ๋ณด์•ˆํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š”๋ฐ TCP 3 way handshake๋กœ ๋Œ€์ƒ์ด ์„œ๋น„์Šค ๊ฐ€๋Šฅ ์ƒํƒœ์ผ ๋•Œ๋งŒ ํŒจํ‚ท์„ ์ „์†กํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์„ ๋ณด์ฆํ•ด์ฃผ๊ณ , ๋ฐ์ดํ„ฐ ์ „์†ก ์ˆœ์„œ๋„ ๋ณด์ฆํ•ด์ฃผ๋Š” ์‹ ๋ขฐํ•  ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ด๊ณ , ํ˜„์žฌ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ TCP ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 

UDP๋ž€?
 IP์—์„œ PORT์™€ ์ฒดํฌ์„ฌ์ด ์ถ”๊ฐ€๋˜์–ด ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ตœ๊ทผ์—๋Š” ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ HTTP ํ†ต์‹ ํ•  ๋•Œ HTTP 3 way handshake์—์„œ UDP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์‚ฌ์šฉ์„ฑ์ด ๋”์šฑ๋” ๊ฐ•์กฐ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.  

 

TCP, UDP๋Š” IP ํ”„๋กœํ† ์ฝœ์—์„œ ๋ฐœ์ƒํ–ˆ๋˜ ๋งŽ์€ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•ด์ค€๋‹ค. 

(IP ํ”„๋กœํ† ์ฝœ์—์„œ ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ : ํŒจํ‚ท ์†Œ์‹ค, ๋Œ€์ƒ์ด ์„œ๋น„์Šค ๋ถˆ๋Šฅ์ด์—ฌ๋„ ํŒจํ‚ท ์ „์†ก, ํŒจํ‚ท ์ „์†ก ์ˆœ์„œ ๋ฌธ์ œ ) 

(UDP๋Š” ๊ทธ๋Ÿฐ ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐํ•ด์ฃผ์ง€๋Š” ์•Š์ง€๋งŒ ๊ทธ๋ž˜๋„ ๋„์›€์ด ๋˜๋Š”๊ฒŒ ์žˆ๋‹ค. )

 


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

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต - HTTP, FTP

์ „์†ก ๊ณ„์ธต - TCP, UDP

์ธํ„ฐ๋„ท ๊ณ„์ธต - IP

๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต - LAN ๋“ฑ๋“ฑ

 

์˜ˆ๋ฅผ๋“ค์–ด ๋‚ด๊ฐ€ "Hello world!" ๋ฉ”์„ธ์ง€๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋ณด๋‚ธ๋‹ค๊ณ  ํ•˜๋ฉด

1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ(์›น๋ธŒ๋ผ์šฐ์ €, ์ฑ„ํŒ… ํ”„๋กœ๊ทธ๋žจ ๋“ฑ)์ด ๋ฉ”์„ธ์ง€๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 

2. SOCKET ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•œ๋‹ค. 

3. TCP ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋ฉ”์„ธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•œ๋‹ค. 

4. IP ํŒจํ‚ท์„ ์ƒ์„ฑํ•œ๋‹ค. (TCP ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•œ๋‹ค.)

5. ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค(LAN์นด๋“œ)๋ฅผ ํ†ตํ•ด์„œ ๋‚˜๊ฐˆ ๋•Œ Ethernet frame์ด๋ผ๋Š”๊ฒŒ ํฌํ•จ๋˜์„œ ๋‚˜๊ฐ„๋‹ค. 

 

  • IP ํŒจํ‚ท์€ ์ถœ๋ฐœ์ง€ IP, ๋ชฉ์ ์ง€ IP๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. 

 

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

TCP ํŠน์ง•

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

 

- ์—ฐ๊ฒฐ์ง€ํ–ฅ - TCP 3 way handshake (๊ฐ€์ƒ ์—ฐ๊ฒฐ) ๐Ÿ‘‰ ๋Œ€์ƒ๊ณผ ์—ฐ๊ฒฐํ›„์— ์ „์†ก์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€์ƒ์ด ์„œ๋น„์Šค ๋ถˆ๋Šฅ์ด๋ฉด ํŒจํ‚ท ์ „์†ก ์•ˆํ•จ!!

- ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ ๐Ÿ‘‰ ๋‚ด๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒˆ๋Š”๋ฐ ์ค‘๊ฐ„์— ํŒจํ‚ท์ด ๋ˆ„๋ฝ๋˜๋ฉด ์ด ์ •๋ณด๋ฅผ ๋‚˜์—๊ฒŒ ์•Œ๋ ค์ค€๋‹ค. 

- ์ˆœ์„œ ๋ณด์žฅ ๐Ÿ‘‰ ํŒจํ‚ท์„ ๋ณด๋‚ด๋Š” ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•ด์ค€๋‹ค. 

 

๊ทธ๋ž˜์„œ TCP๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ด๊ณ  ํ˜„์žฌ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ TCP ์‚ฌ์šฉํ•œ๋‹ค!

 

TCP ํŠน์ง• 1. ์—ฐ๊ฒฐ์ง€ํ–ฅ - TCP 3 way handshake (๊ฐ€์ƒ ์—ฐ๊ฒฐ)

TCP/IP ํ”„๋กœํ† ์ฝœ๋กœ ๋ญ”๊ฐ€๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ SYN: ์ ‘์† ์š”์ฒญ์„ ํ•˜๊ณ , ์„œ๋ฒ„๋Š” ACK: ์š”์ฒญ ์ˆ˜๋ฝ๊ณผ ํ•จ๊ป˜ SYN์„ ๋ณด๋‚ธ๋‹ค. ์ด๋ฅผ ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ๋Š” ACK์„ ๋ณด๋‚ด์„œ ์—ฐ๊ฒฐํ•œ๋‹ค. (ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๊ฐ์ž๋ฅผ ๋ฏฟ์„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.) ์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐ์ด ๋˜๊ณ  ๋‚˜๋ฉด ๊ทธ์ œ์„œ์•ผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค. 

 

 

์ค‘์š”!

TCP 3 way handshake๊ฐ€ ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ํ•ด์„œ ์ง„์งœ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ๊ฐœ๋…์ ์œผ๋กœ ์—ฐ๊ฒฐ์ด ๋œ๊ฑฐ๋‹ค!

(ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๊นŒ์ง€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ˆ˜๋งŽ์€ ๋…ธ๋“œ๋“ค์˜ ์ƒํƒœ๋Š” ๋ชจ๋ฅด๋Š”๊ฑฐ๋‹ค.)

 

 

TCP ํŠน์ง• 2. ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ

ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ฉด, ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ๋ฐ›์•˜๋‹ค๊ณ  ์•Œ๋ ค์ค€๋‹ค. 

 

TCP ํŠน์ง• 3. ์ˆœ์„œ ๋ณด์žฅ

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŒจํ‚ท1, ํŒจํ‚ท2, ํŒจํ‚ท3 ์ˆœ์„œ๋กœ ์ „์†กํ–ˆ๋Š”๋ฐ ํŒจํ‚ท1, ํŒจํ‚ท3, ํŒจํ‚ท2 ์ˆœ์„œ๋กœ ๋„์ฐฉํ–ˆ๋‹ค๋ฉด?

์„œ๋ฒ„์—์„œ ํŒจํ‚ท2๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ณด๋‚ด๋ผ๊ณ  ์•Œ๋ ค์ค€๋‹ค. 

 


UDP ํŠน์ง•

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

 

ํ•˜์–€ ๋„ํ™”์ง€์— ๋น„์œ ํ• ๋งŒํผ ๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ ์—†๋‹ค!

- ์—ฐ๊ฒฐ์ง€ํ–ฅ - TCP 3 way handshake X

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

- ์ˆœ์„œ ๋ณด์žฅ X

- ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์ง€๋งŒ, ๋‹จ์ˆœํ•˜๊ณ  ๋น ๋ฅด๋‹ค. 

 

- IP์™€ ๊ฑฐ์˜ ๊ฐ™๋‹ค. + PORT* + ์ฒดํฌ์„ฌ* ์ •๋„๋งŒ ์ถ”๊ฐ€

- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ถ”๊ฐ€ ์ž‘์—… ํ•„์š”

 

โ˜…PORT = ๊ฐ์ž์˜ ์ปดํ“จํ„ฐ์—๋Š” IP๊ฐ€ ํ•˜๋‚˜์”ฉ ํ• ๋‹น๋˜์–ด ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋„คํŠธ์›Œํฌ๋กœ ๊ฒŒ์ž„๋„ ํ•˜๊ณ , ์Œ์•…๋„ ๋“ฃ๊ณ  ์žˆ๋‹ค๋ฉด ์‚ฌ์šฉ์ž์˜ IP๋กœ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํŒจํ‚ท์ด ์˜ค๊ฒŒ ๋œ๋‹ค. ์ด๊ฑด ๊ฒŒ์ž„์šฉ ํŒจํ‚ท์ด๊ณ  ์Œ์•…์šฉ ํŒจํ‚ท์„ ๊ตฌ๋ถ„ํ•  ๋•Œ ์“ฐ๋Š” ๊ฒƒ์ด PORT์ด๋‹ค. 

 

โ˜…์ฒดํฌ์„ฌ = ๋ฉ”์„ธ์ง€์— ๋Œ€ํ•ด์„œ ์ œ๋Œ€๋กœ ๋งž๋Š”์ง€ ๊ฒ€์ฆํ•ด์ฃผ๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค. 

 


UDP๋Š” IP์— PORT์™€ ์ฒดํฌ์„ฌ ์ •๋„๋งŒ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ ์—†๋Š”๋ฐ ์™œ ์‚ฌ์šฉํ• ๊นŒ???

TCP๋Š” ๋‹ค ์ข‹์€๋ฐ 3 way handshakeํ•˜๋ ค๋ฉด ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๊ณ , ๋ฐ์ดํ„ฐ ์–‘๋„ ๋งŽ์•„์ง€๊ณ , ์ „์†ก ์†๋„๋„ ๋” ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค๊ธฐ ์–ด๋ ต๋‹ค. 

์ด๋Ÿฐ TCP๋ฅผ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด UDP๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 

 

๊ทธ๋ฆฌ๊ณ  ์ตœ๊ทผ์—๋Š” ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ HTTP ํ†ต์‹ ํ•  ๋•Œ HTTP 3 way handshake ํ• ๋•Œ UDP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์‚ฌ์šฉ์„ฑ์ด ๋”์šฑ๋” ๊ฐ•์กฐ๋˜๊ณ  ์žˆ๋‹ค! 

 


TCP์™€ UDP ๋ฐฉ์‹์˜ ์ฐจ์ด์ 

TCP์™€ UDP๋Š” ๋ชจ๋‘ ์ „์†ก ๊ณ„์ธต์˜ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

TCP๋Š” 3 way handshake ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ ์ „์†ก ์ž์ฒด์™€ ๋ฐ์ดํ„ฐ ์ „์†ก ์ˆœ์„œ๋ฅผ ๋ณด์ฆํ•˜๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

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

 

 

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