【网络层】ICMP 因特网控制协议

2024-05-28 16:44

本文主要是介绍【网络层】ICMP 因特网控制协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • ICMP 含义以及作用
    • ICMP协议解析
    • 结合ICMP协议和ping常见问题


ICMP 含义以及作用

ICMP:Internet control massage protocol 因特网控制协议
Internet控制报文协议ICMP是网络层的一个重要协议。 ICMP协议用来在网络设备间传递各种差错和控制信息,
它对于收集各种网络信息、诊断和排除各种网络故障具有至关重要的作用。


ICMP协议解析

使用ping、tracert等命令调用ICMP协议
在这里插入图片描述
ICMP的类型:echo request 回响请求; echo reply 回响应答
在电脑命令行使用ping命令:ping 域名/IP
在这里插入图片描述
默认会ping 4下,正常会有4个回复。现在使用Wireshark抓包看下:
在这里插入图片描述
如上图抓包情况来看,是有4组(request/reply)。现在对比下request包(图一)和reply包(图二):
在这里插入图片描述
在这里插入图片描述
在ICMP中有两个很重要的字段Type和Code
在这里插入图片描述
Type表示ICMP消息类型。
Code表示同一消息类型中的不同信息。(在例子中 request :Type/Code为8/0;reply :Type/Code为0/0)
Data是一串随机序列。

Type/Code组合有以下几种:

类型编码描述
00Echo Reply
30网络不可达
31主机不可达
32协议不可达
33端口不可达
50重定向
80Echo Request

结合ICMP协议和ping常见问题

第一、无法访问 【 未获取到MAC地址,导致无法进行ICMP封装】
在这里插入图片描述
环境:192.168.80.123设备不在线

在链路中数据是以帧的形式传输的,封装ICMP时,由于在MAC表中没有找到这个IP对应的MAC地址,因此会先发出ARP请求获取这个IP的MAC地址。抓包数据可以看出发出ARP请求后没有设备进行回应,因此显示信息中只能来自自己的回复:无法访问目标主机。
这种情况在ARP阶段就失败了,无法封装并发出ICMP数据

第二、超时 【 对方主机不在线、屏蔽 (不在线-有对方MAC地址缓存,对方可能关机,平并-对方开启了策略“如防火墙”)】
在这里插入图片描述
环境:ping 其他网段的ip地址(对方主机不在线)
这种情况和上面的设备不在线,区别在于这个设备之前已经通过ARP获取到MAC地址(在MAC地址缓存表中存在MAC地址),封装ICMP将数据发出去,但迟迟没有得到回应。这例子中1.2.3.4为检测到是其他网段的,所以在封装ICMP的时候目标MAC为本地设备网关的MAC地址。

环境:对端设备开防火墙或者禁用ping操作
现象:ping 对端设备ip地址失败,但是对端ping 本地设备是通的(屏蔽)
这种情况也是会显示“请求超时”。本地设备同样也是会发出ICMP数据,由于对端设备开启了防火墙或者禁用ping操作,因此不会有任何的回应发出。

这篇关于【网络层】ICMP 因特网控制协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1011122

相关文章

网络层 VII(IP多播、移动IP)【★★★★★★】

一、IP 多播 1. 多播的概念 多播是让源主机一次发送的单个分组可以抵达用一个组地址标识的若干目的主机,即一对多的通信。在互联网上进行的多播,称为 IP 多播(multicast , 以前曾译为组播)。 与单播相比,在一对多的通信中,多播可大大节约网络资源。假设视频服务器向 90 台主机传送同样的视频节目,单播与多播的比较如下图所示。 下图(a)是视频服务器用单播方式向 90 台主机传

【内网】ICMP出网ew+pingtunnel组合建立socks5隧道

❤️博客主页: iknow181 🔥系列专栏: 网络安全、 Python、JavaSE、JavaWeb、CCNP 🎉欢迎大家点赞👍收藏⭐评论✍ 通过环境搭建,满足以下条件: 攻击机模拟公网vps地址,WEB边界服务器(Windows Server 2008)模拟公司对外提供Web服务的机器,该机器可以通内网,同时向公网提供服务。内网同网段存在一台Windows内网服务

【PyTorch】使用容器(Containers)进行网络层管理(Module)

文章目录 前言一、Sequential二、ModuleList三、ModuleDict四、ParameterList & ParameterDict总结 前言 当深度学习模型逐渐变得复杂,在编写代码时便会遇到诸多麻烦,此时便需要Containers的帮助。Containers的作用是将一部分网络层模块化,从而更方便地管理和调用。本文介绍PyTorch库常用的nn.Sequen

每天五分钟玩转深度学习PyTorch:nn.Module中封装好的神经网络层

本文重点 PyTorch实现了神经网络中绝大多数的layer,这些layer都继承于nn.Module,封装了可学习参数parameter,并实现了forward函数,且很多都专门针对GPU运算进行了CuDNN优化,其速度和性能都十分优异。本文介绍pytorch中已经封装好的神经网络层,我们可以直接通过nn.的方式来调用。本文主要学习第2步(模型搭建)。 全连接层 nn.Linear(i

网络层 V(IPv6)【★★★★★★】

一、IPv6 的特点 IP 是互联网的核心协议。现在使用的 IP(即 IPv4 ) 是在 20 世纪 70 年代末期设计的。互联网经过几十年的飞速发展,到 2011 年 2 月,IPv4 的地址已经耗尽, ISP 已经不能再申请到新的 IP 地址块了。我国在 2014 年至 2015 年也逐步停止了向新用户和应用分配 IPv4 地址,同时全面开始商用部署 IPv6 。 为了解决“ IP 地址耗

计算机网络、因特网、互联网、万维网究竟有啥是个啥??

1. 计算机网络 (Computer Network) 计算机网络是指由多个计算设备(如计算机、服务器、路由器等)通过通信设备和通信协议互联起来的系统。计算机网络的目的是为了实现数据的共享和传输。    范围:可以是局域网(LAN)、城域网(MAN)、广域网(WAN)等。  例子:家庭或办公室中的局域网就是一个计算机网络。  2. 因特网 (Internet) 因特网是全球范围内的计算

使用python编写ICMP重定向攻击脚本,附代码

以下为您提供一些使用 Python 编写 ICMP 重定向攻击脚本的示例及相关代码: 参考示例如下: #!/usr/bin/python from scapy.all import *import osimport sysimport randomdef randomIP():ip = ".".join(map(str, (random.randint(0,255) for _ in

常见协议工作原理 https ARP ICMP DHCP PING

1. HTTPS(HyperText Transfer Protocol Secure) HTTPS是HTTP的安全版本,它在HTTP和TCP之间加入了SSL/TLS协议层,用于加密数据传输,确保数据的安全性和完整性。 工作原理: 握手:客户端和服务器通过SSL/TLS握手协商加密算法和交换密钥。证书验证:服务器向客户端提供证书,客户端验证证书的有效性。加密通信:使用协商的密钥对数据进行加密

网络层 IV(ARP、DHCP、ICMP)【★★★★★★】

(★★)代表非常重要的知识点,(★)代表重要的知识点。 一、地址解析协议(ARP)(★★) 在局域网中,由于硬件地址已固化在网卡上的 ROM 中,因此常常将硬件地址称为物理地址。因为在局域网的 MAC 帧中的源地址和目的地址都是硬件地址,因此硬件地址又称为 MAC 地址。即物理地址、硬件地址和 MAC 地址常常作为同义词出现。 1. IP 地址与 MAC 地址 从层次的角度看,

【网络世界】网络层

目录 🌈前言🌈 📁 网络层 📁 IPV4  📂 什么是IP地址  📂 网段划分  📂 特殊IP  📂 内网和公网  📂 IPV4的危机 📁 IP协议格式 📁 路由 📁 分段和组装 📁 NAT  📂 概念  📂 内网穿透  📂 内网打洞 📁 代理服务器  📂 正向代理服务器  📂 反向代理服务器 📁 总结 🌈