Jastes 2022. 5. 25. 20:12

์ฝ๊ธฐ ์ „์— ์ฝ์–ด๋‘๋ฉด ์ข‹์€ ์ž๋ฃŒ

 

03. ๊ฐœ์•Œ๋ชป์„ ์œ„ํ•œ TCP/IP์˜ ๊ฐœ๋…

1๋ถ€ ์›น์˜ ์‹œ์ž‘๊ณผ ํ˜„์žฌ | ๊ทธ๊ฒƒ์€ ๋งˆ์น˜ ๋•… ์œ„์˜ ๊ธธ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค. ์‚ฌ์‹ค ๋•… ์œ„์—๋Š” ๋ณธ๋ž˜ ๊ธธ์ด ์—†์—ˆ๋‹ค. ๊ฑธ์–ด๊ฐ€๋Š” ์‚ฌ๋žŒ์ด ๋งŽ์•„์ง€๋ฉด์„œ ๊ณง ๊ธธ์ด ๋œ ๊ฒƒ์ด๋‹ค. - ๋ฃจ์‰ฐ, ๊ณ ํ–ฅ ํ•˜์ดํผํ…์ŠคํŠธ ์ด์•ผ๊ธฐ๋ถ€ํ„ฐ ์‹œ์ž‘

brunch.co.kr

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

- ๋ฐ์ดํ„ฐ์˜ ์ „๋‹ฌ์„ ๋ณด์ฆํ•˜๊ณ  ๋ณด๋‚ธ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ›๊ฒŒ ํ•ด์ค€๋‹ค
- ๋„์ฐฉํ•œ ์กฐ๊ฐ์„ ์ ๊ฒ€ํ•˜์—ฌ ์ค„์„ ์„ธ์šฐ๊ณ  ๋ง๊ฐ€์กŒ๊ฑฐ๋‚˜ ๋น ์ง„ ์กฐ๊ฐ์„ ๋‹ค์‹œ ์š”์ฒญ.

TCP๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ํ™•์‹คํ•˜๊ฒŒ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ 3 way ํ•ธ๋“œ์‰์ดํ‚น์ด๋ผ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.
์ด ๋ฐฉ๋ฒ•์€ ํŒจํ‚ท์„ ๋ณด๋‚ด๊ณ  ์ž˜ ๋ณด๋‚ด์กŒ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ƒ๋Œ€์—๊ฒŒ ํ™•์ธํ•˜๋Ÿฌ ๊ฐ„๋‹ค.
์—ฌ๊ธฐ์—์„œ 'SYN'์™€ 'ACK'๋ผ๋Š” TCP ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”์‹œ์ง€์˜ ํ˜•ํƒœ(์„ธ๊ทธ๋จผํŠธ(Segment))๋กœ IP์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ
TCP/IP ํ•จ๊ป˜ ์‚ฌ์šฉ.(TCP๋Š” ํŒจํ‚ท ์ถ”์ /๊ด€๋ฆฌ/IP๋Š” ๋ฐ์ดํ„ฐ์˜ ์ „๋‹ฌ)
์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค : ๊ฐ€์ƒํšŒ์„ (Virtual Circuit : ๋ฐ์ดํ„ฐ ์ „์†ก ์ „ ๋…ผ๋ฆฌ์  ์—ฐ๊ฒฐ ์„ค์ •) ๋ฐฉ์‹์„ ์‚ฌ์šฉ

์„ธ์…˜ ์—ฐ๊ฒฐ(3-handshaking)

๋ง๊ทธ๋Œ€๋กœ TCP/IP๋กœ ์ ‘์†ํ•˜๊ธฐ ์ „์— ๊ฑฐ์น˜๋Š” ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค.
3-handshaking์€ TCP ์—ฐ๊ฒฐ์„ ์ดˆ๊ธฐํ™”ํ•ด ์ ‘์†ํ•˜๋Š” ์ˆœ๊ฐ„์ด๊ฒ ์ฃ 

Client > Server : TCP SYN
Server > Client : TCP SYN ACK
Client > Server : TCP ACK

ํ†ตํ™”ํ•  ๋•Œ ์ „ํ™”๋ฅผ ๊ฑธ๊ณ (Clinet) ๋ฐ›์œผ๋ฉด(Server) ๋ˆ„๊ตฌ์„ธ์š”? ๋ผ๊ณ  ๋ฌผ์–ด๋ณด๋ฉด ์–ด ๋‚˜์•ผ!(Client)์ฒ˜๋Ÿผ
์•ˆ์ „ํ•œ ํ†ต์‹ ์„ ์œ„ํ•ด ํ™•์ธํ•˜๋Š” ๋ณด์•ˆ์  ํ†ต์‹  ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ์ ‘์† ํ•ด์ œํ• ๋•Œ๋„ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์ณ์•ผ๊ฒ ์ฃ 


์„ธ์…˜ ์ข…๋ฃŒ(์—ฐ๊ฒฐ ๋)4-handshaking

์ด์ œ ์—ฐ๊ฒฐ์„ ๋์–ด์•ผํ•  ์ˆœ๊ฐ„์— ์—ฐ๊ฒฐ์„ ๋๋‚ด๊ธฐ ์œ„ํ•ด ํ™•์ธ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์น˜๋Š”๋ฐ์š”
์œ„ 4-handshaking์€ TCP์˜ ๋ณด์•ˆ ์ ˆ์ฐจ์— ์˜ํ•œ ์ข…๋ฃŒ๊นŒ์ง€ ํ™•์ธ์„ ๋ฐ›๋Š” ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค.
๋ณดํ†ต ์ด ๋ถ€๋ถ„๊นŒ์ง€ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋”๋ผ๊ณ ์š” ๋ญ FIN์€ finsh ์•ฝ์–ด๋Š” ๋ˆˆ์นซ๊ป ์•Œ์•˜์ฃ ?

Client > Server : TCP FIN
Server > Client : TCP ACK & FIN
Client > Server : TCP ACK

ํ†ตํ™”๋ฅผ ์ข…๋ฃŒํ• ๋•Œ(Client)์•ผ ๋๋‚ด์ž ํ•˜๋ฉด (Server)์ง„์งœ?(ACK).. ์ž˜๊ฐ€๋ผ(FIN)์— ์‘!(Clinet - ACK)


๋†’์€ ์‹ ๋ขฐ์„ฑ์„ ์ง€ํ–ฅํ•˜๋‚˜ UDP๋ณด๋‹จ ์†๋„๊ฐ€ ๋Š๋ฆฌ๋ฉฐ, ์ „์ด์ค‘(์ „์†ก ์–‘๋ฐฉํ–ฅ์„ฑ),
์ ๋Œ€์ (P2P์™€ ์œ ์‚ฌ?; 2๊ฐœ์˜ ์ข…๋‹จ์ )๋ฐฉ์‹๊ณผ ํ๋ฆ„์ œ์–ด(๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„ ์กฐ์ ˆ ๋“ฑ) ๋ฐ ํ˜ผ์žก์ œ์–ด
์ฆ‰, ์—ฐ์†์„ฑ(์†๋„)๋ณด๋‹จ ์‹ ๋ขฐ์„ฑ(์•ˆ์ •์„ฑ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์„ธ์š”)์žˆ๋Š” ์ „์†ก์— ์‚ฌ์šฉ๋˜์ฃ 

 

์ฐธ๊ณ ๋กœ ๊ฟ€ํŒ์ธ๋ฐ ์ถœ์ฒ˜๋Š” ๊ธฐ์–ต์ด ์•ˆ๋‚˜๋Š”๋ฐ TCP/IP ํ†ต์‹  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด์„œ ๋ณด๋‚ธ๋‹ค๋ฉด..


UDP(User Datagram Protocol)

๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๊ทธ๋žจ(Datagram)๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.
๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค ๋ฐฉ์‹์œผ๋กœ TCP๊ฐ™์ด ๋…ผ๋ฆฌ์ ์—ฐ๊ฒฐ์€ ํ•˜์ง€ ์•Š๊ณ  ๊ฐ ํŒจํ‚ท์€ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ
์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ• ๋•Œ ์‹ ํ˜ธ์ ˆ์ฐจ(3-Way..๊ฐ™์€ ๊ฑฐ)๋Š” ์‚ฌ์šฉ X

์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ๊ณ  TCP๋ณด๋‹จ ๋น ๋ฅด๊ณ  ์•„๋ฌด๋ž˜๋„ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ๊ฐ™์€ ์‹ ๋ขฐ์„ฑ๋ณด๋‹จ ์—ฐ์†์„ฑ์žˆ๋Š” ์ „์†ก์— ์‚ฌ์šฉ!


TCP vs UDP ํ•ด๋” ๋ถ„์„ - ์‹ฌํ™”

TCP ํ•ด๋”

 

TCP์˜ ํ—ค๋”์—๋Š” ์–ด๋–ค ์ •๋ณด๋“ค์ด ๋‹ด๊ฒจ์žˆ๋Š”๊ฑธ๊นŒ?

์ €๋ฒˆ์— HTTP/3๋Š” ์™œ UDP๋ฅผ ์„ ํƒํ•œ ๊ฒƒ์ผ๊นŒ? ํฌ์ŠคํŒ…์„ ์ง„ํ–‰ํ•˜๋ฉฐ TCP์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•œ ์–ธ๊ธ‰์„ ํ–ˆ์—ˆ์ง€๋งŒ, ํ•ด๋‹น ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ธฐ์กด์˜ HTTP์—์„œ ์‚ฌ์šฉํ•˜๋˜ TCP์— ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋Š”์ง€์— ์ง‘์ค‘ํ•ด์„œ ์ด์•ผ๊ธฐํ–ˆ์—ˆ

evan-moon.github.io

 

UDP ํ•ด๋”

https://rednooby.tistory.com/17


์ฐธ๊ณ  ์ž๋ฃŒ

 

[ ๋„คํŠธ์›Œํฌ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ 22ํŽธ ] TCP 3 Way-Handshake & 4 Way-Handshake

์šฐ์„   TCP์˜ 3-way Handshaking ์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. * TCP 3-way Handshake ๋ž€? TCP๋Š” ์žฅ์น˜๋“ค ์‚ฌ์ด์— ๋…ผ๋ฆฌ์ ์ธ ์ ‘์†์„ ์„ฑ๋ฆฝ(establish)ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ three-way handshake๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. TCP 3 Way Handshake..

mindnet.tistory.com

๋”๋ณด๊ธฐ
 

CLOSE_WAIT & TIME_WAIT ์ตœ์ข… ๋ถ„์„

ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ์›น ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๋‹ค๋ณด๋ฉด CPU๋Š” ์—ฌ์œ ๊ฐ€ ์žˆ์ง€๋งŒ ์›น์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์„ ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋จนํ†ต์ด ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ข…์ข… ๋ณด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ, ์ด ๊ธ€์—์„œ๋Š” ๊ฐ€์žฅ ๋Œ€

tech.kakao.com

 

 

OSI 7 Layer ์ •๋ฆฌ ๋ฐ TCP/IP ํ”„๋กœํ† ์ฝœ ์ •๋ฆฌ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ œ์ผ ์ค‘์š”ํ•œ ๊ฒƒ์ด '์„ค๊ณ„'์ด๋‹ค. ์„ค๊ณ„๋ฅผ ํƒ„ํƒ„ํ•˜๊ฒŒ ํ•ด์•ผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ตฌ๋ฉ์ด ์—†๋Š” ์ฝ”๋”ฉ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. ๋ผ๊ณ  ๋ฐฐ์› ๋‹ค. (ใ…‹ใ…‹) ์—ฌํŠผ ์•„์ง ๋‚ด ์ง€์‹์œผ๋กœ๋Š” ์„ค๊ณ„๋ฅผ ํ•˜๊ธฐ์—๋Š” ๋ฌด๋ฆฌ์ด์ง€๋งŒ, ์„ค

tobuymacbookpro.tistory.com

 

 

03. ๊ฐœ์•Œ๋ชป์„ ์œ„ํ•œ TCP/IP์˜ ๊ฐœ๋…

1๋ถ€ ์›น์˜ ์‹œ์ž‘๊ณผ ํ˜„์žฌ | ๊ทธ๊ฒƒ์€ ๋งˆ์น˜ ๋•… ์œ„์˜ ๊ธธ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค. ์‚ฌ์‹ค ๋•… ์œ„์—๋Š” ๋ณธ๋ž˜ ๊ธธ์ด ์—†์—ˆ๋‹ค. ๊ฑธ์–ด๊ฐ€๋Š” ์‚ฌ๋žŒ์ด ๋งŽ์•„์ง€๋ฉด์„œ ๊ณง ๊ธธ์ด ๋œ ๊ฒƒ์ด๋‹ค. - ๋ฃจ์‰ฐ, ๊ณ ํ–ฅ ํ•˜์ดํผํ…์ŠคํŠธ ์ด์•ผ๊ธฐ๋ถ€ํ„ฐ ์‹œ์ž‘

brunch.co.kr

 

 

5๋ถ„๋งŒ์— ์ดํ•ดํ•˜๋Š” ์ธํ„ฐ๋„ท ํ†ต์‹ ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…(IP, ํŒจํ‚ท ๊ฐœ๋… ์ •๋ฆฌ)

1. ์ธํ„ฐ๋„ท์ด ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•  ๋งŒ์•ฝ ๋‚ด๊ฐ€ ์ปดํ“จํ„ฐ๋กœ ๋ฉ€๋ฆฌ์žˆ๋Š” ์นœ๊ตฌ์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ๊ทธ๋ ‡๋‹ค๋ฉด ๋‚ด๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ์นœ๊ตฌ ์ปดํ“จํ„ฐ๊นŒ์ง€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋„์ฐฉํ• 

chung-develop.tistory.com

 

 

 

TCP์˜ ํ—ค๋”์—๋Š” ์–ด๋–ค ์ •๋ณด๋“ค์ด ๋‹ด๊ฒจ์žˆ๋Š”๊ฑธ๊นŒ?

์ €๋ฒˆ์— HTTP/3๋Š” ์™œ UDP๋ฅผ ์„ ํƒํ•œ ๊ฒƒ์ผ๊นŒ? ํฌ์ŠคํŒ…์„ ์ง„ํ–‰ํ•˜๋ฉฐ TCP์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•œ ์–ธ๊ธ‰์„ ํ–ˆ์—ˆ์ง€๋งŒ, ํ•ด๋‹น ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ธฐ์กด์˜ HTTP์—์„œ ์‚ฌ์šฉํ•˜๋˜ TCP์— ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋Š”์ง€์— ์ง‘์ค‘ํ•ด์„œ ์ด์•ผ๊ธฐํ–ˆ์—ˆ

evan-moon.github.io

 

์ฐธ๊ณ  ์ด๋ฏธ์ง€