WCF中的传输协议

use*_*187 8 wcf

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

Mic*_*eld 8

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

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

在这种情况下,将TCP传输称为"原始TCP"传输可能更合适.它采用了常规的,低级别的二进制消息格式所独有的WCF,并具有比其他传输协议的要低得多开销.从技术上讲,该消息格式是在TCP之上分层的应用程序协议,但它没有名称,并且完全是WCF的内部,因此它简称为"TCP传输协议".