TCP发送窗口由slide_window(滑动窗口)、congestion_window(拥塞窗口)两者决定
#已发送未确认的字节数=下一个发送序号-最早的未确认序号
off = tp->snd_nxt - tp->snd_una;
#发送窗口为min(当前发送窗口,拥塞窗口)
win = min(tp->snd_wnd, tp->snd_cwnd);
...
#发送长度=发送窗口-已发送未确认字节数
len = min(so->so_snd.sb_cc, win) - off;
上面的snd_wnd、snd_una、snd_nxt三个字段组成了滑动窗口。 如下图所示: