CS/정보통신공학

[정보통신공학] Ch07. Data Link Control Protocols

rngPwns 2025. 4. 11. 14:59

핵심 주제

  • 흐름 제어 (Flow Control)
    • Stop-and-Wait 흐름 제어
    • Sliding-Window 흐름 제어
  • 오류 제어 (Error Control)
    (ARQ: Automatic Repeat Request, 자동 재전송 요청 방식)
    • Stop-and-Wait ARQ
    • Sliding-Window ARQ
      • Go-Back-N ARQ
      • Selective-Reject ARQ
  • 고급 데이터 링크 제어 프로토콜 (HDLC: High-Level Data Link Control)

용어 정리

  • Layer 2의 PDU(Protocol Data Unit) → "프레임(Frame)"
  • 프레임 유형:
    • 데이터 프레임: L2 페이로드에 IP 패킷 포함
    • ACK 프레임: IP 패킷 없음 (확인 응답용)

✅ 흐름 제어 (Flow Control)

  • 송신자가 수신자의 처리 능력을 초과하지 않도록 하는 메커니즘
    버퍼 오버플로 방지

일반 흐름

  1. 수신자는 최대 크기의 데이터 버퍼 할당
  2. 수신 후 상위 계층으로 전달 전 처리 필요
  3. 흐름 제어 없으면 버퍼가 가득 차서 데이터 손실 발생

프레임 전송 모델

  • L2 헤더에는 오류 없음, **L2 페이로드에서 CRC(FCS)**로 오류 감지 가능

✅ 왜 데이터를 작은 블록으로 나누는가?

  • 큰 블록은 작은 프레임들로 나눔
    이유:
  1. 수신자의 버퍼가 작기 때문
  2. 오류 발생 시 작은 프레임 단위로 빠르게 감지 및 재전송 가능
  3. 공유 매체에서는 한 노드의 장시간 점유 방지

✅ Stop-and-Wait 흐름 제어

  • 가장 단순한 흐름 제어 방식
  • 한 번에 하나의 프레임만 전송, ACK 수신 후 다음 프레임 전송
  • 버퍼 불필요
  • 큰 데이터가 여러 작은 프레임으로 나뉘면 비효율적

TX 절차

  1. 프레임 전송
  2. ACK 수신 대기
  3. 수신 시 다음 프레임 전송

RX 절차

  1. 프레임 수신 및 ACK 응답
  2. 필요 시 ACK 지연으로 흐름 중단 가능

Stop-and-Wait: 링크 활용도 계산

  • 전송 시간: 1
  • 전파 지연: a
    a가 클수록 효율성 낮음

✅ Sliding-Window 흐름 제어

  • W개의 프레임을 동시에 전송 가능
  • 수신자는 W개의 버퍼 확보
  • 각 프레임에 시퀀스 번호 부여, modulo 2ᵏ 순환
    • 최대 번호 = 2ᵏ - 1
    • 예: k=3이면 시퀀스 번호는 0~7 반복

ACK 포함 내용: 다음 기대 시퀀스 번호
누적 ACK 방식


ACK 프레임 종류

  • RRk (Receive Ready k): k-1까지 수신했으며, k번째 수신 준비 완료
  • RNRk (Receive Not Ready k): k-1까지 수신했지만 이후 수신 불가
    정상 ACK 도착 시 재개

Piggybacking

  • 전이중 통신에서만 사용
  • 데이터 프레임에 데이터+ACK 시퀀스 번호를 동시에 포함

3가지 경우:

  1. 데이터 + ACK 모두 → 통합 전송
  2. ACK만 → ACK 전용 프레임
  3. 데이터만 → 마지막 ACK 포함하여 데이터 전송

예제: Sliding-Window에서 W 계산

  • F0~F6 전송, RR2 수신 → F0, F1 수신 확인
  • F2~F6 = 아직 ACK 안 받은 프레임 = 5개
  • 이후 5개 추가 전송 가능 → 총 10개 → W = 10

슬라이딩 윈도우 구조 시각화

  • 송신자 측: 전송 후 윈도우 후방 줄어듦, ACK 수신 시 전방 확장
  • 수신자 측: 수신 후 후방 줄어듦, ACK 전송 시 전방 확장

✅ 오류 제어 (Error Control)

기법설명
오류 검출 수신한 프레임 검사
긍정 응답 (ACK) 수신 성공 여부 통보
타임아웃 후 재전송 ACK 누락 시 재전송
부정 응답 (NACK) 오류 발생 시 즉시 재전송 요청
  • 프레임 종류: 데이터 프레임, ACK 프레임
  • 오류 종류:
    • 유실: 타임아웃 → 재전송
    • 손상: RX에서 프레임 폐기

✅ ARQ: 자동 재전송 요청

  • 신뢰성 없는 링크를 신뢰성 있게 만드는 방식
  • 주요 유형:
    • Stop-and-Wait ARQ
    • Sliding-Window ARQ
      • Go-Back-N
      • Selective-Reject

목표: 손실 없이 순서대로 수신


✅ Stop-and-Wait ARQ

  • 한 프레임 전송 후 ACK 기다림
  • 타임아웃 or 손상 시 재전송
  • ACK 손상 시 중복 수신 방지 위해 0/1 교번 시퀀스 번호 사용

Stop-and-Wait ARQ 시각도

  • Send Window: 1
  • Receive Window: 1
  • 타이머 필요

✅ Go-Back-N ARQ

  • Sliding Window 기반, 가장 많이 사용됨
  • 오류 없는 경우: RR or piggybacked ACK 수신
  • 오류 발생 시:
    • RX는 오류 프레임 및 이후 프레임 모두 폐기
    • REJ 전송 → TX는 해당 프레임부터 전부 재전송
  • TX는 단일 타이머 사용

윈도우 크기

  • Send W = 2ᵏ – 1
  • Receive W = 1

✅ Selective-Reject ARQ (SR)

  • Go-Back-N의 비효율을 개선
  • 오류 프레임만 재전송
  • 수신자는 out-of-order 프레임 버퍼링 가능해야 함

수신 응답

  • 올바른 프레임 → 개별 ACK
  • 오류 프레임 → SREJk (Selective Reject)

SR의 장단점

장점단점
재전송 최소화 → 위성 링크에 적합 RX 버퍼 요구량 ↑
긴 지연 환경에 효율적 논리 복잡도 ↑
  • Send/Recv W = 2ᵏ⁻¹
    → 이유: 중복 프레임 오인 방지

✅ HDLC (High-Level Data Link Control)

  • ISO 3009 / ISO 4335 표준
  • 많은 링크 제어 프로토콜의 기반

통신국 유형

  • Primary (주국)
  • Secondary (종속국)
  • Combined (혼합)

링크 구성

  • Unbalanced, Balanced

동작 모드

  • NRM (정상 응답 모드)
  • ABM (비동기 대칭 모드)
  • ARM (비동기 응답 모드)

✅ HDLC 프레임 구조

  • 비트 지향 동기 전송 사용
  • 단일 프레임 형식으로 데이터/제어 모두 처리
필드설명
Flag 01111110 (시작/종료)
Address 다지점 통신 주소
Control 흐름/오류 제어 정보
Information 데이터 or 제어 정보
FCS 오류 검출용

프레임 유형:

  • I: 정보 프레임
  • S: 감독 프레임
  • U: 번호 없는 제어 프레임

비트 스터핑

  • 데이터에 Flag 패턴 포함 시 혼동 방지
  • 5개의 1 뒤에 0 삽입 (TX)
  • 수신 시 0 제거
  • 11이면 오류로 간주 → ABORT

✅ HDLC 동작 단계

  1. 연결 설정 (U-프레임)
  2. 데이터 교환 (I/S 프레임)
  3. 연결 해제 (U-프레임)