【计网】ICMP、IP、Ethernet PDU之间的封装关系

TCP/IP体系结构

应用层RIP、OSPF、FTP
运输层TCP、UDP
网际层IP、ARP、ICMP
网络接口层底层协议(Ethernet)

数据链路层

Ethernet报文格式

6Byte6Byte2Byte46~1500Byte4Byte
目的MAC地址源MAC地址类型/长度数据FCS

其中,类型 / 长度值小于 1536(0x0600)时表示数据字段的长度,大于等于 1536(0x0600)时表示数据字段的协议类型。类型 / 长度值 0x0800 表示帧中封装的数据为 IP 分组,类型值 0x0806 表示帧中封装的数据为 ARP 分组

Ethernet II 类型以太网帧的最小长度为 64 字节(6+6+2+46+4)最大长度为 1518 字节(6+6+2+1500+4)。其中前 12 字节分别标识出发送数据帧的源节点 MAC 地址和接收数据帧的目标节点 MAC 地址。

接下来的 2 个字节(类型)标识出以太网帧所携带的上层数据类型,如下

  • IPv4: 0x0800
  • ARP:0x0806
  • PPPoE:0x8864
  • 802.1Q tag: 0x8100
  • IPV6: 0x86DD
  • MPLS Label:0x8847

 4 个字节的帧校验序列(Frame. Check Sequence,FCS)

PPP 帧格式

STP 协议格式

  • 目的 mac 地址 ― 目的地址是一个固定的桥的组播地址(0x0180c2000000)
  • 源 MAC 地址 ― 即发送该配置消息的桥 MAC 地址
  • 长度 / 类型 ― 这里表示帧长
  •  LLC Header ― 固定的链路头 - 0x424203
  • Payload ― BPDU 数据

网络层

IP 报文

类型:IP 报文的类型为 0x0800;

Version:4 比特;表示版本;目前为 4;即 0100

IHL:Internet Header Length 首部长度;占 4 比特。是头部占 32 比特的数字,包括可选项。普通 IP 数据报(没有任何选项),该字段的值是 5,即 160 比特 = 20 字节。此字段最大值为 60 字节;

服务类型(Type of Service ,TOS)字段:占 8 比特。其中前 3 比特为优先权子字段(Precedence,现已被忽略)。第 8 比特保留未用。第 4 至第 7 比特分别代表延迟、吞吐量、可靠性和花费。当它们取值为 1 时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用。这 4 比特的服务类型中只能置其中 1 比特为 1。可以全为 0,若全为 0 则表示一般服务。服务类型字段声明了数据报被网络系统传输时可以被怎样处理。例如:TELNET 协议可能要求有最小的延迟,FTP 协议(数据)可能要求有最大吞吐量,SNMP 协议可能要求有最高可靠性,NNTP(Network News Transfer Protocol,网络新闻传输协议)可能要求最小费用,而 ICMP 协议可能无特殊要求(4 比特全为 0)。实际上,大部分主机会忽略这个字段,但一些动态路由协议如 OSPF(Open Shortest Path First Protocol)、IS-IS(Intermediate System to Intermediate System Protocol)可以根据这些字段的值进行路由决策。

总长度字段:占 16 比特。指明整个数据报的长度(以字节为单位)。最大长度为 65535 字节。

标识字段:占 16 比特。用来唯一地标识主机发送的每一份数据报。通常每发一份报文,它的值会加 1。

标志位字段:占 3 比特。标志一份数据报是否要求分段

段偏移字段:占 13 比特。如果一份数据报要求分段的话,此字段指明该段偏移距原始数据报开始的位置

生存期(TTL:Time to Live)字段:占 8 比特。用来设置数据报最多可以经过的路由器数。由发送数据的源主机设置,通常为 32、64、128 等。每经过一个路由器,其值减 1,直到 0 时该数据报被丢弃

协议字段:占 8 比特。指明 IP 层所封装的上层协议类型,如 ICMP(1)、IGMP(2) 、TCP(6)、UDP(17)等

ARP 协议报文

以太网类型为 0x0806 代表 ARP 协议

Ethernet  

IP

ICMP、IP、Ethernet PDU封装关系

IP分组IP首部数据载荷:ICMP
Ethernet帧帧首部数据载荷:IP

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端取经路——入门取经:初出师门的九个CSS修行

大家好,我是老十三,一名前端开发工程师。CSS就像前端修行路上的第一道关卡,看似简单,实则暗藏玄机。在今天的文章中,我将带你一起应对九大CSS难题,从Flexbox布局到响应式设计,从选择器优先级到B…

n8n工作流自动化平台的实操:Cannot find module ‘iconv-lite‘

解决问题: 1.在可视化界面,执行const iconv require(iconv-lite);,报Cannot find module iconv-lite [line 2]错误; 查看module的路径 进入docker容器 #docker exec -it n8n /bin/sh 构建一个test.js,并写入如何代码 vi tes…

如何在 PowerEdge 服务器上设置 NIC 分组

以下文章提供了有关 Windows、VMware 和 Linux 中的 NIC 分组的信息。 什么是网络适配器分组?设置 NIC 分组 Windows设置 NIC 分组 VMware设置 NIC 分组 Linux 什么是网络适配器分组(绑定)? 网络适配器分组是一个术语&#xff0…

【Java ee初阶】多线程(5)

一、wait 和 notify wait notify 是两个用来协调线程执行顺序的关键字,用来避免“线程饿死”的情况。 wait 和 notify 其实都是 Object 这个类的方法,而 Object这个类是所有类的“祖宗类”,也就是说明,任何一个类,都…

基于k8s的Jenkins CI/CD平台部署实践(二):流水线构建与自动部署全流程

基于k8s的Jenkins CI/CD平台部署实践(二):流水线构建与自动部署全流程 文章目录 基于k8s的Jenkins CI/CD平台部署实践(二):流水线构建与自动部署全流程一、Jenkins简介二、系统架构与环境说明1. 系统架构2.…

《Windows 环境下 Qt C++ 项目升级 GCC 版本的完整指南》

Windows 环境下 Qt C++ 项目升级 GCC 版本的完整指南 在 Windows 系统中升级 Qt C++ 项目的 GCC 版本需要同时考虑 Qt 工具链、MinGW 环境以及项目配置的调整。以下是详细的升级步骤和注意事项: 一、升级前的准备工作 1. 确认当前环境 检查 Qt 版本(建议使用 Qt 5.15+ 以获…

【coze】故事卡片(图片、音频、文字)

【coze】故事卡片(图片、音频、文字) 1、创建智能体2、添加人设与回复逻辑3、添加工作流(1)创建工作流(2)添加大模型节点(3)添加提示词优化节点(4)添加豆包图…

Maven 依赖发布与仓库治理

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

虚拟现实视频播放器 2.6.1 | 支持多种VR格式,提供沉浸式观看体验的媒体播放器

虚拟现实媒体播放器是一款专为在智能手机上播放VR(虚拟现实)照片和视频而设计的应用程序。它支持多种格式的影像内容,包括360和180等距矩形柱面、标准镜头和鱼眼镜头拍摄的照片和视频,并且兼容3D立体并排、上/下以及收缩媒体格式。…

ts axios中报 Property ‘code‘ does not exist on type ‘AxiosResponse<any, any>‘

ts语法有严格的格式,如果我们在处理响应数据时,出现了axios响应中非默认字段,就会出现标题那样的警告,我们可以通过创建axios.dt.ts解决这个问题 下面是我在开发中遇到的警告,code并不是axios默认返回的字段&#xff0…

tinyrenderer笔记(Shadow Mapping)

tinyrenderer个人代码仓库:tinyrenderer个人练习代码 前言 阴影是光线被阻挡的结果;当光源的光线由于其他物体的阻挡而无法到达物体表面时,该物体就会产生阴影。阴影能使场景看起来更真实,并让观察者获得物体之间的空间位置关系。…

debian中笔记本的省电选择auto-cpufreq

在reddit中,看评论区出现这个软件,于是打算尝试一下,应该能对不使用电源时笔记本的省电起到一定的作用。 https://github.com/AdnanHodzic/auto-cpufreq?tabreadme-ov-file#why-do-i-need-auto-cpufreq 作用 One of the problems with Linux…

Windows 查看电脑是否插拔过U盘

1、按 “WinR” 组合键打开 “运行” 对话框,输入 “regedit” 并回车,打开注册表编辑器。 2、依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR注册表项,这里记录了所有已连接过的 USB 设备信息,包括 U 盘&am…

426、N叉树的层序遍历

输入检查: if not root:return [] 如果根节点为空,直接返回空列表 初始化: result [] queue collections.deque([root]) result用于存储最终结果queue初始化包含根节点,使用双端队列实现 主循环: while queue:leve…

【ES】Elasticsearch字段映射冲突问题分析与解决

在使用Elasticsearch作为搜索引擎时,经常会遇到一些映射(Mapping)相关的问题。本文将深入分析字段映射冲突问题,并通过原生的Elasticsearch API请求来复现和解决这个问题。 问题描述 在实际项目中,我们遇到以下错误: Transport…

小红书怎么看自己ip地址?小红书更改ip地址教学

在社交媒体高度透明的今天,小红书等平台公开用户IP属地的功能引发了广泛讨论。无论是出于隐私保护的担忧,还是因需要切换属地,许多用户都迫切想知道:能否通过手动修改“伪装”所在地? 事实上,IP属地可能影…

深入理解 Java 观察者模式:原理、实现与应用

在软件开发领域,设计模式堪称开发者智慧的凝练结晶,它们为解决各类常见编程难题提供了行之有效的方案。观察者模式(Observer Pattern)作为行为型设计模式的重要一员,在处理对象间依赖关系与事件通知方面表现卓越。本文…

网络原理 TCP/IP

1.应用层 1.1自定义协议 客户端和服务器之间往往进行交互的是“结构化”数据,网络传输的数据是“字符串”“二进制bit流”,约定协议的过程就是把结构化”数据转成“字符串”或“二进制bit流”的过程. 序列化:把结构化”数据转成“字符串”…

2025年5月HCIP题库(带解析)

某个ACL规则如下:则下列哪些IP地址可以被permit规则匹配: rule 5 permit ip source 10.0.2.0 0.0.254.255 A、10.0.4.5 B、10.0.5.6 C、10.0.6.7 D、10.0.2.1 试题答案:A;C;D 试题解析: 10.0.2.000001010.00000000.00000010.0000000…

【Redis | 基础总结篇 】

目录 前言: 1.Redis的介绍: 2.Redis的类型与命令: 3.Redis的安装: 3.1.Windows版本 3.2.Linux版本 4.在java中使用Redis: 4.1.介绍 4.2.Jedis 4.3.Spring Data Redis 前言: 本篇主要讲述了Redis的…