我正在寻找一种利用以太网巨型帧(例如高达 9 KB)的轻量级可靠协议。一侧将在没有 CPU 内核的 FPGA 上实现(因此需要简单性),另一侧将通过软件在 NAS 上实现。不需要复杂的数据包路由功能,因为它应该用于嵌入式应用程序中,用于节点数量非常有限的高带宽数据流。我可以通过谷歌搜索找到可靠的 UDP 协议,但不喜欢它仍然具有完整 IP 标头的事实
问候...
我正在寻找一种利用以太网巨型帧(例如高达 9 KB)的轻量级可靠协议。一侧将在没有 CPU 内核的 FPGA 上实现(因此需要简单性),另一侧将通过软件在 NAS 上实现。不需要复杂的数据包路由功能,因为它应该用于嵌入式应用程序中,用于节点数量非常有限的高带宽数据流。我可以通过谷歌搜索找到可靠的 UDP 协议,但不喜欢它仍然具有完整 IP 标头的事实
问候...
好的 - 基于评论的几点:
1.) 根据定义,以太网不是路由的,而是交换的、桥接的或重复的。
2.) 如前所述,协议可靠性意味着在没有更高层协议交互的情况下重新传输丢失和错误帧的能力。这意味着发送方和接收方将需要维护某种状态来跟踪数据包序列,并且可能需要一些流量控制来根据缓冲进行调整。这也意味着您需要会话建立和拆除的语义 - 这意味着计时器。这在实际实践中比 UDP/IP 重得多。还值得注意的是,有轻量级/嵌入式 IP+UDP 堆栈可以防止您重新发明轮子。
3.) 看看 RoCE 系列协议 - 超低延迟并支持您的要求。有趣的是,标准的第 1 版在原始以太网上运行并支持巨型帧。它是否满足您对可靠性的要求是另一个问题。IMO更有趣的一点是 ROCEv2 具有同样出色的延迟特性,但运行在 UDP 上(并且得到许多 NIC 和交换机供应商的良好支持)。值得注意的是,RoCE 协议的部分操作需要无损以太网设施。这至少包括 PFC,但该规范还提到了其他一些 DCB 规范。