The TCP window size is the amount of data that the sender will send before waiting for a TCP ack. Does the receiver have a way to control this (e.g., as part of the TCP handshake), or is it only the sender who can control?
The TCP window size is the amount of data that the sender will send before waiting for a TCP ack. Does the receiver have a way to control this (e.g., as part of the TCP handshake), or is it only the sender who can control?
Yes the receiver can dynamically control the TCP window size, all along the TCP communication, not only at handshake, as stated in RFC 793:
Since you added tcp-window-scaling, the TCP window scaling is just a multiplier used to overcome the initial limit of 64k for the maximum window size. This is negotiated using TCP options in the initial TCP handshake, as described in RFC 7323:
So this scaling factor can't be changed later. It's described further there:
Here's an example of extreme and abnormal window control "abuse" from the receiver invented to delay scans used to propagate worms: Linux iptables'
TARPIT
add-on target, based on LaBrea's tar pit (Jim McClurg, 2001 PDF):