I wonder what ACK number would be if the receive buffer of receiver side is full. For example, Consider a case that sender transmits a segment whose SEQ is 800, and 100 bytes size. Because the receive buffer is full, receiver sends a ACK 900 segment, containing rwnd = 0. Then, the receiver will continue to send 1-byte probe segment whose 1-byte data are part of original data in the window. Then how does receiver respond those probe segments?
I guess that at least ACK will be 900, not 901, because its buffer is full so the receiver can not store the segment. But if ACK is 900, the timeout will occur because the timer of sender side will tick until ACK 901 arrives. Does the sender retransmit probe segments based on that timeout? Or is there any other mechanism that I don't know?