- 论坛徽章:
- 0
|
本帖最后由 jeddicat 于 2016-12-09 09:15 编辑
为什么要使用两个系统参数来做应用相关的缓存预留。
各自预留的buf 在什么场景下使用?
Tcp_input.C
.void tcp_init_buffer_space(struct sock *sk) {...
maxwin = tcp_full_space(sk); /* 这里已经是buf- 1/2^sysctl_tcp_adv_win_scale*buf 作为可通告窗口范围*/
if (tp->window_clamp >= maxwin) { tp->window_clamp = maxwin;
if (sysctl_tcp_app_win && maxwin > 4 *tp->advmss) tp->window_clamp = max(maxwin - (maxwin >> sysctl_tcp_app_win), 4 *tp->advmss);/*这里为何还要再次预留*/
....
}
buf- 1/2^sysctl_tcp_adv_win_scale*buf 作为可通告窗口范围,为何还要再次预留1/2^sysctl_tcp_adv_win_scale*buf .
谢谢!
|
|