在多播的情况下,接收消息的过程和传递消息的过程之间有什么区别?
最佳答案
分布式计算中的多播通常假定网络和应用程序之间的协议(protocol)层提供了某些保证,例如因果顺序。该协议(protocol)层可能会延迟从网络到达的消息,忽略消息,使用其他控制消息,...通常,这是最重要的层,需要有趣的算法。
在这种情况下,当描述此类算法时,接收(和发送)是协议(protocol)层和基础网络 channel 之间的接口(interface)。传递(和多播)是协议(protocol)层和应用程序之间的接口(interface)。因此,这是一种命名约定,可以轻松地区分消息到达的不同层次,而不必说“协议(protocol)接收”(又名“接收”)和“应用程序接收”(又称“交付”)。
一个示例:假设您正在强制执行因果关系,并且具有m1->m2
。现在假设m2
在m1
之前到达了进程p(即被进程p接收)。 m2
无法立即显示给应用程序(即已交付)。它只能在收到m1
之后再交付,然后再交付。
关于distributed-computing - 分布式多播中的 “receive”和 “deliver”有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10438914/