๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐“ก๐“ธ๐“ธ๐“ถ5: ๐’ฆ๐‘œ๐“‡๐‘’๐’ถ ๐’ฐ๐“ƒ๐’พ๐“‹/Computer Network(COSE342)

[์ปดํ“จํ„ฐ๋„คํŠธ์›Œํฌ] CH3. Transport Layer (#2)

Packet pipelining for high utiliztaion

Pipelining

: sender๊ฐ€ ์•„์ง ack pkts์ด ๋„์ฐฉํ•˜์ง€ ์•Š์€("in-flight") ์ƒํƒœ์—์„œ๋ผ๋„ ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค.

  • ์‹œํ€€์Šค ๋„˜๋ฒ„์˜ ๋ฒ”์œ„๋ฅผ ๋Š˜๋ ค์•ผ ํ•จ
  • sender๋‚˜ receiver์—์„œ ๋ฒ„ํผ๋ง์ด ๋ฐœ์ƒํ•จ

์›๋ž˜ sender์˜ Utilization ์€ (L/R) / (RTT+L/R) ์ด์—ˆ๋Š”๋ฐ ๋งŒ์•ฝ 3๊ฐœ๋ฅผ ํ•œ ๋ฒˆ์— ๋ณด๋‚ธ๋‹ค๋ฉด U_sender = (3L/R)/(RTT+L/R)์ด ๋œ๋‹ค.
ํŒจํ‚ท์„ 3๊ฐœ๋ฅผ ํ•œ ๋ฒˆ์— ๋ณด๋ƒˆ๋”๋‹ˆ utilization์ด 3๋ฐฐ ์ฆ๊ฐ€ํ–ˆ๋‹ค!

์ด๋Ÿฌํ•œ Pipelined protocols์—” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • Go-Back-N
  • Selective Repeat

๊ฐ„๋žตํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด Go-Back-N์€ ํ•œ ๋ฒˆ์— N๊ฐœ์”ฉ ๋ณด๋‚ด๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.
Receiver๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ack๋ฅผ ์ถ•์ ํ•ด์„œ ๋ณด๋‚ธ๋‹ค. ๋งŒ์•ฝ ์ˆœ์„œ๋ฅผ ์ง€ํ‚ค์ง€ ์•Š๊ณ  ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ํŒจํ‚ท์ด ์˜ค๋ฉด ๊ทธ ํŒจํ‚ท์€ ๋ฐ›์ง€ ์•Š๊ณ  ack๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค.
sender๋Š” ๊ฐ€์žฅ ์˜ค๋ž˜๋œ unacked packet์— ๋Œ€ํ•œ ํƒ€์ด๋จธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋งŒ์•ฝ ํƒ€์ด๋จธ๊ฐ€ ๋๋‚˜๋ฉด ๊ทธ ํŒจํ‚ท๋ถ€ํ„ฐ N๊ฐœ๋ฅผ ๋‹ค์‹œ ๋‹ค ๋ณด๋‚ธ๋‹ค.

Selective Repeat์€ N๊ฐœ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์€ ๊ฐ™์ง€๋งŒ Receiver์€ ๊ฐ ํŒจํ‚ท์— ๋Œ€ํ•ด ๊ฐœ๋ณ„์ ์ธ ack๋ฅผ ๋ณด๋‚ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  sender ์—ญ์‹œ unacked packet์— ๋Œ€ํ•ด ๋ชจ๋“  timer๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ๋งŒ์•ฝ ํƒ€์ด๋จธ๊ฐ€ ๋๋‚˜๋ฉด ์˜ค์ง unacked ๋œ ํŒจํ‚ท์— ๋Œ€ํ•ด์„œ๋งŒ ์žฌ์ „์†ก์„ ํ•œ๋‹ค. ์ฆ‰ ์ž˜๋ชป๋œ ๊ฒƒ๋งŒ ๋‹ค์‹œ ๋ณด๋‚ด๋Š” ๊ฒƒ!

1. Go-Back-N (GBN)

  • ํŒจํ‚ท ํ—ค๋”์—๋Š” k-bit์˜ sequence number๊ฐ€ ์žˆ๋‹ค.
  • window ๋Š” ๋ณด๋‚ผ ํŒจํ‚ท๋“ค์˜ ๋ฌถ์Œ๊ฐ™์€ ๊ฒƒ..! ์ด N๊ฐœ์˜ unacked pkts์œผ๋กœ ๋˜์–ด์žˆ๋‹ค.

  • ACK(n) : n๋ฒˆ์งธ ํŒจํ‚ท๊นŒ์ง€ ๋‹ค ์ž˜ ๋ฐ›์•˜๋‹ค๋Š” ๋œป (cumulative ACK)
    • Sender๋Š” duplicate ACKs๋ฅผ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ๋‹ค. (์ฒ˜๋ฆฌํ•„์š”)
  • ๊ฐ€์žฅ ์˜ค๋ž˜๋œ in-flight pkt์— ๋Œ€ํ•œ ํƒ€์ด๋จธ๋งŒ ์กด์žฌํ•œ๋‹ค.
  • timeout(n) : n๋ฒˆ์งธ ํŒจํ‚ท์— ๋Œ€ํ•œ ACK๊ฐ€ ์˜ค์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ n๋ฒˆ์งธ ํŒจํ‚ท๋ถ€ํ„ฐ N๊ฐœ๋ฅผ ๋‹ค์‹œ ๋ณด๋‚ธ๋‹ค.

Sender

Sender๋Š” ์ด์ œ rdt_send(data)๊ฐ€ ์˜ค๋ฉด ํ˜„์žฌ ๋ณด๊ณ ์žˆ๋Š” seq# ์ธ base๋กœ ๋ถ€ํ„ฐ N๊ฐœ๊นŒ์ง€๋ฅผ ํ•œ ๋ฒˆ์— ์ „์†กํ•œ๋‹ค. ์ด๋Ÿฌ๋ฉด nextseq# ๊ฐ€ base๋กœ๋ถ€ํ„ฐ N+1๋ฒˆ์งธ ํŒจํ‚ท์„ ๊ฐ€๋ฆฌํ‚ฌ ๊ฒƒ์ด๊ณ  ์ด๋Ÿฌ๋ฉด ๋”์ด์ƒ ๋ณด๋‚ด์ง€ ์•Š๊ณ  ์Šคํƒ‘ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋งจ ์ฒ˜์Œ ํŒจํ‚ท์— ๋Œ€ํ•ด์„œ timer๋ฅผ ์ผœ๊ณ  ๊ธฐ๋‹ค๋ฆฐ๋‹ค.

ack๊ฐ€ ์˜ค๋ฉด base๋ฅผ ๊ทธ ๋‹ค์Œ seq #๋กœ ํ•œ ์นธ์”ฉ ์˜ฎ๊ฒจ์ค€๋‹ค. ์ฆ‰ ์œˆ๋„์šฐ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ์นธ์”ฉ ์˜ฎ๊ฒจ์ค€๋‹ค. ์ด๋Ÿฌ๋‹ค๊ฐ€ ๋งŒ์•ฝ base๊ฐ€ nextseqnum ์ฆ‰ ์œˆ๋„์šฐ ๋งจ ๋๊นŒ์ง€ ์˜ค๋ฉด ์ „๋ถ€ ๋‹ค ์ž˜ ๋ฐ›์€๊ฑฐ๋‹ˆ๊นŒ timer๋ฅผ ๋ฉˆ์ถฐ์ค€๋‹ค. ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ์—๋Š” ์œˆ๋„์šฐ์˜ ๊ฐ€์žฅ ์™ผ์ชฝ ํŒจํ‚ท์— ๋Œ€ํ•œ timer๋ฅผ ์ผœ์ค€๋‹ค.

๋งŒ์•ฝ ์ž˜๋ชป๋œ ํŒจํ‚ท์ด ์˜ค๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์•ˆํ•œ๋‹ค.

time out์ด ๋˜๋ฉด ๋‹ค์‹œ ํƒ€์ด๋จธ๋ฅผ ํ‚ค๊ณ  ํ˜„์žฌ base๋กœ ๋ถ€ํ„ฐ N๊ฐœ๋ฅผ ์žฌ์ „์†กํ•œ๋‹ค. ์ฆ‰ ์˜ฎ๊ฒจ์ง„ ์œˆ๋„์šฐ ์•ˆ์˜ ํŒจํ‚ท์„ ์‹น ๋‹ค ๋ณด๋‚ธ๋‹ค.

Receiver

Receiver์€ ํŒจํ‚ท์ด ์™”๊ณ , ์ •์ƒ ํŒจํ‚ท์ด๊ณ , ์ˆœ์„œ์— ๋งž๋Š” ํŒจํ‚ท์ด๋ผ๋ฉด udt_send(sndpkt)์œผ๋กœ ACK๋ฅผ ๋ณด๋‚ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  expectedseq#๋ฅผ ํ•˜๋‚˜ ์ฆ๊ฐ€์‹œ์ผœ์ค€๋‹ค. ๋งŒ์•ฝ ์ด์ƒํ•œ ํŒจํ‚ท์ด ์˜ค๊ฑฐ๋‚˜ ์ค‘๋ณต๋œ ํŒจํ‚ท์ด ์˜ค๊ฑฐ๋‚˜ ์ˆœ์„œ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์˜ค๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์•ˆํ•˜๊ณ  ๊ธฐ๋‹ค๋ฆฐ๋‹ค.

  1. ACK-only : ์ž˜ ๋ฐ›์€ ํŒจํ‚ท ์ค‘ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ํŒจํ‚ท์— ๋Œ€ํ•œ ACK๋ฅผ ๋ณด๋‚ด์ค€๋‹ค. (NAK์•ˆ์”€)
    • ACK๊ฐ€ ์ค‘๋ณต๋  ์ˆ˜ ์žˆ๋‹ค.
    • ์˜ค์ง expected seqnum ๋งŒ ๊ธฐ์–ตํ•˜๋ฉด ๋จ (ํŒจํ‚ท ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค expected ๊ฐ’ ++ )
  2. ๋งŒ์•ฝ ์ˆœ์„œ์— ๋งž์ง€ ์•Š์€ ํŒจํ‚ท์ด ์˜ค๋ฉด ๋ฒ„ํผ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ƒฅ ์ง€์›Œ๋ฒ„๋ฆฌ๊ณ  ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐ›์€ ์ •์ƒ ํŒจํ‚ท์— ๋Œ€ํ•œ ACK๋ฅผ ๋‹ค์‹œ ์žฌ์ „์†ก ํ•ด์ค€๋‹ค.

2. Selective Repeat

  1. Receiver๋Š” ์ž˜ ์˜จ ํŒจํ‚ท ๊ฐ๊ฐ์— ๋Œ€ํ•œ ACK๋ฅผ ๊ฐ๊ฐ ๊ด€๋ฆฌํ•œ๋‹ค.
  2. ๋ฒ„ํผ๊ฐ€ ์žˆ์–ด์„œ ์ˆœ์„œ์— ์•ˆ ๋งž๊ฒŒ ์˜จ ์• ๋“ค ์ž„์‹œ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ ์ˆœ์„œ ๋งž๊ฒŒ ๋‹ค ๋„์ฐฉํ•˜๋ฉด ์ƒ์œ„ ๊ณ„์ธต์œผ๋กœ ์ˆœ์„œ๋Œ€๋กœ ๋ณด๋ƒ„
  3. Sender๋Š” ACK๊ฐ€ ๋„์ฐฉํ•˜์ง€ ์•Š์€ ํŒจํ‚ท๋งŒ ๋‹ค์‹œ ์ „์†กํ•œ๋‹ค. ์ฆ‰ ๊ฐ๊ฐ์˜ unACKed pkt์— ๋Œ€ํ•œ ํƒ€์ด๋จธ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•จ
  4. Sender์˜ window
    • N๊ฐœ์˜ ์—ฐ์†์ ์ธ seq #
    • ์ „์†กํ•  packet์˜ ๊ฐœ์ˆ˜๋ฅผ ์ œํ•œํ•œ๋‹ค.

Sender

  1. ์œ„์—์„œ data๊ฐ€ ์˜ค๋ฉด ์ง€๊ธˆ seq #๊ฐ€ ์œˆ๋„์šฐ ์•ˆ์— ์žˆ๋Š” ์œ ํšจํ•œ ๋ฒˆํ˜ธ์ธ์ง€ ํ™•์ธํ•˜๊ณ  ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค.
  2. Timeout(n) : ํƒ€์ž„ ์•„์›ƒ์ด ๋˜๋ฉด n๋ฒˆ์งธ ํŒจํ‚ท์„ ๋‹ค์‹œ ๋ณด๋‚ด๊ณ  ํƒ€์ด๋จธ๋ฅผ ์žฌ์‹œ์ž‘ ํ•œ๋‹ค.
  3. window ๋ฒ”์œ„ ๋‚ด์˜ ACK(n)์ด ์˜ค๋ฉด pkt n์„ ๋ฐ›์•˜๋‹ค๊ณ  ํ‘œ์‹œํ•ด์ฃผ๊ณ , n์ด ์œˆ๋„์šฐ์˜ ๊ฐ€์žฅ ์™ผ์ชฝ ํŒจํ‚ท์ด์—ˆ๋‹ค๋ฉด ์œˆ๋„์šฐ๋ฅผ n๋ฒˆ์งธ ๋‹ค์Œ๋ถ€ํ„ฐ๋กœ ์˜ฎ๊ฒจ์ค€๋‹ค.

Receiver

  1. window ๋ฒ”์œ„ ๋‚ด์˜ ACK(n) ์ด ์˜ค๋ฉด
    • ACK(n) ์„ ์ „์†กํ•˜๊ณ 
    • ์ˆœ์„œ์— ๋งž์ง€ ์•Š์œผ๋ฉด buffer์— ์ผ๋‹จ ์ €์žฅํ•ด๋‘”๋‹ค
    • ์ˆœ์„œ๊ฐ€ ๋งž๋Š”๋‹ค๋ฉด deliver (์ด ๋•Œ ๋ฒ„ํผ์— ์ €์žฅํ•ด๋‘” ๊ฒƒ๊นŒ์ง€ ํ•ฉ์ณ์„œ)
    • ๊ทธ๋ฆฌ๊ณ  ์œˆ๋„์šฐ๋ฅผ ์•„์ง ๋ฐ›์ง€ ์•Š์€ ํŒจํ‚ท๊นŒ์ง€๋กœ ์˜ฎ๊ฒจ์ค€๋‹ค.
  2. rcvbase-N ~ rcvbase-1 ๋ฒ”์œ„์˜ ACK(n)์ด ์˜ค๋ฉด
    • ์ด๋ฏธ ๋ฐ›์•˜๋˜ ํŒจํ‚ท์ด๋‹ˆ๊นŒ ACK(n)๋งŒ ๋‹ค์‹œ ๋ณด๋‚ด์ฃผ๊ณ  ์ €์žฅ์€ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  3. ๊ทธ ์™ธ์—๋Š” ๋ฌด์‹œํ•œ๋‹ค.

Dilemma

  • seq #๊ฐ€ window ํฌ๊ธฐ๋ณด๋‹ค ์ž‘์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Œ!
    (ACK ๋ชป ๋ง์•„์„œ ์žฌ์ „์†ก ํ•œ๊ฑธ ์ƒˆ๋กœ์šด ํŒจํ‚ท์œผ๋กœ ์ธ์‹ํ•  ์ˆ˜ ์žˆ์Œ)
  • ๋”ฐ๋ผ์„œ window๋ณด๋‹ค seq #๊ฐ€ ์•ฝ ๋‘ ๋ฐฐ์ •๋„ ๋” ๋งŽ์•„์•ผ ํ•จ.

Automatic Repeat Request (ARQ) schemes

Throughput performance analysis

Goal : maximum throughput (=๐œ†_max) ๊ตฌํ•˜๊ธฐ

t_I = ํ•˜๋‚˜์˜ ํŒจํ‚ท์„ transmission ํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„
๐‘ก๐‘ = propagation delay
๐‘ก๐‘๐‘Ÿ๐‘œ๐‘ = processing ํ•˜๋Š” ์‹œ๊ฐ„ at the receiver 
(ํŒจํ‚ท์ด ๋ผ์šฐํ„ฐ์— ๋„์ฐฉํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฝ๊ณ ,
์–ด๋Š ๋ผ์šฐํ„ฐ๋กœ ์ „์†ก๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ๋ชฉ์ ์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์ง€์—ฐ.)
๐‘ก๐‘  = ACK๋‚˜ NAK์˜ transmission time
๐‘ก๐‘œ๐‘ข๐‘ก = time out
-> ACK๋ฅผ ์ž˜ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” time out ์‹œ๊ฐ„์ด delay๋ณด๋‹ค ๊ธธ์–ด์•ผ ํ•จ
๐‘ก๐‘œ๐‘ข๐‘ก ≥ 2๐‘ก๐‘ + ๐‘ก๐‘๐‘Ÿ๐‘œ๐‘ + ๐‘ก๐‘ 

1. Stop-and-Wait

๊ฐ€์ •

  1. Saturated network (ํฌํ™” ๋„คํŠธ์›Œํฌ) : transmitter๋Š” ํ•ญ์ƒ ๋ญ”๊ฐ€ ์ „์†กํ• ๊ฒŒ ์žˆ์Œ
  2. ์™„๋ฒฝํ•œ timeout ์„ค์ • : ๐‘ก๐‘œ๐‘ข๐‘ก = 2๐‘ก๐‘ + ๐‘ก๐‘๐‘Ÿ๐‘œ๐‘ + ๐‘ก๐‘ 
  3. ๐‘ก๐‘‡ = ๐‘ก๐‘œ๐‘ข๐‘ก + ๐‘ก๐ผ ๋ผ๊ณ  ํ•˜์ž. ์ฆ‰ ๐‘ก๐‘‡ ๋Š” ํŒจํ‚ท์ด queue ๋์—์„œ ์ „์†ก๋˜๊ธฐ ์‹œ์ž‘ํ•ด์„œ time out ๋  ๋•Œ๊นŒ์ง€์˜ ์‹œ๊ฐ„

  • ๋งŒ์•ฝ error๊ฐ€ ์—†๋‹ค๊ณ  ํ•˜๋ฉด ๐œ†_max = 1 / ๐‘ก๐‘‡
    (๐‘ก๐‘‡๊ฐ€ ํŒจํ‚ท ํ•˜๋‚˜ ๋ณด๋‚ด์„œ ํƒ€์ž„์•„์›ƒ๊นŒ์ง€์˜ ์‹œ๊ฐ„์ด๋‹ˆ๊นŒ 1์ดˆ์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ท์˜ ์–‘์€ ์ด๊ฒƒ์˜ ์—ญ์ˆ˜)
  • error๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ
    • ๐‘ = ๊ทธ ํ”„๋ ˆ์ž„์ด ์—๋Ÿฌ๊ฐ€ ์žˆ์„ ํ™•๋ฅ 
    • ๐‘ก๐‘ฃ = ํ”„๋ ˆ์ž„์„ ์—ฐ์†์ ์œผ๋กœ ๋ฐ›์„ ๋•Œ ๊ทธ ํ”„๋ ˆ์ž„ ์‚ฌ์ด์˜ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ
    • ๐‘ = ์žฌ์ „์†ก ํšŸ์ˆ˜
  • ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ frame์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ํ‰๊ท  ์‹œ๊ฐ„(๊ธฐ๋Œ“๊ฐ’)์„ ๊ตฌํ•˜๋ฉด

์žฌ์ „์†ก์ด 0๋ฒˆ, 1๋ฒˆ, ... , n๋ฒˆ ์ผ ๋•Œ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„*ํ™•๋ฅ 

์ด ๋•Œ

์žฌ์ „์†ก n๋ฒˆ์ผ ๋•Œ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ ์ด n+1๋ฒˆ ํŒจํ‚ท์„ ๋ณด๋‚ธ๊ฑฐ๋‹ˆ๊นŒ (n+1)*tT
์žฌ์ „์†ก n๋ฒˆ ํ•  ํ™•๋ฅ ์€ n๋ฒˆ์„ ์ž˜๋ชป ๋ณด๋‚ด๊ณ  ๋งˆ์ง€๋ง‰ ํ•œ ๋ฒˆ ์ œ๋Œ€๋กœ ๋ณด๋‚ธ๊ฑฐ๋ผ p^n(1-p)

์ด๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉด,

E[N] = ํ‰๊ท  ์žฌ์ „์†ก ํšŸ์ˆ˜
E[tv] = E[tv | N = E[N]] : ERROR๊ฐ€ ์žˆ์„ ๋•Œ ํ‰๊ท  ์‹œ๊ฐ„

๋”ฐ๋ผ์„œ ์ตœ๋Œ€ ๋Œ€์—ญํญ์€ ์ด์˜ ์—ญ์ˆ˜!

2. Go-Back-N

๊ฐ€์ •์€ Stop-and-Wait์™€ ๋™์ผ

  • ์ถฉ๋ถ„ํ•œ window ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ Saturated network
  • error๊ฐ€ ์—†์„ ๋•Œ ํ”„๋ ˆ์ž„ ํ•˜๋‚˜๋ฅผ t_I์— ํ•˜๋‚˜์”ฉ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Œ

ํŒจํ‚ท์— ์—๋Ÿฌ๊ฐ€ ์žˆ์„ ๋•Œ ๊ฑธ๋ฆฌ๋Š” ํ‰๊ท  ์‹œ๊ฐ„ = n๋ฒˆ ์˜ค๋ฅ˜ ๋‚ฌ์„ ๋•Œ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ * n๋ฒˆ ์˜ค๋ฅ˜๋‚  ํ™•๋ฅ  ์˜ ์ด ํ•ฉ

3. Selective Repeat

๊ฐ€์ •์€ ์•ž์—์„œ ์ข€ ๋” ์ถ”๊ฐ€

  • receiver๋Š” reordering buffer๋ฅผ ๋ฌดํ•œ ๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค
  • ๐‘ = P{receiving a frame in error} // ๋ฐ›์€ ํ”„๋ ˆ์ž„์— ์—๋Ÿฌ๊ฐ€ ์žˆ์„ ํ™•๋ฅ 
    • P{successful transmission in first attempt} = 1 − ๐‘ //์ฒซ๋ฒˆ์งธ ์‹œ๋„์— ์„ฑ๊ณตํ•  ํ™•๋ฅ 
    • P{successful transmission in ๐‘›-th attempt} = ๐‘๐‘›−1(1 − ๐‘) //n๋ฒˆ์งธ ์‹œ๋„์— ์„ฑ๊ณตํ•  ํ™•๋ฅ 
  • k๋ฅผ ์ „์†ก ์„ฑ๊ณต์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์ „์†ก ์ˆ˜๋ผ๊ณ  ํ•˜๋ฉด,

๐‘ก๐ผ๋Š” ํ•œ ํ”„๋ ˆ์ž„์˜ transmission time์ž„์„ ๊ธฐ์–ตํ•ด๋ด!
์ด ๋ง์€ ์ฆ‰, ์šฐ๋ฆฌ๋Š” ๋‹จ์œ„ ์‹œ๊ฐ„ ๋‹น ์ตœ๋Œ€ 1/๐‘ก๐ผ ํ”„๋ ˆ์ž„์˜ ์ „์†ก์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋œป

๊ทธ๋ž˜์„œ ์ด์ œ (๋‹จ์œ„์‹œ๊ฐ„์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„ ์ˆ˜์˜ ํ‰๊ท ) / (ํ”„๋ ˆ์ž„ ํ•˜๋‚˜๋ฅผ ๋ณด๋‚ด๋Š”๋ฐ ํ•„์š”ํ•œ ์žฌ ์ „์†ก ํšŸ์ˆ˜์˜ ํ‰๊ท ) ์„ ํ•˜๋ฉด ์ตœ๋Œ€ ๋Œ€์—ญํญ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋‹ˆ๊นŒ ์›๋ž˜ ์—๋Ÿฌ ์—†์„ ๋•Œ์˜ ๋Œ€์—ญํญ ๋‚˜๋ˆ„๊ธฐ ์—๋Ÿฌ ์žˆ์œผ๋‹ˆ๊นŒ ์žฌ์ „์†กํ•˜๋Š”๋ฐ ๋Œ€์—ญํญ์„ ์จ์•ผํ•ด์„œ ๊ทธ๊ฑธ๋กœ ๋‚˜๋ˆ ์ฃผ๋Š” ๊ฒƒ..

Compare ARQ Schemes

์•ŒํŒŒ๋ฅผ ์ €๋ ‡๊ฒŒ ๊ฐ€์ •์„ ํ•ด๋ณด์ž. 

์•ž์—์„œ ๊ตฌํ•œ ๋žŒ๋‹ค max์— t_I๋ฅผ ๊ณฑํ•œ ๊ฐ’์„ ๊ตฌํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚œ๋‹ค.

 

- α๊ฐ€ 1์— ๊ฐ€๊นŒ์šฐ๋ฉด(์ถฉ๋ถ„ํžˆ ์ž‘์œผ๋ฉด) ์ € ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ๋น„์Šทํ•ด์ง„๋‹ค.

  ๊ทธ ๋ง์€ ์ฆ‰, t_I ์ฆ‰ ์ „์†ก ์‹œ๊ฐ„์ด propagation delay๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค๋Š” ๋œป. (์™œ์ง€?

 

- α๊ฐ€ ๋งค์šฐ ํฌ๊ณ  p๋Š” ๋งค์šฐ ์ž‘์„ ๋•Œ ์ฆ‰ αp << 1 ์ผ ๋•Œ (t_out์ด ํฌ๊ณ  ์˜ค๋ฅ˜ ์žˆ์„ ํ™•๋ฅ ์ด ์ž‘์„ ๋•Œ)

    - Stop-and-wait ๋ฐฉ์‹์€ ์•„์ฃผ ์ข‹์ง€ ์•Š๊ณ 

    - Go-Back-N ์ด๋‚˜ Selective Repeat์ด ๋น„์Šทํ•œ ์„ฑ๊ณผ๋ฅผ ๋‚ธ๋‹ค.

 

-  αp ~ 1 ์ด๊ฑฐ๋‚˜  αp > 1 ์ด๋ฉด Selective Repeat์ด Go-Back-N๋ณด๋‹ค ํ›จ์”ฌ ๋‚ซ๋‹ค.

 

- ๋Œ€๊ฐœ๋กœ  Selective Repeat์ด ์„ฑ๋Šฅ์ด ์ข‹์ง€๋งŒ ์ œ์ผ ๋ณต์žกํ•˜๋‹ค.