- •Державний комітет зв’язку та інформатизації України
- •Современные проблемы информационных сетей
- •Инструменты и ресурсы
- •Формат пакета ping.
- •Программа tracert в Windows.
- •Порядок вызова
- •Программа tcpdump (снифер) сетевой анализатор для поиска неисправностией в сети и отладки сетевых приложений.
- •Использование tcpdump
- •Выходная информация, формируемая tcpdump
- •Программа netstat
- •4. Интерфейсы
- •Маршрутная таблица
- •Статистика протоколов
- •Процессы
- •Типы процессов
- •Прикладные процессы
- •Атрибуты процессов
- •Реальный (rgid) и эффективный (egid) идентификаторы группы
- •Жизненный путь процесса
- •Сигналы
- •Взаимодействие между процессами
- •Организация каналов
- •Взаимодействие между процессами
- •Размер канала
- •Функции к разделу fifo
- •Пример приложения клиент-сервер, использующего fifo для обмена данными. Клиент посылает серверу сообщенияHello, а сервер выводит это сообщение на терминал.
- •Права доступа к объекту
- •Идентификаторы и имена в ipc
- •Tcp как потоковый протокол
- •Чтение длины записи
- •Функции разрешения имён
- •Преобразование имён хостов
- •Аккуратное размыкание соединение
- •Вызов shutdown
- •Алгоритм Найгла
- •Программная реализация архитектуры клиент – сервер
- •1.2 Разработка программ в архитектуре “клиент-сервер”
- •Заполнение адресной структуры и получение сокета
- •Привязка известного порта и вывод listen
- •Принятие соединения.
- •Обмен данными
- •Программный интерфейс сокетов
- •Сокеты во FreeBsd
- •Типы соединения
- •Адресация
- •Адресация Internet
- •Interface сокетов
- •Создание сокета
- •Програмныйинтерфейс сокетов
- •Поддержка различных типов сокетов в доменах
- •Пример использования сокетов
- •Sdl-описание протокола сеансового уровня эталонной модели взаимосвязи открытых систем
- •Основные понятия
- •Описание служб
- •Описание протоколов
- •Службы ядра сеансового уровня
- •Блок данных протокола
- •Ясо-описание протокола сеансового уровня
- •Разбиение блока сеансового протокола
- •Описание блока блк-дир
- •Описание блока блк-исп
- •Описание процессов дир и рдт
- •Описание процесса исп
Описание протоколов
Содержанием протокола является описание блоков данных, пересылаемых элементом N-гo уровня одной системы элементу того же уровня другой системы (рис. ). Эти блоки называют блоками данных протокола (БДП). Формируются они следующим образом. Когда (N+1) -и уровень обращается к N-му уровню с каким-либо примитивом (типа «запрос» иди «ответ»), то он передает вместе с ним и БДС. Уровень N присоединяет к БДС так называемую управляющую информацию протокола (УИП), назначение которой — указать напарнику, какого характера присылаемые данные и что с ними делать (пример УИП приведен в §9.6). Объединение УИП с БДС образуют БДП. УровеньN, чтобы послать сформированный им БДП, должен обратиться с запросом об этом к (N-1)-му уровню. Этот запрос осуществляется с помощью примитива пересылки данных (независимо от того, какой категории был тот примитив, с которым N-й уровень получил БДС); вместе с этим примитивом N-й уровень передает (N-1)-му уровню сформированный БДП, но уже в качестве БДС. И все повторяется. Таким образом, БДП, посылаемый N-м уровнем его напарнику, пройдет все нижележащие уровни сверху вниз, «обрастая» на каждом уровне управляющей информацией данного уровня. Блок, образовавшийся на нижнем уровне, пересылается по каналу в другую систему, в которой он начинает «восхождение» до N-ro уровня. При этом каждый уровень выделяет предназначенную ему УИП, расшифровывает ее и, исходя из этого, выполняет некоторые действия, после чего передает остальную часть вверх. Делается это с помощью примитивов передачи данных, с которыми передается указанная часть.
Службы ядра сеансового уровня
Эталонная модель ВОС разбита на семь уровней, из которых 4-й (снизу) получил название транспортного, 5-й - сеансового и 6-й - представительного. Службы сеансового уровня, которые реализуются с помощью примитивов 20 категорий. Все службы разбиты на так называемые функциональные группы. Одна из них, группа ядра, является обязательной при любом соединении. Использование остальных групп оговаривается в процессе установления соединения. В нашем примере мы рассмотрим описание наSDLтолько протокола ядра сеансового уровня, не затрагивая остальных групп. Ядро обеспечивает службы соединения, передачи' данных, нормального разъединения и экстренного прерывания, которое бывает по инициативе либо пользователя (представительного уровня), либо поставщика (сеансового уровня).
Примитивы установления соединения мы будем обозначать через СДН, передачи данных - через ДНИ, разъединения — через РЗД и прерывания — через Пл-ПРВ и Пс-ПРВ (прерывания по инициативе пользователя и поставщика соответственно). Типы примитивов будем обозначать через зпр (запрос), инд (индикация), отв (ответ) и птв (подтверждение). Одни и те же понятия семиуровневой модели, но связанные с транспортным, сеансовым и представительным уровнями, мы будем обозначать через Т, С и П соответственно. Таким образом, мы получим обозначения вроде С-служба, Т-протокол, С-СДН-зпр (запрос представительного уровня сеансовому на соединение), Т-ДНН-инд (сообщение транспортного уровня сеансовому о доставке данных) и т.п.
Как мы знаем, вместе с примитивами передаются данные и параметры, образующие БДС. В табл.1-4 рассматриваются данные и параметры, передаваемые с примитивами ядра сеансового уровня. Так как функционирование сеансового уровня опирается на службы транспортного уровня, то в табл. 5 описаны параметры, передаваемые вместе с примитивом транспортного уровня Т-СДН. Сделаем некоторые пояснения к табл. 1-5.
-
Таблица 1
Параметр
Примитив
С-СДН
зпр
инд
отв
птв
С-адрес вызывающей стороны
С-адрес вызываемой стороны
Результат
Качество обслуживания
М
М
М
M
M
М
M
М(-)
М
Соответствующий БДП
ЗC
ПС ОС
-
Таблица 2
Параметр
Примитив
С-ДHH
[НН
зпр
инд
Данные пользователя ССл
М
М(-)
Соответствующий БДП
ДН
-
Таблица 3
Параметр
Примитив
С-РЗД
зпр
инд
отв
птв
Данные пользователя ССл
П
У(-)
П
У(-)
Соответствующий БДП
ЗР
РЗ
-
'Таблица 4
Параметр
Примитив
С-Пл-ПРВ
С-Пс-ПРВ
зпр
инд
инд.
Причина
М
Соответствующий БДП
ПР
-
Таблица 5
Параметр
Примитив
Т -СДН
ДН
зпр
инд
отв
птв
Т-адрес вызывающей стороны
Т-адрес вызываемой стороны Качество обслуживания
М
М
М
М
М (-)
М
М
М (=)
В них через ССл обозначена сеансовая служба. Буква М означает, что наличие параметра обязательно, буква П — что использование параметра оставлено на усмотрение пользователя и буква У — что использование параметра зависит от того, был ли он использован в предшествующем примитиве. Знак «=» означает, что значение параметра должно равняться значению соответствующего параметра в предшествующем примитиве. Пробел означает, что параметр не используется. Адресом называется адрес точки доступа между П-уровнем и С-уровнем в табл. 1 и между С-уровнем и Т-уровнем в табл. 5. Важно отметить, что одна точка доступа может быть подсоединена только к одному элементу (хотя один элемент может быть подсоединен к нескольким точкам доступа), и поэтому адрес точки доступа однозначно определяет адрес элемента. Под качеством обслуживания понимаются такие характеристики соединения, как пропускная способность, уровень невыявленных ошибок, время задержки, обеспечение безопасности и др.
Функционирование ядра сеансового уровня
Функционирование ядра сеансового уровня можно описать тремя фазами: установления соединения, передачи данных и разъединения.
Фаза установления соединения. Пусть (рис. ) некоторый элемент П1 представительного уровня системы СИС1 хочет установить соединение с некоторым элементом П2 системы СИС2. Для этого П1 выдает элементу С1 сеансового уровня примитив С-СДН-зпр (стрелка 1) и передает вместе с этим примитивом блок С-БДС. Чтобы обеспечить соединение П1 с П2 сеансовый уровень сам должен установить соединение с некоторым элементом С2 системы СИС2. Для этого С1 (сохранив у себя С-БДС) должен обратиться за помощью к транспортному уровню, т.е. С1 выдает транспортному уровню примитив Т-СДН-зпр (стрелка 2) и посылает с этим примитивом блок Т-БДС, построенный элементом С1 на основе анализа С-БДС и знания своих возможностей.
В соответствии с общей идеологией мы при рассмотрении протокола сеансового уровня будем рассматривать только его взаимоотношения с представительным и транспортным уровнями, совершенно не затрагивая того, как функционируют эти два уровня. Поэтому мы не описываем того, как транспортный уровень системы СИС1 пересылает блок Т-БДС транспортному уровню системы СИС2. Транспортный Уровень системы СИС2 выдает элементу П2 примитив Т-СДН-инд (стрелка 3) и с ним блок Т-БДС. Элемент С2 выдает ответ Т-СДН-отв (стрелка 4), транспортный
уровень системы СИС2 пересылает этот ответ в систему СИС1, транспортный уровень которой выдает элементу С1 примитив Т-СДН-птв (стрелка 5). Если ответ Т-СДН-отв был отрицательным, то соединение между С1 и С2.не установилось и, следовательно, сеансовый уровень не может обеспечить соединение элементам ГЦ и П2 и сообщает об этом элементу П1. Если же ответ был положительным, то соединение между С1 и С2 установлено и элемент С1 может переслать элементу С2 блок С-БДС. Для этого С1 выдает транспортному уровню примитив Т-ДНН-зпр (стрелка 6) и с ним запасенный в С1 блок С-БДС с присоединенной к нему управляющей информацией (т.е. блок Т-БДП). Итак, С1 посылает С2 блок С-БДП, используя примитив Т-ДНН-зпр. В блоке С-БДП хранится запрос на соединение, которое элемент П1 послал элементу П2. Дальнейший процесс мы опишем кратко. Транспортный уровень пересылает блок в систему СИС2, в которую выдается примитив Т-ДНН-инд (стрелка 7). Получив блок и проанализировав его, элемент С2 выдает примитив С-СДН-инд (стрелка 8). получает ответ С-СДН-отв (стрелка 9). отправляет его с помощью примитива Т-ДНН-зпр (стрелка 10) в СИС1, транспортный уровень которой передает этот ответ элементу С1, используя для этого примитив Т-ДНН-инд (стрелка 11). И наконец, С1 передает этот ответ элементу П1 с помощью примитива С-СДН-птв (стрелка 12). Соединение установлено и элементы П1 и П2 могут приступить к пересылке данных друг другу.
Фаза передачи данных состоит в том, что П1 выдает С-ДНН-зпр и с ним блок данных. Элемент С1, получив этот блок, передает его с примитивом Т-ДНН-зпр транспортному уровню, тот пересылает его в транспортный уровень СИС2, который передает его С2, используя примитив Т-ДНН-инд. Элемент С2 передает блок данных элементу П2, используя для этого примитив С-ДНН-инд.
Фаза прекращения сеанса связи использует две службы: нормального разъединения и экстренного прерывания. Нормальное разъединение осуществляется по инициативе одного из пользователей. Пусть, например, П1 хочет прекратить связь. Для этого он выдает элементу С1 примитив С-РЗД-зпр. Элемент С1 сообщает об этом элементу С2 (для этого используются примитивы Т-ДНН-зпр и Т-ДНН-инд), а элемент С2 сообщает об этом элементу П2, выдавая для этого примитив С-РЗД-инд. Элемент П2 отвечает примитивом С-РЗД-отв, элемент С2 сообщает об этом элементу С1, который выдает элементу П1 примитив С-РЗД-птв. После выдачи С-РЗД-эпр элемент П1 прекращает посылку данных, но продолжает прием данных, пока не воспримет примитив С-РЗД-тв. Таким образом, при нормальном разьединении потери данных в канале смой не происходит.
Экстренное прерывание осуществляется как по инициативе пользователя, так и по инициативе поставщика. Вели П1 хочет экстренно прервать связь, то он выдает примитив С-Пл-ПРВ-зпр (Пл-польэователь) и прекращает прием данных. Элемент С1 сообщает об этом элементу С2, который выдает элементу П2 примитив С-Пл-ПРВ-инд. Вели связь прерывает сеансовый уровень (т.е. поставщик — Пс), то он выдает примитив С-Пс-ПРВ-инд обоим элементам П1 и П2.
Очевидно, что протокол сеансового уровня должен обеспечить полную симметрию функционирования сеансовых уровней обеих систем, ибо в следующий раз инициатором Соединения может оказаться элемент П2.