9. Data Link Control Protocols

chelseey·2025년 6월 16일
0

스테이션(Station) 유형

  • Primary (주 제어)
    링크 제어 명령(Commands) 발행

  • Secondary (종속 제어)
    Primary의 명령에 응답(Responses)만

  • Combined (혼합 제어)
    Primary/Secondary 역할을 모두 수행

링크 구성 모드

  • Unbalanced (비대칭)
    1×Primary ↔ 다수의 Secondary
    기지국 ↔ 단말 등 중앙집중식 토폴로지에 적합

  • Balanced (대칭)
    2대의 Combined 스테이션 간 동등 제어
    동료 간(peer-to-peer) 링크에 적합

HDLC Data Transfer Modes

Normal Response Mode (NRM)

  • 용도: Polling 방식의 다중 드롭(multi-drop) 링크
  • 구성: Unbalanced (1 Primary ↔ 다수 Secondary)
  • 전송 시작: 오직 Primary만

Asynchronous Balanced Mode (ABM)

  • 용도: full-duplex point-to-point 링크
  • 구성: Balanced (2개의 Combined 스테이션)
  • 전송 시작: 어느 쪽 스테이션이든 가능
  • 가장 널리 사용

Asynchronous Response Mode (ARM)

  • 구성: Unbalanced
  • 전송 개선: Secondary가 Primary 허가 없이도 전송 가능
  • 사용 빈도는 매우 낮음

HDLC Frame Structure

HDLC 프레임 구조

프레임 전반(8n 비트 단위)

  • Flag: 프레임의 시작·끝을 표시
  • FCS(Frame Check Sequence): 헤더와 정보 필드 전체에 대한
    CRC 오류 검출 코드(기본 16비트, 필요시 32비트)

주소 필드(Address Field)

  • 기본 8비트, 필요시 7비트 청크를 연속 사용(n개)해 확장 가능
  • 각 청크 최상위 비트(MSB)가 1일 때 “마지막 옥텟”임을 나타냄

제어 필드(Control Field)

  • 8비트 모드
  • 16비트 모드

비트 스터핑(Bit Stuffing)

  1. 송신 측에서는 ‘1’이 다섯 개 연속으로 전송될 때마다
    자동으로 ‘0’을 하나 끼워 넣음

  2. 이렇게 삽입된 ‘0’은 검사용(stuffed) 비트로,
    수신 측에서 꺼내서(비트 디스터핑) 원래 데이터 스트림을 복원함

Address Field

HDLC 주소 필드
: 해당 프레임을 전송했거나 받을 Secondary 스테이션을 지정

  • 기본 8비트(1옥텟)
  • 필요 시 7비트씩 추가 확장 가능(다중 옥텟)

확장 옥텟의 구분

  • 각 옥텟 최상위 비트(MSB):
    1 → 마지막 옥텟
    0 → 뒤에 추가 옥텟 있음

브로드캐스트 주소

  • 11111111₂ 사용 시, Primary가 모든 Secondary에 프레임을 동시에 전송

HDLC Frame Structure

Information Frame (I-Frame)

  • 용도: 사용자 데이터(payload)를 전송
  • 데이터 전송과 동시에 흐름 제어(flow control)·오류 제어(error control) 정보를 ARQ 방식으로 piggybacking해서 보냄

Supervisory Frame (S-Frame)

  • 용도: ARQ 제어(재전송 요청, 수신 확인)
  • 데이터 페이로드는 없음 (보낼 data 없는 경우)

Unnumbered Frame (U-Frame)

  • 용도: 링크 설정·해제, 상태 전환, 모드 전환 등 보조 제어 기능

Control Field

HDLC 제어 필드(Control Field)

P/F 비트(Poll/Final)

  • 명령 프레임(Command frame):
    P 비트 = 1 → 상대측에게 응답(폴링)을 요청
  • 응답 프레임(Response frame):
    F 비트 = 1 → 요청에 대한 응답임을 표시

순번 번호(Sequence Number)

  • I-프레임, S-프레임:
    기본: 3비트 순번 사용
    필요 시 확장 제어 필드로 7비트 순번 가능

  • U-프레임 (제어·관리용 프레임)
    : 항상 8비트 제어 필드만 사용

Information and Frame Check Sequence (FCS) Fields

정보 필드(Information Field)

존재 위치:

  • I-프레임(Information frame) 항상
  • 일부 U-프레임(Unnumbered frame) 선택적으로

크기:

  • 가변 길이, 바이트(Octet) 단위
  • 반드시 정수 바이트 수를 가져야 함

프레임 검사 부호 필드(Frame Check Sequence, FCS)

역할: 프레임(Flag 제외) 전체 비트에 대한 오류 검출 코드

기본 형식: 16비트 CRC-CCITT

선택 형식:

  • 32비트 CRC-32 사용 가능
  • (프레임 길이 또는 전송로 신뢰도에 따라 선택)

HDLC Commands and Responses

HDLC 명령/응답 중 주요 프레임 타입 및 서브타입

감독 프레임(Supervisory, S-frames)

  • Receive Ready (RR)
  • Receive Not Ready (RNR)
  • Reject (REJ) : N(R) 이전 번호로 되돌아가 재전송 요청
  • Selective Reject (SREJ) : 특정 프레임만 선택 재전송 요청

번호 없는(Unnumbered, U-frames)

  • SNRM / SNRME : NRM 모드 설정 (7비트 시퀀스 번호 확장)
  • SARM / SARME : ARM 모드 설정
  • SABM / SABME : ABM 모드 설정
  • SIM : 초기화 모드 설정

HDLC Operation

HDLC 동작

초기화(Initialization)

  • 초기화 요청을 상대측에 알림
  • NRM·ABM·ARM 중 사용할 모드(NRM/ABM/ARM) 선택
  • 사용할 시퀀스 번호 비트 폭(3비트 vs 7비트) 결정

데이터 전송(Data Transfer)

  • I-프레임의 N(S)/N(R) 필드로 순차 번호를 부여
  • 순서 제어·오류 제어(ARQ) 모두 I-프레임에 결합
    (‘RR’ 프레임은 반대 방향에 데이터가 없을 때 사용)

해제(Disconnect)

  • 자체 이벤트(오류 발생 등)나 상위 계층 요청으로 연결 해제 시작
  • DISC 프레임 전송 → 상대측에서 UA(수락) 응답
  • 미확인된 I-프레임은 손실될 수 있으며, 복구는 상위 계층 책임

0개의 댓글