【计算机网络】网络层协议 -- ICMP协议

文章目录

  • 1. ICMP协议简介
  • 2. ICMP协议格式
  • 3. ping命令
  • 4. ping命令与端口号没有关系!!!
  • 5. traceroute命令

1. ICMP协议简介

ICMP(Internet Control Message Protocol,控制报文协议),用于在IP主机、路由器直接传递控制消息,是一个TCP/IP协议。

ICMP协议的定位

网络层的最典型的协议是IP协议,但是除了IP协议之外,还有ICMP协议和IGMP协议。

ICMP、IGMP和IP协议虽然都属于网络层的协议,但是ICMP协议和IGMP协议属于IP的上层协议。

  • 也就是说,IP的上层协议不一定就是传输层协议,IP的上层协议可能也属于网络层的协议。
  • 与之类似的,数据链路层当中的ARP协议和RARP协议,这两个协议虽然都属于数据链路层的协议,但它们却是MAC帧的上层协议。

ICMP的主要功能

  1. 确认IP包是否成功到达目标地址。
  2. 通知在发送过程中IP包丢弃的原因。
  3. ICMP只能搭配IPv4使用,如果是IPv6的情况下,需要使用ICMPv6。

举个例子,比如当主机A在向主机B发送数据的过程中,主机B因为某些原因离线了,然后当发送的数据包到达主机B所在局域网的入口路由器时,入口路由器为了获得主机B的MAC地址,于是会向主机B发送ARP请求包。但是此时因为主机B已经离线了,因此路由器再多次发送ARP请求包得不到响应后,就会返回一个ICMP的包给主机A,此时主机A就知道自己发送的数据无法到达主机B。

2. ICMP协议格式

在这里插入图片描述
ICMP分为两类报文:

  1. 一类是通知出错原因的
  2. 一类是用于诊断查询的

3. ping命令

ping命令是基于ICMP实现的,通常用于测试本地主机与另一台主机之间的通信信道是否正常。

例如,使用ping www.baidu.com命令,测试本地主机与百度服务器之间的通信信道是否正常。
在这里插入图片描述

  • 此时ping的是百度的域名,该域名会由DNS解析为IP地址。
  • ping命令不仅能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live,生存时间)。
  • ping命令会先发送一个ICMP Echo Request给对端。
  • 对端接收到之后,会返回一个ICMP Echo Reply给客户端。

在这里插入图片描述

4. ping命令与端口号没有关系!!!

telnet对应的端口号是23,ssh对应的端口号是22,ping命令对应的端口号是多少?

这个问题就是一个圈套!ping命令是基于网络层的ICMP协议,而端口号是属于传输层的内容,因此ICMP协议根本就不关心端口号这样的信息。

5. traceroute命令

traceroute命令也是基于ICMP协议实现的,traceroute命令可以遍历数据包传送到目标主机锁经过的所有路由器。

例如,使用traceroute www.baidu.com命令,遍历数据包到百度服务器所经过的所有路由器。
在这里插入图片描述

原理:

  • traceroute命令底层实际是通过增加其存活实际(TTL)值来实现的。
  • 因为每当数据包经过一个路由器,其TTL值就会减一,当TTL值减为0时对应路由设备就会将数据包丢弃,并传送一个ICMP TTL数据包给发送主机。
  • 因此traceroute命令底层可以发出多个数据包,并给这些数据包设置不同的TTL值,最后该主机就能够得到一连串的数据包路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/64267.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实时通信应用的开发:Vue.js、Spring Boot 和 WebSocket 整合实践

目录 1. 什么是webSocket 2. webSocket可以用来做什么? 3. webSocket协议 4. 服务器端 5. 客户端 6. 测试通讯 1. 什么是webSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务…

Django Rest_Framework(三)

文章目录 1. 认证Authentication2. 权限Permissions使用提供的权限举例自定义权限 3. 限流Throttling基本使用可选限流类 4. 过滤Filtering5. 排序Ordering6. 分页Pagination可选分页器 7. 异常处理 ExceptionsREST framework定义的异常 8. 自动生成接口文档coreapi安装依赖设置…

[CKA]考试之查看Pod日志

由于最新的CKA考试改版,不允许存储书签,本博客致力怎么一步步从官网把答案找到,如何修改把题做对,下面开始我们的 CKA之旅 题目为: Task 监控名为foobar的Pod的日志,并过滤出具有unable-to-access-websi…

.NET SqlSuger 简单介绍,超快开发数据库

文章目录 前言SqlSugar使用我的环境Nuget 安装新建连接串DB First 和 Code First使用增删改查 总结 前言 我之前介绍过EFCore 怎么使用Nuget快速创建数据库,我之后发现SqlSugar更快。这里简单再说一下SqlSugar如何使用 .NET Core 数据库DB First自动生成&#xff0…

kafka权威指南(阅读摘录)

零复制 Kafka 使用零复制技术向客户端发送消息——也就是说,Kafka 直接把消息从文件(或者更确切地说是 Linux 文件系统缓存)里发送到网络通道,而不需要经过任何中间缓冲区。这是 Kafka 与其他大部分数据库系统不一样的地方&#…

【js小游戏案例】js迷宫二:当迷宫遇上算法

序幕: 在上次用js开发固定迷宫时就想,这样的死迷宫不能称之为迷宫,如何让这个迷宫动起来呢? 让浏览器每次刷新时,通过计算重新生成一个迷宫,但这样有个问题,每次动态生成的迷宫必须保证它是通…

Linux的shell脚本常用命令

1、前提 使用shell脚本可以将所要执行的命令行进行汇总,统一执行,制作为脚本工具,简化重复性工作 1.1、常用命令 1.1.1、启动命令 假设我们拥有一个halloWord.sh的脚本,通过cd 命令进入相对应的目录下 ./halloWord.sh1.1.2、…

Apipost接口自动化测试入门

今天我们来聊一聊接口自动化测试。以往我们都是以以代码的形式编写自动化测试脚本做自动化测试,网上也有非常多的攻略,那么在不会代码的情况下该怎么做接口自动化呢,今天给大家介绍Apipost自动化测试模块,不用写代码也能做接口自动…

字节C++后端面试总结

字节的面经,技术栈是 C++ 后端。 计算机网络 UDP和TCP区别 先说了概念一个是面向连接的基于字节流的可靠连接,一个是不需要连接的基于数据报的不可靠传输 然后说了几个小点,比如首部长度、应用场景、服务对象什么的。 补充: 还有一个很重要的点:UDP 的实时性比 TCP 好…

微服务技术栈(1.0)

微服务技术栈 认识微服务 单体架构 单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署 优点: 架构简单部署成本低 缺点: 耦合度高 分布式架构 分布式架构:根据业务功能对系统进行拆分&#xff0c…

鉴源实验室|公钥基础设施(PKI)在车联网中的应用

作者 | 付海涛 上海控安可信软件创新研究院汽车网络安全组 来源 | 鉴源实验室 01 PKI与车联网 1.1 PKI概述 公钥基础设施(PKI ,Public Key Infrastructure)是一种在现代数字环境中实现认证和加密的基本框架,主要用于保护网络交互和通信的安…

Mac电脑怎么使用“磁盘工具”修复磁盘

我们可以使用“磁盘工具”的“急救”功能来查找和修复磁盘错误。 “磁盘工具”可以查找和修复与 Mac 磁盘的格式及目录结构有关的错误。使用 Mac 时,错误可能会导致意外行为,而重大错误甚至可能会导致 Mac 彻底无法启动。 继续之前,请确保您…

Flutter父宽度自适应子控件的宽度

需求: 控件随着金币进行自适应宽度 image.png 步骤: 1、Container不设置宽度,需要设置约束padding; 2、文本使用Flexible形式; Container(height: 24.dp,padding: EdgeInsetsDirectional.only(start: 8.dp, end: 5.d…

LISA:通过大语言模型进行推理分割

论文:https://arxiv.org/pdf/2308.00692 代码:GitHub - dvlab-research/LISA 摘要 尽管感知系统近年来取得了显著的进步,但在执行视觉识别任务之前,它们仍然依赖于明确的人类指令来识别目标物体或类别。这样的系统缺乏主动推理…

跨境商城系统源码的优势,助力企业海外扩张

跨境电商发展背景与趋势 随着全球化的推进和互联网技术的快速发展,跨境电商已成为企业海外拓展的重要途径。然而,跨境电商面临着诸多挑战,如复杂的海外市场、文化差异、海关监管等。为了解决这些问题,企业可以借助跨境商城系统源码…

FOHEART H1数据手套:连接虚拟与现实,塑造智能交互新未来

在全新交互时代背景中,数据手套无疑是一种重要的科技产物。它不仅彻底改变了我们与虚拟世界的互动方式,更为我们提供了一种全新、更为直观的交互形式。 FOHEART H1数据手套结合了虚拟现实、手势识别等高新技术,用先进的传感技术和精准的数据…

TeeChart NET for MAUI Crack

TeeChart NET for MAUI Crack 跨平台图表-移动或桌面应用程序的核心图表代码相同。 图表集合-60多种图表类型和50多种财务和统计指标。 图表类型 60多种2D和3D图表类型以及多种组合,包括: 标准:线条(条形)、条形、区域、饼图、快线、点(散点…

LVS集群

目录 1、lvs简介: 2、lvs架构图: 3、 lvs的工作模式: 1) VS/NAT: 即(Virtual Server via Network Address Translation) 2)VS/TUN :即(Virtual Server v…

三极管从入门到精通

文章目录 摘要1 基础1.1 PN结1.2 三极管 2 三极管模拟电路知识2.1 I-V特性曲线2.2 极限参数解释2.3 基本共射极放大电路2.4 小信号模型2.5 用小信号模型分析基本共射极放大电路 3 三极管实际模拟电路应用图3.1 共射极放大电路3.1.1 基本共射极放大电路3.1.2 基极分压式射极偏置…

实际工作中通过python+go-cqhttp+selenium实现自动检测维护升级并发送QQ通知消息(程序内测)

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 首先,今年比较忙没有多余时间去实操创作分享文章给大家,那就给大家分享下博主在实际工作中的一点点内容吧,就当交…
最新文章