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. ์š”์•ฝ

๊ตฌ๋ถ„
๊ธ์ •์  ํ™•์ธ (ACK)
๋ถ€์ •์  ํ™•์ธ (NACK)

๋ชฉ์ 

ํŒจํ‚ท ์„ฑ๊ณต์  ์ˆ˜์‹  ํ™•์ธ

ํŒจํ‚ท ์œ ์‹ค ํ†ต์ง€

์‚ฌ์šฉ ํ™˜๊ฒฝ

์ฃผ๋กœ ์ผ๋Œ€์ผ(Unicast) ํ†ต์‹ 

์ฃผ๋กœ ์ผ๋Œ€๋‹ค(Multicast) ํ†ต์‹ 

์žฅ์ 

์‹ ๋ขฐ์„ฑ ๋ณด์žฅ, ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€

๋†’์€ ํ™•์žฅ์„ฑ, ACK ์ž„ํ”Œ๋กœ์ „ ๋ฐฉ์ง€

์ข…๋ฅ˜

์ง€์—ฐ ACK, ๋ˆ„์  ACK, ์„ ํƒ์  ACK

NACK

ํ”„๋กœํ† ์ฝœ

TCP

UDP ๊ธฐ๋ฐ˜์˜ ํŠน์ • ํ”„๋กœํ† ์ฝœ<br>(DDS์˜ RTPS ๋“ฑ)

Last updated