Zu dieser Karteikarte gibt es einen kompletten Satz an Karteikarten. Kostenlos!
96
Was leistet Advertised Window noch?
Flußkontrolle:
* Da die Übertragung ungeordnet ist, gilt LastByteRead < NextByteExpected.
(
Jedes Byte wird erst von der Applikation gelesen, wenn es selbst und alle vorherigen Bytes ebenfalls empfangen wurden.
o NextByteExpected
LastByteReceived + 1
o MaxReceivedBuffer
LastByteReceived - LastByteRead verhindert einen Pufferüberlauf.
o AdvertisedWindow = MaxReceivedBuffer - (LastByteReceived - LastByteRead) wobei AdvertisedWindow den noch verfügbaren Speicherplatz in seinem Puffer darstellt.
* Nimmt das AdvertisedWindow den Wert 0 an, wird der Sender blockiert. Der Sender sendet solange 1-Byte große Datenblöcke, bis ihm im ACK ein Wert
0 mitgeteilt wird. Erst dann kann er wieder normal senden.
* EffectiveWindow = AdvertisedWindow - (LastByteSend - LastByteAcked) (
ein langsam empfangender Prozess bremst bzw. unterbricht einen schnell sendenden Prozess).
* Da die Übertragung ungeordnet ist, gilt LastByteRead < NextByteExpected.
(
![](/pool/data/tex/0a183ed5142c1166275da8fb1cbbd43f.gif)
o NextByteExpected
![](/pool/data/tex/de44c582df9d8d29dbbd70aca311c641.gif)
o MaxReceivedBuffer
![](/pool/data/tex/2d9362c6490cded6ecd93e0bf42a25bb.gif)
o AdvertisedWindow = MaxReceivedBuffer - (LastByteReceived - LastByteRead) wobei AdvertisedWindow den noch verfügbaren Speicherplatz in seinem Puffer darstellt.
* Nimmt das AdvertisedWindow den Wert 0 an, wird der Sender blockiert. Der Sender sendet solange 1-Byte große Datenblöcke, bis ihm im ACK ein Wert
![](/pool/data/tex/e0067ea8fed5882d830dbcda1122f776.gif)
* EffectiveWindow = AdvertisedWindow - (LastByteSend - LastByteAcked) (
![](/pool/data/tex/055889aaee38b7c53f994c5e42a40994.gif)