UDP
๐. UDP์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
UDP๋ ๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ๋ก 3-way handshake ๋ฑ์ ์ธ์ ์๋ฆฝ ๊ณผ์ ์ด ์์ต๋๋ค.
๋ํ ๋น์ ๋ขฐ์ฑ ํ๋กํ ์ฝ๋ก ํ๋ฆ์ ์ด, ์ค๋ฅ์ ์ด, ํผ์ก ์ ์ด๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค.
์ด๋ฌํ ๋จ์์ฑ ๋๋ถ์ ์ ์ ์์ ์ค๋ฒํค๋๋ฅผ ๊ฐ๊ณ ์์ ์ฌ๋ถ๋ฅผ ํ์ธํ์ง ์์์ ์๋๊ฐ ๋น ๋ฆ ๋๋ค
์ค์๊ฐ์ฑ์ด ์ค์ํ ํต์ (๋์์ ์คํธ๋ฆฌ๋ฐ ๋ฑ)์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
๐. UDP์ ์ฅ๋จ์ ์ ์ค๋ช ํด ์ฃผ์ธ์.
๋น์ฐ๊ฒฐํ ์๋น์ค์ด๋ฏ๋ก TCP์ ๋นํด ์๋๊ฐ ๋น ๋ฅด๋ฉฐ ๋คํธ์ํฌ ๋ถํ๊ฐ ์ ์ต๋๋ค.
1:1, 1:N, N:N ํต์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ์ด ์์ต๋๋ค.
๐. UDP ์ฒดํฌ์ฌ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
UCP ์ฒดํฌ์ฌ์ UDP ํจํท์ ๋ฌด๊ฒฐ์ฑ์ ๊ฒ์ฌํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ๋๋ค.
UDP๋ ๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ์ด๊ธฐ๋๋ฌธ์ ๋ฐ์ดํฐ๊ทธ๋จ์ด ์์ค๋๊ฑฐ๋ ์์๋ ์ ์์ต๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ณ ๋ฐ์ดํฐ๊ทธ๋จ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด UDP ์ฒดํฌ์ฌ์ ์ฌ์ฉํฉ๋๋ค.
์ฒดํฌ์ฌ์ ์ก์ ํ ์ธ๊ทธ๋จผํธ๋ฅผ 16๋นํธ ๋จ์๋ก ๋๋๊ณ ,์ด์ ์ด ์ฒดํฌ์ฌ์ ์ธ๊ทธ๋จผํธ์ ๊ฐ์ด ์ ์ก ํฉ๋๋ค.
ํค๋์ ์ฒดํฌ์ฌ๊ณผ ์ผ์น ํ๋์ง ๋น๊ตํจ์ผ๋ก์จ
์์ ๋ ์ธ๊ทธ๋จผํธ์ ์ค๋ฅ๋ฅผ ๊ฒ์ถํ ์ ์์ต๋๋ค.
์์ ์๋ ์์ ๋ ์ธ๊ทธ๋จผํธ์ ๋ํด ๋์ผํ ๋ฐฉ์์ผ๋ก ์ฒดํฌ์ฌ์ ๋ง๋ค๊ณ
๋ชจ๋ ๋ํ ๋ค์ 1์ ๋ณด์๋ฅผ ์ทจํด์ ๋ง๋ค์ด ์ง๋๋ค.
๋ง์ฝ ์ฒดํฌ์ฌ ๊ฐ์ด ์ผ์นํ์ง ์์ผ๋ฉด ์์ ์๋ ํด๋น ํจํท์ ๋ฌด์ํ๊ฑฐ๋ ์ฌ์์ฒญํ๋ ๋ฑ์ ์กฐ์น๋ฅผ ์ทจํ ์ ์์ต๋๋ค.
UDP ์ฒดํฌ์ฌ์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ํ์ธํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ,
์ ๋ขฐ์ฑ๊ณผ ๋ณด์์ ๋ณด์ฅํ์ง๋ ์์ต๋๋ค.
์ ๋ขฐ์ ๋ฐ์ดํฐ ์ ์ก์ ์๋ฆฌ
๐. ์ ์กํ ๋๊ธฐ ํ๋กํ ์ฝ์ด ๋ญ๊น์?
ํจํท์ ์ ์กํ๊ณ ๊ทธ ํจํท์ ๋ํ ์์ ํ์ธ ์๋ต์ ๋ฐ๊ณ ๋์, ๋ค์ ํจํท์ ์ ์กํ๋ ๋ฐฉ์ ์ ๋๋ค.
์ด๋ฌํ ๋ฐฉ์์ ๋คํธ์ํฌ ๋งํฌ ์ด์ฉ๋ฅ ์ด ๋ฎ์ ์๋๊ฐ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
๐. ํ์ดํ๋ผ์ธ ํ๋กํ ์ฝ์ด ๋ญ๊น์?
์ ์กํ ํจํท์ ๋ํ ์์ ํ์ธ ์๋ต์ ๋ฐ์ง ์๊ณ ๋, ์ฌ๋ฌ ๊ฐ์ ํจํท์ ์ฐ์์ผ๋ก ์ ์กํ์ฌ
๋งํฌ ์ด์ฉ๋ฅ ๊ณผ ์ ์ก ์๋๋ฅผ ๋์ด๋ ํ๋กํ ์ฝ ์ ๋๋ค.
TCP
๐. TCP์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
TCP๋ ์ฐ๊ฒฐํ, ์ ๋ขฐ์ฑ ์ ์ก ํ๋กํ ์ฝ ์ ๋๋ค.
์ฐ๊ฒฐ์งํฅ์ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ 3way handsaking์ ํ์ฌ
๋ ํธ์คํธ์ ์ ์ก ๊ณ์ธต ์ฌ์ด์ ๋ ผ๋ฆฌ์ ์ฐ๊ฒฐ์ ์ค๋ฆฝํฉ๋๋ค.
์ ๋ขฐ์ฑ ์๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ค๋ฅ์ ์ด, ํ๋ฆ์ ์ด, ํผ์ก์ ์ด ๋ฑ์ ์คํํฉ๋๋ค.
์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด์ header๊ฐ ๋ ํฌ๊ณ ์๋๊ฐ ๋น๊ต์ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
์ ๋ขฐ์ฑ์ด ์ค์ํ ํต์ (HTTP, File ์ ์ก ๋ฑ)์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
๐. 3 way handshake์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
3-way handshake๋ TCP/IP ํ๋กํ ์ฝ๋ก ํต์ ํ๊ธฐ ์ ,
์ ํํ ์ ๋ณด ์ ์ก์ ์ํด ์๋๋ฐฉ ์ปดํจํฐ์ ์ธ์ ์ ์๋ฆฝํ๋(์ฐ๊ฒฐ์ ํ๋) ๊ณผ์ ์ ๋๋ค. (Connection setup, TCP ์ฐ๊ฒฐ ์ด๊ธฐํ)
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ ์์ ์์ฒญํ๋ SYN ํจํท์ ๋ณด๋ด๋ฉด,
์๋ฒ๋ ์์ฒญ์ ์๋ฝํ๋ ACK๋ฅผ ํฌํจํ์ฌ SYN+ACK ํจํท์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ์กํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ์ด๊ฒ์ ์์ ํ ํ, ๋ค์ ACK๋ฅผ ์๋ฒ์๊ฒ ๋ฐ์กํ๋ฉด ์ฐ๊ฒฐ์ด ์ด๋ฃจ์ด์ง๊ณ ,
์ด๋ก์จ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฒ๋ฉ๋๋ค.
TCP ํต์ ์ ์๋์ ๊ฐ์ 3๋จ๊ณ์ ๊ณผ์ ์ ๊ฑฐ์นฉ๋๋ค.
1. Connection setup (tcp ์ฐ๊ฒฐ ์ด๊ธฐํ) - 3way handshaking
2. Data transfer (๋ฐ์ดํฐ ์ ์ก)
3. Connection termination (tcp ์ฐ๊ฒฐ ์ข ๋ฃ) - 4way handshaking
๐. 4 way handshake์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
3-way handshake๋ฅผ ํตํด Connection setup์ ํ๋ค๋ฉด
tcp ์ฐ๊ฒฐ์ ์ข ๋ฃํ๋ Connection termination ๊ณผ์ ์ 4-way handshaking์ ํตํด ์ด๋ฃจ์ด์ง๋๋ค.
TCP connection termination์ ์๋ฐฉํฅ์ผ๋ก 2๊ฐ์ ์ฐ๊ฒฐ์ด ๋ ๋ฆฝ์ ์ผ๋ก ๋ซํ๊ธฐ ๋๋ฌธ์ 4-way ๋จ๊ณ๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค.
FIN -> ACK -> FIN -> ACK
๐. Fast Retransmit ( TCP ๋น ๋ฅธ ์ฌ์ ์ก )์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
ํผ์ก์ ์ด ๋ฐฉ๋ฒ ์ค ํ๋๋ก
ํจํท์ ๋ฐ๋ ์ชฝ์์ ๋จผ์ ๋์ฐฉํด์ผํ ํจํท์ด ๋์ฐฉํ์ง ์๊ณ ๋ค์ ํจํท์ด ๋์ฐฉํ ๊ฒฝ์ฐ์๋ ACK ํจํท์ ๋ณด๋ ๋๋ค.
๋จ ์์๋๋ก ์ ๋์ฐฉํ ๋ง์ง๋ง ํจํท์ ๋คํ ํจํท ์๋ฒ์ ACK ํจํท์ ์ค์ด ๋ณด๋ด๊ฒ ๋๋ฏ๋ก,
์ค๊ฐ์ ํ๋๊ฐ ์์ค๋๊ฒ ๋๋ฉด ์ก์ ์ธก์์๋ ์๋ฒ์ด ์ค๋ณต๋ ACK ํจํท์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
์ค๋ณต๋ ์๋ฒ์ ํจํท์ 3๊ฐ ๋ฐ์ผ๋ฉด ์ฌ์ ์ก์ ํ๊ฒ ๋๋ฉฐ,
์ฝ๊ฐ์ ํผ์กํ ์ํฉ์ด ์ผ์ด๋ ๊ฒ์ด๋ฏ๋ก ํผ์กํ ์ํฉ์ ๊ฐ์งํ๊ณ Window size๋ฅผ ์ค์ด๊ฒ ๋ฉ๋๋ค
๐. Congestion control ( ํผ์ก ์ ์ด )์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
ํผ์ก์ ์ด๋ TCP์ ์ ์ก ์ ์ด ๊ธฐ์ ์ค ํ๋์ ๋๋ค.
์ก์ ์ธก์ ๋ฐ์ดํฐ ์ ๋ฌ๊ณผ ๋คํธ์ํฌ ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋ ์ฐจ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ๋ฒ์ผ๋ก,
์ก์ ์ธก์์ ๋ณด๋ด๋ ๋ฐ์ดํฐ ์ ์ก ์๋๋ฅผ ์ ์ดํฉ๋๋ค.
๐. Flow control ( ํ๋ฆ ์ ์ด ) ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
ํ๋ฆ์ ์ด๋ TCP์ ์ ์ก ์ ์ด ๊ธฐ๋ฒ ์ค ํ๋์ ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ์๋์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ์๋์ ๊ท ํ์ ๋ง์ถ๋ ๊ฒ์ ๋ปํฉ๋๋ค.
์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
๐. Error control ( ์ค๋ฅ ์ ์ด) ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
์ค๋ฅ์ ์ด๋ ํต์ ๋์ค์ ๋ฐ์ดํฐ๊ฐ ์ ์ค๋๊ฑฐ๋ ์๋ชป๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋์์ ๊ฒฝ์ฐ ๋์ฒํฉ๋๋ค.
Go Back N ๊ธฐ๋ฒ๊ณผ Selective Repeat ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉฐ,
์ด๋ TCP header์ checksum, ํ์ธ์๋ต, ํ์-์์ ๋ฑ์ ํตํด ์ํ๋ฉ๋๋ค.