ICMP和IGMP协议.ppt_第1页
ICMP和IGMP协议.ppt_第2页
ICMP和IGMP协议.ppt_第3页
ICMP和IGMP协议.ppt_第4页
ICMP和IGMP协议.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五讲 ICMP和IGMP协议,主要内容,理解ICMP协议的概念与作用 掌握ICMP报文的格式与封装格式 掌握ICMP各种报文类型的作用 理解IGMP协议的概念与作用 掌握IGMP报文的格式与封装过程 掌握IGMP四种操作的过程 熟悉延迟响应策略,5.1 ICMP协议,ICMP协议即网际控制报文协议(Internet Control Message Protocol,ICMP),运行于IP协议之上,但通常被认为是IP协议的一部分。 其中文实际含义是是“差错与控制协议”。ICMP协议的主要功能是: 1.传输差错信息 2. 传输控制信息,ICMP协议,ICMP在网络层中的位置如下: ICMP协议提

2、供了一种机制,用于反映IP数据报处理时产生的错误信息并提供管理和状态信息。 当数据报在传输过程中发生错误,比如通信线路出错、网关或主机处理器出错、IP数据报不能传输(比如信宿机不可到达、TTL时间到等)、系统拥塞等 ,主机或者路由器的ICMP模块将被触发,并产生一个ICMP报文,向信源机发送该ICMP报文,报告出错情况,以便信源机采取相应的纠正措施 。,ICMP协议,ICMP协议不能提高IP协议的可靠性 ICMP协议不能保证所有的数据报一定可以成功地达到目的主机 ICMP报文只是报告IP数据报处理时产生地错误信息,无法报告ICMP数据单元本身地错误。,CMP协议与IP协议的关系,ICMP报文也

3、是封装在IP数据报的数据部分中进行传输的,如下图ICMP数据的封装所示。 包含ICMP报文的IP数据报报头“协议”域指出数据区内容为ICMP报文。 ICMP软件只是作为IP软件的一个模块而存在。,ICMP作为单独的一层吗?,虽然ICMP报文由IP数据报传输,但我们并不把ICMP看作比IP更高层的协议。事实上,ICMP报文的信宿总是信宿机上的IP软件,。IP软件一旦接收到差错或控制报文,立即交给ICMP模块进行处理。在这种意义上,我们也可以把ICMP看作不同机器的IP软件间相互通信的机制。 在协议层次结构中,ICMP的差错和控制信息传输在概念上并不构成一个独立的层次,它不是一种具有普遍意义的传输

4、机制,不是上层协议赖以存在的基础,而只解决了Internet中的一类特殊问题,所以不能独立出来。,ICMP报文的格式,ICMP报文包括8个字节的报头和长度可变的数据部分。对于不同的报文类型,报头的格式一般是不相同的,但是前3个字段对所有的ICMP报文都是一样的。,ICMP报文的类型,类型(Type)字段,长度是1字节,用于定义报文类型。 ICMP报文有两大类:差错报告报文和查询报文。,关于出错的报文,关于控制的报文,ICMP报文的其余字段,代码(Code)字段,长度是1字节,表示发送这个特定报文类型的原因。 校验和(Checksum)字段,长度是2字节,用于数据报传输过程中的差错控制。ICMP

5、地校验和计算与IP报头的校验和类似,都是采用反码算术运算。 报头其余部分的内容因不同报文类型而不同。如果标识了“Unused”,则此字段必须为0,保留为以后使用。 数据字段内容因不同报文类型而不同,提供了ICMP差错和状态报告信息。,ICMP报文以IP数据报的形式传送,携带了ICMP报文的IP数据报,其报头的主要设置如下: Version:值为4,表示ipv4的版本 IHL:参考IP数据报格式 Service Type:通常TOS的值都设为0 Total Length、Identification、Flags、Fragment Offset:参考IP数据报格式 TTL:参考IP数据报格式,通常

6、由路由器预先设定一个恰当的初值 Protocol:值为1,表示这个是ICMP报文 Header Checksum:参考IP数据报格式 Source Address:发现错误的主机或路由器的IP地址 Destination Address:接收ICMP报文的主机或路由器的IP地址,基于WinPcap3.1的ethereal0.99捕获的一帧数据,WinPcap3.1下载地址/install/default.htm ethereal0.99下载地址,协议数据分析,目的站点的MAC地址,源主机的MAC地址, 表明该帧来自该主机,协议类型值为0X0800, 表

7、示上层使用的是IP数据报,该帧数据的IP头部分,该帧数据的IP数据部分即ICMP报文数据,Destination Unreachable,目的不可达报文是一个差错报告报文,其类型值Type=3,供路由器和目的主机使用。 代码(Code)字段的值表示该数据报出错的原因,Code字段值含义,Source Quench:源主机消亡或称源抑制,源主机消亡报文是一个差错报告报文,其类型值Type=4,代码Code=0,用于要求减慢数据报传输的速度。,拥塞控制,拥塞是无连接传输机制面临的重要问题,由于网关不预先为数据报分配缓冲区,可能出现大量数据报涌入同一网关的情况,当大量数据报涌入网关时,网关可能被“淹

8、没”,这就是所谓拥塞(congestion)。 归纳起来,造成拥塞的原因有两种: 网关的处理速度太慢,不能完成数据报排队、表格刷新等日常工作; 网关输入数据的速率大于输出线路的容量,比如许多数据同时通过同一网关转发就可能导致拥塞。 拥塞的原因在于没有足够的网关缓冲区,拥塞控制与流量控制,流量控制要解决的是点对点传输速率的匹配问题。比如在有直接物理连接的两台机器之间,假如发方发送数据的速率大于收方接收数据的速率,必然导致传输错误。这种问题就是流量控制要解决的。 流量控制是局部的,而拥塞控制是全局性质的。拥塞可能出现在一个网关,也可能出现在几个网关甚至全部网关,无论如何,拥塞都可能影响整个网络的数

9、据传输,并且拥塞的解决可能要由全部机器共同参与,解决拥塞控制的方法是采用“源抑制”(source quench)技术,所谓源抑制就是抑制信源机发出数据报的速率 网关发现拥塞,发出ICMP源抑制报文。网关周期性测试每条输出线路,密切监视拥塞的发生,一旦发现某条输出线路发生拥塞,立即向相应源机发送ICMP源抑制报文。 信源机收到源抑制报文后,按一定的速率降低发往某信宿的数据报传输率。 拥塞解除后,信源机要恢复数据报传输速率。,Time Exceeded:超时,超时报文是一个差错报告报文,其类型值Type=11。 代码(Code)字段的值表示超时的原因。 Code0:在传输中超时仅为路由器使用 Co

10、de1:在重组中超时仅为目的主机使用,Parameter Problem:参数问题,参数问题报文是一个差错报告报文,其类型值Type=12 。 代码(Code)字段的值反映了丢弃该数据报的原因,指针(Pointer)字段的值准确指明了出现错误的位置 。 Code0:表示原始数据报报头的某个字节中出现错误,此时指针字段的值指向出现错误的地方。 Code1:标书路由器或目的主机需要特定的选项,但原始数据报并未提供此选项。在此种情况下不使用指针。,Redirect:重定向,重定向报文是一个比较特殊的差错报告报文。发送重定向报文的路由器不会丢弃数据报,而是把数据报转发给正确的路由器。 代码(Code)

11、字段的值给出了四种不同类型的重定向服务。 Code0:对网络重定向 Code1:对主机重定向 Code2:对服务类型和网络重定向 Code3:对服务类型和主机重定向,Echo Request/Reply,回送请求和回送应答是一对查询报文,用于测试两个机器(主机或路由器)之间能否实现通信。 类型字段Type=8表示这是回送请求(Echo Request)报文;Type=0表示这是回送应答(Echo Reply)报文。 该报文可确定两个机器在IP级是否能够通信 该报文可测试某个主机是否可达,通常是调用PING命令来实现。PING命令使用回送请求和回送应答,并具有指定请求的时间间隔和发送请求的次数。

12、,Timestamp and Timestamp Reply,时间戳请求和时间戳应答一对查询报文,用于确定IP数据报在源端和目的端之间往返所需要的时间,也可用作源端和目的端机器的时钟同步。 类型字段Type=13表示这是时间戳请求报文;Type=14表示这是时间戳应答报文。 时间戳以通用时间(Universal Time,UT)的午夜起测量时间,ms为单位,理论值86400000=24*60*60*1000,时间戳请求和时间戳应答报文可测量数据报从源端到目的端之间往返所需的时间,发送时间=接收时间戳的值原始时间戳的值 接收时间分组返回的时间发送时间戳的值 往返时间发送时间接收时间 注意:只有当

13、源端时钟和目的时钟是同步的,发送时间和接收时间的值才是准确的。 若知道单向传输时间(通常是往返时间的一半),则可以对源端时钟和目的时钟进行同步,计算公式为:时间差接收时间戳的值(原始时间戳的值单向传输时间)=发送时间1/2往返时间,例,源主机发送时间戳请求给目的主机,并于4:23:07am收到时间戳应答。假设原始时间戳、接收时间戳以及发送时间戳的值分别为15780000,15782000,15784400,求发送时间、接受时间和往返时间。源主机和目的主机的时间差是多少? 解: 4:23:07am的UT值即返回时间值15787000 发送时间接收时间戳的值原始时间戳的值2000 接收时间分组返回

14、的时间发送时间戳的值2600 往返时间发送时间接收时间4600 时间差发送时间1/2往返时间20002300 300,Address Mask Request/Reply,地址掩码请求和地址掩码应答是一对查询报文,用于获得一个主机所在网络的子网掩码。 类型字段Type=17表示这是地址掩码请求(Address Mask Request)报文;Type=18表示这是地址掩码应答(Address Mask Reply)报文。,Router Advertisement and Solicitations,路由器通告和路由器请求是一对查询报文,用于主机与路由器之间交换信息。 路由器请求报文的格式如下:

15、,路由器通告报文的格式,收到路由器请求报文的路由器,会创建一个路由器通告报文,并在网络上广播。 路由器通告报文的格式如下:,Information Request/Reply,信息请求和信息应答是一对查询报文,用于主机查找所连接网络的地址。 信息请求和信息应答报文的作用类似于反向地址解析协议(RARP),使主机能够得到自己的IP地址。此报文使用得很少,已被RARP和BOOTP协议取代。,ICMP小结,IP协议是一种不可靠的、无连接的协议,不具备差错报告和差错纠正机制,它必须依赖于ICMP协议来报告处理一个IP数据报传输过程中的错误并提供管理和状态信息 ICMP即网际控制报文协议,是IP协议的一

16、部分。当数据报在传输过程中发生错误时,主机或者路由器的ICMP模块将被触发,并产生一个ICMP报文 ICMP报文有两大类:差错报告报文和查询报文。其中,差错报告报文包括:目的不可达、源主机消亡、超时、参数问题、重定向。查询报文包括:回应请求和应答、信息请求和应答(已弃用)、时间戳和时间戳应答、地址掩码请求和应答、路由器通告和请求 ICMP报文封装成IP数据报的形式传送。ICMP报文包括1字节的类型字段、1字节的代码字段、2字节的校验和字段和长度可变的数据字段,5.2 IGMP协议,IGMP协议即网际组管理协议(Internet Group Management Protocol)是与多播通信相

17、关的一个必要的但不是充分的协议。IGMP负责管理多播组成员关系,它把连接在网络上的主机的成员关系状态信息传送给多播路由器。,IGMP在网络层中的位置,IGMP在网络层中的位置如下: IGMP协议对于多播通信是必需的,帮助多播路由器创建和更新多播组的成员关系状态表。,IGMP报文,IGMP已经有了两个版本。我们讨论当前的版本IGMPv2。 IGMP报文有三种报文类型:查询报文(通用或特殊)、成员关系报告和退出报告。,IGMPv2报文的格式,第一个字段是类型字段,长度是1个字节,用于定义IGMP报文的类型。查询报文的类型值为0X11,成员关系报告的类型值为0X16,退出报告的类型值为0X17。 第

18、二个字段是最大响应时间字段,长度是1个字节,用于定义查询报文必须在多长时间内得到应答,以十分之一秒为计算单位。 第四个字段是组地址字段,长度是4字节,定义了一个D类多播地址。,IGMP报文的封装,IGMP报文也被封装成IP数据报的形式传送。IGMP报文本身被封装在IP数据报的数据区,而这个IP数据报又被封装在帧数据中。在报头中的协议(Protocol)字段设置成2,表示这是一个IGMP报文。,IGMP操作,IGMP工作在本地范围。连接到本地网络上的多播路由器有一个组多播地址表,里面至少有一个忠实成员(多播组)。多播组是基于进程而创建的。在一个给定接口上的多播组中的成员关系是动态的,它随时因为进程加入和离开该多播组而变化。,加入一个多播组,主机或路由器都可以加入一个多播组。 每一个主机创建一个成员关系表,表中包含所有至少含有一个进程的多播组以及多播组中的进程数。当第一个进程加入一个多播组时,主机就发送一个成员关系报告报文。,退出一个多播组,当主机发现在一个特定的多播组中没有感兴趣的进程时,它就发送退出报告。同样地,当路由器发现在一个特定的多播组中没有连接在它的接口上感兴趣的网络,它就发送退出这个组的报告。,删除一个多播组,当多播路由器收到退出报告时,并不立即从组多播地址表中删除该组。为了确定是否还有其他主机或路由器仍然对这个组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论