组播技术(Multicast)是一种针对多点传输和多方协作应用的组通信模型,有高效的数据传输效率,是下一代Internet应用的重要支撑技术。早期的组播技术研究试图在IP层提供组播通信功能,但IP组播的实施涉及到对现有网络基础设施的调整,因此,大规模应用受到限制。随着P2P研究的兴起,基于应用层的组播技术逐渐受到广泛关注。应用层组播协议将组成员节点自组织成重叠网络(Overlay network) ,在主机节点实现组播功能,为数据多点并发传输提供服务。应用层组播是在应用层实现组播功能而不需要网络层的支持,这样就可以避免出现由于网络层迟迟不能 部署对组播的支持而使组播应用难以进行的情况。当然,应用层组播也有许多局限:一是端系统对IP网络的了解有限,节点参与组网时,只能通过探测获得一些网络性能参数,选取的逻辑链路难以优化;二是主机不了解IP网络的拓扑结构,只能通过带宽和时延等外在的特性参数,以启发式的方式建立重叠网络,逻辑链路不能较好地利用质量较好的底层网络资源,重叠网络的多条链路可能经过同一条物理链路。
当主机向组播组发送数据时,是将数据放在组播数据报中,组播数据报用于寻找组播组的地址。它与UDP数据报没有什么区别。大多数组播是音频或视频数据,或者是两者兼而有之。这些类型的数据相对来说数据量比较大,部分数据的丢失影响不大。如果在传输过程中有几个像素点,甚至是整帧的视频数据丢失,信号不至于模糊不清,不可辨识。因此,组播数据用UDP发送,尽管不可靠,但其传输速度要比面向连接的TCP发送数据的速度快3倍(只要思考一下就会知道,TCP上的组播几乎不可能。TCP要求主机确认接收,而在组播中处理确认绝对是一场噩梦)。如果应用组播传输数据又不能忍受数据的丢失,则需要判定数据在传输过程中是否受损以及如何处理数据的丢失。例如,若建立一个分布式缓冲系统,就可以简单决定具体是哪些文件没有真正达到客户机缓存。