私はUDPとTCPの一般的な違いをかなり知っています(例:http://www.onsip.com/about-voip/sip/udp-versus-tcp-for-voip)
問題は、トランスポートとしてTCPを使用すると、特にSIPVOiP通信でどのような利点があるのでしょうか。
私はUDPとTCPの一般的な違いをかなり知っています(例:http://www.onsip.com/about-voip/sip/udp-versus-tcp-for-voip)
問題は、トランスポートとしてTCPを使用すると、特にSIPVOiP通信でどのような利点があるのでしょうか。
多くの人は一般的にUDPをvoipに関連付け、おそらくそれをそのままにしますが、簡単に言えば、voipには接続と音声データ転送の2つの部分があります。
SIPは非常に軽量なプロトコルであり、接続が確立されると、誰かが電話をかけるというまれなイベントが発生するまで、事実上アイドル状態のままになります。TCP(UDPとは異なり)は、必要性を排除することにより、実際にサーバーへのトラフィックを削減します。
SIP over TCPを実行してから、(推奨されるように)RTPにUDPを使用できます。
私は仕方がなかっただけでなく、私が見た明らかなことを指摘しました。例えば。サーバーに接続しているデバイスの数。数が増えるにつれて、方程式はUDPに有利に傾く。ただし、SIPユーザーエージェントを拡張して、複数のコーデック、マルチメディア、ビデオ、および画面共有をカバーすることも検討する必要があります。INVITEパケットは大きくなり始め、UDP単一データグラムサイズを超える可能性があるため、TCPを優先して方程式を再び傾けることができます。
そうは言っても、あなたが答えようとしていた質問に答えるのに十分な情報を持っていることを願っています。
お役に立てれば。
クレジット:onSipでの素晴らしいディスカッション:https ://www.onsip.com/blog/sip-via-udp-vs-tcp
SIP over TCPには、モバイルデバイスのUDPよりも大きな利点があります。その理由は、NATを使用していることと、ワイヤレスルーターまたはセルプロバイダーのルーターのNATテーブルエントリが、UDPとTCPのどちらの場合でも一般的にはるかに速くタイムアウトするためです。コールを確実に受信するには、同じNATテーブルエントリを維持する必要があるため、SIPはNATテーブルエントリを維持するために定期的にキープアライブを送信する必要があります。必要なキープアライブの頻度は、UDP(おそらく30秒ごと)とTCP(おそらく15分ごと)の方がはるかに高いため、モバイルデバイスのバッテリー使用量が著しく高くなります。VOIPクライアントを使用しているときに、バッテリーの使用量がどのように大きな打撃を受けるかについて誰かが不満を言っているのを目にすることがよくあります。これは、クライアントがUDPを使用しているためです。
そのため、TCPはモバイルデバイスのUDPハンドダウンに勝ちます。
上記は、モバイルデバイスで確実に通話を受信できるようにすることを前提としていることに注意してください。あなたがしたいのが電話をかけることができることだけであるならば、それは別の話です。
メッセージが大きい場合(MTUサイズの200バイト以内)、RFC 3261セクション18.1.1はTCPの使用を義務付けています(正確には、「TCPなどの輻輳制御トランスポートプロトコル」の使用を義務付けています)。INVITE
たくさんのヘッダーと複雑なリクエストURIを含むイニシャルを送信するときに、実際にそれをヒットしました。
TCPベースのプロトコルからオーディオストリームを確実にアセンブルすることはできません。オーディオでは、パケットドロップのためにパケットを再送信するよりも、パケットを失う方がはるかに優れています。パケットのタイミングに過度のジッターがあると、オーディオは機能しません。オーディオはリアルタイムであり、正しく機能するにはUDPなどのプロトコルが必要です。パケット損失はオーディオを壊さず、品質を低下させるだけです。TCPの完全な配信は、オーディオにはまったく役立ちません。パケットを100%取得した場合、品質は低下しますが、リアルタイムではありません。オーディオでは、データの整合性よりも品質を決定するのはタイミング(レイテンシー、ジッター)です。
この一口は、信号と制御がTCPを介しているが、音声データがUDPを介している場合に最適に機能します。
私は1987年に日本で新たに出現したデジタルセルラーネットワーク用に最初のスマートフォンの1つを設計して以来、ネットワークプロトコルを介したデジタルボイスの送信に取り組んできました。1987年以来、変わらないデジタル音声伝送の唯一の側面は、私がここで説明することです。オーディオ(音声)送信のリアルタイムの性質と、それがシステム設計に与える影響は、私が生まれた恐竜時代とまったく同じです。
TCPは、UDPが理解できない場合でも、損失のある接続を完全に明確に処理できます。UDPを使用するとレイテンシーが低くなりますが、何が言われているのか理解できない場合は役に立ちません。