簡體   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