CS158a
Chris Pollett
Apr. 5, 2023
LastByteAcked ≤ LastByteSent; and LastByteSent ≤ LastByteWritten;
LastByteRead ≤ NextByteExpected; and NextByteExpected ≤ LastByteRcvd + 1;
AdvertisedWindow = MaxRcvBuffer - ((NextByteExpected - 1) - LastByteRead)
EffectiveWindow = AdvertisedWindow - (LastByteSent - LastByteAcked)
(LastByteWritten - LastByteAcked) + y > MaxSendBuffer.If so, it blocks the app.
if both the available data and the window size are >= MSS send a full segment else if there is unACKed data in flight buffer the new data until an ACK arrives else send all the new data now.
EstimatedRTT = a*EstimatedRTT + (1-a)* SampleRTT.Here a is some constant between 0 and 1.
Difference = SampleRTT - EstimatedRTT EstimatedRTT = EstimatedRTT + (δ×Difference) Deviation = Deviation + δ(|Difference| - Deviation) Timeout = μ×EstimatedRTT + φ×Deviation