SRC_offset
Смещение адреса отправителя в блоке M_PROTO |
OPT_length |
Размер опций |
ОРТ_offset |
Смещение опций в блоке M_PROTO |
T_UDERROR_IND |
M_PROTO |
Сообщение об ошибке датаграммы. Этот примитив применим только для транспортных услуг без предварительного установления связи и указывает пользователю, что датаграмма с указанным адресом получателя и опциями вызвала ошибку. Сообщение состоит из одного блока M_PROTO , содержащего размер адреса и сам адрес получателя, опции, а также код ошибки, зависящий от конкретного транспортного протокола. Блок M_PROTO содержит следующие поля: |
PRIM_type |
Тип примитива — T_UDERROR_IND |
DEST_length |
Размер адреса протокола |
DEST_offset |
Смещение адреса отправителя в блоке M_PROTO |
OPT_length |
Размер опций |
OPT_offset |
Смещение опций в блоке M_PROTO |
ERROR_type |
Код ошибки |
T_DATA_REQ |
M_PROTO |
Запрос на передачу данных. Этот примитив применим только для транспортных услуг без предварительного установления связи и информирует поставщика транспортных услуг, что сообщение содержит пакет данных интерфейса (Transport Interface Data Unit, TIDU). Одно или более таких сообщений формируют пакет данных протокола TSDU. Сообщение состоит из одного блока M_PROTO , за которым может следовать один или несколько блоков типа M_DATA , содержащих прикладные данные пользователя. Блок M_PROTO содержит флаг MORE_flag , указывающий, является ли следующее сообщение T_DATA_REQ частью того же TSDU. На основании этого флага поставщик транспортных услуг компонует транспортные пакеты TSDU. Передача данных с помощью запросов T_DATA_REQ позволяет сохранить границы записи при передаче. Заметим, что протоколом TCP данная возможность не поддерживается. |
T_DATA_IND |
M_PROTO |
Индикация получения данных. Этот примитив применим только для транспортных услуг без предварительного установления связи и информирует пользователя, что сообщение содержит пакет данных интерфейса TIDU. Сообщение состоит из одного блока M_PROTO , за которым может следовать один или несколько блоков типа M_DATA , содержащих прикладные данные удаленного пользователя. Блок M_PROTO содержит флаг MORE_flag , позволяющий пользователю определить границы TSDU. |
Т_EXDATA_REQ |
M_PROTO |
Запрос на передачу экстренных данных. Этот примитив аналогичен T_DATA_REQ , но служит для передачи экстренных данных. Протокол TCP поддерживает передачу экстренных данных с помощью функции t_snd(3N) с аргументом flags , содержащим флаг T_EXPEDITED и, возможно, T_MORE . |
T_EXDATA_IND |
M_PROTO |
Индикация получения экстренных данных. Этот примитив аналогичен T_DATA_IND , но служит для передачи пользователю экстренных данных. |
T_OK_ACK |
M_PCPROTO |
Положительное подтверждение. Этот примитив сообщает пользователю транспортных услуг, что предшествующий примитив, инициированный им, был успешно принят поставщиком транспортных услуг. В то же время, получение подтверждения не означает, что поставщиком были совершены какие-либо действия, связанные с предыдущим примитивом. Сообщение состоит из одного блока M_PCPROTO в котором хранится тип подтвержденного примитива CORRECT_prim . |
T_ERROR_ACK |
M_PCPROTO |
Сообщение об ошибке. Этот примитив сообщает пользователю услуг, последний примитив, инициированный им, вызвал ошибку. Получение этого примитива может рассматриваться как отрицательное подтверждение, свидетельствующее, что никаких действий, связанных с ошибочным примитивом, не было предпринято. Сообщение состоит из одного блока M_PCPROTO , содержащего тип примитива, вызвавшего ошибку, код TLI и код системной ошибки UNIX. Блок M_PCPROTO содержит следующие поля: |
PRIM_type |
Тип примитива — T_ERROR_ACK |
ERROR_prim |
Тип ошибочного примитива |
TLI_error |
Код ошибки TLI |
UNIX_error |
Код системной ошибки UNIX |
T_INFO_REQ |
M_PCPROTO |
Запрос на получение параметров транспортного протокола. Этот примитив служит для запроса пользователем значений размеров различных параметров протокола, а также информации о текущим состоянии поставщика транспортных услуг. Сообщение состоит из одного блока M_PCPROTO . |
T_INFO_ACK |
M_PCPROTO |
Параметры транспортного протокола. Этот примитив служит для передачи пользователю ранее запрошенных с помощью T_INFO_REQ параметров транспортного протокола. Сообщение состоит из одного блока M_PCPROTO , содержащего информацию, часть из которой возвращается функцией t_open(3N), рассмотренной в разделе "Программный интерфейс сокетов" ранее в этой главе. Блок M_PCPROTO состоит из следующих полей: |
PRIM_type |
Тип примитива — T_INFO_ACK |
TSDU_size |
Определяет максимальный размер пакета данных протокола TSDU |
ETSDU_size |
Определяет максимальный размер пакета экстренных данных протокола ETSDU |
CDATA_size |
Определяет максимальный объем данных, передаваемых при установлении связи. Соответствует полю connect структуры info функции t_open(3N) |
DDATA_size |
Определяет максимальный объем данных, передаваемых при разрыве связи. Соответствует полю discon структуры info функции t_open(3N) |
ADDR_size |
Определяет максимальный объем транспортного протокола. Соответствует полю addr структуры info функции t_open(3N) |
OPT_size |
Определяет размер опций для данного протокола. Соответствует полю options структуры info функции t_open(3N) |
TIDU_size |
Определяет размер пакета данных интерфейса TIDU |
SERV_type |
Определяет тип транспортных услуг, предоставляемых поставщиком. Соответствует полю servtype структуры info функции t_open(3N) |
CURRENT_state |
Определяет текущее состояние поставщика транспортных услуг |
PROVIDER_flag |
Определяет дополнительные характеристики поставщика транспортных услуг |
T_OPTMGMT_REQ |
M_PROTO |
Управление опциями протокола. Этот примитив позволяет пользователю получить или установить опции протокола. Сообщение состоит из одного блока M_PROTO , включающего следующие поля: |
PRIM_type |
Тип примитива — T_OPTMGMT_REQ |
OPT_length |
Размер опций |
ОРТ_offset |
Смещение опций в блоке M_PROTO |
MGMT_flags |
Флаги, определяющие характер запроса пользователя: T_NEGOTIATE — установить опции, указанные пользователем. В результате опции, установленные поставщиком, могут отличаться от заказанных; T_CHECK — проверить, поддерживаются ли опции, указанные пользователем, поставщиком; T_DEFAULT — возвратить значения опций протокола. |
T_OPTMGMT_ACK |
M_PCPROTO |
Положительное подтверждение. Этот примитив подтверждает завершение операции с опциями протокола, заказанными пользователем. Сообщение состоит из одного блока M_PROTO , включающего те же поля, что и T_OPTMGMT_REQ . |