DevIOICSocket
Introduction
DevIOICSocket est une Interface Canal (IC) qui fournit des services de communication réseau basés sur les sockets pour les interfaces d'échange DevIO. Cette interface prend en charge les protocoles TCP, UDP et TLS/SSL pour établir des connexions réseau sécurisées et non sécurisées.
L'interface canal socket agit comme un intermédiaire entre les interfaces d'échange et les équipements distants, gérant les connexions réseau, la sécurité SSL/TLS, et la transmission des données.
Architecture et fonctionnement
Composants principaux
- SocketManager : Gestionnaire principal des connexions socket avec support IOCP (I/O Completion Ports)
- Interface : Point d'entrée principal avec gestion des paramètres de ligne de commande
- Socket/SecureSocket : Classes de gestion des connexions TCP/UDP et TLS/SSL
- EventManager : Gestionnaire d'événements asynchrones
- DNSManager : Résolution DNS des adresses
Modes de fonctionnement
L'interface supporte plusieurs modes d'appels entrants (-IN_DEVIO) :
| Mode | Valeur | Description |
|---|---|---|
IncomingModeIE |
0 | Notifier uniquement l'Interface d'Échange |
IncomingModeDevioAndIE |
1 | Notifier le serveur DevIO et l'Interface d'Échange |
IncomingModeDevio |
2 | Notifier uniquement le serveur DevIO |
IncomingModeDevioIfCallIdOrIE |
3 | Notifier DevIO si callAddress connue, sinon l'IE |
Paramètres de configuration
Paramètres généraux
| Paramètre | Description | Valeur par défaut |
|---|---|---|
-SERVER |
Nom du serveur DevIO | Obligatoire |
-NAME |
Nom de l'interface canal | Obligatoire |
-HANDLE |
Handle de l'interface | Obligatoire |
-LOG |
Activation de la journalisation | Non activé |
-ASCII |
Traces en format ASCII | Non activé |
-IN_DEVIO |
Mode de notification des appels entrants | 0 |
Paramètres de performance
| Paramètre | Description | Valeur par défaut |
|---|---|---|
-NBCNX |
Nombre maximum de connexions simultanées | 0 (illimité) |
-KAT |
Temps de keep-alive (ms) | 0 (désactivé) |
-KAI |
Intervalle keep-alive (ms) | 0 (désactivé) |
-WT |
Nombre de threads de travail | -1 (auto) |
-NBA |
Nombre d'acceptations simultanées | 1 |
Paramètres d'affichage et debug
| Paramètre | Description | Valeur par défaut |
|---|---|---|
-Q |
Mode silencieux (affichage socket) | Non activé |
-QQ |
Mode très silencieux (affichage minimal) | Non activé |
-R |
Résolution DNS sans domaine | Non activé |
-RD |
Résolution DNS avec domaine | Non activé |
Paramètres SSL/TLS
| Paramètre | Description | Valeur par défaut |
|---|---|---|
-CERT |
Nom du certificat de sécurité | Non défini |
-MODE |
Mode de fonctionnement SSL | Non défini |
-NOCRL |
Désactiver la liste de révocation des certificats | Non activé |
-DCRL |
CRL dynamique | Non activé |
-LM |
Utiliser le magasin de certificats machine locale | Non activé |
-MCV |
Validation manuelle des informations d'identification | Non activé |
Paramètres techniques avancés
| Paramètre | Description | Valeur par défaut |
|---|---|---|
-NOV |
Désactiver les opérations overlapped (limité à 63 connexions) | Non activé |
-NOL |
Désactiver les logs IOCP | Non activé |
-IGN |
Adresses IP ignorées (format IP/masque) | Non défini |
-MIR |
Mode miroir pour les appelants ignorés | Non activé |
Paramètres de destination
| Paramètre | Description |
|---|---|
-TCP |
Destination d'appel entrant TCP |
-UDP |
Destination d'appel entrant UDP |
-TLS |
Destination d'appel entrant TLS/SSL |
Configuration dans DevIO Studio
1. Déclaration de l'interface canal
- Ouvrir le projet avec DevIO Studio
- Cliquer-droit sur Canaux → Nouveau canal
- Sélectionner Socket comme type d'interface canal
- Configurer les paramètres selon les besoins
2. Configuration des protocoles
TCP
-TCP <port>
UDP
-UDP <port>
TLS/SSL
-TLS <port> -CERT <nom_certificat>
3. Exemples de configuration
Configuration TCP simple
-SERVER MonServeur -NAME ICSocket_TCP -HANDLE 1 -TCP 502
Configuration TLS sécurisée
-SERVER MonServeur -NAME ICSocket_TLS -HANDLE 2 -TLS 443 -CERT "MonCertificat" -MODE "server"
Configuration avec keep-alive
-SERVER MonServeur -NAME ICSocket_KA -HANDLE 3 -TCP 502 -KAT 30000 -KAI 1000
Utilisation et supervision
Surveillance des connexions
L'interface fournit des informations de diagnostic via : - Logs de connexion : Établissement/fermeture des connexions - Statistiques de performance : Nombre de connexions actives - Résolution DNS : Traces de résolution d'adresses
Gestion des erreurs
- Timeout de connexion : Gestion automatique des connexions expirées
- Erreurs SSL/TLS : Validation des certificats et chiffrement
- Saturation : Limitation du nombre de connexions simultanées
Mode debug
Activer les traces détaillées avec :
-LOG -R -RD
Sécurité SSL/TLS
Configuration des certificats
- Installation : Certificat dans le magasin Windows
- Référence : Utiliser
-CERT <nom_certificat> - Validation : CRL automatique ou manuelle (
-MCV)
Modes de sécurité
- Serveur TLS : Écoute sur port sécurisé
- Client TLS : Connexion sortante sécurisée
- Validation mutuelle : Authentification bidirectionnelle
Optimisation des performances
Threads de travail
- Auto :
-WT -1(2 × nombre de processeurs) - Manuel :
-WT <nombre>selon la charge
IOCP (I/O Completion Ports)
- Activé par défaut : Meilleure performance
- Désactivable :
-NOVpour compatibilité
Limitation des connexions
-NBCNX 100 # Maximum 100 connexions
-NBA 5 # 5 acceptations simultanées
FAQ et dépannage
Q : Comment limiter les connexions par IP ?
R : Utiliser -IGN <IP/masque> pour bloquer des plages d'adresses.
Q : Problème de certificat SSL ?
R : Vérifier l'installation du certificat avec -LM pour le magasin machine locale.
Q : Performance dégradée ?
R : Ajuster -WT et -NBA selon la charge réseau.
Q : Connexions non fermées proprement ?
R : Configurer keep-alive avec -KAT et -KAI.
Annexes et références utiles
Fichiers de configuration
- Certificats : Magasin de certificats Windows
- Logs : Répertoire de logs DevIO
Protocoles supportés
- TCP : Transmission Control Protocol
- UDP : User Datagram Protocol
- TLS/SSL : Transport Layer Security
Outils de diagnostic
- netstat : État des connexions réseau
- telnet : Test de connectivité TCP
- openssl : Test des connexions SSL/TLS