50.Communication Protocol - yojulab/learn_networks GitHub Wiki
1. ํ๋กํ ์ฝ(Protocol) ๊ฐ๋
์ ์
ํ๋กํ ์ฝ์ ํต์ ์ ์ํํ๊ณ ์ ํ๋ ์ ๋จ๋ง์ด ์๋ก ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํํ๋ฅผ ์ฌ์ ์ ์ ์ํด ๋์ ๊ท์ฝ์ ๋๋ค.
์ฃผ์ ํน์ง
- ํต์ ๊ท์น๊ณผ ์ ์ฐจ๋ฅผ ๋ช ํํ ์ ์
- ๋ฐ์ดํฐ ํ์, ์ ์ก ์์, ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ ๋ฑ์ ํ์คํ
- ์๋ก ๋ค๋ฅธ ์์คํ ๊ฐ์ ์ํธ ์ด์ฉ์ฑ ๋ณด์ฅ
ํ๋กํ ์ฝ์ ๊ตฌ์ฑ ์์
- ๊ตฌ๋ฌธ(Syntax): ๋ฐ์ดํฐ์ ํ์๊ณผ ๊ตฌ์กฐ
- ์๋ฏธ(Semantics): ๊ฐ ๊ตฌ์ฑ ์์์ ์๋ฏธ์ ํด์
- ํ์ด๋ฐ(Timing): ๋ฐ์ดํฐ ์ ์ก ์์ ๊ณผ ์์
2. ๋ฐ์ดํฐ ์ ์ก ์ ํ๋ฆ ์ ์ด ๋ฐฉ๋ฒ
2.1 DTE-DCE ํ๋ฆ ์ ์ด: X-ON/X-OFF
DTE์ DCE ๊ฐ๋
- DTE (Data Terminal Equipment): ๋ฐ์ดํฐ ๋จ๋ง ์ฅ์น (์ปดํจํฐ, ํฐ๋ฏธ๋ ๋ฑ)
- DCE (Data Communication Equipment): ๋ฐ์ดํฐ ํต์ ์ฅ์น (๋ชจ๋, ํ๋ธ ๋ฑ)
X-ON/X-OFF ์ ์ด ๋ฐฉ์
- X-OFF (DC3, ASCII 19): ๋ฐ์ดํฐ ์ ์ก ์ค์ง ์ ํธ
- X-ON (DC1, ASCII 17): ๋ฐ์ดํฐ ์ ์ก ์ฌ๊ฐ ์ ํธ
- ์์ ๋ฒํผ๊ฐ ๊ฑฐ์ ์ฐฐ ๋ X-OFF๋ฅผ ๋ณด๋ด ์ก์ ์ ์ผ์ ์ค์ง
- ๋ฒํผ์ ์ฌ์ ๊ฐ ์๊ธฐ๋ฉด X-ON์ ๋ณด๋ด ์ก์ ์ฌ๊ฐ
2.2 ํ๋ ์ ์ค์ฌ ์ ์ด ๋ฐฉ๋ฒ
๋ฌด์ ์ฝ ํ๋กํ ์ฝ(Unrestricted Protocol)
- ํน์ง: ๊ฐ์ฅ ๋จ์ํ ํํ์ ํ๋กํ ์ฝ
- ๋์ ๋ฐฉ์: ์ก์ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฌด์ ํ์ผ๋ก ์ ์ก
- ๋ฌธ์ ์ : ์์ ์์ ์ฒ๋ฆฌ ์๋๋ฅผ ๊ณ ๋ คํ์ง ์์ ๋ฐ์ดํฐ ์์ค ๊ฐ๋ฅ
- ์ ์ฉ ํ๊ฒฝ: ์ด์์ ์ธ ์ฑ๋์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
์ ์ง ๋๊ธฐ ํ๋กํ ์ฝ(Stop-and-Wait Protocol)
- ํน์ง: ํ ๋ฒ์ ํ๋์ ํ๋ ์๋ง ์ ์ก
- ๋์ ๋ฐฉ์:
- ์ก์ ์๊ฐ ํ๋ ์ ์ ์ก
- ์์ ์๋ก๋ถํฐ ACK(ํ์ธ์๋ต) ๋๊ธฐ
- ACK ์์ ํ ๋ค์ ํ๋ ์ ์ ์ก
- ์ฅ์ : ๋จ์ํ๊ณ ์์ ์
- ๋จ์ : ์ ์ก ํจ์จ์ด ๋ฎ์ (๋์ญํญ ๋ญ๋น)
3. ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ํ๋กํ ์ฝ(Sliding Window Protocol)
๊ธฐ๋ณธ ๊ฐ๋
์ฌ๋ผ์ด๋ฉ ์๋์ฐ ํ๋กํ ์ฝ์ ๋ฌด์ ์ฝ ํ๋กํ ์ฝ๊ณผ ์ ์ง ๋๊ธฐ ํ๋กํ ์ฝ์ ๋ ๊ทน๋จ ์ฌ์ด์์์ ํํ์ ๋ํ๋ด๋ ํ๋กํ ์ฝ์ ๋๋ค.
ํต์ฌ ์๋ฆฌ
- ์๋์ฐ: ํ ๋ฒ์ ์ ์กํ ์ ์๋ ํ๋ ์์ ๊ฐ์
- ์ฌ๋ผ์ด๋ฉ: ํ์ธ์๋ต์ ๋ฐ์ผ๋ฉด ์๋์ฐ๊ฐ ์์ผ๋ก ์ด๋
- ํ์ดํ๋ผ์ด๋: ์ฌ๋ฌ ํ๋ ์์ ๋์์ ์ ์กํ์ฌ ํจ์จ์ฑ ํฅ์
3.1 Go-Back-N ํ๋กํ ์ฝ
๋์ ์๋ฆฌ
- ์ก์ ์๋ ์๋์ฐ ํฌ๊ธฐ๋งํผ ์ฐ์์ ์ผ๋ก ํ๋ ์ ์ ์ก
- ์์ ์๋ ์์๋๋ก ๋์ฐฉํ ํ๋ ์๋ง ์๋ฝ
- ์ค๋ฅ ๋ฐ์ ์ ํด๋น ํ๋ ์๋ถํฐ ๋ชจ๋ ํ์ ํ๋ ์์ ์ฌ์ ์ก
ํน์ง
- ์ฅ์ : ๊ตฌํ์ด ๋น๊ต์ ๊ฐ๋จ
- ๋จ์ : ๋ถํ์ํ ์ฌ์ ์ก์ผ๋ก ์ธํ ๋์ญํญ ๋ญ๋น
- ์์ ๋ฒํผ: 1๊ฐ๋ง ํ์ (์์๋๋ก๋ง ์๋ฝ)
์์ ์๋๋ฆฌ์ค
- ํ๋ ์ 0, 1, 2, 3 ์ ์ก
- ํ๋ ์ 1์์ ์ค๋ฅ ๋ฐ์
- ํ๋ ์ 1, 2, 3 ๋ชจ๋ ์ฌ์ ์ก
3.2 ์ ํ์ ๋ฐ๋ณต ํ๋กํ ์ฝ(Selective Repeat Protocol)
๋์ ์๋ฆฌ
- ์ก์ ์๋ ์๋์ฐ ํฌ๊ธฐ๋งํผ ์ฐ์์ ์ผ๋ก ํ๋ ์ ์ ์ก
- ์์ ์๋ ์ค๋ฅ๊ฐ ์๋ ํ๋ ์์ ๋ชจ๋ ์๋ฝํ์ฌ ๋ฒํผ์ ์ ์ฅ
- ์ค๋ฅ ๋ฐ์ ์ ํด๋น ํ๋ ์๋ง ์ ํ์ ์ผ๋ก ์ฌ์ ์ก
ํน์ง
- ์ฅ์ : ํจ์จ์ ์ธ ๋์ญํญ ์ฌ์ฉ (ํ์ํ ํ๋ ์๋ง ์ฌ์ ์ก)
- ๋จ์ : ๋ณต์กํ ๊ตฌํ (์ก์ ์์ ์์ ์ ๋ชจ๋ ๋ฒํผ ๊ด๋ฆฌ ํ์)
- ์์ ๋ฒํผ: ์๋์ฐ ํฌ๊ธฐ๋งํผ ํ์
์์ ์๋๋ฆฌ์ค
- ํ๋ ์ 0, 1, 2, 3 ์ ์ก
- ํ๋ ์ 1์์ ์ค๋ฅ ๋ฐ์
- ํ๋ ์ 1๋ง ์ฌ์ ์ก (0, 2, 3์ ์ด๋ฏธ ์์ ์๋ฃ)
4. ํ๋กํ ์ฝ ๋น๊ต ๋ฐ ์ ํ ๊ธฐ์ค
์ฑ๋ฅ ๋น๊ต
ํ๋กํ ์ฝ | ์ ์ก ํจ์จ | ๊ตฌํ ๋ณต์ก๋ | ๋ฒํผ ์๊ตฌ๋ | ์ ์ฉ ํ๊ฒฝ |
---|---|---|---|---|
๋ฌด์ ์ฝ | ์ต๊ณ | ์ต์ | ์ต์ | ์ด์์ ์ฑ๋ |
์ ์ง ๋๊ธฐ | ์ต์ | ๋ฎ์ | ์ต์ | ์ ๋ขฐ์ฑ ์ค์ |
Go-Back-N | ์ค๊ฐ | ์ค๊ฐ | ์ ์ | ์ผ๋ฐ์ ํ๊ฒฝ |
์ ํ์ ๋ฐ๋ณต | ์ต๊ณ | ์ต๊ณ | ๋ง์ | ๊ณ ์ฑ๋ฅ ์๊ตฌ |
์ ํ ๊ธฐ์ค
- ์ฑ๋ ํ์ง: ์ค๋ฅ์จ์ด ๋์ผ๋ฉด ์ ํ์ ๋ฐ๋ณต์ด ์ ๋ฆฌ
- ์ง์ฐ ์๊ฐ: ๊ธด ์ ํ ์ง์ฐ์์๋ ํฐ ์๋์ฐ ํฌ๊ธฐ ํ์
- ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ: ์ ํ๋ ํ๊ฒฝ์์๋ Go-Back-N ์ ํธ
- ์ฒ๋ฆฌ ๋ฅ๋ ฅ: ๋ณต์กํ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ฉด ์ ํ์ ๋ฐ๋ณต ์ ํ
5. ์ค์ ์ ์ฉ ์ฌ๋ก
TCP์์์ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- TCP๋ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํจ
- ์ ์์ ์๋์ฐ ํฌ๊ธฐ ์กฐ์ ๋ก ๋คํธ์ํฌ ์ํฉ์ ๋์
- ์ ํ์ ํ์ธ์๋ต(SACK) ์ต์ ์ผ๋ก ํจ์จ์ฑ ํฅ์
๋ฐ์ดํฐ๋งํฌ ๊ณ์ธต ํ๋กํ ์ฝ
- HDLC, PPP ๋ฑ์์ Go-Back-N ๋ฐฉ์ ์ฃผ๋ก ์ฌ์ฉ
- ๊ฐ๋จํ ๊ตฌํ์ผ๋ก ์์ ์ ์ธ ๋ฐ์ดํฐ ์ ์ก ๋ณด์ฅ