본문 바로가기

📌 SW전공-개념/데이터통신

✅ [개념 ch3-14] 흐름 제어와 ARQ 3종 완벽 정리 | 정지-대기·슬라이딩 윈도우·Go-Back-N·SR

 


 

 

 

1. 흐름 제어(Flow Control)란

1.1 정의

흐름 제어 = 송신자가 수신자를 압도하지 않도록 데이터 전송 속도를 조절하는 메커니즘. 수신자의 버퍼 오버플로우 방지 및 데이터 손실 방지가 목적.

비유: 수도꼭지(송신자)에서 물(데이터)이 너무 빠르게 쏟아져 싱크대(수신자)가 넘치는 상황을 방지하는 것과 같아요. 수도꼭지의 물줄기를 조절해서 싱크대가 처리 가능한 속도에 맞춥니다.

 

1.2 흐름 제어의 핵심 메커니즘

메커니즘 설명
피드백 기반 수신자가 ACK로 "잘 받았어"를 송신자에게 알림
윈도우 기반 송신자가 ACK 없이 보낼 수 있는 양 제한
수신자 버퍼 보호 수신 가능 능력에 맞게 속도 조절

 

1.3 두 가지 핵심 프로토콜

프로토콜 핵심
정지-대기 (Stop-and-Wait) 한 프레임 보내고 ACK 대기 → 다음 프레임
슬라이딩 윈도우 (Sliding Window) 여러 프레임 연속 전송 (ACK 안 기다림)

2. 정지-대기 프로토콜 (Stop-and-Wait) ⭐⭐⭐⭐⭐

2.1 동작 원리

송신자는 한 프레임을 전송 후 ACK를 받을 때까지 대기. ACK 받으면 다음 프레임 전송.

[송신자]              [수신자]
프레임 0 전송 ──────→
                       ACK 1 ←──────
프레임 1 전송 ──────→
                       ACK 0 ←──────
프레임 0 전송 ──────→
                       ACK 1 ←──────
                ...

 

2.2 정지-대기 ARQ의 핵심 요소

요소 역할
순서 번호 1비트(0 또는 1) 만 사용
타이머 ACK가 오지 않으면 재전송
ACK 다음에 받기를 기대하는 프레임 번호

 

2.3 1비트 순서 번호로 충분한 이유

  • 한 번에 한 프레임만 처리하므로 0과 1을 번갈아 사용
  • 송신자: 프레임 0 → ACK 1 → 프레임 1 → ACK 0 → 프레임 0 → ...
  • 중복 프레임 감지 가능 (수신자가 같은 번호 받으면 폐기)

 

2.4 문제 상황 처리

상황 처리 방법
프레임 손실 타이머 만료 → 재전송
ACK 손실 타이머 만료 → 재전송 → 수신자는 중복 프레임 폐기 후 ACK 재전송
프레임 오류 수신자 NAK 또는 무응답 → 재전송
중복 프레임 1비트 순서 번호로 판별 후 폐기

 

2.5 가장 큰 단점 — 낮은 효율성 ⭐

긴 전송 지연(propagation delay) 시 송신자가 대부분의 시간을 대기하므로 채널 활용률 매우 낮음.

[정지-대기의 문제]
송신: [프레임0]─────────────────────────[프레임1]─...
                  대기 시간              
ACK:  ─────────────[ACK1]──────────────
       ↑─── RTT (Round Trip Time) ───↑

위성 통신처럼 RTT가 긴 환경에서는 거의 못 씁니다.

 

2.6 채널 활용률 계산

전파 지연이 클수록 활용률 급감 → 슬라이딩 윈도우가 필요한 이유.


3. 슬라이딩 윈도우 프로토콜 (Sliding Window) ⭐⭐⭐⭐⭐

3.1 동작 원리

송신자는 ACK를 기다리지 않고 여러 프레임 연속 전송 가능.

윈도우(연속 전송 가능 범위) 내 프레임을 모두 보내고 ACK를 받으며 윈도우를 이동시켜요.

[슬라이딩 윈도우 동작]
송신: [F0][F1][F2][F3][F4]...
       ↑─── 윈도우 (4개 동시 전송) ───↑

ACK: [A1][A2][A3][A4]...
      ↑ 받으며 윈도우 슬라이드(이동)

 

3.2 두 종류의 윈도우

윈도우 역할
송신 윈도우 (Sending Window) 송신했지만 아직 ACK 못 받은 프레임 범위
수신 윈도우 (Receiving Window) 수신자가 받기를 기대하는 프레임 범위

 

3.3 윈도우 크기

3.4 누적 ACK (Cumulative ACK)

특정 프레임의 ACK가 오면, 그 이전 모든 프레임도 자동 ACK된 것으로 간주

[누적 ACK 예시]
프레임 0, 1, 2, 3 전송
ACK 4 도착 → "프레임 0~3 모두 잘 받았고, 다음은 4번 받을 차례"

⭐ ACK 손실 일부를 허용하는 구조 — 효율적.

 

3.5 정지-대기 vs 슬라이딩 윈도우 비교

항목 정지-대기 슬라이딩 윈도우
동시 전송 1개 여러 개
채널 활용률 매우 낮음 매우 높음
구현 복잡도 단순 복잡
순서 번호 1비트 비트
사용 환경 단순한 시스템 실제 통신망 (TCP 등)

4. ARQ (Automatic Repeat reQuest) — 자동 재전송 요청

4.1 ARQ란

ARQ = 오류 감지 시 자동으로 재전송을 요청하는 프로토콜

3가지 종류가 있어요.

ARQ 핵심
Stop-and-Wait ARQ 한 프레임씩 전송·확인
Go-Back-N ARQ 오류 발생 후 모든 후속 프레임 재전송
Selective Repeat ARQ 오류 프레임만 선택적 재전송

5. Go-Back-N ARQ ⭐⭐⭐⭐⭐

5.1 동작 원리

오류가 발생한 프레임 이후의 모든 후속 프레임을 무조건 재전송

[Go-Back-N 시나리오]
송신: [F0][F1][F2][F3][F4][F5]...
                    ↑
               F2 손실 발생
               
수신자: F0, F1 OK → ACK
       F2 X → 폐기
       F3 X → 폐기 (순서 어긋남)
       F4 X → 폐기
       
송신자: F2 ACK 못 받음 → 타이머 만료
       → F2부터 다시 전송 (F2, F3, F4, F5 모두 재전송)

 

5.2 특징

특징 설명
수신측 단순 순서 어긋난 프레임은 무조건 폐기 (버퍼 작음)
송신측 복잡 윈도우 내 모든 프레임 보관 필요
대역폭 낭비 오류 후속 프레임이 OK여도 모두 재전송

 

5.3 윈도우 크기 제한

 

5.4 Go-Back-N의 장단점

장점 단점
✅ 수신측 구현 간단 ❌ 대역폭 낭비 (OK 프레임도 재전송)
✅ 수신 버퍼 작아도 됨 ❌ 오류율 높을 때 비효율

6. Selective Repeat ARQ (선택적 재전송) ⭐⭐⭐⭐⭐

6.1 동작 원리

오류가 발생한 그 프레임만 선택적으로 재전송. 올바르게 수신된 후속 프레임은 수신측 버퍼에 저장 후 순서 맞춰 전달.

[Selective Repeat 시나리오]
송신: [F0][F1][F2][F3][F4][F5]...
                ↑
           F2 손실 발생

수신자: F0, F1 OK → ACK
       F2 X → NAK 또는 ACK 미전송
       F3 OK → 버퍼에 저장 (순서 어긋났지만 보관)
       F4 OK → 버퍼에 저장
       F5 OK → 버퍼에 저장

송신자: F2만 재전송
       
수신자: F2 도착 → F2, F3, F4, F5 순서대로 상위 계층 전달

6.2 특징

특징 설명
대역폭 효율 손상 프레임만 재전송
수신측 메모리 부담 순서 어긋난 프레임 보관 필요
송신측 복잡도 증가 어떤 프레임이 ACK 됐는지 개별 추적

 

6.3 윈도우 크기 제한

비트 수 n 순서 번호 범위 최대 윈도우
2 0~3 2
3 0~7 4
4 0~15 8

Go-Back-N보다 윈도우 제약이 더 엄격 — 송수신 윈도우가 겹쳐서 혼동 방지.

6.4 Selective Repeat의 장단점

장점 단점
✅ 대역폭 매우 효율적 ❌ 수신 버퍼 메모리 부담
✅ 오류율 높은 환경에 유리 ❌ 구현 복잡

7. ARQ 3종 비교 ⭐⭐⭐⭐⭐

항목 Stop-and-Wait Go-Back-N Selective Repeat
동시 전송 1개 여러 개 (윈도우) 여러 개 (윈도우)
재전송 방식 1개씩 오류 후 모두 오류 프레임만
수신측 버퍼 1개 작음
순서 번호 비트 1 nn nn
최대 윈도우 1 2n−12^n - 1 2n−12^{n-1}
효율성 매우 낮음 중간 매우 높음
수신측 복잡도 단순 단순 복잡
송신측 복잡도 단순 중간 복잡
사용 환경 단순 시스템 일반 환경 오류율 높은 환경

8. 실전 적용 — TCP의 흐름 제어

현대 인터넷의 TCP슬라이딩 윈도우 + Selective Repeat 변형을 사용해요.

 

TCP 기능 데이터 링크 ARQ 대응
윈도우 크기 광고 (rwnd) 슬라이딩 윈도우
누적 ACK Go-Back-N 스타일
Selective ACK (SACK) Selective Repeat 스타일
빠른 재전송 오류 빠른 감지

⭐ TCP는 두 ARQ 방식의 장점을 결합한 진화된 형태입니다.


9. 한눈에 정리

9.1 흐름 제어 핵심

정지-대기      → 1개 보내고 ACK 대기 (낮은 효율, RTT 큰 환경 X)
슬라이딩 윈도우 → 여러 개 동시 전송 (높은 효율, TCP 사용)

 

9.2 ARQ 3종

Stop-and-Wait ARQ → 1비트 순서번호, 가장 단순
Go-Back-N ARQ     → 오류 후 모두 재전송, 윈도우 2^n - 1
Selective Repeat  → 오류 프레임만 재전송, 윈도우 2^(n-1)

 

9.3 윈도우 크기 비교

Stop-and-Wait : 1
Go-Back-N     : 2^n - 1   (예: n=3 → 7)
Selective Repeat : 2^(n-1) (예: n=3 → 4)

 

 


 

 

 

 

🎯 Lv.1 객관식 — 개념 및 중요 내용 확인 (10문제)


📝 1번 문제

흐름 제어(Flow Control)의 핵심 목적은?

① 데이터를 압축

② 송신자가 수신자를 압도하지 않도록 전송 속도 조절

③ 라우팅 경로 결정

④ IP 주소 자동 할당

 

✅ 정답: ②

📖 해설

흐름 제어 = 수신자 버퍼 오버플로우 방지를 위해 송신 속도 조절

비유: 수도꼭지(송신)에서 물(데이터)이 너무 빨리 쏟아지면 싱크대(수신 버퍼)가 넘쳐요. 흐름 제어는 그 속도를 조절합니다.


📝 2번 문제

정지-대기(Stop-and-Wait) 프로토콜의 동작은?

① 여러 프레임을 동시에 전송

② 한 프레임 전송 후 ACK 받을 때까지 대기 → 다음 프레임 전송

③ 항상 모든 프레임을 동시에 재전송

④ ACK 없이 무한 전송

 

✅ 정답: ②

📖 해설

정지-대기 = 한 프레임 → ACK 대기 → 다음 프레임의 단순 구조.

송신: F0 ──→
ACK: ←── A1
송신: F1 ──→
ACK: ←── A0

가장 단순하지만 채널 활용률이 매우 낮아요.


📝 3번 문제

정지-대기 ARQ의 순서 번호는 몇 비트를 사용하는가?

① 1비트 (0 또는 1) ② 4비트 ③ 8비트 ④ 16비트

✅ 정답: ①

 

📖 해설

정지-대기 ARQ = 1비트 순서 번호 사용. 한 번에 한 프레임만 처리하므로 0과 1을 번갈아 사용하면 충분합니다.

송신 순서: F0 → F1 → F0 → F1 → F0 → ...

📝 4번 문제

정지-대기 프로토콜의 가장 큰 단점은?

① 구현이 너무 복잡

② 긴 전송 지연 시 채널 활용률이 매우 낮음

③ 오류를 감지할 수 없음

④ 무선에서 사용 불가

 

✅ 정답: ②

📖 해설

정지-대기 = 긴 RTT(Round Trip Time) 환경에서 비효율. 송신자가 대부분의 시간을 ACK 대기로 보냅니다.

송신: [F0]──────────[F1]──────────...
            대기            대기

특히 위성 통신 같은 환경에서는 거의 못 써요.


📝 5번 문제

슬라이딩 윈도우 프로토콜의 핵심 특징은?

① 한 프레임씩만 전송

② ACK를 기다리지 않고 윈도우 내 여러 프레임 연속 전송

③ 항상 모든 프레임을 동시에 보냄

④ ACK가 필요 없음

 

✅ 정답: ②

📖 해설

슬라이딩 윈도우 = ACK 대기 없이 윈도우 내 여러 프레임 연속 전송 → 채널 활용률 높음

송신: [F0][F1][F2][F3][F4]...
       ↑─── 윈도우 ───↑

ACK가 도착하면 윈도우가 슬라이드(이동)하며 다음 프레임들을 보낼 수 있어요.


📝 6번 문제

누적 ACK(Cumulative ACK)의 의미는?

① 모든 ACK를 합산해서 보냄

② 특정 프레임의 ACK가 오면 그 이전 모든 프레임도 ACK된 것으로 간주

③ ACK가 누적되어 지연됨

④ 한 번에 1000개씩 ACK

 

✅ 정답: ②

📖 해설

누적 ACK = 특정 ACK가 오면 그 이전 모든 프레임도 자동 ACK 처리

프레임 0, 1, 2, 3 전송
ACK 4 도착 → "프레임 0~3 모두 OK, 다음은 4번 기대"

⭐ ACK 손실 일부를 허용하는 효율적 구조.


📝 7번 문제

Go-Back-N ARQ에서 오류 발생 시 어떻게 처리하는가?

① 오류 프레임만 선택적으로 재전송

② 오류 프레임부터 그 이후 모든 프레임을 재전송

③ 오류를 무시하고 다음으로 진행

④ 통신을 종료

 

✅ 정답: ②

📖 해설

Go-Back-N = 오류 후 모든 후속 프레임 재전송

F0 OK
F1 OK
F2 X (손실)
F3, F4, F5 → 모두 폐기

→ F2부터 모두 재전송 (F2, F3, F4, F5)

⭐ 수신측은 단순하지만 대역폭이 낭비될 수 있어요.


📝 8번 문제

Selective Repeat ARQ의 핵심 동작은?

① 모든 프레임을 항상 재전송

② 오류가 발생한 프레임만 선택적으로 재전송, 나머지는 수신 버퍼에 보관

③ 한 프레임씩만 전송

④ ACK를 무시

 

✅ 정답: ②

📖 해설

Selective Repeat = 오류 프레임만 재전송 + 나머지는 수신측 버퍼 보관

F0 OK → 상위 전달
F1 OK → 상위 전달
F2 X → 재전송 요청
F3, F4, F5 OK → 수신 버퍼 보관

F2 재전송 도착 → F2, F3, F4, F5 순서대로 상위 전달

⭐ 가장 효율적이지만 수신측 메모리 부담 큼.


📝 9번 문제

Go-Back-N ARQ에서 순서 번호가 비트일 때 최대 송신 윈도우 크기는?

 


📝 10번 문제

Selective Repeat ARQ에서 최대 송신 윈도우 크기는?

⭐ Go-Back-N보다 더 엄격한 제약 — 송수신 윈도우가 겹치지 않도록 설계.

 

 

 


 

 

 

🎯 Lv.2 객관식 — 심화 개념 확인 (10문제)


📝 1번 문제

다음 시나리오에서 가장 적합한 흐름 제어 프로토콜은?

"위성 통신에서 RTT(Round Trip Time)가 매우 길다.
채널 활용률을 최대화하면서 데이터를 효율적으로 전송하고 싶다."

 

① 정지-대기 프로토콜

② 슬라이딩 윈도우 프로토콜

③ 단순 NRZ 부호화

④ 패리티 비트

 

✅ 정답: ②

📖 해설

RTT가 긴 환경 = 슬라이딩 윈도우 필수

환경 적합 프로토콜
짧은 RTT (LAN) 정지-대기도 OK
긴 RTT (위성) 슬라이딩 윈도우

⭐ 정지-대기는 ACK 대기 시간이 길어 위성·장거리에서 거의 사용 못 합니다.


📝 2번 문제

정지-대기 프로토콜에서 ACK가 손실되면 어떻게 처리하는가?

① 통신 종료

② 송신자 타이머 만료 → 재전송 / 수신자는 중복 프레임 폐기 후 ACK 재전송

③ 수신자가 모든 데이터를 폐기

④ 자동으로 무시

 

✅ 정답: ②

📖 해설

ACK 손실 처리

단계 동작
1 송신자 타이머 만료
2 송신자 프레임 재전송
3 수신자 같은 순서 번호 받으면 중복 인식 → 폐기
4 수신자 ACK 다시 전송

⭐ 1비트 순서 번호가 중복 감지에 결정적 역할을 합니다.


📝 3번 문제

다음 시나리오에서 어떤 ARQ가 사용되었는가?

"프레임 0~5를 보내던 중 프레임 2가 손실되었다. 송신자는 프레임 2부터 5까지 모두 다시 보냈다."

 

① Stop-and-Wait

② Go-Back-N

③ Selective Repeat

④ NAK 없는 단순 전송

 

✅ 정답: ②

📖 해설

오류 후 모든 후속 프레임 재전송 = Go-Back-N의 특징

F0, F1 OK
F2 X
F3, F4, F5 → 폐기
재전송: F2, F3, F4, F5 (모두)

⭐ 수신측이 단순한 대신 대역폭 낭비가 단점.


📝 4번 문제

다음 시나리오에서 어떤 ARQ가 사용되었는가?

"프레임 0~5를 보내던 중 프레임 2가 손실되었다. 수신자는 프레임 3, 4, 5를 버퍼에 보관했고, 송신자는 프레임 2만 재전송했다."

 

① Stop-and-Wait

② Go-Back-N

③ Selective Repeat

④ Stop-and-Go

 

✅ 정답: ③

📖 해설

오류 프레임만 재전송 + 후속 프레임 수신 버퍼 보관 = Selective Repeat

F0, F1 OK
F2 X → 재전송 요청
F3, F4, F5 OK → 수신 버퍼 보관
F2 재전송 → F2, F3, F4, F5 순서대로 상위 전달

⭐ 대역폭 효율적이지만 수신 메모리 부담 큼.


📝 5번 문제

비트 순서 번호일 때, Go-Back-N과 Selective Repeat의 최대 윈도우 크기 비교로 옳은 것은?

① Go-Back-N = 16, SR = 16

② Go-Back-N = 15, SR = 8

③ Go-Back-N = 8, SR = 15

④ Go-Back-N = 4, SR = 4

 

✅ 정답: ②

📖 해설


📝 6번 문제

다음 중 슬라이딩 윈도우의 두 종류 윈도우 매칭이 옳은 것은?

① 송신 윈도우 — 수신자가 받기 기대하는 프레임 범위

② 수신 윈도우 — 송신자가 ACK 받지 못한 프레임 범위

③ 송신 윈도우 — 송신했지만 ACK 받지 못한 프레임 범위 / 수신 윈도우 — 받기 기대하는 프레임 범위

④ 두 윈도우의 역할이 같다

 

✅ 정답: ③

📖 해설

윈도우 역할
송신 윈도우 송신했지만 ACK 못 받은 프레임 범위
수신 윈도우 수신자가 받기 기대하는 프레임 범위

윈도우의 헤드/꼬리는 ACK를 주고받으며 슬라이드(이동)합니다.


📝 7번 문제

다음 중 정지-대기 프로토콜에서 1비트 순서 번호가 충분한 이유로 가장 정확한 것은?

① 한 번에 한 프레임만 처리하므로 0과 1을 번갈아 사용하면 충분

② 비트 수가 적을수록 효율적이라서

③ 프레임이 항상 1개씩만 도착하므로

④ 1비트가 표준으로 정해져서

 

✅ 정답: ①

📖 해설

정지-대기 = 한 번에 한 프레임만 전송하고 ACK 대기 → 0/1만 번갈아 쓰면 중복 감지 가능

F0 → ACK1 → F1 → ACK0 → F0 → ...

만약 ACK가 손실되어 F0이 두 번 도착하면 수신자가 중복을 감지하고 폐기합니다.


📝 8번 문제

다음 중 Go-Back-N ARQ의 단점으로 가장 정확한 것은?

① 수신측이 너무 복잡

② 오류 발생 시 OK였던 후속 프레임도 모두 재전송 → 대역폭 낭비

③ ACK가 필요 없음

④ 1비트 순서 번호만 사용

 

✅ 정답: ②

📖 해설

Go-Back-N 특징
장점 수신측 단순, 버퍼 작아도 OK
단점 OK 프레임도 재전송 → 대역폭 낭비

⭐ 오류율이 높은 환경에서는 매우 비효율적이라 SR가 더 적합합니다.


📝 9번 문제

다음 시나리오를 분석한 설명 중 가장 정확한 것은?

"현대 인터넷의 TCP는 슬라이딩 윈도우 기반으로, 누적 ACK를 사용하지만 SACK(Selective ACK) 옵션도 지원해 효율을 극대화한다."

 

① TCP는 정지-대기 프로토콜이다

② TCP는 슬라이딩 윈도우 + Go-Back-N + SR의 장점을 결합한 진화 형태

③ TCP는 ACK를 사용하지 않는다

④ TCP와 ARQ는 무관

 

✅ 정답: ②

📖 해설

TCP = 슬라이딩 윈도우 + 누적 ACK(GBN 스타일) + SACK(SR 스타일)

TCP 기능 데이터 링크 ARQ 대응
윈도우 광고 (rwnd) 슬라이딩 윈도우
누적 ACK Go-Back-N
SACK Selective Repeat

⭐ TCP는 두 ARQ의 장점을 결합한 가장 진화된 형태입니다.


📝 10번 문제

 

 


 

 

🎯 Lv.3 — 객관식 + 빈칸 채우기 혼합 (10문제)


📝 1번 문제 [빈칸형]

다음 흐름 제어 정의 빈칸을 채우시오.

흐름 제어는 송신자가 수신자를 ( ㄱ ) 않도록 데이터 전송 ( ㄴ )을(를) 조절하는 메커니즘이다. 핵심 목적은 수신자의 ( ㄷ ) 오버플로우를 방지하는 것이다. 두 가지 핵심 프로토콜은 한 번에 한 프레임씩 보내는 ( ㄹ ) 프로토콜과 여러 프레임을 동시에 보낼 수 있는 ( ㅁ ) 프로토콜이다.

 

✅ 정답

  • ㄱ: 압도하지(overwhelming)
  • ㄴ: 속도(Rate)
  • ㄷ: 버퍼(Buffer)
  • ㄹ: 정지-대기(Stop-and-Wait)
  • ㅁ: 슬라이딩 윈도우(Sliding Window)

📖 해설 ⭐ 흐름 제어 핵심:

목적 : 수신자 버퍼 보호
방법 : 정지-대기 / 슬라이딩 윈도우

📝 2번 문제 [빈칸형]

다음 ARQ 3종 빈칸을 채우시오.

ARQ 핵심 동작 최대 윈도우
( ㄱ ) 한 프레임 보내고 ACK 대기 1
( ㄴ ) 오류 후 모든 후속 프레임 재전송 ( ㄷ )
( ㄹ ) 오류 프레임만 재전송, 나머지 버퍼 보관 ( ㅁ )

✅ 정답

📖 해설 ⭐ 윈도우 공식 한 묶음:

Stop-and-Wait: 1
Go-Back-N    : 2^n - 1
Selective Repeat: 2^(n-1)

📝 3번 문제 [객관식]


📝 4번 문제 [빈칸형]

다음 정지-대기 ARQ의 문제 상황 처리 빈칸을 채우시오.

상황 처리 방법
프레임 손실 ( ㄱ ) 만료 → 재전송
ACK 손실 타이머 만료 → 재전송 → 수신자는 ( ㄴ ) 프레임 폐기 후 ACK 재전송
중복 프레임 감지 ( ㄷ )비트 순서 번호로 판별

✅ 정답

  • ㄱ: 타이머(Timer)
  • ㄴ: 중복(Duplicate)
  • ㄷ: 1

📖 해설 ⭐ 1비트 순서 번호의 핵심 기능:

F0 → ACK1 → F1 → ACK0 → F0 → ...
순서 번호로 중복 프레임을 감지!

📝 5번 문제 [객관식]

다음 중 누적 ACK(Cumulative ACK)의 동작 원리로 가장 정확한 것은?

① ACK 번호를 모두 합산

② 특정 프레임의 ACK가 도착하면 그 이전 모든 프레임도 ACK된 것으로 간주

③ ACK가 누적되어 지연 발생

④ ACK가 1000번에 한 번씩만 발생

 

✅ 정답: ②

📖 해설

[누적 ACK 시나리오]
프레임 0, 1, 2, 3 전송
ACK 1, 2, 3 → 손실
ACK 4 도착 → "0~3 모두 OK, 다음은 4번 기대"

⭐ ACK 일부 손실에 강한 효율적 메커니즘. 슬라이딩 윈도우의 핵심 기능 중 하나.


📝 6번 문제 [빈칸형]

다음 시나리오를 분석하고 빈칸을 채우시오.

송신자가 프레임 0~7을 연속 전송했다. 프레임 2가 손실되었고, 프레임 3, 4, 5, 6, 7은 잘 도착했다.

① ( ㄱ ) ARQ를 사용하면: 송신자는 프레임 2부터 7까지 ( ㄴ )를 모두 재전송한다. (대역폭 ( ㄷ ))
② ( ㄹ ) ARQ를 사용하면: 송신자는 프레임 ( ㅁ )만 재전송하고, 수신측은 3~7을 ( ㅂ )에 보관 후 순서대로 상위 전달한다.

 

✅ 정답

  • ㄱ: Go-Back-N
  • ㄴ: 6개 프레임(2,3,4,5,6,7)
  • ㄷ: 낭비
  • ㄹ: Selective Repeat
  • ㅁ: 2 (오류 프레임만)
  • ㅂ: 수신 버퍼

📖 해설

ARQ 재전송
Go-Back-N F2, F3, F4, F5, F6, F7 (6개)
Selective Repeat F2만

⭐ 효율성에서 SR이 압도적이지만 수신 메모리 부담이 큼.


📝 7번 문제 [객관식]

다음 중 정지-대기 프로토콜의 채널 활용률 공식으로 옳은 것은?


📝 8번 문제 [빈칸형]

다음 ARQ 3종 비교 표 빈칸을 채우시오.

항목 Stop-and-Wait Go-Back-N Selective Repeat
동시 전송 ( ㄱ )개 여러 개 여러 개
재전송 방식 1개씩 ( ㄴ ) ( ㄷ )
수신측 버퍼 1개 작음 ( ㄹ )
최대 윈도우 1 ( ㅁ ) ( ㅂ )
효율성 매우 낮음 중간 ( ㅅ )

✅ 정답

  • ㄱ: 1
  • ㄴ: 오류 후 모두 재전송
  • ㄷ: 오류 프레임만 재전송
  • ㄹ: (메모리 부담)
  • ㅁ: 2n−12^n - 1
  • ㅂ: 2n−12^{n-1}
  • ㅅ: 매우 높음

📖 해설 ⭐ 시험 단골 비교 표 — 통째로 외우세요.


📝 9번 문제 [객관식]

① 메모리를 아끼기 위해

② 송신과 수신 윈도우가 순서 번호 공간에서 겹쳐 옛 재전송 프레임을 새 프레임으로 오인하는 것을 방지

③ 1비트 순서 번호만 사용하므로

④ ACK 횟수를 줄이기 위해

 

✅ 정답: ②

📖 해설 SR 윈도우 제약: 송신 + 수신 윈도우 합이 순서 번호 공간 (2n2^n )을 넘으면 송신측이 보낸 새 프레임의 번호가 이전 재전송 프레임과 같아져 수신측이 혼동합니다. 이를 막기 위해 송수신 윈도우를 각각 2n−12^{n-1} 로 제한해 합이 2n2^n 을 넘지 않게 해요.


📝 10번 문제 [빈칸형]

다음 종합 표의 빈칸을 채우시오.

항목 핵심
흐름 제어 목적 수신자 ( ㄱ ) 보호
정지-대기 순서 번호 ( ㄴ )비트
슬라이딩 윈도우 핵심 여러 프레임 ( ㄷ ) 전송
Go-Back-N 윈도우 공식 (ㄹ)
Selective Repeat 윈도우 공식 (ㅁ)
누적 ACK 특정 ACK = 그 ( ㅂ ) 모두 ACK 처리
현대 TCP 사용 방식 슬라이딩 윈도우 + ( ㅅ ) ACK + ( ㅇ ) ACK 옵션

✅ 정답

 

📖 해설 

[14편 한 줄 요약]
흐름 제어 = 버퍼 보호
정지-대기 (1비트) = 단순, 비효율
슬라이딩 윈도우 = 연속 전송, 누적 ACK

Go-Back-N      → 윈도우 2^n - 1, 모두 재전송
Selective Repeat → 윈도우 2^(n-1), 오류만 재전송

TCP = 슬라이딩 + 누적 ACK + SACK