Протокол HDLC — пример настройки и описание

Протокол HDLC (High-Level Data Link Control) – протокол второго уровня модели OSI, разработанный организацией ISO. Этот протокол обеспечивает передачу данных между устройствами в режиме точка-точка или точка-многоточка. В лабораторных работах курса CCNA часто встречаются топологии, где маршрутизаторы соединяются serial кабелем чтобы имитировать работу в глобальных сетях (WAN). В курсе CCNA HDLC используется только в режиме точка-точка, поэтому дальнейшее описание будем делать исходя из этого. Протокол HDLC является стандартным для serial интерфейсов на маршрутизаторах Cisco, таким образом, нет необходимости писать команду encapsulation hdlc.

Существуют две версии этого протокола:
  1. Стандартный (разработанный ISO)
  2. Cisco HDLC (модифицированный Cisco)
Структура фрэймов HDLC ISO и HDLC Cisco

Различие между ними, как видно из иллюстрации, заключается в том, что благодаря наличию поля «protocol» в цисковской реализации, существует возможность инкапсулировать в HDLC фрейм пакеты разных протоколов третьего уровня (IPv4,IPv6,IPX,AppleTalk,…). Разным протоколам третьего уровня соответствуют разные значения поля «protocol», таким образом, получатель фрейма «знает», какому вышестоящему протоколу надо передать содержимое после декапсуляции HDLC фрейма. В случае же использования HDLC ISO, подразумевается, что на интерфейсе маршрутизатора используется только один протокол третьего уровня. Подробнее об уровнях, инкапсуляции и декапсуляции, можно прочитать в статье по модели OSI.

Давайте рассмотрим структуру фрейма cisco HDLC подробнее:
  1. FLAG – признак начала фрейма, специальная последовательность нулей и единиц («01111110»), которая говорит получателю, что далее будет следовать тело фрэйма.
  2. ADDRESS – адрес получателя, в случае использования режима точка-точка, когда соединены два маршрутизатора, это поле может содержать два значения («10000000» - когда данные передаются от DCE к DTE, и «11000000» –в противном случае.
  3. CONTROL – поле содержит служебную информацию. Значение этого поля, в том числе, определяет тип кадра HDLC (существуют три основных типа кадров, об этом позже).
  4. PROTOCOL – поле, содержащее номер протокола третьего уровня, пакет которого «завёрнут» в данный фрейм.
  5. DATA – поле с полезными данными вышестоящих протоколов: сюда «заворачиваются» (инкапсулируются) данные, полученные от протокола третьего уровня (например, IPv4 пакет).
  6. FCS – контрольная сумма, которая считается при отправке фрейма и сравнивается с полученным пересчётом, который делается при получении фрейма. В результате, если суммы не совпадают, кадр считается «битым» и отбрасывается.
  7. FLAG – признак окончания фрейма, содержит то же значение что и признак начала фрейма.
    1. В зависимости от того, с каких битов начинается содержимое поле CONTROL, кадр относится к одному из трёх основных типов:
      1. I-кадр – кадр, переносящий собственно полезные пользовательские данные, только в этот тип кадров инкапсулируются данные протоколов третьего уровня (например, IPv4 пакет) и именно эти кадры чаще всего встречаются в сети.
      2. S-кадры используются для контроля передачи, например, в них может быть отправлен запрос на повторную пересылку «битого» фрейма
      3. U-кадры используются для установки и разрыва логического соединения, а также передачи сообщений об ошибках

      Настройка HDLC в лабораторных работах по курсу CCNA тривиальна. На самом деле, студенты, как правило, настраивают HDLC, ещё не имея представления об этом протоколе. Предположим, что нам надо настроить следующую топологию:

      Топология HDLC

      В соответствии с топологией, R1 будет выступать в роли DCE, значит в лабораторных условиях, надо убедиться, что именно в него мы подключим конец кабеля DCE. Подробнее об этом можно прочитать в статье «Что такое clock rate, DCE и DTE?»

      Дальнейшая настройка тривиальна:

      R1(config)#interface serial0/3/0
      R1(config-if)#ip address 192.168.0.1 255.255.255.0
      R1(config-if)#clock rate 64000
      R1(config-if)#no shutdown
      R2(config)#interface serial0/3/0
      R2(config-if)#ip address 192.168.0.2 255.255.255.0
      R2(config-if)#no shutdown
      В случае, если пинги не идут – можно проверить состояние командой
      R2#sh ip interface brief 
      Interface              IP-Address      OK? Method Status                Protocol
      …
      Serial0/3/0            192.168.0.2     YES manual up                    up
       …
      Если status будет «up», а протокол – «down», то это, как правило означает, что вы перепутали конец кабеля DCE с DTE, либо забыли прописать clock rate, либо прописали его не на том маршрутизаторе. Хотя, в моей практике бывало, что эта ошибка появлялась и из за неплотно подключенного разъёма serial кабеля.

Комментарии

Не совсем понятно для чего применяется сам протокол , ну я так понял предназначен он для регулирования потока передачи данных ?

Аватар пользователя bacek
Как и любой другой протокол 2-го уровня модели OSI, данный протокол выполняет две основные функции: LLC -связь с вышестоящими протоколами и MAC (контроль доступа к среде передачи данных, адресация и энакапсуляция кадров). Задайте себя, например вопрос, для чего применяется протокол ethernet - 70% того что вы ответите будет применимо и к HDLC.

Добрый день!
Как я понял, протокол можно использовать только на медленных serial-соединениях?
До 2 mb/s?

Аватар пользователя bacek
На сколько я понимаю, в самом HDLC ограничений нет, он может работать на любом последовательном соединении. Ограничения связаны именно с Serial линком.

Добавить комментарий