Take the 2-minute tour ×

I am searching that, how can two sides determine which scale factor will be using? In syn packets we can give a scale factor and than when two sides have the any scale factor, we can understand that two sides can support window scaling. Now here is the question if sender sets scaling factor as 8 and receiver sets as 7 in syn(may be syn,ack) packets's scaling option, which one will be using in this tcp connection?

share|improve this question

2 Answers 2

TCP windows are all about how much data the system can buffer as it receives it. So each end says what it can receive.

Remember that TCP connections are always bidirectional connections regardless of who initiates it. Sure, most times the data that gets sent in one direction is much greater than how much gets sent in the other direction, but it's still considered a bidirectional connection. So both sides are considered senders and receivers, and both sides need to specify how much data they can buffer on receive, and communicate how full that receive buffer is.

share|improve this answer

TCP works on AIMD (Additive increase and multiplicative decrease); after TCP socket goes into established state sender tcp will use its sliding window to min say 1 seg.If RX TCP ack this seg then sender will increase window for 2 segs if its acked then window will be 3 so on.if seg lost adn retransmitted by sender then window will be decreased from 4 to 2.Scale factor info is shared in syn-sent and receive packets.

share|improve this answer

Your Answer


