- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我一直在学习计算机网络方面的书(这不是作业题)
其中一个问题比较了基于 ACK 和 NAK 的数据传输协议(protocol),重点是对于基于 NAK 的协议(protocol),当接收到第 (x + 1) 个数据包时,接收方可以检测到数据包 x 的丢包.
但是,我的问题是,如果接收方发送的 NAK 在到达发送方之前丢失了,会发生什么情况?发件人不会意识到错误,也不会重新传输。此外,如果数据包是序列中的最后一个数据包怎么办? (没有后续数据包可以测试)
我看不出只有 NAK 的协议(protocol)如何可靠(以正确的顺序传送每个数据包)
最佳答案
我怀疑书中描述的理论背景假设了无限的数据包流,并忽略了 channel 完全禁用等情况。实际上,还有其他构造被定义为 ACK/NAK 协议(protocol)的一部分,或者留给更高或更低层的层协议(protocol)来处理。例如,物理层会提供诸如“ channel 已损坏”之类的指示,并且上面的协议(protocol)可能会发送/接收“流结束”数据包,并使用计时器检测最后一个数据包的 NAK 丢失的情况。这些只是假设的例子,但却是现实生活中协议(protocol)所做的事情。
I do not see how a NAK-only protocol can be reliable (delivers each packet in the correct order)
我敢肯定这本书暗示有某种机制可以按顺序识别数据包。否则,接收方将无法指示哪个数据包正在 NAK,即大多数协议(protocol)在每个数据包/ack/nak 中使用序列号。
关于networking - 仅使用 NAK 的数据传输协议(protocol)如何可靠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17907089/
我试图了解 Android Open Accessory API 如何与 Arduino ADK 板一起工作,我已经能够发送和接收信息,但我只想知道一切是如何工作的。我得到了这个功能描述: int A
我正在尝试对包含“NAK”字符 (http://www.theasciicode.com.ar/ascii-control-characters/nak-negative-acknowledge-as
我一直在学习计算机网络方面的书(这不是作业题) 其中一个问题比较了基于 ACK 和 NAK 的数据传输协议(protocol),重点是对于基于 NAK 的协议(protocol),当接收到第 (x +
我正在尝试让一个 Android USB 主机程序连接到一个从属设备,它实际上是一个 USB 串口转换器。从设备当前设置为在没有可用数据时返回 NAK,我正在轮询从设备以查看是否有任何 IN 数据,方
在我的 Ubuntu 10.10 桌面上通过串行端口连接了一个带有 UART 公头接口(interface)的条码阅读器。从专有的自述文档中,我了解到我必须启用 ACK/NAK 握手才能从设备获取我发
先介绍一下 我正在尝试制作 MFRC522 library对于 Arduino 在用 C 编程的 ATmega328 上工作(我首先使用“普通” Controller ,使其在以后的状态下在树莓派上工
我是一名优秀的程序员,十分优秀!