哪个 net/ipv4 文件包含 Linux 内核的 TCP 窗口大小参数?
我正在尝试调整 TCP 窗口大小,以便提高两个网络链接之间的吞吐量。为了做到这一点,我想完全理解UNIX内核是如何实现TCP拥塞控制机制的。我完全理解该机制的理论,但我真的希望看到它在内核代码中实现。哪个文件控制 TCP 窗口大小参数?
此外,我将非常感谢有关 UNIX 内核如何实现 TCP 拥塞控制机制的任何好的文档。我不需要关于 TCP 控制机制的文档(我已经阅读了很多相关内容),但有关内核实现的信息会很棒。
我的动机是调整内核,看看是否可以提高性能。我知道修改内核是一件很难的事情,但是我对内核代码的RTO部分做了一些修改,并且能够成功编译。我只是想要有关 TCP 窗口及其在 UNIX 内核中的机制的帮助。
I am trying to tweak the TCP window size, so that I can improve the throughput between two network links. In order to do that, I want to understand completely how the UNIX kernel implements the TCP congestion control mechanism. I understand the theory of the mechanism perfectly, but I really want to see it implemented in the kernel code. Which file controls the TCP window size parameter?
Further, I would be very grateful for any good documentation on how the UNIX kernel implements the TCP congestion control mechanism. I don't want documentation on what the TCP control mechanism is (I have read a lot about it), but information on the kernel implementation would be great.
My motivation is to tweak the kernel to see if I can improve the performance. I know it's a hard thing to modify the kernel, but I have made a few changes to the RTO section of the kernel code, and was able to successfully compile. I just want help with the TCP window and its mechanism in the UNIX kernel.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
net/ipv4/tcp_output.c,函数
__tcp_select_window
http://lxr.linux.no/#linux+v3.1.1/net/ipv4/tcp_output.c#L1842
和
tcp_select_window
http://lxr.linux.no/#linux+v3.1.1/net/ipv4/tcp_output.c#L254
和 net/ipv4/tcp_input.c
tcp_ack_update_window 是来自远程请求后本地窗口的更新程序。
http://lxr.linux.no/#linux +v3.1.1/net/ipv4/tcp_input.c#L3447
net/ipv4/tcp_output.c, function
__tcp_select_window
http://lxr.linux.no/#linux+v3.1.1/net/ipv4/tcp_output.c#L1842
and
tcp_select_window
http://lxr.linux.no/#linux+v3.1.1/net/ipv4/tcp_output.c#L254
And net/ipv4/tcp_input.c
tcp_ack_update_window
is updater of local window after request from remote.http://lxr.linux.no/#linux+v3.1.1/net/ipv4/tcp_input.c#L3447