IGMP使用详解备课讲稿.doc

IGMP使用详解备课讲稿.doc

ID:60789353

大小:186.00 KB

页数:5页

时间:2020-12-18

IGMP使用详解备课讲稿.doc_第1页
IGMP使用详解备课讲稿.doc_第2页
IGMP使用详解备课讲稿.doc_第3页
IGMP使用详解备课讲稿.doc_第4页
IGMP使用详解备课讲稿.doc_第5页
资源描述:

《IGMP使用详解备课讲稿.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、精品好文档,推荐学习交流IGMP一、Internet组管理协议IGMP是Internet组管理协议(InternetGroupManagementProtocol)的缩写。IGMP在TCP/IP协议中的位置:应用层协议(FTP,HTTP,SMTP)TCPUDPICMPIGMPIPARPRARPMACPHY在了解IGMP协议的之前,我们首先看看以太网对报文的处理方法。我们知道,目前使用的以太网(ethernet)有一个特点,当一个报文在一条线路上传输时,该线路上的所有主机都能够接收到这个报文。只是当报文到达MAC层时,主机会检测这个报文是不是发送给自

2、己的,如果不是该报文就会被丢弃。常用的抓包软件ethereal,sniffer都可以捕获当前物理线路上的所有报文,不管该报文的目的地址是不是自己。以太网中有一种特殊的报文广播包其目的mac地址全为0xff,所有的主机都必须接收。说到IGMP不能不提“组播”的概念。假如现在一个主机想将一个数据包发给网络上的若干主机,有什么方法可以做到呢?一个方法是采用广播包发送,这样网络上的所有主机都能够接收到,另一种方式是将数据包复制若干份分别发给目的主机。这两个方法都存在问题:方法一,广播的方法导致网络上所有的主机都能接收到,占用了网络上其他主机的资源。方法二,

3、由于所有目的主机接收的报文都是相同的,采用单播方式显然效率很低。为了解决上面所述的问题,人们提出了“组播”的概念,控制一个报文发送给对该报文感兴趣的主机,IGMP就是组播管理协议。我们来看一个简单的组播应用场景PC,如何处理呢?首先STB要发起一个连接请求,也就是IGMPreport报文,加入到电视直播的组播组中。同样当STB要断开连接的时候就发送一个IGMPleave报文。Router也需要知道当前有哪些STB加入了组播组,防止有的STB异常掉线了,却依然占用系统资源。Router周期性的发送IGMPquery报文查询组播组情况,STB接到que

4、ry报文后发送report消息到router。当然还有一种报文就是IGMPdata,用来传输组播数据。这基本上就是IGMP协议的基本流程了。仅供学习与交流,如有侵权请联系网站删除谢谢5精品好文档,推荐学习交流二、组播实现1.IP组播组与组播MAC二层组播MAC定义为:01:00:5e:xx:xx:xx,其中xx由三层的IP组播组确定。三层地址:组播流使用的IP是D类IP地址(二进制1110开始),从224.0.0.0~239.255.255.255。由于组播MAC地址是一个虚拟的地址,并不是真实网卡的MAC地址,那么网卡在发送报文是二层MAC地址怎

5、么确定呢?答案是采用地址映射的方法将三层IP地址映射到MAC地址。映射关系如下。从上面的映射关系可以看出IP地址的五个bit无法映射到MAC层,因为MAC层的这五个bit已经确定。也就是说有32个IP组播组会被映射为同一个MAC地址。(在这里不能不说一个面试常问的问题:一个网卡的MAC地址是53:10:10:10:10:10,问这是一个合法的MAC地址吗?原因?)2.报文格式:IGMP报文封装在IP层上,在IP层的协议类型码是0x02。IGMPv2有report,query和leave有三种类型的报文,IGMPreport:type为0x16(IG

6、MPv2)或0x12(IGMPv1)IGMPleave:type为0x17IGMPquery:type为0x11,query报文有两种情况,一种是针对特定组播组的查询,例如router要查询属于组播组225.225.100.3的所有成员,另一种是通用查询,查询所有主机加入组播组的情况,两者的主要区别是在GroupAddress上。IGMPdata:与通常的报文相同,主要区别是MAC地址使用的是组播MAC。三、IGMP协议的应用问题1.IGMPsnooping首先我们来看这样一种情况,交换机的A端口(port)有一个组播包需要送到主机D。通常交换机会

7、将这个报文flood到每一个端口,确保报文能够送到主机D。但这样处理存在问仅供学习与交流,如有侵权请联系网站删除谢谢5精品好文档,推荐学习交流题,主机D挂在portC上,switch没有必要将报文发往每一个端口,占用其他端口的网络资源,同时也占用CPU的资源。Linux源码中也没有对组播报文进行特殊处理,linux-2.4.33etbridgebr_input.c行79br_handle_frame_finish()if(dest[0]&1){br_flood_forward(br,skb,!passedup);/*flood报文到其他端口

8、*/if(!passedup)br_pass_frame_up(br,skb);/*向localIPstack发送数据*/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。