组播通信

[原文:http://linux.chinaitlab.com/administer/5573.html]

摘要:
  
   本文可做为TCP/IP组播技术的入门材料,文中介绍了组播通 信的概念及原理,以及用于组播应用编程的Linux API的详细资料。为了使读者更加完整的了解Linux 组播的整体概念,文中对实现该技术的核心函数也做了介绍。在文章的最后给出了一个简单的C语言套接字编程例子,说明如何创建组播应用程序。
  
  一、导言
  
  在网络中,主机间可以用三种不同的地址进行通信:
  
  单播地址(unicast):即在子网中主机的唯一地址(接口)。如IP地址:192.168.100.9或MAC地址:80:C0:F6:A0:4A:B1。
  
  广播地址:这种类型的地址用来向子网内的所有主机(接口)发送数据。如广播IP地址是192.168.100.255,MAC广播地址:FF:FF:FF:FF:FF。
  
  组播地址:通过该地址向子网内的多个主机即主机群(接口)发送数据。
  
   如果只是向子网内的部分主机发送报文,组播地址就很有用处了;在需要向多个主机发送多媒体信息(如实时音频、视频)的情况下,考虑到其所需的带宽,分别 向每一客户端主机发送数据并不是个好办法,如果发送主机与某些接收端的客户主机不在子网之内,采用广播方式也不是一个好的解决方案。
  
  二、组播地址
  
  大家知道,IP地址空间被划分为A、B、C三类。第四类即D类地址被保留用做组播地址。在第四版的IP协议 (IPv4)中,从224.0.0.0到239.255.255.255间的所有IP地址都属于D类地址。
  
  组播地址中最重要的是第24位到27位间的这四位,对应到十进制是224到239,其它28位保留用做组播的组标识,如下图所示:
   


  图1 组播地址示意图
  
  IPv4的组播地址在网络层要转换成网络物理地址。对一个单播的网络地址,通过ARP协议 可以获取与IP地址对应的物理地址。但在组播方式下ARP协议 无法完成类似功能,必须得用其它的方法获取物理地址。在下面列出的RFC文档中提出了完成这个转换过程的方法:
  
  RFC1112:Multicast IPv4 to Ethernet physical address correspondence
  RFC1390:Correspondence to FDDI
  RFC1469:Correspondence to Token-Ring networks
  
  在最大的以太网地址范围内,转换过程是这样的:将以太网地址的前24位最固定为01:00:5E,这几位是重要的标志位。紧接着的一位固定为0,其它23位用IPv4组播地址中的低23位来填充。该转换过程如下图所示:
  


  图2 地址转换示意图
  
  例如,组播地址为224.0.0.5其以太网物理地址为01:00:5E:00:00:05。
  
  还有一些特殊的IPv4组播地址:
  
  224.0.0.1:标识子网中的所有主机。同一个子网中具有组播功能的主机都是这个组的成员。
  
  224.0.0.2:该地址用来标识网络中每个具有组播功有的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值