2012-08-29 9 views
7

WCFを学びながら、WCFはトランスポートプロトコルとしてHTTP、TCP、Named Pipes、MSMQをサポートしています.Httpはアプリケーションレイヤプロトコルであり、TCPをトランスポートプロトコルとして使用します。 WCFのトランスポートプロトコルとしてのHttpは、トランスポート層としてTCPを使用する場合を意味します。WCFのトランスポートプロトコル

答えて

8

TCP以外のネットワークスタックの観点から、あなたが挙げたものはすべて、TCP(少なくとも現代的なシステムで)を介して通信するアプリケーション層プロトコルです。

WCFに関する限り、それは重要ではありません。この意味での "トランスポートプロトコル"とは、情報をエンドポイントからエンドポイントに転送するためのプロトコルです。この意味では、トランスポートプロトコルは、メッセージの内部構造、配信メカニズム、追加機能の利用可能性などを定義します。これらのすべての側面を見ると、HTTP、HTTPS、MSMQ、およびNamed Pipesプロトコルはすべてが互いに異なっています。しかし、最終的にはすべてがTCPパケットを生成します。 (UDPを使用するWCF用のカスタムトランスポートを構築することはできますが、組み込みのものはそうすることはできません)

この状況では、TCPトランスポートを "raw TCP "トランスポート。 WCFに固有のカスタムの低レベルバイナリメッセージ形式を使用し、その他のトランスポートプロトコルよりもはるかに低いオーバーヘッドを持ちます。技術的には、そのメッセージ形式はTCPの上に階層化されたアプリケーションプロトコルですが、名前はなく、WCFの内部に完全に含まれているため、単に「TCPトランスポートプロトコル」と呼ばれています。

+0

ありがとう@Michaelしかし、どのプロトコルがnet.tcpバインディングのアプリケーション層にありますか。 – user1426187

+0

「WCFバイナリTCPプロトコル」は、他の正式名称はないと思います。 AFAIKは、バイナリメッセージのエンコーディング(コンパクトなXML-ishメッセージフォーマット)のみを許可しましたが、実際のプロトコルの仕組みまでは分かりません。もっと知りたい場合は、WCF参照ソースを取得し、 'NetTcpBinding'クラスを調べなければなりません。 –

関連する問題