TCP/IP--ICMP和IGMP

本文详细介绍了TCP/IP协议中的两个重要组件——ICMP和IGMP。ICMP用于在网络层提供错误报告和控制信息,如ping和traceroute工具。IGMP则用于管理多播组成员关系,帮助路由器了解网络中多播组的状态。文章涵盖了ICMP的报文类型、应用及报文格式,以及IGMP的基本概念、报文格式和协议机制。
摘要由CSDN通过智能技术生成

本篇结构:

  • ICMP
  • IGMP
  • 反思

接着上一篇,本章接着分享IP协议的两个配套协议–ICMP和IGMP。

一、ICMP

1.1、什么是ICMP

ICMP的全称是Internet Control Message Protocol(网际控制信息协议)。

ICMP工作在TCP/IP体系中的网络层,是IP协议的一个补充,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。ICMP报文是在IP数据报内部传输的。IP协议是不可靠协议,不能保证 IP数据报能够成功的到达目的主机,无法进行差错控制,当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

1.2、ICMP报文格式

  • 类型:一个8位类型字段,表示 ICMP 数据包类型;
  • 代码:一个8位代码域,表示指定类型中的一个功能,如果一个类型中只有一种功能,代码域置为 0;
  • 检验和:数据包中 ICMP 部分上的一个16位检验和;
  • ICMP数据部分:包含了所有接受到的数据报的IP报头,还包含IP数据报中前8个字节的数据。

格式解释:
ICMP报文的前4个字节是统一的格式,共有三个字段:即类型,代码和检验和。
8位类型和8位代码字段一起决定了ICMP报文的类型。

  • 类型8,代码0:表示回显请求(ping请求);
  • 类型0,代码0:表示回显应答(ping应答);
  • 类型11,代码0:超时…

16位的检验和字段:包括数据在内的整个ICMP数据包的检验和,其计算方法和IP头部检验和的计算方法一样的。
ICMP报文具体分ICMP差错报告报文ICMP询问报文(对ICMP差错报文有时需要做特殊处理,因此要对其进行区分。如:对ICMP差错报文进行响应时,永远不会生成另一份ICMP差错报文,否则会出现死循环)。

1.3、ICMP种类

ICMP报文具体分ICMP差错报告报文ICMP询问报文(对ICMP差错报文有时需要做特殊处理,因此要对其进行区分。如:对ICMP差错报文进行响应时,永远不会生成另一份ICMP差错报文,否则会出现死循环)。

下面主要学习几种常用的ICMP报文类型。

1.ICMP差错报文

  • 终点不可达(Type=3)

IP路由器无法将IP数据报发送给目的地址时,会给发送端主机返回一个终点不可达ICMP消息。例如我们要连接对方一个不存在的系统端口(端口号小于1024)时,将返回Type=3、Code=3的ICMP报文,它要告诉我们:“嘿,别连接了,我不在家的!”,常见的不可到达类型还有网络不可到达(Code=0)、主机不可到达(Code=1)、协议不可到达(Code=2)等。

  • 时间超过

超时报文的代码域有两种取值:Code=0表示传输超时,Code=1表示重组分段超

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值