SIP(Session Initiation Protocol)という言葉を聞いて、IP電話やVoIPといったものを思い浮かべる読者も多いのではないでしょうか? 確かにSIPは「IP電話のプロトコルである」といえますが、クライアントとサーバ間の通信が中心のインターネット上で、「クライアント同士の直接通信を実現」するという大きな機能と可能性を持つ技術なのです。VoIP/IP電話といったアプリケーションを基に、このSIP技術をひもといてみましょう。
SIPが主に使われているVoIPは、その名のとおり音声をIPで伝えるアプリケーションです。音声をIPで単に相手に伝えることは意外と単純で、デジタル化された音声を細切れにしてパケットとして送信するだけです。このパケット送信には、通常RTP(Real-time Transport Protocol)というシンプルなプロトコルが用いられ、IP電話ではおおよそ20msごとに1パケット(つまり1秒間に50パケット)を送るようになっています。このような連続したメディアパケットのことをメディアストリーミングと呼びます。
しかし、このRTPで相手と音のパケットをやりとりするためには、事前に相手のIPアドレスやポート番号が分かっていなければなりません。また、音声をデジタル化する際には、さまざまな圧縮方式があり、互いがサポートしている圧縮方式を使用する必要があります。
このようにRTPで音を送り合うためには、事前に相手との情報のやりとりが必要で、特に「電話」の機能を実現するためには、発信や着信、応答、切断といった「呼制御」と呼ばれる処理も必要になります。SIPはこのような呼制御(=シグナリング)を行うシグナリングプロトコルなのです。
5分で絶対に分かるSIP
<1分>電話をネットで再現する「SIP」
Copyright © ITmedia, Inc. All Rights Reserved.