13. Empfohlene Übertragungssteuerblock (TCB) Parameter
Dieses Kapitel definiert die Übertragungssteuerblock (TCB) Parameter, die SCTP-Implementierungen pflegen sollten.
13.1. Für die SCTP-Instanz erforderliche Parameter
13.1.1. Lokale SCTP-Portnummer
Beschreibung: Lokale SCTP-Portnummer zum Empfangen von INIT-Chunks. Typ: 16-Bit unsigned integer Zweck: Identifiziert lokalen SCTP-Endpunkt
13.1.2. Lokale IP-Adressliste
Beschreibung: Liste aller lokalen Endpunkt-IP-Adressen. Typ: Array von IP-Adressen Zweck: Multihoming-Unterstützung, Schnittstellenbindung, Ankündigung in INIT/INIT ACK
13.1.3. SCTP-Protokollversion
Beschreibung: Unterstützte SCTP-Protokollversionsnummer. Aktueller Wert: 1 Zweck: Protokollkompatibilitätsprüfung
13.1.4. Geheimer Schlüssel
Beschreibung: Geheimer Schlüssel zur Generierung von State Cookies. Typ: Byte-Sequenz (empfohlenes Minimum 160 Bits) Zweck: Generieren und verifizieren von HMAC der State Cookies, Fälschungsschutz, sollte periodisch gewechselt werden
13.1.5. Valid.Cookie.Life
Beschreibung: Gültige Lebensdauer des State Cookie. Empfohlener Wert: 60 Sekunden Bereich: 1-60 Sekunden empfohlen Zweck: Verhindert Akzeptanz veralteter Cookies
13.1.6. Association.Max.Retrans
Beschreibung: Maximale Neuübertragungen auf Assoziationsebene. Empfohlener Wert: 10 Versuche Zweck: Assoziation gilt als fehlgeschlagen bei Überschreitung, COMMUNICATION LOST an ULP melden
13.2. Pro Assoziation erforderliche Parameter
13.2.1. Peer Verification Tag
Beschreibung: Vom Peer empfangener Verification Tag. Typ: 32-Bit unsigned integer Quelle: Aus Initiate Tag-Feld in INIT oder INIT ACK Zweck: In jedem ausgehenden SCTP-Paket verwendet, verhindert Paketfälschung
13.2.2. Mein Verification Tag
Beschreibung: Verification Tag des lokalen Endpunkts. Typ: 32-Bit unsigned integer Generierung: Zufällig bei Assoziationserstellung generiert (darf nicht 0 sein) Zweck: An Peer in INIT oder INIT ACK gesendet, validiert empfangene Pakete
13.2.3. Assoziationszustand
Beschreibung: Aktueller Assoziationszustand. Mögliche Werte: CLOSED, COOKIE-WAIT, COOKIE-ECHOED, ESTABLISHED, SHUTDOWN-PENDING, SHUTDOWN-SENT, SHUTDOWN-RECEIVED, SHUTDOWN-ACK-SENT
13.2.4. Peer-Transportadressliste
Beschreibung: Alle Transportadressen des Peer-Endpunkts. Quelle: Aus INIT, INIT ACK oder ASCONF Inhalt pro Adresse: IP-Adresse, SCTP-Port, Zustand (aktiv/inaktiv), Fehlerzähler
13.2.5. Primärer Pfad
Beschreibung: Primäre Zieladresse für Datenübertragung. Typ: Zeiger auf Adresse in Peer-Transportadressliste Zweck: Standard-Datenübertragungspfad, änderbar via SET PRIMARY
13.2.6. Gesamtfehlerzähler
Beschreibung: Gesamtfehlerzähler auf Assoziationsebene. Typ: Ganzzahl-Zähler Zweck: Verfolgt kumulative Assoziationsfehler, Assoziation fehlgeschlagen wenn Association.Max.Retrans überschritten
13.2.7. Gesamtfehlerschwelle
Beschreibung: Gesamtfehlerschwelle für Assoziationsausfall. Empfohlener Wert: Gleich Association.Max.Retrans Zweck: Bestimmt Assoziationsausfall
13.2.8. Peer Rwnd
Beschreibung: Empfangsfenstergröße des Peers. Typ: 32-Bit unsigned integer Quelle: Aus INIT ACK, SACK oder Fensteraktualisierung Zweck: Flusskontrolle, verhindert Empfangspufferüberlauf
13.2.9. Nächster TSN
Beschreibung: TSN zur Zuweisung an nächste Benutzernachricht. Typ: 32-Bit unsigned integer Anfangswert: Beginnt bei Initial TSN Zweck: Weist jedem DATA-Chunk eindeutigen TSN zu, monoton steigend (wickelt auf 0 um)
13.2.10. Kumulativer TSN-Bestätigungspunkt
Beschreibung: Höchster kumulativer vom Peer bestätigter TSN. Typ: 32-Bit unsigned integer Aktualisiert aus: Cumulative TSN Ack-Feld in SACK Zweck: Bestimmt bestätigte Daten, gibt Sendepuffer frei
13.2.11. Ausgehende Streams
Beschreibung: Anzahl ausgehender Streams, die dieser Endpunkt nutzen kann. Typ: 16-Bit unsigned integer Ausgehandelt: Bei Assoziationserstellung (Minimum beider Seitenanforderungen) Zweck: Multi-Stream-Unterstützung, Stream-ID-Bereich: 0 bis (Ausgehende Streams - 1)
13.2.12. Eingehende Streams
Beschreibung: Anzahl eingehender Streams, die Peer nutzen kann. Typ: 16-Bit unsigned integer Ausgehandelt: Bei Assoziationserstellung Zweck: Validiert empfangene Stream-IDs, muss < Eingehende Streams sein
13.2.13. Neuordnungswarteschlange
Beschreibung: Speichert empfangene DATA-Chunks, die noch nicht in Reihenfolge zugestellt wurden. Datenstruktur: Nach TSN sortierte Warteschlange Zweck: Behandelt Empfang außer der Reihenfolge, Zustellung in Reihenfolge an obere Schicht
13.2.14. Lokale Transportadressliste
Beschreibung: Von dieser Assoziation verwendete lokale Transportadressen. Typ: Liste von IP-Adressen Zweck: Multihoming-Unterstützung, Schnittstellenbindung
13.3. Daten pro Transportadresse
Für jede Peer-Transportadresse muss SCTP-Endpunkt pflegen:
13.3.1. Fehlerzähler
Beschreibung: Aufeinanderfolgende Übertragungsfehler für diese Adresse. Typ: Ganzzahl-Zähler Zweck: Pfadfehlererkennun, Pfad als inaktiv markieren wenn Path.Max.Retrans überschritten
13.3.2. Fehlerschwelle
Beschreibung: Schwelle zum Markieren des Pfads als inaktiv. Empfohlener Wert: Path.Max.Retrans (empfohlen 5) Zweck: Bestimmt Pfadfehler
13.3.3. Path.Max.Retrans
Beschreibung: Maximale Neuübertragungen für einzelnen Pfad. Empfohlener Wert: 5 Versuche Zweck: Pfadfehlererkennun
13.3.4. cwnd (Staufenster)
Beschreibung: Staufenstergröße in Bytes. Typ: 32-Bit unsigned integer Anfangswert: min(4 * MTU, max(2 * MTU, 4380)) Zweck: Staukontrolle, begrenzt ausstehende Daten
13.3.5. ssthresh (Slow-Start-Schwelle)
Beschreibung: Slow-Start-Schwelle in Bytes. Typ: 32-Bit unsigned integer Anfangswert: Rwnd des Peers Zweck: Unterscheidet Slow-Start- und Stauungsvermeidungsphasen
13.3.6. partial_bytes_acked
Beschreibung: Akkumulierte Teilbyte-Bestätigungen in Stauungsvermeidung. Typ: 32-Bit unsigned integer Zweck: cwnd-Wachstum in Stauungsvermeidung, akkumuliert MTU Bytes vor cwnd-Erhöhung
13.3.7. PMTU (Pfad-MTU)
Beschreibung: Pfad-MTU zu diesem Ziel. Typ: Ganzzahl Anfangswert: Erster-Hop-MTU oder konservativer Wert (z.B. 576 Bytes) Aktualisiert durch: Pfad-MTU-Erkennung Zweck: Datensegmentierung, vermeidet IP-Fragmentierung
13.3.8. RTO (Neuübertragungszeitüberschreitung)
Beschreibung: Neuübertragungszeitüberschreitungswert in Millisekunden. Typ: Ganzzahl Anfangswert: RTO.Initial (empfohlen 3000 ms) Bereich: RTO.Min bis RTO.Max Zweck: Bestimmt wann unbestätigte Daten neu übertragen werden, dynamisch angepasst basierend auf RTT
13.3.9. SRTT (Geglättete Rundlaufzeit)
Beschreibung: Geglättete Rundlaufzeit in Millisekunden. Typ: Ganzzahl Zweck: Berechnet RTO, schätzt Netzwerkverzögerung
13.3.10. RTTVAR (Rundlaufzeitvariation)
Beschreibung: Rundlaufzeitvariation in Millisekunden. Typ: Ganzzahl Zweck: Berechnet RTO, berücksichtigt RTT-Jitter
13.3.11. Heartbeat-Intervall
Beschreibung: Intervall zum Senden von Heartbeats an diese Adresse. Empfohlener Wert: 30 Sekunden Typ: Ganzzahl (Millisekunden) Zweck: Überwacht Pfaderreichbarkeit, hält Pfad aktiv
13.3.12. Letzte Heartbeat-Zeit
Beschreibung: Zeit des letzten an diese Adresse gesendeten Heartbeats. Typ: Zeitstempel Zweck: Bestimmt wann nächster Heartbeat gesendet wird, verwendet mit Heartbeat-Intervall
13.3.13. Zielbestätigungszeit
Beschreibung: Zeit als dieser Pfad zuletzt als erreichbar bestätigt wurde. Typ: Zeitstempel Aktualisiert wenn: Empfang von HEARTBEAT ACK, Empfang neuer Datenbestätigung Zweck: Entscheidet ob Heartbeat gesendet werden muss
13.3.14. Transportadresszustand
Beschreibung: Aktueller Zustand dieser Transportadresse. Mögliche Werte: Active (verfügbar für Datenübertragung), Inactive (derzeit nicht verfügbar), Unconfirmed (noch nicht verifiziert) Zweck: Pfadauswahl und Fehlerbehandlung
13.4. Erforderliche allgemeine Parameter
13.4.1. RTO.Initial
Empfohlener Wert: 3000 Millisekunden (3 Sekunden) Zweck: Verwendet wenn keine RTT-Messungen verfügbar
13.4.2. RTO.Min
Empfohlener Wert: 1000 Millisekunden (1 Sekunde) Zweck: Untergrenze für RTO
13.4.3. RTO.Max
Empfohlener Wert: 60000 Millisekunden (60 Sekunden) Zweck: Obergrenze für RTO
13.4.4. RTO.Alpha
Empfohlener Wert: 1/8 (0.125) Zweck: SRTT = (1 - alpha) * SRTT + alpha * RTT'
13.4.5. RTO.Beta
Empfohlener Wert: 1/4 (0.25) Zweck: RTTVAR = (1 - beta) * RTTVAR + beta * |SRTT - RTT'|
13.4.6. Max.Burst
Empfohlener Wert: 4 PMTU-große Pakete Zweck: Verhindert Burst-Verkehr Stauung zu verursachen, begrenzt Übertragung nach schneller Neuübertragung und Zeitüberschreitung
13.4.7. SACK.Delay
Empfohlener Wert: 200 Millisekunden Maximum: 500 Millisekunden Zweck: Ermöglicht SACK-Bündelung, reduziert Kontroll-Chunk-Overhead
13.4.8. Valid.Cookie.Life
Empfohlener Wert: 60 Sekunden Zweck: Verhindert Replay-Angriffe
Zusammenfassung
Bedeutung der TCB-Parameter:
- Instanzebene: Definiert grundlegende SCTP-Endpunktkonfiguration
- Assoziationsebene: Pflegt Zustand und Kontrollinformationen pro Assoziation
- Adressebene: Unterstützt Multihoming und Pfadverwaltung
- Allgemein: Bietet einstellbare Kontrolle des Protokollverhaltens
Implementierungsempfehlungen: Empfohlene Werte als Standard verwenden, Konfiguration über Verwaltungsschnittstelle ermöglichen, Parameterkonsistenz und -richtigkeit pflegen
Leistungsoptimierung: Angemessenes RTO balanciert schnelle Neuübertragung und Vermeidung falscher Neuübertragung, angemessenes cwnd/ssthresh optimiert Durchsatz, Heartbeat-Intervall beeinflusst Fehlererkennungsgeschwindigkeit und Overhead