Citrix ADC

TCP-Optimierung

TCP verwendet die folgenden Optimierungstechniken und Engpasskontrollstrategien (oder Algorithmen), um Netzwerküberlastung bei der Datenübertragung zu vermeiden.

Engpasskontrollstrategien

Das Transmission Control Protocol (TCP) wird seit langem verwendet, um Internetverbindungen herzustellen und zu verwalten, Übertragungsfehler zu behandeln und Webanwendungen problemlos mit Client-Geräten zu verbinden. Der Netzwerkverkehr ist jedoch schwieriger zu kontrollieren, da der Paketverlust nicht nur von der Staus im Netzwerk abhängt und Staus nicht notwendigerweise zu Paketverlust führt. Daher sollte sich ein TCP-Algorithmus auf Paketverlust und Bandbreite konzentrieren, um Engpässe zu messen.

Proportional Rate Recovery (PRR) -Algorithmus

TCP Fast Recovery-Mechanismen reduzieren die Weblatenz, die durch Paketverluste verursacht wird. Der neue PRR-Algorithmus (Proportional Rate Recovery) ist ein schneller Recovery-Algorithmus, der TCP-Daten während einer Verlustwiederherstellung auswertet. Es wird nach der Rate-Halving gemustert, indem der Bruch verwendet wird, der für das Zielfenster geeignet ist, das vom Algorithmus zur Staus gewählt wird. Es minimiert die Fensteranpassung, und die tatsächliche Fenstergröße am Ende der Wiederherstellung liegt nahe am Slow-Start-Schwellenwert (ssthresh).

TCP Fast Open (TFO)

TCP Fast Open (TFO) ist ein TCP-Mechanismus, der einen schnellen und sicheren Datenaustausch zwischen einem Client und einem Server während des ersten Handshakes von TCP ermöglicht. Diese Funktion ist als TCP-Option im TCP-Profil verfügbar, das an einen virtuellen Server einer Citrix ADC Appliance gebunden ist. TFO verwendet ein TCP Fast Open Cookie (ein Sicherheits-Cookie), das die Citrix ADC Appliance generiert, um den Client zu validieren und zu authentifizieren, der eine TFO Verbindung zum virtuellen Server initiiert. Mit diesem TFO Mechanismus können Sie die Netzwerklatenz einer Anwendung um die Zeit reduzieren, die für eine vollständige Hin- und Rückfahrt erforderlich ist, was die Verzögerung bei kurzen TCP-Übertragungen erheblich reduziert.

Funktionsweise von TFO

Wenn ein Client versucht, eine TFO Verbindung herzustellen, enthält er ein TCP Fast Open Cookie mit dem anfänglichen SYN-Segment, um sich selbst zu authentifizieren. Wenn die Authentifizierung erfolgreich ist, kann der virtuelle Server auf der Citrix ADC Appliance Daten in das SYN-ACK-Segment aufnehmen, obwohl er nicht das endgültige ACK-Segment des Dreiwege-Handshakes erhalten hat. Dies spart bis zu einer vollständigen Hin- und Rückfahrt im Vergleich zu einer normalen TCP-Verbindung, die einen Dreiwege-Handshake erfordert, bevor Daten ausgetauscht werden können.

Ein Client und ein Backend-Server führen die folgenden Schritte aus, um eine TFO-Verbindung herzustellen und Daten während des ersten TCP-Handshake sicher auszutauschen.

  1. Wenn der Client über kein TCP Fast Open Cookie verfügt, um sich selbst zu authentifizieren, sendet er eine Fast Open Cookie-Anforderung im SYN-Paket an den virtuellen Server auf der Citrix ADC Appliance.
  2. Wenn die TFO Option im TCP-Profil aktiviert ist, das an den virtuellen Server gebunden ist, generiert die Appliance ein Cookie (indem sie die IP-Adresse des Clients unter einem geheimen Schlüssel verschlüsselt) und antwortet mit einem SYN-ACK auf den Client, das das generierte Fast Open Cookie in einem TCP-Optionsfeld enthält.
  3. Der Client speichert das Cookie für zukünftige TFO-Verbindungen mit demselben virtuellen Server auf der Appliance.
  4. Wenn der Client versucht, eine TFO Verbindung mit demselben virtuellen Server herzustellen, sendet er SYN, die das zwischengespeicherte Fast Open Cookie (als TCP-Option) zusammen mit HTTP-Daten enthält.
  5. Die Citrix ADC Appliance validiert das Cookie, und wenn die Authentifizierung erfolgreich ist, akzeptiert der Server die Daten im SYN-Paket und bestätigt das Ereignis mit einem SYN-ACK, TFO Cookie und HTTP Response.

Hinweis:

Wenn die Clientauthentifizierung fehlschlägt, löscht der Server die Daten und bestätigt das Ereignis nur mit einem SYN, der ein Sitzungszeitlimit angibt.

  1. Wenn auf Serverseite die TFO Option in einem an einen Dienst gebundenen TCP-Profil aktiviert ist, bestimmt die Citrix ADC Appliance, ob das TCP Fast Open Cookie in dem Dienst vorhanden ist, zu dem es versucht, eine Verbindung herzustellen.
  2. Wenn das TCP Fast Open Cookie nicht vorhanden ist, sendet die Appliance eine Cookie-Anfrage im SYN-Paket.
  3. Wenn der Backend-Server das Cookie sendet, speichert die Appliance das Cookie im Serverinformations-Cache.
  4. Wenn die Appliance bereits ein Cookie für das angegebene Ziel-IP-Paar hat, wird das alte Cookie durch das neue ersetzt.
  5. Wenn das Cookie im Serverinformations-Cache verfügbar ist, wenn der virtuelle Server versucht, mithilfe derselben SNIP-Adresse eine erneute Verbindung mit demselben Backend-Server herzustellen, kombiniert die Appliance die Daten im SYN-Paket mit dem Cookie und sendet es an den Backend-Server.
  6. Der Backend-Server bestätigt das Ereignis sowohl mit Daten als auch mit einem SYN.

Hinweis: Wenn der Server das Ereignis nur mit einem SYN-Segment bestätigt, sendet die Citrix ADC Appliance das Datenpaket sofort erneut, nachdem das SYN-Segment und die TCP-Optionen aus dem ursprünglichen Paket entfernt wurden.

TCP schnelles Öffnen konfigurieren

Um die TCP-Funktion Fast Open (TFO) zu verwenden, aktivieren Sie die Option TCP Fast Open im entsprechenden TCP-Profil und setzen Sie den Parameter TFO Cookie Timeout auf einen Wert, der der Sicherheitsanforderung für dieses Profil entspricht.

Aktivieren oder Deaktivieren von TFO mit der CLI

Geben Sie an der Eingabeaufforderung einen der folgenden Befehle ein, um TFO in einem neuen oder vorhandenen Profil zu aktivieren oder zu deaktivieren.

Hinweis: Der Standardwert ist DISABLED.

    add tcpprofile <TCP Profile Name> - tcpFastOpen ENABLED | DISABLED
    set tcpprofile <TCP Profile Name> - tcpFastOpen ENABLED | DISABLED
    unset tcpprofile <TCP Profile Name> - tcpFastOpen
    Examples
    add tcpprofile Profile1 – tcpFastOpen
    Set tcpprofile Profile1 – tcpFastOpen Enabled
    unset tcpprofile Profile1 – tcpFastOpen

Geben Sie an der Eingabeaufforderung Folgendes ein:

    set tcpparam –tcpfastOpenCookieTimeout <Timeout Value>
    Example
    set tcpprofile –tcpfastOpenCookieTimeout 30secs

So konfigurieren Sie TCP Fast Open mit der GUI

  1. Navigieren Sie zu Konfiguration > System > Profile >, und klicken Sie dann auf Bearbeiten, um ein TCP-Profil zu ändern.
  2. Aktivieren Sie auf der Seite TCP-Profil konfigurieren das Kontrollkästchen TCP Fast Open.
  3. Klicken Sie auf OK und dann auf Fertig.

Navigieren Sie zu Konfiguration > System > Einstellungen > TCP-Parameter ändern und dann Seite TCP-Parameter konfigurieren, um den TCP-Zeitüberschreitungswert für TCP Fast Open Cookie festzulegen.

TCP Hystart

Ein neuer TCP-Profilparameter, hystart, ermöglicht den Hystart-Algorithmus, bei dem es sich um einen Slow-Start-Algorithmus handelt, der dynamisch einen sicheren Punkt bestimmt, an dem beendet werden soll (ssthresh). Es ermöglicht einen Übergang zur Stauvermeidung ohne hohe Paketverluste. Dieser neue Parameter ist standardmäßig deaktiviert.

Wenn Staus festgestellt wird, tritt Hystart in eine Staus Vermeidungsphase ein. Durch die Aktivierung erhalten Sie einen besseren Durchsatz in Hochgeschwindigkeitsnetzen mit hohem Paketverlust. Dieser Algorithmus hilft, bei der Verarbeitung von Transaktionen nahezu die maximale Bandbreite beizubehalten. Dadurch kann der Durchsatz verbessert werden.

TCP-Hystart konfigurieren

Um die Hystart-Funktion zu verwenden, aktivieren Sie die Option Cubic Hystart im entsprechenden TCP-Profil.

So konfigurieren Sie Hystart mit der Befehlszeilenschnittstelle (CLI)

Geben Sie an der Eingabeaufforderung einen der folgenden Befehle ein, um Hystart in einem neuen oder vorhandenen TCP-Profil zu aktivieren oder zu deaktivieren.

add tcpprofile <profileName> -hystart ENABLED
set tcpprofile <profileName> -hystart ENABLED
unset tcprofile <profileName> -hystart

Beispiele:

    add tcpprofile profile1 -hystart ENABLED
    set tcpprofile profile1 -hystart ENABLED
    unset tcprofile profile1 -hystart

So konfigurieren Sie die Hystart-Unterstützung mit der GUI

  1. Navigieren Sie zu Konfiguration > System > Profile > und klicken Sie auf Bearbeiten, um ein TCP-Profil zu ändern.
  2. Aktivieren Sie auf der Seite TCP-Profil konfigurieren das Kontrollkästchen Cubic Hystart.
  3. Klicken Sie auf OK und dann auf Fertig.

TCP-Burstratensteuerung

Es wird beobachtet, dass TCP-Steuerungsmechanismen zu einem explosiven Verkehrsfluss in Hochgeschwindigkeitsnetzwerken führen können, was sich negativ auf die Gesamteffizienz des Netzwerks auswirkt. Aufgrund mobiler Netzwerkbedingungen wie Überlastung oder Layer-2-Weiterübertragung von Daten kommen TCP-Bestätigungen verklumpt an den Absender und lösen einen Ausbruch der Übertragung aus. Diese Gruppe von aufeinanderfolgenden Paketen mit einem kurzen Inter-Paketlücken gesendet wird es TCP-Paket-Burst genannt. Zur Überwindung des Datenverkehrs verwendet die Citrix ADC Appliance eine TCP-Burstratensteuerung. Diese Technik räumt Daten gleichmäßig in das Netzwerk über eine ganze Round-Trip-Zeit ein, so dass die Daten nicht in einen Burst gesendet werden. Mit dieser Methode zur Burstratensteuerung können Sie einen besseren Durchsatz und niedrigere Paketabfallraten erzielen.

Funktionsweise der TCP-Burstratensteuerung

In einer Citrix ADC Appliance verteilt diese Technik die Übertragung eines Pakets gleichmäßig über die gesamte Dauer der Round-Trip-Zeit (RTT). Dies wird durch Verwendung eines TCP-Stacks und eines Netzwerkpaketplaners erreicht, der die verschiedenen Netzwerkbedingungen identifiziert, um Pakete für laufende TCP-Sitzungen auszugeben, um die Bursts zu reduzieren.

Statt Pakete sofort nach Erhalt einer Bestätigung zu übertragen, kann der Absender die Übertragung von Paketen verzögern, um sie mit der vom Scheduler (Dynamische Konfiguration) oder vom TCP-Profil (Feste Konfiguration) definierten Rate zu verteilen.

TCP-Burstratensteuerung konfigurieren

Verwenden Sie die Option TCP-Aufteilungsratensteuerung im entsprechenden TCP-Profil und legen Sie die Parameter für die Aufteilungsratensteuerung fest.

So legen Sie die TCP-Aufteilungsratensteuerung mit der Befehlszeile fest

Legen Sie an der Eingabeaufforderung einen der folgenden TCP-Burstratensteuerungsbefehle fest, der in einem neuen oder vorhandenen Profil konfiguriert ist.

Hinweis: Der Standardwert ist DISABLED.

add tcpprofile <TCP Profile Name> -burstRateControl Disabled | Dynamic | Fixed

set tcpprofile <TCP Profile Name> -burstRateControl Disabled | Dynamic | Fixed

unset tcpprofile <TCP Profile Name> -burstRateControl Disabled | Dynamic | Fixed

Wobei:

Disabled — Wenn die Burstratensteuerung deaktiviert ist, führt eine Citrix ADC Appliance nur die MaxBurst-Einstellung durch.

Fixed — Wenn die TCP-Aufteilungsratensteuerung Fixed lautet, verwendet die Appliance den im TCP-Profil erwähnten Sendewert für TCP-Verbindungsnutzlast.

Dynamic— Wenn die Burstratensteuerung Dynamisch ist, wird die Verbindung basierend auf verschiedenen Netzwerkbedingungen reguliert, um TCP-Bursts zu reduzieren. Dieser Modus funktioniert nur, wenn sich die TCP-Verbindung im ENDPOINT-Modus befindet. Wenn die dynamische Burstratensteuerung aktiviert ist, ist der MaxBurst-Parameter des TCP-Profils nicht wirksam.

add tcpProfile  profile1 -burstRateControl Disabled

set tcpProfile profile1 -burstRateControl Dynamic

unset tcpProfile profile1 -burstRateControl Fixed

So legen Sie Parameter für die TCP-Burstratensteuerung mit der Befehlszeilenschnittstelle fest

Geben Sie an der Eingabeaufforderung Folgendes ein:

    set ns tcpprofile nstcp_default_profile –burstRateControl <type of burst rate control> –tcprate <TCP rate> -rateqmax <maximum bytes in queue>

    T1300-10-2> show ns tcpprofile nstcp_default_profile
            Name: nstcp_default_profile
            Window Scaling status:  ENABLED
            Window Scaling factor: 8
            SACK status: ENABLED
            MSS: 1460
            MaxBurst setting: 30 MSS
            Initial cwnd setting: 16 MSS
            TCP Delayed-ACK Timer: 100 millisec
            Nagle's Algorithm: DISABLED
            Maximum out-of-order packets to queue: 15000
            Immediate ACK on PUSH packet: ENABLED
            Maximum packets per MSS: 0
            Maximum packets per retransmission: 1
            TCP minimum RTO in millisec: 1000
            TCP Slow start increment: 1
            TCP Buffer Size: 8000000 bytes
            TCP Send Buffer Size: 8000000 bytes
            TCP Syncookie: ENABLED
            Update Last activity on KA Probes: ENABLED
            TCP flavor: BIC
            TCP Dynamic Receive Buffering: DISABLED
            Keep-alive probes: ENABLED
            Connection idle time before starting keep-alive probes: 900 seconds
            Keep-alive probe interval: 75 seconds
            Maximum keep-alive probes to be missed before dropping connection: 3
            Establishing Client Connection: AUTOMATIC
            TCP Segmentation Offload: AUTOMATIC
            TCP Timestamp Option: DISABLED
            RST window attenuation (spoof protection): ENABLED
            Accept RST with last acknowledged sequence number: ENABLED
            SYN spoof protection: ENABLED
            TCP Explicit Congestion Notification: DISABLED
            Multipath TCP: DISABLED
            Multipath TCP drop data on pre-established subflow: DISABLED
            Multipath TCP fastopen: DISABLED
            Multipath TCP session timeout: 0 seconds
            DSACK: ENABLED
            ACK Aggregation: DISABLED
            FRTO: ENABLED
            TCP Max CWND : 4000000 bytes
            FACK: ENABLED
            TCP Optimization mode: ENDPOINT
            TCP Fastopen: DISABLED
            HYSTART: DISABLED
            TCP dupack threshold: 3
            Burst Rate Control: Dynamic
            TCP Rate: 0
            TCP Rate Maximum Queue: 0

So konfigurieren Sie die TCP-Burstratensteuerung mit der GUI

  1. Navigieren Sie zu Konfiguration > System > Profile >, und klicken Sie dann auf Bearbeiten, um ein TCP-Profil zu ändern.
  2. Wählen Sie auf der Seite TCP-Profil konfigurieren aus der Dropdownliste die Option TCP-Burst Control aus:
    1. BurstRateCntrl
    2. CreditBytePrms
    3. RateBytePerms
    4. RateSchedulerQ
  3. Klicken Sie auf OK und dann auf Fertig.

Schutz gegen Wrapped Sequence (PAWS) -Algorithmus

Wenn Sie die TCP-Zeitstempeloption im Standard-TCP-Profil aktivieren, verwendet die Citrix ADC Appliance den PAWS-Algorithmus (Protection Against Wrapped Sequence), um alte Pakete zu identifizieren und abzulehnen, deren Sequenznummern sich innerhalb des Empfangsfensters der aktuellen TCP-Verbindung befinden, da die Sequenz umgebrochen ( seinen Maximalwert erreicht und von 0 neu gestartet).

Wenn Netzwerküberlastung ein Nicht-SYN-Datenpaket verzögert und Sie eine neue Verbindung öffnen, bevor das Paket eintrifft, kann das Umbrechen von Sequenznummern dazu führen, dass die neue Verbindung das Paket als gültig akzeptiert, was zu Datenbeschädigung führt. Wenn jedoch die TCP-Zeitstempeloption aktiviert ist, wird das Paket verworfen.

Standardmäßig ist die TCP-Zeitstempeloption deaktiviert. Wenn Sie es aktivieren, vergleicht die Appliance den TCP-Zeitstempel (Seg.tsval) im Header eines Pakets mit dem Wert für den letzten Zeitstempel (ts.Recent). Wenn Seg.tsval gleich oder größer als ts.Recent ist, wird das Paket verarbeitet. Andernfalls löscht die Appliance das Paket und sendet eine Korrekturbestätigung.

Wie funktioniert PAWS?

Der PAWS-Algorithmus verarbeitet alle eingehenden TCP-Pakete einer synchronisierten Verbindung wie folgt:

  1. Wenn Seg.tsval < ts.Recent: Das eingehende Paket ist nicht akzeptabel. PAWS sendet eine Bestätigung (wie in RFC-793 angegeben) und löscht das Paket. Hinweis: Das Senden eines ACK-Segments ist notwendig, um die Mechanismen von TCP zum Erkennen und Wiederherstellen von halboffenen Verbindungen beizubehalten.
  2. Wenn das Paket außerhalb des Fensters liegt: PAWS lehnt das Paket ab, wie bei der normalen TCP-Verarbeitung.
  3. Wenn Seg.tsval > ts.Recent: PAWS akzeptiert das Paket und verarbeitet es.
  4. Wenn SEG.TSval <= Last.ACK.sent (ankommendes Segment erfüllt): PAWS muss SEG.TSval Wert nach ts.Recent kopieren (wird es in das T.Recent Feld in der db? kopiert?.
  5. Wenn das Paket in der Reihenfolge ist: PAWS akzeptiert das Paket.
  6. Wenn das Paket nicht in der Reihenfolge ist: Das Paket wird als normales TCP-Segment im Fenster behandelt. Beispielsweise kann es für eine spätere Zustellung in die Warteschlange gestellt werden.
  7. Wenn T.Recent Wert für mehr als 24 Tage im Leerlauf ist: Die Gültigkeit von T.Recent wird überprüft, wenn die PAWS-Zeitstempelprüfung fehlschlägt. Wenn der Wert ts.Recent ungültig ist, wird das Segment akzeptiert, und die PAWS-Regel aktualisiert ts.Recent mit dem TsVal-Wert aus dem neuen Segment.

So aktivieren oder deaktivieren Sie TCP-Zeitstempel mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung Folgendes ein:

`set nstcpprofile nstcp_default_profile -TimeStamp (ENABLED | DISABLED)`

So aktivieren oder deaktivieren Sie TCP-Zeitstempel mit der GUI

Navigieren Sie zu System > Profil > TCP-Profil, wählen Sie das Standard-TCP-Profil aus, klicken Sie auf Bearbeiten, und aktivieren oder deaktivieren Sie das Kontrollkästchen TCP-Zeitstempel.

Optimierungstechniken

TCP verwendet die folgenden Optimierungstechniken und -methoden für optimierte Flusssteuerungen.

Richtlinienbasierte TCP-Profilauswahl

Der Netzwerkverkehr ist heute vielfältiger und bandbreitenintensiver als je zuvor. Mit dem erhöhten Datenverkehr ist die Wirkung, die Quality of Service (QoS) auf die TCP-Leistung hat, signifikant. Um QoS zu verbessern, können Sie jetzt AppQoE-Richtlinien mit unterschiedlichen TCP-Profilen für verschiedene Klassen von Netzwerkverkehr konfigurieren. Die AppQoE-Richtlinie klassifiziert den Datenverkehr eines virtuellen Servers, um ein TCP-Profil zu verknüpfen, das für einen bestimmten Typ von Datenverkehr optimiert ist, z. B. 3G, 4G, LAN oder WAN.

Um dieses Feature zu verwenden, erstellen Sie für jedes TCP-Profil eine Richtlinienaktion, ordnen Sie eine Aktion AppQoE-Richtlinien zu und binden Sie die Richtlinien an die virtuellen Server mit Lastenausgleich.

Hinweise zum Verwenden von Abonnentenattributen zum Ausführen der TCP-Optimierung finden Sie unterPolicy-basiertes TCP-Profil.

Konfigurieren der Richtlinienbasierten TCP-Profilauswahl

Die Konfiguration der richtlinienbasierten TCP-Profilauswahl umfasst die folgenden Aufgaben:

  • AppQOE wird aktiviert. Bevor Sie das TCP-Profilfeature konfigurieren, müssen Sie die AppQOE-Funktion aktivieren.
  • AppQoE-Aktion hinzufügen. Nachdem Sie die AppQoE-Funktion aktiviert haben, konfigurieren Sie eine AppQoE-Aktion mit einem TCP-Profil.
  • Konfigurieren der AppQoE-basierten TCP-Profilauswahl. Um die TCP-Profilauswahl für verschiedene Verkehrsklassen zu implementieren, müssen Sie AppQoE-Richtlinien konfigurieren, mit denen Ihr Citrix ADC die Verbindungen unterscheiden und die richtige AppQoE-Aktion an jede Richtlinie binden kann.
  • Binden der AppQOE-Richtlinie an den virtuellen Server. Nachdem Sie die AppQoE-Richtlinien konfiguriert haben, müssen Sie sie an einen oder mehrere virtuelle Load Balancing-, Content-Switching- oder Cache-Umleitungsserver binden.

Konfigurieren über die Befehlszeilenschnittstelle

So aktivieren Sie AppQOE mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um das Feature zu aktivieren, und überprüfen Sie, ob es aktiviert ist:

  • enable ns feature appqoe
  • show ns feature

So binden Sie ein TCP-Profil beim Erstellen einer AppQoE-Aktion mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung den folgenden AppQoE-Aktionsbefehl mit der Option tcpprofiletobind ein.

add appqoe action <name> [-priority <priority>] [-respondWith ( ACS | NS ) [<CustomFile>] [-altContentSvcName <string>] [-altContentPath <string>] [-maxConn <positive_integer>] [-delay <usecs>]] [-polqDepth <positive_integer>] [-priqDepth <positive_integer>] [-dosTrigExpression <expression>] [-dosAction ( SimpleResponse |HICResponse )] [-tcpprofiletobind <string>] show appqoe action

So konfigurieren Sie eine AppQoE-Richtlinie mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung Folgendes ein:

add appqoe policy <name> -rule <expression> -action <string>

So binden Sie eine AppQoE-Richtlinie an Lastausgleich, Cache-Umleitung oder Content-Umschaltung virtueller Server mit der Befehlszeilenschnittstelle

Geben Sie an der Eingabeaufforderung Folgendes ein:

bind cs vserver cs1 -policyName <appqoe_policy_name> -priority <priority> bind lb vserver <name> - policyName <appqoe_policy_name> -priority <priority> bind cr vserver <name> -policyName <appqoe_policy_name> -priority <priority>

Beispiel

    add ns tcpProfile tcp1 -WS ENABLED -SACK ENABLED -WSVal 8 -nagle ENABLED -maxBurst 30 -initialCwnd 16 -oooQSize 15000 -minRTO 500 -slowStartIncr 1 -bufferSize 4194304 -flavor BIC -KA ENABLED -sendBuffsize 4194304 -rstWindowAttenuate ENABLED -spoofSynDrop ENABLED -dsack enabled -frto ENABLED -maxcwnd 4000000 -fack ENABLED -tcpmode ENDPOINT
    add appqoe action appact1 -priority HIGH -tcpprofile tcp1
    add appqoe policy apppol1 -rule "client.ip.src.eq(10.102.71.31)" -action appact1
    bind lb vserver lb2 -policyName apppol1 -priority 1 -gotoPriorityExpression END -type REQUEST
    bind cs vserver cs1 -policyName apppol1 -priority 1 -gotoPriorityExpression END -type REQUEST

Konfigurieren der richtlinienbasierten TCP-Profilerstellung mit der GUI

So aktivieren Sie AppQOE mit der GUI

  1. Navigieren Sie zu System > Einstellungen.
  2. Klicken Sie im Detailbereich auf Erweiterte Funktionen konfigurieren.
  3. Aktivieren Sie im Dialogfeld Erweiterte Funktionen konfigurieren das Kontrollkästchen AppQOE .
  4. Klicken Sie auf OK.

So konfigurieren Sie die AppQOE-Richtlinie mit der GUI

  1. Navigieren Sie zu App-Expert > AppQoe > Aktionen .
  2. Führen Sie im Detailbereich eine der folgenden Aktionen aus:
  3. Um eine neue Aktion zu erstellen, klicken Sie auf Hinzufügen.
  4. Um eine vorhandene Aktion zu ändern, wählen Sie die Aktion aus, und klicken Sie dann auf Bearbeiten.
  5. Geben Sie im Bildschirm AppQoE-Aktion erstellen oder im Fenster AppQoE-Aktion konfigurieren Werte für die Parameter ein oder wählen Sie sie aus. Der Inhalt des Dialogfensters entspricht den unter Parameter für die Konfiguration der AppQoE-Aktion beschriebenen Parametern wie folgt (Sternchen gibt einen erforderlichen Parameter an):
    1. Name — Name
    2. Aktionstyp: RespondWith
    3. Priorität — Priorität
    4. Richtlinienwarteschlangentiefe — polqDepth
    5. Warteschlangentiefe — priqDepth
    6. DOS-Aktion — dosAction
  6. Klicken Sie auf Erstellen.

So binden Sie AppQoE-Richtlinie mit der GUI

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server, wählen Sie einen Server aus, und klicken Sie dann auf Bearbeiten .
  2. Klicken Sie im Abschnitt Richtlinien auf (+), um eine AppQoE-Richtlinie zu binden.
  3. Führen Sie im Schieberegler Richtlinien die folgenden Schritte aus:
    1. Wählen Sie einen Richtlinientyp als AppQoe aus der Dropdownliste aus.
    2. Wählen Sie einen Datenverkehrstyp aus der Dropdownliste aus.
  4. Gehen Sie im Abschnitt Richtlinienbindung folgendermaßen vor:
    1. Klicken Sie auf Neu, um eine neue AppQoE-Richtlinie zu erstellen.
    2. Klicken Sie auf Vorhandene Richtlinie, um eine AppQoE-Richtlinie aus der Dropdownliste auszuwählen.
  5. Legen Sie die Bindungspriorität fest, und klicken Sie auf An die Richtlinie an den virtuellen Server binden .
  6. Klicken Sie auf Fertig.

SACK-Blockgenerierung

Die TCP-Leistung verlangsamt sich, wenn mehrere Pakete in einem Datenfenster verloren gehen. In einem solchen Szenario überwindet ein selektives Acknowledgement (SACK) -Mechanismus in Kombination mit einer selektiven Wiederholungsrichtlinie diese Einschränkung. Für jedes eingehende Out-of-Order-Paket müssen Sie einen SACK-Block generieren.

Wenn das Paket nicht in den Warteschlangenblock passt, fügen Sie Paketinformationen in den Block ein, und legen Sie die vollständigen Blockinformationen als SACK-0 fest. Wenn ein nicht bestelltes Paket nicht in den Wiederzusammenbaublock passt, senden Sie das Paket als SACK-0 und wiederholen Sie die früheren SACK-Blocks. Wenn ein nicht bestelltes Paket ein Duplikat ist und Paketinfo als SACK-0 gesetzt ist, dann ist D-SACK der Block.

Hinweis: Ein Paket gilt als D-SACK, wenn es sich um ein quittiertes Paket handelt, oder um ein veraltetes Paket, das bereits empfangen wurde.

Client-Abtrennung

Eine Citrix ADC Appliance kann das Reneging von Clients während der SACK-basierten Wiederherstellung verarbeiten.

Speicherüberprüfungen zur Markierung von end_point auf PCB berücksichtigen nicht den gesamten verfügbaren Speicher

Wenn in einer Citrix ADC Appliance der Schwellenwert für die Speichernutzung auf 75 Prozent festgelegt ist, anstatt den gesamten verfügbaren Speicher zu verwenden, bewirkt dies, dass neue TCP-Verbindungen TCP-Optimierung umgehen.

Unnötige Weiterübertragungen durch fehlende SACK-Blocks

Wenn Sie in einem Nicht-Endpunkt-Modus DUPACKS senden, werden beim Senden von SACK-Blocks für wenige Pakete außerhalb der Ordnung fehlen, zusätzliche Neuübertragungen vom Server ausgelöst.

SNMP für die Anzahl der Verbindungen wurde durch Überlastung optimiert

Die folgenden SNMP-IDs wurden zu einer Citrix ADC Appliance hinzugefügt, um die Anzahl der Verbindungen nachzuverfolgen, die TCP-Optimierung aufgrund von Überlastung umgangen wurden.

  1. 1.3.6.1.4.1.5951.4.1.1.46.131 (tcpOptimizationEnabled). Um die Gesamtzahl der Verbindungen zu verfolgen, die mit TCP-Optimierung aktiviert sind.
  2. 1.3.6.1.4.1.5951.4.1.1.46.132 (tcpOptimizationBypassed). Um die Gesamtzahl der Verbindungen zu verfolgen, wurde TCP-Optimierung umgangen.

Dynamischer Empfangspuffer

Um die TCP-Leistung zu maximieren, kann eine Citrix ADC Appliance nun die Größe des TCP-Empfangspuffers dynamisch anpassen.

Tail-Loss Sonde Algorithmus

Ein Retransmission Timeout (RTO) ist ein Verlust von Segmenten am Ende einer Transaktion. Ein RTO tritt auf, wenn Probleme mit der Anwendungslatenz auftreten, insbesondere bei kurzen Webtransaktionen. Um den Verlust von Segmenten am Ende einer Transaktion wiederherzustellen, verwendet TCP den Tail Loss Probe (TLP) Algorithmus. TLP ist ein Algorithmus für den Absender. Wenn eine TCP-Verbindung für einen bestimmten Zeitraum keine Bestätigung erhält, überträgt TLP das letzte nicht bestätigte Paket (Loss Probe). Bei einem Endverlust im Originalgetriebe löst Quittieren von Verlustsonde eine SACK- oder FACK-Wiederherstellung aus.

Tailloss-Sonde konfigurieren

Um den TLP-Algorithmus (Tail Loss Probe) zu verwenden, müssen Sie die Option TLP im TCP-Profil aktivieren und den Parameter auf einen Wert festlegen, der der Sicherheitsanforderung für dieses Profil entspricht.

Aktivieren Sie TLP mit der Befehlszeile

Geben Sie an der Eingabeaufforderung einen der folgenden Befehle ein, um TLP in einem neuen oder vorhandenen Profil zu aktivieren oder zu deaktivieren.

Hinweis:

Der Standardwert ist DISABLED.

add tcpprofile <TCP Profile Name> - taillossprobe ENABLED | DISABLED

set tcpprofile <TCP Profile Name> - taillossprobe ENABLED | DISABLED

unset tcpprofile <TCP Profile Name> - taillossprobe

Beispiele:

add tcpprofile nstcp_default_profile – taillossprobe

set tcpprofile nstcp_default_profile –taillossprobe Enabled

unset tcpprofile nstcp_default_profile –taillossprobe

Konfigurieren des Algorithmus für die Tail-Loss Probe mit der Citrix ADC GUI

  1. Navigieren Sie zu Konfiguration > System > Profile >, und klicken Sie dann auf Bearbeiten, um ein TCP-Profil zu ändern.
  2. Aktivieren Sie auf der Seite TCP-Profil konfigurieren das Kontrollkästchen Tail-Loss Probe .
  3. Klicken Sie auf OK und dann auf Fertig.