SIPは呼制御プロトコルであり、P2P通信を開始するための仕組み。
SIPはHTTPを基にして作られた。
Session Initiation Protocol(セッション イニシエーション プロトコル、SIP、セッション確立プロトコル)とは 2 つ以上のクライアント間でセッションを確立するための IETF 標準の通信プロトコルである。
IP電話の呼制御などに利用されている。現在の主な用途は電話、テレビ電話やインスタント・メッセージングのような双方向のリアルタイム通信である。
このようなリアルタイム通信においては基本的に通信者は対等であり、サーバとクライアントというような役割分担は存在しない。
SIP においてはこれを、両者がサーバとクライアントの機能をあわせもつというかたちで表現している。
すなわち、SIP は HTTP (ハイパーテキスト転送プロトコル) をもとにしてつくられたので基本的には 要求-応答型 のプロトコルであり、要求者 (後述の UAC) がクライアントであり、応答者 (後述の UAS) がサーバであるが、両者がこれら両方の役割を演じることができる。HTTP においてはその下層のプロトコルとして高信頼な TCP を使用することが前提とされているが、SIPでは UDP を元に設計されている。
しかし、商用では信頼性のため後に拡張された TCP が使用される場合が多い。
SIP はセキュリティやプライバシーを守るための機能拡張も備える。
SIP(シップ/Session Initiation Protocol)とは、インターネットで2つ以上の相手に対してデータを受け渡す際に、必要なセッションの生成・変更・切断を実行する通信プロトコルです。
IP電話の標準プロトコルであり、IPネットワークを用いて、相手との通信経路(セッション)を確立する役割があります。SIPは端末やサーバーにSIP URI(Uniform Resource Identifier)というアドレスを付与し、通信相手の識別を行ないます。
音声や映像データはRTP(Real time Transport Protocol)というプロトコルによって伝達されます。SIPは、インターネットで利用される技術の標準化を行なう組織であるIETF(Internet Engineering Task Force)によって標準化が推進されています。
SIPを使うアプリケーションの代表は,クライアント同士を直接つなぐP2Pアプリケーションである。
IP電話,テレビ会議,チャットなどが該当する。
こうしたアプリケーションでは,通信相手がどんなプロトコルに対応し,どんなデータを扱えるかが,相手によって違ったりする。
そこで,自分と相手がサポートしているデータ形式やプロトコルを,通信を始める前に決める必要がある。
SIPは,こうした相手と実際の通信を始める前のお膳立てをする。システムの構成要素は,二つに分けられる。
一般にはSIPクライアントと呼ばれることが多い「SIP UA」(SIPユーザー・エージェント)と「SIPサーバー」である(図)。
SIP UAは,実際にユーザーが利用する端末やソフトである。
IP電話機やIP電話アダプタのような機器,Windows MessengerなどのSIP対応ソフトがそうだ。SIPサーバーは,あくまでもSIP UA同士のP2P通信を補うためにある。
例えばたくさんのSIP UAが存在するとき,各SIP UAがお互いのIPアドレスを個別に管理するのは大変である。
そこで,SIPサーバーを置いてアドレスを一元管理させる。
また,IP電話サービスのように通話時間や課金を管理したいケースでは,SIP UA同士が直接通信してしまうと都合が悪い。
こういうケースではSIPサーバーを置き,各SIP UAが必ずSIPサーバー経由で通信するようにする。