Go-Back-N, Selective Repeat
๐กย Go-Back-N (GBN)
๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค๊ฐ ์ค๊ฐ์ ํ๋๊ฐ ์ฌ๋ผ์ก๋ค๋ฉด, ์ด๋ป๊ฒ ํ๋ฉด ์ข์๊น?
- ๋ฌด์จ ์ผ์ด ์๊ธฐ๋ ์ ๊ฒฝ ์ ์ฐ๊ณ ๊ณ์ ๋ณด๋ธ๋ค โ ์ ๋ขฐ์ฑ๊ณผ ๋ฉ์ด๋ณด์
- ์์ด๋ฒ๋ฆฐ ๊ฒ๋ง ๋ค์ ๋ณด๋ธ๋ค โ ์ข์ ์๊ฐ์ด์ง๋ง, ์์ง์ ์๋
- ๊ทธ ์ดํ์ ๋ณด๋ธ ๊ฒ๋ ๋ค ๋ค์ ๋ณด๋ธ๋ค โ ์ด ๋ฐฉ๋ฒ์ด Go-Back-N์ด๋ค!
Go-Back-N(GBN)์ ๋คํธ์ํฌ์์ ์์ฃผ ์ฐ์ด๋ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก ๋ฐฉ์ ์ค ํ๋๋ค. ๊ฐ๋จํ๊ฒ ๋งํด์, ํ ๊ฐ์ง ๋ฌธ์ ๋ง ์๊ฒจ๋ ๋ค์ ๋ชฝ๋ ๋ณด๋ด๋ ์คํ์ผ์ด๋ค.
GBN์ ํ ๋ฒ์ ํ๋์ฉ๋ง ๋ณด๋ด๋ ๊ฒ ์๋๋ผ, ์ฌ๋ฌ ๊ฐ์ ํจํท์ ๋์์ ์ ์กํ ์ ์๋ค. ๋จ, ์กฐ๊ฑด์ด ์๋ค. ์์ง ๋์ฐฉ ํ์ธ(ACK)์ ๋ฐ์ง ๋ชป ํ ํจํท์ด N๊ฐ ์ดํ์ฌ์ผ ํ๋ค. ํ๋ฐฐ๋ก ์๋ฅผ ๋ค๋ฉด,
base์์ง ๋์ฐฉ ํ์ธ ์ ๋ ๋งจ ์ ํ๋ฐฐnextseqnum๋ค์์ผ๋ก ๋ณด๋ผ ํ๋ฐฐ์ ๋ฒํธ
์ ๊ฐ์ด ๋น์ ํ ์ ์๋ค. GBN์์๋ ์ด ๋ ๋ฒํธ ์ฌ์ด์ ์๊ธฐ๋ ๊ณต๊ฐ์ด ๋ฐ๋ก ์๋์ฐ๋ค. ์๋์ฐ ํฌ๊ธฐ๋ N์ด๊ณ , ์ด ์ฐฝ ์์ ์๋ ๋ฒํธ๋ง ๋ณด๋ผ ์ ์๋ค. ACK๊ฐ ์ค๋ฉด ์๋์ฐ๊ฐ โ์ฅโ ์์ผ๋ก ๋ฐ๋ฆฐ๋ค.
GBN์์ ์๋์ฐ๋ ๋จ์ํ _์ด๋ฏธ ๋ณด๋ธ ํจํท_๋ง ํฌํจํ๋ ๊ฒ ์๋๋ผ ์ง๊ธ ๋ณด๋ผ ์ ์๋ ํจํท๊น์ง ํฌํจํ ๋ฒ์๋ค. ์๋์ฐ๋ ์ ์ก ๊ฐ๋ฅํ ์ํ์ค ๋ฒํธ์ ๋ฒ์ ์ ์ฒด๋ฅผ ๋ํ๋ด๋ ๊ฑฐ์ง, _๋ณด๋ธ ๊ฒ_๋ง ํฌํจ๋ ํ์คํ ๋ฆฌ๊ฐ ์๋๋ค.
GBN sender
sender๋ ์ธ ๊ฐ์ง ์ ํ์ ์ด๋ฒคํธ์ ์๋ตํด์ผ ํ๋ค.
- ์์ ๊ณ์ธต์์ ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ์ค๋ฉด (
rdt_send(data), FSM 12์ ๋ฐฉํฅ)- ์๋์ฐ์ ์ฌ์ ๊ฐ ์๋ค๋ฉด, ํจํท์ ๋ง๋ค์ด ๋ฐ๋ก ์ ์กํ๋ค.
- ์๋ค๋ฉด, ๊ทธ๋ฅ ๊ธฐ๋ค๋ฆฐ๋ค.
- ACK(๋์ฐฉ ํ์ธ)๊ฐ ์ค๋ฉด (
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt), FSM 6์ ๋ฐฉํฅ)- ๊ทธ ACK ๋ฒํธ๊น์ง ์ ์ก๋ ํจํท์ ๋ค ๋์ฐฉํ ๊ฑธ๋ก ์ฒ๋ฆฌํ๋ค.
- ์๋์ฐ๋ ์์ผ๋ก ๋น๊ธฐ๊ณ , ํ์ด๋จธ๋ ์กฐ์ ํ๋ค.
- ํ์์์์ด ๋ฐ์ํ๋ฉด (
timeout, FSM 3์ ๋ฐฉํฅ)- ์ด๋ฆ์ฒ๋ผ Go-Backํ๋ค.
- ํ์ธ๋ฐ์ง ๋ชปํ ํจํท ์ ๋ถ๋ฅผ ๋ค์ ๋ณด๋ธ๋ค.
- GBN์์๋ base์ ํด๋นํ๋ ํจํท ํ๋๋ง ํ์ด๋จธ๋ฅผ ๋๋ค.
GBN receiver
receiver ๋์์ ํ๋๋ง ๋ฐ์์ ์๊ฐ๋ณด๋ค ๊ฐ๋จํ๋ค.
- ์์๋๋ก ๋์ฐฉํ ํจํท๋ง ๋ฐ์์ ์์ ๊ณ์ธต์ ์ ๋ฌํ๊ณ , ACK๋ฅผ ๋ณด๋ธ๋ค.
- ์์๊ฐ ์ด๊ธ๋ ํจํท์ ๋ฌด์กฐ๊ฑด ๋ฒ๋ฆฌ๊ณ , ๊ฐ์ฅ ์ต๊ทผ์ ๋ฐ์ ์์๋๋ก์ ACK๋ฅผ ๋ค์ ๋ณด๋ธ๋ค.
์ ์ด๋ ๊ฒ ๊ฐ๋จํ๊ฒ ๋๋ ์ ์์๊น?
- ์์ ์๋ ๋ฐ์ดํฐ๋ฅผ _์์๋๋ก_๋ง ์ ๋ฌํ ์ ์๋ค.
- ์์ ๊ป ์ ๋ฐ์๋๋ฐ ๋ค์ ๊ป ๋ฐ์ผ๋ฉด ๊ณค๋ํ๋๊น, ๊ทธ๋ฅ ๋ฒ๋ฆฌ๊ณ ๊ธฐ๋ค๋ฆฐ๋ค.
- ์ด์ฐจํผ GBN์ ๋ค์ ์ ๋ถ ๋ณด๋ด์ค๋ค.
Go-Back-N์ ๋ํด ๊ฐ๋จํ๊ฒ ํ ์ค ์์ฝํ๋ฉด, ์์ ๊ฒ๋ค ๋์น ๋ ๋ค์ ๊ฒ๋ ๋ค์ ๋ณด๋ด๋ ํ๋กํ ์ฝ์ด๋ค. ๋น ๋ฅด๊ณ ๋จ์ํ์ง๋ง, ์ฌ์ ์ก์ด ๋ง์ ์ ์๋ค๋ ๊ฒ์ด ๋จ์ ์ด๋ค. ๋ค์์ Selective Repeat์ ๋ํด ์์๋ณด์.
๐กย Selective Repeat
Go-Back-N์์๋ ํ๋๋ผ๋ ACK๊ฐ ์ ์ค๋ฉด, ๋ค์ ๊ฑฐ๊น์ง ๋ค ๋ค์ ๋ณด๋๋ค. ๊ทธ๋ฐ๋ฐ ์๊ฐํด๋ณด๋ฉด ์ข ์๊น๋ค. ํจํท 3๋ง ์ ์ค๋๋๋ฐ 4, 5, 6๋ ๊ผญ ๋ค์ ๋ณด๋ด์ผ ํ ๊น?
๊ทธ ์๋ฌธ์ ๋ตํ ํ๋กํ ์ฝ์ด ๋ฐ๋ก Selective Repeat(์ ํ์ ์ฌ์ ์ก)์ด๋ค.
Selective Repeat(์ ํ์ ์ฌ์ ์ก)์ ์ก์ ์์ ์์ ์ ๋ชจ๋๊ฐ ์๋์ฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ ํจํท์ ๊ฐ๋ณ์ ์ผ๋ก ๊ด๋ฆฌํ๋ค. ์์ ์๋ ์์๊ฐ ๋ค๋ฐ๋ ํจํท์ ์ ์ฅํ๊ณ ๊ฐ ํจํท์ ๋ํด ๊ฐ๋ณ ACK๋ฅผ ์ ์กํ๋ค. ์ก์ ์๋ ํจํท๋ง๋ค ๋ฐ๋ก ํ์ด๋จธ๋ฅผ ์ค์ ํ๋ค.
์์ ๋ก ์ด๋ป๊ฒ ๋์ํ๋์ง ์ดํด๋ณด์.
(์๋์ฐ ํฌ๊ธฐ = 4)
- ์ก์ ์๋ ํจํท 0, 1, 2, 3 ์ ์ก
- ์์ ์๋ 0, 1์ ๋ฐ๊ณ ACK ๋ณด๋
- 2๋ ์ ์ค๋จ, 3์ ๋จผ์ ๋์ฐฉ
- GBN์ด์๋ค๋ฉด ๋ฒ๋ ธ๊ฒ ์ง๋ง, SR์ 3์ ๋ฒํผ์ ์ ์ฅํ๊ณ ACK๋ ๋ณด๋
- ์ก์ ์๋ 0, 1์ ACK๋ฅผ ๋ฐ๊ณ 4, 5 ์ ์ก
- 2๊ฐ ํ์์์์ผ๋ก ์ฌ์ ์ก๋จ โ ์์ ์ ๋์ฐฉ
- ์ด์ 2, 3, 4, 5๊น์ง ์ฐจ๋ก๋๋ก ์์ ๊ณ์ธต์ ์ ๋ฌ ๊ฐ๋ฅํ๋ค!
์ด์ฒ๋ผ ์์๊ฐ ๋ค์์ฌ๋ ๋ฌด๋์ง์ง ์๋ ๊ตฌ์กฐ๊ฐ Selective Repeat์ ์ฅ์ ์ด๋ค.
๋ฌธ์ ์
์ด๋ก ์ ์ผ๋ก๋ ์๋ฒฝํ์ง๋ง, ์ํ์ค ๋ฒํธ๊ฐ ๊ฒน์น๋ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
Selective Repeat์์๋ ํจํท๋ง๋ค ๋ฒํธ(์ํ์ค ๋ฒํธ)๊ฐ ๋ถ์ด ์๋ค. ํ์ง๋ง ์ด ๋ฒํธ๋ ๋ฌดํํ์ง ์๋ค. ์๋ฅผ ๋ค์ด 2๋นํธ๋ผ๋ฉด, ์ฌ์ฉํ ์ ์๋ ๋ฒํธ๋ 0, 1, 2, 3์ผ๋ก ์ด 4๊ฐ ๋ฟ์ด๋ค.
๊ทธ๋์ ํจํท์ ๊ณ์ ๋ณด๋ด๋ค ๋ณด๋ฉด ๋ฒํธ๊ฐ ๋ค์ 0์ผ๋ก ๋์์จ๋ค. ์ด๊ฑธ ์ํ์ค ๋ฒํธ๊ฐ ์ํํ๋ค๊ณ ๋งํ๋ค.
์๋ฅผ ๋ค์ด,
- ์ํ์ค ๋ฒํธ๊ฐ 0~3 (4๊ฐ๋ฟ)
- ์๋์ฐ ํฌ๊ธฐ = 3
๋ผ๊ณ ๊ฐ์ ํด๋ณด์.
์์ ์๊ฐ ํจํท 0์ ๋ฐ๊ณ ๋ฒํผ์ ๋ฃ์๋๋ฐ, ๊ทธ ๋ค์์ ์ก์ ์๋ ์ค๊ฐ์ ACK(ํ์ธ ๋ฉ์์ง)๋ฅผ ๋ชป ๋ฐ์๋ค๊ณ ํด๋ณด์. 0๋ฒ์ ๋ํ ํ์ธ์ ๋ฐ์ง ๋ชป ํ๊ธฐ ๋๋ฌธ์, ์๋ก์ด 0๋ฒ ํจํท์ ๋ค์ ๋ณด๋ผ ์ ์๋ค.
๋์์ ์ก์ ์๋ ๊ณ์ํด์ ๋ค์ ํจํท๋ ๋ณด๋ด๊ณ ๋ ๋ณด๋ด๊ณ .. ์ด๋ ์๊ฐ ์๋์ฐ๊ฐ ๋ฐ๋ฆฌ๋ฉด์ ์ง์ง ์๋ก์ด 0๋ฒ ํจํท์ด ๋ง๋ค์ด์ง๊ฒ ๋๋ค.
๊ทธ๋ ๊ฒ ๋๋ฉด ์์ ์๋
โ์ง๊ธ ๋์ฐฉํ 0๋ฒ ํจํท.. ์์ ์ ์ ์ฅํ 0๋ฒ์ด๋ ๊ฐ์ ํจํท์ธ๊ฐ?
์๋๋ฉด ์๋ก ๋ณด๋ธ ์์ ๋ค๋ฅธ 0๋ฒ ํจํท์ธ๊ฐ?โ
๋ผ๊ณ ์๊ฐํ๊ฒ ๋๋ค. ๋ฒํธ๋ ๋๊ฐ์ด 0์ด์ง๋ง, ์์ ์ ์์ ๋ค๋ฅธ ์ํฉ์ด ์๊ฒจ๋ฒ๋ฆฐ๋ค.
ํด๊ฒฐ์ฑ
์๊ฐ๋ณด๋ค ๊ฐ๋จํ๋ค. ์ํ์ค ๋ฒํธ์ ๋ฒ์๊ฐ ์ถฉ๋ถํ ํฌ๋ฉด ๋๋ค.
์ฆ, ์๋์ฐ ํฌ๊ธฐ๊ฐ 4๋ผ๋ฉด, ์ํ์ค ๋ฒํธ๋ ์ต์ 8๊ฐ ์ด์ ํ์ํ๋ค๋ ๊ฒ์ด๋ค. ์ด ์กฐ๊ฑด์ด ์ง์ผ์ง๋ฉด ์์ ์๋ ์๋ก์ด 0๋ฒ์ ์ ๋๋ก ๊ตฌ๋ถํ ์ ์์ ๊ฒ์ด๋ค.
๐กย ๋ง๋ฌด๋ฆฌ
Go-Back-N์ โ์ผ๋จ ์ญ ๋ณด๋ด๊ณ ์ ๋๋ฉด ์ ๋ถ ๋ค์โ๋ผ๋ฉด, Selective Repeat์ โ์ธ๋ฐ์์ด ๋ณด๋ด์ง ๋ง๊ณ , ์ง์ง ์์ด๋ฒ๋ฆฐ ๊ฒ๋ง ๋ค์โ๋ค. ๋ ๋ค ์ฅ๋จ์ ์ด ํ์คํ๊ธฐ ๋๋ฌธ์, ์ด๋ค ๊ฑธ ์ธ์ง๋ ๋คํธ์ํฌ ํ๊ฒฝ๊ณผ ์ํฉ์ ๋ฐ๋ผ ์ ํํด์ผ ํ๋ค.
| ํน์ง | Go-Back-N | Selective Repeat |
|---|---|---|
| ์ฌ์ ์ก ๋ฐฉ์ | ๋๋ฝ๋ ๊ฒ ์ดํ ๋ชจ๋ ์ฌ์ ์ก | ๋๋ฝ๋ ๊ฒ ํ๋๋ง ์ฌ์ ์ก |
| ์์ ์ ์ฒ๋ฆฌ | ์์ ์ ๋ง์ผ๋ฉด ์ ๋ถ ํ๊ธฐ | ์์ ์ ๋ง์๋ ๋ฒํผ์ ์ ์ฅ |
| ํ์ด๋จธ | ํ๋๋ง ์ด์ฉ | ํจํท๋ง๋ค ๋ฐ๋ก ํ์ด๋จธ ์ด์ |
| ์๋์ฐ ๊ด๋ฆฌ | sender๋ง ์ ๊ฒฝ ์ | sender & receiver ๋ ๋ค ์๋์ฐ ํ์ |
| ๋ณต์ก๋ | ๋น๊ต์ ๋จ์ | ๊ตฌํ์ ๋ ๋ณต์กํ์ง๋ง ํจ์จ์ |