当您需要可靠的UDP时,您会使用什么?

当您需要可靠的UDP时,您会使用什么?

如果您的TCP连接可能太慢并且UDP“连接”可能太不可靠,您使用什么?有各种标准的可靠UDP协议,你有什么经验吗?

请在每个回复中讨论一个协议,如果其他人已经提到您使用的协议,则考虑将其投票并使用评论进行详细说明(如果需要)。

我对这里的各种选项感兴趣,其中TCP位于规模的一端而UDP位于另一端。提供了各种可靠的UDP选项,每个选项都带有TCP到UDP的一些元素。

我知道TCP通常是正确的选择,但是有一个备选列表通常可以帮助我们得出结论。像UDP,RUDP等基于UDP构建的东西各有利弊,你使用它们,你的经历是什么?

为避免疑问,没有更多的信息,这是一个假设的问题,我希望这个问题会引出一份回复清单,详细说明需要做出决定的人可以使用的各种选项和备选方案。


Cats萌萌
浏览 515回答 3
3回答

30秒到达战场

如果没有关于问题领域的一些额外信息,很难回答这个问题。例如,您使用的数据量是多少?多常?数据的性质是什么?(例如,它是唯一的,一个是关闭数据吗?还是一个样本数据流?等等)你在开发什么平台?(例如,桌面/服务器/嵌入式)要确定“太慢”的含义,您使用的网络介质是什么?但在(非常!)一般术语中,我认为你必须非常努力地尝试使用tcp来提高速度,除非你可以对你试图发送的数据做出一些严格的假设。例如,如果您尝试发送的数据是这样的,您可以容忍丢失单个数据包(例如,采样率比信号带宽高很多倍的定期采样数据)那么您可能通过确保您可以检测到数据损坏(例如,通过使用好的crc)来牺牲一些传输可靠性但是如果你不能容忍丢失单个数据包,那么你将不得不开始介绍tcp已经拥有的可靠性技术类型。并且,如果不进行合理的工作量,您可能会发现您已经开始将这些元素构建到用户空间解决方案中,并解决所有固有的速度问题。

繁星点点滴滴

任何决定上面的列表不够并且他们想要开发他们的OWN可靠UDP的人肯定应该看看Google QUIC规范,因为这涵盖了许多复杂的角落案例和潜在的拒绝服务攻击。我还没有玩过这个的实现,你可能不想要或者不需要它提供的所有东西,但是在开始一个新的“可靠的”UDP设计之前,这个文件非常值得一读。在Chromium博客上,QUIC的一个很好的起点就在这里。可以在此处找到当前的QUIC设计文档。

人到中年有点甜

RUDP。许多用于游戏的套接字服务器实现了类似
打开App,查看更多内容
随时随地看视频慕课网APP