【发布时间】:2019-01-20 17:54:18
【问题描述】:
P2P 网络:
最大的消息约为 300KB。大多数消息较小(5-50kb)。如果他们没有收到消息是完全可以的,因为他们会启动引导(重新发送)。
我倾向于 UDP,你猜对了,它是一个区块链软件!但是,我们目前的设计是 TCP。
【问题讨论】:
标签: networking tcp network-programming udp p2p
P2P 网络:
最大的消息约为 300KB。大多数消息较小(5-50kb)。如果他们没有收到消息是完全可以的,因为他们会启动引导(重新发送)。
我倾向于 UDP,你猜对了,它是一个区块链软件!但是,我们目前的设计是 TCP。
【问题讨论】:
标签: networking tcp network-programming udp p2p
UDP 数据包的最大大小为 65,535 字节(包括 8 字节 UDP 标头和 20 字节 IP 标头),因此对于最大的消息,您必须实现一种“分块”形式,将消息分成更小的部分(除非您使用的是 IPv6 Jumbograms),其中包含应用程序生成的标头,其中包含数据包的顺序以及可能的数据大小。当您超过 MTU 大小时,您还会遇到碎片问题(尽管您提到的可靠性机制可能不是这样的问题)。
我想你必须问问自己,与当前的 TCP 设计相比,UDP 会给你带来什么好处。使用 UDP 的主要原因是当您需要具有非常小的网络延迟的轻量级协议,或者您需要能够通过 LAN 广播或多播数据包时。如果你没有这些需求,而 TCP 正在做这项工作,为什么要改变?
【讨论】: