Algorithm 了解尼尔·弗雷泽';s差分同步算法
我正试图完全理解,尤其是保证交付方法(第4节) 我不明白为什么在同步周期的上半部分需要编辑堆栈 编辑堆栈的目的如下(复制自第4节第二段): […]在数据包丢失的情况下,编辑在堆栈中排队,并在每次同步时重新传输给远程方,直到远程方返回接收确认 这是有道理的。但后来在第六段(丢失的返回包案例)中说: 这表示以前的响应一定已丢失。因此,服务器删除其编辑堆栈,并将备份卷影复制到卷影文本中(步骤4) 因此,据我所知:Algorithm 了解尼尔·弗雷泽';s差分同步算法,algorithm,synchronization,Algorithm,Synchronization,我正试图完全理解,尤其是保证交付方法(第4节) 我不明白为什么在同步周期的上半部分需要编辑堆栈 编辑堆栈的目的如下(复制自第4节第二段): […]在数据包丢失的情况下,编辑在堆栈中排队,并在每次同步时重新传输给远程方,直到远程方返回接收确认 这是有道理的。但后来在第六段(丢失的返回包案例)中说: 这表示以前的响应一定已丢失。因此,服务器删除其编辑堆栈,并将备份卷影复制到卷影文本中(步骤4) 因此,据我所知: 正常操作期间:编辑堆栈(上半部分)将包含一个条目,在下一个同步周期中确认并删除该条目
- 正常操作期间:编辑堆栈(上半部分)将包含一个条目,在下一个同步周期中确认并删除该条目
- 如果出现网络错误:客户端无法确认编辑堆栈,服务器将简单地清除它
我肯定我错过了一些重要的事情。请帮助我。您的观点对于客户机-服务器体系结构是有效的。服务器的
编辑
堆栈是从更通用的对称表示中保留下来的,其中客户端和服务器都具有相同的功能和结构(特别是其中任何一方都可以发起通信)。虽然客户机的备份卷影
最好在客户机-服务器设置中删除,以节省空间/时间,编辑
仍然可以使用堆栈数据结构,没有任何缺点,并且具有一致的API优势。请注意,该算法可追溯到大约2009年。今天(2017年),您可能会选择使用WebSockets或WebRTC。差分同步算法预期并适应这样的设置,其中双方基本上是对等的,并且遵循相同的协议