ADC

TCP-Optimierung

TCP verwendet die folgenden Optimierungstechniken und Strategien (oder Algorithmen) zur Überlastungskontrolle, um Netzwerkengpässe bei der Datenübertragung zu vermeiden.

Strategien zur Staukontrolle

TCP wird seit langem verwendet, um Internetverbindungen herzustellen und zu verwalten, Übertragungsfehler zu behandeln und Webanwendungen reibungslos mit Client-Geräten zu verbinden. Der Netzwerkverkehr ist jedoch schwieriger zu kontrollieren, da der Paketverlust nicht nur von der Überlastung des Netzwerks abhängt und eine Überlastung nicht unbedingt zu Paketverlusten führt. Um die Überlastung zu messen, sollte sich ein TCP-Algorithmus daher sowohl auf den Paketverlust als auch auf die Bandbreite konzentrieren.

PRR-Algorithmus (Proportional Rate Recovery)

TCP-Schnellwiederherstellungsmechanismen reduzieren die durch Paketverluste verursachte Weblatenz. Der neue PRR-Algorithmus (Proportional Rate Recovery) ist ein schneller Wiederherstellungsalgorithmus, der TCP-Daten während einer Loss Recovery auswertet. Das Muster ist dem Rate-Halving nachempfunden, indem der Bruchteil verwendet wird, der für das vom Staukontrollalgorithmus gewählte Zielfenster geeignet ist. Dadurch wird die Fensteranpassung minimiert, und die tatsächliche Fenstergröße am Ende der Wiederherstellung liegt nahe am Schwellenwert für langsamen Start (ssthresh).

Schnelles TCP-Öffnen (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 TCP-Handshakes ermöglicht. Diese Funktion ist als TCP-Option im TCP-Profil verfügbar, das an einen virtuellen Server einer NetScaler-Appliance gebunden ist. TFO verwendet ein TCP-Fast-Open-Cookie (ein Sicherheitscookie), das die NetScaler-Appliance generiert, um den Client zu validieren und zu authentifizieren, der eine TFO-Verbindung zum virtuellen Server initiiert. Mithilfe dieses TFO-Mechanismus können Sie die Netzwerklatenz einer Anwendung um die Zeit reduzieren, die für einen vollständigen Roundtrip erforderlich ist, wodurch die Verzögerung bei kurzen TCP-Übertragungen erheblich reduziert wird.

So funktioniert 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 zu authentifizieren. Wenn die Authentifizierung erfolgreich ist, kann der virtuelle Server auf der NetScaler-Appliance Daten in das SYN-ACK-Segment aufnehmen, obwohl er das letzte ACK-Segment des Drei-Wege-Handshakes nicht empfangen hat. Dadurch wird im Vergleich zu einer normalen TCP-Verbindung, für die ein dreifacher Handshake erforderlich ist, bevor Daten ausgetauscht werden können, bis zu einem kompletten Round-Trip eingespart.

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

  1. Wenn der Client kein TCP-Fast-Open-Cookie hat, um sich zu authentifizieren, sendet er eine Fast Open Cookie-Anfrage im SYN-Paket an den virtuellen Server auf der NetScaler-Appliance.
  2. Wenn die TFO-Option in dem an den virtuellen Server gebundenen TCP-Profil aktiviert ist, generiert die Appliance ein Cookie (indem die IP-Adresse des Clients mit einem geheimen Schlüssel verschlüsselt wird) und antwortet dem Client mit einem SYN-ACK, das das generierte Fast Open Cookie in einem TCP-Optionsfeld enthält.
  3. Der Client speichert das Cookie für zukünftige TFO-Verbindungen zu demselben virtuellen Server auf der Appliance.
  4. Wenn der Client versucht, eine TFO-Verbindung zu demselben virtuellen Server herzustellen, sendet er SYN, das das zwischengespeicherte Fast Open Cookie (als TCP-Option) zusammen mit HTTP-Daten enthält.
  5. Die NetScaler-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, einem TFO-Cookie und einer HTTP-Antwort.

Hinweis:

Schlägt die Client-Authentifizierung fehl, löscht der Server die Daten und bestätigt das Ereignis nur mit einem SYN, das auf ein Sitzungs-Timeout hinweist.

  1. Wenn auf der Serverseite die TFO-Option in einem an einen Dienst gebundenen TCP-Profil aktiviert ist, bestimmt die NetScaler-Appliance, ob das TCP Fast Open Cookie in dem Dienst vorhanden ist, zu dem sie 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 Serverinformationscache.
  4. Wenn die Appliance bereits über ein Cookie für das angegebene Ziel-IP-Paar verfügt, ersetzt sie das alte Cookie durch das neue.
  5. Wenn das Cookie im Serverinformationscache verfügbar ist, wenn der virtuelle Server versucht, mithilfe derselben SNIP-Adresse erneut eine Verbindung zu demselben Backend-Server herzustellen, kombiniert die Appliance die Daten im SYN-Paket mit dem Cookie und sendet sie 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 NetScaler-Appliance das Datenpaket sofort erneut, nachdem das SYN-Segment und die TCP-Optionen aus dem ursprünglichen Paket entfernt wurden.

Konfiguration von TCP fast open

Um die Funktion TCP 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 den Sicherheitsanforderungen für dieses Profil entspricht.

Aktivieren oder deaktivieren Sie TFO mithilfe der CLI

Geben Sie in der Befehlszeile 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
<!--NeedCopy-->

Geben Sie in der Befehlszeile Folgendes ein:

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

So konfigurieren Sie das TCP Fast Open mithilfe der GUI

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

Navigieren Sie zu Konfiguration > System > Einstellungen > TCP-Parameter ändern und dann zur Seite „ TCP-Parameter konfigurieren“, um den Timeout-Wert für das TCP-Fast-Open-Cookie festzulegen.

TCP-HyStart

Ein neuer TCP-Profilparameter, HyStart, aktiviert den HyStart-Algorithmus, bei dem es sich um einen langsamen Start-Algorithmus handelt, der dynamisch einen sicheren Punkt für die Beendigung bestimmt (ssthresh). Es ermöglicht einen Übergang zur Vermeidung von Engpässen ohne starke Paketverluste. Dieser neue Parameter ist standardmäßig deaktiviert.

Wenn ein Stau erkannt wird, geht HyStart in eine Phase zur Vermeidung von Staus über. Wenn Sie es aktivieren, erhalten Sie einen besseren Durchsatz in Hochgeschwindigkeitsnetzwerken mit hohem Paketverlust. Dieser Algorithmus trägt dazu bei, bei der Verarbeitung von Transaktionen eine nahezu maximale Bandbreite aufrechtzuerhalten. Es kann daher den Durchsatz verbessern.

Konfiguration von TCP HyStart

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

So konfigurieren Sie HyStart mithilfe der Befehlszeilenschnittstelle (CLI)

Geben Sie an der Befehlszeile 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
<!--NeedCopy-->

Beispiele:

    add tcpprofile profile1 -hystart ENABLED
    set tcpprofile profile1 -hystart ENABLED
    unset tcprofile profile1 -hystart
<!--NeedCopy-->

So konfigurieren Sie die HyStart-Unterstützung mithilfe 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. Klicke auf OK und dann auf Fertig.

Steuerung der TCP-Burstrate

Es wird beobachtet, dass TCP-Steuerungsmechanismen zu einem sprunghaften Verkehrsfluss in Hochgeschwindigkeits-Mobilfunknetzen führen können, was sich negativ auf die Gesamteffizienz des Netzwerks auswirkt. Aufgrund von Mobilfunkbedingungen wie Überlastung oder Layer-2-Übertragung von Daten kommen TCP-Bestätigungen verklumpt beim Absender an, was einen Übertragungsschub auslöst. Diese Gruppen aufeinanderfolgender Pakete, die mit einer kurzen Lücke zwischen den Paketen gesendet werden, wird als TCP-Paket-Burst bezeichnet. Zur Vermeidung von Datenausbrüchen verwendet die NetScaler-Appliance eine TCP-Burst-Rate-Control-Technik. Bei dieser Technik werden die Daten für eine gesamte Roundtrip-Zeit gleichmäßig im Netzwerk verteilt, sodass die Daten nicht in einem Burst-Modus gesendet werden. Durch die Verwendung dieser Technik zur Burst-Rate-Steuerung können Sie einen besseren Durchsatz und niedrigere Paketabwurfraten erzielen.

So funktioniert die TCP-Burst-Rate-Steuerung

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

Beim Absender kann der Sender die Übertragung von Paketen verzögern, anstatt Pakete sofort nach Erhalt einer Bestätigung zu übertragen, um sie mit der Geschwindigkeit zu verteilen, die vom Scheduler (dynamische Konfiguration) oder vom TCP-Profil (feste Konfiguration) definiert ist.

Konfiguration der TCP-Burst-Rate-Steuerung

Um die Option TCP-Burst Rate Control im entsprechenden TCP-Profil zu verwenden und die Burst-Rate-Control-Parameter festzulegen.

So stellen Sie die TCP-Burstratensteuerung mithilfe der Befehlszeile ein

Stellen Sie in der Befehlszeile einen der folgenden TCP-Burst Rate Control-Befehle ein, die in einem neuen oder vorhandenen Profil konfiguriert sind.

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
<!--NeedCopy-->

Hierbei gilt:

Deaktiviert — Wenn die Burst-Rate-Steuerung deaktiviert ist, führt eine NetScaler-Appliance außer der MaxBurst-Einstellung kein Burst-Management durch.

Behoben — Wenn die TCP-Burst-Rate-Steuerung auf Fest gesetzt ist, verwendet die Appliance den im TCP-Profil angegebenen Wert für die Senderate der TCP-Verbindungsnutzlast.

Dynamisch — Wenn die Burst Rate Control „Dynamisch“ ist, wird die Verbindung auf der Grundlage verschiedener Netzwerkbedingungen reguliert, um TCP-Bursts zu reduzieren. Dieser Modus funktioniert nur, wenn sich die TCP-Verbindung im ENDPOINT-Modus befindet. Wenn die dynamische Burst-Rate-Steuerung 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
<!--NeedCopy-->

So legen Sie die TCP-Burst-Rate-Control-Parameter mithilfe der Befehlszeilenschnittstelle fest

Geben Sie in der Befehlszeile 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
<!--NeedCopy-->

So konfigurieren Sie die TCP-Burst Rate Control mithilfe 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 “ in der Dropdownliste die Option TCP Burst Control aus:
    1. BurstRateCntrl
    2. CreditBytePrms
    3. RateBytePerms
    4. RateSchedulerQ
  3. Klicke auf OK und dann auf Fertig.

PAWS-Algorithmus (Schutz vor Wrapped Sequence)

Wenn Sie die TCP-Zeitstempeloption im Standard-TCP-Profil aktivieren, verwendet die NetScaler-Appliance den PAWS-Algorithmus (Protection Against Wrapped Sequence), um alte Pakete zu identifizieren und abzulehnen, deren Sequenznummern sich im Empfangsfenster der aktuellen TCP-Verbindung befinden, weil die Sequenz „eingeschlossen“ wurde (ihren Maximalwert erreicht und bei 0 neu gestartet).

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

Die TCP-Zeitstempeloption ist standardmäßig deaktiviert. Wenn Sie es aktivieren, vergleicht die Appliance den TCP-Zeitstempel (seg.TSVal) im Header eines Pakets mit dem aktuellen Zeitstempelwert (ts.Recent). Wenn seg.tsVal gleich oder größer als ts.Recent ist, wird das Paket verarbeitet. Andernfalls verwirft die Appliance das Paket und sendet eine Korrekturbestätigung.

So 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 verwirft das Paket. Hinweis: Das Senden eines ACK-Segments ist erforderlich, um die TCP-Mechanismen zur Erkennung und Wiederherstellung von halboffenen Verbindungen beizubehalten.
  2. Wenn sich das Paket außerhalb des Fensters befindet: PAWS lehnt das Paket ab, wie bei der normalen TCP-Verarbeitung.
  3. If SEG.TSval > Ts.recent: PAWS akzeptiert das Paket und verarbeitet es.
  4. Wenn SEG.TSval <= Last.ACK.sent(das ankommende Segment erfüllt): PAWS kopiert den Wert SEG.TSval nach Ts.recent.
  5. Wenn das Paket in der richtigen Reihenfolge ist: PAWS akzeptiert das Paket.
  6. Wenn das Paket nicht in der richtigen Reihenfolge ist: Das Paket wird wie ein normales TCP-Segment innerhalb des Fensters behandelt, das nicht in der richtigen Reihenfolge ist. Zum Beispiel könnte es für eine spätere Lieferung in die Warteschlange gestellt werden.
  7. Wenn der Wert Ts.recent länger als 24 Tage inaktiv ist: Die Gültigkeit von Ts.recent wird überprüft, wenn die PAWS-Zeitstempelprüfung fehlschlägt. Wenn sich herausstellt, dass der Ts.recent-Wert ungültig ist, wird das Segment akzeptiert und PAWS rule aktualisiert Ts.recent mit dem TSval-Wert aus dem neuen Segment.

So aktivieren oder deaktivieren Sie den TCP-Zeitstempel mithilfe der Befehlszeilenschnittstelle

Geben Sie in der Befehlszeile 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 Bearbeitenund aktivieren oder deaktivieren Sie das Kontrollkästchen TCP-Zeitstempel .

Optimierungstechniken

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

Richtlinienbasierte TCP-Profilauswahl

Der Netzwerkverkehr ist heute vielfältiger und bandbreitenintensiver als je zuvor. Angesichts des erhöhten Datenverkehrs ist der Effekt, den Quality of Service (QoS) auf die TCP-Leistung hat, erheblich. Um die QoS zu verbessern, können Sie jetzt AppQoE-Richtlinien mit verschiedenen TCP-Profilen für verschiedene Klassen von Netzwerkverkehr konfigurieren. Die AppQoE-Richtlinie klassifiziert den Datenverkehr eines virtuellen Servers, um ein TCP-Profil zuzuordnen, das für einen bestimmten Verkehrstyp wie 3G, 4G, LAN oder WAN optimiert ist.

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.

Informationen zur Verwendung von Abonnentenattributen zur TCP-Optimierung finden Sie unter Richtlinienbasiertes TCP-Profil.

Konfigurieren der Richtlinienbasierten TCP-Profilauswahl

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

  • AppQoE aktivieren. Bevor Sie die TCP-Profilfunktion konfigurieren, müssen Sie die AppQoE-Funktion aktivieren.
  • AppQoE-Aktion wird hinzugefügt. Nachdem Sie die AppQoE-Funktion aktiviert haben, konfigurieren Sie eine AppQoE-Aktion mit einem TCP-Profil.
  • Konfiguration der AppQoE-basierten TCP-Profilauswahl. Um die TCP-Profilauswahl für verschiedene Verkehrsklassen zu implementieren, müssen Sie AppQoE-Richtlinien konfigurieren, anhand derer Ihr NetScaler die Verbindungen unterscheiden und die richtige AppQoE-Aktion an jede Richtlinie binden kann.
  • Bindung 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.

Konfiguration über die Befehlszeilenschnittstelle

So aktivieren Sie AppQOE mithilfe der Befehlszeilenschnittstelle

Geben Sie an der Befehlszeile die folgenden Befehle ein, um die Funktion zu aktivieren, und überprüfen Sie, ob sie aktiviert ist:

  • enable ns feature appqoe
  • show ns feature

Um ein TCP-Profil zu binden, während Sie eine AppQoE-Aktion mithilfe der Befehlszeilenschnittstelle erstellen

Geben Sie an der Befehlszeile den folgenden AppQoE-Aktionsbefehl mit der tcpprofiletobind Option 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 mithilfe der Befehlszeilenschnittstelle

Geben Sie in der Befehlszeile Folgendes ein:

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

Um eine AppQoE-Richtlinie mithilfe der Befehlszeilenschnittstelle an virtuelle Server für Load Balancing, Cache-Umleitung oder Content Switching zu binden

Geben Sie in der Befehlszeile 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
<!--NeedCopy-->

Konfiguration der richtlinienbasierten TCP-Profilerstellung mit der GUI

Um AppQOE mithilfe der GUI zu aktivieren

  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 mithilfe der GUI

  1. Navigieren Sie zu App-Expert > AppQoE > Actions.
  2. Führen Sie im Detailbereich eine der folgenden Aktionen aus:
  3. Um eine 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 AppQoE-Aktion konfigurieren Werte für die Parameter ein, oder wählen Sie sie aus. Der Inhalt des Dialogfelds entspricht den unter ““Parameter für die Konfiguration der AppQoE-Aktion” beschriebenen Parametern wie folgt (ein Sternchen gibt einen erforderlichen Parameter an):
    1. Name—Name
    2. Action type—respondWith
    3. Priorität — Priorität
    4. Policy Queue Depth—polqDepth
    5. Queue Depth—priqDepth
    6. DOS Action—dosAction
  6. Klicken Sie auf Erstellen.

So binden Sie die AppQoE-Richtlinie mithilfe 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. Gehen Sie im Schieberegler Richtlinien wie folgt vor:
    1. Wählen Sie in der Dropdownliste einen Richtlinientyp als AppQoE aus.
    2. Wählen Sie einen Verkehrstyp aus der Dropdownliste aus.
  4. Gehen Sie im Abschnitt Richtlinienbindung wie folgt vor:
    1. Klicken Sie auf Neu, um eine AppQoE-Richtlinie zu erstellen.
    2. Klicken Sie auf Existing Policy, 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 SACK-Mechanismus (Selective Acknowledgment) in Kombination mit einer selektiven Wiederholungsrichtlinie diese Einschränkung. Für jedes eingehende Paket, das nicht in der richtigen Reihenfolge ist, müssen Sie einen SACK-Block generieren.

Wenn das Paket, das nicht in der Reihenfolge ist, in den Queue-Block für die Reassemblierung passt, fügen Sie die Paketinformationen in den Block ein und legen Sie die vollständigen Blockinformationen auf SACK-0 fest. Wenn ein Paket nicht in der richtigen Reihenfolge in den Zusammenbaublock passt, senden Sie das Paket als SACK-0 und wiederholen Sie die früheren SACK-Blöcke. Wenn ein Paket nicht in der richtigen Reihenfolge ein Duplikat ist und die Paketinformation auf SACK-0 gesetzt ist, dann D-Sack den Block.

Hinweis: Ein Paket wird als D-SACK betrachtet, wenn es sich um ein bestätigtes Paket oder um ein fehlerhaftes Paket handelt, das bereits empfangen wurde.

Kunde verbietet

Eine NetScaler-Appliance kann Client-Renegings während einer SACK-basierten Wiederherstellung verarbeiten.

Speicherprüfungen zur Markierung des Endpunkts auf der Leiterplatte berücksichtigen nicht den gesamten verfügbaren Speicher

Wenn in einer NetScaler-Appliance der Schwellenwert für die Speichernutzung auf 75 Prozent gesetzt wird, anstatt den gesamten verfügbaren Speicher zu nutzen, führt dies dazu, dass neue TCP-Verbindungen die TCP-Optimierung Bypass.

Unnötige Neuübertragungen aufgrund fehlender SACK-Blöcke

Wenn Sie in einem Modus ohne Endpunkt DUPACKS senden und SACK-Blöcke für einige Pakete fehlen, die nicht in der richtigen Reihenfolge sind, werden weitere Übertragungen vom Server ausgelöst.

SNMP für Verbindungen hat die Optimierung aufgrund von Überlastung umgangen

Die folgenden SNMP-IDs wurden einer NetScaler-Appliance hinzugefügt, um die Anzahl der Verbindungen zu verfolgen, bei denen TCP-Optimierungen aufgrund von Überlastung umgangen wurden.

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

Dynamischer Empfangspuffer

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

Tail Loss Sonde-Algorithmus

Ein Wiederübertragungs-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 auszugleichen, verwendet TCP den TLP-Algorithmus (Tail Loss Probe). TLP ist ein Algorithmus, der nur für Absender bestimmt ist. Wenn eine TCP-Verbindung für einen bestimmten Zeitraum keine Bestätigung erhält, überträgt TLP das letzte unbestätigte Paket (Loss Probe). Im Falle eines Endausfalls bei der ursprünglichen Übertragung löst die Bestätigung der Verlustsonde eine SACK- oder FACK-Wiederherstellung aus.

Konfiguration der Tail Loss Probe

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

Aktivieren Sie TLP über die Befehlszeile

Geben Sie in der Befehlszeile 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 Sie den Tail Loss Probe-Algorithmus mithilfe der NetScaler-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. Klicke auf OK und dann auf Fertig.