고급 데이터 링크 제어

High-Level Data Link Control

High-Level Data Link Control(HDLC; 고레벨 데이터 링크 제어)은 International Organization for Standardization(ISO; 국제 표준화 기구)에 의해 개발된 비트 지향 코드 투과 동기 네트워크 계층 프로토콜입니다.HDLC 의 표준은 ISO/IEC 13239:2002 입니다.

HDLC는 connection 지향 서비스와 connectionless 서비스를 모두 제공합니다.

HDLC는 원래 마스터 슬레이브모드(NRM) 및 Asynchronous Response Mode(ARM; 비동기 응답 모드)를 통한 포인트 투 멀티 포인트 접속에 사용할 수 있지만, 현재는 거의 사용되지 않습니다.Asynchronous Balanced Mode(ABM; 비동기 균형 모드)를 사용하여 디바이스다른 디바이스에 연결하는 데 거의 독점적으로 사용되고 있습니다.

역사

HDLC는 IBM의 SNA(Systems Network Architecture)에 대한 계층 2 프로토콜인 IBM의 SDLC 프로토콜을 기반으로 합니다.는 ITU에 의해 LAP(Link Access Procedure)로 확장 및 표준화되었으며 ANSI는 기본적으로 동일한 버전의 ADCCP로 명명되었습니다.

HDLC 사양에서는 프레임필드의 완전한 시멘틱스는 지정되어 있지 않습니다.이를 통해 완전히 호환되는 다른 표준을 도출할 수 있으며, 파생상품은 수없이 많은 표준으로 등장하였다.LAPB로서 X.25 프로토콜 스택에, LAPM으로서 V.42 프로토콜에, LAPF로서 프레임 릴레이 프로토콜 스택에, LAPD로서 ISDN 프로토콜 스택에 채택되었습니다.

HDLC의 원래 ISO 표준은 다음과 같습니다.

  • ISO 3309-1979 – 프레임 구조
  • ISO 4335-1979 – 절차 요소
  • ISO 6159-1980 – 불균형한 절차 클래스
  • ISO 6256-1981 - 균형 잡힌 절차 클래스

현재의 표준인 ISO/IEC 13239:2002가 이러한 사양을 모두 대체했습니다.

HDLC는 IEEE 802.2 LLC 프로토콜의 모티브가 되었으며 동기 회선 상에서 PPP와 함께 사용되는 프레임 메커니즘의 기초가 되었습니다.많은 서버가 WAN(대부분 인터넷)에 접속하기 위해 사용하고 있습니다.

E-캐리어(E1) 및 SONET 멀티채널 전화회선의 제어채널로서도 같은 버전이 사용됩니다.Cisco HDLC는 저레벨 HDLC 플레이밍 기술을 사용하지만 표준 HDLC 헤더에 프로토콜필드를 추가합니다.

프레이밍

HDLC 프레임은 동기 또는 비동기 시리얼 통신 링크를 통해 전송할 수 있습니다.이러한 링크에는 프레임의 시작 또는 끝을 표시하는 메커니즘이 없기 때문에 각 프레임의 시작과 끝을 식별해야 합니다.이것은 프레임 딜리미터(플래그)로서 일의의 비트시퀀스를 사용하고, 데이터를 부호화하여 플래그시퀀스가 프레임내에 표시되지 않게 하는 것에 의해서 행해집니다.각 프레임은 프레임 딜리미터로 시작되어 끝납니다.프레임 끝에 있는 프레임 딜리미터는 다음 프레임의 시작을 표시할 수도 있습니다.

동기 링크와 비동기 링크 모두에서 플래그 시퀀스는 바이너리 "01111110" 또는 16진수 0x7E이지만 자세한 내용은 크게 다릅니다.

동기 프레임

플래그 시퀀스는 6개의 연속된1비트로 구성되기 때문에 다른 데이터는 1비트를 5개 이상 포함하지 않도록 코드화됩니다.이는 비트 스터핑에 의해 이루어집니다.전송된 데이터에 연속된5비트가 표시될 때마다 데이터는 일시 정지되고 0비트가 전송됩니다.

수신측 디바이스는, 이것이 행해지고 있는 것을 인식해, 5개의 1비트를 연속으로 검출하면, 다음의 0비트가 수신 데이터로부터 삭제됩니다.대신 여섯 번째 비트가 1이면 플래그(7번째 비트가 0인 경우) 또는 오류(7번째 비트가 1인 경우) 중 하나입니다.후자의 경우, 프레임 수신 순서는 중단되어 플래그가 다음에 검출되었을 때 재기동됩니다.

이 비트 스터핑은 두 번째 목적, 즉 충분한 수의 신호 천이를 보장하는 역할을 합니다.동기 링크에서는 데이터는 NRZI 부호화되므로 0비트는 회선 신호의 변경으로 전송되고 1비트는 변경되지 않고 전송됩니다.따라서 각 0비트는 수신 모뎀이 위상 잠금 루프를 통해 클럭을 동기화할 수 있는 기회를 제공합니다.1비트가 너무 많으면 수신기가 카운트를 잃을 수 있습니다.비트 스터핑은 데이터 전송 중에는 6비트 회당 최소 1개의 트랜지션을 제공하며 플래그 전송 중에는 7비트 회당 1개의 트랜지션을 제공한다.

심플렉스 또는 전이중 동기 링크상에서 프레임이 송신되지 않는 경우, 프레임 딜리미터는 링크상에서 연속적으로 송신됩니다.그러면 초기 상태에 따라 두 개의 연속 파형 중 하나가 생성됩니다.

NrziEncodedFlags.png

HDLC 사양에서는 프레임 딜리미터의 끝에 있는0 비트를 다음 프레임 딜리미터의 시작과 공유할 수 있습니다.즉, "01111011110"입니다.일부 하드웨어는 이를 지원하지 않습니다.

복수의 송신기가 회선을 공유하는 반이중 통신 또는 멀티 드롭 통신의 경우, 회선상의 수신기는, 액티브한 송신기가 없는 프레임간 기간에, 1비트의 연속적인 아이돌 상태를 확인합니다.

HDLC는 최하위 비트로 데이터 바이트를 먼저 전송합니다(멀티바이트 필드 내의 바이트 순서를 나타내는 리틀엔디안 순서와 혼동하지 마십시오).

비동기 프레이밍

표준 RS-232 시리얼 포트 등의 비동기 시리얼 통신을 사용하는 경우 동기식 비트스탬핑은 다음과 같은 이유로 부적절합니다.

  • 시작 비트와 정지 비트가 다음을 제공하므로 적절한 수의 전환을 보장하기 위해 비트 스터핑이 필요하지 않습니다.
  • 데이터는 NRZI 부호화가 아니라 전송을 위해 NRZ 부호화되므로 부호화된 파형이 다릅니다.
  • RS-232는 8개의 그룹으로 비트를 전송하기 때문에 싱글비트를 추가하는 것이 매우 어렵습니다.
  • 같은 이유로 특별히 플래그를 붙이는 것은 바이트뿐입니다.여러 바이트에 걸쳐 있는 비트패턴에 대해서는 걱정할 필요가 없습니다.

대신 비동기 프레임은 "control-octet transparency" (바이트 스터핑 또는 "옥텟 스터핑"이라고도 함)를 사용합니다.프레임 경계 옥텟은 01111110(16진수 표기에서는 0x7E)입니다.컨트롤 이스케이프 옥텟」의 값은 0x7D(RS-232가 최하위 비트를 최초로 송신하기 때문에 비트시퀀스 「10111110」)입니다.송신 데이터에 이러한 2개의 옥텟 중 하나가 표시되었을 경우, 이스케이프 옥텟이 송신되고 이어서 비트5가 반전된 원래의 데이터 옥텟이 송신됩니다.예를 들어 바이트 0x7E는 0x7D 0x5E("101110 01111010")로 전송됩니다.필요에 따라서, 다른 예약된 옥텟치(XON 나 XOFF 등)도 같은 방법으로 이스케이프 할 수 있습니다.

"abort sequence" 0x7D 0x7E는 불완전한 바이트 스터프 시퀀스로 패킷을 종료하므로 수신측은 오류를 검출해야 합니다.이는 부분 패킷이 수신기에 의해 유효한 것으로 해석될 가능성이 없는 패킷 전송을 중단하기 위해 사용할 수 있습니다.

구조.

HDLC 프레임의 내용을 다음 표에 나타냅니다.

플래그 주소. 통제 정보 FCS 플래그
8비트 8비트 이상 8비트 또는 16비트 가변길이, 8×n비트 16비트 또는 32비트 8비트

1 프레임의 종료 플래그는 다음 프레임의 시작(시작) 플래그일 수 있지만 반드시 그럴 필요는 없습니다.

데이터는 보통 8비트의 배수로 전송되지만, 일부 변형만 데이터를 필요로 하며, 다른 변형은 이론적으로 8비트 경계 이외의 데이터 정렬을 허용합니다.

Frame Check Sequence(FCS; 프레임체크 시퀀스)는 Address, Control 및 Information 필드에 걸쳐 계산된 16비트 CRC-CCITT 또는 32비트 CRC-32입니다.수신기가 손실 비트, 플립 비트, 외부 비트 등 프레임 전송 중에 발생할 수 있는 오류를 검출할 수 있는 수단을 제공합니다.다만, FCS 의 계산에 사용되는 알고리즘은, 에러를 체크하는 데이터의 길이에 따라, 특정 타입의 송신 에러가 검출되지 않을 가능성이 높아지는 것을 고려하면, FCS 는 프레임의 실제 크기를 암묵적으로 제한할 수 있습니다.

수신측의 FCS 의 계산이 송신측의 계산과 일치하지 않는 경우(프레임에 에러가 포함되어 있는 것을 나타냄), 수신측은 송신측에 부정 확인 응답 패킷을 송신하거나 아무것도 송신하지 않습니다.네거티브 확인 응답 패킷을 수신하거나 긍정 확인 응답 패킷을 기다리는 동안 타임아웃한 후, 송신자는 실패한 프레임을 재발송할 수 있습니다.

FCS가 실장된 것은 많은 초기 통신 링크의 비트 에러율이 비교적 높기 때문입니다.또, FCS는, 간단하고 고속의 회로 또는 소프트웨어로 간단하게 계산할 수 있었습니다.효과적인 순방향 오류 수정 방식이 현재 다른 프로토콜에서 널리 사용되고 있습니다.

스테이션(컴퓨터) 유형 및 데이터 전송 모드

Synchronous Data Link Control(SDLC; 동기 데이터 링크 제어)은 원래 멀티드롭 버스를 통해 하나의 컴퓨터와 여러 주변기기를 연결하도록 설계되었습니다.원래의 「통상 응답 모드」는, 컴퓨터(또는 프라이머리 단말)가 각 페리페럴(세컨더리 단말)에 차례차례의 스피치를 허가하는 마스터 슬레이브 모드입니다.모든 통신은 프라이머리 단말기와 송수신되기 때문에 프레임에는 세컨더리 단말기와 같은1개의 주소만 포함됩니다.프라이머리 단말기에는 주소가 할당되지 않습니다.primary에서 secondary로 송신되는 명령어와 secondary에서 primary로 송신되는 응답 사이에는 차이가 있습니다만, 이것은 부호화에는 반영되지 않습니다.명령어와 응답은 전송 방향의 차이 이외에는 구별할 수 없습니다.

통상 응답 모드에서는 세컨더리로부터 프라이머리로의 링크를 경합 없이 공유할 수 있습니다.는 세컨더리에게 한번에1 개씩 송신할 수 있는 권한을 부여하기 때문입니다.또, 프라이머리가 세컨더리에게 허가했을 때에 송신할 수 없는 경우가 있는 것을 인식하고 있는 한, 반이중 통신 링크를 개입시켜 동작할 수도 있습니다.

비동기 응답 모드는 전이중 링크에서 사용하기 위한 HDLC 추가[1] 모드입니다.프라이머리/세컨더리의 구별을 유지하면서, 세컨더리는 언제라도 송신할 수 있습니다.따라서, 복수의 secondary가 동시에(또는 1개의 secondary만) 송신하지 않게 하기 위한 다른 메카니즘이 필요합니다.

비동기 밸런스모드에서는 프라이머리 및 세컨더리 양쪽으로 동작할 수 있는 복합 단말기의 개념이 추가됩니다.유감스럽게도 이 동작 모드에는 몇 가지 구현 세부 사항이 있습니다.송신되는 가장 일반적인 프레임은 명령어프레임과 응답 프레임 중 어느 쪽인가에 관계없이 일부 필수 프레임(특히 대부분의 번호 없는 프레임 및 P/F 비트가 설정된 프레임)이 송신됩니다.수신된 프레임의 주소 필드를 조사하여 명령어(수신된 주소가 당사 주소) 또는 응답(주소)이 포함되어 있는지 여부를 판단해야 합니다.수신된 것은 다른 단말기의 것입니다).

즉, 주소 필드가 옵션인 것은 아닙니다.포인트 투 포인트링크에서도 통신 대상 피어를 명확하게 할 필요가 없습니다.일부 HDLC 바리안트에서는, 송신원주소와 행선지 주소의 양쪽 모두 또는 명시적인 커맨드/응답 비트를 포함하도록 주소 필드를 확장합니다.

HDLC 동작 및 프레임타입

HDLC 프레임에는, 다음의 3개의 기본적인 타입이 있습니다.

  • 정보 프레임(I-frame)은 네트워크 계층에서 사용자 데이터를 전송합니다.데이터 기반 흐름 및 오류 제어 정보도 포함할 수 있습니다.
  • 슈퍼바이저 프레임(S 프레임)은 스테이션에 송신할 데이터가 없는 경우 등 피기백이 불가능하거나 부적절한 경우 흐름 및 오류 제어에 사용됩니다.S 프레임에는 정보 필드가 없습니다.
  • Unnumbered 프레임(U-frame)은 링크 관리 등 다양한 목적으로 사용됩니다.일부 U 프레임에는 유형에 따라 정보 필드가 포함되어 있습니다.

[ Control ]필드

제어 필드의 일반적인 형식은 다음과 같습니다.

HDLC 제어 필드
7 6 5 4 3 2 1 0
N(R)
수신 시퀀스 번호
P/F N(S)
송신 시퀀스 번호
0 I-프레임
N(R)
수신 시퀀스 번호
P/F 유형 0 1 S프레임
유형 P/F 유형 1 1 U프레임

I 프레임과 S 프레임의 확장(2바이트) 형식도 있습니다.여기서도 최하위 비트(이 테이블에서는 맨 오른쪽)가 먼저 전송됩니다.

확장 HDLC 제어 필드
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
N(R)
수신 시퀀스 번호
P/F N(S)
송신 시퀀스 번호
0 확장 I프레임
N(R)
수신 시퀀스 번호
P/F 0 0 0 0 유형 0 1 확장 S프레임

P/F 비트

Poll/Final은 이름이 두 개인 단일 비트입니다.명령어의 일부(세컨더리 스테이션으로부터 응답을 취득하기 위해서 프라이머리 스테이션에 의해서 설정), 응답의 일부(세컨더리 스테이션에 의해서 응답 또는 전송의 종료를 나타내기 위해서 설정)의 경우는 「Poll」이라고 불립니다.그 외의 경우는 모두, 비트는 클리어입니다.

비트는 스테이션 간에 주고받는 토큰으로 사용됩니다.토큰은 한 번에 1개만 존재해야 합니다.세컨더리는 프라이머리로부터 폴링을 수신했을 경우에만 Final을 송신합니다.프라이머리는 세컨더리로부터 Final을 수신했을 때 또는 비트가 손실되었음을 나타내는 타임아웃 후에만 폴링을 전송합니다.

  • NRM 에서는, 폴 토큰의 소유에 의해서, 주소 지정된 세컨더리 송신 권한도 부여됩니다.세컨더리는 마지막 응답 프레임의 F비트를 전송 허가를 포기하도록 설정합니다.(무선 음성 프로시저의 「Over」와 같습니다).
  • ARM 및 ABM에서는 P비트가 응답을 강제합니다.이러한 모드에서는 세컨더리 비트가 폴링 전송을 기다릴 필요가 없기 때문에 폴링 후 첫 번째 응답에 최종 비트가 포함될 수 있습니다.
  • 적절한 시간 내에 P 비트에 대한 응답이 수신되지 않으면 프라이머리 스테이션은 타임아웃되어 P를 재발송신합니다.
  • P/F 비트는 HDLC를 실장하기 위해서 필요한 기본적인 체크 포인트 재전송 스킴의 중심에 있습니다.다른 모든 바리안트(REJ S 프레임 등)는 옵션이며 효율의 향상만을 목적으로 합니다.스테이션이 P/F 비트를 수신할 때마다 스테이션은 마지막으로 P/F 비트를 송신하기 전에 송신된 프레임이 아직 수신되지 않았으므로 재발송신해야 한다고 생각할 수 있습니다.

복합 스테이션으로서 동작하는 경우는, 2개의 체크 포인트사이클이 동시에 동작하는 경우가 있기 때문에, P비트와 F비트의 구별을 유지하는 것이 중요합니다.리모트 스테이션에서 명령어로 착신하는P 비트는 P 비트에 응답하지 않습니다.응답에 착신하는F 비트만이 응답합니다.

N(R), 수신 시퀀스 번호

I 프레임과 S 프레임에는 모두 수신 시퀀스 번호N(R)이 포함됩니다.N(R)은 링크의 다른 쪽으로부터의 I 프레임 수신에 대한 긍정 응답을 제공합니다.이 값은 항상 아직 수신되지 않은 첫 번째 프레임입니다.N(S) 값이 최대 N(R)-1(modulo 8 또는 modulo 128)인 모든 프레임이 수신되었음을 확인하고 수신이 예상되는 다음 프레임의 N(S)을 나타냅니다.

N(R)은 명령 또는 응답의 일부에 관계없이 동일하게 동작합니다.복합 스테이션에는 시퀀스 번호 공간이1개밖에 없어요

N(S), 송신된 프레임의 시퀀스 번호

이 값은 연속되는 I 프레임, 모듈로8 또는 모듈로128에 대해 증가합니다.시퀀스 번호의 비트 수에 따라 최대 7 또는 127의 I 프레임이 언제든지 확인 응답을 대기할 수 있습니다.

I-프레임(사용자 데이터)

정보 프레임(I-frame)은 네트워크 계층에서 사용자 데이터를 전송합니다.또한 데이터에 기반한 흐름 및 오류 제어 정보도 포함됩니다.제어 필드의 서브필드는 이러한 함수를 정의합니다.

최하위 비트(최초 송신)가 프레임유형을 정의합니다.0은 I프레임을 의미합니다.P/F 필드의 해석을 제외하고 명령어 I 프레임과 응답 I 프레임의 차이는 없습니다.P/F가 0일 경우 두 형식은 완전히 동일합니다.

S프레임(제어)

슈퍼바이저 프레임('S-frames')은 스테이션에 송신할 데이터가 없는 경우 등 피기백이 불가능하거나 부적절한 경우 흐름 및 오류 제어에 사용됩니다.HDLC의 S 프레임에는 정보 필드가 없지만, HDLC에서 파생된 일부 프로토콜은 "다중 선택 거부"를 위해 정보 필드를 사용합니다.

S 프레임 제어 필드에는 S 프레임임을 나타내는 선두의 "10"이 포함됩니다.그 뒤에 2비트 타입, 폴/최종 비트 및 3비트시퀀스 번호가 이어집니다(4비트 패딩 필드 뒤에 7비트시퀀스 번호가 이어집니다).

첫 번째(중요하지 않은)2비트는 S프레임임을 의미합니다.모든 S 프레임에는 위와 같이 P/F 비트와 수신 시퀀스 번호가 포함됩니다.P/F 필드의 해석을 제외하고 명령어S 프레임과 응답S 프레임의 차이는 없습니다.P/F가 0일 경우 두 형식은 완전히 동일합니다.

수신준비완료(RR)

  • 비트 값 = 00(위의 테이블 유형 필드 비트[2] 순서와 일치하려면 0x00)
  • 송신측이 더 많은 데이터를 수신할 준비가 되어 있는 것을 나타냅니다(이전 RNR의 영향을 취소합니다).
  • 패킷을 송신할 필요가 있지만, 송신할 I 프레임이 없는 경우는, 이 패킷을 송신합니다.
  • 프라이머리 스테이션은 이것을 P비트 세트로 송신해, 세컨더리 스테이션으로부터 데이터를 송신할 수 있습니다.
  • 세컨더리 단말기는, 송신할 데이터가 없는 경우에 폴링에 응답하기 위해서, F비트가 설정되어 있는 경우에 이것을 사용할 수 있습니다.

수신 불가(RNR)

  • 비트 값 = 01(위의 테이블 유형 필드 비트[3] 순서와 일치하려면 0x04)
  • 일부 패킷에 대해서는 확인 응답을 하되 추후 통지가 있을 때까지 더 이상 전송을 요청하지 마십시오.
  • 세컨더리 스테이션의 상태를 요청하기 위해 P 비트가 설정된 RR과 같이 사용할 수 있습니다.
  • 스테이션이 비지일 경우 폴링에 응답하기 위해 F 비트가 설정된 RR과 같이 사용할 수 있습니다.

거부(REJ)

  • 비트 값 = 10(위의 테이블 유형 필드 비트[4] 순서와 일치하려면 0x08)
  • N(R)부터 시작하는 즉시 재발송을 요구합니다.
  • 관측된 시퀀스 번호 간격에 응답하여 전송됩니다. 예를 들어 I1/I2/I3/I5를 확인한 후 REJ4를 전송합니다.
  • 생성하는 것은 임의입니다.실행 실장에서는 RR만 사용할 수 있습니다.

선택적 거부(SREJ)

  • 비트 값 = 11(위의 테이블 유형 필드 비트 순서와 일치하려면 0x0c)
  • 프레임 N(R)만의 재발송을 요구합니다.
  • 일부 HDLC 바리안트에서는 지원되지 않습니다.
  • 생성하는 것은 임의입니다.실행 실장에서는 RR만 사용할 수도 있고 RR과 REJ만 사용할 수도 있습니다.

U프레임

Unnumbered 프레임(U-frame)은 주로 링크 관리에 사용되지만, 일부 프레임은 사용자 데이터 전송에 사용됩니다.연결된 디바이스 간에 세션 관리 및 제어 정보를 교환하며 일부 U 프레임에는 시스템 관리 정보 또는 사용자 데이터에 사용되는 정보 필드가 포함되어 있습니다.첫 번째 2비트(11)는 U프레임임을 의미합니다.5가지 타입 비트(P/F 비트 앞에 2비트, P/F 비트 뒤에 3비트)는 32개의 다른 타입의 U-프레임을 생성할 수 있습니다.경우에 따라서는 명령 및 응답과 같은 다른 것에 동일한 인코딩이 사용됩니다.

모드 설정

링크 설정에 다양한 모드가 설명되어 있습니다.간단히 말하면, 3비트 또는7비트(확장) 시퀀스 번호를 가지는 2개의 비동작 모드(초기화 모드와 절단 모드)와 3개의 동작 모드(통상 응답, 비동기 응답, 비동기 밸런스 모드)가 있습니다.

Disconnected Mode(Disconnected Mode)
세컨더리가 절단되면(전원 투입 시 기본 상태), 허용 가능한 모드 설정 명령어를 제외한 모든 폴링(폴 플래그가 설정된 명령어프레임)에 이 범용 응답을 송신합니다.또는 허용되지 않는 모드 설정 명령에 대해 FRMR 응답을 제공할 수 있습니다.
Unnumbered Acknowledge(UA) 응답
이는 허용 가능한 모드 설정 명령에 대한 세컨더리의 응답으로, 현재 요청된 모드에 있음을 나타냅니다.
Set ... mode (SNRM, SARM, SABM) 명령어
3비트 시퀀스 번호(1바이트 제어 필드)를 사용하여 세컨더리를 지정된 모드로 설정합니다.세컨더리는 UA에서 확인 응답을 합니다.세컨더리가 모드를 실장하지 않으면 DM 또는 FRMR로 응답합니다.
Set ... mode extended (SNRME, SARME, SABME) 명령어
7비트 시퀀스 번호(2바이트 제어 필드)를 사용하여 세컨더리를 지정된 모드로 설정합니다.
Set Mode(SM; 설정 모드) 명령어
ISO/IEC 13239에서 새롭게 도입된 범용 모드 세트. 정보 필드를 사용하여 파라미터를 선택합니다.ISO/IEC 13239는 HDLC에 15비트 및 31비트시퀀스 번호를 포함한 많은 추가 옵션을 추가했습니다.이러한 옵션은 이 명령어로만 선택할 수 있습니다.
Disconnect(DISC) 명령어
이 명령어를 실행하면 세컨더리가 UA에서 확인 응답을 하고 연결을 끊습니다(절단 모드로 들어갑니다).확인 응답되지 않은 프레임은 모두 손실됩니다.
연결 해제(RD) 요청 응답
이 응답은 프라이머리에게 DISC 명령어 송신을 요구합니다.프라이머리는 즉시 실행해야 하지만 보류 중인 모든 프레임이 확인 응답될 때까지 지연될 수 있습니다.
Set Initialization Mode(SIM; 초기화 모드) 명령어
이 거의 구현되지 않은 명령어는 펌웨어 다운로드 등 세컨더리 고유의 초기화를 수행하기 위해 사용됩니다.초기화 모드에서 발생하는 동작은 HDLC 표준에서는 달리 지정되어 있지 않습니다.
Request Initialization Mode(RIM; 초기화 모드) 응답
이것에 의해, 프라이머리는 SIM을 송신해, 세컨더리를 초기화하도록 요구됩니다.세컨더리가 초기화를 필요로 하는 경우 DM 대신 송신됩니다.

정보 전송

이러한 프레임은, 통상의 정보 전송의 일부로서 사용할 수 있습니다.

Unnumbered 정보(Unnumbered Information)
이 프레임(명령어 또는 응답)은 사용자 데이터를 통신하지만 오류 발생 시 확인 또는 재전송은 하지 않습니다.
헤더 체크(UIH)가 있는 UI
이 프레임(명령 또는 응답)은 ISO/IEC 13239 추가 기능으로 거의 사용되지 않지만 UI와 비슷하지만 CRC 보호도 제외됩니다.프레임의 설정 가능한 길이의 프리픽스("헤더")만이 CRC 다항식의 대상이 됩니다.프레임의 나머지 부분에서의 에러는 검출되지 않습니다.
Unnumbered poll(UP) 명령어
이 명령어는 세컨더리로부터의 응답을 요구합니다.폴 비트가 설정되어 있는 경우, I 프레임 또는S 프레임에 포함할 필요가 있는 확인 응답을 사용하지 않고, 다른 폴 프레임과 같이 동작합니다.폴 비트를 클리어하면 일반 응답 모드에서는 세컨더리가 폴 비트를 수신하지 않아도 응답할 수 있습니다.이는 HDLC에서는 거의 사용되지 않지만 원래 IBM SDLC에서는 비동기 응답 모드가 없는 대신 사용되었습니다.통신 채널이 동시 응답을 처리할 수 있는 경우 프라이머리는 정기적으로 브로드캐스트주소로 UP을 전송하여 보류 중인 응답을 수집합니다.

에러 리커버리

Frame Reject(FRMR) 응답
FRMR 응답에는 허용되지 않는 프레임에 대한 설명이 표준화된 형식으로 포함되어 있습니다.첫 번째 1바이트 또는2바이트는 거부된 제어필드의 복사입니다.다음 1바이트 또는2바이트에는 세컨더리의 현재 송수신 시퀀스 번호(및 프레임이 응답임을 나타내는 플래그, 밸런스모드에서만 적용 가능)가 포함되어 있습니다.다음 4비트 또는5비트는 거부 이유를 나타내는 에러 플래그입니다.secondary는 mode set 명령 또는 RSET에 의해 오류가 클리어될 때까지 모든 폴링에 대해 동일한 FRMR 응답을 반복합니다.에러 플래그는 다음과 같습니다.
  • 프레임 타입(컨트롤 필드)이 인식되지 않거나 구현되지 않았습니다.
  • X: 빈 정보 필드가 아닌 프레임 유형을 인식할 수 없습니다. 단, 프레임 유형이 있습니다.
  • Y: 프레임에 세컨더리가 받아들일 수 있는 것보다 큰 정보 필드가 포함되어 있습니다.
  • Z: 프레임에 비활성 수신 시퀀스 번호 N(R)이 포함되어 있습니다.이 번호는 이전에 수신한 값과 전송된 최대 시퀀스 번호 사이에 없습니다.(이 에러는 RSET 를 수신해도 클리어 할 수 없지만, RSET 를 송신하면 클리어 할 수 있습니다).
  • V: 프레임에 유효하지 않은 송신 시퀀스 번호 N(S)이 포함되어 있습니다.이 번호는 확인 응답된 마지막 숫자에 송신창 크기를 더한 값입니다.이 에러가 발생할 가능성이 있는 것은, 최대치보다 작은 송신창 사이즈가 네고시에이트 되어 있는 경우 뿐입니다.
  • 에러 플래그는 보통8비트 경계에 0비트로 패딩되지만 HDLC에서는 1바이트 길이의 배수가 아닌 프레임을 허용합니다.
Reset(RSET) 명령어
RSET 명령어를 사용하면 세컨더리가 수신 시퀀스 번호를 리셋하기 때문에 다음 프레임은 시퀀스 번호0 이 됩니다.이는 두 시퀀스 번호를 모두 리셋하는 새로운 모드세트명령어를 송신하는 대신 사용할 수 있습니다.모드 set 명령어와 같이 UA에서 확인 응답됩니다.

피어 검출

교환식별(XID)
XID 명령어에는 프라이머리 기능을 지정하는 정보 필드가 포함되어 있습니다.세컨더리는 기능을 지정하는 XID 응답으로 응답합니다.이것은 보통 mode set 명령어를 전송하기 전에 실행됩니다.Systems Network Architecture는 정보 필드에 1개의 형식을 정의했습니다.이 형식에서는 첫 번째 바이트의 최상위 비트가 클리어(0)되지만 HDLC 구현에서는 보통 ISO 8885에서 정의된 바리안트가 구현됩니다.이것은 첫 번째 바이트 세트의 최상위 비트를 가지고 있습니다(1).
시험
TEST 명령어는 단순히 디버깅을 위한 ping 명령어입니다.TEST 명령어의 payload가 TEST 응답으로 반환됩니다.

기타 표준에서 정의

HDLC에는 포함되어 있지 않지만 다른 관련 표준으로 정의되어 있는U 프레임이 여러 개 있습니다.

비예약(NR0, NR1, NR2, NR3)
"비예약" 명령 및 응답은 HDLC 표준에 의해 다른 용도로 사용할 수 있도록 보장됩니다.
ACK 커넥션리스(AC0, AC1)
이것들은 IEEE 802.2 논리 링크 제어 규격에 정의되어 있습니다.
구성(CFGR)
이 명령어는 SDLC에서 디버깅용으로 정의되어 있습니다.secondary의 비표준 테스트모드를 지정한1 바이트의 payload가 있습니다.짝수는 모드를 디세블로 하고 홀수는 모드를 디세블로 했습니다.payload가 0이면 모든 테스트모드가 디세블이 됩니다secondary는 통상, configure 커맨드를 에코 해 확인 응답을 실시했습니다.
비콘(BCN) 응답
이 응답은 통신 장애를 나타내기 위해 SDLC에서 정의되었습니다.오랫동안 프레임을 전혀 수신하지 않은 세컨더리는 비콘 응답 스트림을 전송하기 시작하여 단방향 장애를 검출할 수 있습니다.ISO/IEC 13239는 UIH에 BCN과 같은 인코딩을 할당합니다.

링크 설정

링크 설정은 다음 중 하나로 분류할 수 있습니다.

  • 언밸런스: 1개의 프라이머리 단말기와1개 이상의 세컨더리 단말기로 구성됩니다.
  • 밸런스: 2개의 피어 단말기로 구성됩니다.

3가지 링크 설정은 다음과 같습니다.

  • Normal Response Mode(NRM; 일반 응답 모드)는 프라이머리 단말기만 데이터 전송을 시작할 수 있는 언밸런스 설정입니다.세컨더리 단말기는 프라이머리 단말기의 명령에 응답하여만 데이터를 전송합니다.프라이머리 단말기는 각 세컨더리 단말기에 폴링을 실시하여 보유하고 있는 데이터를 송신할 기회를 제공합니다.
  • Asynchronous Response Mode(ARM; 비동기 응답 모드)는 세컨더리 단말기가 프라이머리 단말기에서 허가 없이 송신할 수 있는 언밸런스 설정입니다.다만, 회선 초기화, 에러 리커버리, 및 논리적인 접속 해제를 담당하는 구별된 프라이머리 단말기가 아직 존재합니다.
  • Absynchronous Balanced Mode(ABM; 비동기 균형 모드)는 어느 하나의 스테이션이 언제든지 프레임을 초기화, 감시, 회복 및 송신할 수 있는 균형 잡힌 설정입니다.마스터/슬레이브 관계는 없습니다.DTE(데이터 단말 장치)와 DCE(데이터 회선 종단 장치)는 동등하게 취급됩니다.Asynchronous Balanced Mode의 발신측은 SABM을 송신합니다.

추가 링크 설정은 Disconnected 모드입니다.이것은 세컨더리 스테이션이 프라이머리에 의해 초기화되기 전 또는 명시적으로 절단되었을 때의 모드입니다.이 모드에서 세컨더리는 모드 세트명령어 이외의 거의 모든 프레임에 "Disconnected mode" 응답으로 응답합니다.이 모드의 목적은 프라이머리가 세컨더리 전원이 꺼지거나 리셋된 것을 확실하게 검출할 수 있도록 하는 것입니다.

HDLC 명령 및 응답 레퍼토리

동작에 필요한 최소 세트는 다음과 같습니다.

  • 명령어: I, RR, RNR, DISC 및 SNRM, SARM 또는 SABM 중 하나
  • 응답: I, RR, RNR, UA, DM, FRMR

기본 조작

  • 어느쪽이든 초기화를 요구할 수 있습니다.프라이머리는 6개의 모드 세트명령어 중 하나를 송신하면 다음과 같이 됩니다.
    • 상대방에게 초기화가 요구되었음을 알립니다.
    • 모드를 지정합니다.NRM, ABM, ARM
    • 3 비트 시퀀스 번호 또는7 비트시퀀스 번호를 사용할지 여부를 지정합니다.

요구가 받아들여지면 반대편 HDLC 모듈은 UA 프레임을 전송합니다.요구가 거부되면 (DM) 절단 모드프레임을 송신합니다.

기능 확장(옵션)

  • 스위치드 회선의 경우
    • 명령어: ADD – XID
    • 응답: ADD – XID, RD
  • 양방향 동시 명령 및 응답은 ADD – REJ
  • 싱글 프레임 재전송 명령 및 응답: ADD – SREJ
  • 정보 명령 및 응답: ADD – Ul
  • 초기화의 경우
    • 명령어: ADD – SIM
    • 응답: ADD – RIM
  • 그룹 폴링의 경우
    • 명령어: ADD – UP
  • 확장 어드레싱
  • 응답 I 프레임 삭제
  • 명령어 I 프레임 삭제
  • 확장 번호부여
  • 모드 리셋의 경우(ABM만 해당) 명령어는 ADD – RSET
  • 데이터 링크 테스트 명령 및 응답: ADD – TEST
  • 절단을 요청합니다.응답은 ADD – RD
  • 32비트 FCS

HDLC 명령 및 응답 레퍼토리

프레임의 종류 이름. 명령어/
대답
묘사 정보 C 필드 형식
7 6 5 4 3 2 1 0
정보(I) C/R 사용자 교환 데이터 N(R) P/F N(S) 0
감독(S) 수신준비완료(RR) C/R 긍정적인 인정 I-frame N(R) 수신 준비 완료 N(R) P/F 0 0 0 1
수신 불가(RNR) C/R 긍정적인 인정 수신 준비가 되지 않았습니다. N(R) P/F 0 1 0 1
거부(REJ) C/R 부정적인 인식 N(R)로 시작하는 재발송신 N(R) P/F 1 0 0 1
선택적 거부(SREJ) C/R 부정적인 인식 N(R)만 재발송합니다. N(R) P/F 1 1 0 1

언난버드

언난버드 프레임은 하위2비트가 1로 식별됩니다.P/F 플래그를 사용하면 5비트가 프레임타입으로 남습니다.사용 중인 값이 32개 미만인 경우에도 일부 유형은 전송 방향에 따라 명령어 또는 응답으로 다른 의미를 가집니다.DISC(연결 해제) 명령어와 RD(요구 연결 해제) 응답 간의 관계는 충분히 분명해 보이지만, SARM 명령을 수치적으로 DM 응답과 동일하게 만드는 이유는 분명하지 않습니다.

이름. 명령어/
대답
묘사 정보 C 필드 형식
7 6 5 4 3 2 1 0
일반 응답 모드 SNRM 설정 C 모드 설정 3비트 시퀀스 번호 사용 1 0 0 P 0 0 1 1
SNRM 확장 SNRME C 모드 설정, 확장 7비트 시퀀스 번호 사용 1 1 0 P 1 1 1 1
비동기 응답 모드 SARM 설정 C 모드 설정 3비트 시퀀스 번호 사용 0 0 0 P 1 1 1 1
SARM 확장 SARME C 모드 설정, 확장 7비트 시퀀스 번호 사용 0 1 0 P 1 1 1 1
비동기 균형 모드 SABM 설정 C 모드 설정 3비트 시퀀스 번호 사용 0 0 1 P 1 1 1 1
SABM 확장 SABME C 모드 설정, 확장 7비트 시퀀스 번호 사용 0 1 1 P 1 1 1 1
모드 SM 설정 C 설정 모드, 범용 ISO 13239의 새로운 기능 1 1 0 P 0 0 1 1
초기화 모드 SIM 설정 C 주소 지정된 스테이션에서 링크 제어 기능을 초기화합니다. 0 0 0 P 0 1 1 1
초기화 모드 RIM 요청 R 초기화가 필요 SIM 명령 요청 0 0 0 F 0 1 1 1
디스크 연결 해제 C 논리적 링크 연결 종료 미래 I 및 S 프레임은 DM을 반환한다. 0 1 0 P 0 0 1 1
연결 해제 요청 RD R DISC 명령 요청 0 1 0 F 0 0 1 1
Unnumbered 확인 응답 R set-mode 명령어 중 하나를 승인합니다. 0 1 1 F 0 0 1 1
절단 모드 DM R 연결 해제 모드의 응답기 모드 세트 필요 0 0 0 F 1 1 1 1
번호 없는 정보 UI C/R 승인되지 않은 데이터 payload가 있다 0 0 0 P/F 0 0 1 1
헤더 체크 UIH가 있는 UI C/R 승인되지 않은 데이터 ISO 13239의 새로운 기능 1 1 1 P/F 1 1 1 1
번호 없는 폴 UP C 제어 정보 수집에 사용 0 0 1 P 0 0 1 1
RSET 리셋 C 복구에 사용 N(R)을 리셋하지만 N(S)은 리셋하지 않습니다. 1 0 0 P 1 1 1 1
Exchange 식별 정보 XID C/R 요청/보고 기능에 사용 1 0 1 P/F 1 1 1 1
테스트 C/R 테스트용 동일한 정보 필드 교환 1 1 1 P/F 0 0 1 1
프레임 거부 FRMR R 허용되지 않는 프레임의 수신 보고 1 0 0 F 0 1 1 1
예약 없음 0 NR0 C/R 표준화되어 있지 않다 응용 프로그램용 0 0 0 P/F 1 0 1 1
예약 없음 1 NR1 C/R 표준화되어 있지 않다 응용 프로그램용 1 0 0 P/F 1 0 1 1
예약 없음 2 NR2 C/R 표준화되어 있지 않다 응용 프로그램용 0 1 0 P/F 1 0 1 1
예약 없음 3 NR3 C/R 표준화되어 있지 않다 응용 프로그램용 1 1 0 P/F 1 0 1 1
ACK connectionless, seq 0 AC0 C/R HDLC에 포함되지 않음 IEEE 802.2 LLC 확장 0 1 1 P/F 0 1 1 1
ACK connectionless, seq 1 AC1 C/R HDLC에 포함되지 않음 IEEE 802.2 LLC 확장 1 1 1 P/F 0 1 1 1
테스트 CFGR용으로 설정 C/R HDLC에 포함되지 않음 SDLC의 일부였습니다. 1 1 0 P/F 0 1 1 1
비콘 BCN R HDLC에 포함되지 않음 SDLC의 일부였습니다. 1 1 1 F 1 1 1 1
HDLC U 프레임, 바이너리 부호화에 의한
C 필드 형식 명령어 대답 C 필드 형식 명령어 대답
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
1 1 0 0 P/F 0 0 0 UI 1 1 1 0 P/F 0 1 0 (표준)
1 1 0 0 P/F 0 0 1 SNRM 1 1 1 0 P/F 0 1 1 CFGR
1 1 0 0 P/F 0 1 0 디스크 RD 1 1 1 0 P/F 1 0 x (표준)
1 1 0 0 P/F 0 1 1 SM* 1 1 1 0 P/F 1 1 x AC0 – AC1
1 1 0 0 P/F 1 0 0 업. 1 1 1 1 P/F 0 0 0 하드 디스크 DM
1 1 0 0 P/F 1 0 1 (표준) 1 1 1 1 P/F 0 0 1 RSET
1 1 0 0 P/F 1 1 0 UA 1 1 1 1 P/F 0 1 0 사르미
1 1 0 0 P/F 1 1 1 시험 1 1 1 1 P/F 0 1 1 SNRME
1 1 0 1 P/F 0 x x NR0 – NR3 1 1 1 1 P/F 1 0 0 SABM
1 1 0 1 P/F 1 x x (표준) 1 1 1 1 P/F 1 0 1 XID
1 1 1 0 P/F 0 0 0 SIM 1 1 1 1 P/F 1 1 0 SABME
1 1 1 0 P/F 0 0 1 FRMR 1 1 1 1 P/F 1 1 1 UIH*
BCN
* ^^ ISO/IEC 13239 추가
^ ^ HDLC에 포함되지 않음

UI, UIH, XID, TEST 프레임에는 payload가 포함되어 명령과 응답으로 모두 사용할 수 있습니다.SM 명령어와 FRMR 응답에도 payload가 포함되어 있습니다.

  • UI 프레임에는 사용자 정보가 포함되어 있지만 I 프레임과 달리 인식되지 않거나 분실 시 재전송되지 않습니다.
  • UIH 프레임(ISO/IEC 13239 추가)은 UI 프레임과 같지만 프레임의 특정 길이 프리픽스에 대해서만 프레임체크 시퀀스를 적용합니다.이 프리픽스 이후의 송신 에러는 검출되지 않습니다.
  • XID 프레임은 단말기의 기능을 교환하기 위해 사용됩니다.Systems Network Architecture는 하나의 형식을 정의하지만 ISO 8885에서 정의된 변형 형식이 더 일반적으로 사용됩니다.프라이머리는 XID 명령어를 사용하여 기능을 애드버타이즈하고 세컨더리는 XID 응답으로 자체 기능을 반환합니다.
  • TEST 프레임은 단순히 디버깅을 위한 ping 명령어입니다.TEST 명령어의 payload가 TEST 응답으로 반환됩니다.
  • SM 명령어(ISO/IEC 13239 추가)는 파라미터를 지정하는 정보 필드(XID와 동일한 ISO 8885 형식)를 포함하는 일반적인 "set mode" 명령어입니다.이를 통해 파라미터 값(15비트 및 31비트시퀀스 번호 등)과 창 크기, 최대 프레임 크기 등의 파라미터는 표준6개의 모드 세트명령어로 표현할 수 없습니다.
  • FRMR 응답에는 허용되지 않는 프레임에 대한 설명이 표준화된 형식으로 포함되어 있습니다.첫 번째 1 또는2 바이트는 거부된 제어 필드의 복사이며, 다음 1 또는2 바이트에는 세컨더리의 현재 송수신 시퀀스 번호가 포함되어 있습니다.다음 4 또는5 비트는 거부 이유를 나타내는 에러 플래그입니다.

「 」를 참조해 주세요.

메모들

  1. ^ (친구 1988, 191페이지)
  2. ^ "X.25 frame types - Martin Baker".
  3. ^ "X.25 frame types - Martin Baker".
  4. ^ "X.25 frame types - Martin Baker".

레퍼런스

외부 링크