When two points are communicating under TCP/IP, it involves an acknowledging mechanism. This acknowledging mechanism is what causes Silly Window Syndrome as explained further.
Along with the acknowledgment, it also has to send the size of the buffer set apart for that communication thread. This is generally the number of bytes set free for communication.
So when B says 100B is available for the next message, the 100B is the window in Silly Window Syndrome.
if B sends 1000B as window size, A will split it into two 500B and send two packets of 500B. Upon receipt of first packet, B will send an acknowledgement saying 500B is available for the window as the second packet is yet to be received. A assumes 500B is the window size and send two packets of 250B consequently. While at B, 500B is used and 500 is just received, it will send 0B as available. At this point, A will assume no window is available though it might happen that buffer is empty as the processor used up the data there. A will still send a smaller packet to see if any window is available. If the contents of buffer at B are not yet removed, it will still receive 0 as response/acknowledgement. The communication stops after A receives 0 two or three times.
That is, whenever A sends a message, B assumes the buffer size is reduced and sends a smaller number. Thus the window size keeps on reduced and at a point, the communication just stops as B sends 0B as window size.