Stream Control Transmission Protocol
表示
TCP/IP群 |
---|
アプリケーション層 |
|
トランスポート層 |
カテゴリ |
インターネット層 |
カテゴリ |
リンク層 |
カテゴリ |
Stream Control Transmission Protocol(ストリーム制御伝送プロトコル、ストリーム コントロール トランスミッション プロトコル、SCTP)は、2000年にSIGTRAN ワーキンググループによって定義されたトランスポート層のプロトコルである。
輻輳制御を行い、到着順序を保証する信頼性のあるメッセージ転送を行うという点で、同じ層のプロトコルであるTCPと同様のサービスを提供する。TCP はバイト (byte) 指向であり、SCTP はフレーム・メッセージのやり取りである。
利点
[編集]SCTPの利点は以下の通り。
- マルチ・ホーミングのサポート。コネクションのエンドポイントは複数のIPアドレスを持つことができ、ホストやネットワーク・カードの障害時にフェイルセーフが可能。
- 別個のストリーム内のチャンクによるデータ転送。これにより、TCPのバイトストリーム転送に見られるような、不必要なhead-of-the-lineブロッキング(待ち行列の先頭のデータがその後ろの転送を妨げること)を解消することができる。
- 経路選択とモニタリング。「プライマリ」データ転送経路を選択し、その転送経路の接続性をテストする。
- 検証と応答確認メカニズム。フラッディング攻撃からの保護や、重複あるいは欠損したデータ・チャンクの通知を提供する。
元々SCTPは電話網のシグナリング・プロトコルであるNo.7共通線信号方式 (SS7) をIP上で転送することを意図しており、SS7信号網の信頼性をIP網で再現することを目的としている。このIETFの作業はSIGTRANとして知られている。一方で他の用途も提案されており、その一例としてRADIUSの後継であるDIAMETERでの利用が挙げられる。
実装
[編集]SCTP は次のオペレーティングシステムで実装・導入されている。
- Linux kernel 2.4/2.6
- Solaris 10(サン・マイクロシステムズ)
- FreeBSD、NetBSD、OpenBSD(KAMEプロジェクト)
- QNX Neutrino Realtime OS
- AIX Version 5
- Oracleの提供するWindows以外のJava SE 7実装(Java#バージョン履歴)
この他、様々なサードパーティ製の実装が他のオペレーティングシステムで利用可能である。
ユーザスペースで実装されたライブラリ:
The following applications implement SCTP:
- http://spot-on.sf.net - P2P library
- http://goldbug.sf.net - Instant Messenger
LTEやその後継規格のLTE-Advancedでは制御信号の送受信のトランスポート層にSCTPを使用している[1]。
関連項目
[編集]RFCs
[編集]- RFC 5062 - Security Attacks Found Against the Stream Control Transmission Protocol (SCTP) and Current Countermeasures
- RFC 5061 - Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration
- RFC 5043 - Stream Control Transmission Protocol (SCTP) Direct Data Placement (DDP) Adaptation
- RFC 4960 - Stream Control Transmission Protocol
- RFC 4895 - Authenticated Chunks for the Stream Control Transmission Protocol (SCTP)
- RFC 4820 - Padding Chunk and Parameter for the Stream Control Transmission Protocol (SCTP)
- RFC 4460 - Stream Control Transmission Protocol (SCTP) Specification Errata and Issues
- RFC 3873 - Stream Control Transmission Protocol (SCTP) Management Information Base (MIB)
- RFC 3758 - Stream Control Transmission Protocol (SCTP) Partial Reliability Extension
- RFC 3554 - On the Use of Stream Control Transmission Protocol (SCTP) with IPsec
- RFC 3436 - Transport Layer Security over Stream Control Transmission Protocol
- RFC 3309 - Stream Control Transmission Protocol (SCTP) Checksum Change(RFC 4960 により廃止)
- RFC 3286 - An Introduction to the Stream Control Transmission Protocol
- RFC 3257 - Stream Control Transmission Protocol Applicability Statement
- RFC 2960 - Stream Control Transmission Protocol(RFC 3309 により更新 RFC 4960 により廃止)
脚注
[編集]- ^ https://www.nttdocomo.co.jp/binary/pdf/corporate/technology/rd/technical_journal/bn/vol19_1/vol19_1_011jp.pdf - NTTドコモ テクニカルレポート
外部リンク
[編集]- SCTPによるネットワーキングの向上 - IBM developerWorks Japan
- JavaでのStream Control Transport Protocol(SCTP) - Oracle Technology Network
- SCTPヘッダ - Iptablesチュートリアル
- Stream Control Transmission Protocol (SCTP) - Solaris 10『プログラミングインタフェース』 第 8 章 ソケットインタフェース
- sigtran.org (英文)
- Signaling Transport (sigtran)(英文)
- OpenSS7 Project (英文)
- The Linux Kernel SCTP (lksctp) project (英文)
- www.sctp.org (英文)
- www.sctp.de (英文)