Spec-Zone.ru › OpenJDK 21

Класс SctpStandardSocketOptions

java.lang.Object
com.sun.nio.sctp.SctpStandardSocketOptions
public final class SctpStandardSocketOptions extends Object
Каналы SCTP поддерживают параметры сокета, определённые в этом классе (а также те, которые перечислены в конкретном классе канала), и могут поддерживать дополнительные параметры сокета, специфичные для реализации.
Since:
1.7

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static class  SctpStandardSocketOptions.InitMaxStreams
Этот класс используется для установки максимального количества входных/выходных потоков, используемых локальным конечным пунктом во время инициализации ассоциации.

Краткое описание полей

Модификатор и тип Поле Описание
static final SctpSocketOption<Boolean> SCTP_DISABLE_FRAGMENTS
Включает или выключает фрагментацию сообщений.
static final SctpSocketOption<Boolean> SCTP_EXPLICIT_COMPLETE
Включает или выключает явное завершение сообщений.
static final SctpSocketOption<Integer> SCTP_FRAGMENT_INTERLEAVE
Fragmented interleave управляет тем, как происходит представление сообщений для получателя сообщений.
static final SctpSocketOption<SctpStandardSocketOptions.InitMaxStreams> SCTP_INIT_MAXSTREAMS
Максимальное количество потоков, запрошенных локальным конечным пунктом во время инициализации ассоциации.
static final SctpSocketOption<Boolean> SCTP_NODELAY
Включает или выключает алгоритм наподобие Nagle.
static final SctpSocketOption<SocketAddress> SCTP_PRIMARY_ADDR
Запрашивает, чтобы локальный стек SCTP использовал указанный адрес узла как первичный адрес ассоциации.
static final SctpSocketOption<SocketAddress> SCTP_SET_PEER_PRIMARY_ADDR
Запрашивает, чтобы узел-партнёр отметил заключённый адрес как первичный адрес ассоциации.
static final SctpSocketOption<Integer> SO_LINGER
Задержка при закрытии, если данные присутствуют.
static final SctpSocketOption<Integer> SO_RCVBUF
Размер буфера приема сокета.
static final SctpSocketOption<Integer> SO_SNDBUF
Размер буфера отправки сокета.

Краткое описание методов

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

SCTP_DISABLE_FRAGMENTS

public static final SctpSocketOption<Boolean> SCTP_DISABLE_FRAGMENTS
Включает или отключает фрагментацию сообщений.

Значение этого параметра сокета — Boolean, представляющее, включен или отключен параметр. Если включено, фрагментация сообщений SCTP не будет выполняться. Вместо этого, если отправляемое сообщение превышает текущий размер PMTU, сообщение НЕ будет отправлено, и пользователю будет сообщено об ошибке.

Поддержка этого параметра зависит от реализации.

SCTP_EXPLICIT_COMPLETE

public static final SctpSocketOption<Boolean> SCTP_EXPLICIT_COMPLETE
Включает или отключает явное завершение сообщения.

Значение этого параметра сокета — Boolean, представляющее, включен или отключен параметр. Когда этот параметр включен, метод send может вызываться несколько раз для отправки сообщения. Параметр isComplete метода MessageInfo должен быть установлен в true только для финальной отправки, чтобы указать, что сообщение завершено. Если этот параметр отключен, каждый вызов send считается завершением.

Значение параметра по умолчанию — false, что означает отключение параметра. Поддержка этого параметра зависит от реализации.

SCTP_FRAGMENT_INTERLEAVE

public static final SctpSocketOption<Integer> SCTP_FRAGMENT_INTERLEAVE
Параметр фрагментации управляет тем, как сообщения представляются получателю. Определено три уровня фрагментации. Два уровня влияют на SctpChannel, в то время как SctpMultiChannel затронуты всеми тремя уровнями.

Этот параметр принимает значение Integer. Он может быть установлен в значение 0, 1 или 2.

Установка трех уровней обеспечивает следующие взаимодействия с получателем:

level 0 — Запрещает чередование сообщений. Это означает, что когда начинается частичная доставка, никакие другие сообщения не будут получены, кроме сообщения, которое частично доставляется. Если другое сообщение придёт по другому потоку (или ассоциации), которое можно доставить, оно будет заблокировано, ожидая, пока пользователь прочитает всё частично доставленное сообщение.

level 1 — Разрешает чередование сообщений из разных ассоциаций. Для SctpChannel, уровни 0 и 1 имеют одинаковое значение, поскольку SctpChannel всегда получает сообщения из одной ассоциации. Обратите внимание, что установка SctpMultiChannel на этот уровень может привести к нескольким частичным доставкам из разных ассоциаций, но для каждой ассоциации будет доставлено только одно сообщение, пока не будут доставлены все части сообщения. Это означает, что одно большое сообщение, читаемое с идентификацией ассоциации "X", заблокирует доставку других сообщений от ассоциации "X".

level 2 — Разрешает полное чередование сообщений. Этот уровень требует, чтобы отправитель внимательно следил не только за Association со стороны получателя, но и должен внимательно следить за номером потока. При включенном этом параметре частично доставленное сообщение может начать доставляться для ассоциации "X" потока "Y", и последующий приём может вернуть сообщение из ассоциации "X" потока "Z". Обратите внимание, что никакие другие сообщения не будут доставлены для ассоциации "X" потока "Y", пока не будет прочитано всё частично доставленное сообщение потока "Y". Обратите внимание, что этот параметр влияет на оба типа каналов. Также обратите внимание, что для SctpMultiChannel может быть доставлено сообщение из другого потока той же ассоциации при следующем приёме, а также сообщение из другой ассоциации.

Поддержка этого параметра зависит от реализации.

SCTP_INIT_MAXSTREAMS

public static final SctpSocketOption<SctpStandardSocketOptions.InitMaxStreams> SCTP_INIT_MAXSTREAMS
Максимальное количество потоков, затребованных локальным узлом во время инициализации ассоциации.

Значение этого параметра сокета — InitMaxStreams, представляющее максимальное количество входящих и исходящих потоков, которые ассоциация на канале готова поддерживать.

Для SctpChannel этот параметр может быть использован только для изменения количества входящих/исходящих потоков до подключения.

Для SctpMultiChannel этот параметр определяет максимальное количество входящих/исходящих потоков, которые новые ассоциации, настроенные на канале, будут готовы поддерживать.

Для SctpServerChannel этот параметр определяет максимальное количество входящих/исходящих потоков, которые сокеты-приёмники будут согласовывать с подключенным к ним партнёром.

Во всех случаях значение, установленное этим параметром, используется при согласовании новых ассоциаций, созданных на сокете канала, и фактическое максимальное количество входящих/исходящих потоков, которое было согласовано с партнёром, может быть получено из соответствующего Association. Значение может быть получено из COMM_UP AssociationChangeNotification, относящегося к данной ассоциации.

Это значение ограничено фактической реализацией. Другими словами, пользователь может поддерживать больше потоков, чем операционная система. В таком случае, ограничение операционной системы может перекрыть значение, запрошенное пользователем. Значение по умолчанию 0 означает использование значения по умолчанию для конечных точек.

SCTP_NODELAY

public static final SctpSocketOption<Boolean> SCTP_NODELAY
Включает или отключает алгоритм, подобный алгоритму Найгла.

Значение этого параметра сокета — Boolean, представляющее, включен или отключен параметр. SCTP использует алгоритм, похожий на алгоритм Найгла, чтобы объединять короткие сегменты и повысить эффективность сети.

SCTP_PRIMARY_ADDR

public static final SctpSocketOption<SocketAddress> SCTP_PRIMARY_ADDR
Запрашивает использование локальным стеком SCTP указанного адреса партнера в качестве основного адреса ассоциации.

Значение этого параметра сокета — SocketAddress, представляющее адрес партнера, который локальный стек SCTP должен использовать в качестве основного адреса ассоциации. Адрес должен быть одним из адресов партнёра по ассоциации.

Один SctpMultiChannel может управлять более чем одной ассоциацией, параметр ассоциации должен быть указан при установке или получении этого параметра.

Так как SctpChannel управляет только одной ассоциацией, параметр ассоциации не требуется, и этот параметр можно установить или получить напрямую.

SCTP_SET_PEER_PRIMARY_ADDR

public static final SctpSocketOption<SocketAddress> SCTP_SET_PEER_PRIMARY_ADDR
Запрашивает, чтобы партнёр отметил указанный адрес как основной адрес ассоциации.

Значение этого параметра сокета — SocketAddress, представляющее локальный адрес, который партнёр должен использовать в качестве своего основного адреса. Указанный адрес должен быть одним из локально привязанных адресов ассоциации.

Один SctpMultiChannel может управлять более чем одной ассоциацией, параметр ассоциации должен быть указан при установке или получении этого параметра.

Так как SctpChannel управляет только одной ассоциацией, параметр ассоциации не требуется, и этот параметр можно получить напрямую.

Обратите внимание, это параметр только для установки и не может быть получен с помощью getOption. Поддержка этого параметра зависит от реализации.

SO_SNDBUF

public static final SctpSocketOption<Integer> SO_SNDBUF
Размер буфера отправки сокета.

Значение этого параметра сокета — Integer, представляющее размер буфера отправки сокета в байтах. Буфер отправки сокета — буфер вывода, используемый реализацией сети. Возможно, его потребуется увеличить для соединений с высокой интенсивностью. Значение параметра сокета — подсказка для реализации для размера буфера, и фактический размер может отличаться. Параметр сокета можно получить, чтобы получить фактический размер.

Для SctpChannel, это контролирует количество данных, которое стек SCTP может хранить в внутренних буферах для отправки. Таким образом, этот параметр ограничивает максимальный размер данных, которые могут быть отправлены в одном вызове отправки.

Для SctpMultiChannel, эффект такой же, как и для SctpChannel, за исключением того, что он применяется ко всем ассоциациям. Параметр применим к размеру окна каждой ассоциации отдельно.

Реализация позволяет установить этот параметр сокета до привязки или подключения сокета. Возможность изменения буфера отправки сокета после привязки сокета зависит от системы.

SO_RCVBUF

public static final SctpSocketOption<Integer> SO_RCVBUF
Размер буфера приёма сокета.

Значение этого параметра сокета — Integer, представляющее размер буфера приёма сокета в байтах. Буфер приёма сокета — входной буфер, используемый реализацией сети. Возможно, его потребуется увеличить для соединений с высокой интенсивностью или уменьшить, чтобы ограничить возможный запрос входящих данных. Значение параметра сокета — подсказка для реализации для размера буфера, и фактический размер может отличаться.

Для SctpChannel, это контролирует размер окна приёма.

Для SctpMultiChannel, смысл зависит от реализации. Он может контролировать буфер приёма для каждой ассоциации, привязанной к описателю сокета, или может контролировать буфер приёма для всего сокета.

Реализация позволяет установить этот параметр сокета до привязки или подключения сокета. Возможность изменения буфера приёма сокета после привязки сокета зависит от системы.

END_OF_DOCUMENT_MARKER

SO_LINGER

public static final SctpSocketOption<Integer> SO_LINGER
Задержка при закрытии, если данные присутствуют.

Значение этого параметра сокета — Integer , которое управляет действиями при очереди незасланных данных в сокете и вызове метода закрытия сокета. Если значение параметра сокета равно нулю или больше, то оно представляет собой значение таймаута в секундах, известное как интервал ожидания. Интервал ожидания — это таймаут для метода close для блокировки, пока операционная система пытается передать незасланные данные или решит, что передать данные невозможно. Если значение параметра сокета меньше нуля, то параметр отключён. В этом случае метод close не ожидает, пока незасланные данные будут переданы; если возможно, операционная система передаст любые незасланные данные перед закрытием соединения.

Этот параметр сокета предназначен для использования с сокетами, настроенными в режиме blocking только. Поведение метода close при включении этого параметра в неблокирующем сокете не определено.

Начальное значение этого параметра сокета — отрицательное значение, означающее, что параметр отключён. Параметр может быть включён или интервал ожидания изменён в любое время. Максимальное значение интервала ожидания зависит от системы. Установка интервала ожидания на значение, большее его максимального значения, приводит к установке интервала ожидания на его максимальное значение.

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/jdk.sctp/com/sun/nio/sctp/SctpStandardSocketOptions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API