Транспортный уровень
Функции транспортного уровня OSI реализуются несколькими протоколами. Каждый из перечисленных ниже протоколов описан в спецификации ХNS как протокол уровня два.
Протокол упорядоченной передачи пакетов (Sequenced Packet Protocol - SPP) обеспечивает надежную, с установлением соединения и управлением потока, передачу пакетов от лица процессов клиента. По выполняемым функциям он похож на протокол TСР из комплекта протоколов Internet и на протокол ТР4 из комплекта протоколов OSI (смотри соответственно пункт "Протоколы Internet" и пункт "Протоколы OSI" ).
Каждый пакет SPP включает в себя номер последовательности (sequence number), который используется для упорядочивания пакетов и определения тех из них, которые были скопированы или потеряны. Пакеты SPP также содержат два 16-битовых идентификатора соединения (connection identifier). Каждый конец соединения определяет один идентификатор соединения. Оба идентификатора соединения вместе уникальным образом идентифицируют логическое соединение между процессами клиента.
Длина пакетов SPP не может быть больше 576 байтов. Процессы клиента могут согласовывать использование различных размеров пакетов во время организации соединения, однако SPP не определяет характер такого согласования.
Протокол обмена пакетами (Packet Exchange Protocol - PEP) является протоколом типа запрос-ответ, предназначенным обеспечивать надежность, которая больше надежности простых услуг дейтаграмм (например, таких, которые обеспечивает IDP), но меньше надежности SPP. По своим функциональным возможностям РЕР аналогичен Протоколу дейтаграмм пользователя (UDP) из комплекта протоколов Internet (смотри пункт "Протоколы Internet"). PEP базируется на принципе одного пакета, обеспечивая повторные передачи, но не обеспечивая выявление дублированных пакетов. Он полезен для прикладных задач, в которых транзакции запрос-ответ являются идемпотентными (повторяемыми без повреждения контекста), или в которых надежная передача выполняется на другом уровне.
Протокол неисправностей (Error Protocol - EP) может быть использован любым процессом клиента для уведомления другого процесса клиента о том, что в сети имеет место ошибка. Например, этот протокол используется в ситуациях, когда какая-нибудь реализация SPP распознала дублированный пакет.