IP报文在设备间传递的封装过程

IP报文传递过程

  • 1、PC1访问PC2报文传递过程
    • 1.1、PC1准备数据请求报文封装
    • 1.2、PC1准备ARP请求报文
    • 1.3、PC2准备ARP响应报文
    • 1.4、PC1完成数据请求报文封装
  • 2、PC1访问PC3报文传递过程
    • 2.1、PC1准备数据请求报文封装
    • 2.2、PC1准备获取网关MAC地址的ARP请求报文
    • 2.3、网关准备ARP响应报文
    • 2.4、PC1组装并发送到网关下一跳的报文
    • 2.5、网关组装发送到目标IP的报文
    • 2.6、网关准备获取PC3的MAC地址的ARP请求报文
    • 2.7、网关组装到PC3的数据请求报文
  • 3、小小小结语
  • 4、报文的解封装简述

IP报文在网络设备间的传递过程主要涉及到4个概念:源IP目的IP源MAC目的MAC

1、PC1访问PC2报文传递过程

1.1、PC1准备数据请求报文封装

由PC1向PC2发送数据报,可知此时的PC1已知以下参数:

数据请求报文源IP:192.168.1.1       目的IP:192.168.1.2
源MAC:0A:D0:CB:22:02:01 目的MAC:UNKOWN       
PC1此时需要得到一个目的MAC地址,才可以组装出到PC2的报文。

1.2、PC1准备ARP请求报文

报文的传递可分为二层传输和三层传输,PC1通过分析自己的CIDR,得出PC2与自己存在同一网段下,而同一网段可以直接通过二层传输,即目的MAC地址直接指向PC2。
为了获取PC2的MAC地址,PC1组装ARP请求报文发起ARP广播

ARP请求报文发送者IP:192.168.1.1       目标IP:192.168.1.2         
发送者MAC:0A:D0:CB:22:02:01目标MAC:FF:FF:FF:FF:FF:FF
PC1的ARP广播包通过通过交换机LSW1时,交换机会向所有UP状态的端口泛洪,PC2会收到这个广播包。

1.3、PC2准备ARP响应报文

PC2通过判断ARP广播包的目标IP地址是自己的IP地址,会通过单播的形式返回ARP响应包给PC1:

ARP响应报文发送者IP:192.168.1.2目标IP:192.168.1.1
发送者MAC:0A:D0:CB:22:02:02目标MAC:0A:D0:CB:22:02:01

PC2的ARP响应包经过交换机LSW1时,LSW1通过MAC地址表将此响应包发送给PC1,PC1此时得知PC2的MAC地址是54-89-98-A3-13-98。

1.4、PC1完成数据请求报文封装

此时PC1就可以组装并发送报文

数据请求报文源IP:192.168.1.1目的IP:192.168.1.2
源MAC:0A:D0:CB:22:02:01目的MAC:0A:D0:CB:22:02:02

报文经过LSW1时,LSW1通过MAC地址表,将报文转发至PC2,PC1向PC2的一次单向通信结束。

2、PC1访问PC3报文传递过程

2.1、PC1准备数据请求报文封装

由PC1发起到PC3的连接,可以判断,此时的PC1已知以下参数:

数据请求报文源IP:192.168.1.1目的IP:10.15.10.3
源MAC:0A:D0:CB:22:02:01目的MAC:UNKOWN
PC1此时需要得到一个目的MAC地址,满足四元组,才可以组装出报文。

报文的传递可分为二层传输和三层传输,PC1通过分析自己的CIDR,得出PC3与自己不在同一网段下,而不同网段需要通过三层网关传输。

PC1已知网关IP地址为192.168.1.254,PC1与网关之间是通过二层通信即MAC地址通信,因此PC1需要得知网关的MAC地址,才可以将报文顺利发送给网关。

2.2、PC1准备获取网关MAC地址的ARP请求报文

为了获取网关的MAC地址,PC1需要发起ARP广播:

ARP请求报文发送者IP:192.168.1.1目标IP:192.168.1.254
发送者MAC:0A:D0:CB:22:02:01目标MAC:FF:FF:FF:FF:FF:FF

2.3、网关准备ARP响应报文

同样网关收到PC1的ARP广播后,会单播回复ARP响应包给PC1:

ARP回复报文发送者IP:192.168.1.254目标IP:192.168.1.1
发送者MAC:0A:D0:CB:22:02:54目标MAC:0A:D0:CB:22:02:01

2.4、PC1组装并发送到网关下一跳的报文

此时PC1就可以组装并发送数据报文:

数据请求报文源IP:192.168.1.1目的IP:10.15.10.3
源MAC:0A:D0:CB:22:02:01 目的MAC:0A:D0:CB:22:02:54
注意:此时报文的目的MAC地址指向的是网关的MAC地址。

报文经过LSW1时,LSW1通过MAC地址表,将报文转发至网关,网关此时会关注报文中的目的IP这个参数。

2.5、网关组装发送到目标IP的报文

网关通过分析自己的CIDR,得出PC3与自己在同一个网段,即直连路由,可以通过二层直接转发至PC3。
此时网关需要将PC1的报文中源MAC地址及目的MAC地址修改,即:

数据请求报文源IP:192.168.1.1 目的IP:10.15.10.3
源MAC:0A:D0:CB:11:02:54 目的MAC:UNKOWN

2.6、网关准备获取PC3的MAC地址的ARP请求报文

源MAC 0A:D0:CB:11:02:54,为网关直连PC3接口的MAC地址,报文通过这个接口发出。由于PC3的MAC地址未知,网关会通过ARP广播查找PC3的MAC地址:

ARP请求报文发送者IP:10.15.10.254目标IP:10.15.10.3
发送者MAC:0A:D0:CB:11:02:54目标MAC:FF:FF:FF:FF:FF:FF

同样PC3单播回复ARP响应给网关:

ARP响应报文发送者IP:10.15.10.3目标IP:10.15.10.254
发送者MAC:0A:D0:CB:11:02:03目标MAC:0A:D0:CB:11:02:54

2.7、网关组装到PC3的数据请求报文

此时网关就可以组装并发送报文:

数据请求报文源IP:192.168.1.1目的IP:10.15.10.3
源MAC:0A:D0:CB:11:02:54目的MAC:0A:D0:CB:11:02:03

报文经过交换机LSW2,LSW2根据MAC地址表,将报文转发给PC3,PC1向PC3的一次单向通信结束。

3、小小小结语

数据报文在三层传输过程中,报文的MAC地址是不断变化的,报文的IP地址通常不变(除非经过NAT)。

4、报文的解封装简述

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

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

相关文章

Linux 下载 miniconda

https://repo.anaconda.com/miniconda/ 下载对应版本: wget -c https://repo.anaconda.com/miniconda/Miniconda3-py310_24.3.0-0-Linux-x86_64.sh给下载的文件添加可执行权限 chmod x Miniconda3-py310_24.3.0-0-Linux-x86_64.sh安装 ./Miniconda3-py310_24.3.…

复制粘贴插件——clipboard.js的使用

clipboard.js是一款使用简单的粘贴复制插件,它不依赖于Flash或其他框架,在github拥有3万多颗星可见其优秀程度,介绍如何使用它,以备存。 中文文档: clipboard.js 中文文档 - itxst.com 官网网站:https://github.com/…

神经网路与深度学习

1 深度学习简述 机器学习:相当于把公式实现出来了而已。 深度学习: (1)中的特征工程使机器学习更智能。 (2)真正能学什么样的特征才是最合适的。 (3)主要应用于计算机视觉和自然语…

【探索Java编程:从入门到入狱】Day5

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

Python深度学习基于Tensorflow(4)Tensorflow 数据处理和数据可视化

文章目录 构建Tensorflow.data数据集TFRecord数据底层生成TFRecord文件数据读取TFRecord文件数据图像增强 数据可视化 构建Tensorflow.data数据集 tf.data.Dataset表示一串元素(element),其中每个元素包含一个或多个Tensor对象。例如&#xf…

XSS-Labs 靶场通过解析(上)

前言 XSS-Labs靶场是一个专门用于学习和练习跨站脚本攻击(XSS)技术的在线平台。它提供了一系列的实验场景和演示,帮助安全研究人员、开发人员和安全爱好者深入了解XSS攻击的原理和防御方法。 XSS-Labs靶场的主要特点和功能包括:…

【QT教程】QT6蓝牙编程 QT蓝牙编程

QT6蓝牙编程 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费QT视…

Transformer模型详解03-Self-Attention(自注意力机制)

文章目录 简介基础知识什么是AttentionSelf Attention原理通俗易懂理解矩阵计算Q,K,V计算Self-Attention 的输出 优势 Multi-head self-attention原理通俗易懂理解矩阵计算代码实现 简介 下图是论文中 Transformer 的内部结构图,左侧为 Enco…

代码随想录算法训练营day20 | 110.平衡二叉树、 257. 二叉树的所有路径、404.左叶子之和

110.平衡二叉树 平衡二叉树需要看左右节点的深度是不是相差<1 未看题解前 class Solution:def isBalanced(self, root: Optional[TreeNode]) -> bool:if not root:return Trueif abs(self.depth(root.left) - self.depth(root.right)) > 1:return Falsereturn self…

哪里有视频素材可以用?全视频素材都在哪里找?

在这个数字化快速发展的世界中&#xff0c;高清和4K视频素材对于提升视觉故事的品质至关重要。以下是一系列全球知名的视频素材网站&#xff0c;它们提供的高质量素材能够满足您从商业广告到个人项目的所有需求。 1. 蛙学府 以其庞大的创意资源库著称&#xff0c;订阅者可以无…

【数据流图】用JointJs实现数据流图(一)

一、效果图 二、为什么选用JointJs&#xff1f; 节点是动态绘制的JointJs绘制流向线条时不会遮挡住下方的节点元素&#xff0c;方便绑定事件做拓展JointJs提供丰富的API&#xff0c;虽然比较底层但是拓展灵活连线不仅可以通过坐标点连接&#xff0c;还可直接根据节点连接 三、…

如何使用Vite快速构建vue项目

1、在自己定义的目录下打开cmd命令窗口&#xff1a;如文件夹目录上面输入cmd回车就可以打开 2、检查 node环境&#xff1a;通过node --version看版本号表示安装好了 3、 使用Vite 快速构建Vue项目 npm init vitelatest qiuqiu.admin 注意&#xff1a;如何你电脑没有装vite首…

PCIE协议-2-事务层规范---事务描述符

2.2.6.1 概览 事务描述符是请求者和完成器之间传输事务信息的机制。事务描述符由三个字段组成&#xff1a; 事务ID&#xff1a;标识未完成的事务属性字段&#xff1a;定义事务的特征流量类别&#xff08;TC&#xff09;字段&#xff1a;将事务与所需的服务类型关联起来 图2-…

EasyHPC - PyTorch入门教程【笔记】

内容来源&#xff1a;超算习堂 (easyhpc.net) 文章目录 01 Tensors环境要求1.1 Tensors1.1.1 直接创建tensor1.1.2 在现有tensor中创建tensor1.1.3 从NumPy中创建tensor 1.2 基本运算1.2.1 使用运算符1.2.2 调用方法 1.3 CUDA Tensors 02 Autograd2.1 Tensor2.2 Gradient 03 Ne…

实现流程化办公,可了解一下可视化报表开源

当前&#xff0c;实现流程化办公早已成为众多中小企业的发展目标和趋势。可以借助什么样的软件平台实现这一目标&#xff1f;低代码技术平台拥有可视化操作界面、够灵活、易维护等优势特点&#xff0c;在助力企业实现流程化办公、数字化转型方面具有重要的应用价值和推动作用。…

[华为OD] C卷 田忌赛马 DFS 200

题目&#xff1a; 给定两个只包含数字的数组a, b,调整数组a里面数字的顺序&#xff0c;使得尽可能多的a[i] >b[i]。 数组a和b中的数字各不相同。 输出所有可以达到最优结果的a数组的数量 输入描述 输入的第一行是数组a中的数字&#xff0c;其中只包含数字&#xff0c;每…

【0002day】HistCite的使用

HistCite是一个很好的软件&#xff0c;可以找出一个领域中具有代表性的几篇文章。同时使用也比较方便&#xff0c;因而我学习了一下它&#xff0c;并做一下记录。 分析过程 首先&#xff0c;需要选择核心数据库&#xff0c;然后依据关键字进行检索。 检索出来后&#xff0c;将…

Secure Transformer Inference Made Non-interactive

目录 1.概述2.Attention2.1 Matrix multiplication (ciphertext-plaintext).2.2 Matrix multiplication (ciphertext-ciphertext)2.3 Placement of bootstrapping3.SIMD密文压缩和解压缩4.SIMD槽折叠5.实验结果 1.概述 我们提出了NEXUS&#xff0c;这是第一个用于安全变压器推…

为什么要使用jvm,而不是直接启动类文件

JVM&#xff08;Java虚拟机&#xff09;是Java程序的运行环境&#xff0c;它负责将Java源代码编译成字节码&#xff0c;并在运行时负责解释和执行这些字节码。当你直接启动一个Java类时&#xff0c;实际上是启动了JVM&#xff0c;并指定了要执行的类。 以下是为什么要通过启动…

【QT教程】QT6与硬件接口编程 QT硬件编程

QT6与硬件接口编程 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免…