HDLC

**High-Level Data Link Control** (**HDLC**) е синхрон, бит-ориентиран, протокол на data link нивото развиен од Интернационална Организација за Стандардизација (ISO). Оригиналните ISO стандарди за HDLC се:
*ISO 3309 &mdash; Рамка Структура (Frame Structure)
*ISO 4335 &mdash; Елементи на постапка (Elements of Procedure)
*ISO 6159 &mdash; Небалансирани класи на постапка (Unbalanced Classes of Procedure)
*ISO 6256 &mdash; Балансирани класи на постапка (Balanced Classes of Procedure)
    
Важечки стандард за HDLC е ISO 13239, кој ги заменува сите останати стандарди.

HDLC обезбедува и конекциски ориентирана услуга и без конекциска услуга.

HDLC може да биде користен за поврзување на еден уред со повеќе уреди, но скоро секогаш се користи само за да се поврзат два уреди меѓу себе, познато како Асинхром Балансиран Режим (Asynchronous Balanced Mode (ABM)). Другите два режими Normal Response Mode (NRM) и Asynchronous Response Mode (ARM) се ретко користени.

## Историја
HDLC е заснован на IBM-от SDLC протокол, кој е протокол од второ ниво за IBM-та Системска Мрежна Архитектура (SNA). Беше проширена и стандардизирана од ITU како LAP, додека ANSI нивната идентична верзија ја нарече ADCCP.

Дериватите оттогаш се појавиле во безброј стандарди. Беше посвоен во X.25 протоколовиот магацин како LAPB, во V.42 протоколот како LAPM, во Frame Relay протоколот како LAPF и во ISDN протоколт како LAPD. Тоа беше инспирација за IEEE 802.2 LLC протоколот, и тоа е основата за оформување на механизам користен со PPP на синхрони линии, користен од многу опслужувачи за да се конекнтираат на WAN, најчесто на Интернет. Благо поинаква верзија исто така се користи како канал за контрола на E-carier(E1) и во SONET повеќе каналните телефонски линии. Некој произведувачи како Cisco, имплементираа протоколи како Cisco HDLC кој користат ниско ниво од HDLC врамувачката технологија но додадоа поле за протокол во стандардниот HDLC хедер. Уште поважно, HDLC е стандардна енкапсулација за сериски интерфејси на насочувачите на Cisco.

## Врамување (Framing)
HDLC рамките можат да бидат пренесени преку синхрони или асинхрони врски. Овие врски немаат механизам да го означат почетокот или крајот на рамката, па почетокот и крајот на секоја рамка мора да бидат идентифицирани. Ова е направено со користење на раздвојувач на рамки, или *знаменце*, кое е уникатна секвенца од битови која сигурно нема да постои внатре во рамката. Оваа секвенца е '01111110', или, во хексадецимална нотација, 0x7E. Секоја рамка започнува и завршува со раздвојувач на рамки. Раздвојувачот на крајот од рамката исто така може да биде и почеток на наредната рамка. Секвенца од 7 или повеќе последователни 1-битови во рамката ќе предизвика рамката да биде прекината.

Кога без рамки се пренесуваат на симплекс или full-duplex синхрона врска, раздвојувачот на рамката постојано се пренесува на линкот. Користеики го стандардното NRZI кодирање од битови во нивоа на линии (0 бит = пренос, 1 бит = нема пренос), ова генерира еден од двата континуирани бранови, во зависност од почетната состојба: 

Ова се користи од страна на модем за да се обучат и синхронизираат нивните часовници преку phase-locked loops. Некој протокили дозволуваат 0-бит на крајото од расвојувачот на рамки да се сподели со почетокот на следниот раздвојувач на рамки, пр. '011111101111110'.

### Синхронизирано Врамување
Во синхронизираните врски, ова е завршено со вметнување бит. Секој пат кога ќе се појават 5 последователни 1-битови во податоците кој се пренесуваат, податоците се паузираат и се префрла 0-бит. Ова осигурува дека не повеќе од 5 последователни 1-битови ќе бидат пратени. Уредот кој ги прифака знае дека ова е направено, и после примени 5 1-бита во ред, следниот 0-бит се отврла од примените податоци. Ако следниот бит е 1-бит, примачот пронашол знаменце.

HDLC пренесува бити од  податоци од кој првиот бит е најмалку значајниот.

### Асинхроно врамување
При користење на асинхрона сериска комуникација како стандардот RS-232, битовите се пракаат во групи од 8, спојувањето на битови е незгодно. Наместо тоа тие користат "транспарентност на октет-контрола", наречено "бајт пополнување" или "октет пополнување". Октетот на границата на рамката е 01111110, (7E во хексадецимална нотација). "Контролата избеган октет" има бит секвенца '01111101', (7D хексадецимално). Ако некоја од овие два октети се појави во пренесуваните податоци, еден избеган октет е прратен, пратен од оригиналниот октет податоци со извртени 5 бита. На пример, податочната секвенца "01111110" (7E хексадецимално) ќе биде пренесена како  "01111101 01011110" ("7D 5E" хексадецимално). Другиот резервиран октет вредности (како XON или XOFF) може да биде избегнат на истиот на истиот начин ако е потребно.

## Структура
Содржината на HDLC рамката е прикажана во следната табела:

Забележете дека крајното знаменце на една рамка може да биде (но не мора) почетно знаменце од наредната рамка.

## Линк Конфифурации

Линк Конфигурациите можат да бидат категоризирани како:
**Небалансирани*, кој се состои од еден примарен терминал, и еден или повеќе секундарни терминали.
**Балансирани*, кој се состои од два peer терминали.

Трите Линк Конфигурации се:
**Режим на нормална реакција* (NRM) е небалансирана конфигурација во која само примарниот терминал може да иницира трансфер на податоци. Секундарниот терминал пренесува податоци само како одговор на команда зададена од примарниот терминал. Примарниот терминал го приморува секундарниот терминал(и) да утврди дали има податоци за пренесување, а потоа да селектира една за пренесување.
**Режим на асинхрона реакција* (ARM) е небалансирана конфигурација во која секундарните терминали можат да пренесуваат без дозвола од примарниот терминал. Како и да е примарниот терминал сè уште ја има одговорноста за инцијализација на линија, поправки на грешки и логички дисконектирања.
**[[Асинхрон балансиран режим]]* (ABM) е балансирана конфигурација во која двете станици можат да иницираат пренос.
Дополнителна Линк Конфигурација е Дисконектиран Режим. Ова е режим каде секундарната станица е внатре пред да биде иницијализирана од примарната, или кога е изречно дисконектирана. Во овој режим, секундарниот одговара на скоро секоја рамка освен на оние со наместена наредба "Дисконектиран режим" да одговори. Целта на овој режим е да му овозможи на примарната станица сигурно да открие доколку секундарната станица е исклучена или рестартирана.

## HDLC Команда и Одговор на репертоарот
*Команди (BALA, I, RR, RNR, (SNRM or SARM or SABM) DISC
*Одговори (I, RR, RNR, UA, DM, FRMR)
### Основни операции
*Иницијализацијата може да биде побарана од обете страни. Кога шестиот режим сет команди е користен. Оваа команда:
**Ја сигнализира другата страна дека иницијализацијата е побарана
**Го одредува режимот, NRM, ABM, ARM
**Одредува дали 3 или 7 битна секвенца на броеви е во употреба.
HDLC режимот го пренесува на другиот крај на рамката кога барањето е прифатено. И ако барањето е одбиено тоа се праќа на рамката од Дисконектираниот режим.

### Функционални Екстензии (Опции)
*За (For) Switched Circuits 
**Команди: ADD - XID
**ОДговори: ADD - XID, RD
*За 2-насочен Симултани команди & одговори се ADD - REJ
*За Единствена Рамка за Реемитување командите & одговорите: ADD - SREJ
*За Информации Командите & Одговорите: ADD - Ul
*За Иницијализација
**Команди: ADD - SIM
**Одговори: ADD - RIM
*За Избирачките Групи
**Команди: ADD - UP
*Проширено Адресирање
*Избриши Одговори I Рамки
*Избриши Команди I Рамки
*Проширено Нумерирање
*За Рестартирање на Режим(ABM only) Командите се: ADD - RSET
*Data Link Тест Команди & Одговори се: ADD - TEST
*Барање за Дисконектирање. Одговорите се ADD - RD
*32-битна FCS

## HDLC Команда/Одговор Репертоар

### Ненумерирани Рамки
Ненумерирани рамки се идентификуваат преку ниските два бити и тоа ако се 1. Со P/F знаменцето, тоа остава 5 бита како тип на рамка. Иако помалку од 32 вредносити се во употреба, некој типови имаат различни значења зависно од правецот каде се пратени: како барање или како одговор. Односот помеѓу **DISC** (disconnect) командата и  **RD** (request disconnect) одговорот се чини доволно јасни, но причината за создавање на **SARM** наредба бројчено еднаква на **DM** одговорот е непознат.

UI, XID и TEST рамки содржат товар, и може да се користат и како команди и одговори.
* UI рамката содржи информации за корисниците, но разлика од I рамката нема потврда или повторно испраќање ако е изгубено.
* XID рамката се користи за размена на терминал способностите.  IBM Systems Network Architecture дефинира еден формат, но варијантата е дифинирана во ISO 8885 е почесто користена.  Примарниот ги рекламира своите способности со XID команда, и секундарниот враќа XID одговор. 
* TEST рамката е едноставна ping команда за дебагирачки цели. Товарот од TEST командата е вратена во TEST одговорот.
FRMR рамката содржи товар кој ги опишува непоригатливите рамки. Првите 1 или 2 бајти се копија од отфрленото контролно поле, наредните 1 или 2 ја содржат пратената или примената секвенца од бројќи, а наредните 4 или 5 бити ја наведува причината поради која се случило одбивањето.

## Исто така погледнете
* PPP, SLIP

## Белешки

## Наводи
*
*
*

## Надворешни врски
* RFC 2687, Proposed Standard, PPP in a Real-time Oriented HDLC-like Framing 
* RFC 1662, standard 51, PPP in HDLC-like Framing
* HDLC information page 
* Data Communication Lectures of Manfred Lindner - Part HDLC 
* HDLC packet format and other information
* The HDLC Family of Protocols  

Категорија:Семрежни протоколи