多播路由
IP多播
IP多播是实现数据一对多通信的模式。从一个源点传送到多个目的地,数据仅仅拷贝一份。
多播组
实现多播,必定就须要有多播组。多播组须要有自己的标识符。而多播组IP即为多播组的标识符,一个多播组IP代表一个多播组。
D类IP地址即为多播组IP地址。D类地址前四位为1110,范围是 224.0 .0 .0到 239. 255. 255. 255。当中部分地址被IANA指派为特定的用途:
多播组 | 描述 |
---|---|
224.0.0.0 | 基地址 ( 保留) |
224.0.0.1 | 在本子网上的全部參加多播的主机和路由器 |
224.0.0.2 | 在本子网上的全部參加多播的路由器 |
224.0.0.3 | 未指派 |
224.0.0.4 | DVMRP 路由器 |
224.0.0.0 ~ 224.255.255.255 | 为特殊用途的地址 |
224.0.1.0 ~ 238.255.255.255 | 全球范围都可使用的多播地址(公网) |
239.0.0.0 ~ 239.255.255.255 | 限制在一个组织的范围(私网) |
224.0.0.22 | IGMPv3全部组播路由器(IGMPv3成员报告的目的地址) |
局域网使用硬件多播
IANA 拥有的以太网多播地址(mac 地址)的范围是从 01-00-5E-00-00-00
到 01-00-5E-7F-FF-FF
,
因此每个地址仅有23位
能够用于标识多播组地址。而D类地址能够有28位
(32-4)用于标识多播组,因此D类地址与多播组mac地址不是一对一的关系
4 4 3 3 3 2 2 1 1 0 0 0
7 0 9 2 1 4 3 6 5 8 7 0
multicast ip address : 1110xxxx x####### ######## ########
multicast mac address: 00000001 00000000 01011110 0####### ######## ########
^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^^
multicast |<0x5E>| |<23bits copyed from ip>|
# 设置多播路由
ip route add 224.0.0.0/4 dev eth0
# 开启转发
echo 1 > /proc/sys/net/ipv4/ip_forward
# ping 本子网上的全部參加多播的主机和路由器
ping 224.0.0.1 -c 2
```bash
ref:
[IP多播(组播)](http://www.cnblogs.com/hrhguanli/p/4090265.html)