Класс SctpStandardSocketOptions
public class SctpStandardSocketOptions extends Object
- 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 |
Размер буфера отправки сокета. |
Краткое описание методов
Подробное описание полей
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 всегда получает сообщения из одной ассоциации. Обратите внимание, что установка данного параметра на этот уровень может привести к нескольким частичным доставкам из разных ассоциаций, но для каждой ассоциации будет доставлено только одно сообщение до тех пор, пока все части сообщения не будут доставлены. Это означает, что одно большое сообщение, которое читается с идентификатором ассоциации "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. Значение Association можно получить из COMM_UP AssociationChangeNotification, принадлежащего этой ассоциации.
Это значение ограничено фактической реализацией. Другими словами, пользователь может поддерживать больше потоков, чем операционная система. В таком случае, ограничение операционной системы может переопределить запрошенное пользователем значение. Значение по умолчанию 0 указывает на использование значения по умолчанию для узла.
SCTP_NODELAY
public static final SctpSocketOption<Boolean> SCTP_NODELAY
Значение этого параметра сокета — Boolean, которое указывает, включен или отключен параметр. SCTP использует алгоритм, подобный алгоритму Nagle, для объединения коротких сегментов и повышения эффективности сети.
SCTP_PRIMARY_ADDR
public static final SctpSocketOption<SocketAddress> SCTP_PRIMARY_ADDR
Значение этого параметра сокета — 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, значение зависит от реализации. Оно может контролировать буфер приема для каждой ассоциации, привязанной к описателю сокета, или буфер приема для всего сокета.
Реализация позволяет устанавливать этот параметр сокета до привязки или подключения сокета. Возможность изменения буфера приема сокета после привязки сокета зависит от системы.
SO_LINGER
public static final SctpSocketOption<Integer> SO_LINGER
Значение этого параметра сокета — Integer, контролирующее действия при очереди незасланных данных в сокете и вызове метода закрытия сокета. Если значение параметра сокета равно нулю или больше, оно представляет собой значение тайм-аута в секундах, известное как интервал задержки. Интервал задержки — это тайм-аут для метода close, который блокируется, пока операционная система пытается передать незасланные данные или решает, что передать данные невозможно. Если значение параметра сокета меньше нуля, параметр отключен. В этом случае метод close не ждет, пока будут переданы незасланные данные; если возможно, операционная система передаст все незасланные данные перед закрытием подключения.
Этот параметр сокета предназначен для использования с сокетами, сконфигурированными в режиме blocking только. Поведение метода close при включенном параметре в неблокирующем сокете не определено.
Начальное значение этого параметра сокета — отрицательное значение, означающее, что параметр отключен. Параметр может быть включен или интервал задержки изменен в любое время. Максимальное значение интервала задержки зависит от системы. Установка интервала задержки на значение, большее, чем его максимальное значение, приводит к установке интервала задержки на его максимальное значение.
© 1993, 2021, 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/17/docs/api/jdk.sctp/com/sun/nio/sctp/SctpStandardSocketOptions.html