TCP vs UDP
์ฝ๊ธฐ ์ ์ ์ฝ์ด๋๋ฉด ์ข์ ์๋ฃ
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 ํด๋
์ฐธ๊ณ ์๋ฃ
[ ๋คํธ์ํฌ ์ฝ๊ฒ ์ดํดํ๊ธฐ 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
์ฐธ๊ณ ์ด๋ฏธ์ง