Рефетека.ру / Информатика и програм-ие

Реферат: Протокол HDLC

Содержание:

|Техническое задание |2 |
| | |
|Введение |3 |
| | |
|Глава 1. Теоретическая часть | |
| | |
| Выбор языка |4 |
|программирования | |
| Понятие протокола |5 |
|канального уровня | |
| Обзор протокола HDLC |6 |
| | |
|Глава 2. Программная часть | |
| | |
| Описание алгоритма работы |13|
|программы | |
| Описание интерфейса |15|
| | |
|Заключение. |17|
| | |
|Список используемой литературы. |18|
|Приложение. |19|

Техническое задание

Разработать программу имитации передачи информации через протокол канального уровня HDLC.

Введение

HDLC - протокол высокоуровнего управления каналом передачи данных, является опубликованным ISO стандартом и базовым для построения других протоколов канального уровня (SDLC, LAP, LAPB, LAPD, LAPX и LLC). Он реализует механизм управления потоком посредством непрерывного ARQ

(скользящее окно) и имеет необязательные возможности (опции), поддерживающие полудуплексную и полнодуплексную передачу, одноточечную и многоточечную конфигурации, а так же коммутируемые и некоммутируемые каналы.

Выбор языка программирования

Потребность в разработке и применении эффективных и адекватных реальной действительности компьютерных программ и технологий сегодня возрастает. Компьютерная технология незаменима, поскольку она даёт возможность оптимизировать и рационализировать управленческую функцию за счет применения новых средств сбора, передачи и преобразования информации.

Выпускная работа написана в программной среде Delphi. Это наводит на вопрос, а почему выбран именно этот язык программирования?

Delphi обладает широким набором возможностей, начиная от проектировщика форм и кончая поддержкой всех форматов популярных баз данных. Среда устраняет необходимость программировать такие компоненты
Windows общего назначения, как метки, пиктограммы и даже диалоговые панели.
Работая в Windows , вы неоднократно видели одинаковые «объекты» во многих разнообразных приложениях. Диалоговые панели (например, Choose File и Save
File) являются примерами многократно используемых компонентов, встроенных непосредственно в Delphi, который позволяет приспособить эти компоненты к имеющийся задаче, чтобы они работали именно так, как требуется создаваемому приложению. Также здесь имеются предварительно определенные визуальные и не визуальные объекты, включая кнопки, объекты с данными, меню и уже построенные диалоговые панели. С помощью этих объектов можно, например, обеспечить ввод данных просто несколькими нажатиями кнопок мыши, не прибегая к программированию. Та часть, которая непосредственно связана с программированием интерфейса пользователя системой, получила название визуальное программирование.

Визуальное программирование как бы добавляет новое измерение при создании приложений, давая возможность изображать эти объекты на экране монитора до выполнения самой программы. Без визуального программирования процесс отображения требует написания фрагмента кода, создающего и настрающего объект «по месту». Увидеть закодированные объекты было возможно только в ходе исполнения программы. При таком подходе достижение того, чтобы объекты выглядели и вели себя заданным образом, становится утомительным процессом, который требует неоднократных исправлений программного кода с последующей прогонкой программы и наблюдения за тем, что в итоге получилось.

Благодаря средствам визуальной разработки можно работать с объектами, держа их перед глазами и получая результаты практически сразу. Способность видеть объекты такими, какими они появляются в ходе исполнения программы, снимает необходимость проведения множества операций вручную, что характерно для работы в среде, не обладающей визуальными средствами — вне зависимости от того, является она объектно-ориентированной или нет. После того, как объект помещен в форму среды визуального программирования, все его атрибуты сразу отображаются в виде кода, который соответствует объекту как единице, исполняемой в ходе работы программы.

Размещение объектов в Delphi связано с более тесными отношениями между объектами и реальным программным кодом. Объекты помещаются в вашу форму, при этом код, отвечающий объектам, автоматически записывается в исходный файл. Этот код компилируется, обеспечивая существенно более высокую производительность, чем визуальная среда, которая интерпретирует информацию лишь в ходе исполнения программы.

Понятие протокола канального уровня.

Для создания надежного механизма передачи данных между двумя станциями необходимо определить протокол, который позволит принимать и передавать различные данные по каналам связи. Протоколы представляют собой просто набор условий (пра- вил), которые регламентируют формат и процедуры обмена информацией между двумя или несколькими независимыми устройствами или процессами. Протокол имеет три важнейших элемента: синтаксис, семантику и синхронизацию. Синтаксис протокола определяет поля; например, может быть 16- байтовое поле для адресов, 32-байтовое поле для контрольных сумм и 512 байт на пакет. Семантика протокола придает этим полям значение: например, если адресное поле состоит из всех адресов, это "широковещательный" пакет.
Синхронизация - количество битов в секунду - это скорость передачи данных.
Она важна не только на самых низких уровнях протокола, но и на высших.

Протокол канального обеспечивает следующие функции :

. управление передачей данных через физический канал организованный на первом уровне;

. проверка информационного канала;

. формирование кадра т.е. окаймление передаваемых данных служебными символами данного уровня;

. контроль данных;

. обеспечение прозрачности информационного канала;

. управление каналом передачи данных;

Данный протокол занимает второй уровень в многоуровневой организации управления сетью.

Обзор протокола HDLC


Типы, логические состояния и режимы работы станций. Способы конфигурирования канала связи

Существует три типа станций HDLC:
Первичная станция (ведущая) управляет звеном передачи данных (каналом).
Несет ответственность за организацию потоков передаваемых данных и восстановление работоспособности звена передачи данных. Эта станция передает кадры команд вторичным станциям, подключенным к каналу. В свою очередь она получает кадры ответа от этих станций. Если канал является многоточечным, главная станция отвечает за поддержку отдельного сеанса связи с каждой станцией, подключенной к каналу.
Вторичная станция (ведомая) работает как зависимая по отношению к первичной станции (ведущей). Она реагирует на команды, получаемые от первичной станции, в виде ответов. Поддерживает только один сеанс, а именно только с первичной станцией. Вторичная станция не отвечает за управление каналом.
Комбинированная станция сочетает в себе одновременно функции первичной и вторичной станции. Передает как команды, так и ответы и получает команды и ответы от другой комбинированной станции, с которой поддерживает сеанс.
Три логических состояния , в которых могут находиться станции в процессе взаимодействия друг с другом.
Состояние логического разъединения (LDS) . В этом состоянии станция не может вести передачу или принимать информацию. Если вторичная станция находится в нормальном режиме разъединения (NDM - Normal Disconnection
Mode), она может принять кадр только после получения явного разрешения на это от первичной станции. Если станция находится в асинхронном режиме разъединения (ADM - Asynchronous Disconnection Mode), вторичная станция может инициировать передачу без получения на это явного разрешения, но кадр должен быть единственным кадром, который указывает статус первичной станции. Условиями перехода в состояние LDS могут быть начальное или повторное (после кратковременного отключения) включение источника питания; ручное управление установлением в исходное состояние логических цепей различных устройств станции и определяется на основе принятых системных соглашений.
Состояние инициализации (IS) . Это состояние используется для передачи управления на удаленную вторичную/комбинированную станцию, ее коррекции в случае необходимости, а также для обмена параметрами между удаленными станциями в звене передачи данных, используемыми в состоянии передачи информации.
Состояние передачи информации (ITS) . Вторичной, первичной и комбинированным станциям разрешается вести передачу и принимать информацию пользователя. В этом состоянии станция может находится в режимах NRM, ARM и
ABM, которые описаны ниже.
Три режима работы станции в состоянии передачи информации, которые могут устанавливаться и отменяться в любой момент.
Режим нормального ответа (NRM - Normal Response Mode) требует, чтобы прежде, чем начать передачу, вторичная станция получила явное разрешение от первичной. После получения разрешения вторичная станция начинает передачу ответа, который может содержать данные. Пока канал используется вторичной станцией, может передаваться один или более кадров. После последнего кадра вторичная станция должна снова ждать явного разрешения, прежде чем снова начать передачу. Как правило, этот режим используется вторичными станциями в многоточечных конфигурациях звена передачи данных.
Режим асинхронного ответа (ARM - Asynchronous Response Mode) позволяет вторичной станции инициировать передачу без получения явного разрешения от первичной станции (обычно, когда канал свободен, - в состоянии покоя). Этот режим придает большую гибкость работы вторичной станции. Могут передаваться один или несколько кадров данных или управляющая информация, отражающая изменение статуса вторичной станции. ARM может уменьшить накладные расходы, поскольку вторичная станция, чтобы передать данные, не нуждается в последовательности опроса. Как правило, такой режим используется для управления соединенными в кольцо станциями или же в многоточечных соединениях с опросом по цепочке. В обоих случаях вторичная станция может получить разрешение от другой вторичной станции и в ответ на него начать передачу. Таким образом разрешение на работу продвигается по кольцу или вдоль соединения.
Асинхронный сбалансированный режим (ABM - Asynchronous Balanse Mode) используют комбинированные станции. Комбинированная станция может инициировать передачу без получения предварительного разрешения от другой комбинированной станции. Этот режим обеспечивает двусторонний обмен потоками данных между станциями и является основным (рабочим) и наиболее часто используемым на практике
Три способа конфигурирования канала для обеспечения совместимости взаимодействий между станциями, использующих основные элементы процедур
HDLC и способных в процессе работы менять свой статус (первичная, вторичная, комбинированная):
Несбалансированная конфигурация (UN - Unbalanced Normal) обеспечивает работу одной первичной станции и одной или большего числа вторичных станций в конфигурации одноточечной или многоточечной, полудуплексной или полнодуплексной, с коммутируемым каналом и с некоммутируемым. Конфигурация называется несбалансированной потому, что первичная станция отвечает за управление каждой вторичной станцией и за выполнение команд установления режима.
Симметричная конфигурация (UA - Unbalanced Asynchronous) была в исходной версии стандарта HDLC и использовалась в первых сетях. Эта конфигурация обеспечивает функционирование двух независимых двухточечных несбалансированных конфигураций станций. Каждая станция обладает статусом первичной и вторичной, и, следовательно, каждая станция логически рассматривается как две станции: первичная и вторичная. Главная станция передает команды вторичной станции на другом конце канала, и наоборот.
Несмотря на то, что станция может работать как в качестве первичной, так и вторичной станции, которые являются самостоятельными логическими объектами, реальные команды и ответы мультиплексируются в один физический канал. Этот подход в настоящее время используется редко.
Сбалансированная конфигурация (BA - Balanced Asynchronous) состоит из двух комбинированных станций, метод передачи - полудуплексный или дуплексный, канал - коммутируемый или некоммутируемый. Комбинированные станции имеют равный статус в канале и могут несанкционированно посылать друг другу трафик. Каждая станция несет одинаковую ответственность за управление каналом.
Управление потоком

Формат кадра HDLC

На канальном уровне используется термин кадр для обозначения независимого объекта данных, передаваемого от одной станции к другой (рис.1).
Флаг . Все кадры должны начинаться и заканчиваться полями флага "01111110".
Станции, подключенные к каналу, постоянно контролируют двоичную последовательность флага. Флаги могут постоянно передаваться по каналу между кадрами HDLC. Для индексации исключительной ситуации в канале могут быть посланы семь подряд идущих единиц. Пятнадцать или большее число единиц поддерживают канал в состоянии покоя. Если принимающая станция обнаружит последовательность битов не являющихся флагом, она тем самым уведомляется о начале кадра, об исключительной (с аварийным завершением) ситуации или ситуации покоя канала. При обнаружении следующей флаговой последовательности станция будет знать, что поступил полный кадр.
|Формат кадра HDLC |
|Флаг |Адрес |Управляющее поле |Информационное поле |CRC |Флаг |

|Формат управляющего поля кадра HDLC |
|1 |0 |S-коды |P/F |N(R) |S-формат |
|1 |1 |U-коды |P/F |U-коды |U-формат |


Рис.1. Формат кадра и управляющего поля HDLC, где:

N(S) - порядковый номер передаваемого кадра,

N(R) - порядковый номер принимаемого кадра,

P/F - бит опроса/окончания
Адресное поле определяет первичную или вторичную станции, участвующие в передаче конкретного кадра. Каждой станции присваивается уникальный адрес.
В несбалансированной системе адресные поля в командах и ответах содержат адрес вторичной станции. В сбалансированных конфигурациях командный кадр содержит адрес получателя, а кадр ответа содержит адрес передающей станции.
|Правила адресации |
|Первична|------ Команда (Адрес В) -----> |Вторична|Несбалансир|
|я | |я |. |
|станция | |станция |конфигураци|
|А | |В |я |
| | |Комбинир|Сбалансир. |
|. | |. |конфигураци|
|станция | |станция |я |
|А | |В | |
| |= msecs; end; procedure TForm1.SpeedButton1Click(Sender: TObject); begin if opendialog1.Execute then begin kl:=true;
LabeledEdit1.Text:=OpenDialog1.FileName; memo3.Lines.LoadFromFile(OpenDialog1.FileName); end; end;

procedure TForm1.Button3Click(Sender: TObject); var st6,st5,st3,st2,st1,st,st4:string;kol,k,i,j,im:integer;f:file of char;ch:char; begin if kl=true then begin kl:=false; assignfile(f,OpenDialog1.filename); reset(f); form2.Memo3.Lines.Clear; while not eof(f) do begin im:=0; form2.Memo2.Lines.Clear; edit3.Text:='10100000'; memo2.Lines.Add('Команда RR - готов к приему'); memo2.Lines.Add('---------------------------');
Radiogroup1.itemindex:=0;
RichEdit1.Lines.Clear;
RichEdit1.Lines.Add('011111101010010101100000000000000001111110');
RadioGroup2.ItemIndex:=1; delay(2000);

form2.RadioGroup1.ItemIndex:=0; form2.RadioGroup2.ItemIndex:=1; form2.memo1.Lines.Clear; form2.memo1.Lines.Add('011111101010010101100000000000000001111110'); form2.Show; delay(2000); form2.Memo1.Lines.Clear; form2.Memo1.Lines.Add('011111101010010101110000000000000001111110'); form2.RadioGroup1.itemindex:=1; form2.RadioGroup2.ItemIndex:=1; delay(2000); form2.Hide; edit3.Text:='10101000'; memo2.Lines.Add('Ответ RR - готов к приему'); memo2.Lines.Add('-------------------------');
RichEdit1.Lines.Clear;
RichEdit1.Lines.Add('011111101010010101110000000000000001111110');
RadioGroup1.itemindex:=1;
RadioGroup2.ItemIndex:=1;

st:=''; st:='011111101010010101'; i:=0; st3:='';
RichEdit1.Lines.Clear; memo2.Lines.Add('Передача'); memo2.Lines.Add('-------------------------'); st4:=''; st4:=st4; st5:=''; st6:=''; while (not eof(f))and (i

Рефетека ру refoteka@gmail.com