在分布式系统类中,我们讨论了一种算法,用于创建一个算法,用于执行容忍进程失败的多播,并且仍然保证如果有人收到多播,那么每个人都会完成一次。
但是,此算法依赖于可靠的单播。如果不是可靠的单播我们有一个可以随机丢弃数据包的有损单播,有没有办法构建具有相同属性的多播算法?
答案 0 :(得分:2)
通常可靠的单播(如TCP,RUDP)是在不可靠的单播(IP)之上实现的。
所以,是的,您可以在不可靠的单播之上实现您的多播算法,但这可能意味着您必须复制可靠的单播协议提供的功能。这主要意味着要注意如果数据包被丢弃,发送者将重新发送它。
请注意,“可靠”协议提供的保证通常相当薄弱(尽力交付)。如果基础网络通信变得足够紧密,以至于您无法可靠地获取数据,那么它就会放弃。