繁体   English   中英

处理可靠性的序列ID

[英]sequence ID for handling reliability

我正在尝试找出一种处理UDP消息可靠性的简单方法。 我想我只给每个人发送一个测序ID,然后通过将ID与先前收到的ID进行比较,就可以发现丢失。 我通常只使用整数,但是它会无限期递增的想法并不适合我。

我可以使用base64,但这只会使它更具可读性,但并不能真正解决任何问题。

我还考虑过为日期戳添加前缀,但是在处理午夜左右收到的消息时,这会有点草率。

我觉得有人必须提出一个更好的解决方案,即使那只是坚持使用整数。

我偏爱此特定工作,是使用以高分辨率时间戳作为种子的递增(至少64位)整数序列。 这样,即使在发送端丢失状态,从该时间起重新播种该序列时,也很可能会简单地向前跳。 Lazarus Long可能会练习任何可能引起的10K年错误。 :-)

请记住,序列间隔检测本质上是一种优化。 发送端需要重新发送,直到接收到一个ack为止,而nack(用于间隙或损坏的数据报)仅会引起较早的重新发送。 (ZMODEM是此规则的罕见例外,它的默认操作模式是在流的末尾使用单个ack以及由nacks控制的所有其他重传;但是,作为文件传输协议,它实际上是一个巨大的优势多部分数据报。)

使用TCP? 这就是为什么TCP与UDP不同的原因

我并不是要讽刺,但这就是为什么存在TCP的原因。

暂无
暂无

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

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