데이터통신 11.3 HDLC
HDLC(High-level Data Link Control) (하이레벨 데이터 링크 제어)
는 점-대-점 과 다중점 링크 위에서 통신을 위한 비트지향 프로토콜이다.
이것은 앞서 논의한 정지/대기 프로토콜을 구현한다.
이 프로토콜이 실제보다 이론적인 문제가 있찌만, 이 프로토콜에 정의된 대부분의 개념은 다음에 논의할 PPP와 유선LAN에서 논의한 이더넷 프로토콜 또는 무선 LAN과 같은 다른 실제적인 프로토콜을 위한 기본이다.
11.3.1 구성 및 전송모드
HDLC는 다른 구성을 사용되는
Normal response mode(정규 응답 모드) (NRM)
asynchronous balanced mode(비동기 균형 모드) (ABM)
의 두 가지 통상적인 전송 모드를 제공한다.
NRM에서는 지국 구성은 비균형적이다.
주국(primary station)이 하나 있고 여러개의 종국(secondary station)이 있다.
주국은 명령을 보낼 수 있는데 종국은 단지 그에 응답할 뿐이다.
NRM은 그림 11.14와 같이 점-대-점 및 다중점 링크에 모두 사용된다.
ABM에서는 구성은 균형적이다.
링크는 점-대-점이며, 각 지국은 그림 11.15에서처럼 주국이자 종국으로 기능한다.
11.3.2 프레임
통신모드와 구성의 모든 가능한 선택사항을 지원하는데 필요한 융통성을 제공하기 위해
HDLC는
정보 프레임(I-frame, information frames),
감시프레임(S-frame, Supervisory frames)
무번호프레임(U-frame, unnumbered frames)
의 세 종류 프레임을 정의한다.
이 세종류의 프레임은 서로 다른 종류의 메시지 전송을 위한 봉투(envelope)로써 동작한다.
I-Frame => 사용자 데이터와 사용자 데이터에 관련된 제어정보를 전송하는데 쓰인다.(피기배킹)
S-Frame => 오직 제어정보를 전송하는데 사용된다.
U-Frame=> 시스템 관리를 위해 쓰인다. U-Frame으로 전송되는 정보는 링크 자체를 관리할 목적으로 쓰인다.
HDLC의 각 프레임은
beginning flag field-address-control-User information - Flag check sequence field,- ending flag field
시작플래그필드 - 주소필드-제어필드-정보필드-프레임 검사 순서값 필드- 종료플래그 필드
등 6개의 필드를 포함할 수 있다.
다중 프레임 전송에서 한 프레임의 종료플래그는 다음프레임의 시작플래그를 겸할 수 있다.
각 필드와 여러 프레임 종류에 따른 기능
- 플래그 필드 : 프레임의 시작과 끝을 인식하고 동기화패턴 01111110을 갖는다. (bit stuffing을 위해 011111010이 나올수도 있음.)
- 주소필드 : 종국의 주소를 가지고 있다. 만약 주국이 프레임을 만들었다면 이 프레임은 목적지의 주소를 가지고 있으며, 종국이 프레임을 만들었다면 발신지의 주소를 가지고 있게된다. 주소필드(address field)는 네트워크의 필요에 따라 1바이트 또는 몇바이트의 길이를 가질 수 있다.
- 제어필드 : 제어필드는 flow control, error control 에 사용되는 1바이트 또는 2바이트이다.
- 정보필드 : 정보 필드(information field)는 네트워크층의 사용자 데이터를 포함하거나 관리정보를 포함한다. 길이는 네트워크마다 다르다.
-FCS필드 : 프레임 검사 순서 값(FCS, frame check sequence)은 HDLC의 오류 검출 필드(error detection field)이다.
이 필드는 2바이트나 4바이트 CRC를 포함한다.
I-Frame에서의 제어필드
I-Frame은 네트워크층으로부터 사용자 데이터를 '실어 나르기' 위해 설계되었다.
추가적으로, 흐름 및 오류 제어정보(피기배킹)을 포함할 수 있다.
제어필드의 부필드들이 이와 같은 기능을 규정하기 위해 사용된다.
첫번째 비트 : 유형을 정의한다. 제어필드의 첫번째 비트가 0이면 이는 프레임이 I-Frame인것을 의미한다.
그다음 3개의 비트: N(S)라고 불리는데 프레임의 순서번호를 나타낸다.
3개의 비트로부터 0~7까지의 순서번호를 정의할 수 있다.
마지막 3개의 비트는 N(R)이라 불리는데, 피기배킹할때 확인응답 번호에 해당한다.
N(S)와 N(R)사이의 단일비트는 P/F비트라 불린다. (Poll/Final)
P/F비트는 2가지 목적으로 쓰이는 단일비트이다.
이 비트는 1로 설정되었을때만 의미를 가지며 폴(poll) 또는 파이널(Final)을 의미할 수 있다.
이 비트는 프레임이 주국에서 종국으로 보내졌을 때(주국->종국)(주소필드가 수신기의 주소를 가지고 있을 때)에는 폴(poll)을 뜻하며,
프레임이 종국에서 주국으로 보내졌을 때(종국->주국)(주소필드가 송신기의 주소를 가지고 있을 때)에는 파이널(final)을 의미한다.
S-Frame에서의 제어필드
피기배킹이 불가능하거나 부적절할때, 흐름 제어와 오류제어를 위해 감시프레임(S-frame, supervisory frame)이 사용된다.
S-Frame은 정보필드가 없다.
제어드의 처음 2비트가 10이면 이 프레임은 S-Frame이다.
N(R)로 불리는 마지막 3비트는 S-Frame의 유형에 따라 ACK나, NAK에 해당한다.
Code라 불리는 2비트는 S-Frame자체의 유형을 정의하는데 사용된다.
이 2비트로 4가지 종류의 S-Frame을 규정한다.
1. 수신준비(RR, Receive ready) 00
코드 부필드값이 00이면, 이는 RR S-Frame이다.
이 종류의 프레임은 안전하고 온전히 전송된 프레임, 또는 일단의 프레임들에 대해 확인응답을 한다.
이 경우 N(R)필드의 값은 확인응답 번호를 전송한다.
2.수신 불가(RNR, receive not ready) 10
코드 부필드 값이 10이면, 이는 RNR S-프레임이다.
이 종류의 프레임은 추가적인 책무가 있는 RR 프레임이다.
이는 프레임 또는 한 무리의 프레임들을 수신한 것에 대해 응답은 보내지만, 수신자가 바빠서 더이상의 프레임을 받을 수 없다는 것을 공표하는 것이다.
이는 송신자로 하여금 속도를 늦추도록 하여 일종의 혼잡제어를 수행한다. N(R)의 값은 확인응답 번호이다.
3.거부(REJ, reject) 01
코드 부필드갑싱 01이면 이는 REJ S-frame이다. 이는 NAK프레임이지만, 선택적거부 ARQ에서 사용되었던 것과는 다르다.
N-Frame 후퇴 ARQ에 사용되어 송신자의 타이머가 다 되기 전에 직전의 프레임이 손상되었거나 손상된 것을 송신자에게 알려서 처리 효율을 높이는데 사용된다.
4. 선택적 거부(SREJ, selective reject) 11
코드 부필드의 값이 11이면, 이는 SREJ s-FRAME이다.
이는 선택적 거부 ARQ의 NAK이다. HDLC프로토콜에서는 선택적 반복 대신에 선택적 거부 라고 한다.
N(R)의 값은 NAK번호이다.
UFrame에서의 제어 필드
unnumbered frame은 서로 연결된 장치들 간에 세션관리와 제어정보를 교환하는 용도로 쓰인다.
S-Frame과 달리 U-Frame은 정보 필드를 가지고 있으나, 이 정보필드는 사용자 데이터가 아니라 시스템 관리정보를 위해 쓰인다.
->시스템을 관리하는 필드라고 생각!
그러나 S-Frame처럼 U-Frame도 제어필드에 들어있는 부호에 의해 많은 정보를 전달한다.
U-Frame의 부호는 P/F비트 앞에있는 2 비트와 뒤에있는 3비트의 두 부분으로 구성되어 있다.