Протоколы XNS (Xerox Network Systems) обеспечивают возможности маршрутизации и поддерживают доставку пакетов в режимах с организацией соединений (последовательная доставка) и без организации соединений (connection-less). Протоколы Novell и 3Com3Plus используются нижние уровни XNS для доставки пакетов.
XNS включает следующие протоколы:
- IDP – Internet Datagram Protocol.
- RIP – Routing Information Protocol.
- PEP – Packet Exchange Protocol.
- SPP – Sequenced Packet Protocol.
На рисунке показано положение стека протоколов XNS в эталонной модели OSI.
Положение протоколов XNS в эталонной модели OSI
IDP
Протокол межсетевых дейтаграмм IDP (Internet Datagram Protocol) обеспечивает передачу отдельных пакетов по адресам Internet, независимо от передачи других пакетов или откликов адресата. В общем случае XNS ограничивает размер пакетов IDP 576 байтами без учета заголовка канального уровня.
IDP использует следующие параметры:
Сеть получателя
Четырехбайтовый адрес сети получателя пакета.
Сокет получателя
Двухбайтовый номер сокета порта-получателя.
Сеть отправителя
Четырехбайтовый адрес сети отправителя.
Сокет отправителя
Двухбайтовый номер сокета порта отправителя.
Счетчик интервалов
Показывает число маршрутизаторов, встретившихся на пути передачи пакета к получателю. Каждый маршрутизатор при передаче пакета увеличивает значение счетчика на единицу. При достижении счетчиком значения 16 пакет отбрасывается.
Тип пакета
Номер, указывающий используемый протокол вышележащего уровня. XNS определяет следующие типы пакетов:
0 Неизвестен.
1 RIP.
2 Эхо-протокол.
3 Протокол ошибок.
4 PEP.
5 SPP.
RIP
Протокол RIP (Routing Information Protocol – протокол маршрутной информации) используется в XNS для поддержки базы данных о хостах сети и обмена информацией о сетевой топологии. Каждый маршрутизатор поддерживает список список всех известных ему сетей и стоимости каждого маршрута (routing cost), выражаемой числом интервалов (хопов) . Маршрутизаторы XNS каждые 30 секунд распространяют маршрутную информацию путем широковещательной рассылки таблиц маршрутизации. Протокол RIP использует передачу таблиц маршрутизации при внесении изменений или по запросам других маршрутизаторов.
XNS обычно использует эхо-протокол для демонстрации наличия и доступности хостов сети, а при наличии ошибок маршрутизации используется протокол Error (ошибка).
Кадры
Кадры RIP могут содержать следующие команды:
[routing reqst] Запрос маршрутной информации.
[routing reply] Отклик на запрос маршрутной информации.
[echo request] Запрос эхо-сигнала для переданной информации.
[echo reply] Эхо-сигнал запрошенных данных.
[error: unknown error] Неизвестная ошибка.
[error: corrupt at dest] Данные повреждены при получении.
[error: unknown socket] Неизвестный номер сокета.
[error: out of resources] Нехватка ресурсов маршрутизатора.
[error: routing error] Неуказанная ошибка маршрутизации.
[error: corrupt en route] Данные повреждены при передаче.
[error: dest unreachable] Сеть получателя недоступна.
[error: TTL expired] Пакет отброшен после 15 интервалов.
[error: packet too large] Размер пакета превышает допустимое значение.
Параметры запросов и откликов
Параметры запросов и откликов протокола RIP содержат перечень сетей и счетчик интервалов (hop count). Кадры типа [routing reqst] включают номера сетей, для которых запрашивается маршрутная информация, а кадры [routing reply] содержат список сетей, известных маршрутизатору. Параметры маршрутизации RIP используют формат NNNNNNNN (CC), где NNNNNNNN содержит 4-байтовое шестнадцатиричное значение номера сети, а CC указывает десятичное значение стоимости маршрута в интервалах (хопах). Номер сети FFFFFFFF интерпретируется протоколом XNS как «все сети». Стоимость маршрута, превышающая 15 интервалов, говорит о недоступности сети.
Кадры [echo request] и [echo reply] содержат дамп эхо.
Кадры ошибок
Каждый кадр [error:…] содержит до 42 байтов кадра, ответственного за сообщение об ошибке. Сообщение [error: packet too large] содержит значение максимального размера (Max=xxx).
PEP
Протокол обмена пакетами PEP (Packet Exchange Protocol) обеспечивает сервис полугарантированной доставки, ориентированный на обмен отдельными пакетами.
Протокол PEP использует следующие параметры:
Идентификатор пакета
Уникальное значение, используемое для идентификации соответствия между запросами и откликами. Система, посылающая запрос, устанавливает в поле идентификатора фиксированное значение и ищет это значение в пакетах откликов.
Тип клиента
Зарегистрированный код, используемый для идентификации используемого приложения.
SPP
Протокол последовательного обмена пакетами SPP (Sequenced Packet Protocol) обеспечивает гарантированную доставку пакетов с управлением потоком данных.
Протокол SPP использует следующие параметры:
Идентификатор источника соединения
Число, используемые для идентификации исходной точки транспортного соединения. Протокол генерирует идентификатор во время организации соединения для того, чтобы можно было различать отдельные транспортные соединения.
Идентификатор конечной точки соединения
Число, используемое для идентификации конечной точки транспортного соединения.
Порядковый номер
Порядковый номер пакета. Каждый успешно переданный и подтвержденный пакет должен иметь порядковый номер, превышающий на единицу номер своего предшественника.
Номер подтверждения
Порядковый номер последнего корректно принятого пакета. Каждый участник транспортного соединения использует собственную нумерацию пакетов, поэтому номера пакетов и подтверждений могут существенно отличаться один от другого.
Кредит
Количество неподтвержденных пакетов, которые один участник соединения может передать другому.
Флаг транспортного управления
Установка этого флага говорит о том, что пакет используется для транспортного управления.
Флаг запроса подтверждения
Установка этого флага говорит о запросе незамедлительной передачи подтверждения.
Внимание
Установка данного флага говорит о том, что пакет передается независимо от размера кредита, заданного получателем.
EOM
Флаг конца сообщения, указывающий на логическое завершение потока сообщений.
Тип потока данных
Зарезервированное поле, игнорируемое протоколом SPP. Это поле поддерживается для использования протоколами вышележащих уровней при обмене управляющей информацией.