IP组播与组播协议

IP组播与组播协议

2008-4-27来源:不详 作者:佚名 点击:

  在Internet上,多媒体业务诸如:流媒体,视频会议和视频点播等,正在成为信息传送的重要组成部分。点对点传输的单播方式不能适应这一类业务传输特性--单点发送多点接收,因为服务器必须为每一个接收者提供一个相同内容的IP报文拷贝,同时网络上也重复地传输相同内容的报文,占用了大量资源。如图1.1所示。虽然IP广播允许一个主机把一个IP报文发送给同一个网络的所有主机,但是由于不是所有的主机都需要这些报文,因而浪费了网络资源。在这种情况下组播(multicast)应运而生,它的出现解决了一个主机向特定的多个接收者发送消息的方法。1989年,IETF通过RFC1112,定义了Internet上的组播方式。
   

  图1.1
  
  1. IP组播
    IP组播是指一个IP报文向一个“主机组”的传送,这个包含零个或多个主机的主机组由一个单独的IP地址标识。主机组地址也称为“组播地址”,或者D类地址。除了目的地址部分,组播报文与普通报文没有区别,网络尽力传送组播报文但是并不保证一定送达。
  
    主机组的成员可以动态变化,主机有权选择加入或者退出某个主机组。主机可以加入多个主机组,也可以向自己没有加入的主机组发送数据。主机组有两种:永久组和临时组。永久组的IP地址是周知的,由Internet管理机构分配,是保留地址。临时组的地址则使用除永久组地址外的非保留D类地址。
  
    IP组播分组在互联网上的转发由支持组播的路由器来处理。主机发出的IP组播分组在本子网内被所有主机组成员接收,同时与该子网直接相连的组播路由器会把组播报文转发到所有包含该主机组成员的网络上。组播报文传递的范围由报文的生存期值(TTL, Time-to-Live)决定,如果TTL值等于或者小于设置的路由器端口TTL门限值(TTL Threshold),路由器将不再转发该报文。
  
  2. 组播地址
    IP组播地址,或称为主机组地址,由D类IP地址标记。D类IP地址的最高四位为“1110”,起范围从224.0.0.0到239.255.255.255。如前所述,部分D类地址被保留,用作永久组的地址,这段地址从224.0.0.0-224.0.0.255。比较重要的地址有:
  
    224.0.0.1 - 网段中所有支持组播的主机
    224.0.0.2 - 网段中所有支持组播的路由器
    224.0.0.4 - 网段中所有的DVMRP路由器
    224.0.0.5 - 所有的OSPF路由器
    224.0.0.6 - 所有的OSPF指派路由器
    224.0.0.9 - 所有RIPv2路由器
    224.0.0.13 -所有PIM路由器
  
    临时主机组的组播地址由网络管理员选择,他需要保证这个地址在一定的范围内没有其他的主机组在使用这个组播地址。
  
    第2层的组播地址(组播MAC地址)可以从IP组播地址中衍生。计算方法是把IP地址的最后23位拷贝到MAC地址的最后23位,然后把这23位前面的那一位置为0。MAC地址的前24位必须为0x01-00-5E。例如:组播IP地址224.0.1.128,16进制表示为0xE0-00-01-10,最低的23位为0x00-01-10,计算得出的MAC地址为:0x01-00-5E-00-01-10。
  
  3.Internet组管理协议(IGMP)
    IGMP协议由主机成员关系协议发展而来,目前有两个版本:IGMPv1(RFC1112),IGMPv2 (RFC2326)。主机使用IGMP消息通告本地的组播路由器它想接收组播流量的主机组地址。如果主机支持IGMPv2,它还可以通告组播路由器它退出某主机组。组播路由器通过IGMP协议为其每个端口都维护一张主机组成员表,并定期的探询表中的主机组的成员,以确定该主机组是否存活。
  IGMP消息被置于IP报文中传送。IGMPv1的报文如图1.2所示。IGMPv1中定义了两种消息类型:主机成员询问和主机成员报告。当某主机想要介绍某个组播流量时,它向本地的组播路由器发送"主机成员报告"消息,告知欲接收的组播地址。组播路由器收到"主机成员报告"消息后把该主机加入指定的主机组,并在设定的周期内向组播地址224.0.0.1(代表所有支持组播的主机) 发送"主机成员询问"消息。主机如果还想继续接收组播流量,必须发送"主机成员报告"消息。
   
  IGMPv2的报文如图1.3所示。与IGMPv1不同的是它将版本字段和消息类型字段融合,把未使用字段作了"最大响应时间"字段。IGMPv2报文的消息类型字段定义了四种消息类型:
   
  图1.3
  
    0x11 - 成员询问
    0x12 - IGMPv1 成员报告
    0x16 - IGMPv2 成员报告
    0x17 - 退出主机组
    IGMPv2向前兼容IGMPv1协议, IGMPv1的设备可以接收处理IGMPv2的消息报文。 IGMPv2中允许路由器对指定的主机组地址做"成员询问",非该组的主机不必响应。如果某主机想退出,它可以主动向路由器发送"推出主机组"消息,而不必像IGMPv1中那样只能被动退出。
  
  4. CGMP协议
    在交换网络中,2层交换机可能即不了解哪个端口有哪些组播组,也不能在其源MAC地址表中找到组播MAC地址的表项。从而,交换机只能简单地把组播报文向所有端口转发,组播的优势将大大削弱。因此,Cisco提出CGMP协议,让组播路由器来配置交换机的组播转发表,从而彻底解决交换网络中的组播问题。
  
    CGMP ( Cisco Group management protocol)全称Cisco组管理协议,采用CGMP的路由器将主机加入或者退出组播组的IGMP消息通知交换机,交换机则根据该消息将该主机所在端口从组播转发表中加入或者删除。通过CGMP协议的使用,2层交换机可以掌握接收组播的主机的情况,从而提高整个网络的性能和利用率。
  
  5. 分布树(Distribution Tree)
    在传送组播分组时,指派路由器需要构造一个连接所有组播组成员的树。根据这个树,路由器得出转发分组的一条唯一路径。这个树就称为分布树。由于成员可以动态的加入和退出,分布树也必须动态更新。
  
    根据构造方法的不同,分布树分为源分布树(Source Distribution Tree)和共享分布树(Shared Distribution Tree)。源分布树以组播源为根节点构造到所有组播组成员的生成树,通常也称为最短路径树(SPT)。共享分布树,也称为RP树或基于核心的树(CBT, Core_based Tree)。它的构造方法是以网络中的某一个指定的路由器为根节点,该路由器称为集合点或中心点,由此节点生成包含所有组成员的树。使用共享分布树时,组播源需要首先把组播分组发送给集合点路由器,再由这个路由器转发给其他的组成员。
  
  6. 组播路由协议
    组播路由协议的主要任务就是构造组播的分布树,使组播分组能够传送到相应的组播组成员。根据对网络中的组播成员的分布和使用的不同,组播路由协议分为两类:密集模式路由协议(DM)和稀疏模式路由协议(SM)。
  
    DM路由协议通常用于组播成员较为集中、数量较多-网络的大部分用户、并且有足够带宽的网路环境,比如公司或园区的局域网。因此,DM路由协议用定期广播组播报文的方法维护组播分布树。DM协议只使用源分布树(SPT),组播流量被广播到网络中所有的组播路由器。DM路由协议有:
  
  DVMRP:距离向量组播路由协议。这是一种基于距离向量算法的组播路由协议。目前已基本上被PIM和MOSPF所取代。
  MOSPF:组播OSPF协议。
  PIM-DM:协议无关组播协议-密集模式。它不需要单独的组播协议,利用路由器上单播路由协议的路由表作反向路径转发检查,由此获得组播分布树。相比另两种协议,PIM-DM的开销要小很多,它用于组播源和目的非常靠近、接收者数量大于发送者数量并且组播流量比较大的环境中效果很好。
    在网路中稀疏分布、网络也没有充足带宽的情况,如广域网环境,可以使用SM路由协议。因此,SM路由协议采用选择性的建立和维护分布树的方式,由空树开始,仅当成员显式的请求加入分布树才做出修改。SM路由协议有:
  
  CBT:基于中心的分布树协议(RFC 2201)。协议由以一个中心的路由器为根构造一个共享分布树,所有的组播流量都经由这个中心路由器转发。
  PIM-SM:协议无关组播协议-稀疏模式。工作原理与PIM-DM类似,但专门针对稀疏环境优化。适用于组播组中接收者较少、间歇性组播流量的情况。不同于PIM-DM的广播方式,PIM-SM定义了一个集合点(RP),所有的接收者在RP注册,组播分组由RP转发给接收者。
  7.总结
    单个数据流可以发送到多个客户端的组播能力已成为大多数多媒体应用的传输手段。组播技术利用一个IP地址使IP数据报文发送到用户组。IP组播采用了特殊定义的目的IP地址和目的MAC地址。IGMP为客户端提供加入和离开组播组的方式。CGMP使路由器为交换机配置组播转发表,并告诉交换机当前的组播成员。指派路由器根据对网络中的组播成员的分布和使用的不同采用密集模式DM或稀疏模式SM组播路由协议来构造组播的分布树,而这个分布树将在源子网和组播组之间确定一条唯一路径以提高数据传输效率。

组播地址:
(1)每个组播群组对应一个唯一的D类地址
(2)地址没有结构,也没有管理信息
 (3)组播地址只能用作目的地址
(4)不生成关于组播数据报的ICMP报文
(5)地址分为两类:
    a、永久分配;b临时分配
永久地址:用于Internet的主要服务和基础设施的维护,
 如:224.0.0.1~224.0.0.255专用与组播路由协议和群组维护协议
临时分配:在需要时创建,当组成员为0时丢弃。

Internet群组管理协议IGMP
1、作用:在主机和路由器之间使用,负责报告动态组播组成员的信息。包括成员  
   的加入与退出,成员查询

2、IGMP是IP层的一部分


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Cloud的应用程序—上下文服务

2019独角兽企业重金招聘Python工程师标准>>> Spring Boot对于如何使用Spring构建应用程序有一个看法:例如它具有常规配置文件的常规位置,以及用于常见管理和监视任务的端点。Spring Cloud建立在此之上,并添加了一些可能系统中所有…

halcon圆环完整度检测

文章目录处理要求程序源码处理结果博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 处理要求 查找好的圆环,检测圆环不良 程序源码 read_image (Image, F:/HALCON/圆环完整性检测/6.bmp) rgb1_to_gray (Image, GrayImage) v…

圆环划痕检测halcon

文章目录处理要求处理源码处理效果博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 处理要求 查找圆环缺陷 处理源码 read_image (Image, F:/HALCON/圆环划痕处理/10_33221_ba4582f0e88ec79.bmp) rgb3_to_gray (Image, Image, Image, Image…

日志OLAP:在SQL中使用UDF, lambda函数使用案例

场景 日志服务内置了20类SQL函数。面对用户复杂的业务场景,例如使用json来沉淀业务数据,普通的SQL函数可能就无法满足需求,需要一些用户自定义处理逻辑。为了处理json类的业务数据,我们可以采用把json展开成多行的形式进行统计分析…

瓶子个数计数halcon

文章目录处理要求处理方法一源码效果方法二源码效果博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 处理要求 查找纸箱内瓶子个数 处理方法一 源码 dev_clear_window () dev_open_window (0, 0, 640*1.5, 512*1.5, black, WindowHandle…

halcon自动对焦算法

1、介绍 图像清晰度是衡量图像质量的一个重要指标,对于相机来说,其一般工作在无参考图像的模式下,所以在拍照时需要进行对焦的控制。对焦不准确,图像就会变得比较模糊不清晰。相机对焦时通过一些清晰度评判指标,控制镜…

HTML学习笔记06-连接

HTML超链接 HTML使用标签<a>来设置文本超链接。 超链接可以是文字&#xff0c;也可以是图片&#xff0c;点击这些内容跳转到新的文档或当前文档的某个部分 代码类似这样&#xff1a; <a href"url">连接文本</a> 实例&#xff1a; <!DOCTYPE HTM…

在Xcode中使用Git进行源码版本控制

在Xcode中使用Git进行源码版本控制 在应用程序开发过程中&#xff0c;很重要的一部分工作就是如何进行源码的版本控制。当代码出现问题时&#xff0c;我们就需要将代码恢复到原先正常的版本。如果是多个人共同开发一个项目&#xff0c;那么代码的控制就会非常复杂。幸运的是&am…

ASP.NET Web API之消息[拦截]处理(转)

出处&#xff1a;http://www.cnblogs.com/Leo_wl/p/3238719.html 标题相当难取&#xff0c;内容也许和您想的不一样&#xff0c;而且网上已经有很多这方面的资料了&#xff0c;我不过是在实践过程中作下记录。废话少说&#xff0c;直接开始。 Exception 当服务端抛出未处理异常…

死磕算法之快速排序

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/80851021 学习更多算法系列请参考文章&#xff1a;死磕算法之汇总篇 快速排序是一个运用了分治法和递归算法的排序方…

Windows操作系统安全加固

本文档旨在指导系统管理人员或安全检查人员进行Windows操作系统的安全合规性检查和配置。 1. 账户管理和认证授权 1.1 账户 默认账户安全 禁用Guest账户。禁用或删除其他无用账户&#xff08;建议先禁用账户三个月&#xff0c;待确认没有问题后删除。&#xff09;操作步骤 打开…

TI DAVINCI开发原理(总共5部分)

2011-06-03 11:14:17| 分类&#xff1a; TI 达芬奇视频处 | 标签&#xff1a; |字号大中小订阅 DAVINCI开发原理之一----ARM端开发环境的建立(DVEVM) 1. 对DAVINCI平台&#xff0c;TI在硬件上给予双核架构强有力的支撑&#xff0c;在DSP端用DSP/BIOS来支持音视频算法的运行…

模拟查找晶元的位置

通过模板匹配找到所有模板位置&#xff0c;并且当单击某个模板时&#xff0c;选中某个模板 read_image (Image, C:/Users/22967/Desktop/晶圆找位置/0.bmp) dev_close_window () dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle) dev_display (Image)* draw_cir…

初探数位dp

前言&#xff1a;这是蒟蒻第一次写算法系列&#xff0c;请诸位大佬原谅文笔与排版。 一、导入 在刷题的时候&#xff0c;我们有时会见到这样一类问题&#xff1a;在区间$[l,r]$内&#xff0c;共有多少个整数满足某种条件。如果$l$和$r$间的差很小&#xff0c;我们可以考虑暴力枚…

Java演示手机发送短信验证码功能实现

我们这里采用阿里大于的短信API 第一步&#xff1a;登陆阿里大于&#xff0c;下载阿里大于的SDK a、在阿里大于上创建自己的应用 b、点击配置管理中的验证码&#xff0c;先添加签名&#xff0c;再配置短信模板 第二步&#xff1a;解压相关SDK&#xff0c;第一个为jar包&#xf…

ELK日志分析系统(转)

原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://467754239.blog.51cto.com/4878013/1700828大纲&#xff1a; 一、简介 二、Logstash 三、Redis 四、Elasticsearch 五、Kinaba 一、简介 …

Glide使用总结

首先&#xff0c;添加依赖 implementation com.github.bumptech.glide:glide:4.5.0 annotationProcessor com.github.bumptech.glide:compiler:4.5.0之后添加访问网络权限 <uses-permission android:name"android.permission.INTERNET" />一、常用的方法 1、加…

Segments POJ 3304 直线与线段是否相交

题目大意&#xff1a;给出n条线段&#xff0c;问是否存在一条直线&#xff0c;使得n条线段在直线上的投影有至少一个公共点。 题目思路:如果假设成立&#xff0c;那么作该直线的垂线l&#xff0c;该垂线l与所有线段相交&#xff0c;且交点可为线段中的某两个交点 证明&#xff…

Linux Socket编程(不限Linux)

“一切皆Socket&#xff01;” 话虽些许夸张&#xff0c;但是事实也是&#xff0c;现在的网络编程几乎都是用的socket。 ——有感于实际编程和开源项目研究。 我们深谙信息交流的价值&#xff0c;那网络中进程之间如何通信&#xff0c;如我们每天打开浏览器浏览网页时&#xff…