04-1 ์ ์ก ๊ณ์ธต ๊ฐ์: IP์ ํ๊ณ์ ํฌํธ
์ ๋ขฐํ ์ ์๋ ํต์ ๊ณผ ๋น์ฐ๊ฒฐํ ํต์
- ๋คํธ์ํฌ ๊ณ์ธต์ ํต์ฌ ํ๋กํ ์ฝ์ธ IP๋ ํฌ๊ฒ IP ๋จํธํ์ IP ์ฃผ์ ์ง์ ์ ํ๋ค.
- ํ์ง๋ง ์ด์ธ์๋ IP์ ํ๊ณ๋ผ๊ณ ๋ณผ ์ ์๋ ๋ ๊ฐ์ง ์ค์ํ ํน์ง์ ๋น์ ๋ขฐ์ฑ ํ๋กํ ์ฝ(unreliable protocol)์ด์
๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ(connectionless protocol)์ด๋ผ๋ ์ ์ด๋ค. - ์ ๋ขฐํ ์ ์๋ ํต์ ์ IP ํ๋กํ ์ฝ์ด ํจํท์ด ์์ ์ง๊น์ง ์ ๋๋ก ์ ์ก๋์๋ค๋ ๋ณด์ฅ์ ํ์ง ์๋ ํน์ง์ ์ผ์ปซ๋๋ค. ์ด๋ ํต์ ๊ณผ์ ์์ ํจํท์ ๋ฐ์ดํฐ๊ฐ ์์๋๊ฑฐ๋ ์ค๋ณต๋ ํจํท์ด ์ ์ก๋์๋๋ผ๊ณ ์ด๋ฅผ ํ์ธํ์ง ์๊ณ , ์ฌ์ ์ก๋ ํ์ง ์์ผ๋ฉฐ, ์์๋๋ก ํจํท์ด ๋์ฐฉํ ๊ฒ์ด๋ผ๋ ๋ณด์ฅ๋ ํ์ง ์๋๋ค๋ ์๋ฏธ์ด๋ค.
- ๋น์ฐ๊ฒฐํ ํต์ ์ ์ด๋ฆ ๊ทธ๋๋ก ์ก์์ ํธ์คํธ ๊ฐ์ ์ฌ์ ์ฐ๊ฒฐ ์๋ฆฝ ์์ ์ ๊ฑฐ์น์ง ์๋ ํน์ง์ ์๋ฏธํ๋ค.
- IP๊ฐ ์ด๋ฌํ ํต์ ์ ํ๋ ์ฃผ์ํ ์ด์ ๋ ๋ฐ๋ก ๋น ๋ฅธ ์ก์์ ์ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ์ํ ์ฑ๋ฅ ๋๋ฌธ์ด๋ค.
- ๋ชจ๋ ํจํท์ด ์ ๋๋ก ์ ์ก๋์๋์ง ์ผ์ผ์ด ํ์ธํ๊ณ , ํธ์คํธ ๊ฐ์ ์ฐ๊ฒฐ์ ์๋ฆฝํ๋ ์์ ์ ์ผ๋ฐ์ ์ผ๋ก ๋ ๋ง์ ์๊ฐ, ๋์ญํญ, ๋ถํ๊ฐ ์๊ตฌ๋๊ณ , ์ด๋ ๊ณง ์ฑ๋ฅ์ ์ ์ํฅ์ผ๋ก ์ด์ด์ง ์ ์๋ค.
IP์ ํ๊ณ๋ฅผ ๋ณด์ํ๋ ์ ์ก ๊ณ์ธต
- ๋คํธ์ํฌ์ ์์ฉ ๊ณ์ธต ์ฌ์ด์ ์์นํ ์ ์ก ๊ณ์ธต์ ์ ๋ขฐํ ์ ์๋ ํต์ ๊ณผ ์ฐ๊ฒฐํ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ์ด๋ฌํ IP์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ณ , ํฌํธ ๋ฒํธ๋ฅผ ํตํด ์์ฉ ๊ณ์ธต์ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค๋ค์ ์๋ณํ๋ ์ญํ ์ ์ํํ๋ค.
- ์ ์ก ๊ณ์ธต์ ์ฐ๊ฒฐํ ํ๋กํ ์ฝ์ธ TCP๋ ์ด์ ์ ์ฌํ๊ฒ ๋ ํธ์คํธ๊ฐ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ ์ ๋ง์น ๊ฐ์์ ํ์ ์ ์ค์ ํ๋ฏ์ด ์ฐ๊ฒฐ์ ์๋ฆฝํ๋ค. ์ก์์ ํ๋ ๋์์๋ ์ฐ๊ฒฐ์ ์ ์งํ๊ณ , ์ก์์ ์ด ๋๋๋ฉด ์ฐ๊ฒฐ์ ์ข ๋ฃํ ์ ์๋ค.
- ์ ๋ขฐ์ฑ ์๋ ํต์ ๋ํ TCP๋ฅผ ํตํด ๊ฐ๋ฅํ๋ค. ํจํท์ด ์์ ์ง๊น์ง ์ฌ๋ฐ๋ฅธ ์์๋๋ก ํ์คํ ์ ๋ฌ๋๋ ๊ฒ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์ ์ก์ ํตํ ์ค๋ฅ ์ ์ด, ํ๋ฆ ์ ์ด, ํผ์ก ์ ์ด ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๋ค.
- ๋๋ก๋ ๋น๊ต์ ๋์ ์ฑ๋ฅ์ ์ํด ์ ๋ขฐํ ์ ์๋ ํต์ , ๋น์ฐ๊ฒฐํ ํต์ ์ ์ง์ํ๋ ํ๋กํ ์ฝ์ด ํ์ํ ๋๊ฐ ์๊ธฐ ๋๋ฌธ์, ์ ์ก ๊ณ์ธต์๋ UDP๋ผ๋ ํ๋กํ ์ฝ๋ ์กด์ฌํ๋ค.
- UDP๋ ์ ๋ขฐํ ์ ์๋ ํต์ , ๋น์ฐ๊ฒฐํ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ ์ก ๊ณ์ธต์ ํ๋กํ ์ฝ๋ก TCP๋ณด๋ค๋ ๋น๊ต์ ๋น ๋ฅธ ์ ์ก์ด ๊ฐ๋ฅํ๋ค.
- ๋์์ ์คํธ๋ฆฌ๋ฐ ์๋น์ค๋ ์ค์๊ฐ ์์ ํตํ์ฒ๋ผ ํ๋ ๊ฐ์ ํจํท ์์ค์ ๊ฐ์ํ๋๋ผ๋ ๋น ๋ฅธ ์ ์ก์ด ์ฐ์ ์ ๋๋ ๊ฒฝ์ฐ๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์์ฉ ๊ณ์ธต๊ณผ์ ์ฐ๊ฒฐ ๋ค๋ฆฌ, ํฌํธ
- ํจํท์ ์คํ ์ค์ธ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค๊น์ง ์ ๋ฌ๋์ด์ผ ํ๋ค.
- ๋ง์ฝ ์ด๋ค ํจํท์ ์์ ํ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ํ ์ ๋ณด๊ฐ ํจํท์ ํฌํจ๋์ด ์์ง ์๋ค๋ฉด ํด๋น ํจํท์
์ด๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฌํด์ผ ํ ์ง ์ ์ ์๋ค. - ๋ฐ๋ผ์ ํจํท์ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ณํ ์ ์๋ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ด์ผ ํ๋๋ฐ, ์ด๋ฅผ ํฌํธ(port)๋ผ๊ณ ํ๋ค.
- ์ ์ก ๊ณ์ธต์์๋ ํฌํธ ๋ฒํธ, ์ฆ ํจํท ๋ด ์์ ์ง ํฌํธ์ ์ก์ ์ง ํฌํธ๋ฅผ ํตํด ์ก์์ ์ง ํธ์คํธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ณํ๋ค.
- ํฌํธ ๋ฒํธ๋ 16๋นํธ๋ก ํํ ๊ฐ๋ฅํ๋ฉฐ, ์ฌ์ฉ ๊ฐ๋ฅํ ํฌํธ์ ์๋ 2^16(65536)๊ฐ์ด๋ค. (0~65535๋ฒ ํฌํธ)
- 0๋ฒ๋ถํฐ 1023๋ฒ๊น์ง์ ํฌํธ ๋ฒํธ๋ ์ ์๋ ค์ง ํฌํธ(well known port)์ด๋ฉฐ ์์คํ ํฌํธ๋ผ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค.
- ํฌํธ ๋ฒํธ 1024๋ฒ๋ถํฐ 49151๋ฒ๊น์ง๋ ๋ฑ๋ก๋ ํฌํธ(registered port) ๋ฒํธ์ด๋ค.
- ํํ ์ฌ์ฉ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ํ๋กํ ์ฝ์ ํ ๋นํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
- ํฌํธ ๋ฒํธ 49152๋ถํฐ 655335๋ฒ๊น์ง๋ ๋์ ํฌํธ(dynamic port), ์ฌ์ค ํฌํธ, ์์ ํฌํธ ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ์๋ฒ๋ก์ ๋์ํ๋ ํ๋ก๊ทธ๋จ์ ์ผ๋ฐ์ ์ผ๋ก ์ ์๋ ค์ง ํฌํธ์ ๋ฑ๋ก๋ ํฌํธ๋ก ๋์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- ๋ฐ๋ฉด์ ํด๋ผ์ด์ธํธ๋ก์ ๋์ํ๋ ํ๋ก๊ทธ๋จ์ ๋์ ํฌํธ ๋ฒํธ ์ค์์ ์์์ ๋ฒํธ๊ฐ ํ ๋น๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- ํฌํธ ๋ฒํธ๋ฅผ ํตํด ์คํ ์ค์ธ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ณํ ์ ์์ผ๋ฏ๋ก, IP ์ฃผ์์ ํฌํธ ๋ฒํธ์ ๋ํ ์ ๋ณด๊ฐ ํจ๊ป ์ฃผ์ด์ง๋ฉด ํน์ ํธ์คํธ์์ ์คํ์ค์ธ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค๋ฅผ ์๋ณํ ์ ์๊ธฐ ๋๋ฌธ์ IP ์ฃผ์:ํฌํธ๋ฒํธ ํ์์ผ๋ก IP ์ฃผ์์ ํจ๊ป ํ๊ธฐ๋๋ค.
์ ๋ฆฌ
- ์ ์ก ๊ณ์ธต์ ์ ๋ขฐํ ์ ์๋ ์ฐ๊ฒฐํ ํต์ ์ด ๊ฐ๋ฅํ ํ๋กํ ์ฝ(TCP)์ ์ ๊ณตํ๊ธฐ์ ๋คํธ์ํฌ ๊ณ์ธต์ ํ๊ณ๋ฅผ ๋ณด์ํ ์ ์๊ณ , ํฌํธ๋ฅผ ํตํด ์์ฉ ๊ณ์ธต์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ณํจ์ผ๋ก์จ ์์ฉ ๊ณ์ธต๊ณผ์ ์ฐ๊ฒฐ ๋ค๋ฆฌ ์ญํ ์ ์ํํ๋ค.
ํฌํธ ๊ธฐ๋ฐ NAT
- ์ง๋ 3์ฅ์์ NAT๋ IP ์ฃผ์๋ฅผ ๋ณํํ๋ ๊ธฐ์ ์ด๋ฉฐ, ์ฃผ๋ก ๋คํธ์ํฌ ๋ด๋ถ์์ ์ฌ์ฉ๋๋ ์ฌ์ค IP ์ฃผ์์ ๋คํธ์ํฌ ์ธ๋ถ์์ ์ฌ์ฉ๋๋ ๊ณต์ธ IP ์ฃผ์๋ฅผ ๋ณํํ๋๋ฐ ์ฌ์ฉ๋๋ค๊ณ ํ๋๋ฐ, ์ด๋ฌํ ๋ณํ์ ์ํด ์ฃผ๋ก ์ฌ์ฉ๋๋ ๊ฒ์ด NAT ๋ณํ ํ ์ด๋ธ์ด๋ค.
- NAT ๋ณํ ํ ์ด๋ธ์ ๋ณด๋ฉด ๋ณํ์ ๋์์ด ๋๋ IP ์ฃผ์๊ฐ ์ผ๋์ผ๋ก ๋์๋์ด ์๋ค.
- ํ์ง๋ง ์ฌ์ค IP ์ฃผ์์ ๊ณต์ธ IP ์ฃผ์๊ฐ ์ผ๋์ผ๋ก ๋์๋๋ค๋ฉด ๋คํธ์ํฌ ๋ด๋ถ์์ ์ฌ์ฉ๋๋ ์ฌ์ค IP ์ฃผ์์ ์๋งํผ ๊ณต์ธ IP ์ฃผ์๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฐฉ์์ ๋ฌด๋ฆฌ๊ฐ ์๋ค.
- ๋ฐ๋ผ์ ์ค๋๋ ๋์ค์ ์ผ๋ก ์ฌ์ฉ๋๋ NAT ๊ธฐ์ ์ ๋๋ถ๋ถ ๋ค์์ ์ฌ์ค IP ์ฃผ์๋ฅผ ๊ทธ๋ณด๋ค ์ ์ ์์ ๊ณต์ธ IP ์ฃผ์๋ก ๋ณํํ๋๋ฐ, ์ฌ๊ธฐ์ ํฌํธ๊ฐ ํ์ฉ๋๋ค.
NAPT(Network Address Port Translation)
- NAPT๋ ํฌํธ๋ฅผ ํ์ฉํด ํ๋์ ๊ณต์ธ IP ์ฃผ์๋ฅผ ์ฌ๋ฌ ์ฌ์ค IP ์ฃผ์๊ฐ ๊ณต์ ํ ์ ์๋๋ก ํ๋ NAT์ ์ผ์ข ์ด๋ค.
- NAT ํ ์ด๋ธ์ ๋ณํํ IP ์ฃผ์ ์๊ณผ ๋๋ถ์ด ํฌํธ ๋ฒํธ๋ ํจ๊ป ๊ธฐ๋กํ๊ณ , ๋ณํํ๋ค.
- ์ด์ฒ๋ผ ๋คํธ์ํฌ ์ธ๋ถ์์ ์ฌ์ฉํ IP ์ฃผ์๊ฐ ๊ฐ๋๋ผ๋ ํฌํธ ๋ฒํธ๊ฐ ๋ค๋ฅด๋ฉด ๋คํธ์ํฌ ๋ด๋ถ์ ํธ์คํธ๋ฅผ ํน์ ํ ์ ์๊ธฐ ๋๋ฌธ์, ๋ค์์ ์ฌ์ค IP ์ฃผ์๋ฅผ ๊ทธ๋ณด๋ค ์ ์ ์์ ๊ณต์ธ IP ์ฃผ์๋ก ๋ณํํ ์ ์๊ฒ ๋๋ฏ๋ก, N:1๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ๋๋ค.
ํฌํธ ํฌ์๋ฉ
- ๋คํธ์ํฌ ๋ด ํน์ ํธ์คํธ์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ๋ฅผ ๋ฏธ๋ฆฌ ํ ๋นํ๊ณ , ํด๋น IP ์ฃผ์:ํฌํธ ๋ฒํธ๋ก์จ ํด๋น ํธ์คํธ์๊ฒ ํจํท์ ์ ๋ฌํ๋ ๊ธฐ๋ฅ.
- ์ฃผ๋ก ๋คํธ์ํฌ ์ธ๋ถ์์ ๋คํธ์ํฌ ๋ด๋ถ๋ก ํต์ ์ ์์ํ ๋, ๋คํธ์ํฌ ๋ด๋ถ์ ์๋ฒ๋ฅผ ์ธ๋ถ์์ ์ ์ํ ์ ์๋๋ก ์ ์ ์ ๋ณด๋ฅผ ๊ณต๊ฐํ ์ํด ์์ฃผ ์ฌ์ฉ๋๋ค.
ICMP(Internet Control Message Protocol)
- IP์ ์ ๋ขฐํ ์ ์๋ ์ ์ก ํน์ฑ๊ณผ ๋น์ฐ๊ฒฐํ ์ ์ก ํน์ฑ์ ๋ณด์ํ๊ธฐ ์ํ ๋คํธ์ํฌ ๊ณ์ธต์ ํ๋กํ ์ฝ.
- IP ํจํท์ ์ ์ก ๊ณผ์ ์ ๋ํ ํผ๋๋ฐฑ ๋ฉ์์ง๋ฅผ ์ป๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ๋กํ ์ฝ.
- ์ ์ก ๊ณผ์ ์์ ๋ฐ์ํ ๋ฌธ์ ์ํฉ์ ๋ํ ์ค๋ฅ ๋ณด๊ณ ๋ฉ์์ง
- ๋คํธ์ํฌ์ ๋ํ ์ง๋จ ์ ๋ณด ๋ฉ์์ง
- ICMP ๋ฉ์์ง๋ ํ์ ๊ณผ ์ฝ๋๋ก ์ ์๋๋ฉฐ, ICMP ํจํท ํค๋์ ํฌํจ๋์ด ์๋ ์ ๋ณด์ด๋ค.
- ํจํท ํค๋์ ํ์ ํ๋์๋ ICMP ๋ฉ์์ง์ ์ ํ์ด ๋ฒํธ๋ก ๋ช ์๋๊ณ , ์ฝ๋ ํ๋์๋ ๊ตฌ์ฒด์ ์ธ ๋ฉ์์ง ๋ด์ฉ์ด ๋ฒํธ๋ก ๋ช ์๋๋ค.
- ์ ์ํ ์ ์ ICMP๊ฐ IP์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ๊ฒ์ ์๋๋ผ๋ ๊ฒ์ด๋ค. ICMP๋ ์ด๋๊น์ง๋ IP์ ์ ๋ขฐํ ์ ์๋ ํน์ฑ์ ๋ณด์ํ๊ธฐ ์ํ '๋์ฐ๋ฏธ' ์ญํ ๋ง์ ํ ๋ฟ, ์ฌ์ ํ IP ํจํท์ ์์ ์ง๊น์ง ๋๋ฌํ์ง ๋ชปํ๊ฑฐ๋ ICMP ๋ฉ์์ง๋ฅผ ๋ด์ ํจํท ์์ฒด๊ฐ ์ก์ ์ง๊น์ง ๋๋์์ค์ง ๋ชป ํ ์ ์๋ค.(RFC 792)
- ์ ๋ขฐ์ฑ์ ์์ ํ ๋ณด์ฅํ๊ธฐ ์ํด์๋ ์์ ๋งํ ์ ์ก ๊ณ์ธต์ ํ๋กตํ ์ฝ์ด ํ์ํ๋ค.
04-2 TCP์ UDP
TCP ํต์ ๋จ๊ณ์ ์ธ๊ทธ๋จผํธ ๊ตฌ์กฐ
- TCP(Transmission Control Protocol)๋ ์ ๋ขฐํ ์ ์๋ ํต์ ์ ์ํ ์ฐ๊ฒฐํ ํ๋กํ ์ฝ.
- ํต์ ์ ์ฐ๊ฒฐ ์๋ฆฝ๊ณผ ์ข ๋ฃ ๊ณผ์ ์ด ์๊ณ , ์ค๋ฅ ์ ์ด๋ฅผ ์ํ ์ฌ์ ์ก, ํ๋ฆ ์ ์ด, ํผ์ก ์ ์ด ๋ฑ์ ๊ด๋ จ ๊ธฐ๋ฅ๋ค์ด ์๋ค.
- TCP ํต์ ์ ํฌ๊ฒ ์ธ ๋จ๊ณ๋ก ๋๋๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
- MSS(Maximum Segment Size)๋ผ๋ ๋จ์๋ TCP๋ก ์ ์กํ ์ ์๋ ์ต๋ ํ์ด๋ก๋ ํฌ๊ธฐ๋ฅผ ์๋ฏธํ๋ค.
- ๋จ, MSS์ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํ ๋ TCP ํค๋ ํฌ๊ธฐ๋ ์ ์ธ.
- ํค๋ ํฌ๊ธฐ๊น์ง ํฌํจํ๋ ๋จ์์ธ MTU์๋ ๋์กฐ์ ์ด๋ค.
TCP ์ธ๊ทธ๋จผํธ ํค๋ ๊ตฌ์กฐ
- ์ก์์ ์ง ํฌํธ: ์ก์ ์ง ๋๋ ์์ ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ณํ๋ ํฌํธ ๋ฒํธ๊ฐ ๋ช ์๋๋ ํ๋.
- ์์ ๋ฒํธ: ์ก์์ ๋๋ ์ธ๊ทธ๋จผํธ์ ์ฌ๋ฐ๋ฅธ ์์๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด ์ธ๊ทธ๋จผํธ ๋ฐ์ดํฐ์ ์ฒซ ๋ฐ์ดํธ์ ๋ถ์ฌ๋๋ ๋ฒํธ.
- ์ฐ๊ฒฐ ์๋ฆฝ ์ดํ ๋ฐ์ดํฐ๋ฅผ ์ก์ ํ๋ ๋์ ์์ ๋ฒํธ๋ ์ก์ ํ ๋ฐ์ดํธ๋ฅผ ๋ํด ๊ฐ๋ ํํ๋ก ๋์ ๊ฐ์ ๊ฐ์ง๋ค.
- ์์ ๋ฒํธ = ์ด๊ธฐ ์์ ๋ฒํธ + ์ก์ ํ ๋ฐ์ดํธ ์
- ํ์ธ ์๋ต ๋ฒํธ: ์๋ ํธ์คํธ๊ฐ ๋ณด๋ธ ์ธ๊ทธ๋จผํธ์ ๋ํ ์๋ต์ผ๋ก, ๋ค์์ผ๋ก ์์ ํ๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ์์ ๋ฒํธ๊ฐ ๋ช
์.
- ์์ ๋ฒํธ์ ๋ํ ์๋ต์ผ๋ก, ์ผ๋ฐ์ ์ผ๋ก '์์ ํ ๋ฒํธ + 1'๋ก ์ค์ ๋๋ค.
- ์ ์ด ๋นํธ: ํ๋๊ทธ ๋นํธ๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ, ํ์ฌ ์ธ๊ทธ๋จผํธ์ ๋ํ ๋ถ๊ฐ ์ ๋ณด๋ฅผ ๋ํ๋ธ๋ค.
- ACK: ์ธ๊ทธ๋จผํธ์ ์น์ธ์ ๋ํ๋ด๊ธฐ ์ํ ๋นํธ
- SYN: ์ฐ๊ฒฐ์ ์๋ฆฝํ๊ธฐ ์ํ ๋นํธ
- FIN: ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ธฐ ์ํ ๋นํธ
- ์๋์ฐ: ์์ ์๋์ฐ์ ํฌ๊ธฐ๊ฐ ๋ช ์. ์์ ์๋์ฐ๋ ํ ๋ฒ์ ์์ ํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์.
TCP ์ฐ๊ฒฐ ์๋ฆฝ๊ณผ ์ข ๋ฃ
์ฐ๊ฒฐ ์๋ฆฝ: ์ฐ๋ฆฌ ์จ์ด ํธ๋์ ฐ์ดํฌ(three-way handsake)
- ์ธ ๊ฐ์ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ง TCP์ ์ฐ๊ฒฐ ์๋ฆฝ ๊ณผ์ .
- ์ฒ์ ์ฐ๊ฒฐ์ ์์ํ๋ ํธ์คํธ์ ์ฐ๊ฒฐ ์๋ฆฝ ๊ณผ์ ์ ์กํฐ๋ธ ์คํ์ด๋ผ ํ๋ฉฐ, ํด๋ผ์ด์ธํธ์ ์ํด ์ํ๋๋ค.
- ๋ฐ๋๋ก ์ฐ๊ฒฐ ์์ฒญ์ ๋ฐ๊ณ ๋์ ์์ฒญ์ ๋ฐ๋ผ ์ฐ๊ฒฐ์ ์๋ฆฝํด ์ฃผ๋ ํธ์คํธ์ ์ฐ๊ฒฐ ์๋ฆฝ ๊ณผ์ ์ ํจ์๋ธ ์คํ์ด๋ผ๊ณ ํ๋ฉฐ, ์๋ฒ์ ์ํด ์ํ๋๋ค.
- ์ฐ๋ฆฌ ์จ์ด ํธ๋์ ฐ์ดํฌ๋ฅผ ํตํด ์ฐ๊ฒฐ์ ์๋ฆฝํ ๋ค ๋ฐ์ดํฐ ์ก์์ ์ด ๋๋ฌ๋ค๋ฉด, ์ฐ๊ฒฐ์ ์ข ๋ฃํด์ผ ํ๋ค.
- ์ก์์ ํธ์คํธ๊ฐ FIN๊ณผ ACK๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ์ด๋ฃจ์ด์ง๋ค.
- ์กํฐ๋ธ ํด๋ก์ฆ๋ ๋จผ์ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๋ ค๋ ํธ์คํธ์ ์ํด ์ํ๋๋ค.
- ๋ฐ๋ฉด ํจ์๋ธ ํด๋ก์ฆ๋ ์ฐ๊ฒฐ ์ข ๋ฃ ์์ฒญ์ ๋ฐ์๋ค์ด๋ ํธ์คํธ์ ์ํด ์ํ๋๋ค.
TCP ์ํ
- TCP๋ ์ฐ๊ฒฐํ ํต์ ๊ณผ ์ ๋ขฐํ ์ ์๋ ํต์ ์ ์ ์งํ๊ธฐ ์ํด ๋ค์ํ '์ํ'๋ฅผ ์ ์งํ๋ค.
- ์ํ๋ ํ์ฌ ์ด๋ค ํต์ ๊ณผ์ ์ ์๋์ง๋ฅผ ๋ํ๋ด๋ ์ ๋ณด๋ก, TCP๋ ์ํ๋ฅผ ์ ์งํ๊ณ ํ์ฉํ๋ค๋ ์ ์์
์คํ ์ดํธํ(stateful) ํ๋กํ ์ฝ์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
- ์ฐ๊ฒฐ์ด ์๋ฆฝ๋์ง ์์ ์ํ
- CLOSED: ์๋ฌด๋ฐ ์ฐ๊ฒฐ์ด ์๋ ์ํ.
- LISTEN: ์ผ์ข ์ ์ฐ๊ฒฐ ๋๊ธฐ ์ํ. ์ผ๋ฐ์ ์ผ๋ก ์๋ฒ๋ก์ ๋์ํ๋ ํจ์๋ธ ์คํ ํธ์คํธ๋ LISTEN ์ํ๋ฅผ ์ ์ง.
- ์ฆ, ์กํฐ๋ธ ์คํ ํธ์คํธ(ํด๋ผ์ด์ธํธ)๊ฐ LISTEN ์ํ์ธ ํธ์คํธ(์๋ฒ)์๊ฒ SYN ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ด๋ฉด ์ฐ๋ฆฌ ์จ์ด ํธ๋์ ฐ์ดํฌ๊ฐ ์์.
- ์ฐ๊ฒฐ ์๋ฆฝ ์ํ
- SYN-SENT: ์กํฐ๋ธ ์คํ ํธ์คํธ๊ฐ SYN ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ ๋ค ๊ทธ์ ๋ํ ์๋ต์ธ SYN + ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ.
- SYN-RECEIVED: ํจ์๋ธ ์คํ ํธ์คํธ๊ฐ SYN + ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ ๋ค ๊ทธ์ ๋ํ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ.
- ESTABLISHED: ์ฐ๊ฒฐ์ด ํ๋ฆฝ๋์์์ ๋ํ๋ด๋ ์ํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ ์ ์๋ ์ํ.
์ฐ๋ฆฌ ์จ์ด ํธ๋์ ฐ์ดํฌ ๊ด์ ์์ ๋ ํธ์คํธ๊ฐ ๋ง์ง๋ง ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด ESTABLISHED ์ํ๋ก ์ ์ด๋ค๊ฒ ๋๋ค.
- ์ฐ๊ฒฐ ์ข
๋ฃ ์ํ
- FIN-WAIT-1: ์ผ๋ฐ์ ์ธ TCP ์ฐ๊ฒฐ ์ข ๋ฃ ๊ณผ์ ์ ์์ด FIN-WAIT-1์ ์ฐ๊ฒฐ ์ข ๋ฃ์ ์ฒซ ๋จ๊ณ. FIN ์ธ๊ทธ๋จผํธ๋ก์ ์ฐ๊ฒฐ ์ข ๋ฃ ์์ฒญ์ ๋ณด๋ธ ์กํฐ๋ธ ํด๋ก์ฆ ํธ์คํธ๋ FIN-WAIT-1 ์ํ๋ก ์ ์ด๋ค๊ฒ ๋๋ค.
- CLOSE-WAIT: ์ข
๋ฃ ์์ฒญ์ธ FIN ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ์ ํจ์๋ธ ํด๋ก์ฆ ํธ์คํธ๊ฐ
๊ทธ์ ๋ํ ์๋ต์ผ๋ก ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ ํ ๋๊ธฐํ๋ ์ํ. - FIN-WAIT-2: FIN-WAIT-1 ์ํ์์ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ๊ฒ ๋๋ฉด FIN-WAIT-2 ์ํ๊ฐ ๋๋ค.
์๋ ํธ์คํธ์ FIN ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ. - LAST-ACK: CLOSE-WAIT ์ํ์์ FIN ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ ๋ค ์ด์ ๋ํ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ.
- TIME-WAIT: ์กํฐ๋ธ ํด๋ก์ฆ ํธ์คํธ๊ฐ FIN ์ธ๊ทธ๋จผํธ๋ฅผ ์์ ํ ๋ค, ์ด์ ๋ํ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ ๋ค ์ ์ด๋๋ ์ํ.
ํจ์๋ธ ํด๋ก์ฆ ํธ์คํธ๊ฐ ๋ง์ง๋ง ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์์ ํ๋ฉด CLOSED ์ํ๋ก ์ ์ดํ๋ ๋ฐ๋ฉด, TIME-WAIT ์ํ์ ์ ์ด๋ ์กํฐ๋ธ ํด๋ก์ฆ ํธ์คํธ๋ ์ผ์ ์๊ฐ์ ๊ธฐ๋ค๋ฆฐ ๋ค CLOSED ์ํ๋ก ์ ์ดํ๋ค. - CLOSING: ๋์์ ์ฐ๊ฒฐ์ ์ข
๋ฃํ๋ ค ํ ๋ ์ ์ด๋๋ ์ํ. ์๋ก๊ฐ FIN ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ด๊ณ ๋ฐ์ ๋ค ๊ฐ์ ๊ทธ์ ๋ํ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋์ง๋ง, ์์ง ์์ ์ FIN ์ธ๊ทธ๋จผํธ์ ๋ํ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ์ง ๋ชปํ์ ๋ ์ ์ด๋๋ ์ํ.
์์ชฝ ๋ชจ๋๊ฐ ์ฐ๊ฒฐ ์ข ๋ฃ๋ฅผ ์์ฒญํ๊ณ , ์๋ก์ ์ข ๋ฃ ์๋ต์ ๊ธฐ๋ค๋ฆฐ ๊ฒฝ์ฐ CLOSING ์ํ๋ก ์ ์ด๋๋ ๊ฒฝ์ฐ, ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์์ ํ๋ค๋ฉด ๊ฐ์ TIME-WAIT ์ํ๋ก ์ ์ด๋ ๋ค ์ข ๋ฃํ๊ฒ ๋๋ค.
UDP ๋ฐ์ดํฐ๊ทธ๋จ ๊ตฌ์กฐ
- UDP(User Datagram Protocol)๋ TCP์ ๋ฌ๋ฆฌ ๋น์ฐ๊ฒฐํ ํต์ ์ ์ํํ๋ ์ ๋ขฐํ ์ ์๋ ํ๋กํ ์ฝ.
- ๊ทธ๋์ ์ฐ๊ฒฐ ์๋ฆฝ ๋ฐ ํด์ , ์ฌ์ ์ก์ ํตํ ์ค๋ฅ ์ ์ด, ํผ์ก ์ ์ด, ํ๋ฆ ์ ์ด ๋ฑ์ ์ํํ์ง ์๋๋ค.
- TCP์ฒ๋ผ ์ํ๋ฅผ ์ ์งํ์ง๋ ์์ UDP๋ฅผ ์คํ ์ดํธ๋ฆฌ์ค(stateless) ํ๋กํ ์ฝ์ ์ผ์ข ์ด๋ผ๊ณ ๋ ํ๋ค.
- UDP ๋ฐ์ดํฐ๊ทธ๋จ ์ฃผ๊ณ ๋ TCP์ ๋นํด ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ด ์ ์ ๋งํผ ํ๋๋ ๋จ์ํ๋ค.
- ์ก์์ ์ง ํฌํธ: ์ก์์ ์ง ํฌํธ ๋ฒํธ๊ฐ ๋ด๊ธด๋ค.
- ๊ธธ์ด: ํค๋๋ฅผ ํฌํจํ UDP ๋ฐ์ดํฐ๊ทธ๋จ์ ๋ฐ์ดํธ๊ฐ ๋ด๊ธด๋ค.
- ์ฒดํฌ์ฌ: ๋ฐ์ดํฐ๊ทธ๋จ ์ ์ก ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง ๊ฒ์ฌํ๊ธฐ ์ํ ํ๋. ์์ ์ง๋ ์ด ํ๋์ ๊ฐ์ ํ ๋๋ก ๋ฐ์ดํฐ๊ทธ๋จ์ ์ ๋ณด๊ฐ ํผ์๋์๋์ง๋ฅผ ํ๋จํ๊ณ , ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ๋จํ ๋ฐ์ดํฐ๊ทธ๋จ์ ํ๊ธฐํ๋ค.
- UDP๋ TCP์ ๋นํด ์ ์ ์ค๋ฒํค๋๋ก ํจํท์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค. ๊ทธ๋์ ์ฃผ๋ก ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ์๋น์ค, ์ธํฐ๋ท ์ ํ์ฒ๋ผ ์ค์๊ฐ์ฑ์ด ๊ฐ์กฐ๋๋ ์ํฉ์์ TCP๋ณด๋ค ๋ ๋ง์ด ์ฐ์ธ๋ค.
- TCP์ ์ ์ก๋ฐฉ์์ด ์์ ์ง์ 'ํ๋์ฉ ํ์คํ๊ฒ ์ ๋ฌํ๋' ๊ฒ๊ณผ ๊ฐ๋ค๋ฉด,
UDP์ ์ ์ก๋ฐฉ์์ ์์ ์ง์ ํจํท๋ค์ '๋น ๋ฅด๊ฒ ๋ง๊ตฌ ๋์ง๋' ๊ฒ๊ณผ ๊ฐ์ผ๋ฉฐ,
๊ทธ ๊ณผ์ ์์ ํจํท์ด ์์ค๋๊ฑฐ๋ ํจํท์ ์์๊ฐ ๋ฐ๋ ์๋ ์๋ค.
04-3 TCP์ ์ค๋ฅโํ๋ฆโํผ์ก ์ ์ด
TCP์ ๋ฐ์ดํฐ ์ก์์ ๊ณผ์ ์์์ ์ค๋ฅ ์ ์ด, ํ๋ฆ ์ ์ด, ํผ์ก ์ ์ด๋ ๋ชจ๋ TCP์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๊ธฐ๋ฅ์ด๋ค.
TCP๋ ์ฌ์ ์ก์ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ ์ค๋ฅ๋ฅผ ์ ์ดํ๊ณ , ํ๋ฆ ์ ์ด๋ฅผ ํตํด ์ฒ๋ฆฌํ ์ ์์ ๋งํผ์ ๋ฐ์ดํฐ๋ง์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ,
ํผ์ก ์ ์ด๋ฅผ ํตํด ๋คํธ์ํฌ๊ฐ ํผ์กํ ์ ๋์ ๋ฐ๋ผ ์ ์ก๋์ ์กฐ์ ํ๋ค.
์ค๋ฅ ์ ์ด: ์ฌ์ ์ก ๊ธฐ๋ฒ
- ์ ๋ขฐ์ฑ ๋ณด์ฅ์ ์ํด ์ค๋ฅ๋ฅผ ์ ์ดํ ์ ์์ด์ผ ํ๋ค.
- ์ด๋ฅผ ์ํด TCP๋ ์๋ชป๋ ์ธ๊ทธ๋จผํธ๋ฅผ ์ฌ์ ์กํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
- ์ฒดํฌ์ฌ ํ๋๋ ์ธ๊ทธ๋จผํธ์ ํผ์ ์ฌ๋ถ๋ง ๋ํ๋ด๊ธฐ ๋๋ฌธ์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ๋ ๋ถ์กฑํ๋ค.
- ์ฒดํฌ์ฌ ๋ถ์ด ์๋ชป๋์๋ค๋ฉด ํธ์คํธ๋ ํด๋น ํจํท์ ์ฝ์ง ์๊ณ ํ๊ธฐํ๊ธฐ ๋๋ฌธ์ด๋ค.
- TCP๊ฐ ์ ๋ขฐ์ฑ์ ์ ๋๋ก ๋ณด์ฅํ๋ ค๋ฉด
- ์ก์ ํธ์คํธ๊ฐ ์ก์ ํ ๊ฒ์ค๋จผํธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ ์ธ์งํ ์ ์์ด์ผ ํ๋ค.
- ์ค๋ฅ๋ฅผ ๊ฐ์งํ๊ฒ ๋๋ฉด ํด๋น ์ธ๊ทธ๋จผํธ๋ฅผ ์ฌ์ ์กํ ์ ์์ด์ผ ํ๋ค.
- TCP๊ฐ ์ค๋ฅ๋ฅผ ๊ฒ์ถํ๊ณ ์ธ๊ทธ๋จผํธ๋ฅผ ์ฌ์ ์กํ๋ ์ํฉ ๋ ๊ฐ์ง
- ์ค๋ณต๋ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์์ ํ์ ๋
- ํ์์์์ด ๋ฐ์ํ์ ๋
1. ์ค๋ณต๋ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์์ ํ์ ๋
- ์์ ํธ์คํธ ์ธก์ด ๋ฐ์ ์ธ๊ทธ๋จผํธ์ ์์ ๋ฒํธ ์ค์์ ์ผ๋ถ๊ฐ ๋๋ฝ๋์๋ค๋ฉด ์ค๋ณต๋ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๋ค.
- RTT(Round Trip Time): ๋ฉ์์ง๋ฅผ ์ ์กํ ๋ค ๊ทธ์ ๋ํ ๋ต๋ณ์ ๋ฐ๋ ๋ฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ
2. ํ์์์์ด ๋ฐ์ํ์ ๋
- TCP ์ธ๊ทธ๋จผํธ๋ฅผ ์ก์ ํ๋ ํธ์คํธ๋ ๋ชจ๋ ์ฌ์ ์ก ํ์ด๋จธ(retransmission timer)๋ผ๋ ๊ฐ์ ์ ์งํ๋ค.
- ํ์์์(timeout): ํธ์คํธ๊ฐ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ ๋๋ง๋ค ์ฌ์ ์ก ํ์ด๋จธ๋ฅผ ์์ํ๊ฒ ๋๋๋ฐ, ์ด ํ์ด๋จธ์ ์นด์ดํธ๋ค์ด์ด ๋๋ ์ํฉ.
- ํ์์์์ด ๋ฐ์ํ ๋๊น์ง ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ์ง ๋ชปํ๋ฉด ์ธ๊ทธ๋จผํธ๊ฐ ์๋ ํธ์คํธ์๊ฒ ์ ์์ ์ผ๋ก ๋์ฐฉํ์ง ์์๋ค๊ณ ๊ฐ์ฃผํ์ฌ ์ธ๊ทธ๋จผํธ๋ฅผ ์ฌ์ ์กํ๋ค.
ARQ(Automatic Repeat Request): ์๋ ์ฌ์ ์ก ์๊ตฌ
- ์์ ํธ์คํธ์ ๋ต๋ณ(ACK)๊ณผ ํ์์์ ๋ฐ์์ ํ ๋๋ก ๋ฌธ์ ๋ฅผ ์ง๋จํ๊ณ , ๋ฌธ์ ๊ฐ ์๊ธด ๋ฉ์์ง๋ฅผ ์ฌ์ ์กํจ์ผ๋ก์จ ์ ๋ขฐ์ฑ์ ํ๋ณดํ๋ ๋ฐฉ์.
- Stop-and-Wait ARQ, Go-Back-N ARQ, Selective Repeat ARQ ๊ฐ ๋ํ์ ์ธ ์ธ ๊ฐ์ง ARQ ๋ฐฉ์์ด๋ค.
Stop-and-Wait ARQ
- ARQ ์ค ๊ฐ์ฅ ๋จ์ํ ๋ฐฉ์์ผ๋ก, ์ ๋๋ก ์ ๋ฌํ์์ ํ์ธํ๊ธฐ ์ ๊น์ง๋ ์๋ก์ด ๋ฉ์์ง๋ฅผ ๋ณด๋ด์ง ์๋ ๋ฐฉ์.
- ๋ฉ์์ง๋ฅผ ์ก์ ํ๊ณ , ์ด์ ๋ํ ํ์ธ ์๋ต์ ๋ฐ๊ณ , ๋ค์ ๋ฉ์์ง๋ฅผ ์ก์ ํ๊ณ , ์ด์ ๋ํ ํ์ธ ์๋ต์ ๋ฐ๋ ๊ฒ์ ๋ฐ๋ณต.
- ๋จ์ํ๊ณ ๋์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ๋ฐฉ์์ด์ง๋ง, ๋คํธ์ํฌ์ ์ด์ฉ ํจ์จ์ด ๋ฎ์์ง๊ณ ์ฑ๋ฅ์ ์ ํ๋ก ์ด์ด์ง ์ ์๋ค.
Go-Back-N ARQ
- ํ์ดํ๋ผ์ด๋ ๋ฐฉ์์ ํ์ฉํด ์ฌ๋ฌ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๊ณ , ๋์ค์ ์๋ชป ์ ์ก๋ ์ธ๊ทธ๋จผํธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํด๋น ์ธ๊ทธ๋จผํธ๋ถํฐ ์ ๋ถ ๋ค์ ์ ์กํ๋ ๋ฐฉ์.
- ํ์ดํ๋ผ์ด๋(pipelining): ์ฐ์ํด์ ๋ฉ์์ง๋ฅผ ์ ์กํ ์ ์๋ ๊ธฐ์
- ์์ ๋ฒํธ n+2๋ฒ ์ธ๊ทธ๋จผํธ๊ฐ ์ ์ก ๊ณผ์ ์์ ์ ์ค๋์๋ค๋ฉด, ์์ ํธ์คํธ๋ ๊ทธ ์ธ ๋ชจ๋ ์ธ๊ทธ๋จผํธ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์์ ํ๋ค ํด๋ ์ด๋ฅผ ํ๊ธฐ.
- ์ก์ ํธ์คํธ๋ n+2๋ฒ ์ธ๊ทธ๋จผํธ์ ๋ํ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ์ง ๋ชปํ๊ธฐ์ ํ์์์์ด ๋ฐ์ํ๊ณ , ์๋ชป๋ ์ก์ ์ด ์์์ ์ธ์ง.
- ๋ฐ๋ผ์ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์์ ๋ฐ์ง ๋ชปํ n+2๋ฒ ์ธ๊ทธ๋จผํธ๋ถํฐ ๋ค์ ์ ์กํ๊ฒ ๋๋ค.
- ์ด๋ฅผ ํตํด Go-Back-N ARQ์์ ์์ ๋ฒํธ n๋ฒ์๋ํ ACK ์ธ๊ทธ๋จผํธ๋ 'n๋ฒ๊น์ง์' ํ์ธ ์๋ต์ด๋ผ๊ณ ๋ณผ ์ ์์ผ๋ฉฐ, ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋์ ํ์ธ ์๋ต(CACK: Cumulative Acknowledgement)๋ผ๊ณ ํ๋ค.
- ๋น ๋ฅธ ์ฌ์ ์ก(fast retransmit): ์ฌ์ ์ก ํ์ด๋จธ๊ฐ ๋ง๋ฃ๋๊ธฐ ์ ์ด๋ผ๋ ์ธ ๋ฒ์ ACK ์ธ๊ทธ๋จผํธ๊ฐ ์์ ๋์๋ค๋ฉด ํด๋น ์ธ๊ทธ๋จผํธ๋ฅผ ๊ณง๋ฐ๋ก ์ฌ์ ์กํ๋ ๊ธฐ๋ฅ.
Selective Repeat ARQ
- ์ ํ์ ์ผ๋ก ์ฌ์ ์กํ๋ ๋ฐฉ๋ฒ.
- ์์ ํธ์คํธ ์ธก์์ ์ ๋๋ก ์ ์ก๋ฐ์ ๊ฐ๊ฐ์ ํจํท๋ค์ ๋ํด ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ด๋ ๋ฐฉ์ -> ๊ฐ๋ณ ํ์ธ ์๋ต(Selective Acknowledgement)
- ์ก์ ํธ์คํธ๋ ์ฌ๋ฐ๋ฅด๊ฒ ์์ ๋ฐ์ง ๋ชปํ ACK ์ธ๊ทธ๋จผํธ๊ฐ ์๋์ง ๊ฒ์ฌํ๊ณ , ๋ง์ผ ์๋ต๋ฐ์ง ๋ชปํ ์ธ๊ทธ๋จผํธ๊ฐ ์กด์ฌํ๋ค๋ฉด ํด๋น ์ธ๊ทธ๋จผํธ๋ฅผ ์ฌ์ ์กํ๋ค.
ํ๋ฆ ์ ์ด: ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- TCP์ ํ๋ฆ ์ ์ด๋ ์ก์ ํธ์คํธ๊ฐ ์์ ํธ์คํธ์ ์ฒ๋ฆฌ ์๋๋ฅผ ๊ณ ๋ คํ๋ฉฐ ์ก์์ ์๋๋ฅผ ๊ท ์ผํ๊ฒ ์ ์งํ๋ ๊ฒ์ ์๋ฏธ.
- ์๋์ฐ: ์ก์ ํธ์คํธ๊ฐ ํ์ดํ๋ผ์ด๋ ํ ์ ์๋ ์ต๋๋. ์๋์ฐ์ ํฌ๊ธฐ๋งํผ ํ์ธ ์๋ต์ ๋ฐ์ง ์๊ณ ๋ ํ ๋ฒ์ ์ ์ก ๊ฐ๋ฅํ๋ค.
- ์์ ํธ์คํธ๋ TCP ํค๋(์๋์ฐ ํ๋)๋ฅผ ํตํด ์ก์ ํธ์คํธ์๊ฒ ์์ ์ด ๋ฐ์๋ค์ด๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์์ ์๋ฆผ.
- ์ก์ ํธ์คํธ๋ ์ด ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์์ ํธ์คํธ์ ์ฒ๋ฆฌ ์๋์ ๋ฐ๋ง์ถฐ ๊ท ์ผํ ์๋๋ก ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์ก.
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ: ํ์ดํ๋ผ์ด๋ ๊ณผ์ ์์ ์ก์์ ์๋์ฐ๊ฐ ์ ์ฐจ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฏธ๋๋ฌ์ง๋ฏ ์์ง์ด๋ ์ค๋๋ ์ TCP ํ๋ฆ ์ ์ด.
ํผ์ก ์ ์ด(congestion control)
- ๋ง์ ํธ๋ํฝ์ผ๋ก ์ธํด ํจํท์ ์ฒ๋ฆฌ ์๋๊ฐ ํ์ด์ง๊ฑฐ๋ ์ ์ค๋ ์ฐ๋ ค๊ฐ ์๋ ๋คํธ์ํฌ ์ํฉ์ ์ ์ดํ๊ธฐ ์ํ ๊ธฐ๋ฅ.
- ์ก์ ํธ์คํธ๋ ๋คํธ์ํฌ ํผ์ก๋๋ฅผ ํ๋จํ๊ณ ํผ์กํ ์ ๋์ ๋ง์ถฐ ์ ๋์ ์ผ๋ก ์ ์ก๋์ ์กฐ์ ํ๋ฉฐ ์ ์กํ๋ค.
- ํผ์ก ์๋์ฐ: ํผ์ก ์์ด ์ ์กํ ์ ์์ ๋ฒํ ๋ฐ์ดํฐ์.
- ํผ์ก ์๋์ฐ์ ํฌ๊ธฐ๋ ํผ์ก ์ ์ด ์๊ณ ๋ฆฌ์ฆ์ ํตํด ๊ฒฐ์ ๋๋ค.
ํผ์ก ์ ์ด ์๊ณ ๋ฆฌ์ฆ
AIMD(Addictive Invcrease/Multiplicative Decrease)
- 'ํฉ์ผ๋ก ์ฆ๊ฐ, ๊ณฑ์ผ๋ก ๊ฐ์'
- ํผ์ก์ด ๊ฐ์ง๋์ง ์๋ ๋ค๋ฉด ํผ์ก ์๋์ฐ๋ฅผ RTT๋ง๋ค 1์ฉ ์ ํ์ ์ผ๋ก ์ฆ๊ฐํ๊ณ ,
- ํผ์ก์ด ๊ฐ์ง๋๋ฉด ํผ์ก ์๋์ฐ๋ฅผ ์ ๋ฐ์ผ๋ก ๋จ์ด๋จ๋ฆฌ๋ ๋์์ ๋ฐ๋ณตํ๋ ํฑ๋๋ชจ์์ ์๊ณ ๋ฆฌ์ฆ.
- AIMD ์๊ณ ๋ฆฌ์ฆ์ ๋ ์ ๊ตํ๊ฒ ๋ง๋ค ํผ์ก ์ ์ด ์๊ณ ๋ฆฌ์ฆ ์ธ ๊ฐ์ง
- ๋๋ฆฐ ์์
- ํผ์ก ํํผ
- ๋น ๋ฅธ ํ๋ณต
๋๋ฆฐ ์์(slow start) ์๊ณ ๋ฆฌ์ฆ
- AIMD ๋ฐฉ์์ ์ฒ์ ์ฐ๊ฒฐ์ด ์๋ฆฝ๋ ๋ค ํผ์ก ์๋์ฐ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐ๋๋ ์๋๊ฐ ๋๋ฆฌ๋ค.
- ์ ํ์ ์ผ๋ก ํผ์ก ์๋์ฐ๋ฅผ ์ฆ๊ฐ์ํค๋ฏ๋ก ์ด๊ธฐ ์ ์ก ์๋๊ฐ ํ๋ณด๋์ง ์๋ ๊ฒ.
- ๋๋ฆฐ ์์ ์๊ณ ๋ฆฌ์ฆ์ ํผ์ก ์๋์ฐ๋ฅผ 1๋ถํฐ ์์ํด ๋ฌธ์ ์์ด ์์ ๋ ACK ์ธ๊ทธ๋จผํธ ํ๋๋น 1์ฉ ์ฆ๊ฐ์ํค๋ ๋ฐฉ์.
- ๊ฒฐ๊ณผ์ ์ผ๋ก ํผ์ก ์๋์ฐ๋ RTT ๋ง๋ค 2๋ฐฐ์ฉ ์ง์์ ์ผ๋ก ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ์ด๊ธฐ ์ ์ก ์๋๋ฅผ ์ด๋ ์ ๋ ๋น ๋ฅด๊ฒ ํ๋ณดํ ์ ์๋ค.
- ํ์ง๋ง ํผ์ก ์๋์ฐ๋ฅผ ์ธ์ ๊น์ง๋ ์ง์์ ์ผ๋ก ์ฆ๊ฐ์ํฌ ์๋ ์๋ค. ์ธ์ ๊ฐ๋ ํผ์ก ์ํฉ์ ๋ง์ฃผํ ํ๋ฅ ์ด ๋์์ง๊ธฐ ๋๋ฌธ์ด๋ค.
- ๋๋ฆฐ ์์ ์๊ณ์น(threshold): ๋๋ฆฐ ์์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ๋ ํจ๊ป ์ฌ์ฉํ๋ ๊ฐ.
- ํผ์ก ์๋์ฐ ๊ฐ์ด ๊ณ์ ์ฆ๊ฐํ๋ค๊ฐ ๋๋ฆฐ ์์ ์๊ณ์น ์ด์์ด ๋๊ฑฐ๋, ํ์์์์ด ๋ฐ์ํ๊ฑฐ๋, ์ธ ๋ฒ์ ์ค๋ณต๋ ACK ์ธ๊ทธ๋จผํธ๊ฐ ๋ฐ์ํ์ฌ ํผ์ก์ด ๊ฐ์ง๋๋ฉด ๋ค์ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ ํํ๋ค.
ํผ์ก ํํผ
- RTT๋ง๋ค ํผ์ก ์๋์ฐ๋ฅผ 1MSS(Maximum Segment Size)์ฉ ์ฆ๊ฐ์ํค๋ ์๊ณ ๋ฆฌ์ฆ.
- ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ ํ์ ์ผ๋ก ์ฆ๊ฐ.
- ๋๋ฆฐ ์์ ์๊ณ์น๋ฅผ ๋์ด์ ์์ ๋ถํฐ๋ ํผ์ก์ด ๋ฐ์ํ ์ฐ๋ ค๊ฐ ์์ผ๋ ์กฐ์ฌํด์ ํผ์ก ์๋์ฐ๋ฅผ ์ฆ๊ฐ์ํค๋ ๋ฐฉ์.
- ํผ์ก ํํผ ๋์ค ํ์์์์ด ๋ฐ์ํ๋ฉด ํผ์ก ์๋์ฐ ๊ฐ์ 1๋ก, ๋๋ฆฐ ์์ ์๊ณ์น๋ ํธ์ก์ด ๊ฐ์ง๋ ์์ ์ ํผ์ก ์๋์ฐ ๊ฐ์ ์ ๋ฐ์ผ๋ก ์ด๊ธฐํํ ๋ค ๋ค์ ๋๋ฆฐ ์์์ ์ํํ๋ค.
- ํผ์ก ํํผ ๋์ค ์ธ ๋ฒ์ ์ค๋ณต ACK ์ธ๊ทธ๋จผํธ๊ฐ ๋ฐ์๋์์ ๋๋ ํผ์ก ์๋์ฐ ๊ฐ๊ณผ ๋๋ฆฐ ์์ ์๊ณ์น๋ฅผ ๋๋ต ์ ๋ฐ์ผ๋ก ๋จ์ด๋จ๋ฆฐ ๋ค ๋น ๋ฅธ ํ๋ณต ์๊ณ ๋ฆฌ์ฆ ์ํํ๋ค.
- ์ด๋ ํ์์์์ด ๋ฐ์ํ ์ธ๊ทธ๋จผํธ๋ ์ธ ๋ฒ์ ์ค๋ณต ACK ์ธ๊ทธ๋จผํธ๊ฐ ๋ฐ์ํ ์ธ๊ทธ๋จผํธ๋ ์ฌ์ ์กํ๋ค.
๋น ๋ฅธ ํ๋ณต
- ์ธ ๋ฒ์ ์ค๋ณต๋ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์์ ํ๋ฉด ๋น ๋ฅธ ์ฌ์ ์ก๊ณผ ๋๋ถ์ด ๋น ๋ฅธ ํ๋ณต ์๊ณ ๋ฆฌ์ฆ์ด ์ํ๋๋ค.
- ๋น ๋ฅธ ํ๋ณต ์๊ณ ๋ฆฌ์ฆ์ ์ธ๋ฒ์ ์ค๋ณต ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์์ ํ์ ๋ ๋๋ฆฐ ์์์ ๊ฑด๋๋ฐ๊ณ ํผ์ก ํํผ๋ฅผ ์ํํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋น ๋ฅด๊ฒ ์ ์ก๋ฅ ์ ํ๋ณตํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ๋จ, ๋น ๋ฅธ ํ๋ณต ๋์ค์ด๋ผ๋ ํ์์์์ด ๋ฐ์ํ๋ฉด ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ 1๋ก, ๋๋ฆฐ ์์ ์๊ณ์น๋ ํผ์ก์ด ๊ฐ์ง๋ ์์ ์ ์ ๋ฐ์ผ๋ก ๋จ์ด๋จ๋ฆฐ ํ ๋ค์ ๋๋ฆฐ ์์์ ์ํํ๋ค.
'๐ฅ๏ธ CS > โก๏ธ ๋คํธ์ํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS] ํผ๊ณต๋คํธ Chapter 7. ๋คํธ์ํฌ ์ฌํ (0) | 2024.09.20 |
---|---|
[CS] ํผ๊ณต๋คํธ Chapter 5. ์์ฉ ๊ณ์ธต (0) | 2024.09.09 |
[CS] ํผ๊ณต๋คํธ Chapter 3. ๋คํธ์ํฌ ๊ณ์ธต (0) | 2024.09.02 |
[CS] ํผ๊ณต๋คํธ Chapter 2. ๋ฌผ๋ฆฌ ๊ณ์ธต๊ณผ ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต (0) | 2024.08.28 |
[CS] ํผ๊ณต๋คํธ Chapter 1. ์ปดํจํฐ ๋คํธ์ํฌ ์์ํ๊ธฐ (1) | 2024.08.26 |