通过PROC信息调节TCP窗口
關于這些東西:http://man7.org/linux/man-pages/man7/tcp.7.html
?
1,?/sys/kernel/ipv4/tcp_rmem_xxx
? ?這種方式驗證過,把值得設置得很大的時候TCP速度有質的提升
2,
/proc/sys/net/core/rmem_default 定義默認的接收窗口大小
/proc/sys/net/core/rmem_max 定義接收窗口的最大大小
/proc/sys/net/core/wmem_default 定義默認的發送窗口大小
/proc/sys/net/core/wmem_max 定義發送窗口的最大大小
/proc/sys/net/ipv4/tcp_window_scaling 啟用 RFC 1323 定義的 window scaling;要支持超過 64KB 的窗口,必須啟用該值。
?
3, 這個還沒弄明白
/proc/sys/net/ipv4/tcp_mem
/proc/sys/net/ipv4/tcp_wmem
/proc/sys/net/ipv4/tcp_rmem
4, 通過setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &buflen, sizeof(int)) 設置的recv buf 大小與窗口究竟有什么關系呢?
? ? recv buf使用默認大小80K時,通告窗口常為18K左右
? ? recv buf設置為10MB后,通告窗口變成了40K左右
? ? 注:
? ? ?1> 通過配置/proc/sys/net/ipv4/tcp_rmem的大小將影響所有創建的socket的rcv buf大小,而
? ? ? ? ?通過setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &buflen, sizeof(int)) 只設置當前socket rcvbuf的大小。
? ? ?2>?recv buf使用默認大小80K時,通告窗口常為18K左右,?recv buf設置為10MB后,通告窗口變成了40K左右
? ? ? ? ?因為通過setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &buflen, sizeof(int)) 設置的buf大小不能超過/proc/sys/net/core/rmem_max指定的大小,
? ? ? ? ?TCP實際分配的buf大小將是通過setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &buflen, sizeof(int)) 指定的兩倍。
? ? ? ? ?
?
轉載于:https://www.cnblogs.com/vleung/p/4136322.html
總結
以上是生活随笔為你收集整理的通过PROC信息调节TCP窗口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python subprocess Po
- 下一篇: [ruby on rails] 跟我学之