BKCC_kurs (Протокол HDLC), страница 2

2016-07-31СтудИзба

Описание файла

Документ из архива "Протокол HDLC", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "BKCC_kurs"

Текст 2 страницы из документа "BKCC_kurs"

Управление потоком

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

На канальном уровне используется термин кадр для обозначения независимого объекта данных, передаваемого от одной станции к другой (рис.1).

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

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

Флаг

Адрес

Управляющее поле

Информационное поле

CRC

Флаг

Формат управляющего поля кадра HDLC

1

2

3

4

5

6

7

8

Разряды

0

N(S)

P/F

N(R)

I-формат

1

0

S-коды

P/F

N(R)

S-формат

1

1

U-коды

P/F

U-коды

U-формат

Рис.1. Формат кадра и управляющего поля HDLC, где:
N(S) - порядковый номер передаваемого кадра,
N(R) - порядковый номер принимаемого кадра,
P/F - бит опроса/окончания

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

Правила адресации

Первичная
станция А

------ Команда (Адрес В) ----->

Вторичная
станция В

Несбалансир.
конфигурация

<----- Ответ (Адрес В) ------

Комбинир.
станция
А

----- Команда (Адрес В) ----->

Комбинир.
станция
В

Сбалансир.
конфигурация

<----- Ответ (Адрес В)------

<----- Команда (Адрес А) ------

------ Ответ (Адрес А) ----->

Управляющее поле задает тип команды или ответа, а так же порядковые номера, используемые для отчетности о прохождении данных в канале между первичной и вторичной станциями. Формат и содержание управляющего поля (рис. 1) определяют кадры трех типов: информационные (I), супервизорные (S) и ненумерованные (U).

Информационный формат (I - формат) используется для передачи данных конечных пользователей между двумя станциями.

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

Ненумерованный формат (U - формат) также используется для целей управления: инициализации или разъединения, тестирования, сброса и идентификации станции и т.д. Конкретный тип команды и ответа зависит от класса процедуры HDLC.

Информационное поле содержит действительные данные пользователя. Информационное поле имеется только в кадре информационного формата. Его нет в кадре супервизорного или ненумерованного формата. [Примечание: кадры "UI - ненумерованная информация" и "FRMR - Неприем кадра" ненумерованного формата имеют информационное поле].

Поле CRC (контрольная последовательность кадра) используется для обнаружения ошибок передачи между двумя станциями. Передающая станция осуществляет вычисления над потоком данных пользователя, и результат этого вычисления включается в кадр в качестве поля CRC. В свою очередь, принимающая станция производит аналогичные вычисления и сравнивает полученный результат с полем CRC. Если имеет место совпадение, велика вероятность того, что передача произошла без ошибок. В случае несовпадения, возможно, имела место ошибка передачи, и принимающая станция посылает отрицательное подтверждение, означающее, что необходимо повторить передачу кадра. Вычисление CRC называется циклическим контролем по избыточности и использует некоторый производящий полином в соответствии с рекомендацией МККТТ V.41. Этот метод позволяет обнаруживать всевозможные кортежи ошибок длиной не более 16 разрядов, вызываемые одиночной ошибкой, а также 99,9984% всевозможных более длинных кортежей ошибок.

Кодонезависимость и синхронизация HDLC

 

Управляющее поле HDLC

Управляющее поле (рис.1) определяет тип кадра и используется для реализации механизма управления потоком между передающей и принимающей станциями. На рис.2 представлены команды и ответы, используемые в случае сбалансированной и несбалансированной конфигураций канала. Отметим, что в каждом верхнем прямоугольнике содержатся три команды: SNRM, SARM, SABM.

Несбалансированный (UN)

Несбалансированный (UA)

Сбалансированный (UB)

Первичная

Вторичная

Первичная

Вторичная

Первичная

Вторичная

Команда

Ответ

Команда

Ответ

Команда

Ответ

I

I

I

I

I

I

RR

RR

RR

RR

RR

RR

RNR

RNR

RNR

RNR

RNR

RNR

SNRM

UA

SARM

UA

SABM

UA

DISC

DM

DISC

DM

DISC

DM

 

FRMR

 

FRMR

 

FRMR

Эти команды являются командами установки режима. HDLC требует, чтобы в одном из трех режимов была установлена сбалансированная или несбалансированная конфигурация. Действительный формат управляющего поля (информационный, супервизорный или ненумерованный) определяет то, как это поле кодируется или используется. Самым простым форматом является информационный формат. Содержимое управляющего поля для этого формата показано на рис.1. Управляющее поле информационного кадра содержит два порядковых номера Номер N(S) (Порядковый номер посылки) связан с порядковым номером передаваемого кадра. N(R) (Порядковый номер приема) означает порядковый номер следующего кадра, который ожидается принимающей станцией. N(R) выступает в качестве подтверждения предыдущих кадров. Например, если поле N(R) установлено в 4, станция, получив N(R)=4, знает, что передача кадров 0, 1, 2 и 3 завершилась успешно и что станция, с которой производится обмен данными, ожидает, что следующий кадр будет иметь порядковый номер посылки N(S)=4. Поле N(R) обеспечивает включающее подтверждение (квитирование), то есть N(R)=4 включает подтверждение не только одного предшествующего сообщения. Переменные состояния посылки V(S) и состояния приема V(R), рассмотренные нами ранее, используются для формирования полей N(S) и N(R) протокола HDLC.

Пятый двоичный разряд, бит P/F или бит опроса/окончания принимается во внимание только тогда, когда он установлен в 1. Бит P/F называется битом P, когда он используется первичной станцией, и битом F, когда он используется вторичной станцией. Он используется первичной и вторичной станциями для выполнения следующих функций:

Первичная станция использует бит P для санкционирования передачи кадра статуса от вторичной станции. P также может означать опроc.

Вторичная станция отвечает на бит P кадром данных или состояния с битом F. Бит F может также означать окончание передачи вторичной станцией в режиме нормального ответа (NRM).

Только один бит P (ожидающий ответа в виде F бита) может быть активным в канале в любой момент времени. Если некоторый бит P установлен в 1, он может быть использован в качестве контрольной точки. То есть P=1 как бы говорит: ответьте мне, потому что я хочу знать ваш статус. Контрольные точки играют большую роль в реализации механизма управления трафиком. Это также способ устранения неопределенностей и отмены накопленных транзакции. Бит P/F может использоваться и интерпретироваться следующим образом:

В режиме NRM вторичная станция не может вести передачу, пока не будет получена команда с установленным в 1 битом P. Первичная станция может запросить информационные (I) кадры путем посылки кадра с установленным в 1 битом P или путем посылки некоторых супервизорных (S) кадров (RR, REJ или SREJ) с установленным в 1 битом P.

В режимах ARM и ABM информационные кадры могут передаваться без получения полномочий на передачу с помощью команды, имеющей бит P. Поэтому бит P используется в этом случае для запроса ответа с установленным в 1 битом F так быстро, насколько это возможно. Например, в случае двунаправленной одновременной (полнодуплексной) передачи, когда по получении команды с установленным в 1 битом Р передачу ведет вторичная станция, бит F устанавливается в 1 в самом первом очередном ответе. Передача кадра с установленным в 1 битом F не требует, чтобы вторичная станция прекратила передачу. Вслед за кадром с установленным в 1 битом F могут быть еще переданы кадры. В режимах ARM и ABM не следует интерпретировать бит F как окончание передачи вторичной станцией; его следует просто считать индикатором ответа на предыдущий кадр.

Описание команд и ответов

Супервизорный формат показан на рис.1 и предусматривает четыре команды и ответа (RR, RNR, REJ, SREJ), которые представлены на рис.4.5. (Обобщенная сводка всех команд и ответов приведена в таблице 1). Назначение этого формата состоит в выполнении нумерованных [т.е. использующих порядковые номера кадров N(R)] супервизорных функций, таких, как подтверждение (квитирование), опрос, временная задержка передачи данных и восстановление после ошибок. Кадры супервизорного формата не содержат информационного поля, следовательно, как показано на рис.1, в них располагается только порядковый номер приема N(R). Супервизорный формат может быть использован для подтверждения приема кадров от передающей станции.

Функции команд и ответов, используемых супервизорным форматом:

RR (Receive ready - Готов к приему) используется первичной или вторичной станцией для индикации того, что станция готова принять информационный кадр и/или подтвердить (квитировать) ранее принятые кадры с помощью поля N(R). Если станция до этого, используя команду "Не готов к приему", посылала уведомление о том, что она занята, теперь она использует команду Готов к приему для индикации того, что она свободна и готова принять данные. Первичная станция может также использовать команду Готов к приему для опроса вторичной станции.

RNR (Receive not ready - Не готов к приему) используется станцией для индикации состояния занятости. Эта команда уведомляет передающую станцию о том, что принимающая станция не способна принять дополнительные поступающие данные. Кадр RNR, используя поле N(R), может подтвердить прием ранее переданных кадров. Состояние занятости может быть сброшено посылкой кадра RR, а также некоторых других кадров, которые будут рассмотрены позднее.

REJ (Reject - Неприем) используется для запроса передачи кадров, начиная с кадра, указанного в поле N(R). Подтверждаются все кадры с номерами до N(R) - 1. Кадр REJ может использоваться для реализации метода "Возвращение-на-N" (Go-Back-N).

SREJ (Selective reject - Выборочный неприем) используется станцией для запроса повторной передачи единственного кадра, который определен в поле N(R). Как и в случае включающего подтверждения, подтверждение распространяется на все информационные кадры с номерами до N(R) - 1 включительно. Выборочный неприем позволяет реализовать режим выборочного повторения. Как только передан кадр SREJ, следующие кадры принимаются и сохраняются для повторно передаваемого кадра.

Таблица 1

 

Код управляющего поля

 

 

 

1

2

3

4

5

6

7

8

Команды

Ответы

I-формат

0

N(S)

*

N(R)

I - Информация

I - Информация

S-формат

1

0

0

0

*

N(R)

RR - Готов к приему

RR - Готов к приему

1

0

0

1

*

N(R)

REJ - Неприем

REJ - Неприем

1

0

1

0

*

N(R)

RNR - Не гот.к приему

RNR - Не гот.к приему

1

0

1

1

*

N(R)

SREJ - Выбор. неприем

SREJ - Выбор. неприем

U-формат

1

1

0

0

*

0

0

0

UI - Ненумеров. информ.

UI - Ненумеров. информ.

1

1

0

0

*

0

0

1

SNRM - Установить NRM

 

1

1

0

0

*

0

1

0

DISC - Разъединить

RD- Запрос разъед.

1

1

0

0

*

1

0

0

UP- Ненумеров. опрос

 

1

1

0

0

*

1

1

0

 

UA - Ненумеров.подтв.

1

1

0

0

*

1

1

1

TEST - Проверка

TEST - Проверка

1

1

1

0

*

0

0

0

SIM - Уст.реж.иниц.

RIM - Запр.реж.иниц.

1

1

1

0

*

0

0

1

 

FRMR - Неприем кадра

1

1

1

1

*

0

0

0

SARM - Установить ARM

DM - Режим разъед.

1

1

1

1

*

0

0

1

RSET - Сбросить

 

1

1

1

1

*

0

1

0

SARME - Уст.расш.ARM

 

1

1

1

1

*

0

1

1

SNRME - Уст.расш.NRM

 

1

1

1

1

*

1

0

0

SABM -установить ABM

1

1

1

1

*

1

0

1

XID - Идентиф. станции

XID - Идентиф. станции

1

1

1

1

*

1

1

0

SABME -Уст.расш. ABM

 

 

Системные параметры Т1, N2, N1, K и рекомендации по их установке

Таймер Т1 запускается с момента передачи каждого кадра и используется для инициирования повторной передачи, в случае его переполнения. При выборе периода таймера Т1 необходимо учитывать, запускается ли таймер по началу или по концу кадра. Для правильной работы процедуры необходимо, чтобы период таймера Т1 был больше, чем максимальное время между передачей некоторого кадра (SARM, SABM, DM, DISC, FRMR, I или супервизорной команды) и приемом соответствующего кадра, возвращаемого в качестве отклика на этот кадр (UA, DM или подтверждающий кадр).

Счетчик N2 используется для определения максимального числа повторных передач, выполняемых по переполнении таймера Т1. Переменные Т1 и N2 используются также командами / ответами установления звена, такими, как SABM и UA.

Счетчик N1 - максимальное число битов в I-кадре. Определяет максимальную длину информационных полей.

Размер окна К - максимальное число переданных, но не подтвержденных I-кадров. Это максимальное число последовательно занумерованных I-кадров, которые в любой момент времени станции могут передать без получения подтверждения. Оно не должно быть более 7.

Параметры Т1, N2, N1 и K являются системными, подлежащими согласованию с администрацией на некоторый период времени.

Описание алгоритма

Обеспечение кодопрозрачности

HDLC является кодопрозрачным протоколом. Он не зависит от конкретного кода (ASCII/IA5 или EBCDIC) при выполнении функции управления каналом. Восьмибитовая комбинация флага 01111110 помещается в начале и в конце кадра, чтобы дать возможность приемнику распознать начало и конец кадра. Возможны случаи, когда прикладной процесс помещает в данных пользователя последовательность 01111110, совпадающую с флагом. В этом случае передающая станция в поток выходных данных помещает 0 после 5 подряд идущих единиц, встретившихся в любом месте между начальным и конечным флагами кадра. Такая вставка производится в адресное, управляющее, информационное поля и поле CRC. Этот метод называется вставкой битов(bit staffing) ; такую же функцию выполняет знак DLE в протоколе BSC. После того как завершается вставка битов в кадр и по концам кадра помещаются флаги, кадр передается приемнику по каналу.

Приемник постоянно контролирует поток битов. При получении нуля с пятью далее идущими подряд единицами (011111) анализирует следующий (седьмой) бит. Если это нуль, он удаляет этот бит. Однако если седьмой бит является единицей (0111111), приемник анализирует восьмой бит. Если это нуль (01111110), он считает, что получена флаговая комбинация. Если это единица, выполняется анализ последующих бит. Возможна ситуация приема либо сигнала покоя, либо сигнала аварийного завершения, на которые станция реагирует соответствующим образом. Таким образом, в протоколе HDLC обеспечиваются кодовая прозрачность по данным. Протоколу безразлично, какие кодовые комбинации находятся в потоке данных. Единственное, что требуется, - это поддерживать уникальность флагов.

HDLC используется также два других сигнала: сигнал аварийного завершения (АЗ) состоит из последовательности единиц, число которых не меньше семи и не больше четырнадцати; состояние покоя представляется последовательностью пятнадцати или большего числа единиц.

Управление потоком

Управление потоком в HDLC осуществляется с помощью передающих и принимающих окон. Окно устанавливается на каждом конце канала связи, чтобы обеспечить резервирование ресурсов обеих станций. Этими ресурсами могут быть ресурсы вычислителя или пространство буфера. В большинстве случаев окно обеспечивает и буферное пространство, и правила нумерации (сообщений). Окно устанавливается во время инициирования сеанса связи между станциями. Если станция А и станция В должны обменяться данными, А резервирует окно для В, а В резервирует окно для А. Использование окон необходимо для полнодуплексных протоколов, потому что они подразумевают непрерывный поток кадров в принимающий узел без периодических подтверждений с остановкой и ожиданием.

Переменные состояния станции V(S) и V(R). Окна в принимающем и передающем узлах управляются переменными состояния, которые представляют по сути состояние счетчика. Передающий узел поддерживает переменную состояния посылки V(S). Это порядковый номер следующего по очереди I-кадра, который должен быть передан. Принимающий узел поддерживает переменную состояния приема V(R), которая содержит номер, который, как ожидается, является порядковым номером следующего I-кадра. V(S) увеличивается на 1 при передаче каждого кадра и помещается в поле порядкового номера посылки кадра. Получив кадр, принимающий узел производит проверку наличия ошибок передачи и сравнивает порядковый номер со своим V(R). Если кадр может быть принят, узел увеличивает V(R) на 1, помещает его в поле порядкового номера приема кадра подтверждения АСК и посылает этот кадр в узел-отправитель, завершая квитирование передачи.

Если V(R) не равен порядковому номеру посылки в кадре или обнаружена ошибка, значит, что-то произошло, и после тайм-аута в узел-отправитель посылается NAK [с порядковым номером приема, содержащим значение V(R)]. В большинстве протоколов этот NAK называется Неприем (REJ) или Выборочный неприем (SREJ). Значение V(R) уведомляет передающее устройство ООД о том, что ожидается посылка нового кадра. Т. к. передатчик восстанавливает старое значение V(S) и повторяет передачу кадра, порядковый номер которого совпадает со значением V(S).

Во многих системах для V(S) и V(R) у порядковых номеров в кадре используются числа 0-7. если переменные состояния в результате последовательного увеличения достигли 7, то, начиная с 0, эти числа снова используются. Вследствие повторного использования чисел устройствам сттанциям не разрешено посылать кадр с порядковым номером, который не был подтвержден. Например, протокол должен дождаться подтверждения кадра с номером 6, прежде чем он опять использует V(S)=6. Этот процесс показан на рис.1. Здесь кадры с 6 по 4 еще не подтверждены. Если бы был послан еще один кадр с порядковым номером 6, соответствующее подтверждение АСК с номером 6 не позволило бы определить, приход какого кадра с порядковым номером 6 подтверждается.

Использование номеров 0-7 позволяет семи кадрам быть в активном состоянии, прежде, чем "закроется" окно. Несмотря на то что диапазон 0-7 дает восемь порядковых номеров, V(R) содержит значение следующего ожидаемого кадра, что ограничивает число активных кадров до 7.

Системные параметры Т1, N2, N1, K и рекомендации по их установке

Таймер Т1 запускается с момента передачи каждого кадра и используется для инициирования повторной передачи, в случае его переполнения. При выборе периода таймера Т1 необходимо учитывать, запускается ли таймер по началу или по концу кадра. Для правильной работы процедуры необходимо, чтобы период таймера Т1 был больше, чем максимальное время между передачей некоторого кадра (SARM, SABM, DM, DISC, FRMR, I или супервизорной команды) и приемом соответствующего кадра, возвращаемого в качестве отклика на этот кадр (UA, DM или подтверждающий кадр).

Счетчик N2 используется для определения максимального числа повторных передач, выполняемых по переполнении таймера Т1. Переменные Т1 и N2 используются также командами / ответами установления звена, такими, как SABM и UA.

Счетчик N1 - максимальное число битов в I-кадре. Определяет максимальную длину информационных полей.

Размер окна К - максимальное число переданных, но не подтвержденных I-кадров. Это максимальное число последовательно занумерованных I-кадров, которые в любой момент времени станции могут передать без получения подтверждения. Оно не должно быть более 7.

Параметры Т1, N2, N1 и K являются системными, подлежащими согласованию с администрацией на некоторый период времени

Описание интерфейса


В окошке «Передаваемые данные» отображается передаваемый файл в двоичном виде, т.е. в виде нулей и единиц.

В поле «флаг» - последовательность 01111110, обозначающая начало и конец кадра.

В поле CRC – контрольный циклический код.

В поле «адрес» - адрес первичной или вторичной станции.



Во вторичном окне отображаются состояние вторичной станции

В окошке «принятые данные» - принятые данные в двоичном виде

Дальше уже понятно

Заключение

Семейство HDLC протоколов канального уровня продолжает развиваться и расширяться. Однако акцент на обеспечение безошибочной передачи ослабляется по мере использования высокоскоростных каналов связи и использования методов коррекции ошибок. В полной мере возможности HDLC протокола используется при построении глобальных сетей передачи данных.

Литература

1. Блэк Ю. Сети ЭВМ: протоколы, стандарты, интерфейсы. М., Мир, 1990.

2. Протоколы информационно-вычислительных сетей: Справочник/ С.А.Аничкин, С.А.Белов, А.В.Берштейн и др.; Под. ред. И.А Мизина, А.П.Кулешова. - М.: Радио и связь, 1990. - 504с.:ил.

Приложение (Листинг программы)

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ScktComp, ComCtrls, Buttons, ExtCtrls;

type

TForm1 = class(TForm)

GroupBox1: TGroupBox;

Edit1: TEdit;

Label1: TLabel;

Edit2: TEdit;

Label2: TLabel;

Edit3: TEdit;

Label3: TLabel;

Memo1: TMemo;

Label4: TLabel;

Edit5: TEdit;

Label5: TLabel;

Edit6: TEdit;

Label7: TLabel;

GroupBox2: TGroupBox;

RichEdit1: TRichEdit;

OpenDialog1: TOpenDialog;

Button1: TSpeedButton;

Button3: TSpeedButton;

SpeedButton1: TSpeedButton;

LabeledEdit1: TLabeledEdit;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioGroup1: TRadioGroup;

RadioGroup2: TRadioGroup;

Memo2: TMemo;

SpeedButton2: TSpeedButton;

GroupBox3: TGroupBox;

Memo3: TMemo;

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

kl:boolean;

implementation

uses Unit2;

{$R *.dfm}

procedure perev1016(sr:string;var se:string);

var chis:real;

begin

chis:=strtofloat(sr);

se:=inttohex(trunc(chis),24);

end;

procedure perev210(sr:string;var se:string);

var j,chis,i,pol:integer;

begin

chis:=0;

pol:=length(sr);

j:=0;

for i:=pol downto 1 do

begin

if sr[i]='1' then

chis:=chis+trunc(exp(j*ln(2)));

j:=j+1;

end;

se:=inttostr(chis);

end;

procedure perev162(sr:string;var se:string);

var chis:real;i,p:integer;so:string;

begin

p:=length(sr);

se:='';

for i:=1 to p do

begin

case sr[i] of

'0':se:=se+'0000';

'1':se:=se+'0001';

'2':se:=se+'0010';

'3':se:=se+'0011';

'4':se:=se+'0100';

'5':se:=se+'0101';

'6':se:=se+'0110';

'7':se:=se+'0111';

'8':se:=se+'1000';

'9':se:=se+'1001';

'A':se:=se+'1010';

'B':se:=se+'1011';

'C':se:=se+'1100';

'D':se:=se+'1101';

'E':se:=se+'1110';

'F':se:=se+'1111';

end;

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

var st:string;

begin

if InputQuery('Введите IP адрес первичной станции','Адрес вторичной станции',st) then

begin

edit2.Text:='1010010101';

end;

end;

procedure Delay(msecs : Longint);

var

FirstTick : Longint;

begin

FirstTick := GetTickCount;

repeat

Application.ProcessMessages;

until GetTickCount - FirstTick >= 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<=512) do

begin

read(f,ch);

st6:=st6+ch;

perev1016(inttostr(ord(ch)),st3);

perev162(st3,st3);

st4:=st4+st3;

kol:=0;

for k:=1 to length(st3) do

begin

if st3[k]='1' then kol:=kol+1;

if kol=6 then begin insert('0',st3,k);kol:=0;end

end;

i:=i+1;

st5:=st5+st3;

end;

memo1.Lines.Clear;

memo1.Lines.Add(st4);

//closefile(f);

st5:=st5+'000000000000000001111110';

RichEdit1.Lines.Add(st5);

RadioGroup2.ItemIndex:=0;

edit3.Text:='00000000';

delay(2000);

//////

form2.RadioGroup1.ItemIndex:=0;

form2.RadioGroup2.ItemIndex:=0;

form2.memo1.Lines.Clear;

form2.memo1.Lines.Add(st5);

form2.Show;

delay(2000);

form2.Memo2.Lines.Clear;

form2.Memo2.Lines.Add(st4);

form2.RadioGroup1.itemindex:=0;

form2.RadioGroup2.ItemIndex:=0;

delay(2000);

form2.Memo3.Lines.Add(st6);

form2.RadioGroup1.itemindex:=0;

form2.RadioGroup2.ItemIndex:=0;

delay(2000);

form2.Hide;

end;

closefile(f);

//ClientSocket1.Socket.SendText('#End');

MessageDlg('Передача данных закончилась',mtInformation,[mbOk],0);

end

else

MessageDlg('Введите информацию',mtError,[mbOk],0);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

kl:=false;

end;

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

halt;

end;

end.

Министерство Образования и Культуры

Кыргызской Республики

Кыргызский Технический Университет

им. И. Раззакова.

Кафедра Информатики и Вычислительной Техники



Курсовой Проект

по курсу «Вычислительные комплексы, системы и сети»

на тему: «Разработка протокола канального уровня HDLC »

Выполнил: ст. гр. ЭВМ-1-99

Ыйсаев У.Б.

Приняла: доц. Токмергенова А.З.

Бишкек, 2003 г.

23


Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее