协议数据单元 帧 包 段 报文之间的区别

2023-05-16

Overview [1]

协议数据单元 Protocol Data Unit (PDU) 是应用于OSI模型中的数据结构,在OSI模型中每一层都会被添加一个header,tailer进行封装,header, tailer加原始报文的组合就是PDU。

在每层中,PDU的名称都是不同的,这也是很多人的疑问,一会数据报文称为数据包,一会数据报文成为数据帧,该文介绍网络中的单元,以了解之间的区别

物理层

物理层数据的呈现方式是以 “位” (bit) 为单位的,即0 1,在该层中数据以二进制形式进行传输

数据链路层 [2]

到达数据链路层,实际上可以说进入了TCP/IP栈对底层,而该层的单位为 ”帧“ (frame),该层中,MAC地址会被封装到数据包中,比如以太网帧,PPP帧都是指该层的数据包

该层中数据帧包含:

  • 源MAC
  • 目的MAC
  • 数据,由网络层给出的
  • 数据的总长度
  • 校验序列

网络层 [3]

在网络层中协议数据单元被称为数据 “包" (package) ,是网络间节点通讯的基本单位。该层中IP地址会被封装到数据包内。

该层中数据包包含:

  • 标头:源IP,目的IP,协议,数据包编号,帮助数据包匹配网络的位
  • playload:数据包的主体
  • 标尾:包含几个位,用于告知已到达数据包的末尾与错误检查(循环冗余检查 (CRC))
img
图:数据包组成
Source:https://computer.howstuffworks.com/question525.htm

例如一个电子邮件,假设电子邮件大小尾3500bit,发送时使用1024的固定大小数据包进行发送,那么每个数据包标头为 96bits,标尾为 32bit,剩余 896bits 将用于实际的数据大小。这里为3500bits,会被分为4个数据包,前三个数据包为 896bits,最后一个数据包大小为 812bits。接收端会根据包编号进行解包重组

传输层

Segment

在传输层TCP协议的协议数据单元被称为 ”段“ (Segment) ,上面讲到,IP数据包会以固定大小的数据包进行发送,如果超出大小的会被划分为多个数据包,每个数据包的碎片就被称之为Segment

数据包分割通常会发生在该层,当发生下列场景时会需要分段

  • 数据包大于网络支持的最大传输单元 (MTU)
  • 网络不可靠,将数据包分为更小的包

datagram [4]

在传输层UDP协议的协议数据单元被称为 ”数据报“ (datagram) ,datagram是一种逐层增加的设计,用于无连接通讯

下图是一个UDP数据报被封装位一个IP数据包:IPv4字段值位17 表示udp协议

img

图:udp的IP包

Source:https://notes.shichao.io/tcpv1/ch10

对于udp数据报的组成包含header与playload,udp的header大小为固定的8字节

  • 源端口:可选
  • 目的端口:识别接收信息的进程
  • Length:udp header + udp playload的长度,最小值为8
  • checksum:与lenght一样其实是多余的,因为第三层包含了这两个信息

img

图:udp数据报组成
Source:https://notes.shichao.io/tcpv1/ch10

Notes:使用UDP时应注意避免分段,例如帧中MTU为 1500 字节,假设 IPv4 header为 20 字节,UDP header 为 8 字节,则应用程序最多为数据留下 1472 字节以避免碎片

数据

对于传输层之上,协议数据单元没有特定的名词,可以统称为协议数据单元或者数据,整个PDU分层结构图如下图所示,其中 T 表示 Trailer,H 表示 Header,通常H包含源地址和目的地址及一些用于管理通信的控制信息。T含错误检查之类的信息或标志 PDU 结束的字段。

img

图:PDU分层结构图
Source:http://www.telecomworld101.com/Intro2dcRev2/page108.html

Notes:每层的数据字段都由上一层PDU组成,通常情况下,每层只知道自己该层的信息,如网络层仅知道对端网络层,而不知道数据链路层或传输层

Reference

[1] Protocol Data Unit

[2] difference between segments packets and frames

[3] What is a packet?

[4] User Datagram Protocol (UDP) and IP Fragmentation

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

协议数据单元 帧 包 段 报文之间的区别 的相关文章

  • ssh详解

    SSH ssh secure shell protocol 22 tcp 安全的 具体的软件实现 xff1a OpenSSH ssh协议的开源实现 xff0c CentOS dropbear xff1a 另一个开源实现 SSH协议版本 v1
  • spring框架的简单配置步骤——小马同学@Tian

    spring框架配置步骤 1 导入jar包 本教程使用spring5 1 5 xff0c 在pom xml中进行导入依赖 Maven方式 xff1a span class token tag span class token tag spa
  • PSReadLine - Powershell 的强化工具

    PSReadLine Powershell 的强化工具 UPDATE 2022 3 4 根据其 Github README 的说明 xff0c If you are using Windows PowerShell on Windows 1
  • 美化 PowerShell

    美化 PowerShell UPDATE 2022 3 4 本文使用的 oh my posh 基于 V2 版本 xff0c 而更新且功能更强大的新版本已经发布 xff0c 如需使用请参考其官方文档 1 准备工作 Step1 下载并安装 Po
  • nltk下载语料库

    1 首先我们使用命令pip list查看是否安装了nltk模块 xff0c 如果没有 xff0c 则执行命令pip3 install nltk进行安装 2 之后 xff0c 我们在Jupyter Notebook中进行语料库的安装 impo
  • Spark scala和java的api使用

    Spark scala和java的api使用 1 利用scala语言开发spark的worcount程序 xff08 本地运行 xff09 package com zy spark import org apache spark rdd R
  • 解决Ubuntu18.04循环登录/卡在开机界面/无法进入图形界面的问题

    原因 xff1a NVIDIA显卡驱动损坏 解决方案 xff1a 重启进入命令行模式卸载原有NVIDIA驱动程序重新安装NVIDIA驱动后重启 xff0c 问题解决 Step1 Ubuntu系统开机进入命令行模式 系统启动后 xff0c 在
  • C++ 遍历注册表项下的所有键和值

    include 34 stdafx h 34 include lt time h gt include lt windows h gt include lt iostream gt include lt stdio h gt include
  • 9月10日美团网2014校招研发笔试哈尔滨站

    1 链表翻转 给出一个链表和一个数k xff0c 比如链表1 2 3 4 5 6 xff0c k 61 2 xff0c 则翻转后2 1 4 3 6 5 xff0c 若k 61 3 翻转后3 2 1 6 5 4 xff0c 若k 61 4 x
  • 2014校园招聘京东软件开发类笔试(完整版)

    时间 xff1a 2013 9 10 2013 10 8 地点 xff1a 四川大学 天津大学 职位 xff1a 软件开发工程师岗 语言 xff1a java 1 A 2 C 3 D 4 B 5 A 二 1 B 三1 D 2 B 3 C 4
  • Win8.1电脑声音可以外放但是插入耳机没有声音

    今天早上正准备学习英语 xff0c 发现耳机插入电脑没有声音 xff0c 于是开始找百度 xff0c 一步一步剥茧抽丝去查找问题来源 问题 xff1a 点击喇叭出现如下图片 xff1a 平常只有右半个图现在却有两个图标了 步骤 xff1a
  • 在线购物系统问题描述&领域词汇表

    在线购物问题描述 v2 0 时间 2017年 4月19日星期三 参与者在线客户能够通过网站完成在线购物 xff0c 顶层用况包括商品信息浏览 购物 咨询 用户注册 xff0c 用户登录 用户反馈 浏览商品用况可以用于客户寻找和浏览想要看的商
  • 在线购物领域类图

  • 在线购物系统用况分析

    一 系统用况图 1 用况图 2 xff08 1 xff09 用况图综述 系统主要是使顾客方便安全地购物 xff0c 已注册顾客可以通过系统查找 浏览 购买商品 xff0c 并且能够进行评价商品 与相应的商家沟通 或者向网站管理人员反馈问题
  • 被做成类似通信图的分析类图

    实验二博客 xff1a http blog csdn net simonruyang article details 70332294 一 注册 1 图形如下 2 文字说明 xff08 1 xff09 类图综述 目的 xff1a 让未注册顾
  • 顺序图实验记录,又懒又差劲,好懒好懒

    实验二博客 xff1a http blog csdn net simonruyang article details 70332294 一 注册 1 图形如下 2 文字说明 xff08 1 xff09 类图综述 目的 xff1a 让未注册顾
  • 承上的状态机图,又是烂图一副

    1 图形文档如下 2 文字说明 此状态机图反映了系统面向顾客从注册到购物完成的整体的状态变迁以及状态内部发生的事件 xff0c 一共有六个状态 xff0c 状态间转移如上图所示 2 1 ViewItems 中的事件 2 2 Register
  • 让Windows秒变Mac主题,还原度高达99%

    小伙伴们注意 xff1a 公众号的推送机制不再按照时间前后推送了 xff0c 微信公众号信息流乱序 君哥建议大家把科技毒瘤君公众号置顶 xff08 设为星标 xff09 xff0c 以便第一时间看到推送 xff0c 非常感谢 xff0c 方
  • 阿里Arthas(阿尔赛斯)-java诊断工具使用入门

    1 下载官方测试程序启动 doda 64 host166 game curl O https arthas aliyun com math game jar doda 64 host166 game java jar math game j
  • LHL 华为开发者大会有感 之 什么是HMS

    华为移动服务 同义词 HMS xff08 Huawei Mobile Services的英文缩写 xff09 一般指华为移动服务 华为移动服务 xff08 HMS xff09 全称为Huawei Mobile Services xff0c

随机推荐

  • EF Core之自动历史记录

    EF Core之自动历史记录 有的场景下需要记录特定表的增删改操作 xff0c 以便追溯 传统的做法是在增删改的方法里同步做记录 xff0c 很繁琐 在这里我们可以配合EF Core的DBContext做一个全局管控 全局管控自然就要有固定
  • SQL Server 2012 导出数据及分离MDF、LDF

    最近在设计数据库时看到自己设计的数据库和师哥师姐给我们的不一样 xff0c 于是就查了一下把数据库导出写了下来 分离数据库步骤 这是师哥师姐给我们的数据库格式 xff0c 如下 xff1a 那么如何生成MDF和LDF格式的数据库呢 xff1
  • kindeditor异步加载时无法显示编辑框

    事情是这样的 xff0c 我在A页面的div通过 jQuery load 方法载入一个页面B时 xff0c B页面带有编辑框 textarea xff0c 现在想让这个 textarea 显示为一个 kindeditor的富文本编辑区域 x
  • VR游戏设计之三大特性

    2016 年 9 月 23 24 日 xff0c 由 CSDN 和创新工场联合主办的 MDCC 2016 移动开发者大会 中国 xff08 Mobile Developer Conference China xff09 将在北京 国家会议中
  • 组合导航系列文章(十二):滤波器基本原理

    我觉得不错的地方 3 滤波器估计原理 组合导航中 xff0c 先验是imu解算的值 xff0c 观测是gps等传感器给出的值 xff0c 融合的目的是找到概率最大的那个值 上面介绍的三种方法都是对先验和观测的融合 xff0c 由于极大似然要
  • Android 未进行依赖管理导致的问题:IDE 报错 “Unresolved reference: registerForActivityResult“但是能正常编译运行

    前言 谷歌前段时间废弃了 startActicityForResult 取而代之的是 ActicityResultApi xff0c 作为一个紧跟谷歌步伐走的菜鸟开发者 xff0c 当然想着的是第一时间学习并替换项目中的相关代码 但是 xf
  • 基于DataBinding的基类(Activity、Fragment、Adapter)

    基于DataBinding的基类 xff08 Activity Fragment Adapter xff09 1 BaseBindActivity public abstract class BaseBindActivity lt DB e
  • STM32 LwIP单网卡绑定多个IP地址

    STM32 LwIP单网卡绑定多个IP地址 芯片 xff1a STM32F107VC 编译器 xff1a KEIL4 作者 xff1a SY 日期 xff1a 2018 6 28 11 02 53 概述 在只有一个物理网卡的情况下 xff0
  • nginx 配置https 并兼容http 或强制http 转为https

    当我们升级http 为https时 xff0c 为了兼顾一些访问者还是通过http访问的方式 xff0c 我们通常采用两种方式 第一种 xff1a http 可以访问 xff0c https也可以访问 第二种 xff1a http 访问时
  • 滤波学习理解----EKF(一)

    最近回到slam方向了 xff0c 所以有时间整理一下最近的收获 最复杂也是最简单的模块 滤波 引入 那么滤波是什么呢 xff1f 滤波就是由于观测observation xff08 OB xff09 天生具备的误差和噪声 当有多个信号源观
  • systemd开机启动和关机回调脚本

    一 开机执行一次的脚本 我们通过可以创建一个 etc rc local文件 xff1a etc rc local文件内容如下 xff1a span class token operator span span class token ope
  • (五)Selenium自动化测试实战—PO模式

    nbsp 上一篇 四 selenium自动化测试之上传本地文件 要开朗的spookypop的博客 CSDN博客 selenium上传本地文件 先看下测试代码运行效果 在做自动化测试时 测试框架设计很重要 测试代码写法也很多种 最简单的莫过于
  • 网络隧道技术

    隧道技术摘要 隧道技术 xff08 Tunneling xff09 是网络基础设置在网络之间传递数据的方式 xff0c 使用隧道技术传递可以是不同协议的数据包 xff0c 隧道协议将这些其他协议的数据包重新封装在新的包头中发送 被封装的数据
  • 数据库的备份和还原

    数据库的备份和还原是一个很重要的问题 xff0c 有时候我们一个误删可能数据库里的数据就都没有了 xff0c 所以一定要做好备份的工作 备份 1 右击 任务 备份 2 选择要备份的数据库 xff0c 和备份的类型 完整 xff0c 添加 3
  • 海信A6/A6L A7Pro/CC A5PRO/A5PRO CC 安装gms google service指南

    用过海信双面屏或者eink手机的朋友都知道 xff0c 海信手机就是死活安装不了谷歌全家桶 xff0c 因为海信的领导说跟谷歌有协议不能安装谷歌框架 xff08 还说后期google审核坚决不给安装 xff0c 人家其他ov mui都可以安
  • Windows Terminal无法加载WSL [process exited with code 4294967295 (0xffffffff)]

    在Windows Terminal中WSL无法打开错误代码是 process exited with code 4294967295 0xffffffff xff0c 但在命令行中 通过 34 C Windows System32 wsl
  • 【经验分享】PC端免费高效的同声翻译

    2022 09 26 谷歌翻译退出中国市场 translate googleapis com 与 谷歌翻译web translate google cn现在无法用了 最新解决方法见 https blog csdn net sinat 240
  • 巧用Prometheus来扩展kubernetes调度器

    Overview 本文将深入讲解 如何扩展 Kubernetes scheduler 中各个扩展点如何使用 xff0c 与扩展scheduler的原理 xff0c 这些是作为扩展 scheduler 的所需的知识点 最后会完成一个实验 xf
  • 【C】目录

    ch0 idech01 变量和数据结构ch02 格式化与流程控制ch03 数组ch04 函数ch05 指针ch06 关于C语言的内存布局ch07 复合结构ch08 文件处理
  • 协议数据单元 帧 包 段 报文之间的区别

    Overview 1 协议数据单元 Protocol Data Unit PDU 是应用于OSI模型中的数据结构 xff0c 在OSI模型中每一层都会被添加一个header xff0c tailer进行封装 xff0c header tai