UDP(User Datagram Protocol) ๊ฐ์
UDP๋?
- ๋น์ฐ๊ฒฐํ ์๋น์ค : ์ฐ๊ฒฐ์ ์ํด ํ ๋น๋๋ ๋ ผ๋ฆฌ์ ์ธ ๊ฒฝ๋ก๊ฐ ์์ด ๊ฐ๊ฐ์ ํจํท์ด ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ์ ์ก๋จ
- ๋ ๋ฆฝ์ ์ธ ํจํท : ๊ฐ๊ฐ์ ํจํท์ ๋ ๋ฆฝ์ ์ธ ๊ด๊ณ๋ฅผ ์ง๋๊ฒ ๋จ
- ์ ๋ขฐ์ฑ์ด ๋ฎ์ : ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ ๋ณด๋ฅผ ๋ณด๋ด๊ฑฐ๋ ๋ฐ๋๋ค๋ ์ ํธ์ ์ฐจ๊ฐ ์์ด ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง ์์
- ์ฒดํฌ์ฌ : UDPํค๋์ CheckSum ํ๋๋ฅผ ํตํด ์ต์ํ์ ์ค๋ฅ๋ง ๊ฒ์ถํจ
- ์๋๊ฐ ๋น ๋ฆ : TCP์ ๋ค๋ฅด๊ฒ ์ ๋ขฐ์ฑ ๋ณด์ฅ์ ์ํ ์ ์ฐจ๊ฐ ์๋ค๋ณด๋ ์๋๊ฐ ๋น ๋ฆ
- ์ค์๊ฐ ์๋น์ค : ์ ๋ขฐ์ฑ๋ณด๋ค๋ ์ฐ์์ฑ์ด ์ค์ํ ์๋น์ค์ ์ฃผ๋ก ์ฌ์ฉ๋จ
์ ์ก ํธ์คํธ์ ํ๋ฆ
- ์ ์ก ํธ์คํธ์์ ์ ์กํ๊ธฐ ์ ์ ํจํท์ ๋ชฉ์ ์ง ์ฃผ์์ ์์ ํธ์คํธ์ ์์ผ์ ์๋ณํ ์ ์๋ ํฌํธ ๋ฒํธ๋ฅผ ํฌํจ์ํด
- ์ ์ก ํธ์คํธ์์ ์ก์ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์์ผ์ผ๋ก๋ถํฐ ํจํท์ ์ ์กํจ
์์ ํธ์คํธ์ ํ๋ฆ
- ์ ์ก ํธ์คํธ์์ ํจํท์ด ์ค๊ธฐ์ ๋ถํฐ ์์ ํ๋ก์ธ์ค๋ฅผ ์ํํจ
- ์๋ฒ ์์ผ์ผ๋ก ์จ UDP ์ธ๊ทธ๋จผํธ๋ฅผ ์ฝ์ด ์๋ง์ ๋์์ ์ํ
UDP ์ฒดํฌ์ฌ์ด๋?
- ์ค๋ฅ ๊ฒ์ถ์ ์ ๊ณต
- ์ธ๊ทธ๋จผํธ๊ฐ ์ถ๋ฐ์ง๋ก๋ถํฐ ๋ชฉ์ ์ง๋ก ์ด๋ ํ์ ๋, UDP ์ธ๊ทธ๋จผํธ ์์ ๋นํธ์ ๋ํ ๋ณ๊ฒฝ์ฌํญ์ด ์๋์ง ๊ฒ์ฌํจ
- ๋ชจ๋ ๋งํฌ ๊ณ์ธต ํ๋กํ ์ฝ์์ ์ค๋ฅ ๊ฒ์ฌ๋ฅผ ์ ๊ณตํ๋ค๋ ๋ณด์ฅ์ด ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํจ
๋ง์ฝ ๋ค์๊ณผ ๊ฐ์ 16๋นํธ ์๋๊ฐ ์๋ค๊ณ ํด๋ณด์.
0110011001100000
0101010101010101
1000111100001100
์ฌ๊ธฐ์ ์ฒซ๋ฒ์งธ, ๋๋ฒ์งธ 16๋นํธ ์๋๋ฅผ ๋ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
1011101110110101
์์ ๊ณ์ฐ์ ํฉ์ ๋ง์ง๋ง 16๋นํธ ์๋๋ฅผ ๋ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. (์คํ์ ์๋ฆฌ์ฌ๋ฆผ์ ๋ฐ๋ฅธ๋ค.)
0100101011000010
๋ง์ง๋ง ๊ฒฐ๊ณผ๋ฅผ 1์ ๋ณด์๋ฅผ ๊ตฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
1011010100111101
์์ ์ต์ข ๊ฒฐ๊ณผ๊ฐ ์ฒดํฌ์ฌ์ด ๋๋ค. ์์ ์์์๋ ์ฒดํฌ์ฌ์ ํฌํจํ 4๊ฐ์ ๋ชจ๋ 16๋นํธ ์๋๋ค์ ๋ํ๋๋ฐ ์ด ๋ 1111111111111111์ด ๋์ค์ง ์๋๋ค๋ฉด ํจํท์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๊ณ ํ๋จํ๋ค.
TCP(Transmission Control Protocol) ๊ฐ์
TCP๋?
- ์ฐ๊ฒฐํ ์๋น์ค : UDP์ ๋ค๋ฅด๊ฒ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ TCP ์ฐ๊ฒฐ์ด ๋จผ์ ์ค์ ๋์ด ์์ด์ผ ํจ
- 3-way handshaking : ๋ชฉ์ ์ง์ ์์ ์ง๋ฅผ ํ์คํ ํ์ฌ ์ ํํ ์ ์ก์ ๋ณด์ฅํ๊ธฐ ์ํด ์ธ์ ์ ์๋ฆฝํ๋ ๊ณผ์
- ํ๋ฆ ์ ์ด : ์ก์ ์ธก๊ณผ ์์ ์ธก์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋ ์ฐจ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ๋ฒ
- ํผ์ก ์ ์ด : ์ก์ ์ธก์ ๋ฐ์ดํฐ ์ ๋ฌ๊ณผ ๋คํธ์ํฌ์ ์ฒ๋ฆฌ ์๋ ์ฐจ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ๋ฒ
- ๋์ ์ ๋ขฐ์ฑ ๋ณด์ฅ : UDP์ ๋ค๋ฅด๊ฒ ํด๋ผ์ด์ธํธ๊ฐ ์์ผ์ผ๋ก ๋ณด๋ธ ์์์ ๋ฐ์ดํธ ์์๋๋ก ์๋ฒ๊ฐ ์์ผ์ ํตํด ์์ ํ๋๋ก ๋ณด์ฅํจ
- ์ ์ด์ค, ์ ๋์ ๋ฐฉ์ : 1:1๋ก ์ฐ๊ฒฐ๋๋ฉฐ, ๋ฐ์ดํฐ ์ ์ก์ ํ๋ฆ ๋ฐฉํฅ์ด ์ ๋ฐฉํฅ์ผ๋ก ๋์์ ์ ์ก์ด ๊ฐ๋ฅํจ
- TCP/IP : ๋ฐ์ดํฐ๋ฅผ ํจํท๋จ์๋ก ๋๋์ด IP๊ณ์ธต์ผ๋ก ์ ๋ฌํ๋ฉด IP๊ณ์ธต์ด ํจํท ๋ฐฐ๋ฌ์ ๋ด๋น, TCP ๋ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํจ
- ์ ๋ขฐ์ฑ์ ์ค์ : 3-way handshaking ๊ณผ์ ์ด๋ ํ๋ฆ์ ์ด ๋ฐ ํผ์ก์ ์ด ๋๋ฌธ์ ์๋๊ฐ ๋๋ฆด ์ ๋ฐ์ ์์
์ ์ก ํธ์คํธ์ ํ๋ฆ
- ํด๋ผ์ด์ธํธ๋ TCP ์์ผ์ ์์ฑํ๋ฉฐ, TCP ์์ผ์ ์์ฑํ ๋ ์ฐ๊ฒฐ๋ ์๋ฒ ์์ผ์ ํฌํธ ๋ฒํธ์ ์๋ฒ์ IP ์ฃผ์๋ฅผ ๋ช ์ํด์ผํจ
- ํด๋ผ์ด์ธํธ๋ TCP ์์ผ์ ์์ฑํ ํ, 3-way handshake๋ฅผ ํ๊ณ ์๋ฒ์ TCP ์ฐ๊ฒฐ์ ์ค์
์์ ํธ์คํธ์ ํ๋ฆ
- ํด๋ผ์ด์ธํธ์๊ฒ ์ฐ๊ฒฐ ์์ฒญ์ด ์ค๊ธฐ์ ์, ๋ชจ๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ด๊ธฐ ์ ์์ ์ฒ๋ฆฌํ๋ ํน๋ณํ ์์ผ์ ์์ฑ ํด์ผํจ(Welcome Socket)
- 3-way handshake ๋์ ํด๋น ํด๋ผ์ด์ธํธ์๊ฒ ์ง์ ๋๋ ์ฐ๊ฒฐ ์์ผ์ ์์ฑํด์ผ ํจ(Connection Socket)
TCP์ ๋ํด ์์ธํ ์๊ณ ์ถ๋ค๋ฉด?
https://ybdeveloper.tistory.com/66