首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可靠的UDP算法?

可靠的UDP算法?
EN

Stack Overflow用户
提问于 2013-07-29 20:37:22
回答 3查看 1.6K关注 0票数 1

我正在致力于建立可靠的UDP网络,我必须知道一些事情。我认为UDP可靠算法是这样工作的(我猜是IDK);

  • 服务器发送:(头:6)abcdef
  • 客户端接收:(标题:6)abdf,返回“我有4个数据,它们是abdf”。
  • 服务器发送:(报头:2)ce
  • 客户接收:(标题:2)ce,好的,我要把它们结合起来!

现在,这是可靠的UDP的真正方法吗?

someone)编辑(答案之后,也许这对我要使用很有帮助,因为可靠的UDP并不是处理操作的好方法。我会像不重要的时间变量一样发送位置。也许如果我为可靠的UDP创建一个算法,这个可靠的过程将需要3-4 UDP发送-recv,这意味着我可以在此时发送3-4其他不可靠的位置数据,并且我发送的数据很小,这比可靠的UDP更有效。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-29 20:41:12

要获得可靠的UDP,“真正的方法”是使用TCP。

如果您仍然希望在UDP上执行,可以通过发送带有消息的校验和来验证消息的完整性,然后在另一端重新计算校验和,以查看它是否与您发送的校验和匹配。

如果不匹配,请再次请求该数据包。请注意,这实际上是对TCP的重新发明。

票数 2
EN

Stack Overflow用户

发布于 2013-08-04 20:04:39

好吧,即使:

代码语言:javascript
复制
- Client receive: (header:6)abdf, sends back "I got 4 data, they are abdf"
- Server send: (header:2)ce

如果服务器不会接收您的响应(这可能发生在UDP中)怎么办?因此,如果您不关心连接的速度,那么切换到TCP是更好的选择。

票数 1
EN

Stack Overflow用户

发布于 2013-07-30 02:12:22

你的问题听起来像是为数据分发处量身定做的。

我会像不重要的时间变量一样发送位置

事实上,位置坐标是其许多供应商的流行示例。RTI有一个非常适合您的用例的演示。

是的,很多人听到"IDL“时都在呻吟,但我建议你公平地对待它。DDS不同于许多流行的发布/分发/etc协议,因为它不是简单的封装/管道。

我认为真正酷的是,很多逻辑和设计元素都会陷入“我如何反应底层网络或我的同龄人行为不当的问题?”DDS提供了一个优质的服务协商和挂钩,让您的代码反应时,QoS条款是不符合的。

我建议不要轻率地做这个决定,它比TCP、UDP、AMQP等复杂得多。但是如果你能够负担得起复杂性,并且能够在一个足够大的系统上摊销它--它可以支付真正的红利。

最后,DDS确实在UDP上传递了“可靠”的消息。它被设计为支持许多不同的传输,以及许多不同的QoS维度。当您看到这个服务所考虑的QoS的所有不同维度时,真是令人眼花缭乱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17933737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档