- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
查看数据链路级标准,例如 PPP general frame format或 Ethernet ,不清楚如果校验和无效会发生什么。 协议(protocol)如何知道下一帧从哪里开始?
它是否只扫描下一次出现的“标志”(在 PPP 的情况下)?如果是这样,如果数据包有效负载恰好包含“标志”本身会发生什么?我的观点是,无论是使用数据包帧还是“长度”字段,都不清楚如何从“长度”字段可能已损坏或“帧”字节可能恰好是其中的一部分的无效数据包中恢复。数据包有效载荷。
更新 :通过查找“基于 GFP CRC 的框架”,我找到了我正在寻找的东西(严格来说,这不是我所问的)。根据Communication networks
The GFP receiver synchronizes to the GFP frame boundary through a three-state process. The receiver is initially in the hunt state where it examines four bytes at a time to see if the CRC computed over the first two bytes equals the contents of the next two bytes. If no match is found the GFP moves forward by one byte as GFP assumes octet synchronous transmission given by the physical layer. When the receiver finds a match it moves to the pre-sync state. While in this intermediate state the receiver uses the tentative PLI (payload length indicator) field to determine the location of the next frame boundary. If a target number N of successful frame detection has been achieved, then the receiver moves into the sync state. The sync state is the normal state where the receiver examines each PLI, validates it using cHEC (core header error checking), extracts the payload, and proceeds to the next frame.
最佳答案
PPP 和以太网都有成帧机制——也就是说,将比特流分解成帧,这样,如果接收器忘记了是什么,它可以在下一帧的开始处接收。它们位于协议(protocol)栈的底部;该协议(protocol)的所有其他细节都建立在帧的概念之上。尤其是preamble、LCP、FCS是更高层次的,不用于控制成帧。
通过串行链路(如拨号)的 PPP 使用 HDLC-like framing .字节值 0x7e,称为标志序列,表示帧的开始。帧一直持续到下一个标志字节。帧内容中出现的任何标志字节都会被转义。转义是通过写入 0x7d 来完成的,称为控制转义字节,然后是要转义的字节与 0x20 异或。标志序列转义为 0x5e;控制转义本身也必须转义到 0x5d。如果它们的存在会扰乱调制解调器,也可以转义其他值。结果,如果接收器失去同步,它只能读取并丢弃字节,直到它看到 0x7e,此时它知道它再次处于帧的开头。然后对帧的内容进行结构化,包含一些并不重要但从早期 IBM 协议(protocol)中保留的奇怪的小字段,以及 PPP 数据包(称为协议(protocol)数据单元,PDU),以及帧检查序列(FCS)。
以太网使用逻辑上相似的方法,具有可识别为帧开始和结束标记而不是数据的符号,但不是保留字节加上转义机制,而是使用能够表达不同的特殊控制符号的编码方案来自数据字节 - 有点像使用标点符号来分解一系列字母。所用系统的细节随速度而变化。
标准 (10 Mb/s) 以太网使用称为 Manchester encoding 的东西进行编码,其中要传输的每个位都表示为线路上的两个连续电平,这样每个位的电平之间总是存在转换,这有助于接收器保持同步。帧边界是通过违反编码规则来指示的,导致有一点没有过渡(我几年前在一本书中读过这个,但在网上找不到引用——我可能错了)。实际上,该系统将二进制代码扩展为三个符号 - 0、1 和违规。
快速 (100 Mb/s) 以太网使用不同的编码方案,基于 5b/4b code ,其中四个数据位(nybbles)的组表示为线路上的五个位组,并直接传输,无需曼彻斯特方案。扩展到五位允许选择使用的十六种必要模式来满足频繁电平转换的要求,再次帮助接收器保持同步。但是,仍然有选择一些额外符号的空间,它们可以传输但不对应数据值,实际上,将半字节集扩展到二十四个符号 - 半字节 0 到 F,以及称为 Q、I 的符号、J、K、T、R、S 和 H。以太网使用 JK 对标记帧开始,使用 TR 标记帧结束。
千兆以太网类似于快速以太网,但编码方案不同——光纤版本使用 8b/10b code而不是 5b/4b 代码,双绞线版本使用一些我不太了解的非常复杂的五进制代码排列。两种方法产生相同的结果,即能够传输数据字节或一小组附加特殊符号中的一个,并且这些特殊符号用于成帧。
在这个基本的成帧结构之上,还有一个固定的前导码,然后是一个帧定界符,以及一些变化无意义的控制字段(你好,LLC/SNAP!)。这些字段的有效性可用于验证框架,但不能用于自行定义框架。
关于error-handling - PPP 或以太网如何从错误中恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/990661/
有什么方法可以恢复删除的元素吗? 这是我删除元素的代码 myFunction() { var width = window.innerWidth; var February = doc
我有一个 TokuDB 表,由于某种原因缺少 ***_status.tokudb 文件。 我还不确定文件是否由于 TokuDB 崩溃而丢失。 问题是: 有没有办法从主要文件和关键文件(我可以从 tok
我正在 Windows 7 (x86) 上运行带有 Workbench 6.3.8 的 32 位 MySQL Server 5.7.22 本地实例(必须选择 32 位版本 - 所以,较旧的版本)。 我
1、备份 <% SQL="backup database 数据库名 to disk='"&Serve
1、ASP中怎么实现SQL数据库备份、恢复! 答:asp在线备份sql server数据库: 1、备份 <% SQL="ba
我在 R 中使用 stats::filter 函数来理解 R 中的 ARIMA 模拟(如在函数 stats::arima.sim 中)和估计。我知道 stats::filter 将线性过滤器应用于向量
我已经浏览了示例应用程序的文档和代码,并发现 files/objectbox/objectbox/data.mdb 是存储所有数据的默认文件。 假设我的理解是正确的,我有几个问题找不到文档: 我想在我
为了恢复非续订订阅类型的 InAppPurchase,我已经实现了服务器来处理此问题。 但在购买过程中,iTunes 有时不会要求用户验证他们的卡详细信息, 在这种情况下,它会在后台发送应用程序并显示
我的问题是寻找cocos2d游戏期间暂停/恢复状态(包括所有需要保存的数据信息)的设计解决方案。 包括但不限于以下情况: 1).用户选择退出,然后弹出一个对话框供用户选择“直接退出”、“暂停”; 2)
在 Mercurial 中,我有一个旧的变更集,除了对单个文件的更改外,它都很好。我将如何恢复对该单个文件的更改? 即使只是能够在上一个变更集中查看文件的状态也会很好,然后我可以剪切和粘贴。 我的 M
我的一项职能遇到了困难。我想做的是计时器在页面加载后立即启动,并且只有一个带有启动/恢复的按钮。我无法在代码中找出需要更改功能的位置。有人可以帮助我吗?谢谢! HTML: , Javascr
我正在阅读Scrap your type classes 。这为类型类提供了替代方案。然而,我被Paul Chiusano的评论所困扰。其中讨论了恢复 do 表示法 语法。 坦白说,我无法理解 ret
当 OrientDB 因某人重新启动机器而非正常关闭时,OrientDB 最终会处于数据恢复失败的状态。对于如何从这种不正常的关闭中正常恢复有什么建议吗?我们正在寻找系统在断电期间能够自行恢复的方法。
我正在构建一个 Electron 应用程序,如果发生崩溃,它必须重新加载渲染进程窗口。 目前我可以从主进程重新启动应用程序 app.relaunch(); app.quit(); 但我无法检测到窗口崩
我有 3 个 Activity ,比如说 MainActivity、 Activity 2 和 Activity 3。 在 MainActivity 中,我有一个按钮(开始/停止),当我单击此按钮时,
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
Twilio 是否支持暂停和恢复内容播放。换句话说,我有相当长的文件将播放给调用者,并且我正在尝试找到一种方法来实现暂停和恢复功能。在播放某些内容的过程中,我希望用户能够按数字暂停,然后再次按数字从音
我已经提交了 A、B、C、D 和 E。我意识到在提交 B 中发生了一些非常糟糕的事情,所以我想回到 A,这次正确地进行之前搞砸了 B 的更改,然后重新应用 C 、 D 和 E 自动。 您可能想知道为什
我的一个文件被“标记为文本”,图标也发生了变化。实际上这是一个 PHP 文件。我尝试过使用 Help -> Find Action -> Mark As 尝试将其恢复为 PHP 突出显示,但它不起作用
我有一些 SSE 程序,可以将循环中的内存归零,当指针未对齐时,它会引发 SIGSEGV进入我的处理程序。我可以在此类处理程序中获取更多信息吗例行公事,现在我不知道它是在哪里完成的,我也可以吗以某种可
我是一名优秀的程序员,十分优秀!