Никифоров Взаимосвяз открытых систем 2010
.pdfN_CONNECT.REQ и получением на отвечающей стороне примитива N_CONNECT.IND. Этот же параметр используется для вычисления времени между выдачей на отвечающей стороне примитива N_CONNECT.RESP и получением примитива N_CONNECT.CONF на стороне инициатора. В случае возникновения ошибки при установлении соединения время между выдачей запроса N_CONNECT.REQ и получением примитива N_DISCONNECT.IND вычисляется также на основе этого параметра; вероятность ошибки при установлении соединения. Представля-
ется как оценка в виде отношения числа неудачных попыток соединения к общему числу выданных запросов
N_CONNECT.REQ;
транзитная задержка. Входят затраты на гипотетические служебные расходы протоколов сетевого уровня. Исходя из значения транзитной задержки, задаваемого средней величиной и допустимым разбросом, и значения скорости передачи, для каждого передаваемого пакета вычисляется время между выдачей примитива N_DATA.REQ на стороне отправителя и получением примитива N_DATA.IND на принимающей стороне; вероятность искажения пакета. Представляется как оценка в виде отношения числа пакетов, искаженных в ходе передачи по сети, к общему числу переданных пакетов. В эмуляторе возможное искажение переданного пакета производится заменой содержимого байтов пакета на случайное значение; вероятность потери пакета данных. Ее оценка – это вычтенное
из единицы отношение числа полученных примитивов N_DATA.IND к числу переданных примитивов N_DATA.REQ. вероятность случайного разрыва соединения в течении каждых 1000 системных единиц времени; временная задержка при разрыве соединения. Задаваемое сред-
ним значением и допустимым разбросом время между выдачей запроса N_DISCONNECT.REQ и получением на другой стороне соединения N_DISCONNECT.IND;
вероятность появления дубликата. Представляется как оценка в виде отношения числа пакетов, у которых появились дубликаты в ходе передачи по сети, к общему числу переданных пакетов. В
11
эмуляторе возможное искажение переданного пакета производится заменой содержимого байтов пакета на случайное значение.
Рис. 1.1. Панель настройки показателей качества сетевого уровня
1.2. Сервис сетевого уровня
Эмулятор представляет услуги сетевого уровня для использования их на вышележащих уровнях. Реализованный эмулятор предоставляет транспортному уровню сервис, ориентированный на соединение, а также поддерживает передачу дейтаграмм. Эмулятор не поддерживает функции управления, синхронизации, а также передачу данных с подтверждением. Эмулятор сетевого уровня использует примитивы, описанные в табл. 1.1.
12
|
|
|
|
|
Таблица 1.1 |
|
|
Примитивы, используемые эмулятором |
|
|
|||
Примитив |
Тип |
Параметры |
|
Описание |
|
|
N_CONNECT |
Запрос |
address |
Генерируется на транспорт- |
|||
.REQ |
|
|
ном |
уровне и |
отсылается |
|
|
|
|
вниз на сетевой уровень в |
|||
|
|
|
начале попытки установле- |
|||
|
|
|
ния |
сетевого |
соединения. |
|
|
|
|
(address – адрес вызываемой |
|||
|
|
|
системы) |
|
|
|
N_CONNECT |
Индикация |
address |
Генерируется |
на |
сетевом |
|
.IND |
|
|
уровне и отсылается вверх |
|||
|
|
|
на транспортный уровень в |
|||
|
|
|
целях |
индикации |
посту- |
|
|
|
|
пившего запроса на уста- |
|||
|
|
|
новление сетевого соедине- |
|||
|
|
|
ния. (address – адрес вызы- |
|||
|
|
|
вающей системы) |
|
||
N_CONNECT |
Ответ |
address |
Генерируется на транспорт- |
|||
.RESP |
|
|
ном |
уровне и |
отсылается |
|
|
|
|
вниз на сетевой уровень в |
|||
|
|
|
ответ на ранее полученный |
|||
|
|
|
N_CONNECT.IND. |
|
||
|
|
|
(address – адрес вызываемой |
|||
|
|
|
системы) |
|
|
|
N_CONNECT |
Подтвер- |
address |
Генерируется |
на |
сетевом |
|
.CONF |
ждение |
|
уровне и отсылается вверх |
|||
|
|
|
на транспортный уровень в |
|||
|
|
|
целях |
индикации |
посту- |
|
|
|
|
пившего |
|
|
|
|
|
|
N_CONNECT.RESP. |
|||
|
|
|
(address – адрес вызываю- |
|||
|
|
|
щей системы) |
|
|
|
N_DISCONNECT |
Запрос |
address |
Генерируется на транспорт- |
|||
.REQ |
|
|
ном |
уровне и |
отсылается |
|
|
|
|
вниз на сетевой уровень для |
|||
|
|
|
разрыва сетевого |
соедине- |
||
|
|
|
ния |
|
|
|
13
Продолжение табл. 1.1
Примитив |
Тип |
Параметры |
|
Описание |
|
|
N_DISCONNECT |
Индикация |
- |
Генерируется |
на |
сетевом |
|
.IND |
|
|
уровне и отсылается вверх |
|||
|
|
|
на транспортный уровень в |
|||
|
|
|
целях |
индикации |
разрыва |
|
|
|
|
сетевого соединения или |
|||
|
|
|
при возникновении ошибки |
|||
|
|
|
при попытке его установле- |
|||
|
|
|
ния |
|
|
|
N_DATA.REQ |
Запрос |
address |
Генерируется на транспорт- |
|||
|
|
userdata |
ном |
уровне |
и отсылается |
|
|
|
|
вниз на сетевой уровень для |
|||
|
|
|
передачи блока данных |
|||
N_DATA.IND |
Индикация |
userdata |
Генерируется |
на |
сетевом |
|
|
|
|
уровне и отсылается вверх |
|||
|
|
|
на транспортный уровень в |
|||
|
|
|
целях |
индикации |
посту- |
|
|
|
|
пившего блока данных |
|||
N_DATAGRAM |
Запрос |
address |
Генерируется на транспорт- |
|||
.REQ |
|
userdata |
ном |
уровне |
и отсылается |
|
|
|
|
вниз на сетевой уровень для |
|||
|
|
|
передачи |
дейтаграммы. |
||
|
|
|
(address – адрес принимаю- |
|||
|
|
|
щей системы) |
|
|
|
N_DATAGRAM |
Индикация |
address |
Генерируется |
на |
сетевом |
|
.IND |
|
userdata |
уровне и отсылается вверх |
|||
|
|
|
на транспортный уровень в |
|||
|
|
|
целях |
индикации |
посту- |
|
|
|
|
пившей дейтаграммы. |
|||
|
|
|
(address – адрес передаю- |
|||
|
|
|
щей системы) |
|
|
1.3. Процесс эмуляции
Процесс эмуляции при использовании режима с установлением соединения заключается в следующем. Пусть одна из систем (например, система А) пытается установить сетевое соединение с другой системой (например, системой В), выдавая на сетевой уровень примитив N_CONNECT.REQ. Если системы не находились в состоянии “соединены” или “ожидание сетевого соединения”, то через некоторое время (зависит от параметра “временн я задержка
14
при установлении соединения”) и с некоторой вероятностью (зависит от параметра “вероятность ошибки при установлении соединения”) системы переходят в состояние “ожидание сетевого соединения” и на транспортный уровень системы В выдается примитив N_CONNECT.IND. После этого система В выдает на сетевой уровень примитив N_CONNECT.RESP. Так как системы находятся в состоянии “ожидание сетевого соединения”, то через некоторое время (зависит от параметра “временн я задержка при установлении соединения”) и с некоторой вероятностью (зависит от параметра “вероятность ошибки при установлении соединения”) системы переходят в состояние “соединены” и на транспортный уровень системы А выдается примитив N_CONNECT.CONF.
Когда две системы находятся в состоянии “соединены”, между ними возможна передача данных. Передающая система выдает на сетевой уровень примитив N_DATA.REQ. С некоторой вероятностью данные искажаются (зависит от параметра “вероятность искажения пакета”) и теряются (зависит от параметра “вероятность потери пакета данных”). Если данные не потеряны, то через некоторое время (зависит от параметра “транзитная задержка” и “скорость передачи данных”) на транспортный уровень принимающей системы выдается примитив N_DATA.IND.
Разрыв соединения между двумя системами может произойти самопроизвольно (зависит от параметра “вероятность случайного разрыва”) или в результате выдачи одной из систем на сетевой уровень примитива N_DISCONNECT.REQ. После выдачи примитива N_DISCONNECT.REQ сетевое соединение разрывается и через
я задержка при разрыве соединения”) на транспортный уровень второй системы выдается примитив N_DISCONNECT.IND.
Случай с использованием дейтаграммного режима значительно проще. Для передачи данных нет необходимости устанавливать соединение. Для передачи данных передающая система выдает на сетевой уровень примитив N_DATAGRAM.REQ. С некоторой вероятностью данные искажаются (зависит от параметра “вероятность искажения пакета”) и теряются (зависит от параметра “вероятность потери пакета данных” и “скорость передачи данных”). Если данные не потеряны, то через некоторое время (зависит от
15
параметра “транзитная задержка”) на транспортный уровень принимающей системы выдается примитив N_DATAGRAM.IND.
2.ИНТЕРФЕЙС ПРОГРАММНОГО КОМПЛЕКСА
2.1.Основная панель лабораторного практикума
Запуск
эмуляции
Оценка
протокола
Остановка и завершение эмуляции
2.2. Главное меню
Пункт “Файл” (работа с файлами) содержит следующие подпункты:
“Создать” команда открытия нового файла. “Открыть” команда открытия существующего файла.
“Открыть вновь” команда открытия файлов, которые были открыты или сохранены ранее.
“Сохранить” команда сохранения текущего файла. “Сохранить как” команда сохранения текущего файла с новым
именем.
“Выход” – команда выхода.
Пункт “Параметры” (установка параметров) содержит следующие подпункты:
“Параметры эмулятора” – вызывает панель настройки показателей качества сетевого уровня.
“Пароль” вызывает панель ввода административного пароля.
16
“Параметры” – вызывает панель настройки лабораторного комплекса.
Пункт “Отладка” (установка отладчика) содержит следующие подпункты:
“Трассировка” – включает (и выключает) режим вывода имен выполняемого события (определение события см. в п. 5).
“Отладчик” – вызывает отладчик. “Просмотреть журнал” – просмотр журнала.
Пункт “Уровни” (установка доступа к уровням) содержит следующие подпункты (доступные только после ввода пароля):
“Прикладной процесс” – включает (и выключает) доступ к прикладным процессам.
“Прикладной” – включает (и выключает) доступ к прикладному уровню.
“Представления” – включает (и выключает) доступ к уровню представления.
“Сеансовый” – включает (и выключает) доступ к сеансовому уроню.
“Транспортный” – включает (и выключает) доступ к транспортному уровню.
17
2.3. Панель редактора событий
Список событий
Кнопка для редактирования обработчика
Кнопка для добавления события
Кнопка для переименования события
Кнопка для уничтожения события
Кнопка для копирования события в другой банк
Кнопка для копирования события в другую систему
Инициализация протокола перед запуском
Выбор банка.
Кнопки перехода в другие системы
18
2.4. Панель редактирования обработчика события
Номера текущих |
Редактор |
столбца и строки |
|
19
2.5.Отладчик
Спомощью отладчика можно выполнить построчную обработку протокола. При необходимости можно выполнить обработчик события без остановок после выполнения очередной строки, а также продолжить обработку всех событий без остановок до появления специального оператора break. В любом случае в панели отладчика отображается код обработчика события с выделением текущей строки. Также можно просмотреть значения переменных (только числовых) на текущем уровне.
Выполнить
следующую
строку
Выполнять до следующего события
Выполнять до появления опера-
тора break
Код обработчика текущего события
Выполняемая строка
Текущая система
Добавить |
Остановка |
Выход из |
Просмотр |
переменную |
выполнения |
отладчика |
переменных |
Текущее событие Текущая строка |
Текущий оператор |
20