简体   繁体   English

IP组播和基本组播(B组播)之间的区别

[英]Difference between IP multicast and Basic multicast(B-Multicast)

What is the difference between multicast and Basic multicast(B-Multicast)? 组播和基本组播(B-Multicast)有什么区别?

How each of them works exactly? 他们每个人都是如何工作的?


This is related to distributed systems. 这与分布式系统有关。 We have basic multicast which just deliver the message with basic guarantees and reliability. 我们有基本的多播,仅通过基本的保证和可靠性传递消息。 Since the process is alive and doesn't crash the message will be delivered. 由于该过程是活动的,并且不会崩溃,因此将传递消息。 However, if the process crashes there is no guarantee for reliability. 但是,如果进程崩溃,则不能保证可靠性。 Therefore, the term R-multicast(reliable multicast) was introduced. 因此,引入了术语R-multicast(可靠组播)。 The R-multicast brings advance reliability by using the concepts of ATOMIC. R-multicast通过使用ATOMIC的概念提高了可靠性。 It relies on some features such as integrity, Validity. 它依赖于某些功能,例如完整性,有效性。 Moreover, there is an agreement which says each of the members of the group also multicast the message after being delivered. 而且,有一个协议说该组的每个成员在传递完消息后也都对该消息进行多播。 This agreement brings 100% integrity.In addition, it can be implemented over either B-multicast or IP multicast such as R-IP multicast vs RB Multicast. 该协议带来了100%的完整性。此外,它可以通过B组播或IP组播(例如R-IP组播与RB组播)来实现。 In RB multicast the sender will be imploded by acks when the infra is scalable whereas in R multicast over IP multicast since the omissionn and failure of the message is low, due to the IP multicast tech, only NACK will be sent back. 在基础设施可扩展时,在RB多播中,发件人将被acks内塞;而在IP多播上的R多播中,由于消息多播和失败少,由于IP多播技术,仅NACK将被发回。 After all, I want to know the differences between IP multicast and B-multicast. 毕竟,我想知道IP多播和B多播之间的区别。 How they exactly work? 它们是如何工作的? I know the concepts as is written but need more detail. 我知道所写的概念,但需要更多细节。

The difference between IP multicast and basic multicast is related to where in the network stack the multicast is occurring. IP多播和基本多播之间的差异与播在网络堆栈中的位置有关。

In the case of IP multicast, this occurs at the network layer, ie IP. 在IP多播的情况下,这发生在网络层,即IP。 For IPv4, addresses in the range 224.0.0.0/4 ( 224.0.0.0 - 239.255.255.255 ) are multicast addresses. 对于IPv4,在范围内的地址224.0.0.0/4224.0.0.0 - 239.255.255.255 )是多播地址。 For IPv6, the addresses are in the FFxx::/16 range. 对于IPv6,地址在FFxx::/16范围内。 Packets with destination addresses in this range are sent to multiple hosts as requested via IGMP messages. 目的地地址在此范围内的数据包根据IGMP消息的请求发送到多个主机。

Basic multicast refers to multicasting at the link layer or below. 基本组播是指链路层以下的组播。 In the case of Ethernet, any frame where the least significant bit of the first byte of the destination address are sent to all nodes in the network. 在以太网的情况下,将目标地址的第一个字节的最低有效位发送到网络中所有节点的任何帧。

When Ethernet frames carry IPv4 multicast data, the destination addresses are in the range 01:00:5E:00:00:00 - 01:00:5E:7F:FF:FF , while frames with IPv6 multicast data have addresses in the 33:33:xx:xx:xx:xx range. 当以太网帧承载IPv4多播数据时,目标地址的范围为01:00:5E:00:00:00 01:00:5E:7F:FF:FF ,而具有IPv6多播数据的帧的地址为33:33:xx:xx:xx:xx范围。 There are other addresses used for other link-layer protocols, such as spanning tree or Ethernet flow control. 还有其他地址可用于其他链路层协议,例如生成树或以太网流控制。

Some physical layers such as terrestrial wireless or satellite are inherently broadcast. 某些物理层(例如地面无线或卫星)是固有广播的。

See here more detail on different types of multicast addresses . 有关不同类型的多播地址的详细信息,请参见此处。

As far as reliable multicast goes, that's an application level construct built on top of multicast. 就可靠的多播而言,这是在多播之上构建的应用程序级别构造。 Since IP is inherently unreliable, reliable multicast built on top of IP needs to account for this unreliability. 由于IP本质上是不可靠的,因此需要建立在IP之上的可靠多播来解决这种不可靠性。 Most multicast technologies at lower levels are also unreliable and thus need application layer reliability as well. 大多数较低级别的多播技术也不可靠,因此也需要应用程序层可靠性。

As for IPv4 -- it's similar in IPv6 至于IPv4-与IPv6类似

Multicast addresses Theses correspond to the class D. The class D: 组播地址这些对应于类D。类D:

  • First octet: 224 - 239 第一个八位位组:224-239
  • First octet pattern: 1110* 第一个八位位组模式:1110 *
  • These IP addresses are multicast addresses. 这些IP地址是多播地址。

there are used for specific (routing protocol, service discovery, NTP), sometimes experimental, use-cases. 这些用于特定的(路由协议,服务发现,NTP),有时是实验用例。

Network nodes must perform a join(multicast-address) call in order to receive packet sent to the address multicast-address . 网络节点必须执行join(multicast-address)调用才能接收发送到地址multicast-address的数据包。 There can be many multicast addresses present in a network. 网络中可能存在许多多播地址。

Broadcast address 广播地址

There is only one broadcast address in every network. 每个网络中只有一个广播地址。 This address is constructed with all its host-part IP address bits set to 1 . 该地址的所有主机IP地址位都设置为1

If the network is 192.168.0.0/24 the last octet is the host-part IP address (and the first three ones are the network-part IP address). 如果网络是192.168.0.0/24,则最后一个八位位组是主机部分的IP地址(前三个字节是网络部分的IP地址)。 The broadcast address is then 192.168.0. 广播地址为192.168.0。 255 . 255

The broadcast address is used to send packet to all the nodes within the LAN , not further, not only the nodes that would had performed a join(multicast-address) call -- that make no sense. 广播地址用于将数据包发送到LAN内的所有节点,不仅用于将要执行join(multicast-address)调用的节点,而且没有意义。


More details on this answer . 有关此答案的更多详细信息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM