Пакет com.sun.nio.sctp
Java API для протокола Stream Control Transport Protocol.
Протокол Stream Control Transport Protocol (SCTP) — это надежный, ориентированный на сообщения транспортный протокол, существующий на уровне, эквивалентном UDP (протоколу пользовательских дейтаграмм) и TCP (протоколу управления передачей). SCTP ориентирован на сеансы, и ассоциация между конечными точками должна быть установлена перед передачей любых данных.
SCTP напрямую поддерживает многодомашность, что означает, что конечная точка может быть представлена более чем одним адресом, и каждый адрес может использоваться для отправки и получения данных, обеспечивая тем самым избыточность сети. Связь между двумя конечными точками называется ассоциацией между этими конечными точками. Конечные точки могут обмениваться списком адресов во время установления ассоциации. Один адрес обозначается как первичный адрес, это — адрес по умолчанию, который peer будет использовать для отправки данных. Единственный номер порта используется по всему списку адресов на конечной точке для определенного сеанса.
SCTP основан на сообщениях. Операции ввода-вывода выполняются над сообщениями, и границы сообщений сохраняются. Каждая ассоциация может поддерживать несколько независимых логических потоков. Каждый поток представляет собой последовательность сообщений в пределах одной ассоциации, и потоки независимы друг от друга, что означает, что идентификаторы потоков и номера последовательности включены в пакет данных, чтобы обеспечить упорядочение сообщений на основе каждого потока.
Этот пакет предоставляет два стиля программирования. Стиль один-к-одному, поддерживаемый SctpChannel и SctpServerChannel, и стиль один-ко-многим, поддерживаемый SctpMultiChannel. Семантика интерфейса стиля один-к-одному очень похожа на TCP. SctpChannel может управлять только одной ассоциацией SCTP. Семантика интерфейса стиля один-ко-многим очень похожа на UDP. SctpMutliChannel может управлять несколькими ассоциациями SCTP.
Приложения могут отправлять и получать дополнительную информацию к каждому сообщению через MessageInfo. Например, номер потока, из которого должно быть отправлено или получено сообщение. Стек SCTP является событийно-ориентированным, и приложения могут получать уведомления о определенных событиях SCTP, вызывая метод receive канала SCTP с соответствующим notification handler.
Протокол SCTP определен в RFC4960, а необязательное расширение для Динамической переконфигурации адресов определено в RFC5061.
- С момента:
- 1.7
| Интерфейс | Описание |
|---|---|
| Notification | Уведомление от стека SCTP. |
| NotificationHandler<T> | Обработчик для обработки уведомлений от стека SCTP. |
| SctpSocketOption<T> | Опция сокета, связанная с каналом SCTP. |
| Класс | Описание |
|---|---|
| AbstractNotificationHandler<T> | Каркасный обработчик, который обрабатывает уведомления и продолжает работу. |
| Association | Класс, представляющий ассоциацию SCTP. |
| AssociationChangeNotification | Уведомление, генерируемое при открытии или закрытии ассоциации. |
| MessageInfo | Класс |
| PeerAddressChangeNotification | Уведомление, генерируемое при изменении адреса назначения на многодомашнем peer. |
| SctpChannel | Выбираемый канал для сокетов SCTP с ориентированными на сообщения соединениями. |
| SctpMultiChannel | Выбираемый канал для сокетов SCTP с ориентированными на сообщения соединениями. |
| SctpServerChannel | Выбираемый канал для прослушивающих сокетов SCTP с ориентированными на сообщения соединениями. |
| SctpStandardSocketOptions | Каналы SCTP поддерживают опции сокета, определенные этим классом (а также те, которые перечислены в конкретном классе канала), и могут поддерживать дополнительные опции сокета, специфичные для реализации. |
| SctpStandardSocketOptions.InitMaxStreams | Этот класс используется для установки максимального количества входящих/исходящих потоков, используемых локальной конечной точкой во время инициализации ассоциации. |
| SendFailedNotification | Уведомление, генерируемое при получении уведомления об ошибке отправки. |
| ShutdownNotification | Уведомление, генерируемое при завершении работы peer и ассоциации. |
| Перечисление | Описание |
|---|---|
| AssociationChangeNotification.AssocChangeEvent | Определяет тип события изменения, произошедшего с ассоциацией. |
| HandlerResult | Определяет результаты обработки уведомлений. |
| PeerAddressChangeNotification.AddressChangeEvent | Определяет тип события изменения адреса, произошедшего с адресом назначения на многодомашнем peer при изменении интерфейсных данных. |
| Исключение | Описание |
|---|---|
| IllegalReceiveException | Исключение без проверки, генерируемое при попытке вызвать метод |
| IllegalUnbindException | Исключение без проверки, генерируемое при попытке удалить адрес, который не привязан к каналу, или удалить адрес из канала, к которому привязан только один адрес. |
| InvalidStreamException | Исключение без проверки, генерируемое при попытке отправить сообщение в недействительный поток. |
© 1993, 2020, 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/11/docs/api/jdk.sctp/com/sun/nio/sctp/package-summary.html