160 160 TCP-Adaptionsalgorithmen Bevor wir uns die Mechanismen zur Multimedia-Adaption anschauen, lohnt es sich zu erläutern, wie das derzeitige System überhaupt für Datenströme überlebt. Es wird im Wesentlichen durch reibungsloses Reduzieren der Leistungsfähigkeit aller Spieler erreicht (anstatt den Zugriff zu sperren) Das aktuelle Internet funktioniert weiter. Dies geschieht durch eine Vielzahl von Adaptionsalgorithmen, sowohl für Daten als auch für Multimedia-Anwendungen. Anpassung in Protokollen wurde zuerst in TCP in um 1988van eingeführt: 88. Die Adaption im TCP ist sowohl die Round Trip-Zeit, um die Retransmit-Timer für eine zuverlässige Lieferung dynamisch abzustimmen und die Sende-Rate, um sich an die erreichbare Übertragungsrate zwischen Sender und Empfänger anzupassen (möglich durch Netzwerk-Engpässe oder Empfänger Schnittstellen-Leistungsprobleme). Die gleichen Techniken können oft in anderen Protokollen angewendet werden, insbesondere für Multimediadienste, die über zeitabhängige Netzwerkdienste arbeiten. Anpassung an die Verzögerung am Empfänger kann für zwei Dinge verwendet werden: 1. Adaptiver Playout-Puffer, um das Abspielen zu erleichtern, so dass ein Mediengerät mit fester Rate (z. B. innerhalb eines einzelnen Videorahmens oder eines stummen CBR-Audiogeräts) nicht an Daten verhungert ist oder Überlauf. 2. Syncronisierung von Streams aus verschiedenen Quellen (Zeitstempel) kann an einem Empfänger erreicht werden. Die erste von diesen erfolgt durch Betrachten der Inter-Arrival-Zeit-Variation und Berechnung eines Rolling Average. Es ist erforderlich, um die Tatsache, dass es Variationen in der Netzwerkverzögerung aus zwei Gründen zu bewältigen: Andere Verkehr verursacht langfristigen Durchschnitt zu variieren. Bursts des eigenen Verkehrs verursachen eine eigene Verzögerung, um schnell zu variieren. Der übliche Algorithmus dafür ist ein exponentieller gewichteter gleitender Durchschnitt: Angenommen wir messen die Ankunftszeit für jedes (i-te) Paket als IAT i, dann wäre der einfache Mittelwert: sum i 1 n IAT i. Geteilt durch die Anzahl der Pakete. Aber da der Durchschnitt nicht fest ist, geben wir den jüngsten Messungen viel mehr Gewicht als die älteren durch die Verwendung: Mit anderen Worten, geben wir Alphas Wert der Glaubwürdigkeit auf die neueste Messung, und nur 1 - Alpha bis alle vorherigen . Es ist nur ein Zufall, dass die Gleichung für einen rollenden, gleitenden Durchschnitt für die IAT-Schätzung die gleiche ist wie die für die TCP-RTT-Schätzung. Es ist jedoch anzumerken, daß in beiden Fällen die Anforderung nur dafür ist, daß lokale Uhren nicht zu schnell abdriften, so daß die Messung der aufeinanderfolgenden Ankunftszeiten von Paketen mit den vorherigen, jedoch ohne Taktsynchronisation, genau ist. Dies wird manchmal nicht verwendet, da es die ganze Vergangenheit einschließt und wenn es eine grundlegende Änderung im Netzwerk (z. B. eine Umleitung) gibt, dann kann ein System, das außenliegende Punkte schnell eliminiert, besser sein. Henning Sculzrinnes Papier schlägt einen Bandpassfilter Ansatz für die Schätzung der mittleren IAT. Auf der Grundlage von nur der Summe der kleinsten einer Menge von Messungen vor kurzem über die Anzahl von ihnen. Sobald Sie eine mittlere IAT haben. Dann können Sie den aktuellen benötigten Playout-Puffer berechnen, da er etwa doppelt so groß ist wie die Interarrival-Variante. Wenn zwei Streams synchronisiert werden, um ihre Wiedergabe an einem Empfänger zu synchronisieren, müssen wir die Verzögerung von jeder Quelle zu jedem Ziel kennen und die Taktverschiebungen, falls die Takte in den zwei (oder mehreren) Sendern mit dem Empfänger nicht Schritt halten. Dies erfordert den Austausch von Paketen einschließlich jeder Absender-Anweisung der aktuellen Uhr aus ihrer Sicht. Angenommen, die Verzögerung in jeder Richtung auf dem Netz ist die gleiche (und wenn Sie es nicht unmöglich, dies zu lösen): 1. senden Sie ein Paket von s bis d mit Quellzeit in ihm (t 1) und es kommt bei d an Ds clock liest t 2 2. sendet das Paket zurück zu s mit t 1, t 2 und t 3, die Zeit auf ds clock, wenn es sendet 3. s erhält die Antwort an t 4 durch seine Uhr. 4. Wenn s und d Uhren haben, die sich durch Versatz unterscheiden, und die Netzverzögerung d ist, dann kann der Versatz ähnlich berechnet werden. Dann gehen wir für mehrere Punkte vor und halten einen Mittelwert und eine Varianz. Exponentiell gewichteter gleitender Durchschnitt kann nach folgender Formel berechnet werden: ewmai (1) ewmai-1 x wobei ewma exponentieller gewichteter gleitender Durchschnitt, x aktueller Wert im Array-Glättungsfaktor Nun, wenn Welles Wilder glatter verwendet wird, dann Wert von sollte als 1 / n genommen werden, sonst ist der Standardwert von 2 / (n1). Auf der Grundlage von ähnlichen Gedanken, was ist die Formel für exponentiell gewichtet verschieben Varianz Was ist der Wert von und wie sollte es verwendet werden, fragte am April 6, um 16.45 Uhr als unklar, was Sie fragen, von excaza. Legoscia Karthik Darwin von Corax. Piotrek1543 Apr 6 at 18:00 Bitte klären Sie Ihr spezifisches Problem oder fügen Sie zusätzliche Details zu markieren, genau das, was Sie brauchen. Wie es derzeit geschrieben, seine schwer zu sagen, genau das, was Sie fragen. Auf der Seite Fragen zur Seite finden Sie Hilfe zur Klärung dieser Frage. Wenn diese Frage umformuliert werden kann, um die Regeln in der Hilfe zu passen. Bearbeiten Sie bitte die Frage. Ist dies eine Programmiersprache ndash EdChum Nun, ich bin infact machen Funktionen für exponentielle gleitenden Durchschnitt und Varianz in ruby auf einem Array zu berechnen. Also, seine eine Programmierfrage. Ndash Saurabh Shah Funktionen in welcher Sprache Sie haben 2 getaggt und erwähnen ein Drittel in Ihrem Kommentar. Was haben Sie versucht so weit ist nicht ein Code schreiben Service. Ndash excaza 6. April um 16: 54TCP schätzt RTT mit einem exponentiellen gewichteten Moving Average (en. m.wikipedia. org/wiki/. (Sorry ich can039t herauszufinden, wie zu formatieren Hyperlink auf mobilen)) auf der Grundlage der beobachteten RTT während der Übertragung. Grundsätzlich, wenn TCP ein Paket sendet, startet es einen Timer, der Timeout, wenn es den berechneten TimeoutInterval-Wert erreicht. Der Einfachheit halber wird nur ein Timer verwendet, obwohl mehrere Segmente gleichzeitig durchlaufen werden können (dies wird als Pipelining bezeichnet). Für jedes gegebene Paket gibt es eine Sequenznummer. Wenn der TCP-Absender ein ACK für das Paket empfängt, stoppt es den Zeitgeber, der die verstrichene Zeit als SampleRTT gespeichert wird, und stellt einen Snapshot der Netzwerkbedingungen bereit. Da dieser Wert mit der Zeit schwanken kann, wird das EWMA unter Verwendung des vorherigen EstimatedRTT und des neu erfassten SampleRTT durch die Gleichung berechnet: EstimatedRTT 0,875 EstimatedRTT 0,125 SampleRTT Für eine Erläuterung der verwendeten Werte konsultieren Sie RFC 6298. Die Verwendung eines EWMA bedeutet, dass die Die relative Wichtigkeit einer gegebenen Probe exponentiell abfällt, wenn mehr hinzukommt. Auf Englisch werden neuere Proben als wichtiger angesehen, da sie eine neuere Schätzung darstellen. Zusätzlich zum Mittelwert wird die RTT-Variabilität oder Abweichung durch DevRTT 0,75 DevRTT 0,25 SampleRTT - EstimatedRTT geschätzt. Angesichts dieser Mittelwerte müssen wir uns für ein Timeout entscheiden. Offensichtlich sollte das Zeitlimit mindestens EstimatedRTT sein, mit einer zusätzlichen Marge für Varianz. Wenn DevRTT klein ist, ist die RTT ziemlich konstant, so dass die Marge klein sein kann. Wenn die Varianz höher ist, sollten wir eine größere Fehlergrenze zulassen. Daher empfiehlt TimeoutInterval EstimatedRTT 4 DevRTT RFC 6298 ein initiales TimeoutInterval von einer Sekunde. Wenn ein Timeout auftritt, wird der Wert von TimeoutInterval verdoppelt, um ein weiteres Timeout für dasselbe Paket zu vermeiden. Dies stellt eine gewisse Überlastkontrolle zur Verfügung - je mehr Timeouts auftreten, desto länger wird TCP vor der erneuten Übertragung warten. Sobald das störende Paket durchläuft, wird TimeoutInterval auf seinen zuletzt berechneten Wert zurückgesetzt. EstimatedRTT wird für Pakete, die erneut übertragen werden, nicht berechnet, so dass diese Verdopplung den Wert nicht beeinflusst. 1.7k Ansichten middot Ansicht Upvotes middot Nicht für Fortpflanzung
No comments:
Post a Comment