封装与解封装

2023-10-31

封装与解封装

在这里插入图片描述

封装:将数据变为比特流的过程中,在参考模型的每一层需要添加上特定的协议报头动作

动作:从高层往低层依次封装,在每一层使用特定的协议,对数据进行处理,在数据前添加特定的协议报头。

封装原则

1:每一层在上一层数据前添加协议报头

2:添加完协议报头的整体,就是该层的PDU

3:每一层的PDU对于下一层来说就是上层数据(每一层的上层数据就是上层的PDU)

PDU(协议数据单元,也就是每层的数据单位)

应用层:APDU

表示层:PPDU

会话层:SPDU

传输层:段(segment)

网络层:包(packet)

数据链路层:帧(frame)

物理层:比特(bit)

封装由发送者发送出去,数据只有被封装以后才有可能被发送出去。

  • 封装过程

    • 应用层:原始数据被转换成二进制数据

    • 传输层:二进制数据被分割成小的数据段,并封装TCP头部 (数据段)
      (TCP头部的关键信息–端口号)

    • 网络层:传输层传来的数据被封装上IP头部 (数据包)
      (IP头部的关键信息–IP地址)

    • 数据链路层:网络层传来的数据被封装上MAC头部 (数据帧)
      (MAC头部的关键信息–MAC地址)

    • 物理层:二进制数据组成的比特流转化为电信号在网络中传输 (比特流)

在这里插入图片描述

主机在封装数据包之前,必须要知道目的端IP地址,在封装数据帧之前,必须要知道去往目的网络的路由以及下一跳的MAC地址。

  • 封装的必要参数

    • 传输层:源端口号 目标端口号

    • 网络层:源IP地址 目标IP地址

    • 数据链路层:源MAC地址 目标MAC地址

解封装 :封装的逆过程,数据从比特流还原为数据的过程

动作:从底层往高层依次解封装,每解封装一层,会将该层的忒点那个协议报头去掉

  • 解封过程
    • 物理层:将电号转化为二进制数据,并将其送至数据链路层
    • 数据链路层:查看MAC地址,地址是自己,就拆掉MAC头部,继续传输
      地址不是自己,就丢弃数据
    • 网络层:查看IP地址,地址是自己,就拆掉IP头部,继续传输
      如果IP地址不是自己,则会路由表查找去往该网段的下一跳地址。如果存在转发路径,会为数据包添加一个新的二层帧头和帧尾部。
    • 传输层:查看TCP头部,判断应该传到哪里,然后重组数据,传输到应用层
    • 应用层:二进制转化为原始数据
      在这里插入图片描述

解封装原则

1:必须从底层往高层解封装

2:解封装时,只有协议报头合理,才可以解封装。

3:解封装一旦停止,数据就会被丢弃

解封装由接收者触发,数据必须经过解封装才可以被接受

数据链路层分为两个子层:

LLC子层:逻辑链路控制子层–负责和上层协商,使用SAP来区分不同的上层协议

MAC子层:介质访问控制子层

数据链路层有FCS(帧检验字段)用于检测数据的完整性

LLC子层提供服务访问点(SAP),标识上层协议

1:每一层都需要利用下层的服务进行通信

2:每一层都需要为上层服务,所以需要标识上层所使用的协议或应用

传输层:使用端口号标识上层应用

网络层:使用协议号标识上层应用

(注:可能有部分内容参考于其他博主,仅用于个人学习。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

封装与解封装 的相关文章

  • (力扣23)合并排序链表,采用分治思想

    题目 给定一个链表数组 每个链表都已经按升序排列 请将所有链表合并到一个升序链表中 返回合并后的链表 什么是归并排序 归并排序的时间复杂度仅次于快排 归并排序算法每次将序列折半分组 共需要logn轮 因此归并排序算法的时间复杂度是O nlo
  • Linux下TCP编程

    服务器端在Linux环境下 Server cpp include
  • 从壹开始前后端分离[.netCore 不定期 ] 36 ║解决JWT自定义中间件授权过期问题

    缘起 哈喽 老张的不定期更新的日常又开始了 在咱们的前后端分离的 net core 框架中 虽然已经实现了权限验证 框架之五 Swagger的使用 3 3 JWT权限验证 修改 只不过还是有一些遗留问题 最近有不少的小伙伴发现了这样的一些问
  • flutter 修改iOS app图标 名称

    这里主要讲2点 一是 iOS app的图标尺寸大小 二 是如何修改iOS app图标以及名称 iOS图标尺寸大小 首先我们打开xcode 并打开项目 找到app图标的位置 接下来我们可以看到图标下面有很详细的pt提示 这里的pt跟web的p
  • 对四位数加密

    输入1个四位数 将其加密后输出 方法 1 将该数每一位上的数字加9 然后除以10取余 做为该位上的新数字 2 第1位和第3位上的数字互换 第2位和第4位上的数字互换 组成加密后的新数 例 括号内是说明 输入 1257 输出 The encr
  • IDEA JAVA文档注释和方法注释模板

    IDEA JAVA文档注释和方法注释模板 文档注释 if PACKAGE NAME PACKAGE NAME package PACKAGE NAME end parse File Header java ClassName NAME De
  • 修改mysql数据库的默认编码方式

    修改my ini文件 加上 default character set gb2312 设定数据库字符集 alter database da name default character set charset 1 设置数据库编码 etc m
  • 【ReID】【Skimming】Unity Style Transfer for Person Re-Identification

    ReID Skimming Unity Style Transfer for Person Re Identification 模型 实验 略读了新发布的基于GAN方法的ReID工作 Unity Style Transfer for Per

随机推荐

  • qt 绘制消息框_Qt——消息对话框的设计

    1 消息对话框是什么 消息对话框 MessageBox 提供了一个模态对话框 用来通知用户某些信息 或者用来询问用户一个问题并获得一个答复 先看下面2张图 第一张图是网易云音乐的界面截图 在删除歌单时 防止用户误操作 弹出了一个提示 提醒用
  • 可变参数, printf 实现的原理 ,va_start和va_end

    对于可变参数的函数可以 使用下面的宏来 获取输入的每一个参数 这些宏定义在stdarg h中 typedef char va list va start宏 获取可变参数列表的第一个参数的地址 list是类型为va list的指针 param
  • 大一python考试知识点_Python基础知识点整理

    参考资料 1 廖雪峰 内容整理 函数 函数返回 函数执行时遇到return即执行完毕 返回结果 没有return 执行完毕返回None return None可以简写为return 内建函数 高效快速 e g input ord pow i
  • 等保2.0一级安全要求

    第一级安全保护能力 应能够防护免受来自个人的 拥有很少资源的威胁源发起的恶意攻击 一般的自然灾难 以及其他相当危害程度的威胁所造成的关键资源损害 在自身遭到损害后 能够恢复部分功能 1安全通用要求 1 1安全物理环境 1 1 1物理访问控制
  • 04_Pandas获取和修改任意位置的值(at,iat,loc,iloc)

    04 Pandas获取和修改任意位置的值 at iat loc iloc 要在pandas DataFrame中的任何位置检索或更改数据 可以使用at iat loc iloc 位置的指定方法 at loc 行标签 行名 列标签 列名 ia
  • 一种基于光流的无人机仿生智能避障方法

    转自 https patents google com patent CN106155082A zh 一种基于光流的无人机仿生智能避障方法 技术领域 0001 本发明涉及一种单目视觉的基于光流的无人机智能仿生避障方法 特别是属于人 工智能以
  • android更新ui能在主线程,真的必须要在主线程更新UI吗?

    一般UI更新都会调用requestLayout 或者invalidate 自定义view 也要如此 android view RemotableViewMethod public void setWidth int pixels mMaxW
  • P1790 小胡同学的连通图

    用并查集做 include
  • Unity—“合成大西瓜”小游戏笔记

    期盼已久的合成大西瓜 来喽 这是一款一点也不好玩 但是可以一玩玩三个小时的小游戏 废话不多说 直接上代码 gt 水果脚本 音效脚本 UI分数脚本 玩家操作脚本 using System Collections using System Co
  • 从原理到应用落地,一文读懂推荐系统中的深度学习技术

    作者丨gongyouliu zandy 来源丨大数据与人工智能 ID ai big data 2016年DeepMind开发的AlphaGo在围棋对决中战胜了韩国九段选手李世石 一时成为轰动全球的重大新闻 被全球多家媒体大肆报道 Alpha
  • Linux GCC常用命令

    1简介 2简单编译 2 1预处理 2 2编译为汇编代码 Compilation 2 3汇编 Assembly 2 4连接 Linking 3多个程序文件的编译 4检错 5库文件连接 5 1编译成可执行文件 5 2链接 5 3强制链接时使用静
  • Excel做题记录——整数规划优化模型

    文章目录 题目 一 首先根据题目要求提取信息 并列出数学模型 二 通过Excel里的 规划求解 来解出答案 1 创建数据表格 2 根据数学模型设置数据 3 使用 规划求解 功能求解 i 变量都为整数 ii 约束量 总重量 小于等于50 参考
  • 【大数据】——处理框架

    说起大数据处理啊 一切都起源于Google公司的经典论文 在当时 2000年左右 由于网页数量急剧增加 Google公司内部平时要编写很多的程序来处理大量的原始数据 爬虫爬到的网页 网页请求日志 计算各种类型的派生数据 倒排索引 网页的各种
  • EtherNet/IP网络模型

    一 常识入门 0 为什么需要CIP协议 CIP协议 Common Industrial Protocol 是一种工业通信协议 旨在实现不同设备 控制器和系统之间的数据交换和控制 CIP协议的使用有以下几个原因 统一标准 CIP协议是一个公认
  • crawlSpider,分布式爬虫,增量式爬虫

    一 crawlSpider 1 上次了一种爬取全站数据是基于Scrapy框架中的Spider的递归爬取进行实现 Requests模块递归回调parse方法 2 现在在讲介绍一种比较好用的方法 基于CrawlSpider的自动爬取进行实现 更
  • 关于LBP特征等价模式的解释

    为了解决二进制模式过多的问题 提高统计性 Ojala提出了采用一种 等价模式 Uniform Pattern 来对LBP算子的模式种类进行降维 Ojala等认为 在实际图像中 绝大多数LBP模式最多只包含两次从1到0或从0到1的跳变 因此
  • C#操作MSSQL数据库 -增删改查

    要在C 中连接到Microsoft SQL Server数据库 MSSQL 你可以使用 NET Framework提供的System Data SqlClient命名空间中的类 以下是一个简单的示例代码 展示了如何在C 中使用MSSQL数据
  • 二叉查找树特性,优点,缺点

    概述 二叉排序树 Binary Sort Tree 又称二叉查找树 Binary Search Tree 亦称二叉搜索树 是数据结构中的一类 在一般情况下 查询效率比链表结构要高 定义 一棵二叉查找树是一棵二叉树 每个节点都含有一个Comp
  • Snap年度AR生态大会Lens Studio资讯:AR应用状况、制作工具Lens Studio和内容生态

    这两天我阅读了一些公众号关于Snap公司召开的AR生态大会Lens Fest 2021报道 并在官网观看了相关视频 这些资讯让我对AR增强现实目前的应用状况和制作技术有了一个全新的了解 结论 整场大会看完之后 我的感觉主要有三点 过去 人们
  • 封装与解封装

    封装与解封装 封装 将数据变为比特流的过程中 在参考模型的每一层需要添加上特定的协议报头动作 动作 从高层往低层依次封装 在每一层使用特定的协议 对数据进行处理 在数据前添加特定的协议报头 封装原则 1 每一层在上一层数据前添加协议报头 2