Passa al contenuto principale

13. Parametri consigliati del blocco di controllo trasmissione (TCB)

Questo capitolo definisce i parametri del blocco di controllo trasmissione (TCB) che le implementazioni SCTP dovrebbero mantenere.

13.1. Parametri necessari per l'istanza SCTP

13.1.1. Numero porta SCTP locale

Descrizione: Numero porta SCTP locale per ricevere chunk INIT. Tipo: Intero unsigned 16 bit Scopo: Identifica l'endpoint SCTP locale

13.1.2. Lista indirizzi IP locali

Descrizione: Lista di tutti gli indirizzi IP dell'endpoint locale. Tipo: Array di indirizzi IP Scopo: Supporto multihoming, binding interfacce, annuncio in INIT/INIT ACK

13.1.3. Versione protocollo SCTP

Descrizione: Numero versione protocollo SCTP supportato. Valore attuale: 1 Scopo: Verifica compatibilità protocollo

13.1.4. Chiave segreta

Descrizione: Chiave segreta per generare State Cookies. Tipo: Sequenza di byte (minimo raccomandato 160 bit) Scopo: Generare e verificare HMAC dei State Cookies, prevenire falsificazione, dovrebbe essere cambiata periodicamente

13.1.5. Valid.Cookie.Life

Descrizione: Durata di vita valida del State Cookie. Valore raccomandato: 60 secondi Intervallo: 1-60 secondi raccomandato Scopo: Impedire accettazione di cookie scaduti

13.1.6. Association.Max.Retrans

Descrizione: Numero massimo ritrasmissioni a livello associazione. Valore raccomandato: 10 tentativi Scopo: Associazione considerata fallita se superato, segnalare COMMUNICATION LOST all'ULP

13.2. Parametri necessari per associazione

13.2.1. Verification Tag del peer

Descrizione: Tag di verifica ricevuto dal peer. Tipo: Intero unsigned 32 bit Fonte: Dal campo Initiate Tag in INIT o INIT ACK Scopo: Usato in ogni pacchetto SCTP in uscita, previene falsificazione pacchetti

13.2.2. Mio Verification Tag

Descrizione: Tag di verifica dell'endpoint locale. Tipo: Intero unsigned 32 bit Generazione: Generato casualmente alla creazione associazione (non deve essere 0) Scopo: Inviato al peer in INIT o INIT ACK, valida pacchetti ricevuti

13.2.3. Stato associazione

Descrizione: Stato attuale dell'associazione. Valori possibili: CLOSED, COOKIE-WAIT, COOKIE-ECHOED, ESTABLISHED, SHUTDOWN-PENDING, SHUTDOWN-SENT, SHUTDOWN-RECEIVED, SHUTDOWN-ACK-SENT

13.2.4. Lista indirizzi trasporto peer

Descrizione: Tutti gli indirizzi trasporto dell'endpoint peer. Fonte: Da INIT, INIT ACK o ASCONF Contenuto per indirizzo: Indirizzo IP, porta SCTP, stato (attivo/inattivo), contatore errori

13.2.5. Percorso primario

Descrizione: Indirizzo destinazione primario per trasmissione dati. Tipo: Puntatore a indirizzo nella lista indirizzi trasporto peer Scopo: Percorso trasmissione dati predefinito, modificabile via SET PRIMARY

13.2.6. Contatore errori complessivo

Descrizione: Contatore errori complessivo a livello associazione. Tipo: Contatore intero Scopo: Tiene traccia errori cumulativi associazione, associazione fallisce se supera Association.Max.Retrans

13.2.7. Soglia errori complessiva

Descrizione: Soglia errori complessiva per fallimento associazione. Valore raccomandato: Uguale a Association.Max.Retrans Scopo: Determina fallimento associazione

13.2.8. Peer Rwnd

Descrizione: Dimensione finestra ricezione del peer. Tipo: Intero unsigned 32 bit Fonte: Da INIT ACK, SACK o aggiornamento finestra Scopo: Controllo flusso, prevenire overflow buffer ricezione

13.2.9. TSN successivo

Descrizione: TSN da assegnare al prossimo messaggio utente. Tipo: Intero unsigned 32 bit Valore iniziale: Inizia da Initial TSN Scopo: Assegna TSN unico a ogni chunk DATA, crescente monotono (riavvolge a 0)

13.2.10. Punto riconoscimento TSN cumulativo

Descrizione: TSN cumulativo più alto riconosciuto dal peer. Tipo: Intero unsigned 32 bit Aggiornato da: Campo Cumulative TSN Ack in SACK Scopo: Determina dati riconosciuti, rilascia buffer invio

13.2.11. Stream in uscita

Descrizione: Numero stream in uscita che questo endpoint può usare. Tipo: Intero unsigned 16 bit Negoziato: Durante creazione associazione (minimo richieste entrambi i lati) Scopo: Supporto multi-stream, intervallo ID stream: 0 a (Stream in uscita - 1)

13.2.12. Stream in entrata

Descrizione: Numero stream in entrata che il peer può usare. Tipo: Intero unsigned 16 bit Negoziato: Durante creazione associazione Scopo: Valida ID stream ricevuti, deve essere < Stream in entrata

13.2.13. Coda riordinamento

Descrizione: Memorizza chunk DATA ricevuti ma non ancora consegnati in ordine. Struttura dati: Coda ordinata per TSN Scopo: Gestisce ricezione fuori ordine, consegna in ordine al livello superiore

13.2.14. Lista indirizzi trasporto locali

Descrizione: Indirizzi trasporto locali usati da questa associazione. Tipo: Lista indirizzi IP Scopo: Supporto multihoming, binding interfacce

13.3. Dati per indirizzo trasporto

Per ogni indirizzo trasporto peer, l'endpoint SCTP deve mantenere:

13.3.1. Contatore errori

Descrizione: Fallimenti trasmissione consecutivi per questo indirizzo. Tipo: Contatore intero Scopo: Rilevamento fallimento percorso, marcare percorso inattivo se supera Path.Max.Retrans

13.3.2. Soglia errori

Descrizione: Soglia per marcare percorso inattivo. Valore raccomandato: Path.Max.Retrans (raccomandato 5) Scopo: Determina fallimento percorso

13.3.3. Path.Max.Retrans

Descrizione: Ritrasmissioni massime per singolo percorso. Valore raccomandato: 5 tentativi Scopo: Rilevamento fallimento percorso

13.3.4. cwnd (Finestra congestione)

Descrizione: Dimensione finestra congestione in byte. Tipo: Intero unsigned 32 bit Valore iniziale: min(4 * MTU, max(2 * MTU, 4380)) Scopo: Controllo congestione, limita dati in sospeso

13.3.5. ssthresh (Soglia avvio lento)

Descrizione: Soglia avvio lento in byte. Tipo: Intero unsigned 32 bit Valore iniziale: Rwnd del peer Scopo: Distingue fasi avvio lento ed evitamento congestione

13.3.6. partial_bytes_acked

Descrizione: Riconoscimenti byte parziali accumulati in evitamento congestione. Tipo: Intero unsigned 32 bit Scopo: Crescita cwnd in evitamento congestione, accumula MTU byte prima di aumentare cwnd

13.3.7. PMTU (MTU percorso)

Descrizione: MTU del percorso verso questa destinazione. Tipo: Intero Valore iniziale: MTU primo hop o valore conservativo (es. 576 byte) Aggiornato da: Scoperta MTU percorso Scopo: Segmentazione dati, evita frammentazione IP

13.3.8. RTO (Timeout ritrasmissione)

Descrizione: Valore timeout ritrasmissione in millisecondi. Tipo: Intero Valore iniziale: RTO.Initial (raccomandato 3000 ms) Intervallo: Da RTO.Min a RTO.Max Scopo: Determina quando ritrasmettere dati non riconosciuti, adattato dinamicamente su RTT

13.3.9. SRTT (Tempo andata-ritorno smoothed)

Descrizione: Tempo andata-ritorno smoothed in millisecondi. Tipo: Intero Scopo: Calcola RTO, stima ritardo rete

13.3.10. RTTVAR (Variazione tempo andata-ritorno)

Descrizione: Variazione tempo andata-ritorno in millisecondi. Tipo: Intero Scopo: Calcola RTO, considera jitter RTT

13.3.11. Intervallo heartbeat

Descrizione: Intervallo per invio heartbeat a questo indirizzo. Valore raccomandato: 30 secondi Tipo: Intero (millisecondi) Scopo: Monitora raggiungibilità percorso, mantiene percorso attivo

13.3.12. Ora ultimo heartbeat

Descrizione: Ora ultimo heartbeat inviato a questo indirizzo. Tipo: Timestamp Scopo: Determina quando inviare prossimo heartbeat, usato con intervallo heartbeat

13.3.13. Ora conferma destinazione

Descrizione: Ora in cui questo percorso è stato confermato raggiungibile l'ultima volta. Tipo: Timestamp Aggiornato quando: Ricezione HEARTBEAT ACK, ricezione riconoscimento nuovi dati Scopo: Decide se heartbeat deve essere inviato

13.3.14. Stato indirizzo trasporto

Descrizione: Stato attuale di questo indirizzo trasporto. Valori possibili: Active (disponibile per trasmissione dati), Inactive (attualmente non disponibile), Unconfirmed (non ancora verificato) Scopo: Selezione percorso e gestione fallimenti

13.4. Parametri generali necessari

13.4.1. RTO.Initial

Valore raccomandato: 3000 millisecondi (3 secondi) Scopo: Usato quando nessuna misura RTT disponibile

13.4.2. RTO.Min

Valore raccomandato: 1000 millisecondi (1 secondo) Scopo: Limite inferiore per RTO

13.4.3. RTO.Max

Valore raccomandato: 60000 millisecondi (60 secondi) Scopo: Limite superiore per RTO

13.4.4. RTO.Alpha

Valore raccomandato: 1/8 (0.125) Scopo: SRTT = (1 - alpha) * SRTT + alpha * RTT'

13.4.5. RTO.Beta

Valore raccomandato: 1/4 (0.25) Scopo: RTTVAR = (1 - beta) * RTTVAR + beta * |SRTT - RTT'|

13.4.6. Max.Burst

Valore raccomandato: 4 pacchetti dimensione PMTU Scopo: Impedisce traffico burst causare congestione, limita trasmissione dopo ritrasmissione veloce e timeout

13.4.7. SACK.Delay

Valore raccomandato: 200 millisecondi Massimo: 500 millisecondi Scopo: Permette bundling SACK, riduce overhead chunk controllo

13.4.8. Valid.Cookie.Life

Valore raccomandato: 60 secondi Scopo: Previene attacchi replay


Importanza parametri TCB:

  1. Livello istanza: Definisce configurazione base endpoint SCTP
  2. Livello associazione: Mantiene stato e informazioni controllo per associazione
  3. Livello indirizzo: Supporta multihoming e gestione percorsi
  4. Generale: Fornisce controllo regolabile comportamento protocollo

Raccomandazioni implementazione: Usare valori raccomandati come predefiniti, permettere configurazione via interfaccia gestione, mantenere coerenza ed esattezza parametri

Ottimizzazione prestazioni: RTO appropriato bilancia ritrasmissione veloce ed evitamento false ritrasmissioni, cwnd/ssthresh appropriati ottimizzano throughput, intervallo heartbeat influenza velocità rilevamento fallimenti e overhead