Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по сетям ЭВМ 11-72.doc
Скачиваний:
43
Добавлен:
02.05.2014
Размер:
525.82 Кб
Скачать

43. Стек протоколов ipx/spx. Клиент-серверное взаимодействие для протокола spx.

См. первые два абзаца вопроса 42.

Транспортный протокол SPXможет осуществить надежную передачу пакетов. Этот протокол работает с установлением соединения и восстанавливает пакеты при их потере или повреждении. Использование протоколаSPXне является обязательным при выполнении операций передачи сообщений протоколами прикладного уровня.

В протоколе SPX не предусмотрена широковещательная или мультикастинг-адресация. Пакеты SPX вкладываются в пакеты IPX. При этом в поле тип пакетаIPX записывается код 5. Заголовок пакета SPX всегда содержит 42 байта, включая 30 байт заголовка IPX-пакета, куда он вложен.

Рис.10.

Поле управления соединениемопределяет, является ли данный пакет системным или прикладным. Это поле содержит однобитовые флаги, используемые spx и spx ii для управления потоком данных в виртуальном канале.

Поле тип потока данныххарактеризует тип данных, помещенных в пакет.

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

Данное поле служит для обеспечения демультиплексирования пакетов, поступающих на один и тот же соединитель (socket).

Поле последовательный номеропределяет число пакетов пересланных в одном направлении. Каждый из партнеров обмена имеет свой счетчик, который сбрасывается в ноль после достижения 0xffff, после чего счет может продолжаться. Для приложения это поле, также как и последующие два, неприкосновенно. spx-пакеты подтверждения содержат в этом поле порядковый номер последнего посланного пакета.

Поле номер подтвержденияхарактеризует последовательный номер следующего пакета, который spx ожидает получить. Любой пакет с порядковым номером меньше, чем задано в поленомера подтверждения, доставлен благополучно и не требует ретрансмиссии.

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

На случай непредвиденных обрывов связи в spx имеется алгоритм “сторожевая собака”. Этот алгоритм реализуется специальной программой, которая активируется лишь в случае, когда в течение определенного времени в канале отсутствует трафик в любом из направлений (машина все сделала, а оператор заснул). В этом случае программа посылает специальные пакеты и, если определенное число попыток “достучаться” до партнера не увенчается успехом, сессия прерывается. Если партнер не присылает отклик за оговоренное время (RTT), производится повторная посылка пакета, при этом RTT увеличивается на 50%. Значение RTT не должно превысить величины max_retry_delay, которая по умолчанию равна 5 секундам. Если связь не восстановилась, отправитель пытается найти другой маршрут до адресата. Если маршрут найден, счетчик попыток сбрасывается в ноль и процедура отправки запускается вновь. Допустимое число попыток может лежать в диапазоне 1-255 (по умолчанию - 10). При отсутствии успеха сессия прерывается.

Протокол spx позволяет осуществить от 100 до 2000 соединений одновременно (по умолчанию это число равно 1000). Конфигурационные параметры SPX-протокола (и сети) хранятся в файлах shell.cfg и net.cfg.

В 1992 году была разработана новая версия SPX - SPX II. Главное усовершенствование протокола связано с применением пакетов большего размера. Раньше длинные spx-пакеты фрагментировались и пересылались по частям, учитывая, что очередной пакет может быть послан лишь после получения подтверждения, нетрудно понять крайнюю неэффективность такой схемы. Формат пакетов SPX II несколько отличается от SPX. В SPX II увеличено число допустимых кодов для поля управления соединением, введено дополнительное поле в заголовок подтверждения (два байта, имя поля “расширенное подтверждение”). Новое поле добавлено после полячисло буферов. Алгоритм установление связи в SPX II отличатся от варианта spx тем, что необходимо согласовать размер пересылаемых пакетов.