TCP/UDP und Varianten Seminar ... - Informatik 4
TCP/UDP und Varianten Seminar ... - Informatik 4
TCP/UDP und Varianten Seminar ... - Informatik 4
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
5 Flow- <strong>und</strong> Congestioncontrol in <strong>TCP</strong><br />
<strong>TCP</strong> versucht das Netzwerk optimal auszulasten. Optimal auslasten heisst, nach einem erfolgreichem<br />
Verbindungsaufbau möglichst schnell den Datenfluss auf ein Maximum zu erhöhen, dabei aber nicht<br />
das Netzwerk zu überlasten. Dies geschieht in <strong>TCP</strong> mittels Flow- <strong>und</strong> Congestioncontrol.<br />
Zu Flowcontrol zählt man die Verfahren, die auf der Empfängerseite, zu Congestioncontrol die Verfahren<br />
die auf der Senderseite den Datenfluss beeinflussen. Dazu wird ein Sende- <strong>und</strong> Empfangsfenster<br />
benutzt. Das Empfangsfenster kann als abstrakte Darstellung des tatsächlich unbenutzten Platz im<br />
Puffer des Empfänger betrachtet werden. Daraus kann der Sender ableiten wieviel Daten er maximal<br />
versenden darf.<br />
Es ist nicht gefordert, dass jedes Segment einzeln quittiert wird. Quittungen können auch kumulativ<br />
versandt werden, d.h. das Eintreffen einer Quittung mit Sequenznummer n+1 betstätigt den Empfang<br />
aller Segmente bis zur Sequenznummer n. Es kann kein Verlust von Segmenten mit Sequenznummer<br />
stattgef<strong>und</strong>en haben, denn dann müssen duplizierte Quittungen, die den Empfang der Segmente<br />
bc ,<br />
bis zur Sequenznummer c-1 bestätigen, beim Sender eingehen.<br />
5.1 Sliding Window<br />
Im Sende- <strong>und</strong> Empfangsfenster können Segmente, die noch nicht quittiert wurden, nicht berücksichtigt<br />
werden. Daher hat der Sender sich zu merken, wieviel nicht quitterte Segmente welcher Grösse<br />
er verschickt hat. Daraus ergibt sich die von ihm maximal zu verschickende Datenmenge:<br />
hf(hi\jh(z{h|7h<br />
h(i/z{h<br />
de SU;Sgfh(ij;k;lnmoh d pqsr+St!#u>\vu\;\w2¦ƒ„]<br />
Das Sliding Window [9] gibt die Datenmenge an, die versendet werden kann, ohne dass der Empfängspuffer<br />
überlaufen wird. Es beginnt nach der letzten bestätigten Sequenznummer <strong>und</strong> hat die im Empfangsfenster<br />
angegebene Grösse. Werden Segmente quittiert so verschiebt sich das gesamte Fenster<br />
nach rechts, bis es wieder an der entsprechenden Sequenznummer beginnt. Dieses Fenster ist das<br />
Maximum an Daten, die der Sender verschicken darf. Der Sender muss aus oben genannten Gründen<br />
das Fenster anpassen, in dem er die linke Grenze (letzte Quittung) bis zur letzten verschickten Sequenznummer<br />
nach rechts verschiebt. Das übriggebliebene Fenster gibt das tatsächliche Maximum<br />
an Daten, die versendet werden können, an.<br />
Wenn der Sender das Maximum ausgeschöpft hat <strong>und</strong> der Empfänger seinen Empfangspuffer nicht<br />
rechtzeitig leeren konnte, so hat sich der Empfangspuffer vollständig gefüllt. Dann schickt der Empfänger<br />
eine Quittung für das letzte empfangene Segment, welches seinen Puffer gefüllt hat. Er teilt dem Sender<br />
mit, das sein Empfangsfenster die Grösse 0 erreicht hat. Der Sender hört auf Daten zu verschicken,<br />
da er weiss, dass der Empfangspuffer gefüllt ist. Damit der Sender den Datenversand wieder aufnehmen<br />
kann, muss der Empfänger den Sender über einen geänderten Füllgrad des Empfangspuffers<br />
informieren. Dies geschieht durch das Window Update. Das Window Update ist eine Quittung, die<br />
€‚<br />
15