CS/Network

[Chapter 6] 데이터 링크 계층(HDLC 프로토콜)

devrabbit22 2025. 2. 13. 02:15

HDLC 프로토콜

ISO에서 IBM SNA의 데이터 링크 프로토콜로 사용되는 SDLC를 HDLC로 발전시켰다. CCTTT에서는 HDLC를 다시 수정하여 X.25에서 사용할 수 있도록 LAP으로 발전시켰으며, 이는 다시 LAPB로 향상되었다. 이들 프로토콜은 모두 같은 뿌리에서 시작해 기본 특성이 유사하다.

HDLC 프로토콜은 컴퓨터가 일대일 혹은 일대다로 연결된 환경에서 데이터의 송수신 기능을 제공한다. 데이터 통신을 위해 연결된 호스트들은 주국과 종국으로 구분되고, 다시 이들의 기능을 모두 지닌 혼합국으로 정의될 수 있다. 주국에서 전송되는 메시지를 명령이라 정의하며, 이에 대한 종국의 회신을 응답이라 한다.

프레임 구조

HDLC 프레임의 구조로, 상단의 숫자는 비트 수 이다. 프레임의 좌우에 위치한 01111110 플래그는 프레임의 시작과 끝을 구분한다.

HDLC 프로토콜의 프레임 구조에서 정의된 각 필드의 의미

Address : 일대다로 연결된 환경에서 특정 호스트를 구분하여 지칭하는 목적으로 사용한다. 주국에서 정보 프레임을 전송할 때는 수신 호스트인 종국 주소를 표기하며, 종국에서 전송할 때는 송신 호스트인 자신의 주소가 기록된다. 일대일 환경에서는 명령과 응답을 구분하는 용도로 사용할 수 있다.

Control : 프레임의 종류를 구분한다. 프레임 유형에 따라 송신용 순서 번호, 회신용 순서 번호와 기타 중요한 제어코드를 포함한다.

Data : 가변 크기의 전송 데이터가 포함되는데, 상위 계층인 네트워크 계층에서 보내진 패킷이 캡슐화가 된다.

Checksum : CRC-CCITT를 생성 다항식으로 하는 오류 검출 용도로 사용된다.

HDLC 프레임

프레임의 종류

프레임의 용도는 Control 필드 값에 따라 세 종류로 구분된다. 즉, 네트워크 계층에서 내려온 패킷을 전송하기 위한 정보 프레임, 정보 프레임에 대한 응답 기능을 수행하는 감독 프레임, 연결 설정의 제어와 관련된 비번호 프레임으로 나뉜다.

정보 프레임

네트워크 계층의 데이터 전송을 위해 정의된 정보 프레임은 3비트의 순서 번호를 이용한 슬라이딩 윈도우 프로토콜을 사용한다. 순서 번호는 비트 수가 3개이므로 0~7의 순서 번호 8개를 순환하여 사용한다.

  • seq :정보 프레임의 송신용 순서 번호로 사용한다.
  • Next :피기배킹을 이용한 응답 기능으로 사용한다. 이 값은 제대로 수신된 프레임 번호가 아닌, 다음에 수신을 기대하는 프레임 번호이다. 따라서 이 버호 이전까지의 프레임은 모두 오류 없이 수신되었음을 의미한다.
  • P/F : 값이 1로 지정되었을 경우에 한하여 poll 혹은 Final의 의미를 갖는다. 일반적으로 주국의 명령 프레임에서 사용될 떄는 Poll이라 하고, 종국의 응답 프레임에서 사용될 때는 Final이라 한다. 하나의 주국 컴퓨터가 다수의 종국 컴퓨터를 제어하기 위한 용도이며, 주국에서 종국에 데이터 전송을 허가할 때 사용한다. 즉, 주국에서 데이터를 보내고자 하는 종국이 있는지 확인할 때는 Poll의 의미로 1값을 지정하며, 종국에서 주국으로 데이터를 전송할 때는 Final의 의미로 사용한다.

감독 프레임

감독 프레임은 정보 프레임에 대한 응답 기능을 수행하는 프레임이다. 크게 긍정 응답 프레임과 부정 응답 프레임으로 구분된다. 프레임의 세부 종류는 Type 필드 값에 따라 네가지로 구분된다.

  • Type 0 : RR로 정의된 긍정 응답 프레임이다. 다음에 수신을 기대하는 프레임 번호를 Next 필드에 표시한다.
  • Type 1 : REJ로 정의된 부정 응답 프레임이다. Next 필드에는 재전송 되어야 하는 프레임의 번호를 표시한다. 따라서 송신 호스트는 Next 필드의 번호로 시작하는 프레임부터 재전송해야 한다.
  • Type 2 : RNR로 정의된 응답 프레임으로 흐름 제어 기능까지 제공한다. 즉, Next 필드에 표시한 순서 번호를 갖는 정보 프레임의 바로 앞 번호까지 제대로 수신되었다는 긍정 응답 기능과 함께 송신 호스트에 송신을 중지하도록 요구한다. 송신 호스트에 다시 전송을 요구할 때는 RR, REJ 혹은 기타의 제어 프레임을 전송하면 된다.
  • Type 3 : SREJ로 정의된 프레임으로, 선택적 재전송 방식에서 부정 응답 기능을 지원한다. 즉, Next필드의 순서 번호를 갖는 특정 프레임에 대해 재전송 요구 기능을 갖는다.

비번호 프레임

비번호 프레임은 순서 번호가 없는 프레임을 정의한다. 주로 연결 제어 등의 용도로 사용하지만, 비연결형 데이터 전송을 위해 사용하기도 한다.

비번호 프레임은 Type과 Modifier 필드를 합해 총 5비트로 다음과 같은 프레임을 정의한다.

  • SAMB(Set ABM) : 비동기 균형 모드의 연결 설정을 요구한다.
  • SNRM(Set NRM) : 정규 응답 모드의 연결 설정을 요구한다.
  • SARM(Set Arm) : 비동기 응답 모드의 연결 설정을 요구한다.
  • DISC(DISConnect) : 연결 설정 해제를 요구한다.
  • RSET(ReSET) : 비정상적인 프로토콜의 동작에 따른 리셋 기능을 수행한다.
  • FRMR(FRaMe Reject) : 비정상적인 프레임의 수신을 거부한다.
  • UA(Unnumbered ACK) : 비번호 프레임에 대한 응답 기능을 요구한다.
  • SNAM, SABM, SARM은 연결 설정을 요구할 때 세 가지 연결 모드에 적용된다.

용 중인 연결을 해제하려면 DISC 프레임을 이용하며, UA는 비번호 프레임에 대한 긍정 응답으로 이용한다. FRMR은 프레임에 오류는 없지만 연결 상태의 논리적인 의미가 상실된 경우에 사용된다. RSET 명령은 종국에 하드웨어 제어 기능을 리셋하도록 통보하는 용도로 사용한다.

LAP 프로토콜

LAP은 비동기 응답모드인 RM으로 동작하는 프로토콜이다. 연결 설정 과정은 주국에서 전송된 SARM 명령에 대하여 종국에서 UA 응답을 전송함으로써 완료된다.

LAP은 비동기 응답 모드로 동작하기 때문에 종국에서 주국으로 SARM 응답을 전송하여 연결을 요구할 수 있다. 종국으로부터 SARM응답을 받은 주국은 SARM 명령을 전송하고, 최종적으로 종국에서 UA 응답을 전송함으로써 연결 설정이 된다.

이와 같이 종국에서 시작된 연결 설정은 3단계로 이루어지는 효과가 발생한다. 연결을 해제할 경우에도 주국으로부터 DISC 명령이 발생하면 종국에서 UA 응답을 전송하는 것으로 해제가 완료된다. 그러나 b와 같은 원리에 의해 종국에서 DISC 응답에 의한 연결 해제는 3단계로 이루어진다.

LAPB 프로토콜

LAPB는 양쪽 호스트가 혼합국으로 동작하기 떄문에 누구나 먼저 명령을 전송할 수 있다.

비동기 균형 모드의 연결을 설정하기 위해 오른쪽 호스트가 왼쪽 호스트에 SABM 명령을 전송한 경우이다. 왼쪽 호스트에서는 UA 응답을 전송함으로써 계층 2의 연결 설정이 완료된다.

연결 해제의 경우에도 임의의 호스트에서 DISC 명령을 전송하고, 이를 수신한 측에서 UA 응답을 함으로써 완료된다.


Reference

쉽게 배우는 데이터 통신과 컴퓨터 네트워크