使用TCP比HTTP更快地进行通信?

时间:2010-09-01 13:09:53

标签: wcf

WCF支持几种不同的通信协议。我的WCF服务仅部署在同一台机器上。我只想知道TCP是否比HTTP更有效,还是应该使用HTTP?

7 个答案:

答案 0 :(得分:9)

如果您的WCF服务位于同一台计算机上,请使用命名管道。我发现这个flow chart很有帮助。

WCF Binding Selection Flow Chart

答案 1 :(得分:4)

如果您的服务只能在同一台计算机上运行,​​请尝试使用NetNamedPipeBinding

当然,无论如何,您应该使用真实的测试数据来衡量您获得的性能。

答案 2 :(得分:4)

HTTP的优势 - 应用层(OSI model中的7) - 是

  • 通过文本命令(以及许多响应)接近用户(人)的使用
  • 例如,可以使用telnet(通过http协议到应用程序对话框的端口)并发出一些简单的命令来与远程服务器对话
  • http protocol为您提供其他复杂操作

HTTP(通常)基于TCP(传输)/ IP(网络)。因此,上述所有优点都会带来性能损失。您可以使用更多灵活协议(在用户/应用程序级别)定义自己的应用程序,但通常需要更多编程,例如处理已包含在HTTP中的问题。此外,正如名称​​ protocol 所暗示的那样,如果您定义一个协议,没有人会理解您自己的协议,这与http不同。您不仅需要设计,编程和构建服务器端,还需要设计和构建客户端。客户必须安装您的程序并使用它。

答案 3 :(得分:2)

HTTP建立在TCP之上,因此TCP肯定会更快。 HTTP也必须解析文本标题,这是另一堆花费的时间。如果您的用例允许,请使用TCP。

答案 4 :(得分:1)

HTTP是一种基于TCP的协议,因此最好不要在顶部添加额外的协议。另请参阅OSI Model

答案 5 :(得分:1)

您可以在此处清楚地看到HTTP位于TCP之上: http://en.wikipedia.org/wiki/OSI_model 要么 在这里更好: http://en.wikipedia.org/wiki/TCP/IP_model

答案 6 :(得分:1)

如前所述,TCP是传输控制协议,HTTP是顶级协议。您可以创建自己的自定义协议,因为它不会有一些http行李,因此可以更高效。我必须这样做才能从远程计算机上录制的视频流中获取帧编号。