单播、广播、多播(组播)的概念和区别

单播、广播、多播(组播)的概念和区别

简单理解如下:

1.一台机器和一台机器通信这是单播。

2.一台机器发出的数据包能被多台机器收到这就叫组播。

一个机器发送,多台机器接收,但是又不同于广播,

发送端的IP设置在一个范围内都算组播,这个范围是224.0.0.0~239.255.255.255

3.一台机器发出的数据包能被一个网段的机器收到这叫广播

单播(unicast)

单播是说,对特定的主机进行数据传送。

如给一个主机发送IP数据包。

数据链路层会给出网卡的MAC地址(除了FF-FF-FF-FF-FF-FF这个地址之外的MAC地址)

1.具有路由功能的主机可以将单播数据定向转发。

2.目的主机的网络接口则可以过滤掉和自己MAC地址不一致的数据。

 

广播(broadcast)

广播是主机针对某一个网络上的所有主机发送数据包。

这个网络可能是网络,可能是子网,还可能是所有的子网。

如果是网络,例如A类网址的广播就是 netid.255.255.255,

如果是子网,则是netid.netid.subnetid.255;

如果是所有的子网(B类IP)则是则是 netid.netid.255.255。

广播所用的MAC地址FF-FF-FF-FF-FF-FF。

网络内所有的主机都会收到这个广播数据,

网卡只要把 MAC地址为FF-FF-FF-FF-FF-FF的数据交给内核就可以了。

一般说来ARP,或者路由协议RIP应该是以广播的形式播发的。

 

多播(multicast)

多播又叫组播

可以说广播是多播的特例,多播就是给一组特定的主机(多播组)发送数据,

这样,数据的播发范围会小一些(实际上播发的范围一点也没有变小),

多播的MAC地址是最高字节的低位为一,例 如01-00-00-00-00-00。

多播组的地址是D类IP(D类IP多用于组播(多播))

规定是224.0.0.0-239.255.255.255。

然多播比较特殊,但是究其原理,多播的数据还是要通过数据链路层进行MAC地址绑定然后进行发送。

所以一个以太网卡在绑定了一个多播IP地址之后,必 定还要绑定一个多播的MAC地址,

才能使得其可以像单播那样工作。这个多播的IP和多播MAC地址有一个对应的算法,这个对应不是一一对应的,

主机还是要对多播数据进行过滤。

广播和多播的性质一样,路由器会把数据放到局域网里面,

然后网卡对数据进行过滤,只拿到自己需要的数据,比如自己感兴趣的多 播数据,

自己感兴趣的组播数据。当一个主机运行了一个处理某一个多播IP的进程的时候,

这个进程会给网卡绑定一个虚拟的多播mac地址,并做出来一个多播 ip。

这样,网卡就会让带有这个多播mac地址的数据进来,从而实现通信,

而那些没有监听这些数据的主机就会把这些数据过滤掉

组播

    为了减少在广播中涉及的不必要的开销,

可以只向特定的一部分接收方(可以是域内也可以是域间)发送流量,

这被称为组播

组播状态(multicast state)(信息)必须由主机和路由器来保持,

以搞清楚哪些接收方对哪类流量感兴趣。

这个信息作为主机和路由器中的软状态来维持,

这意味着它必须定期更新(当这种情况发生时,

组播流量的交付要目停止要目恢复为广播)。

如果正确地使用组播,

只有那些在通信中参与或感兴趣的主机需要处理相关的分组,

流量只会被承载于它将被使用的链路上,

并且只有任意组播数据报的一个副本被承载于这样的链路上。

 

 

发布了150 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43309149/article/details/104500540
今日推荐