网站首页 > 文章精选 正文
1.1. ICMP协议
1.1.1. 前言
1.1.2. ICMP的概念
Internet Control Message Protocol,因特网控制消息协议
用于可达性测试
使用ping命令调用
1.1.3. ICMP的主要功能
确认IP包是否成功送达目标地址
通知在发送过程中当IP包被丢弃的具体原因
我们需要注意几点:
1. ICMP是基于IP协议工作的,但它并不是传输层的功能,因此我们仍然把它归结为网络层协议
2. ICMP只能搭配IPv4使用,如果是IPv6情况下,需要用ICMPv6
1.1.4. ICMP数据包格式
ICMP头部有8个字节,前4个字节格式固定
类型(1字节)
标识ICMP报文的类型,从类型值来看ICMP报文可以分为两大类。1-127为差错报文;128以上为信息报文
代码(1字节)
表示同一消息类型中的不同信息。它与类型字段一起共同标识了ICMP报文的详细类型
校验和
数据的校验
后四个字节不固定:可能有可能没有,和类型有关系
ICMP从功能上报文大概可以分为两类:
一类是通知出错原因;一类是用于诊断查询
差错报告报文
Type 3
终点不可达,当数据包不能发送到目标主机或路由时,就会丢弃该数据包向源点发送终点不可达报文。出错原因多种,例如:我们要连接对方一个不存在的系统端口时,将返回Type 3、Code 3的ICMP报文。其他的参考错误代码
Type 11
超时,当路由器收到TTL=0的数据包时,会丢弃该数据包并向源点发送超时报文;也有可能数据分片在重组的时超过规定时间也会丢弃已收到的报文然后向源点发送超时报文
Type 12
参数问题,可能是IP头部有的字段值是错误的或者IP首部被修改、破坏都有可能。因为IP头部有一个校验和会对IP头部进行校验
查询报告报文
Type 0和8
类型8表示请求,类型0表示回答
Type 9和10
路由器通告查询,一般指的是返回路由的状态信息
Type 13和14
类型13表示时间戳请求;类型14表示时间戳回答
记录数据报文的发送时间和接收时间,一般来说发送时间和接收时间是一样的,比如主机A发送时间是14点,主机B的接收时间是16点,说明这两个时间不同步,是有问题的
1.1.5. ICMP重定向
重定向的概念
ICMP重定向报文是ICMP控制报文的一种,当检测到一台路由器使用次优路径的时候,它就会像该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会将初始报文向它的目的地转发
ICMP虽然不是路由协议,但是有时也可以指导数据包的流向。ICMP协议通过重定向(Type=5 Code=0)达到这个目的
重定向的工作原理
1. 如图PC要去访问192.168.3.0/24,主机判断出目标不属于同一网段,就会将数据包发送给自己的网关。但是在此之前必须发送ARP请求来获取网关的MAC地址
2. 收到ARP请求后,先进行ARP应答,然后将数据包发送给R2。此时数据包就相当于多了一段路。R1在此时就会发送一个ICMP重定向给PC,通知PC告知网关是192.168.1.254
何时重定向
数据包的入接口和转发的出接口是同一个接口
数据包的源IP和它的下一跳属于同一个网段
系统开启重定向
1.1.6. ping的使用方法
ping ip地址或域名 –参数
ping成功
ping超时
对方主机不在线、屏蔽等
ping传输失败
当主机尝试去访问其他网络内的主机,而自身没有配置网关
ping无法访问
网关没有路由、没有获取到MAC地址
猜你喜欢
- 2024-12-25 阿里大佬熬夜奋战才总结出这篇文章:计算机网络分层\协议详解
- 2024-12-25 简介ICMP「大神路过」 icmp在哪
- 2024-12-25 物联网数据接入篇-网络层和数据传输层协议(3)
- 2024-12-25 网络世界中的侦察兵之ICMP(判断网络好坏、排查好帮手)
- 2024-12-25 ICMP协议是什么?在网络中又起到什么作用呢
- 2024-12-25 手把手教你手撸通讯协议(二)-网络的基础
- 2024-12-25 详细了解ICMP协议 icmp协议的工作原理
- 2024-12-25 TCP/IP分层(4层) tcp ip协议分层
- 2024-12-25 网工必看ICMP协议概述 icmp协议中文名
- 2024-12-25 深入了解Ping命令后的工作原理——ICMP协议详解
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)