This is the flow-control half of what makes TCP usable on long-fat networks; RFC 7323's window scaling option exists purely because the 16-bit window field you're modeling here caps throughput at ~5 Mbps on a 100ms-RTT link without it. The Linux kernel auto-tunes this window per socket (net.ipv4.tcp_rmem) instead of using a fixed size, directly building on the mechanism in this task.