sockets - 如何侵入 Unix 内核以从 TCP 中删除指数退避?

标签 sockets unix tcp linux-kernel

我想出了一个想法,如果我们从 TCP 中删除指数退避时间,这将提高 TCP 吞吐量的性能。我也遇到了一篇论文,其中说明了如何去做。只需谷歌“删除 tcp 指数退避时间”,您就会得到它。但是,我无法理解如何进入 UNIX 内核并破解它以改变 TCP 功能。拜托,如果有人可以帮助我,那就太好了。

谢谢。

最佳答案

如果那是真的,为什么会有指数退避?你真的认为开发和发展 TCP 的人添加一些东西只是为了让性能变差吗?然后,人们不假思索地添加了所有不同的操作系统实现?

移除指数退避将增加丢包率(因为拥塞退避不会那么快)并增加延迟(因为路径上每个接口(interface)的队列往往会更深)。这两种效应是相乘的——增加延迟会使增加的数据包丢失更具破坏性。累积效应将对吞吐量造成灾难性影响。

Linux允许一个模块实现TCP拥塞控制算法。所以你可以随心所欲地调整它。查看 Linux 内核源代码的 net/ipv4 目录,tcp_hybla.ctcp_veno.c 等文件。

关于sockets - 如何侵入 Unix 内核以从 TCP 中删除指数退避?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7923993/

相关文章:

networking - 客户端违反了握手期间商定的 MSS 值

c - #if#endif 预处理指令,PortAudio

java - 从服务器到客户端的套接字通信困难

c# - 通过smtp服务器异步发送电子邮件-多线程发送电子邮件

linux - 如何从连接到套接字的 UnixStream 一次读取一点?

c++ - 如何运行实时服务器win winsock?

c++ - Boost网络不在标准boost安装中

python - Python 如何找到 sys.prefix (resp. sys.base_prefix) 的值?

unix - Vim 在由 Expect 生成的 ssh session 中行为不正常

azure - 连接到azure虚拟机公共(public)端口超时