【问题标题】:Does the WCF HTTP binding run on TCP?WCF HTTP 绑定是否在 TCP 上运行?
【发布时间】:2013-01-26 19:23:44
【问题描述】:
我试图了解 WCF 中标准绑定之间的区别。作为其中的一部分,我正在阅读WCF Bindings in Depth。图 2 显示了传输是 HTTP 的绑定和一些是 TCP 的绑定。我很困惑 b/c 我认为 HTTP 是一个应用程序级协议,而不是一个传输协议——而且 HTTP 运行在 TCP 之上。那么通过将其称为 HTTP 绑定,我们是否可以理解它实际上是在 TCP 之上的 HTTP 上运行的?
【问题讨论】:
标签:
wcf
http
tcp
wcf-binding
【解决方案1】:
所以通过称它为 HTTP 绑定,我们是否理解它是
实际运行在 TCP 之上的 HTTP 上?
是的,没错。但这是隐含的。因为 HTTP 运行在 TCP 之上。
二进制绑定(例如netTcpBinding)直接在 TCP 上运行。他们根本不使用 HTTP。
【解决方案2】:
tcp/ip 包含 4 层:
application
transport
network
data link
您可以使用任何层,但 wcf 具有使用传输层和应用层的绑定,f.e. netTcpBinding 和 wsHttpBinding
tpc/ip 不在同一个 tcp 层
application layer protocols f.e.: HTTP, RTP, FTP, DNS
transport layer protocols f.e.: TCP, UDP, SCTP, DCCP
所以http可以基于UDP协议,它将是wsHttpBinding
或者如果你选择 tcp 它将是netTcpBinding,这个层在 http 的下面,并且应用程序是多余的