WCF中的传输协议

时间:2012-08-29 13:34:11

标签: wcf

在学习WCF时,我发现WCF支持HTTP,TCP,命名管道和MSMQ作为传输协议。但是,Http是应用层协议,它使用TCP作为传输协议。 那么,什么--Http作为WCF中的传输协议 - 意味着,它使用TCP作为传输层。

1 个答案:

答案 0 :(得分:8)

从TCP网络堆栈的角度来看,您列出的所有内容都是通过TCP进行通信的应用层协议(至少在任何现代系统上)。

就WCF而言,这一切都不重要。这种意义上的“传输协议”正是所说的 - 它是一种用于将信息从端点传输到端点的协议。从这个意义上说,传输协议定义了诸如消息的内部结构,传递机制,可用的额外功能等等。当您查看所有这些方面时,HTTP,HTTPS,MSMQ和命名管道协议是各有不同。但在幕后,最终他们都将生成TCP数据包。 (您可以为使用UDP的WCF构建自定义传输,但我认为任何内置传输都不能这样做。)

在这种情况下,将TCP传输称为“原始TCP”传输可能更合适。它使用WCF独有的自定义低级二进制消息格式,并且具有比任何其他传输协议低得多的开销。从技术上讲,该消息格式是在TCP之上分层的应用程序协议,但它没有名称,并且完全是WCF内部的,因此它简称为“TCP传输协议”。