【概念解释】packet, frame,...

2023-05-16

参考

[1] Definition of Network Units: Packet, Fragment, Frame, Datagram, and Segment
[2] Difference between Frame and packets in IEEE 802.11

1 背景

不同的OSI层 & 不同的协议都有自己的 specific units
the packet, fragment, frame, datagram, and segment, …
作为wireless领域的的phd candidate,目前还并不是很清晰这些units的具体定义以及互相之间的联系,因此专门写一篇笔记理一下

2 OSI model

先复习一下
在这里插入图片描述

在这里插入图片描述
下面从底层向高层记录

3 Frame

frames are small parts of a message

It helps to identify data and determine the way it should be decoded and interpreted

frame有两种类型:
fixed-length and variable-length frames

variable-length frames需要规定起始符和结束符,fixed-length frame不用

4 Packet & Frame

The basic unit of communication between a source and a destination in a network. Data sent through the network is divided into packets, that are recombined by the destination devices.

packets结构如下
在这里插入图片描述


Frame & Pakcet区别

The main difference between a packet and a frame is the association with the OSI layers

A frame contains more information about the transmitted message than a packet

Frames are not much different from packets. Frames contain more information about the data than Packets

越往底层,units包含的信息越多,越复杂。


In each network, there is a maximum size of the data to be transmitted called the MTU (Maximum Transmitted Unit). Packets can often be larger than the maximum size, so each packet is also divided into smaller pieces of data called fragments.

Fragment仍然属于网络层

When the network layer receives a packet, it checks the MTU of the packet. If the packet length is bigger than the MTU, the network layer checks the Don’t Fragment (DF) flag associated with the packet. If the DF flag is 1, we discard the packet. Otherwise, the network layer decides the size of the fragments, create the header, encapsulate the fragments within the header, and send them to the next layer在这里插入图片描述
现在知道路由器是干啥用的了

5 Datagram & Segment

In a datagram, we divide data frequently and transmitted from source to destination without a predefined route. We also can’t guarantee the order of delivery to the receiver end.

While TCP uses packets in connection-oriented protocols, datagrams are used in UDP, making them carry less information since they don’t need to have a response message from the destination

In the case we sent an email using the UDP protocol, there will be no packets but datagrams. The information transmitted would be in the following figure:
在这里插入图片描述
A segment is a broken piece of a packet with a TCP header in each of them

f we sent an email with a TCP connection, then the data that exists in the transport layer to complete the operation is an example of a segment. The email packet will then become:

在这里插入图片描述

6 Specificaitons on PHY layer

上面是广义的计算机网络的知识, network layer的pakcet作为payload被包含在data link layer的frame中

在 PHY layer中,packet 与 frame有另外的意思

比如在 IEEE 802.11标准中(WIFI)的packets中,the frame is encapsulated within the data field of the packet

在matlab的数据处理中,也经常用frame来作为数据单位,比如处理音频流时的长度参数叫frameLength

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

【概念解释】packet, frame,... 的相关文章

  • 为什么这段代码的JTextArea占据了整个JFrame?

    我希望框架的一部分包含 JTextArea 但它完全占据了 我无法在这里追踪错误 import java awt import javax swing public class EchoServer public static void m
  • 添加 TabBarController 作为视图的子视图

    当我的应用程序启动时 我正在加载启动屏幕 然后我想加载一个TabBarController 它是ViewControllers 但是 我的 TabBarController 窗口无法缩放到屏幕尺寸 底部的 TabBar 的 3 4 可能被切
  • 在PHP中接收UDP数据包数据报

    我正在用 php 为 GPS 跟踪系统构建监听服务器 GPS 通过 UDP 数据包发送数据 我可以通过运行以下脚本来显示数据 然而 实际数据以符号形式出现 所以我猜我错过了转换 Reduce errors error reporting E
  • Android 上有管理 TCP 数据包的库吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的 Python3 本地 LAN 服务器脚本和我的 Android 设备之间建立连接 在
  • Android-在两个视图之间绘制线

    下面是我的程序 我在框架中创建了三个新视图 单击两个不同的视图时 我想在视图之间画一条线 我正在尝试弄清楚如何做到这一点 Ball ball1 new Ball this 100 100 45 Ball ball2 new Ball thi
  • 当我们调整窗口大小时,Container 中的元素如何调整?

    下面是一个窗口的代码 当用户单击一个按钮时 该窗口会更改颜色 并在单击另一个按钮时更改标签的文本 它有两个按钮 一个用于保存按钮的面板 一个标签和一个用于图形的面板 概念解释 首先 我添加了label to the North的一部分fra
  • 如何阅读 FSM 图

    我如何获取该图并将其转换为可用的程序 我不太确定如何阅读该图 引导我完成它 也许会展示一个代码示例以及它与图表的关系 里面有文字的圆圈是州 文本描述了状态是什么 虚线箭头指向起始状态 传出箭头确定此状态可以更改的位置 箭头旁边是被线分为上半
  • 是否可以阻止您的网站在另一个域的框架集和 IFrame 内运行?

    最近我们遇到了一个问题 其他网站在一个框架集中运行我们的电子商务网站 而我们的网站 附加了违规者附属 ID 是单个全宽框架中的唯一内容 所以本质上它看起来和感觉就像我们的网站 其 URL 位于顶部 我们可以切断他们的会员 ID 这会让他们这
  • 嗅探并显示 UTF-8 格式的 TCP 数据包

    我正在尝试使用 tcpdump 来显示在我的网络上流动的 tcp 数据包的内容 我有类似的东西 tcpdump i wlan0 l A A 选项将内容显示为 ASCII 文本 但我的文本似乎是 UTF 8 有没有办法使用 tcpdump 正
  • Delphi - 同步线程与框架

    下午好 我有一个框架 这个框架是我通过主窗体动态创建的 主要形式 Interface TInterface Create self with handlingInterface do begin Parent Form1 Left 0 To
  • 即使我的电脑是这样,teamviewer 如何找到我的电脑?防火墙后面和防火墙没有配置?

    你用过teamviewer吗 我知道的漫画问题 谁不使用它 即使我位于路由器 防火墙 交换机和本地防火墙后面 您知道 teamviewer 如何建立连接吗 我试图想象远程机器和我的计算机之间的连接 远程计算机正在向我发送数据包 及其标头 例
  • 在 iPhone 中重新定位后,框架/窗口尺寸“不正确”

    在我的 iPhone OS 应用程序中 我想要 需要 观察设备方向的变化 以便重新排列屏幕的某些部分 我使用的方法是使用CGRect frame UIScreen mainScreen applicationFrame获取屏幕尺寸 并从那里
  • 计算 HDLC 帧的 FCS(CRC)

    我有以下框架 7e 01 00 00 01 00 18 ef 00 00 00 b5 20 c1 05 10 02 71 2e 1a c2 05 10 01 71 00 6e 87 02 00 01 42 71 2e 1a 01 96 27
  • 如何在 Tkinter 中获得带有滚动条的框架?

    我想要一个Frame 用户可以根据应用程序的需要添加任意数量的文本字段 该应用程序以一个文本字段和该文本字段下方的一个按钮开始 当用户按下按钮时 新的文本条目将添加到第一个文本条目下方 这可能会重复无数次 在窗口的中间 会有一个Text小部
  • 为什么我无法更改 UILabel 的框架?

    我这两天一直在尝试修改一个框架UILabel 哪个 很荒谬 UILabel是一个 IBOutlet 但这不是原因 为什么它不起作用 我试图创建一个UILabel以编程方式和 它仍然不起作用 我是这样做的 self descriptionLa
  • 如何从框架中获取用户输入并保存到txt文件中?

    我的程序运行如下 我有一个带有添加按钮 保存按钮和选项卡控件的表单 当单击表单中的添加按钮时 选项卡控件将添加更多选项卡项目 tabitem 基本上是从 myframe 添加的 其中包括用户在 TEdit 中键入的值 我想要实现的是当我点击
  • 如何通过我的切换帧函数将 Tkinter 条目值从一个帧传递到另一个帧

    我的 Tkinter 应用程序添加了笔记本 在笔记本内我想使用按钮切换框架 实现了笔记本开关和框架开关 当我单击 确定 按钮时 我想将笔记本的一帧输入输入到另一帧enter code here 我尝试将值作为框架类初始化的参数传递 将输入字
  • 通过 Internet 发送 UDP 数据包

    我正在尝试了解 P2P 去中心化网络的一些细节 我的问题如下 假设我有两台名为 comp1 和 comp2 的机器 现在 comp1 设置在我的家庭网络中的路由器后面 comp2 位于我的办公室中 也位于路由器后面 我是否可以像这样在 In
  • Tkinter 框架滚动条

    我的目标是向其中有多个标签的框架添加一个垂直滚动条 一旦框架内的标签超过框架的高度 滚动条就会自动启用 经过一番搜索 我发现this https stackoverflow com questions 3085696 adding a sc
  • 在 Borland C++ Builder 6 中使用帧缓冲区对象 (FBO)

    我对帧缓冲区对象 FBO 的命令 glGenFramebuffersEXT 有 访问冲突 void TGLForm DrawScene wglMakeCurrent ghDC ghRC glEnable GL TEXTURE 2D GLui

随机推荐