1 前言
上文因为篇幅和组播特性的问题,我只写了单播和广播的实例程序,所以这篇主打UDP组播的程序实现和相关讲解。
2 组播的特性
在上一篇文章中,给出了组播示意图,简单表示了组播的原理。UDP组播是主机之间 一对一组 的通信模式,当多个客户端加入由一个组播地址定义的多播组之后,客户端向组播地址和端口发送的UDP数据报,组内成员都可以接收到,其功能类似于QQ群。
组播报文的目的地址使用D类IP地址,D类地址不能出现在IP报文的源IP地址字段。用同一个IP多播地址接收多播数据报的所有主机构成了一个组,称为多播组(或组播组)。所有的信息接收者都加入到一个组内,并且- -旦加入之后,流向组地址的数据报立即开始向接收者传输,组中的所有成员都能接收到数据报。组中的成员是动态的,主机可以在任何时间加入和离开组。
所以,采用UDP组播必须使用一个组播地址。组播地址是D类IP地址,有特定的地址段。多播组可以是永久的也可以是临时的。多播组地址中,有一部分由官方分配,称为永久多播组。永久多播组保持不变的是它的IP地址,组中的成员构成可以发生变化。永久多播组中成员的数量可以是任意的,甚至可以为零。那些没有保留下来的供永久多播组使用的IP组播地址,可以被临时多播组利用。关于组播IP地址,有如下的一些约定:
- 224.0.0.0~ 224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0 保留不做分配,其他地址供路由协议使用;
- 224.0. 1.0~ 224.0.1.255是公用组播地址,可以用于Inte