モジュール 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