Vous êtes sur la page 1sur 38

SIGTRAN

SIGTRAN (Signaling Transport over IP) est un groupe de travail à l’IETF


qui traite la problématique du transport de la signalisation téléphonique
sur IP.

SIGTRAN définit :

* Un protocole de transport commun appelé SCTP (Stream Control


Transmission Protocol) qui assure le transport fiable de la signalisation
sur IP.

* Des couches d’adaptation qui supportent des primitives spécifiques


requises par des protocoles de signalisation spécifiques tels que ISUP,
Q.931, BSSAP, INAP, MAP, CAP, etc.

Composants SIGTRAN
Architecture du Sigtran
Adaptations SIGTRAN
• La couche d’adaptation SUA (SCCP User Adaptation) offre une interface
SCCP (e.g., TCAP) entre un SG (signaling gateway) et une base de
données IP ou entre un SG et un MGC (Media gateway controller).

• La couche d’adaptation V5UA (V5.2 User Adaptation) est définie pour le


transport de messages V5.2 entre un SG et un MGC.

• La couche d’adaptation IUA (ISDN User Adaptation) est définie pour le


transport de messages Q.931 (signalisation RNIS) entre un SG et un MGC.

• La couche d’adaptation M2UA (MTP2 User Adaptation) assure le transport


de paquets MTP3 entre un SG et un MGC.

* La couche d’adaptation M2PA (MTP2 User Peer to Peer Adaptation) assure


le transport de paquets MTP3 entre deux SGs ou deux IP SPs (IP Signaling
Point).

* La couche d’adaptation M3UA (MTP3 User Adaptation) assure


l’acheminement de messages ISUP ou SCCP entre un SG et un MGC en
fournissant une interface MTP3 à la couche supérieure (e.g., ISUP, SCCP).
M3UA peut aussi fonctionner en mode IP SP – IP SP permettant ainsi à un
MSC Server et un HLR disposant d’une connectivité sigtran.
- IUA : SG AS (Asymétrique)

• V5UA : SG AS (Asymétrique)

• M2UA : SG AS (Asymétrique)

• M2PA : IPSP IPSP (Symétrique)

• M3UA : SG AS (Asymétrique)

IPSP IPSP (Symétrique)

• SUA : SG AS (Asymétrique)

IPSP IPSP (Symétrique)


Implémentation du SIGTRAN dans le softswitch SOFTX3000
Principe d’adaptation utilisateurs
M2UA

IUA
M3UA

Transport de la signalisation ISUP/MTP3 par M3UA


M3UA

M3UA en mode symétrique


SUA
* Terminologie Commune des UA

1) AS (Application Server / Serveur d’application)

- Entité logique servant une clé de routage spécifique (Routing Key).

* Un exemple de serveur d'application est un élément virtuel de commutateur


qui effectue le traitement d'appel pour le cas du RTCP, identifié par un
ensemble de paramètres SS7: SIO/DPC/OPC/CIC.
• Un autre exemple est un élément virtuel de base de données, traitant toutes
les transactions de HLR pour une combinaison particulière de SS7:
DPC/OPC/SCCP_SSN.

• L’AS contient un ensemble d'un ou plusieurs ASP unique.

2) ASP (Application Server Process / processus de serveur d'application)

- Un ASP sert comme processus actif ou de secours d'un serveur


d'application.
- Un ASP contient un point d’extrémité SCTP et peut être configuré pour
traiter le trafic de signalisation dans plus d'un serveur d'application (AS).
3) SGP (Signaling Gateway Process / processus de passerelle de
signalisation)

- Un cas de processus d'un SG. Il sert comme processus actif, de secours, de


partage de charge ou de diffusion d'un SG.

4) SG (Signaling Gateway / passerelle de signalisation)

- Un SG est un agent de signalisation qui reçoit/envoie la signalisation


native d’un réseau à commutation de circuit vers un réseau IP.

5) IPSP (IP Server Process / processus de serveur IP)

- Un cas de processus d'une application basée sur IP.


Exemple
Le protocole SCTP

Le Groupe de travail SIGTRAN a présenté plusieurs propositions pour un


nouveau protocole de transport. L’une des propositions est le protocole multi
réseau Datagramme transmission protocole (MDTP) qui est devenu le principe
du SCTP.

Le protocole SCTP est un protocole unicast et permet l’échange de données


en mode bidirectionnel entre deux points d’extrémité (EP/end point) SCTP.

Il fournit un transport fiable, détecte la duplication de données ainsi que les


données erronées et retransmet les données corrompues. A ce propos, SCTP
gère des temporisateurs plus courts que ceux de TCP car il s’agit de
transporter des données de signalisation qui ont des contraintes de temps de
livraison plus strictes que celles liées aux données classiques.

Il existe deux fonctionnalités très importantes qui caractérisent le SCTP :

Multi homing et le Multi Streaming.


SCTP fournit les fonctionnalités suivantes:

-Accusé de réceptions (Acknowledgement) sans erreur, le transfert unique


des données utilisateur.

-Segmentation des données basant sur la taille de MTU (attribuée


dynamiquement).

-La livraison des messages non ordonnée utilisateur est activé.

-Protection contre les pannes de réseau grâce à la fonction multi homing.

-Indications explicites du protocole d'application dans le message de


l'utilisateur.

-Comportement d'évitement de la congestion, semblable à TCP.

-Regroupement et la segmentation des données de l'utilisateur.

-Protection contre le déni de service (Dos).

- Mécanisme de Heartbeat, qui prévoit la surveillance continue de


l’accessibilité
Vue fonctionnelle du SCTP
Concepts de base du SCTP

- SCTP EP (end point/ point d’extrémité) : défini par un ou ensemble


d’adresses IP et un port.

- Numéro de port SCTP: utilisé pour identifier une application d’utilisateur,


exemple : 2905 pour M3UA.

- SCTP Association : définie par la connexion entre deux points d’extrémité


SCTP (EP).
1) SCTP Single-Homed :

- Une seule adresse IP pour un point d’extrémité ou Association SCTP.


2) SCTP Multi-Homing

- Plusieurs adresses IP pour un point d’extrémité (EP) ou Association SCTP


(Sur différentes interfaces physiques).

- Mécanisme d’évitement des fautes SCTP afin de protéger contre les


problèmes de chemin IP. (La redondance de la couche IP est utilisée pour la
redondance au transport de signalisation).
1) Chemin IP primaire

􀂾 À l’ouverture d’une association (l’initiation), un chemin primaire est défini


pour chaque EP SCTP. Utilisé pour envoyer tous les datagrammes IP à
un hôte de destination particulière.

2) Chemin IP Alternatif

􀂾 L'une des voies alternatives seront utilisées, lorsque le chemin primaire


devient inactif.
􀂾 Chemins IP sont unidirectionnels, ainsi différents chemins dans les deux
directions peuvent être utilisées.
SCTP Multi streaming

Stream (flux)

- Canal logique Unidirectionnel


- Messages de l'utilisateur livrés en séquence
- Plusieurs Streams (flux) par association SCTP

Le concept de multi-streaming est utilisé pour se protéger contre le blocage


de la tête de ligne (Head of line blocking). Dans TCP, quand un paquet de
signalisation est perdu dans un réseau TCP-Stream, l'ensemble de la
connexion est bloqué lors de l'attente pour une retransmission, ce qui
conduit au blocage de la tête de ligne.

Le délai de récupération des données perdues peut prendre quelques


secondes, ce n'est pas acceptable pour un appel téléphonique.

Ainsi, dans SCTP, une association entre deux noeuds peut comprendre un
certain nombre de flux (Streams), où chacun est affectée à une ressource
particulière ou application, par conséquent, ces flux ne bloquent pas les uns
les autres en cas de retards de paquets.
Le paquet SCTP
Le paquet SCTP est composé d’un en-tête commun et de Chunks.

Un chunk est unité d’information dans le paquet SCTP.

Un Chunk contient soit des données de contrôle soit des données


utilisateur.

Plusieurs Chunks peuvent être multiplexés dans un même paquet SCTP sauf
dans le cas des Chunks de contrôle INIT, INIT ACK et SHUTDOWN
COMPLETE.

Ces derniers ne peuvent pas être regroupés avec d’autres Chunks dans un
même paquet SCTP.
Chunk INIT : Chaque entité SCTP est initialement dans l’état « Closed ».
L’entité qui souhaite établir l’association émet un Chunk de contrôle nommé
INIT.

Chunk INIT ACK : A la réception du Chunk INIT, l’entité SCTP réceptrice


retourne un Chunk INIT ACK.

Chunk COOKIE ECHO : A la réception du Chunk INIT ACK, l’initiateur de


l’association renvoie un Chunk COOKIE ECHO afin de finaliser
l’établissement de l’association.

Chunk COOKIE ACK : A la réception du Chunk COOKIE ECHO, un Chunk


COOKIE ACK est retourné.
Séquences d’établissement d’une Association
Structure du paquet SCTP
Source Port Destination Port
SCTP
Verification Tag
Common
Checksum Header

Type Flags Length


Chunk 1
Chunk Data [Control/Data]

Type Resv. U, B, E Length

TSN

Stream Identifier S Stream Sequence # n


Chunk N
[Data Chunk]
Payload Protocol Identifier

User Data (seq n of Stream S)


- Paramètres de l’en-tête SCTP
L’en-tête SCTP, d’une longueur de 12 octets identifie une association SCTP à
travers le même concept de port utilisé par TCP et UDP . Des numéros de port
en émission (2 octets) et réception (2 octets) présents dans l’en-tête combinés
aux numéros d’adresses IP en émission et réception (inclus dans l’en-tête du
paquet IP) identifient sans ambiguïté les endpoints s’échangeant des paquets
SCTP.

Pour la détection des erreurs de transmission, chaque paquet SCTP est


protégé par un champ de contrôle (checksum) sur 4 octets qui est plus
robuste que le checksum TCP ou UDP d’une longueur de 2 octets. Un paquet
SCTP dont le checksum est invalide est rejeté.

L’entête contient enfin une marque de vérification (verification tag).

Chaque Chunk débute par un champ chunkID indiquant le type de Chunk afin
de distinguer les Chunks de données et les différents Chunks de contrôle.
Dans le cas d’un chunk de données, la valeur de ChunkID est égale à 0.
Suivent des fanions de Chunk (Chunk Flags), la longueur de Chunk (Chunk
Length) nécessaire du fait de la taille variable d’un chunk, et la valeur de
Chunk (Chunk data) qui contient les données utiles du chunk.
Paramètres du Chunk data
Le Chunk DATA est utilisé afin de transporter les données provenant de la
couche cliente.

Le bit U (Unordered) s’il est positionné à 1 indique que les données doivent
être délivrées par SCTP à la couche cliente réceptrice, dans l’ordre reçu.
Il est possible de fragmenter un message utilisateur dont la taille est
supérieure à celle du paquet SCTP. Les bits B et E sont utilisés afin d’informer
le récepteur de cette fragmentation (Tableau 3).

Le bit B (Beginning) s’il est positionné à la valeur 1 indique le premier


fragment du message utilisateur.

Le bit E (end) mis à la valeur 1 précise qu’il s’agit du dernier fragment du


message. Pour un message non fragmenté, les bits B et E ont pour valeur 1.

Tableau 3 : Signification des bits B et E


Lorsqu’un message utilisateur est fragmenté en plusieurs Chunks DATA, le
champ TSNs (Transmission Sequence Number) est utilisé afin de
réassembler le message.
Ce champ TSN identifie le message utilisateur dans le contexte d’une
association indépendamment d’un stream particulier et est incrémenté à
chaque envoi d’un Chunk DATA modulo 232 – 1.

Le champ Stream Identifier (S) indique le flux (stream) auquel appartient ce


Chunk DATA.

Le champ Stream Sequence Number n indique la position de ce Chunk


DATA dans le flux.
Lorsqu’un message utilisateur est fragmenté par SCTP, toutes les parties
du message encapsulé dans des Chunks DATA ont le champ SSN
positionné à la même valeur.

Le champ Payload Protocol Identifier représente un identificateur de


protocole de la couche cliente. La valeur associée est passée par la couche
cliente émettrice à SCTP et retournée à la couche cliente réceptrice afin de
lui permettre d’identifier le type d’information transportée dans ce DATA
Chunk.
Le champ User Data contient le message utilisateur sur un nombre d’octets
multiple de 4. Si la longueur du message utilisateur n’est pas un multiple de
4, des octets de bourrage (au maximum 3) pourront alors être insérés dont
la valeur sera « 00000000 ».

Le champ Length indique la longueur du Chunk DATA en octets, à partir du


premier champ (Chunk Type dont la valeur est 00000000) jusqu’à la fin du
champ User Data en excluant les octets de bourrage. Un Chunk DATA sans
données utilisateur à un champ Length positionné à la valeur 16 (00010000).
EXEMPLE

Fragmentation SCTP
Prenons l’exemple d’une fragmentation d’un message utilisateur SCTP,
provenant de la couche M3UA (MTP3 User Adaptation). Le message doit être
délivré sur le stream 5 dans l’ordre d’émission.

Ce message est décomposé en quatre fragments. Les quatre fragments sont


des chunks DATA SCTP. Ils ont leur champ U positionné à 0. Les données
doivent être réordonnées à l’arrivée avant d’être délivrées à la couche
supérieure.

Les bit B/E sont positionnées à 1 0 pour le premier fragment. Il s’agit du


premier fragment mais pas du dernier. D’autres fragments suivent. Les
second et troisième fragments ont leur bit B/E positionnés à 0 0. Ils ne sont
ni le premier ni le dernier fragment du message. Les bits B et E du quatrième
fragment sont mis à 0 1 puisqu’il ne s’agit pas du premier mais du dernier
fragment.

Tous les fragments doivent être émis sur le stream numéro 5. Le numéro de
séquence est le même pour tous les fragments puisqu’il s’agit de fragments
d’un même message. Par contre, le champ TSN est incrémenté de 1 à
chaque nouveau chunk émis sur l’association SCTP. Enfin le payload Id
indique le type de contenu des chunks DATA. Dans l’exemple le contenu
des chunks DATA provient de la couche M3UA dont le type est 3.

Vous aimerez peut-être aussi