P2P网络。 UDP与TCP

时间:2018-02-25 18:45:42

标签: udp p2p kademlia

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

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

1 个答案:

答案 0 :(得分:1)

  

长度大于548字节

这是针对ipv4的RFC定义的MTU,但实际上几乎所有节点都支持更多,至少1400,并且某些情况也可以由碎片覆盖。对于IPv6,保证的MTU更高。

  

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

出于原因,您应该使用UDP see this Q&A。如果您需要在查找结束时传输更大的数据,您仍然可以使用TCP作为下一层协议,但这超出了kademlia路由算法的范围。

  

例如FIND_NODE上的响应

假设256位节点ID(32字节)和18字节联系人(IPv6),您可以将10个ID,地址对装入548个字节,并使用几个字节来备用标头。它挤满了但可行。