在多播环境中,接收消息的进程和发送消息的进程之间有什么区别?
答案 0 :(得分:12)
分布式计算中的多播通常假设某些保证(例如因果顺序)由网络和应用程序之间的协议层提供。此协议层可能会延迟从网络到达的消息,省略消息,使用其他控制消息,......通常,这是最重要的层,需要有趣的算法。
在此上下文中,在描述此类算法时, receive (和send)是协议层与底层网络通道之间的接口。 Deliver (和多播)是协议层和应用程序之间的接口。因此,它是一种命名约定,可以轻松区分消息到达不同层,而不必说“在协议中接收”(又名接收)和“在应用程序中接收”(又名< EM>递送)。
示例:假设您正在执行因果关系并且m1->m2
。现在假设m2
在m1
之前到达(即接收)进程p。 m2
无法立即向应用程序显示应用程序(即已发送)。只有在<{1}} 之后