"); //-->
3BHL000389P0104接收端也可以计算相同的函数
这是我们的第一个问题:如果网络出现问题——可能某个地方太拥塞,也许 FPGA 仍在响应其他一些数据包,那么数据包可能会被丢弃。事实上,我们最近讨论了这种想法。在网络实现中,丢弃数据包被认为是一种“正常”现象,并且在网络上运行的任何协议都需要能够从丢失的数据包中恢复。
仔细考虑一下,因为这可能是一个真正的问题。如果 FPGA 内的总线因为某些外设没有响应而锁定,会发生什么情况?在最坏的情况下,所有后续数据包都将丢失——包括任何告诉 FPGA 自行重置的数据包。随着事情的进展,我们需要考虑这种真实的可能性。
数据包可能会重复下一个问题是数据包可能会重复。
起初,我只是对这个想法嗤之以鼻。这在我的任何实现中都不会发生 ,我告诉自己,因为网络堆栈中的任何东西都不会重复数据包。
然后我开始考虑更多。
假设您有两台计算机相互通信,一台计算机(客户端)向另一台计算机(服务器/FPGA)发出请求。如果请求被丢弃,第一台计算机(客户端)如何知道它被丢弃,除非它没有得到任何响应?更糟糕的是,如果客户端没有得到任何响应,这是否意味着 1) 服务器没有收到请求,或者 2) 服务器确实收到并处理了请求而客户端只是没有收到回复?此时客户端所能做的就是重新发送和重新发送它的数据包,直到它最终得到回复。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。