SIPトランスポート層プロトコルの原則(解釈RFC3263)

概説、SIPプロトコル

参加https://blog.csdn.net/qiuchangyong/article/details/50748854を

単に私たちは、この対話を確立することであったので、SIPプロトコルは、この条約を実施するために使用される方法を接続し、私はあなたを呼び出すために欲しいものを、置きます

 

II:RFCでの分析重要な用語

1、UAC / WHO /

UAC:ユーザエージェントクライアントユーザエージェントクライアント

UAS:ユーザエージェントサーバのユーザエージェントサーバ

UA:ユーザー・エージェント・クライアントとユーザエージェントサーバの両方として作用することができる論理エンティティ。

水のモンスターは:私たちはどのように接続を確立するために、SIPプロトコルを使用して呼び出したい場合、ユーザーはどのようなものです、我々は、すべてのユーザーですか?もちろん、小さなプログラムがなければならないので、この小さなプログラムは、常に接続が人はイニシエータがあるときに確立されている、UAで、それから彼は、クライアントの役割を果たし、サーバがアクセスされています

           だから、UAエンティティ、UACとUASがあるの役割を表し

2、TU:トランザクションユーザー

SIPプロトコルは、人はなど、ダイヤルアップ接続、答えは、通過する、呼び出したいと、複数の相互作用の真ん中があり、ユニットとしてのものに基づいており、インタラクティブもののセットように動作します。

自分の仕事の過程で、物事は私のために送られたトランスポート層プロトコルのデータを呼び出すことがあるので、このTUは、上部輸送層とSIPプロトコルに対処する上で果たしたトランスポート層の上に位置しています。

UACコア、UASコア、およびプロキシコア:3つのコア(コア)を含むこのユーザ。

一口契約を達成するため、コアコンセプトはそう、異なる機能の機能を記述するようにしてください、実際にコードレベルであります

UACコア:UAの必要性は、機能を達成するために、クライアントの役割としての機能の行使で

UASコア:サーバーの役割

プロキシコア:前方に私たちを助けるために多くのプロキシがある真ん中の確認を呼び出すために、モバイルユニコムに似プロキシが、何で、そのプロキシ機能のための私のニックネームを達成するために

 

クライアントUACの第三に、行動特性(または要件を実装)

状態マシンに関する1、

私は呼びたい、私は最初のTUは、まず、初期状態は「呼び出し」されたものを作成し、要求を送信し、送信する前に、INVITEリクエストを送信します、どのように送信するには?

それは信頼性の高い接続に基づいていない場合は1)、彼は、最初のタイマAを再生しますしばしば再送要求、その後、T1で応答が時間T1内に受信されない場合、再送タイマは、その後の後、この時点2T1に設定されていますダブル時間一度ないが、もはや最大タイマB(64番目T1)より

2)接続は、完成したように、時間B、応答を受信しないが、受信されない場合恐れ基づいているため、それが、全くタイマA、タイマBは、信頼性の高い接続に基づいていないがされた場合

 

2、関連する接続(接続)

さらに、送信する前に、我々は最初の接続を確立する必要がありますので、TCPの場合は、SCTP、またはTLSプロトコルは、接続ベースです。

契約のシェアを飲み、これらの接続情報のように、トランスポート層のために、これらの接続を管理する必要性は、両方が自分のイニシアチブやパッシブ接続を開始し、当然のことながら、この接続は、2つの側面によって確立されます。

レコードの各インデックス、アドレストリプル遠位端(他端)によって生成されたインデックス、ポート、プロトコルタイプのSIPプロトコル接続が接続されています。それは次のような特徴を持っています

1)開始インデックス= IP +客体伝送プロトコルポートを接続するために+

2)受信インデックス= IP +ソースポート+ソース伝送プロトコルに接続され、

ある場合、すでに接続、伝送タスクの2つのUAのSIPを確立したものについては、実際には、多重化することができます。しかし、送信元ポートは、多くの場合、ランダムであることから、その受信者は、イニシエータとしてデータを送信したい場合、私はその前に、再利用することはできません

彼は、接続を再確立する必要があります。最後に、多くの場合、UAの間の相互作用のために、2つのよく確立された接続があるでしょうし、その後一定の再利用を続けます

 

第四に、トランスポート層を使用する方法についてすすります

(A)は、クライアントが要求を送信します

 IPアドレスまたはドメイン名、ポート番号:1は、クライアント構成要求メッセージは、埋め込みますと、「送られた - で、」フィールドViaフィールドのヘッダフィールドに、このフィールドには2つの部分が含まれています。このフィールドは、何のポートが存在しない場合、応答が、それはデフォルトのポートを使用するサーバー導くために使用されている(UDP / TCP / SCTP:5060; TLS:5061)

      1)信頼性の高い伝送の場合

          これは、接続に基づいて、それはへの応答を受信して​​いるからです。

           サーバがリクエストを受信した場合、接続が切断された場合でも、それはサーバー接続を再起動します、送信側は、彼の「送信されたバイ」アドレスで指定する必要があります:ポート準備ができて、接続する準備ができて

      2)の場合、信頼性の低い輸送

          埋め込まれた「送られた - で、」フィールドの端を送信し、その後は中に指定する必要があり、「送られた - で、」サーバの応答を受け取る準備ができて準備ができて上のフィールドアドレス+ポート、

 

(B)、クライアントは、応答を受信します

答えが戻ってきたときに、クライアントでのフィールドは、一般的には、このフィールドは、この分野では、元の要求から導出されたViaヘッダーフィールドの応答をチェックする「ことで、送信された」ので、私は戻って、彼は私の設定と一致しているかどうかを確認、ない場合は、その後は、それを破壊します

 

(C)、サーバは要求を受信し

1、サーバとして、あなたは、可能なインターフェイス上で接続する準備ができて注意を払う必要があります。いわゆる可能インターフェース、例えば:あなたはIPの背後に、ドメイン名、私に代わってxxの外部ドメイン名を言う:ポートを接続する必要があり、白はリリースから抜け出す方法であること、それは道路が通過であることを確認する必要があります。

図2に示すように、すべてのインターフェイス/ TCP / SCTP上のUDP:5060、TLS:5061接続が受信されなければなりません。(例外は、マルチインスタンスの展開シナリオのSIPプライベートネットワーク環境上のサーバーとマシンがあります)

 

3.サーバーのUDPプロトコルがポート上で聞く場合は、その後、彼はまた、ときに大きな袋、双方が伝送のためのプロトコルを常に切り替える可能性があるため、それは、ポート上でTCPプロトコルに耳を傾ける必要があります。

     逆に、それは必要ありません。

    そして、一般的には、サーバはアドレスを必要とせず、UDPポートを聞いて、それがTCPリスニングのためにあったように、もちろん、特別なニーズを持っている書きます

    水の悪魔:これは本当に少しモンゴルで、UDPなぜ私たちは耳を傾けなければなりませんか?TCPは、あなたがそれを必要としないUDPを監視しますか?引用:

サーバは、TCPの場合と同じアドレスとポートで待機しているという理由だけで、特定のアドレスとポートにUDPをリッスンする必要はありません。  
もちろん、サーバは特定のアドレスとポートにUDPをリッスンする必要がある他の理由があるかもしれません。

「送られた - で、」受信したパケットのIPとのソースフィールドが異なるIPアドレスを指定した場合4は、サーバは、いわゆる「受信」、フィールドを介してヘッドに増加させる必要がある実際の受信したパケットのIPを表し、このフィールドは使用されていますその白を言って、レスポンスが戻って、要求が受信された送信元アドレスに行かなければならなかったことを意味し、応答を返信するトランスポート層を助けるには、どこどこに戻って受信されます

 

 

(四)、サーバが応答を送信します

図1に示すように、接続は、トランスポンダのままである場合には、(例えば、TCP、SCTP、TLSなど)信頼性の高い伝送に基づいている場合、接続応答に基づいて、トランスポンダ

                                                                               そこには、接続、サーバーが再びではないとの接続を確立するために、」受信した場合、レスポンスを送信します

2は、Viaヘッダーフィールドは「MADDR」パラメータが含まれている場合、あなたはすべてのアドレスのリストに戻る必要がある、使用するポート番号は「送られた - で」された指定されたポート番号、指定されていない場合、ポート番号は5060です

3、信頼性の低いトランスポート、「送信-によって」ポート番号が指定されていない場合、それは5060であり、指定の指定されたアドレスとポート番号を「受信」に対する応答に基づいて、もしユニキャスト送信

図4は、ロゴを「受信」でない場合は、「送られた - で、」指定されたアドレスとポート番号で答えを与えます。

 

おすすめ

転載: www.cnblogs.com/shuiguizi/p/11201224.html