ACK
ACK (Acknowledgment) ์ ํธ๋ ๋คํธ์ํฌ ํต์ ์์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ํต์ฌ ์์์ ๋๋ค. ์ด ์ ํธ๋ ๊ธ์ ์ ํ์ธ(Positive ACK)๊ณผ ๋ถ์ ์ ํ์ธ(Negative ACK, NACK)์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
1. ๊ธ์ ์ ํ์ธ (Positive ACK)
Positive ACK๋ ์์ ์๊ฐ ์ก์ ์์๊ฒ ๋ฐ์ดํฐ ํจํท์ ์ฑ๊ณต์ ์ผ๋ก ์ ๋ฐ์๋ค๊ณ ์๋ ค์ฃผ๋ ๊ธ์ ์ ์ธ ์๋ต์ ๋๋ค. ๋ง์ฝ ์ก์ ์๊ฐ ํน์ ์๊ฐ ๋ด์ ACK๋ฅผ ๋ฐ์ง ๋ชปํ๋ฉด, ํด๋น ํจํท์ ๋ค์ ๋ณด๋ ๋๋ค. ์ด๋ TCP(Transmission Control Protocol)์ ๊ฐ์ด ์ผ๋์ผ(Unicast) ํต์ ์์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
1.1 ์ง์ฐ ACK (Delayed ACK)
์์ ์๋ ๋ชจ๋ ํจํท์ ๋ํด ์ฆ์ ACK๋ฅผ ๋ณด๋ผ ํ์๊ฐ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๋ฐฉํฅ๊ณผ ACK๋ฅผ ๋ณด๋ด๋ ๋ฐฉํฅ์ด ๊ฐ์ ๊ฒฝ์ฐ, ACK๋ฅผ ์ ์ ์ง์ฐ์์ผฐ๋ค๊ฐ ๋ค์์ ๋ณด๋ผ ๋ฐ์ดํฐ์ ACK๋ฅผ ํจ๊ป ์ค์ด ๋ณด๋ผ ์ ์์ต๋๋ค. ์ด๋ฅผ **ํผ๊ธฐ๋ฐฑ(piggybacking)**์ด๋ผ๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ ๋ท(Telnet)๊ณผ ๊ฐ์ ์ํธ์์ฉ์ฑ(interactive)์ด ๋์ ํต์ ์์, ํค๋ณด๋ ์ ๋ ฅ์ ๋ํ ACK๋ฅผ ์ฆ์ ๋ณด๋ด๋ ๋์ , ์๋ฒ๊ฐ ์ ๋ ฅ ๋ด์ฉ์ ์ฒ๋ฆฌํ ํ ๋ค์ ๋ณด๋ด๋ ์๋ต ๋ฐ์ดํฐ์ ACK๋ฅผ ํจ๊ป ๋ด์ ํจ์จ์ฑ์ ๋์ ๋๋ค.
1.2 ๋์ ACK (Cumulative ACK)
TCP์ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ(Sliding Window) ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ฉด, ์ก์ ์๋ ์ฌ๋ฌ ํจํท์ ํ๊บผ๋ฒ์ ๋ณด๋ด๊ณ ํ๋์ ACK๋ฅผ ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ก์ ์๊ฐ 10๊ฐ์ ํจํท์ ์ฐ์์ผ๋ก ๋ณด๋์ ๋, ์์ ์๋ ์ฒซ ๋ฒ์งธ ํจํท์ ๋ํ ACK๋ฅผ ๋ณด๋ด๋ ๋์ , 10๊ฐ ํจํท ์ ์ฒด์ ๋ํด ํ๋์ ๋์ ACK๋ฅผ ๋ณด๋ด๋ ๋ฐฉ์์ ๋๋ค. ์ด๋ ๋๋ ๋ฐ์ดํฐ ์ ์ก(์: FTP)์์ ํจ์จ์ ์ ๋๋ค.
1.3 ์ ํ์ ACK (Selective ACK, SACK)
๋์ ACK๋ ์ค๊ฐ์ ํจํท์ด ์์ค๋์์ ๋ ๋นํจ์จ์ ์ผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 10๊ฐ์ ํจํท ์ค 3๋ฒ ํจํท๋ง ์ ์ค๋ ๊ฒฝ์ฐ, ๋์ ACK๋ 1, 2๋ฒ ํจํท๋ง ๋ฐ์๋ค๊ณ ์๋ฆฝ๋๋ค. ์ด ๊ฒฝ์ฐ ์ก์ ์๋ ์ ์ค๋ 3๋ฒ ํจํท๋ฟ ์๋๋ผ 4~10๋ฒ ํจํท๊น์ง ๋ชจ๋ ๋ค์ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค.
SACK๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. TCP ์ฐ๊ฒฐ์ ์์ํ ๋ SACK ๊ธฐ๋ฅ์ ํ์ฑํํ๋ฉด, ์์ ์๋ ์ ์ค๋ ํจํท ์ธ์ ์ ์์ ์ผ๋ก ๋ฐ์ ํจํท์ ๋ฒ์๋ฅผ ์ก์ ์์๊ฒ ์๋ ค์ค๋๋ค. ์ ์์์ ๊ฒฝ์ฐ, ์์ ์๋ "1, 2๋ฒ ํจํท์ ๋ฐ์๊ณ , 4~10๋ฒ ํจํท๋ ๋ฐ์์ต๋๋ค. 3๋ฒ ํจํท์ด ์ ์ค๋์์ต๋๋ค"๋ผ๊ณ ์๋ ค์ฃผ์ด, ์ก์ ์๊ฐ 3๋ฒ ํจํท๋ง ์ฌ์ ์กํ๋๋ก ํฉ๋๋ค.
2. ๋ถ์ ์ ํ์ธ (Negative ACK, NACK)
NACK๋ ์์ ์๊ฐ ํจํท์ด ์ ์ค๋์์์ ๊ฐ์งํ์ ๋ ๋ณด๋ด๋ ๋ถ์ ์ ์ธ ์๋ต์ ๋๋ค. NACK๋ ๋ฉํฐ์บ์คํธ(Multicast) ํต์ ์ฒ๋ผ ์์ ์๊ฐ ๋ง์ ํ๊ฒฝ์์ ํนํ ์ ์ฉํฉ๋๋ค.
๋ฉํฐ์บ์คํธ๋ ํ๋์ ์ก์ ์๊ฐ ์ฌ๋ฌ ์์ ์์๊ฒ ๋์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๋ฐฉ์์ ๋๋ค. ๋ง์ฝ ๋ชจ๋ ์์ ์๊ฐ ๋ฐ์ ํจํท์ ๋ํด ACK๋ฅผ ๋ณด๋ด๊ฒ ๋๋ฉด, ์ก์ ์๋ ์๋ง์ ACK๋ฅผ ๋์์ ๋ฐ๊ฒ ๋์ด ๋คํธ์ํฌ์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๋ ACK ์ํ๋ก์ (Implosion) ํ์์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
NACK๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
NACK ์ ์ก: ์์ ์๋ ํจํท์ด ์ ์ค๋์์ ๋๋ง ์ก์ ์์๊ฒ NACK๋ฅผ ๋ณด๋ ๋๋ค.
์ ๋์บ์คํธ/๋ฉํฐ์บ์คํธ: NACK๋ ํน์ ์์ ์์๊ฒ๋ง ์ ์ค๋ ํจํท์ ์ฌ์ ์กํ๋๋ก ์์ฒญํ๋ ์ ๋์บ์คํธ(unicast) ๋ฉ์์ง๋ก ๋ณด๋ผ ์๋ ์๊ณ , ๋ค๋ฅธ ์์ ์๋ค๋ ๋์ผํ ํจํท์ ์ ์คํ์ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ์ฌ ๋ฉํฐ์บ์คํธ(multicast) ๋ฉ์์ง๋ก ๋ณด๋ผ ์๋ ์์ต๋๋ค.
NACK ์ํ๋ก์ ๋ฐฉ์ง: ์ฌ๋ฌ ์์ ์๊ฐ ๋์์ NACK๋ฅผ ๋ณด๋ด๋ ๊ฒ์ ๋ง๊ธฐ ์ํด, NACK๋ฅผ ๋ณด๋ด๊ธฐ ์ ์ ๋ฌด์์๋ก ์ง์ฐ ์๊ฐ์ ๋์ด ๋ค๋ฅธ ์์ ์๊ฐ ๋จผ์ NACK๋ฅผ ๋ณด๋ด๋ฉด ์์ ์ NACK๋ฅผ ๋ณด๋ด์ง ์๋๋ก ํ ์ ์์ต๋๋ค.
3. ์์ฝ
๋ชฉ์
ํจํท ์ฑ๊ณต์ ์์ ํ์ธ
ํจํท ์ ์ค ํต์ง
์ฌ์ฉ ํ๊ฒฝ
์ฃผ๋ก ์ผ๋์ผ(Unicast) ํต์
์ฃผ๋ก ์ผ๋๋ค(Multicast) ํต์
์ฅ์
์ ๋ขฐ์ฑ ๋ณด์ฅ, ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ง
๋์ ํ์ฅ์ฑ, ACK ์ํ๋ก์ ๋ฐฉ์ง
์ข ๋ฅ
์ง์ฐ ACK, ๋์ ACK, ์ ํ์ ACK
NACK
ํ๋กํ ์ฝ
TCP
UDP ๊ธฐ๋ฐ์ ํน์ ํ๋กํ ์ฝ<br>(DDS์ RTPS ๋ฑ)
Last updated