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)

  • ํŠน์ง•: ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋ ˆ์ž„๋งŒ ์ „์†ก
  • ๋™์ž‘ ๋ฐฉ์‹:
    1. ์†ก์‹ ์ž๊ฐ€ ํ”„๋ ˆ์ž„ ์ „์†ก
    2. ์ˆ˜์‹ ์ž๋กœ๋ถ€ํ„ฐ ACK(ํ™•์ธ์‘๋‹ต) ๋Œ€๊ธฐ
    3. ACK ์ˆ˜์‹  ํ›„ ๋‹ค์Œ ํ”„๋ ˆ์ž„ ์ „์†ก
  • ์žฅ์ : ๋‹จ์ˆœํ•˜๊ณ  ์•ˆ์ •์ 
  • ๋‹จ์ : ์ „์†ก ํšจ์œจ์ด ๋‚ฎ์Œ (๋Œ€์—ญํญ ๋‚ญ๋น„)

3. ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ํ”„๋กœํ† ์ฝœ(Sliding Window Protocol)

๊ธฐ๋ณธ ๊ฐœ๋…

์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ํ”„๋กœํ† ์ฝœ์€ ๋ฌด์ œ์•ฝ ํ”„๋กœํ† ์ฝœ๊ณผ ์ •์ง€ ๋Œ€๊ธฐ ํ”„๋กœํ† ์ฝœ์˜ ๋‘ ๊ทน๋‹จ ์‚ฌ์ด์—์„œ์˜ ํƒ€ํ˜‘์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ์›๋ฆฌ

  • ์œˆ๋„์šฐ: ํ•œ ๋ฒˆ์— ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์˜ ๊ฐœ์ˆ˜
  • ์Šฌ๋ผ์ด๋”ฉ: ํ™•์ธ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ์œˆ๋„์šฐ๊ฐ€ ์•ž์œผ๋กœ ์ด๋™
  • ํŒŒ์ดํ”„๋ผ์ด๋‹: ์—ฌ๋Ÿฌ ํ”„๋ ˆ์ž„์„ ๋™์‹œ์— ์ „์†กํ•˜์—ฌ ํšจ์œจ์„ฑ ํ–ฅ์ƒ

3.1 Go-Back-N ํ”„๋กœํ† ์ฝœ

๋™์ž‘ ์›๋ฆฌ

  • ์†ก์‹ ์ž๋Š” ์œˆ๋„์šฐ ํฌ๊ธฐ๋งŒํผ ์—ฐ์†์ ์œผ๋กœ ํ”„๋ ˆ์ž„ ์ „์†ก
  • ์ˆ˜์‹ ์ž๋Š” ์ˆœ์„œ๋Œ€๋กœ ๋„์ฐฉํ•œ ํ”„๋ ˆ์ž„๋งŒ ์ˆ˜๋ฝ
  • ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ํ•ด๋‹น ํ”„๋ ˆ์ž„๋ถ€ํ„ฐ ๋ชจ๋“  ํ›„์† ํ”„๋ ˆ์ž„์„ ์žฌ์ „์†ก

ํŠน์ง•

  • ์žฅ์ : ๊ตฌํ˜„์ด ๋น„๊ต์  ๊ฐ„๋‹จ
  • ๋‹จ์ : ๋ถˆํ•„์š”ํ•œ ์žฌ์ „์†ก์œผ๋กœ ์ธํ•œ ๋Œ€์—ญํญ ๋‚ญ๋น„
  • ์ˆ˜์‹  ๋ฒ„ํผ: 1๊ฐœ๋งŒ ํ•„์š” (์ˆœ์„œ๋Œ€๋กœ๋งŒ ์ˆ˜๋ฝ)

์˜ˆ์‹œ ์‹œ๋‚˜๋ฆฌ์˜ค

  1. ํ”„๋ ˆ์ž„ 0, 1, 2, 3 ์ „์†ก
  2. ํ”„๋ ˆ์ž„ 1์—์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
  3. ํ”„๋ ˆ์ž„ 1, 2, 3 ๋ชจ๋‘ ์žฌ์ „์†ก

3.2 ์„ ํƒ์  ๋ฐ˜๋ณต ํ”„๋กœํ† ์ฝœ(Selective Repeat Protocol)

๋™์ž‘ ์›๋ฆฌ

  • ์†ก์‹ ์ž๋Š” ์œˆ๋„์šฐ ํฌ๊ธฐ๋งŒํผ ์—ฐ์†์ ์œผ๋กœ ํ”„๋ ˆ์ž„ ์ „์†ก
  • ์ˆ˜์‹ ์ž๋Š” ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š” ํ”„๋ ˆ์ž„์€ ๋ชจ๋‘ ์ˆ˜๋ฝํ•˜์—ฌ ๋ฒ„ํผ์— ์ €์žฅ
  • ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ํ•ด๋‹น ํ”„๋ ˆ์ž„๋งŒ ์„ ํƒ์ ์œผ๋กœ ์žฌ์ „์†ก

ํŠน์ง•

  • ์žฅ์ : ํšจ์œจ์ ์ธ ๋Œ€์—ญํญ ์‚ฌ์šฉ (ํ•„์š”ํ•œ ํ”„๋ ˆ์ž„๋งŒ ์žฌ์ „์†ก)
  • ๋‹จ์ : ๋ณต์žกํ•œ ๊ตฌํ˜„ (์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž ๋ชจ๋‘ ๋ฒ„ํผ ๊ด€๋ฆฌ ํ•„์š”)
  • ์ˆ˜์‹  ๋ฒ„ํผ: ์œˆ๋„์šฐ ํฌ๊ธฐ๋งŒํผ ํ•„์š”

์˜ˆ์‹œ ์‹œ๋‚˜๋ฆฌ์˜ค

  1. ํ”„๋ ˆ์ž„ 0, 1, 2, 3 ์ „์†ก
  2. ํ”„๋ ˆ์ž„ 1์—์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
  3. ํ”„๋ ˆ์ž„ 1๋งŒ ์žฌ์ „์†ก (0, 2, 3์€ ์ด๋ฏธ ์ˆ˜์‹  ์™„๋ฃŒ)

4. ํ”„๋กœํ† ์ฝœ ๋น„๊ต ๋ฐ ์„ ํƒ ๊ธฐ์ค€

์„ฑ๋Šฅ ๋น„๊ต

ํ”„๋กœํ† ์ฝœ ์ „์†ก ํšจ์œจ ๊ตฌํ˜„ ๋ณต์žก๋„ ๋ฒ„ํผ ์š”๊ตฌ๋Ÿ‰ ์ ์šฉ ํ™˜๊ฒฝ
๋ฌด์ œ์•ฝ ์ตœ๊ณ  ์ตœ์ € ์ตœ์†Œ ์ด์ƒ์  ์ฑ„๋„
์ •์ง€ ๋Œ€๊ธฐ ์ตœ์ € ๋‚ฎ์Œ ์ตœ์†Œ ์‹ ๋ขฐ์„ฑ ์ค‘์‹œ
Go-Back-N ์ค‘๊ฐ„ ์ค‘๊ฐ„ ์ ์Œ ์ผ๋ฐ˜์  ํ™˜๊ฒฝ
์„ ํƒ์  ๋ฐ˜๋ณต ์ตœ๊ณ  ์ตœ๊ณ  ๋งŽ์Œ ๊ณ ์„ฑ๋Šฅ ์š”๊ตฌ

์„ ํƒ ๊ธฐ์ค€

  • ์ฑ„๋„ ํ’ˆ์งˆ: ์˜ค๋ฅ˜์œจ์ด ๋†’์œผ๋ฉด ์„ ํƒ์  ๋ฐ˜๋ณต์ด ์œ ๋ฆฌ
  • ์ง€์—ฐ ์‹œ๊ฐ„: ๊ธด ์ „ํŒŒ ์ง€์—ฐ์—์„œ๋Š” ํฐ ์œˆ๋„์šฐ ํฌ๊ธฐ ํ•„์š”
  • ๋ฉ”๋ชจ๋ฆฌ ์ œ์•ฝ: ์ œํ•œ๋œ ํ™˜๊ฒฝ์—์„œ๋Š” Go-Back-N ์„ ํ˜ธ
  • ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ: ๋ณต์žกํ•œ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋ฉด ์„ ํƒ์  ๋ฐ˜๋ณต ์„ ํƒ

5. ์‹ค์ œ ์ ์šฉ ์‚ฌ๋ก€

TCP์—์„œ์˜ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ

  • TCP๋Š” ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ
  • ์ ์‘์  ์œˆ๋„์šฐ ํฌ๊ธฐ ์กฐ์ ˆ๋กœ ๋„คํŠธ์›Œํฌ ์ƒํ™ฉ์— ๋Œ€์‘
  • ์„ ํƒ์  ํ™•์ธ์‘๋‹ต(SACK) ์˜ต์…˜์œผ๋กœ ํšจ์œจ์„ฑ ํ–ฅ์ƒ

๋ฐ์ดํ„ฐ๋งํฌ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ

  • HDLC, PPP ๋“ฑ์—์„œ Go-Back-N ๋ฐฉ์‹ ์ฃผ๋กœ ์‚ฌ์šฉ
  • ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„์œผ๋กœ ์•ˆ์ •์ ์ธ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ณด์žฅ