Stream Control Transmission Protocol

SCTP(Stream Control Transmission Protocol)とは



SCTP(Stream Control Transmission Protocol、ストリーム制御伝送プロトコル)は、2000年にSIGTRANワーキンググループによって定義されたトランスポート層のプロトコルです。RFC 4960で規定されており、TCPと同様に信頼性のあるメッセージ転送を提供します。ただし、TCPがバイトストリームを扱うのに対し、SCTPはフレーム(メッセージ)単位でデータを送受信するという違いがあります。

SCTPの主な特徴



マルチホーミング: SCTPは、一つのコネクションのエンドポイントが複数のIPアドレスを持つことができます。これにより、ホストやネットワークカードの障害が発生した場合でも、通信を継続できるフェイルセーフ機能が実現できます。
ストリーム: SCTPでは、データを複数の独立したストリームに分割して転送できます。これにより、TCPのようなバイトストリーム転送で問題となる、head-of-lineブロッキング(特定のデータ転送の遅延が後続のデータ転送を妨げる現象)を回避できます。各ストリームは独立して処理されるため、特定のストリームでの遅延が他のストリームの転送に影響を与えません。
経路選択と監視: SCTPは、データ転送に最適な「プライマリ」経路を選択し、その接続性を監視します。これにより、ネットワーク状況の変化に応じて、最適な経路でのデータ転送を維持できます。
検証と応答確認: SCTPは、フラッディング攻撃からの保護、重複したデータの破棄、欠損したデータの通知などの機能を提供します。これにより、より信頼性の高いデータ転送が可能です。

SCTPの主な用途



SCTPは、もともと電話網のシグナリングプロトコルであるNo.7共通線信号方式(SS7)をIPネットワーク上で転送するために開発されました。このIETFにおける活動はSIGTRANとして知られています。SS7の信頼性をIPネットワークで実現することがSCTPの目的の一つでした。

しかし、SCTPはそれ以外にも様々な用途で利用されるようになっており、例えば、RADIUSの後継となるDIAMETERプロトコルでの利用も提案されています。また、LTEやLTE-Advancedなどのモバイル通信規格では、制御信号の送受信にSCTPが採用されています。

SCTPの実装



SCTPは、様々なオペレーティングシステムやプラットフォームで実装されています。

Linux kernel 2.4/2.6
Solaris 10(サン・マイクロシステムズ
FreeBSD, NetBSD, OpenBSD (KAME Project)
QNX Neutrino Realtime OS
AIX Version 5
Oracleの提供するJava SE 7(Windows以外)

また、サードパーティによる実装も多数存在します。ユーザー空間ライブラリとしては、sctplibやMicrosoft Windows XP向けのSCTPlibなどがあります。

SCTPを実装するアプリケーションには、P2Pライブラリのspot-onやインスタントメッセンジャーのgoldbugなどがあります。

SCTP関連RFC



SCTPに関する重要なRFCは以下の通りです。

RFC 4960: Stream Control Transmission Protocol
RFC 3286: An Introduction to the Stream Control Transmission Protocol
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 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 3257: Stream Control Transmission Protocol Applicability Statement
RFC 2960: Stream Control Transmission Protocol (RFC 3309により更新 RFC 4960により廃止)

SCTPの関連情報



SCTPに関する情報は、以下のウェブサイトでも参照できます。

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 (英文)

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。