2013-07-28 77 views
1

我一直在研究一本关于计算机网络(这不是一个家庭作业问题)使用NAK的数据传输协议如何可靠?

其中有一个问题比较ACK和NAK基于数据传输协议,重点在于对基于NAK协议,数据包丢失对于分组x,可以在接收到第(x + 1)分组时通过接收来检测。

但是,我的问题是,如果接收方发送的NAK在到达发送方之前丢失了会发生什么?发件人不会意识到错误并且不会重新发送。此外,如果数据包是序列中的最后一个呢? (不存在后续分组来测试)

我没有看到一个NAK-唯一的协议如何能够可靠(传送每一分组以正确的顺序)

+0

这个问题似乎是题外话题,因为它是关于计算机科学,而不是计算机编程。 – EJP

回答

1

我怀疑是理论背景书中所述假设有无限的数据包流,并忽略像通道变得完全禁用的情况。实际上,还有其他的结构被定义为ACK/NAK协议的一部分,或者留给更高或更低层的层协议来处理。例如,物理层将提供诸如“信道中断”的指示,并且可能上述协议发送/接收“流结束”分组,定时器检测最后分组的NAK丢失的情况。这些只是假设的例子,但是现实生活协议所做的事情类型。

我没有看到一个NAK-Only协议如何能够可靠(可提供正确的顺序每个 包)

我敢肯定,这本书是暗示有某种机制来按顺序识别数据包。否则,接收方将无法指示它是哪个分组,即大多数协议在每个分组/包中使用序列号。

0

NAK专用协议可以通过让接收器在发送NAK时启动定时器并在重传丢失的分组之前定时器超时时重新发送NAK来实现可靠性。