1. 概要

インターネットを介したデータの転送は、2つ以上のネットワーク要素が相互に通信する方法を定義する一連のプロトコルのおかげで発生します。 インターネットプロトコル(IP)スイートには、このデータトラフィックのほとんどすべてを処理するプロトコルが含まれています。 Stream Control Transmission Protocol(SCTP)は、スイートの新しい、あまり知られていないメンバーです。

このチュートリアルでは、SCTPのコア機能と、SCTPの幅広い採用に影響を与える問題について学習します。

2. IPトランスポート層

IPスイートがOpenSystems Interconnection(OSI)モデルに従っていることを考えると、ホスト間通信用のトランスポート層があります。 メッセージは、この層のSCTPで送受信できます。 ただし、伝送制御プロトコル(TCP)とユーザーデータグラムプロトコル(UDP)は、はるかによく知られており、サポートされているプロトコルであるため、SCTPの使用はほとんどありません。

2.1. TCPとUDP

TCPとUDPの両方がIPトランスポート層にあります。 これらは、ハイパーテキスト転送プロトコル(HTTP)ファイル転送プロトコル(FTP)などの上位層プロトコルのアプリケーションベースの通信をサポートします。

基本的に、インターネット上のすべてのトラフィックはこれら2つのプロトコルを使用します。 これらのプロトコルを使用すると、コネクション型またはコネクションレス型のメッセージ送信を行うことができます。 これは、すべての主要なオペレーティングシステムネットワーキングライブラリに含まれていることと相まって、トランスポート層で定義されている他のプロトコルよりも優位に立っています。

3. SCTP

便利なことに、 SCTPの設計者は、TCPとUDPの最高の機能を1つのプロトコルに組み合わせました。このように、TCPに見られる保証されたデータ配信の概念とともに、UDPのメッセージベースの機能が含まれています。 このアプローチは、TCPのように、メッセージを処理するだけで、バイトの連続ストリームからメッセージを解析する必要がない手段をアプリケーションに提供します。

順序付けられていないメッセージ配信は、UDPとSCTPで共有される別の機能であり、一部のアプリケーションでは望ましいものです。 ただし、ストリームごとの順序付けられたメッセージは、オプションでプロトコルでも使用できます。 これは、SCTPもTCPのように動作できることを意味します。

3.1. マルチストリーミング

SCTPは、プロトコルが複数の接続をバンドルし、異なるデータストリームが同時に送信されるプロセスであるマルチストリーミングもサポートします。

3.2. マルチホーミング

SCTPに固有のもう1つの機能は、マルチホーミングです。 SCTPクライアントとホストは複数のIPアドレスを持ち、それらを1つの接続に使用できます。これにより、プロトコルに冗長ネットワークパスを設定できます。

3.3. 安全

最後に、 SCTPは、サービス拒否攻撃からプロトコルを保護する4ウェイハンドシェイク接続作成プロセスを使用することにより、より強力なセキュリティを提供します。 SCTPが接続を確立すると、ホストとクライアントは、関連付けの検証と信頼性を支援するCookieを交換します。 マルチホーミングと組み合わせて、これらのセキュリティ機能により、ネットワーク上の一部のルートとインターフェイスがダウンしている場合でも、SCTPは接続を維持できます。

接続の復元力は、SCTPの基盤となる Signaling System 7(SS7)の重要な機能です。

4. 可決

IPスイートへのSCTPの追加は、多くのオペレーティングシステムで完全にはサポートまたは実装されていません。 プロトコルの作成者は、他のトランスポート層プロトコルを悩ませていた問題の多くを解決することを目指していましたが、 WindowsやmacOSなどの主要なオペレーティングシステムに含まれていないため、このプロトコルは比較的不明で、ややあいまいになっています。

また、ルーターなどのほとんどの消費者向けネットワーク機器はSCTP をサポートしていないか、SCTPでネットワークアドレス変換(NAT)を処理しません。

SCTPはまた、学習曲線が急で、実装が難しい場合があり、最新のアプリケーションのデータ転送のニーズのほとんどには、TCPで十分です。

最終的に、これらすべてがオペレーティングシステムやアプリケーションによるSCTPの採用をほとんどもたらさなかった。

5. 結論

このチュートリアルでは、SCTP、他の一般的なIPトランスポート層プロトコルからSCTPを分離するいくつかの機能、およびSCTPの採用が非常に少ない理由について説明しました。