单播|组播(多播)|广播|任播的小结

单播(unicast)

单播是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用单播传输,例如一切基于TCP的协议。

在单播通信中,每次只有两个实体相互通信,发送端和接收端都是唯一确定的。在IPv4网络中,0.0.0.0到223.255.255.255属于单播地址。你对小月月喊“小月月”,那么只有小月月回过头来答应你。

组播(multicast)

组播(multicast)也叫多播, 多点广播或群播,指把信息同时传递给一组目的地址。它使用策略是最高效的,因为消息在每条网络链路上只需传递一次,而且只有在链路分叉的时候,消息才会被复制。

“组播”这个词通常用来指代IP组播。IP组播是一种通过使用一个组播地址将数据在同一时间以高效的方式发往处于TCP/IP网络上的多个接收者的协议。此外,它还常用来与RTP等音视频协议相结合。组播报文的目的地址使用D类IP地址, D类地址不能出现在IP报文的源IP地址字段。你在大街上大喊一声“美女”, 会有一群女性回头看你。

广播(broadcast)

广播(broadcast)是指封包在计算机网络中传输时,目的地址为网络中所有设备的一种传输方式。实际上,这里所说的“所有设备”也是限定在一个范围之中,称为“广播域”。

并非所有的计算机网络都支持广播,例如X.25网络和帧中继都不支持广播,而且也没有在“整个互联网范围中”的广播。IPv6亦不支持广播,广播相应的功能由任播(anycast)代替。通常,广播都是限制在局域网中的,比如以太网或令牌环网络。因为广播在局域网中造成的影响远比在广域网中小得多。你在公司大喊一声“放假了”, 全部同事都会响应,大叫爽死了。

广播地址(Broadcast Address)是专门用于向网络中所有工作站发送消息的一个地址。在使用TCP/IP协议的网络中,主机标识段host ID为全1的IP地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。例如,对于10.1.1.0(255.255.255.0)网段,其广播地址为10.1.1.255(255 即为2进制的11111111),当发出一个目的地址为10.1.1.255的分组(封包)时,它将被分发给该网段上的所有计算机。

在Linux中是ifconfig可以查看一个网卡配置的广播地址,或者为某一块网卡配置广播地址。举例来说,

ifconfig eth0 10.0.0.1 broadcast 10.0.0.255 netmask 255.255.255.0  #为10.0.0.1的网卡配置广播地址为10.0.0.255

任播(anycast)

任播(anycast)是一种网络寻址和路由的策略,使得资料可以根据路由拓朴来决定送到“最近”或“最好”的目的地。

在单播中,在发送者和接收者之间存在一一对应的关系。在广播和组播中,在发送者和接收者之间存在一对多的关系,发送者对应一群可以接收消息的节点。在任播中,在发送者和接收者之间存在一对多的关系,发送者对应一群接收节点,但在任何给定时间,只有其中之一可以接收到传送端发来的消息。

在互联网中,通常使用边界网关协议来实现任播。作为老板,你在公司大喊一声“开发组的过来一个人”, 总会有一个人灰溜溜去响应, 挨批还是发钱啊?

一点闲杂

(1) 广播域

广播域是网络中的一组设备的集合,即同一广播包能到达的所有设备成为一个广播域。二层网络上有广播域,广播帧的目标MAC地址是FF:FF:FF:FF:FF:FF。IP层网络也有广播域名,广播数据包的目标IP地址是255.255.255.255。

一个二层网络(以太网)内就是一个广播域。在二层网络继续划分出来的逻辑二层网络,逻辑二层网络也就是VLAN,每一个VLAN内也是一个隔离广播域。其实觉得VLAN这个缩写不太对,LAN是局域网,局域网/城域网/广域网是计算机网络范围的界定,局域网可能是一个区域的网络,可能有多个子网,也就是一个很大的网络,比如一个校园网也是一个局域网。VLAN应该算是虚拟二层网络或逻辑二层网络。

学习资料参考于:
http://colobu.com/2014/10/21/udp-and-unicast-multicast-broadcast-anycast/