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
Riepilogo
Importanza parametri TCB:
- Livello istanza: Definisce configurazione base endpoint SCTP
- Livello associazione: Mantiene stato e informazioni controllo per associazione
- Livello indirizzo: Supporta multihoming e gestione percorsi
- 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