2_2_Rpz (Готовый курсовой проект 10), страница 2
Описание файла
Файл "2_2_Rpz" внутри архива находится в следующих папках: Готовый курсовой проект 10, kursa4-seti. Документ из архива "Готовый курсовой проект 10", который расположен в категории "". Всё это находится в предмете "сетевые технологии" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "сетевые технологии" в общих файлах.
Онлайн просмотр документа "2_2_Rpz"
Текст 2 страницы из документа "2_2_Rpz"
Поля класса:
Имя | Описание |
_data | Биты данных, используемые для настройки порта |
_parity | Четность, используемая для настройки порта |
_speed | Скорость передачи, необходимая для настройки порта |
_stop | Стоп-биты, необходимые для настройки порта |
DtNew | Текущие дата и время |
Ports | Список COM-портов, присутствующих на компьютере |
_comPort | Текущий COM-порт |
Свойства класса:
Имя | Описание |
Speed | Задает поле класса _speed |
Parity | Задает поле класса _parity |
Stop | Задает поле класса _stop |
Data | Задает поле класса _data |
LinkActive | Задает поле linkActive |
Методы класса:
Имя | Описание |
SetParityToComboBox | Задает возможные настройки четности в контрол на форме |
SetStopBitsToComboBox | Задает возможные настройки стоп-битов в контрол на форме |
OpenPort | Открывает все COM порты, располагающиеся на компьютере |
Канальный уровень.
Функции канального уровня.
На канальном уровне выполняются следующие функции:
-
Запрос логического соединения;
-
Разбивка данных на блоки (кадры);
-
Управление передачей кадров;
-
Обеспечение необходимой последовательности блоков данных, передаваемых через межуровневый интерфейс;
-
Контроль и обработка ошибок;
-
Проверка поддержания соединения;
-
Запрос на разъединение логического соединения.
-
Протокол связи.
В основном протокол содержит набор соглашений или правил, которого должны придерживаться обе стороны связи для обеспечения получения и корректной интерпретации информации, передаваемой между двумя сторонами. Таким образом, помимо управления ошибками и потоком протокол связи регулирует также такие вопросы, как формат передаваемых данных — число битов на каждый элемент и тип используемой схемы кодирования, тип и порядок сообщений, подлежащих обмену для обеспечения (свободной от ошибок и дубликатов) передачи информации между двумя взаимодействующими сторонами.
Перед началом передачи данных требуется установить соединение между двумя сторонами, тем самым проверяется доступность приемного устройства и его готовность воспринимать данные. Для этого передающее устройство посылает специальную команду: запрос на соединение, сопровождаемую ответом приемного устройства, например о приеме или отклонении вызова.
Также необходимо информировать пользователя о неисправностях в физическом канале, поэтому для поддержания логического соединения необходимо предусмотреть специальный кадр, который непрерывно будет посылаться с одного компьютера на другой, сигнализируя тем самым, что логическое соединение активно.
Защита передаваемой информации.
При передаче данных по линиям могут возникать ошибки, вызванные электрическими помехами, связанными, например, с шумами, порожденными коммутирующими элементами сети. Эти помехи могут вызвать множество ошибок в цепочке последовательных битов.
Метод четности/нечетности контрольная сумма блока не обеспечивают надежного обнаружения нескольких (например, двух) ошибок. Для этих случаев чаще всего применяется альтернативный метод, основанный на полиномиальных кодах. Полиномиальные коды используются в схемах покадровой (или поблочной) передачи. Это означает, что для каждого передаваемого кадра формируется (вырабатывается) один-единственный набор контрольных разрядов, значения которых зависят от фактического содержания кадра и присоединяются передатчиком к “хвосту” кадра. Приемник выполняет те же вычисления с полным содержимым кадра; если при передаче ошибки не возникли, то в результате вычислений должен быть получен заранее известный ответ. Если этот ответ не совпадает с ожидаемым, то это указывает на наличие ошибок.
Опишем кратко математический аппарат кодирования алгоритмом Хемминга.
Коды Хэмминга являются самоконтролирующимися кодами, то есть кодами, позволяющими автоматически обнаруживать ошибки при передаче данных. Для их построения достаточно приписать к каждому слову один добавочный (контрольный) двоичный разряд и выбрать цифру этого разряда так, чтобы общее количество единиц в изображении любого числа было, например, нечетным. Одиночная ошибка в каком-либо разряде передаваемого слова (в том числе, может быть, и в контрольном разряде) изменит четность общего количества единиц. Счетчики по модулю 2, подсчитывающие количество единиц, которые содержатся среди двоичных цифр числа, могут давать сигнал о наличии ошибок.
При этом невозможно узнать, в каком именно разряде произошла ошибка, и, следовательно, нет возможности исправить её. Остаются незамеченными также ошибки, возникающие одновременно в двух, четырёх, и т.д. — в четном количестве разрядов. Впрочем, двойные, а тем более четырёхкратные ошибки полагаются маловероятными.
К корректирующим кодам относятся коды Хэмминга с кодовым расстоянием d=3.
Для кодов Хэмминга выбрано предельное значение разрешенных кодовых комбинаций N = 2n•(1+n)-1, а число информационных разрядов (k) определится как:
k = log[ 2n•(1+n)-1 ] = n - log(n + 1). (3)
Данное уравнение имеет целочисленные решения k = 0,1,4,11,26,…., которые и определяют соответствующие коды Хэмминга [3,1] - код, [7,4] - код, [15,11] - код и т.д. Рассмотрим алгоритмы кодирования и декодирования на примере [7,4] - кода Хэмминга.
Алгоритм кодирования.
Все номера позиций кода нумеруются в двоичной системе счисления, начиная с единицы (p)-разрядным двоичным числом: p = [ log(n) ], где [ ] - ближайшее большее целое, (n) - число разрядов кода cncn-1 ...cj...c1.
Проверочные разряды размещаются в позициях кода, кратных целой степени двойки 20,21, … и т.д.: cj = bj , j = 2i, i = 0,1,…,(r-1), где (r) - число проверочных разрядов.
Значение cj проверочного разряда определяется как сумма по mod2 тех разрядов кода, в номере которых двоичный разряд с (i)-ым весом равен единице.
Алгоритм декодирования.
Вычисляется значение синдрома ошибки:
Eош = || hrhr-1 ...hi...h1 ||. (4)
Значение (i)-го разряда синдрома определяется как сумма по mod2 тех разрядов принятого кода, включая проверочные, в номере которых вес двоичного разряда совпадает с весом разряда синдрома.
Синдром ошибки определяет в двоичной системе номер разряда, в котором обнаружена однократная ошибка.
Для исправления ошибки необходимо инвертировать разряд, в котором допущена ошибка.
Формат кадров.
Кадры, передаваемые с помощью функций канального уровня, имеют различное назначение. Выделены супервизорные и информационные кадры.
Служебные супервизорные кадры.
Эти кадры используются для передачи служебной информации и реализуют следующие функции канального уровня: установление и разъединение логического канала, подтверждение приема информационного кадра без ошибок, запрос на повторную передачу принятого с ошибкой кадра. Формат эти кадров:
StartByte | Type | StopByte |
Флаг начала кадра | Тип супервизорного кадра | Флаг конца кадра |
Супервизорные кадры передачи параметров.
Супервизорные кадры передачи параметров используются для синхронизации параметров COM-портов, как принимающего, так и отправляющего. Кадр данного типа формируется когда на одном из компьютеров изменяются параметры. Формат эти кадров:
StartByte | Type | Data | StopByte |
Флаг начала кадра | Тип супервизорного кадра | Параметры СОМ-порта | Флаг конца кадра |
Информационные кадры.
Информационные кадры применяются для передачи закодированных циклическим кодом пользовательских сообщений. Формат эти кадров:
StartByte | Type | Data | StopByte |
Флаг начала кадра | Тип супервизорного кадра | Закодированные данные (текстовая строка) | Флаг конца кадра |
Кадр можно разделить на несколько блоков – флаг начала кадра, тип кадра, данные и флаг конца кадра.
Флаги начала и конца кадра представляют собой байты, с помощью которых программа выделяет кадр, определяя соответственно начало и конец кадра.
Поле типа кадра обеспечивает правильное определение и распознавание разновидностей кадров и обработки их соответствующими процедурами.
Данные представляют собой либо закодированную строку в информационном кадре или параметры порта в супервизорном кадре передачи параметров.
-
Прикладной уровень.
Функции прикладного уровня обеспечивают интерфейс программы с пользователем через систему форм и меню. Прикладной уровень предоставляет нижнему уровню текстовое сообщение.
На данном уровне обеспечивается вывод принятых и отправленных сообщений в окно диалога пользователей.
Пользовательский интерфейс выполнен в среде Visual Studio 2013. При его разработке учитывались рекомендации по простоте, удобству и функциональности интерфейса.
При запуске программы появляется форма, в которой необходимо ввести имя пользователя.
После нажатия на клавишу “ОК” в том случае, если имя пользователя не внесено в список допустимых пользователей, будет выведено предупреждение и окно останется активным.
Если же пользователь зарегистрирован, окно закроется и откроется окно настроек соединения, где необходимо будет ввести все параметры соединения и нажать клавишу “Подключиться”.
После этого будет произведено открытие портом для дальнейшей работы и осуществится переход на главное окно.
Главным окном программы является окно «Чат». В данной форме есть следующие возможности:
-
Соединение с остальными компьютерами в сети.
-
Набор и редактирование сообщений
-
Отображение текущей истории
-
Разъединение соединения
-
Выбор пользователя для отправки сообщения
-
Мониторинг активности соединения
-
Использование меню
-
Возможность выбора широковещательной передачи
При помощи пункта меню «История» пользователь имеет возможность открыть файл истории, расположенный в папке, куда установлена программа.
При помощи пункта меню «Справка» пользователь может получить информацию о создателях программы.