モジュール jdk.sctp

パッケージ com.sun.nio.sctp

Stream Control Transport Protocol用のJava APIです。

SCTP (Stream Control Transport Protocol)は、信頼性のあるメッセージ指向のトランスポート・プロトコルで、UDP (User Datagram Protocol)やTCP (Transmission Control Protocol)と同じレベルに位置します。 SCTPは、セッション指向であり、エンド・ポイント間のアソシエーションはデータが転送可能になる前に確立される必要があります。

SCTPでは、マルチホームを直接サポートしています。つまり、エンド・ポイントは複数のアドレスで表されることがあり、各アドレスをデータの送受信に使用できるため、ネットワークに冗長性が生じます。 2つのエンド・ポイント間の接続は、エンド・ポイント間のアソシエーションと呼ばれます。 エンド・ポイントは、アソシエーションの設定中にアドレスのリストを交換できます。 1つのアドレスがプライマリ・アドレスとして指定され、ピアがデータを送信するために使用するデフォルト・アドレスになります。 特定のセッションでは、1つのエンド・ポイントにおけるアドレス・リスト全体で単一のポート番号が使用されます。

SCTPはメッセージ・ベースです。 入出力操作はメッセージに対して行われるため、メッセージ境界は維持されます。 各関連は、複数の独立した論理ストリームをサポートすることができます。 各ストリームは、単一の関連付け内の一連のメッセージを表し、ストリームは互いに独立しています。つまり、ストリーム識別子とシーケンス番号がデータ・パケットに含まれ、ストリーム単位でメッセージの順序を設定できます。

このパッケージは、2つのプログラミング・モデル・スタイルを提供します。 SctpChannelおよびSctpServerChannelでサポートされる1対1スタイルと、SctpMultiChannelでサポートされる1対多スタイルです。 1対1スタイルのインタフェースのセマンティックスは、TCPによく似ています。 SctpChannelは、1つのSCTPアソシエーションのみを制御できます。 1対多スタイルのインタフェースのセマンティックスは、UDPによく似ています。 SctpMutliChannelは、複数のSCTPアソシエーションを制御できます。

アプリケーションでは、MessageInfoを使用してメッセージ単位の補助情報を送受信できます。 たとえば、メッセージが送信または受信されるストリーム番号です。 SCTPスタックはイベント・ドリブンであるため、アプリケーションではSCTPチャネルのreceiveメソッドを適切な通知ハンドラを指定して呼び出すことで、特定のSCTPイベントに関する通知を受信できます。

SCTPプロトコルはRFC4960で定義されていて、動的なアドレス再構成の拡張機能(オプション)はRFC5061で定義されています。

導入されたバージョン:
1.7
  • インタフェースのサマリー 
    インタフェース 説明
    Notification
    SCTPスタックからの通知です。
    NotificationHandler<T>
    SCTPスタックからの通知を処理するハンドラです。
    SctpSocketOption<T>
    SCTPチャネルに関連付けられたソケット・オプションです。
  • クラスのサマリー 
    クラス 説明
    AbstractNotificationHandler<T>
    通知を処理してから続行するスケルトン・ハンドラです。
    Association
    SCTPアソシエーションを表すクラスです。
    AssociationChangeNotification
    アソシエーションが開かれたり、閉じられたりしたときに発行される通知です。
    MessageInfo
    MessageInfoクラスは、メッセージに関する追加の補助情報を提供します。
    PeerAddressChangeNotification
    マルチホーム・ピア上の宛先アドレスが変更されたときに発行される通知です。
    SctpChannel
    メッセージ指向の接続されたSCTPソケットの選択可能なチャネルです。
    SctpMultiChannel
    メッセージ指向のSCTPソケットの選択可能なチャネルです。
    SctpServerChannel
    メッセージ指向の待機SCTPソケットの選択可能なチャネルです。
    SctpStandardSocketOptions
    SCTPチャネルでは、特定のチャネル・クラスに一覧表示されたソケット・オプションに加えて、このクラスで定義されたソケット・オプションもサポートされています。また、追加の実装固有のソケット・オプションがサポートされている場合もあります。
    SctpStandardSocketOptions.InitMaxStreams
    このクラスは、アソシエーションの初期化中にローカル・エンドポイントで使用されるイン・バウンドまたはアウトバウンド・ストリームの最大数を設定するために使用されます。
    SendFailedNotification
    送信失敗の通知が受信されたときに発行される通知です。
    ShutdownNotification
    ピアでアソシエーションが停止されるときに発行される通知です。
  • 列挙型のサマリー 
    列挙型 説明
    AssociationChangeNotification.AssocChangeEvent
    アソシエーションで発生する変更イベントの型を定義します。
    HandlerResult
    通知ハンドラの結果を定義します。
    PeerAddressChangeNotification.AddressChangeEvent
    インタフェースの詳細が変更されたときに、マルチホーム・ピア上の宛先アドレスで発生するアドレス変更イベントの型を定義します。
  • 例外のサマリー 
    例外 説明
    IllegalReceiveException
    通知ハンドラからSctpChannelまたはSctpMultiChannelreceiveメソッドを呼び出そうとするとスローされる非チェック例外です。
    IllegalUnbindException
    チャネルにバインドされていないアドレスを削除したり、バインドされている唯一のアドレスを持つチャネルからアドレスを削除したりしようとするとスローされる非チェック例外です。
    InvalidStreamException
    無効なストリームにメッセージを送信しようとするとスローされる非チェック例外です。