【计算机网络】整理笔记02-ICMP/IGMP/多播

2022/6/29 23:23:32

本文主要是介绍【计算机网络】整理笔记02-ICMP/IGMP/多播,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.ICMP

ICMP位于网络层,被称为网际控制协议,ICMP 是依靠 IP 协议来完成信息发送的,它是 IP 的主要部分,但是从体系结构上来讲,它位于 IP 之上,但ICMP不是高层协议(虽然ICMP报文封装在IP数据报中,作为其中的数据部分)

 

 

 1.1ICMP报文种类

ICMP分为两种,即ICMP差错报告报文和ICMP询问报文。

ICMP报文的前4个字段是统一格式,共有三个字段:类型,代码和检验和。接着的4个字节的内容与ICMP的类型有关。最后是数据长度,其长度取决于ICMP的类型

 

 

 1.1.1ICMP差错报文种类

  • 终点不可达:当路由器与主机不能交付数据报时就向源点发送终点不可达报文。
  • 时间超过:当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就会把已收到的数据报片丢弃,并向源点发送时间超过报文。
  • 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
  • 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应该将数据报发送给另外的路由器.(可通过更好的路由)

 

 

 所有的ICMP差错报文具有相同的格式,把收到的需要进行差错报文的IP数据报的首部和数据字段的前8个字节提取出来,作为ICMP报文的数据字段,在加上ICMP差错报文的前8个字节(ICMP报文首部)

,就构成了ICMP差错报文。

为什么要提取IP报文的数据字段的前8个字节?

因为IP数据报的数据字段的前8个字节是为了得到运输层的端口号(TCP/UDP)以及运输层报文的发送序号(对于TCP)

 

1.1.2ICMP的询问报文种类

  • 会送请求和回答        ICMP回送请求报文是由主机或路由器向一个特定的目的主机发送的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文.这种询问报文是用来测试目的站是否可达以及了解其有关状态。
  • 时间戳请求和回答    ICMP时间戳请求报文是请某台主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32位的字段

1.2ICMP的应用

1.2.1PING命令

分组网间探测PING,是用来测试两台主机之间的连通性.PING使用了ICMP回送请求与回送回答报文。PING是应用层直接使用网络层ICMP的一个例子。

1.2.2tracert命令

用来跟踪一个分组从源点到终点的路径。

2.多播


“多播”也可以称为“组播”,在网络技术的应用并不是很多,网上视频会议、网上视频点播特别适合采用多播方式。因为如果采用单播方式,逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;

如果采用不区分目标、全部发送的广播方式,虽然一次可以传送完数据,但是显然达不到区分特定数据接收对象的目的。采用多播方式,既可以实现一次传送所有目标节点的数据,也可以达到只对特定对象传送数据的目的。

 

 

 

2.1多播地址标识符

IP地址中的D类地址。D类IP地址的前4位是1110,因此D类地址范围是224.0.0.0到239.255.255.255.我们用一个D类地址表示一个多播组。

 

多播数据报时尽最大努力交付的,不保证一定能交付多播组内所有的成员。并且首部的协议字段值为2,表示使用的是IGMP

多播地址只能用于目的地址,而不能用于原地址。并且多播数据不产生ICMP差错报文。

 

 

2.2IP多播种类

  • 本局域网上进行硬件多播
  • 在互联网范围进行多播

3.IGMP

3.1IGMP工作阶段

3.1.1第一阶段:

当某台主机加入新的多播组时,该阻击影响多播组的多播地址发送一个IGMP报文,声明自己要成为该组的成员.本地的多播路由器收到IGMP报文后,还要利用多播路由选择协议把

这种成员关系发送给互联网上的其他多播路由器.

3.1.2第二阶段

组成员关系是动态的。本地的多播路由器要周期性地探寻本地局域网上的主机,以便知道这些主机是否还要继续是组的成员.只要有一台主机对某个组相应,那么

多播路由器就多播路由器就假定这个组是活跃的。但一个组在经过几次的探寻后仍然没有一个主机相应,多播路由器就认为本网络上的主机已离开了这个组,

因此也就不把这个组的成员关系状态给其他多播路由器了。

3.2IGMP相关措施

1.在主机和多播路由器之问的所有通信都是使用 卫 多播。只要有可能,携带 IGMP报文的数据报都用硬件多播来传送。因此在支持硬件多播的网络上,没有参加 卫 多播的主
机不会收到IGNP 报文。

2.多播路由器在探询组成员关系时,只需要对所有的组发送一个请求信息的询问报文,而不需要对每一个组发送一个询问报文 《虽然也允许对一个特定组发送询问报文)。默
认的询问速率是每 125 秒发送—次《通信量并不太大)。
3.当同一个网络上连接有几个多播路由器时,它们能够迅速和有效地选择其中的一个来探询主机的成员关系。因此,所络上多个多播路由器并不会引起 IGMP通信量的增大。
4.在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间(默认值为 10秒)。当收到询问时,主机在。到N之问随机选择发送响应所需经过的时延。因此,若一台
主机同时参加了几个多播组,则主机对每一个多播组选择不同的随机数。对应于最小时延的响应最先发送。
5.同一个组内的每一台主机都要监听响应,只要有本组的其他主机先发送了响应,自己就可以不再发送响应了。这样就抑制了不必要的通信量。

 



这篇关于【计算机网络】整理笔记02-ICMP/IGMP/多播的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程