데이터링크 프로토콜은 문자 방식의 BSC(Binary Synchronous Communication)와 비트 방식의 SDLC(Synchronous Data Link Control), HDLC(High-level Data Link Control)로 구분된다. 문자 방식 프로토콜은 전송된 프레임을 1바이트(8비트) 문자로 해석하며 모든 제어정보는 ASCII 코드로 구성된다. 하지만 비트 방식의 프로토콜에서는 전송 프레임을 개별 비트의 전송으로 해석하여 제어정보 또한 일정한 패턴 안에 내장된 비트 묶음이 될 수 있다.
HDLC 프로토콜
HDLC는 세 개의 스테이션, 두 개의 링크 구성 방식, 세 개의 데이터 전달 모드를 정의하고 있다. 먼저 스테이션에는 주 스테이션, 종속 스테이션, 혼성 스테이션이 있다.
- 주 스테이션: 명령(Command)을 전송한다.
- 종속 스테이션: 명령에 응답(Response)한다.
- 혼성 스테이션: 명령과 응답 모두 전송한다.
주 스테이션과 종속 스테이션으로 데이터링크를 구성했다면 이를 불균형 구성(Unbalanced configuration) 방식이라고 하고 두 개의 혼성 스테이션으로 구성했다면 균형 구성(Balanced configuration) 방식이라 한다.
이것은 ENQ/ACK 또는 폴링 방식을 HDLC에 적용한 것으로 볼 수 있다. 실제 데이터 전달 모드에는 NRM, ABM, ARM 등이 있다. NRM(Normal Response Mode)은 주 스테이션이 종속 스테이션으로 데이터 전송을 임의로 개시할 수 있으나, 종속 스테이션은 주 스테이션에서 폴을 받아야만 전송할 수 있어서 불균형 구성이 된다. ABM(Asynchronous Balanced Mode)은 혼성 스테이션 중 한쪽의 허락을 받지 않고도 전송을 개시할 수 있어서 균형 구성이 된다. ARM(Asynchronous Response Mode)은 종속 스테이션이 주 스테이션의 명확한 허가 없이 전송을 할 수 있다. 명령을 기다리지 않고 응답을 보낼 수 있다는 뜻이다. 그러므로 여전히 주 스테이션이 회선, 전송개시, 오류제어복원, 논리적 분리 등을 책임지며 불균형 구성이 된다.
HDLC 프레임 형식
HDLC 프레임은 플래그 영역, 주소 영역, 제어 영역, 정보 영역 FCS 영역으로 구분된다.
- 플래그 영역
플래그(Flag) 영역은 프레임의 시작과 끝을 나타내기 위해 사용된다. 8비트로 구성되며 고유의 패턴(01111110)을 갖는다. 수신지 스테이션이 프레임을 수신하는 동안 프레임의 끝이 아닌 중간에 01111110이라는 패턴이 나오는 것을 방지하기 위해 비트 삽입(Bit Stuffing)을 사용한다. 전송 스테이션은 프레임의 중간에 1이 연속해서 5개 발생하면 그 뒤에 0을 첨가한다. 반대로 수신 스테이션은 시작 플래그를 발견한 뒤 비트 스트림을 검사해 1이 연속해서 5개 나타나면 6번째 비트를 검사하여 그 값이 0이면 이 값을 제거한다.
- 주소 영역
주소(Address) 영역은 프레임 형식의 두 번째 영역으로, 프레임을 수신하는 종속 스테이션(수신지 스테이션)을 식별할 때 사용한다. 보통 8비트 길이이지만 확장 형식을 사용할 수도 있다. 주 스테이션이 모든 부 스테이션에 프레임을 방송할 때는 '11111111' 주소값을 사용한다.
- 제어 영역
제어(Control) 영역은 정보 프레임(I-프레임), 감시 프레임(S-프레임), 번호가 붙지 않는 프레임(U-프레임) 등 세 종류의 프레임을 정의한다. 정보 프레임은 사용자 프레임을 전송하며 ARQ 메커니즘을 사용하는 오류제어 프레임이 정보 프레임에 실려 전송된다. 이러한 방법을 피기백(Piggyback)이라 한다. 피기백이 사용되지 않을 때는 감시 프레임이 ARQ 메커니즘을 제공하며 번호를 갖지 않는 프레임이 보조링크 제어 기능을 제공한다. 제어 영역의 첫 번째 비트 한 개 또는 두 개로 프레임의 종류를 식별한다. S-프레임과 I-프레임을 위한 기본적인 제어 영역은 3비트의 연속 숫자를 사용한다.
- 정보 영역
정보(Information) 영역은 I-프레임과 U-프레임에만 있다. 이 영역은 임의의 순서로 된 비트 패턴을 가질 수 있다. 길이는 정해져 있지 않으나 구현 방법에 따라 특정한 최댓값을 갖는다.
- FCS 영역
FCS(Frame Check Sequence) 영역은 플래그 영역을 제이한 정보 영역 이후부터 적용된다. 정규 FCS는 16비트 CRC CCITT가 된다. 하지만 프레임 길이나 회선의 신뢰성을 위해 CRC-32를 사용하는 32비트 FCS를 사용할 수도 있다.
HDLC 프레임의 종류와 동작
제어 영역에서 살펴보았듯이 HDLC 프레임은 용도에 따라 세 가지 종류로 나뉜다. 사용자 정보를 전송하는 I-프레임, 오류제어를 관리하고 감시하는 S-프레임, 그리고 링크의 연결과 해제에 관련해 쓰이는 U-프레임이다.
- 정보 프레임(I-프레임)
HDLC의 기본적인 동작은 사용자 데이터를 갖는 정보 프레임 즉 I-프레임(Information Frame)의 교환에 있다. 각각의 I-프레임은 피기백된 양(+)의 ACK 프레임과 전송 프레임의 순차 번호를 포함하고 있다. ACK는 다음에 기대되는 순차번호이다. 최대 윈도우의 크기는 127까지 가능하다. I-프레임은 P-F 영역을 가지고 있다. 주 스테이션으로부터의 명령을 위한 비트는 P(Poll) 비트이고, 종속 스테이션으로부터의 응답을 위한 비트는 F(Final) 비트이다. ARM에서 주 스테이션은 P 비트를 1로 놓음으로써 전송을 허가하고, 부 스테이션은 응답의 마지막 I-프레임에 F 비트를 1로 설정한다. ARM과 ABM에서 P/F 비트는 때때로 S-프레임과 U-프레임의 교환을 지시하는데 사용되기도 한다.
- 감시 프레임(S-프레임)
감시 프레임(Supervisory Frame)은 흐름제어나 오류제어를 위해 사용되며, GBn ARQ와 SR ARQ를 허용한다. 피기백을 하는 I-프레임이 없을 때 RR(Receive Ready)로 양(+)의 ACK를 나타낸다. RNR(Receive Not Ready)은 RR이 올 때까지 더 이상의 I-프레임을 보내지 말 것을 요청하는데 사용된다. RR, RNR, REJ 프레임에서 N(R)은 다음 기대되는 I-프레임의 순차번호를 표시하며, SR에서 N(R)은 거절된 프레임의 순차번호가 된다. 주 스테이션은 종속 스테이션에 대한 폴을 하기 위해 RR 프레임 내의 P 비트를 설정한다. 종속 스테이션은 I-프레임이 있으면 I-프레임을 전송하고, 그렇지 않으면 보낸 데이터가 없다는 표시로 F 비트를 설정하여 RR을 보낸다. 주 스테이션(이 경우 혼성 스테이션)은 종속 스테이션/혼성 스테이션의 수신 상태를 알기 위해 RNR 명령의 P 비트를 설정해 전송한다. 그 스테이션이 I-프레임을 수신할 수 있으면 F비트를 설정해 RR로 응답하고 수신할 준비가 되어있지 않은 경우는 F 비트를 설정해 RNR로 응답한다.
- 번호가 붙지 않은 프레임(U-프레임)
번호가 붙지 않은 프레임 즉 U-프레임(Unnumbered Frame)은 링크의 연결과 해제 등 여러 가지 제어 기능을 위해 사용된다. 이 프레임에는 순차번호가 없으면 번호를 가진 I-프레임의 순서나 흐름을 바꾸지 않는다.
S-프레임과 U-프레임은 제어 및 관리 감시 목적으로만 사용되므로 정보 영역은 포함하지 않는다. 이 세 가지 프레임 중 어떤 형식의 프레임이 전송되는지를 결정하는 것이 8비트의 제어 영역이다. 프레임 ID(IDentifier)를 위해 할당된 영역이 제어 영역의 처음 두 비트인데, 제어 영역의 첫 번째 비트가 0이면 I-프레임을 나타내고, 1, 2번째 비트가 10과 11이면 각각 S-프레임과 U-프레임을 나타낸다. S-프레임의 세 번째와 네 번째 비트는 네 가지의 S-프레임 종류를 분류할 수 있게 하며, U-프레임에 위치한 5개의 M비트는 32가지 종류로 세분화한다.
댓글