在this的文章中(接近尾声的“Windows Communication Foundation”部分),作者建议WCF中的单向传输本质上是UDP。这是正确的吗?根据本文的内容,我是否应该假设将我的服务操作标记为“one way”意味着我正在使用UDP?
此外,他建议将UDP与WS-ReliableMessaging结合使用,以消除自己编写传输协议的这些方面的需要……好的,但是如果我想在必要的情况下利用UDP的性能优势,那么按照本文的建议,我应该只使用“one way”和WS-ReliableMessaging,就可以了!?对我来说听起来有点牵强...
那么这是怎么回事呢?本文建议的注意事项是什么?
发布于 2012-01-10 07:02:01
不,你误解了这篇文章。这篇文章说的是两件不同的事情:
即使是单向操作也需要确认、重传等才能使其可靠。
发布于 2012-01-10 06:59:37
从你提到的那篇文章:
TCP公开了多个网络协议(尤其是
),并且可以通过编写WCF传输通道扩展到其他网络协议。WCF通过其可扩展性模型支持UDP,基本UDP通道的代码将作为WinFX®SDK中的代码示例提供。
他们在他们的设置中使用UDP传输,所以在他们的情况下,是的。如果您的服务使用基于TCP的传输,那么单向通信将不是UDP。
并在文章中进一步介绍:
基于WCF的UDP实现是一个单向通道。
因此,他们实际上只是在谈论WCF中的UDP是如何实现的,而不是一般的WCF。
发布于 2012-01-10 07:00:00
WS-ReliableMessaging依赖于接收方将确认(‘back’)发送回发送方。否则,发送者将无法知道该消息是否需要重新发送。在TCP中,这是内置在传输协议中的(这是TCP和UDP之间的区别之一)。
在UDP中,你放弃了TCP的“开销”,但如果你需要可靠的消息传递,你的服务器仍然会向客户端发回一些东西。
https://stackoverflow.com/questions/8796318
复制相似问题