繁体   English   中英

如何在 WCF 中实现可靠的 UDP 传输?

[英]How to implement a reliable UDP transport in WCF?

我正在寻找有关如何在 WCF 中实现可靠 UDP 传输的建议和方向。

我需要创建一个应用程序,其中客户端和服务器都需要相互提供服务,而 WCF 在我看来是一个非常好的选择。 我是 WCF 的新手,但我只知道非常基础的知识。 从我读过的内容来看,WCF 双工 TCP 通道创建了一个从客户端到服务器的 TCP 连接和另一个从服务器到客户端的用于回调的 TCP 连接,这对我来说是一个问题,因为客户端通常位于防火墙/路由器后面。 我正在考虑使用 UDP 传输来避免这个问题,因为 UDP 是无连接的,但我需要实现一个可靠的面向连接的 UDP 传输来完成我需要的。

我已经查看了MSDN 上自定义 UDP 传输示例,但我仍然不知道实现自定义传输需要什么,该自定义传输将支持与通常的 TCP 传输基本相同的功能,假设我已经知道如何实现UDP 的可靠性。


作为使用内置 TCP 传输完成我需要的可能替代方案,我已经阅读了有关长轮询的内容,但这似乎违反直觉,并且似乎给整个事情增加了不必要的复杂性。 不过,我愿意就 UDP 方法的替代方案提出建议。

您的想法很棒,而 UDP 协议本身并不可靠。 所以WCF双工通道都是基于TCP协议的。 正如文章中提到的,

对于 UDP 传输,唯一支持的 MEP 是数据报,因为 UDP 本质上是一种“即发即弃”协议。

据我所知,如果要保证UDP通信的可靠性,应用层协议应该完成Confirmation和超时重传机制。 这意味着我们应该考虑在应用层实现可靠的 UDP 传输(至少还没有正式实现)。
https://www.codeproject.com/Articles/331599/What-s-new-in-WCF-4-5-UDP-transport-support
https://docs.microsoft.com/en-us/dotnet/framework/wcf/extending/service-channel-listeners-and-channels

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM