Networking 我是否必须重新建立;未勾选“;在对等消息传递中关闭TCP连接后的状态?

Networking 我是否必须重新建立;未勾选“;在对等消息传递中关闭TCP连接后的状态?,networking,p2p,bittorrent,torrent,Networking,P2p,Bittorrent,Torrent,在每次下载之后,Torrent客户端关闭与对等机的TCP连接是一个好主意吗?防止内存泄漏 此外,客户端是否必须在每次关闭对等消息传递中的连接时一次又一次地重新建立未勾选状态(以及“握手”)。如果你关闭它,那么你必须与你的同伴重新协商一切 为了限制内存消耗,您可以简单地限制在任何给定时间打开的连接数。您不需要超过20-60个连接才能使任何torrent正常工作 当这些连接中的一部分空闲时,这是正常的,因为空闲的TCP套接字不会消耗很多资源 事实上,bittorrent被设计成在swarm中总是有一

在每次下载之后,Torrent客户端关闭与对等机的TCP连接是一个好主意吗?防止内存泄漏


此外,客户端是否必须在每次关闭对等消息传递中的连接时一次又一次地重新建立未勾选状态(以及“握手”)。如果你关闭它,那么你必须与你的同伴重新协商一切

为了限制内存消耗,您可以简单地限制在任何给定时间打开的连接数。您不需要超过20-60个连接才能使任何torrent正常工作

当这些连接中的一部分空闲时,这是正常的,因为空闲的TCP套接字不会消耗很多资源


事实上,bittorrent被设计成在swarm中总是有一些空闲连接,否则机会主义的取消锁定算法将不起作用,因为不会有任何空闲的对等点来取消锁定。

这是一个糟糕的想法,并且与协议的工作方式相反。
协议的基本部分是不断阻塞和解缆,包括乐观的解缆,以找到最快的对等点,并使用“针锋相对”算法

与当前活动的连接数相比,具有更多的连接数的原因是启动和下载,并有一些备用对等点处于“保留”状态,以便在必要时使上述对等点准备快速进入活动状态,并保持活动不中断

已经开放的连接很便宜

打开连接需要资源和时间

首先是三向TCP握手(或uTP/UDP握手),
然后可能会有加密握手,
然后协议握手,
然后可能是分机握手,
然后进行位域交换

连接总是以阻塞和不感兴趣开始

要控制内存消耗,请不要打开过多的连接。

真正的内存泄漏是由需要修复的错误代码引起的

谢谢,那很有帮助。