How many bytes the receiver can receive

Receiver calculates advertised window and sends it in TCP Header

AdvertisedWindow = MaxRcvBuffer - ((NextByteExpected - 1) - LastByteRead)

Calculating advertised window

If advertised window is 0, periodically send 1 byte packets to break deadlock

Effective window (calculated at sender side) is AdvertisedWindow - (LastByteSent - LastByteACKed)