13. Paramètres recommandés du bloc de contrôle de transmission (TCB)
Ce chapitre définit les paramètres du bloc de contrôle de transmission (TCB) que les implémentations SCTP doivent maintenir.
13.1. Paramètres nécessaires pour l'instance SCTP
13.1.1. Numéro de port SCTP local
Description : Numéro de port SCTP local pour recevoir les chunks INIT. Type : Entier non signé 16 bits Objectif : Identifie le point de terminaison SCTP local
13.1.2. Liste d'adresses IP locales
Description : Liste de toutes les adresses IP du point de terminaison local. Type : Tableau d'adresses IP Objectif : Support multihoming, liaison d'interface, annonce dans INIT/INIT ACK
13.1.3. Version du protocole SCTP
Description : Numéro de version du protocole SCTP pris en charge. Valeur actuelle : 1 Objectif : Vérification de compatibilité du protocole
13.1.4. Clé secrète
Description : Clé secrète pour générer les State Cookies. Type : Séquence d'octets (minimum recommandé 160 bits) Objectif : Générer et vérifier le HMAC des State Cookies, prévenir la falsification, doit être changée périodiquement
13.1.5. Valid.Cookie.Life
Description : Durée de vie valide du State Cookie. Valeur recommandée : 60 secondes Plage : 1-60 secondes recommandé Objectif : Empêcher l'acceptation de cookies périmés
13.1.6. Association.Max.Retrans
Description : Nombre maximum de retransmissions au niveau de l'association. Valeur recommandée : 10 tentatives Objectif : Association considérée comme échouée si dépassée, signaler COMMUNICATION LOST à l'ULP
13.2. Paramètres nécessaires par association
13.2.1. Verification Tag du pair
Description : Tag de vérification reçu du pair. Type : Entier non signé 32 bits Source : Champ Initiate Tag dans INIT ou INIT ACK Objectif : Utilisé dans chaque paquet SCTP sortant, empêche la falsification de paquets
13.2.2. Mon Verification Tag
Description : Tag de vérification du point de terminaison local. Type : Entier non signé 32 bits Génération : Généré aléatoirement lors de l'établissement de l'association (ne doit pas être 0) Objectif : Envoyé au pair dans INIT ou INIT ACK, valide les paquets reçus
13.2.3. État de l'association
Description : État actuel de l'association. Valeurs possibles : CLOSED, COOKIE-WAIT, COOKIE-ECHOED, ESTABLISHED, SHUTDOWN-PENDING, SHUTDOWN-SENT, SHUTDOWN-RECEIVED, SHUTDOWN-ACK-SENT
13.2.4. Liste d'adresses de transport du pair
Description : Toutes les adresses de transport du point de terminaison pair. Source : De INIT, INIT ACK ou ASCONF Contenu par adresse : Adresse IP, port SCTP, état (actif/inactif), compteur d'erreurs
13.2.5. Chemin principal
Description : Adresse de destination principale pour la transmission de données. Type : Pointeur vers une adresse dans la liste d'adresses de transport du pair Objectif : Chemin de transmission de données par défaut, modifiable via SET PRIMARY
13.2.6. Compteur d'erreurs global
Description : Compteur d'erreurs global au niveau de l'association. Type : Compteur entier Objectif : Suit les erreurs cumulatives de l'association, l'association échoue si dépasse Association.Max.Retrans
13.2.7. Seuil d'erreur global
Description : Seuil d'erreur global pour l'échec de l'association. Valeur recommandée : Égal à Association.Max.Retrans Objectif : Détermine l'échec de l'association
13.2.8. Peer Rwnd
Description : Taille de la fenêtre de réception du pair. Type : Entier non signé 32 bits Source : De INIT ACK, SACK ou mise à jour de fenêtre Objectif : Contrôle de flux, empêcher le débordement du tampon de réception
13.2.9. TSN suivant
Description : TSN à attribuer au prochain message utilisateur. Type : Entier non signé 32 bits Valeur initiale : Commence à partir de l'Initial TSN Objectif : Attribuer un TSN unique à chaque chunk DATA, croissant monotone (rebouclage à 0)
13.2.10. Point d'acquittement TSN cumulatif
Description : TSN cumulatif le plus élevé acquitté par le pair. Type : Entier non signé 32 bits Mis à jour depuis : Champ Cumulative TSN Ack dans SACK Objectif : Déterminer les données acquittées, libérer le tampon d'envoi
13.2.11. Flux sortants
Description : Nombre de flux sortants que ce point de terminaison peut utiliser. Type : Entier non signé 16 bits Négocié : Lors de l'établissement de l'association (minimum des demandes des deux côtés) Objectif : Support multi-flux, plage d'ID de flux : 0 à (Flux sortants - 1)
13.2.12. Flux entrants
Description : Nombre de flux entrants que le pair peut utiliser. Type : Entier non signé 16 bits Négocié : Lors de l'établissement de l'association Objectif : Valider les ID de flux reçus, doit être < Flux entrants
13.2.13. File de réorganisation
Description : Stocke les chunks DATA reçus mais pas encore livrés dans l'ordre. Structure de données : File triée par TSN Objectif : Gérer la réception hors ordre, livraison dans l'ordre à la couche supérieure
13.2.14. Liste d'adresses de transport locales
Description : Adresses de transport locales utilisées par cette association. Type : Liste d'adresses IP Objectif : Support multihoming, liaison d'interface
13.3. Données par adresse de transport
Pour chaque adresse de transport du pair, le point de terminaison SCTP doit maintenir :
13.3.1. Compteur d'erreurs
Description : Échecs de transmission consécutifs pour cette adresse. Type : Compteur entier Objectif : Détection d'échec de chemin, marquer le chemin comme inactif si dépasse Path.Max.Retrans
13.3.2. Seuil d'erreur
Description : Seuil pour marquer le chemin comme inactif. Valeur recommandée : Path.Max.Retrans (recommandé 5) Objectif : Déterminer l'échec du chemin
13.3.3. Path.Max.Retrans
Description : Retransmissions maximales pour un seul chemin. Valeur recommandée : 5 tentatives Objectif : Détection d'échec de chemin
13.3.4. cwnd (Fenêtre de congestion)
Description : Taille de la fenêtre de congestion en octets. Type : Entier non signé 32 bits Valeur initiale : min(4 * MTU, max(2 * MTU, 4380)) Objectif : Contrôle de congestion, limiter les données en attente
13.3.5. ssthresh (Seuil de démarrage lent)
Description : Seuil de démarrage lent en octets. Type : Entier non signé 32 bits Valeur initiale : Rwnd du pair Objectif : Distinguer les phases de démarrage lent et d'évitement de congestion
13.3.6. partial_bytes_acked
Description : Acquittements d'octets partiels accumulés en évitement de congestion. Type : Entier non signé 32 bits Objectif : Croissance de cwnd en évitement de congestion, accumuler MTU octets avant d'augmenter cwnd
13.3.7. PMTU (MTU du chemin)
Description : MTU du chemin vers cette destination. Type : Entier Valeur initiale : MTU du premier saut ou valeur conservatrice (par ex. 576 octets) Mis à jour par : Découverte du MTU du chemin Objectif : Segmentation de données, éviter la fragmentation IP
13.3.8. RTO (Délai de retransmission)
Description : Valeur du délai de retransmission en millisecondes. Type : Entier Valeur initiale : RTO.Initial (recommandé 3000 ms) Plage : RTO.Min à RTO.Max Objectif : Déterminer quand retransmettre les données non acquittées, ajusté dynamiquement selon RTT
13.3.9. SRTT (Temps aller-retour lissé)
Description : Temps aller-retour lissé en millisecondes. Type : Entier Objectif : Calculer RTO, estimer le délai réseau
13.3.10. RTTVAR (Variation du temps aller-retour)
Description : Variation du temps aller-retour en millisecondes. Type : Entier Objectif : Calculer RTO, tenir compte de la gigue RTT
13.3.11. Intervalle de battement de cœur
Description : Intervalle pour envoyer des battements de cœur à cette adresse. Valeur recommandée : 30 secondes Type : Entier (millisecondes) Objectif : Surveiller l'accessibilité du chemin, maintenir le chemin actif
13.3.12. Heure du dernier battement de cœur
Description : Heure du dernier battement de cœur envoyé à cette adresse. Type : Horodatage Objectif : Déterminer quand envoyer le prochain battement de cœur, utilisé avec l'intervalle de battement de cœur
13.3.13. Heure de confirmation de destination
Description : Heure à laquelle ce chemin a été confirmé accessible pour la dernière fois. Type : Horodatage Mis à jour quand : Réception de HEARTBEAT ACK, réception d'acquittement de nouvelles données Objectif : Décider si le battement de cœur doit être envoyé
13.3.14. État de l'adresse de transport
Description : État actuel de cette adresse de transport. Valeurs possibles : Active (disponible pour transmission de données), Inactive (actuellement indisponible), Unconfirmed (pas encore vérifiée) Objectif : Sélection de chemin et gestion d'échec
13.4. Paramètres généraux nécessaires
13.4.1. RTO.Initial
Valeur recommandée : 3000 millisecondes (3 secondes) Objectif : Utilisé quand aucune mesure RTT disponible
13.4.2. RTO.Min
Valeur recommandée : 1000 millisecondes (1 seconde) Objectif : Limite inférieure pour RTO
13.4.3. RTO.Max
Valeur recommandée : 60000 millisecondes (60 secondes) Objectif : Limite supérieure pour RTO
13.4.4. RTO.Alpha
Valeur recommandée : 1/8 (0.125) Objectif : SRTT = (1 - alpha) * SRTT + alpha * RTT'
13.4.5. RTO.Beta
Valeur recommandée : 1/4 (0.25) Objectif : RTTVAR = (1 - beta) * RTTVAR + beta * |SRTT - RTT'|
13.4.6. Max.Burst
Valeur recommandée : 4 paquets de taille PMTU Objectif : Empêcher le trafic en rafale de causer une congestion, limiter la transmission après retransmission rapide et timeout
13.4.7. SACK.Delay
Valeur recommandée : 200 millisecondes Maximum : 500 millisecondes Objectif : Permettre le regroupement de SACK, réduire la surcharge de chunks de contrôle
13.4.8. Valid.Cookie.Life
Valeur recommandée : 60 secondes Objectif : Prévenir les attaques par rejeu
Résumé
Importance des paramètres TCB :
- Niveau instance : Définir la configuration de base du point de terminaison SCTP
- Niveau association : Maintenir l'état et les informations de contrôle par association
- Niveau adresse : Supporter le multihoming et la gestion des chemins
- Général : Fournir un contrôle ajustable du comportement du protocole
Recommandations d'implémentation : Utiliser les valeurs recommandées par défaut, permettre la configuration via l'interface de gestion, maintenir la cohérence et l'exactitude des paramètres
Optimisation des performances : Un RTO approprié équilibre retransmission rapide et évitement de fausses retransmissions, cwnd/ssthresh appropriés optimisent le débit, l'intervalle de battement de cœur affecte la vitesse de détection d'échec et la surcharge