UDP
๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ๊ทธ๋จ ํ๋กํ ์ฝ์ ์ฝ์๋ก์, ๋น๋์ค ์ฌ์ ๋๋ DNS ์กฐํ์ ๊ฐ์ด ์๊ฐ์ ๋ฏผ๊ฐํ ์ ์ก์ ์ํด ์ธํฐ๋ท์ ํตํด ์ฌ์ฉ์ด ๋ฉ๋๋ค. ๋นจ๋ผ์ง ์ ์๋ ์ด์ ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๊ธฐ ์ ์ ๊ณต์์ ์ผ๋ก ์ฐ๊ฒฐ์ด ์ค์ ๋์ง ์์ผ๋ฏ๋ก ํต์ ์๋๊ฐ ๋นจ๋ผ์ง ์ ์์ต๋๋ค.
์ฌํ ๋ค๋ฅธ ๋คํธ์ํฌ ํ๋กํ ์ฝ๊ณผ ๊ฐ์ด UDP๋ ๋คํธ์ํฌ ์์์ ๋ ์ปดํจํฐ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ํ ํ์คํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก UDP๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ๋ง๊ณ ์๋ฌด๊ฒ๋ ํ์ง ์์ต๋๋ค. ๊ฐ๋ น, ๋ค๋ฅธ ํ๋กํ ์ฝ๊ณผ ๋น๊ตํ์ฌ UDP๋ ๋จผ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ฑฐ๋, ํด๋น ํจํท์ ์์๋ฅผ ํ์ํ๊ฑฐ๋ ์๋ํ ๋๋ก ๋์ฐฉํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ์ง ์๊ณ ํจํท์ ์ง์ ๋ณด๋ด๋ ๋ฐฉ์์ผ๋ก ํ๋ก์ธ์ค๋ฅผ ์ํํฉ๋๋ค.
๋ํ์ ์ผ๋ก UDP์ ์ฉ๋๋ ํฌ๊ฒ ์ธ๊ฐ์ง๊ฐ ์์ต๋๋ค.
์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก์ VoIp
(Voice Over IP)๋ฅผ ์์๋ก ๋ค ์ ์์ต๋๋ค. VoIp๋ ๋คํธ์ํฌ์์์ ์์ฑ์ IP ํจํท์ผ๋ก ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ์ ์
๋๋ค. ์ด๋ ๊ฒ IP ํจํท์ผ๋ก ๋น ๋ฅด๊ฒ ์ฃผ๊ณ ๋ฐ์์ผ ํ๋ ๊ธฐ์ ์ด๊ธฐ ๋๋ฌธ์ ์ง์ฐ์๊ฐ์ด ์๊ธฐ๋ ๊ฒ์ ํฐ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ TCP์ ๊ฐ์ ์ฐ๊ฒฐ์ ์ฑ๋ฆฝ์ด ํ์ธ ์๋ต ์์คํ
์ ๋จ์ ์ค๋ฒํค๋๋ฅผ ๋ฐ์์ํค๋ ๊ฒ์ด๊ธฐ์ ์ ๋ขฐ์ฑ์ด ๋ฎ๋๋ผ๋ ์ ์ก์ ์ฐ์ ์ผ๋ก ํ๋ UDP๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋๋ฒ์งธ ์ฉ๋์์ ์ฌ๋ฌ ์๋์๊ฒ ๊ฐ์ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋, Broad Cast, Multi Cast ํต์ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค. ํ์ง๋ง, ์ด๋ฌํ ํต์ ๋ฐฉ๋ฒ์ TCP์์๋ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์(TCP๋ 1:1 ํต์ ๋ง ๊ฐ๋ฅํ ์ ๋์บ์คํธ ํต์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.) ์ค์๊ฐ ์์์ ์ ๊ณตํ๋ Zoom๊ณผ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๊ธฐ ์ํด์ UDP๋ฅผ ์ด์ฉํ๋ ๊ฒ ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์๋์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฃผ๋ก ๋ค ์ ์๋ ์์๋ DNS Domain name transfering ์ ๋๋ค. ๋ฌผ๋ก ๋ช ๋ฉ๊ฐ ๋ฐ์ดํธ ์ด์์ ํ์ผ์ ์ ์กํ๋ ๊ฒฝ์ฐ์๋ TCP๋ฅผ ํตํ ์ ๋ขฐ์ฑ ํ์ธ์ด ํ์ํฉ๋๋ค. ์๋ํ๋ฉด ์ด๋ ๊ฒ ํฐ ์ฌ์ด์ฆ์ ๋ฐ์ดํฐ๋ ํจํท์ ํํ๋ก ์ชผ๊ฐ์ ธ ๋ค์ด์ ํฉ์ณ์ง๋ ๋ฐฉ์์ธ๋ฐ ํ๋๋ผ๋ ์ ์ค๋๋ฉด ํด๋น ํ์ผ์ด ์ ์ ๋์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ฉด์, ์์ฃผ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒฝ์ฐ์๋ ์คํ๋ ค ์ค๋ฒํค๋๋ฅผ ๋ฐ์์์ผ ํต์ ํจ์จ๋ง ๋ฎ์ถ๊ธฐ ๋๋ฌธ์ UDP๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ ๋๋ค.
UDP์ ์ฅ์ ์ TCP์๋ ๋ค๋ฅด๊ฒ ์ฐ๊ฒฐ ์ค์ ๊ณผ์ ์ด ์์ด ๋ฐ์ดํฐ ์ ์ก์ด ๋น ๋ฅด๊ณ , ํจํท ๊ตํ ๋คํธ์ํฌ์์ ๊ฐ๊ฐ์ ํจํท์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ฌํ ํน์ง์ ์ํด์ ์ค์๊ฐ ์๋น์ค, ๋น๋์ค ํน์ ์ค๋์ค ์คํธ๋ฆฌ๋ฐ ๋ฑ์ ์ฃผ๋ก ์ฌ์ฉ์ด ๋ฉ๋๋ค.
ํ์ง๋ง, ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐ ์ค์ ๋ฐ ๋ณด์ ๋ฑ์ ๊ณผ์ ์ ํฌ๊ฒ ๊ฑฐ์น์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ์ ๋ฌ์ ๋ณด์ฅํ์ง ์์ ๋ฐ์ดํฐ ์์ค์ ์ํ์ด ํฌ๊ณ , ๋ฐ์ดํฐ์ ํจํท์ด ์ ์ก๋๋ ์๋์ ๋ฐ๋ผ ๋ฐ์ดํฐ์ ์์๊ฐ ๋ฐ๋ ์ ์์ต๋๋ค. ์ ์ฒ๋ผ ํน๋ณํ๊ฒ ๋ฐ์ดํฐ์ ์๋์ ์์ ๋ฑ์ ์ฌํ์ธ ํ๋ ํ๋ก์ธ์ค๊ฐ ๋ฐ๋ก ์๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ํจํท์ ๋ฒ๋ ค์ง๋ฉฐ, ์ด๋ฅผ ์ํ ๋ณ๋์ ์ฒ๋ฆฌ ๊ณผ์ ์ด ์์ด ๋ค์ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋๋ฐ ์์ด ์ด๋ ค์์ด ์์ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋ฏธ์๋ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํด์๋ ์ผ์ผ์ด ํจํท์ ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๋ ์์คํ ์ ๊ตฌ์ถํด์ผ ํฉ๋๋ค.
UDP DDos Attack
UDP๋ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ ์กํ ์ ์๋ค๋ ๊ทธ๋ฐ ํน์ง๋ค์ด ์์ต๋๋ค. ๊ทธ๋์, ํจํท ์์ค๊ณผ ๊ฐ์ ์ํ์ ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ์๋๋, ์ด๋ฌํ UDP์ ํน์ง์ ์ํด์ ์ ์์ ์ผ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ UDP ํญ์ฃผ ๊ณต๊ฒฉ์ ๋ง์ ๊ฐ์์ ๋ฐ์ดํฐ๊ทธ๋จ์ ๋์ ์ปดํจํฐ์ ์์ ํฌํธ๋ก ๋ณด๋ ๋๋ค. ๊ทธ์ ๋ฐ๋ผ ๋์์ด ๋๊ฐ์ด ๋ง์ ๊ฐ์์ ICMP ํจํท์ผ๋ก ์๋ตํ๊ฒ ๋๋ฉฐ, ์ด๋ ํด๋น ํฌํธ์ ์ฐ๊ฒฐํ ์ ์์์ ๋ํ๋ ๋๋ค. ์ด๋ ๊ฒ ํญ์ฃผ ๊ณต๊ฒฉ์ ๋ฐฉ์ดํ๊ธฐ ์ํด์ ICMP ํจํท์ ์๋ต ์๋๋ฅผ ์ ํํ๊ฑฐ๋, ๋ถ์ฐ๋ ์ฌ๋ฌ ๋ฐ์ดํฐ ์ผํฐ์ ์ค๊ฐ ๋คํธ์ํฌ๋ฅผ ํตํด UDP ํธ๋ํฝ์ ์์ ํ๊ณ ์๋ตํ์ฌ ๋จ์ผ ์๋ณธ ์๋ฒ๊ฐ ์ฌ๊ธฐ์ฑ ์์ฒญ์ผ๋ก ์๋๋๋ ๊ฒ์ ๋ฐฉ์ง ํฉ๋๋ค.ICMP(Internet Control Message Protocol)
ICMP๋ ๋คํธ์ํฌ ์ฅ์น์์ ๋คํธ์ํฌ ํต์ ๋ฌธ์ ๋ฅผ ์ง๋จํ๋ ๋ฐ ์ฌ์ฉํ๋ ๋คํธ์ํฌ ๊ณ์ธต ํ๋กํ ์ฝ ์ ๋๋ค. ์ฃผ๋ก, ๋ฐ์ดํฐ๊ฐ ์๋ํ ๋์์ ์ ์์ ๋๋ฌํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ฅ์น๋ ๋ผ์ฐํฐ์ ๊ฐ์ ์ฅ์น์ ์ฌ์ฉ๋ฉ๋๋ค. ICMP๋ DDos ๊ณต๊ฒฉ์๋ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
TCP์ UDP๋ ์ฐ๋ฆฌ๊ฐ ๋ณด๋ด๋ ๋ฐ์ดํฐ์ ์ ๋ณด๋ฅผ ํค๋๋ผ๋ ๋ด์ง์ ๋ด์์ ๋ณด๋ด๋ ๋ฐ์ดํฐ์ ๋ํ ์ค๋ช ๊ณผ ํด๋น ๋ฐ์ดํฐ์ ๋ชฉ์ ์ง ๋ฑ์ ์ ๋ฌํ๊ฒ ๋ฉ๋๋ค.
์์ Table์์ ๋ณผ ์ ์๋ ๊ฒ ์ฒ๋ผ TCP/UDP๋ ๊ณตํต์ ์ผ๋ก ํฌํธ ๋ฒํธ๋ฅผ ์ด์ฉํ์ฌ ์ฃผ์๋ฅผ ์ง์ ํ๊ณ ๋ฐ์ดํฐ ์ค๋ฅ ๊ฒ์ฌ๋ฅผ ์ํ ์ฒดํฌ์ฌ์ด ์กด์ฌํฉ๋๋ค. (UDP์ ํค๋์ ์ค์ UDP ๋ฐ์ดํฐ๋ฅผ ํฉ์น ๊ฒ์ ๋ฐ์ดํฐ๊ทธ๋จ์ด๋ผ๊ณ ํฉ๋๋ค. ์ด๋ฅผ TCP ์์๋ TCP Segment๋ผ๊ณ ๋ช ๋ช ํ๊ณ ์์ต๋๋ค.) ์ฒดํฌ์ฌ์ ํตํด์ UDP์์ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ํ์ธํ๋ฉฐ ์ด๋ฌํ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ํจํท์ ์ ์กํ๊ธฐ ์ ์ ๋ง์ณ ๋๊ณ , ํด๋น ๋ฐ์ดํฐ๋ฅผ ํจํท์ ํฌํจํ์ฌ ์ ์กํฉ๋๋ค.
์ด๋ ๊ฒ ๋ฐ์ ์ฒดํฌ์ฌ์ ์์ ์ ์ธก์์๋ ํจํท์ ์ฒดํฌ์ฌ์ ์ ์ธํ ๋ถ๋ถ์ 16๋นํธ๋ก ๋๋์ด ๋ํ๊ณ , ์ด๋ ๊ฒ ๋ํ ๊ฒฐ๊ณผ์ ์ฒดํฌ์ฌ์ ๋ํฉ๋๋ค. ๊ฒฐ๊ณผ๊ฐ 0์ด ์๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๋ก ํ๋จํฉ๋๋ค.
์ ์ก ํ ๋๊ธฐ ํ๋กํ ์ฝ์ด๋ผ๊ณ ํจ์ Stop and Wait Protocol
์ด๋ผ๊ณ ์ฐ๊ณ , ๊ฐ์ฅ ๊ฐ๋จํ ํํ์ ์ค๋ฅ ์ ์ด ํ๋กํ ์ฝ ์ค ํ๋๋ผ๊ณ ํ ์ ์์ต๋๋ค. ๊ฐ๋ตํ๊ฒ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ํ ์์ ์๋ก๋ถํฐ ACK๋ฅผ ๋ฐ์ ๋ ๊น์ง ๋๊ธฐํ๋ ๋ฐฉ์์
๋๋ค. ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ์ดํฐ์ ์์ค์ด๋ ์ค๋ฅ๋ฅผ ํ์ธ ํ ์ ์์ง๋ง, ์ด๋ ๊ฒ ๊ธฐ๋ค๋ฆฌ๊ธฐ๋ง ํ๋ ๋ฐฉ์์ ํจ์จ์ ์ด์ง ์๊ธฐ ๋๋ฌธ์ Go-Back-N๊ณผ Selective Repeat ๊ฐ์ ์ค๋ฅ ์ ์ด ํ๋กํ ์ฝ์ด ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ, ๋์ ํจ์จ์ฑ์ ์ ๊ณตํฉ๋๋ค.
์์ ํจ์จ์ฑ์ด ๋จ์ด์ง๋ ์ด์ ๋ ์ธ๊ฐ์ง๊ฐ ์์ ์ ์์ต๋๋ค.
1. ๋ฐ์ดํฐ ์์ฒด์ ์ค๋ฅ๋ก ์ธํ ์์ค -> ๋ฐ์ดํฐ ์์ฒด๊ฐ ๊ฐ์ง ์์ผ๋ฏ๋ก ACK ์ ํธ ๋ํ ๋ณด๋ด์ง ์๊ธฐ ๋๋ฌธ์ ๋ฌดํ์ ๋๊ธฐ
2. ์์ค๋ ํ์ธ ์ ํธ์ ๋๋ฝ -> ํ๋ฒ ๋๋ฝ์ด ๋๋ฉด ์ด์ ํจํท์ ํ์ธ์ด ์์ ๋ ๋ ๊น์ง ๊ณ์ํด์ ๋๊ธฐ
3. ์ง์ฐ๋ ๋ฐ์ดํฐ ๋๋ ํ์ธ ์ ํธ -> ํ์ธ ์ ํธ๋ ์ก์ ์ฐจ ์ธก์ ์๊ฐ์ด๊ณผ(timeout) ๊ธฐ๊ฐ ํ์ ์์ ๋ฉ๋๋ค. ๊ทธ๋ ๊ธฐ์ ํ์ธ ์๋ต์ด ์ง์ฐ๋์ด ์์ ๋๋ฏ๋ก ์์นซ ๋ค๋ฅธ ๋ฐ์ดํฐ ํจํท์ ์๋ต์ผ๋ก ์๋ชป ๊ฐ์ฃผ ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
Pipe Line Protocol
์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ์ก์ ํจ์จ์ ์ผ๋ก ์ํํ๊ธฐ ์ํ ๊ธฐ์ ์ ์ธ ๊ฐ๋
์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. Pipe line์ ์ผ๋ จ์ ์์
์ด ์ฐ์์ ์ผ๋ก ์คํ๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฌ๊ธฐ์ ๊ฐ ์์
์ ๋ค์ ์์
์ผ๋ก์ ์
๋ ฅ์ด ๋์ด ์ฐ๊ฒฐ๋์ด ์๋ ํํ์
๋๋ค. ๋คํธ์ํฌ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ํจ์ ์์ด ํ์ดํ๋ผ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ๊ฐ๋ก ๋๋ ๋ณ๋ ฌ์ ์ผ๋ก ์ฒ๋ฆฌํ์ฌ ํจ์จ์ฑ์ ๊ทน๋ํ ํ๋ ๋ฐฉ์์
๋๋ค.
์ด๋ฌํ ํ์ดํ๋ผ์ธ ํ๋กํ ์ฝ์๋ GO-Back-N
, Selective Repeat ARQ
๊ฐ ์์ต๋๋ค. ๊ฐ๊ฐ์ ๋ํด์ ์์ธํ๊ฒ ์ค๋ช
๋๋ฆฌ๊ฒ ์ต๋๋ค.
Go-Back-N์ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก์ ์ํด ์ฌ์ฉ๋๋ ์ค๋ฅ ์ ์ด ํ๋กํ ์ฝ ์ค ํ๋๋ก, ์ ์ก์์ ์์ ์ ๊ฐ์ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ด๋ฆฌํ์ฌ ๋ฐ์ดํฐ์ ์์ค์ด๋ ์์์ ๊ฐ์งํ๊ณ ๋ณต๊ตฌํ๋ ๊ธฐ์ ์ ๋๋ค. ํด๋น ๊ธฐ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์์ ์ผ๋ก ์ ์กํ๋ ๋ฐฉ์์ผ๋ก ๋์ํฉ๋๋ค.
์ฐ์์ ์ผ๋ก ํจํท์ ์ ์กํ์ฌ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ํ๋กํ ์ฝ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, 0~7๊น์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ๊ฐ๊ฐ์ด ์ ์ก๋๊ธฐ ์์ํ๋ฉด์ ๋ํ ๋ณ๋์ ํ์ด๋จธ๊ฐ ๋์ํ๊ฒ ๋ฉ๋๋ค. ํ์ด๋จธ์ ์ค์ ํ ์๊ฐ ๋ด์ ACK๋ฅผ ๋ฐ์ง ๋ชปํ๋ฉด ํด๋น ํจํท๋ถํฐ ์๋์ฐ ํฌ๊ธฐ๋งํผ์ ๋ชจ๋ ํจํท์ ์ฌ์ ์กํฉ๋๋ค. ์ฆ, ๋ง์ฝ 0~5๊น์ง ํจํท์ ์ ์ก์ ํ์ง๋ง, Receiver ์ธก์์ 5๋ฅผ ์จ์ ํ ๋ฐ์ง ๋ชปํ๋ค๋ฉด, ๊ณ์ ACK๋ 1234444---
๋ฅผ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค. ์ด๋ ๊ฒ ์ ๋๋ก ์ ์ก๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์จ์ ํ ๋ค์ ๋ณด๋์ผ๋ก์จ ๋ฌด๊ฒฐ์ฑ์ ์งํค๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ด๋จธ๊ฐ ๋ง๋ฃ๋๊ธฐ ์ ์ ACK๊ฐ ์ค๊ฒ ๋๋ฉด ๊ทธ ๋ค์ ACK๊ฐ ๋์ง ์์ ๊ฐ์ฅ ์ต์ ์ ํจํท์ ๋ํ ํ์ด๋จธ๋ฅผ ๊ณ์ฐํฉ๋๋ค.
์์์ ๋ดค๋ GBN protocol์ ํ ์๋์ฐ ์ฌ์ด์ฆ ์ฆ ๋ณด๋ด๋ ค๊ณ ํ๋ ํจํท์ ํฌ๊ธฐ์ ๋ฐ๋ผ ํ์ด๋จธ์ ์ค์ ์ ๋ฌ๋ฆฌํ์ฌ, ๊ทธ ์๊ฐ๋ด์ ํจํท์ด ๋ค์ด์ค๊ฒ ๋ ๊ฒฝ์ฐ ์๋์ฐ ์ฌ์ด์ฆ๋ฅผ ์ฆ๊ฐ์์ผ ๊ทธ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์์ฐจ์ ์ผ๋ก ๋ณด๋ด๋ ๋ฐฉ์์ด์์ต๋๋ค.
๊ทธ์ ๋ฐํด SR protocol์ ํ์ด๋จธ๊ฐ ๊ฐ๊ฐ์ ํจํท์ ๋ํด์ ์ค์ ์ด ๋๊ธฐ ๋๋ฌธ์ ACK ๋ํ ๋ณด๋ธ ์์๋๋ก ์ ๋ ฅ์ ๋ฐ๋ ๊ฒ์ด ์๋ ACK๊ฐ ์จ์ ํ ๋ค์ด์จ ์์๋๋ก ๋ฐ๊ฒ ๋ฉ๋๋ค. ์ด๋ ๊ฒ ACK ํน์ ํจํท์ด ์ ๋๋ก ์ ๋ฌ๋์ง ์์ ๊ฒฝ์ฐ์๋ ์ผ๋จ ๋ฐ๋ก ๋ฒํผ๋ฅผ ํ์ฑํ์ฌ ๋ณด๊ด์ ํ๋ค๊ฐ ๊ทธ ํด๋น ํจํท์ ์ ์ธํ ๋๋จธ์ง๊ฐ ์ฒ๋ฆฌ๊ฐ ๋์์ ๊ฒฝ์ฐ์ ํ๋ฒ์ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ๋ค์์ผ๋ก ๋์ด๊ฐ๊ฒ ๋ฉ๋๋ค.
์ด๋ ๊ฒ GBN๊ณผ SR์ ์ดํด๋ณด์์ ๋ ๊ฐ๊ฐ์ ๋จ์ ์ด ๋ณด์ด๊ฒ ๋ฉ๋๋ค. GBN ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ค๋ฅ๊ฐ ๊ฐ์ง ๋์์ ๋, ํด๋น ์๋์ฐ์ ํฌ๊ธฐ ๋งํผ์ ๋ชจ๋ ํจํท ์ฌ์ ์ก ํ๊ธฐ ๋๋ฌธ์ ๋ถํ์ํ ์ฌ์ ์ก์ด ๋ฐ์ํ ์ ์๊ณ , SR ํ๋กํ ์ฝ์ ๊ตฌํ์ด ๋ณต์กํ๊ณ , ์์ ์ ์ธก์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํจํท์ ์์๋ฅผ ์ ์ดํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ์ ์ธ ๋งค์ปค๋์ฆ์ด ํ์ํ๊ณ ์ค๋ฅ๊ฐ ๋ ํจํท์ ๋ํ์ฌ ๋ฒํผ๋ฅผ ๋ ์์ฑํด์ผํ๋ ๋จ์ ์ด ์๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ ์ ํ ํ๋กํ ์ฝ์ ์ ์ ํด ์ฌ์ฉํด์ผ ํฉ๋๋ค.
TCP๋ OSI 7 Layers๋ฅผ ๊ณต๋ถํ ๋ ๋ง์ด ๋ค์ด๋ณผ ์ ์๋ ํ๋กํ ์ฝ์ ํ๋๋ก, ์ฅ๋น๋ค ๊ฐ์ ํต์ ๊ณผ์ ์์ ์ ๋ณด๋ฅผ ์์ ์ ์ผ๋ก, ์์๋๋ก, ์๋ฌ์์ด ๊ตํํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋ชฉ์ ์ ๋ ํ๋กํ ์ฝ ์ ๋๋ค. ์ผ์์ ์ผ๋ก ์์ฉ๊ณ์ธต๋ณด๋ค ๋ฎ์ ๋ ์ด์ด์ ํ๋กํ ์ฝ์ ์ ํ ๊ธฐํ๋ ํํ์ง ์์ต๋๋ค. ์๋ํ๋ฉด, ์ผ๋ จ์ ์์ ๋ค์ ๊ฑฐ์ OS์ ์ ์์ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ๊ฐ๋ฐ์๋ ์์ฉ๊ณ์ธต์ ์ผ์์ ์์ ์ ํ๊ณ ๊ด๋ฆฌ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๋ฐ ๊ฒ์ด ๋ ์ด์ด ๋ชจ๋ธ์ด ๋ฑ์ฅํ ์ด์ ์ ๋๋ค. ๊ฐ ๊ณ์ธต๊ฐ์ ์ญํ ๋ถ๋ด์ ํตํด ์ด๋ค ์์ ์ ํ ๋ ์ ๊ฒฝ์จ์ผํ๋ ๋ฒ์๋ฅผ ์ขํ ์๋ง์ ๊ธฐ์ ์ ์ง์ฝ์ฒด์ธ ๋คํธ์ํฌ๋ฅผ ํ๋ช ํ๋ช ๊ฐ๋ฐ์๊ฐ ๋ชจ๋ ์ดํดํ๋ ๊ฒ์ด ์๋ ํ์์ ๋ฐ๋ผ ์์ฉํ๊ณ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ ๊ฒ์ ๋๋ค.
๊ณผ๊ฑฐ์ ๋์ ๊ณผ ์ธ๊ณ ๋์ ๋น์ ๋ฐ์ดํฐ์ ํ์์ฑ์ ๋ฐ๋ผ ํจํท ๊ตํ ๋ฐฉ์
์ด๋ผ๋ ๊ฒ์
๋๋ค.
์ด ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ๊ฒฝ์ฐ, ํ๋๊ฐ ์์ค์ด ๋์ด๋ ๋ชจ๋ ๊ฒ์ด ์ฌ๋ผ์ง์ง ์๋ ๋ค๋ ์๋ฏธ์์ ๋์จ ์์ด๋์ด ์ ๋๋ค. ํ์ง๋ง, ํจํท์ด ์๊ฒ ๋ชจ๋ฅด๊ฒ ์ฌ๋ผ์ง๋ ๊ฒฝ์ฐ, ์ก์ ์ธก์์ ํจํท์ ์ชผ๊ฐ ์์๋ฅผ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ,์์ ์ธก์ ์ฒ๋ฆฌ ์๋๋ณด๋ค ๋น ๋ฅด๊ฒ ํจํท์ ๋ณด๋ด ๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ ๋ฑ์ ๋ฌธ์ ๋ฅผ ARQ๋ฅผ ๋ง๋ค์ด ์ค๋ฅ๋ ํด๋น ํจํท๋ง ๋ฐ๋ก ๋ณด๋ด๊ณ , ์ํธ์ค ๋ฒํธ๋ฅผ ๋ง๋ค์ด ์ฌ์กฐํฉ์ ์ํ ์์ ๋ฒํธ๋ฅผ ๊ฐ์ด ๋ณด๋ด๊ณ ์์ ์ธก์ด ์ฒ๋ฆฌํ ์ ์๋ ์์ ์ก์ ์ธก์ ์๋ ค์ฃผ๊ธฐ ์ํ ๊ฐ๋ ์ธ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๊ฐ ์ด๋ ํ์ํ๊ฒ ๋์์ต๋๋ค.
TCP์ ํค๋
๊ทธ๋ฆฌ๊ณ TCP์ ํน์ง์ ๋ํด์ ๋ง์๋๋ฆฌ์๋ฉด ๋ํ์ ์ผ๋ก Connection Oriented
, ์ฆ ์ฐ๊ฒฐ ์งํฅ์ ์ด๋ผ๋ ๊ฒ ์
๋๋ค. ์ฌ๊ธฐ์ ์ฐ๊ฒฐ์ด๋ผ๋ ์๋ฏธ๋ ๋ฌผ๋ฆฌ์ ์ฐ๊ฒฐ๋ ๋๋ฐํ๋ ์ฌ๋ฌ ๊ฐ์ ์ฐ๊ฒฐ์ด ์ด๋ค์ ธ ํตํ๋ ์ฐ๊ฒฐ์ ์๋ฏธํฉ๋๋ค.
์ด๋ ๊ฒ ์ฐ๊ฒฐ์ ์งํฅํ๋๊ฒ์ ์ฐ์์ ์ธ ๋ฐ์ดํฐ ์ ์ก์ ์ ๋ขฐ์ฑ์ ๊ฐ์ถ๊ธฐ ์ํจ์ ๋๋ค. ์์์ ์ค๋ช ๋๋ฆฐ ๊ฒ ์ฒ๋ผ TCP ๋ ํจํท ์ ์ก ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ์ผ์ ๋จ์๋ก ๋ฌถ์ด ์คํธ๋ฆผ ์ฒ๋ผ ์๋๋ฐฉ์๊ฒ ๋ณด๋ด๊ฒ ๋๋ ๊ฒ ์ ๋๋ค. ์ฆ ์ด๋ ๊ฒ ์ ๋ขฐ์ฑ์ ๊ฐ์ถ๊ธฐ ์ํด, ๊ฐ ์ฐ๊ฒฐ๋ ๊ธฐ๊ธฐ ๊ฐ์ ์ฐ๊ฒฐ ์ํ๋ฅผ ๋ฐ๋ก ๊ตฌ๋ถํ๊ณ ์๋๋ฐฉ๊ณผ ์ฐ๊ฒฐ ์ํ๋ฅผ ๋ง๋ค๊ฑฐ๋ ํด์ ํ๊ธฐ ์ํด ๊ฑฐ์น๋ ๊ณผ์ ์ HandShake๋ผ๊ณ ํฉ๋๋ค.
๋ง ์ฒ๋ผ 3๋ฒ์ Handshake, ์ฆ 3๋ฒ์ ํต์ ๊ณผ์ ์ ๊ฑฐ์นฉ๋๋ค. ์ด ๊ณผ์ ์ ๊ฑฐ์น๋ฉด์ ํต์ ์ ํ๋ ์ ์ข ๋จ์ ์ด๋ ๋๊ตฌ์ ํต์ ์ ํ๊ณ ์๋์ง, ๋ฐ์์ผ ํ ๋จ์ ์ํธ์ค ๋ฒํธ๋ ๋ช๋ฒ์ธ์ง ๋ฑ์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๊ฒ ๋ฉ๋๋ค.
ESTABLISHED
์ํ๋ก ๋ค์ด๊ฐ ์์ ํ๊ณ ์ ๋ขฐ์ฑ์๋ ์ฐ๊ฒฐ์ด ์์ฑ๋์๋ค๊ณ ํ๋จํ๊ณ ํต์ ์ ์์ํ ์ ์์ต๋๋ค.์ฐ๊ฒฐ์ ์์ฑํ ๋์ ๊ฐ์ด ์ฐ๊ฒฐ์ ์ข ๋ฃํ ๋๋ ํน์ ํ ๊ณผ์ ์ ๊ฑฐ์ณ์ ์ฐ๊ฒฐ์ ์ข ๋ฃํด์ผ ํฉ๋๋ค. ๊ทธ๋ฅ ์ฐ๊ฒฐ์ ๋์ด ๋ฒ๋ฆฌ๊ฒ ๋๋ฉด ์ฐ๊ฒฐ์ ์ง์ ์ฌ๋ถ๋ฅผ ๋ค๋ฅธ ํ์ชฝ์์๋ ์ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ์ด์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋ฉ๋๋ค.
๊ฐ๋ฐ์๋ค์ 4-way handshake, ์ฆ ์ฐ๊ฒฐ์ด ๋์ด ์ง๋๋ฅผ ๋ ์ฃผ์ ๊น๊ฒ ๋ด์ผํฉ๋๋ค. ์๋ํ๋ฉด, ์์ฐจ์ ์ผ๋ก ์ ํธ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ์์ด ์๋ ์๋๋ฐฉ์ด ์๋ต์ ์ค๋๊น์ง ๋๊ธฐ ํ๋ ๊ณผ์ ์ด ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ค๊ฐ์ ํ๋๋ผ๋ ์ด๊ธ๋๋ฉด ๋ฐ๋ก DEADLOCK์ด ๋ฐ์ํ ์ ๋ ์์ต๋๋ค. ๋ฌผ๋ก ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ํ์์์์ด ๋๋ฉด์ ์ ์ํ๊ฐ ๋์ง๋ง, ๊ทธ๋์ ๋ฉ๋ชจ๋ฆฌ์ ํฌํธ๋ฅผ ์ ์ ํ๊ณ ์์ผ๋ฏ๋ก ๋ณ๋ชฉ์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋๊ฒ ๋๋ ๊ฒ ์ ๋๋ค.
FIN_WAIT_1 : ์ฐ๊ฒฐ์ ์ข
๋ฃํ๊ณ ์ ํ๋ Initiator๊ฐ FIN packet์ ๋ณด๋ด๋ฉด์ FIN_WAIT_1
์ํ๋ก ๋ค์ด์๊ฒ ๋ฉ๋๋ค. FIN packet์ ํฌํจ๋๋ sequence number๋ ๋๋คํ ๊ฐ์ด ์๋ ์ด๋ฏธ 3-way handshake์์ ์ค์ ๋ ๊ฐ์ ์ด์ฉํฉ๋๋ค. (Active Closer, Active Close)
CLOSE_WAIT : Initiator๋ก ๋ถํฐ FIN Packet์ ๋ฐ์ Receiver๋ Initiator๊ฐ ๋ณด๋ธ SN+1๋ก ACK(์น์ธ ๋ฒํธ)๋ฅผ ๋ง๋ค์ด์ ๋ค์ ์์ฒญ์์๊ฒ ์๋ตํ๋ฉฐ CLOSE_WAIT ์ํ๋ก ๋ค์ด๊ฐ๊ฒ ๋ฉ๋๋ค. ์ด๋ close(), shutdown() ๊ณผ ๊ฐ์ ํจ์๋ฅผ ํตํด์ ๋ค์ ๋จ๊ณ๋ก ๋์ด ๊ฐ ์ ์์ต๋๋ค. ๋ง์ฝ ์ฐ๊ฒฐ ์ข ๋ฃ ํจ์๊ฐ ๋ช ์์ ์ผ๋ก ํธ์ถ ๋์ง ์๋ ๋ค๋ฉด ๋ค์ ์ํ๋ก ๋์ด๊ฐ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋๋ฝ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋๋ ์๋์ผ๋ก ์ข ๋ฃ๋ฅผ ํ ์ค๋น๋ฅผ ํด์ผํ๊ธฐ ๋๋ฌธ์ Passive Closer, Passive Close๋ผ๊ณ ํฉ๋๋ค.
FIN_WAIT_2 : Initiator๊ฐ Receiver๋ก ๋ถํฐ ACK๋ฅผ ๋ฐ๊ณ ๋ณด๋๋ SN๊ณผ์ ์ฐจ์ด๊ฐ 1์ด ๋ง์ฆ์ง ํ์ธํฉ๋๋ค. ํ์ง๋ง ์์ง, ์์ ์์ ๋ฐ์ดํฐ ์ ์ก์ด ์ ๋ถ ๋๋์ง ์์์ ์ ๋ ์๊ธฐ๋ ๋๊ธฐ ์ํ๋ก ๋ค์ด๊ฐ ์ฐ๊ฒฐ ์ข ๋ฃ๋ฅผ ํ๋ฝํ๋ FIN Packet์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ํ์์์์ ์ค์ ํ์ ๊ฒฝ์ฐ ์๋์ผ๋ก ๋ค์ ๋จ๊ณ๋ก ๋์ด ๊ฐ ์ ์์ต๋๋ค.
LAST_ACK : Receiver๋ ์์ ์ด ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๊ฐ ๋ ์ด์ ์๋ค๋ฉด ์ฐ๊ฒฐ ์ข ๋ฃ ํจ์๋ฅผ ํธ์ถํ๊ณ , FIN Packet์ ๋ณด๋ ๋๋ค. ์ด๋, FIN Packet์ SN์ ์์ ์ด ์ ์กํด์ผ ํ๋ ๋ฐ์ดํฐ์ SN์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฉฐ ACK๋ ๋๊ฐ์ด ๋ง์ง๋ง์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค. ์ดํ LAST_ACK ์ํ๋ก ๋ค์ด๊ฐ๋ฉฐ ACK๋ฅผ ๋ณด๋ด์ค ๋ ๊น์ง ๋๊ธฐํฉ๋๋ค.
TIME_WAIT : Receiver๋ก๋ถํฐ FIN Packet์ ๋ฐ์ Initiator๋ SN+1์ ACK๋ฅผ ์์ฑํ์ฌ Receiver์๊ฒ ์๋ตํฉ๋๋ค. ์ดํ TIME_WAIT ์ํ๋ก ๋์ ํ๋ฉฐ ์ค์ง์ ์ธ ์ข ๋ฃ๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ํด๋น ์ํ๋ ์๋ํ์ง ์์ ์๋ฌ๋ก ์ธํด ๋ฐ๋๋ฝ์ ๋น ์ง๋ ๊ฒ์ ๋ง์ง ์ํด์ ๋๊ธฐ ์๊ฐ์ ์ค์ ํฉ๋๋ค. ๋๊ธฐ ์๊ฐ์ ๋์ฒด๋ก 2 MSL(Maximum Segment Lifetime)์ผ๋ก ์ ์ํฉ๋๋ค.
Congestion Control์ด๋ ๋ง ๊ทธ๋๋ก ๋คํธ์ํฌ์ ํผ์ก ์ํ๋ฅผ ํ์ ํ๊ณ ๊ทธ ์ํ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ ์ก์ ์ ์ดํ๋ ๊ฒ์ ๋งํฉ๋๋ค.
๋คํธ์ํฌ์ ์์ญ์ ์ฐ๋ฆฌ๊ฐ ์๊ฐ์ ์ผ๋ก ๋ณผ ์ ์๋ ๋ค์ํ ๊ธฐ์ ์ ์ง์ฝ์ฒด์ด์ง๋ง, ์๋ต์ด ๋๋ ค์ง๊ณ ์๋ ๊ฒ์ ํ์ ์ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ์๋ต์ด ์ง์์ ์ผ๋ก ๋๋ ค์ง๊ฑฐ๋ ์์ค๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ฉด ๋คํธ์ํฌ์ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ ๊ฐ์ ์ํฉ์ด ๋ฒ์ด์ง๊ฒ ๋๋ฉด, ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ ์ก์ด๋ผ๋ ์์ ์ด ๊ณ์ ๋ฐ๋ณต๋๊ฒ ๋๋๋ฐ ์ฌ๋ฌ๊ฐ์ง ์ค๋ฅ๊ฐ ์๋ ๊ฒ๋ค์ด ๋์ ๋ค๋ฐ์ ์ผ๋ก ์ฌ์ ์ก์ ํ๊ฒ ๋๋ฉด Latency๊ฐ ๊ธธ์ด์ง๋ฉฐ ๋ฌธ์ ๊ฐ ์ ์ ์ ํ๊ฐ ๋๋ ๊ฒ์ ์ ์กฐ์จํ๊ธฐ ์ํด Initiator ์ธก์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ์ฌ ๋ฐ์ดํฐ์ ์ ์ก๋์ ๊ฐ์ ์ ์ผ๋ก ์ค์ด๋ ๊ฒ์ Congestion Control, ํผ์ก ์ ์ด๋ผ๊ณ ํฉ๋๋ค.
Congestion Window, CWND
์ก์ ์ธก์ ์๋์ฐ๋ ์์ ์ธก์ด ๋ณด๋ด์ค ์๋์ฐ ํฌ๊ธฐ์ ๋คํธ์ํฌ ์ํฉ์ ๊ณ ๋ คํ์ฌ ์ ํด์ง๋๋ค. Initiator๋ ์ต์ข ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ ํ ๋, Receiver๊ฐ ๋ณด๋ด ์ค ์๋์ฐ ํฌ๊ธฐ์ธ RWND(Receiver Window) ๊ทธ๋ฆฌ๊ณ ์์ ์ ๋คํธ์ํฌ ์ํฉ์ ๊ณ ๋ คํด์ ์ ํ ์๋์ฐ ํฌ๊ธฐ์ธ CWND ์ค ์์ ๋ ์์ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค. ์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ ์กฐ์ ํ๋ ๊ฒ์ด ์์ ์ธก์ด ์๋ ์ก์ ์ธก, Initiator์ ์๋์ฐ ํฌ๊ธฐ๋ผ๋ ๊ฒ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ , ์ฌ๊ธฐ์ ์๋ฏธํ๋ ์๋์ฐ ํฌ๊ธฐ๋ ์ ๋ฌํ๋ ํจํท์ ์๋์ฐ ํฌ๊ธฐ๊ฐ ์๋ ํผ์ก ์๋์ฐ์ ํฌ๊ธฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
ํต์ ์ ํ๋ ์ค๊ฐ์ ์๋ต ์๋๋, ํ์์์์ด ๋๋ค๊ฑฐ๋์ ์ ๋ณด ๋ฑ์ ํตํด์ ๋คํธ์ํฌ์ ํผ์ก ์ํฉ์ ์ ์นํ ์ ์์ง๋ง ํผ์ก ์๋์ฐ์ ์ฌ์ด์ฆ๋ฅผ ๋ช ํํ๊ฒ ๊ฒฐ์ ํ๊ธฐ๋ ์ ๋งคํ๊ธฐ ๋๋ฌธ์ MSS(Maximum Segment Size)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฆ, MSS๋ ํ๋ฒ ์ ์กํ ๋ ๋ณด๋ผ ์ ์๋ ์ต๋ ๋จ์๊ฐ ์ ํด์ ธ ์๋ ์ํฉ์์ IP header, TCP header ๋ฑ ๋ฐ์ดํฐ๊ฐ ์๋ ๋ถ๋ถ์ ์๋ผ๋ด๊ณ ์ง์ง ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ ๊ณต๊ฐ์ด ์ผ๋ง๋ ๋จ์๋์ง๋ฅผ ๋ํ๋ ๋๋ค.
AIMD ๋ฐฉ์์ ํฉ ์ฆ๊ฐ/ ๊ณฑ ๊ฐ์ ๋ฐฉ์์ด๋ผ๋ ๋ป์ ๋ด๊ณ ์์ต๋๋ค. ํด๋น ํผ์ก ํํผ ๋ฐฉ๋ฒ์ ๋คํธ์ํฌ์ ์์ง ๋ณ ๋ฌธ์ ๊ฐ ์์ด ์ ์ก ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ ํผ์ก ์๋์ฐ์ ํฌ๊ธฐ๋ฅผ 1์ฉ ์ฆ๊ฐ์ํค์ง๋ง, ์ค๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์ ์ค๋๊ฑฐ๋ ์๋ต์ด ์ค์ง ์๋ ๋ฑ์ ํผ์ก ์ํ ๊ฐ์ง๋๋ฉด ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋ฐ์ผ๋ก ์ค์ด๋ ๊ธฐ๋ฒ์ ๋๋ค.
์์์ ๋ค์ฌ๋ณด๋ฉด ํผ์ก ์๋์ฐ์ ํฌ๊ธฐ๋ ์์ ์ฌ์ง์ฒ๋ผ ํฑ๋ ๋ชจ์์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํฐ ๋ฒ์์์ ํด๋น ๊ทธ๋ํ๋ฅผ ๋ณด๊ฒ๋๋ฉด ์๊ฐ์ด ๊ฐ๋ฉด ๊ฐ์๋ก ๋คํธ์ํฌ์ ์ฐธ์ฌํ ์์์ ๊ด๊ณ ์์ด ๋ชจ๋ ํธ์คํธ๋ค์ ์๋์ฐ ํฌ๊ธฐ๊ฐ ํํ ์ํ๋ก ์๋ ดํ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ํ์ง๋ง, ๋คํธ์ํฌ์ BandWidth๊ฐ ๋จ์๋๋ ์ํฉ์์๋ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋๋ฌด ์กฐ๊ธ์ฉ ๋๋ฆฌ๋ฉฐ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์, ๋ชจ๋ ๋์ญํญ์ ์ ๋๋ก ํ์ฉํ์ฌ ๋น ๋ฅธ ์๋๋ก ํต์ ํ๋ ๊ฒ์ด ์ด๋ ค์ธ ์ ์์ต๋๋ค.
AIMD ๋ฐฉ์์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ ํ์ ์ผ๋ก ์ฆ๊ฐ์ํค๊ธฐ์ ๋์ญํญ์ ์ ๊ทน ํ์ฉํ์ฌ ์ ๋๋ก๋ ์๋๊ฐ ๋์ค๊ธฐ๊น์ง ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. ํด๋น Slow Start
๊ธฐ๋ฒ์ AIMD์ ๋น์ทํ์ง๋ง ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ ์ํฌ ๋๋ ์ง์์ ์ผ๋ก ์ฆ๊ฐ์ํค๋ค๊ฐ ํผ์ก์ด ๊ฐ์ง๊ฐ ๋๋ฉด ์๋์ฐ ํฌ๊ธฐ๋ฅผ 1๋ก ์ค์ฌ๋ฒ๋ฆฌ๋ ๋ฐฉ์์
๋๋ค.
ํด๋น ๋ฐฉ์์ ๋ณด๋ธ ๋ฐ์ดํฐ์ ACK๊ฐ ๋์ฐฉํ ๋๋ง๋ค ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ์ํค๊ธฐ ๋๋ฌธ์ ์ฒ์์๋ ์๋๊ฐ ๋๋ฆฌ๊ฒ ์ฆ๊ฐํ ์ง๋ผ๋, ์๊ฐ์ด ๊ฐ๋ฉด ๊ฐ์๋ก ์ ์ ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ๊ฒ ๋ฉ๋๋ค.
์๋์ฐ ์ฌ์ด์ฆ๊ฐ ์ฆ๊ฐํ๋ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด์ ์ฝ๊ฒ ์ ์ ์๋ ์ฐจ์ด์ ์ ๋คํธ์ํฌ ํผ์ก๋์ ์ต๊ณ ์น์ ๋๋ฌํ๋ ์๊ฐ์ ๋๋ค. AIMD๋ ์ ํ์ ์ผ๋ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ํค์ฐ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํธ์คํธ๋ค์ด ์๋ก ๋ค์ด์ฌ ๋ ๋ง์ ๋ถ๋ถ์ ์ ์ ํ ์ ์์์ง๋ง, Slow Start ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ์ฒ์์๋ ๋๋ฆฌ๋ค๊ฐ ์๊ฐ์ด ๊ฐ์๋ก AIMD๋ณด๋ค ๋น ๋ฅด๊ฒ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ํค์ธ ์ ์์ต๋๋ค.
Fast Retransmit
์ ํผ์ก ์ ์ด์ ๊ธฐ๋ฒ ์ค ํ๋๋ก, ์ค๋ฅ๊ฐ ๋ ํจํท์ ๋ํด์ ๋ค์ ์ ์ก์ด ๋ ๋๊น์ง ๊ณ์ ํด๋น ํจํท์ ๋ํ ACK ๋ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํผ์กํ ์ํฉ์ด๋ผ๊ณ ํ๋จํ์ฌ ์ฐ๋๋์ฐ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ฒ ๋ฉ๋๋ค. ๋น ๋ฅธ ์ฌ์ ์ก์ด GBN๊ณผ ๋น๊ตํ์ ๋ ์ค๋ฅ๊ฐ ๋ ๊ฒ์ ๋ํด ์ฌ์ ์ก์ ํ๋ ๊ฒ์ ๊ฐ์ง๋ง, ๋น ๋ฅธ ์ฌ์ ์ก์ ์ค๋ฅ๊ฐ ๋ ์ํฉ์ ๋ฐ๋ก ํด๋น ํจํท์ ๋ฐ์์ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์งํค๋ ค๊ณ ํ์ง๋ง, GBN์ ์ฌ์ ์ก์ด ํ์ํ ํจํท๊ณผ ๊ทธ ํ์ ์ค๋ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ค์ ๊ฐ์ด ๋ ์ ์กํ๊ธฐ ๋๋ฌธ์ ํจ์จ์ฑ ๋ฉด์์ ๋ถ๋ฆฌํ ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Flow Control
์ด๋ผ๋ ๊ฒ์ ์์์ ๋งํ๋ ARQ(Automatic Repeat Request), ์ฆ ์ฌ์ ์ก ๊ธฐ๋ฐ ์ค๋ฅ ์ ์ด๋ฅผ ๋งํฉ๋๋ค. ๋ํ์ ์ธ ํ๋ฆ ์ ์ด ๊ธฐ๋ฒ์ ์์์ ์ธ๊ธํ์ธ Stop-and-Wait Protocol
์ด ์๊ณ ์ด ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด์ Sliding Window
๋ฐฉ์์ด ์์ต๋๋ค.
Sliding Window ๋ฐฉ์์ Stop-and-Wait Protocol์ ๋นํจ์จ์ ์ธ ๋ถ๋ถ์ ๊ฐ์ ํ๊ธฐ ์ํด์ ๋์จ ๋ฐฉใ ์์ ๋๋ค. ํด๋น ๋ฐฉ์์ ์์ ์ธก์ด ํ ๋ฒ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ํด๋๊ณ ๊ทธ๋ ๊ทธ๋ ์์ ์ธก์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ํฉ์ ์ก์ ์ธก์ ์๋ ค์ค ๋ฐ์ดํฐ์ ํ๋ฆ์ ์ ์ดํ๋ ๋ฐฉ์์ ๋๋ค. ๊ธฐ์กด์ SNWP์ ๋ค๋ฅธ ์ ์ ์์ ์ธก์ด ์ฒ๋ฆฌํ ์ ์๋ ๋ฐ์ดํฐ์ ์์ ์๊ณ ์๋ค๋ ์ ์ ๋๋ค.
TCP 3-way handshake ๊ณผ์ ์์ ๋คํธ์ํฌ์ ์ํฉ์ ๋ฐ๋ผ ์๋์ฐ์ ์ฌ์ด์ฆ๊ฐ ๊ฒฐ์ ์ด ๋๋ฉด, ์์ ํ๋ ์์ ๋ํ ์์ ์ธก์ ์๋ต์ด ์์ด๋ ์ฐ์์ ์ผ๋ก ํจํท์ ์ ์กํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ์๋์ฐ์ ํฌ๊ธฐ๋ ๋ฒํผ์ ํจํท์ ์๋ณต ์๊ฐ์ธ RTT ๋ ๊ฐ์ด ๊ณ ๋ คํ์ฌ ๊ฒฐ์ ์ด ๋ฉ๋๋ค.
References