0

我基于 Kadelmia 方法编写 P2P 系统。我的问题与要使用的传输类型有关:UDP 或 TCP。

Kadelmia 文档定义了 UDP,但我担心的是负载大小。据我所知,UDP 被授予者交付了 548 个字节。但是有些消息由文档定义,长度大于 548 字节(例如 FIND_NODE 上的响应)。问题:我应该使用 TCP 而不是 UDP 吗?

4

1 回答 1

2

长度大于 548 字节

那是 RFC 为 ipv4 定义的 MTU,但实际上几乎所有节点都支持更多,至少 1400,并且某些情况下也可以通过分段来覆盖。对于 IPv6,保证的 MTU 更高。

问题:我应该使用 TCP 而不是 UDP 吗?

您应该使用 UDP,请参阅此问答了解原因。如果您需要在查找结束时传输更大的数据,您仍然可以使用 TCP 作为下一层协议,但这超出了 kademlia 路由算法的范围。

例如对 FIND_NODE 的响应

假设 256 位节点 ID(32 字节)和 18 字节联系人(IPv6),您可以将 10 个 ID、地址对放入 548 字节中,并为标头留出几个字节。它很拥挤,但可行。

于 2018-02-27T20:13:33.160 回答