你能在你的受控网络中选择/配置TCP吗?这样它就可以像UDP一样快了



我正在考虑编写我自己的可靠UDP实现(数据包排序和数据包丢弃的重传)。这是针对我控制的网络内的内部系统。我想知道在Linux系统上是否有可能优化TCP,使其变得像UDP一样快?如果是的话,我只会使用超级优化的TCP,而不用担心实现可靠的UDP。

您可以做一些事情来调整TCP以满足您的特定需求。您可以增加最大缓冲区大小,更改拥塞算法等等。在重新发明轮子之前,我认为这真的很值得一试,尤其是因为你似乎对自己的内部网络有很好的控制。这篇文章描述了其中的一些事情。所有这些参数的另一个很好的信息来源是Linux源代码中的Documentation/networking/ip-sysctl.txt

您还可以通过查看/proc/sys/net/ipv4/tcp_sack来检查Linux上是否启用了TCP选择性确认(SACK)。

性能有不同的衡量标准(吞吐量、延迟、抖动、对数据包丢弃的鲁棒性)。

如果不引入任意延迟,您就无法获得包裹递送和订购保证。从这个意义上说,可靠的UDP不能比TCP"快"。

可以使用前向纠错来减少重传次数,但要牺牲额外的带宽。不过,这只会在损耗很大的链路上提高吞吐量。它将减少抖动和链路上的最大延迟。

或者你说的是TCP公平与UDP贪婪?

无论如何,您的操作系统TCP层已经得到了高度优化,如果不改变游戏规则(例如牺牲公平性),您不太可能做得更好。

相关内容

最新更新