La plupart des fournisseurs de services GPRS, voire tous, utilisent l'adressage IP dynamique pour les appareils mobiles activés sur leurs réseaux. Les opérateurs emploient une architecture similaire au protocole DHCP (Dynamic Host Control Protocol) pour gérer les adresses IP sur un réseau. Cela pose un problème aux applications mobiles lors de leur enregistrement sur un réseau, car elles peuvent recevoir une nouvelle adresse IP à chaque connexion. L'appareil mobile doit alors gérer la notification d'attribution d'adresse IP du réseau vers le système fournissant la solution. La figure 1 illustre ce problème.
Enfora a conçu une architecture permettant de résoudre les problèmes potentiels qui peuvent survenir lorsqu'un système hôte a besoin de connaître l'adresse IP des appareils mobiles déployés sur le terrain. La structure générale et les commandes nécessaires à son exécution sont détaillées ci-dessous. Des exemples d'implémentations différentes seront présentés plus en détail.
Deux architectures de base ont été créées et interagissent pour gérer le processus d'acquisition d'une nouvelle adresse IP. Ces architectures sont appelées Wakeup/Keep Alive et Friends.
L'architecture Wakeup/Keep Alive est conçue pour fournir des confirmations de synchronisation et de livraison à un serveur spécifique lors de l'obtention d'une nouvelle adresse IP. Cette commande permet également de définir une minuterie de maintien de connexion (Keep Alive), qui générera un paquet de données à intervalles réguliers. Le serveur peut ainsi maintenir une connexion active pour plusieurs adresses IP utilisées par son application.
L'architecture en mode « Amis » permet de définir plusieurs adresses IP autorisées à accéder au modem.
Ce modèle a deux objectifs.
Un premier niveau d'accès permet la programmation à distance du module via une interface de programmation (API). Cette architecture sera décrite en détail dans un autre document.
Le second objectif de cette architecture est de définir les adresses IP des serveurs qui seront utilisées avec les paramètres de réveil et de maintien en vie.
La syntaxe de la commande pour définir les serveurs associés est la suivante :
À$AMI= , ,
ami n° : (1-10) Indique l’ami à ajouter ou à remplacer.
Indication serveur : (0-1) Ce paramètre indique si l’ami spécifié fonctionnera comme serveur ou non. 1 =
Adresse IP du serveur : « (0-255).(0-255)-(0-255).(0-255) »
Il est possible de définir jusqu'à 10 adresses IP autorisées. Chacune d'elles pourra accéder au modem. Chaque adresse IP autorisée peut être identifiée comme un serveur. Cette liste permet également de contrôler quelles adresses IP peuvent exécuter des commandes à distance via l'API Enfora.
La commande permettant de définir l'architecture Wakeup/Keep Alive est la suivante :
À$RÉVEIL = ,
0 = Aucun message de réveil n'est envoyé.
1 = Envoyer des messages à partir de la réception de la nouvelle adresse IP toutes les<retry-period> minutes.

2 = Envoyer un message d'accusé de réception à l'aide de la commande at$acktm une fois la nouvelle adresse IP reçue.<retry-period> minutes.
Le nombre de minutes pendant lesquelles la requête Keep-alive est envoyée au serveur. Zéro indique aucune nouvelle tentative.
• Lorsque cette commande est utilisée, un événement du groupe 0 sera généré dans la table des événements du module.
• Le paramètre Elle générera une séquence de temporisation à l'aide du Timer4 du module.
Le message d'accusé de réception et les tentatives de reconnexion sont utilisés conjointement avec Wakeup/Keep Alive.
Le format de la commande est le suivant :
AT$ACKTM : ,
Nombre maximal de messages de réveil que le modem enverra à chaque serveur après réception de la nouvelle adresse IP ou à l'expiration de la période de maintien de connexion. La
valeur zéro indique qu'aucun message ne doit être envoyé.
Nombre de secondes entre deux tentatives successives d'envoi d'un message Wakeup.
Zéro indique aucune tentative.
1. La resélection d'adresse IP est désactivée.
2. Si aucun accusé de réception n'a été reçu sur tous les serveurs d'amis définis et que le nombre de tentatives est épuisé, un problème de communication est considéré et une nouvelle procédure de resélection d'adresse IP sera lancée.
Dès réception d'une nouvelle adresse IP, le modem consulte sa liste d'adresses IP (du premier au dixième) pour vérifier la présence de serveurs. Si un serveur est trouvé, un message de réveil est envoyé à l'intervalle défini par la commande `$ACKTM`, jusqu'à ce que le nombre de tentatives soit atteint ou qu'un accusé de réception soit reçu. Ce processus est répété pour chaque adresse IP de la liste, jusqu'à épuisement de celle-ci ou réception d'un accusé de réception d'un serveur. Cet accusé de réception n'est pas obligatoire.
Si la fonction Keep-Alive est activée, les messages de réveil sont répétés à l'intervalle défini par la commande `$WAKEUP` après la fin de la séquence de réveil précédente. La requête Keep-Alive est envoyée indépendamment de la date d'accusé de réception de la séquence précédente.
La resélection d'adresse IP est une fonctionnalité automatique permettant au modem d'obtenir une nouvelle adresse IP du réseau en cas d'échec de communication. Le modem envoie alors des messages à toutes les adresses IP de la liste d'adresses IP définies comme serveurs. Si le modem ne reçoit pas d'accusé de réception, tel que défini dans l'API Enfora, provenant des journaux du serveur, il obtiendra une nouvelle adresse IP sur le réseau.
Un paramètre supplémentaire, composé d'un champ de 20 caractères, permet d'identifier le périphérique de manière unique au sein de son système. Ce paramètre sera inclus dans la charge utile du paquet UDP lors de la transmission des données de réveil/maintien de connexion.
L'identification du modem s'effectue comme suit :
AT$MDMID =
Un champ de 20 caractères est utilisé pour identifier le modem.
La figure 2 illustre l'utilisation de la fonction « Amis » avec un seul serveur.
Dans cet exemple, l'Enabler-IIIG est configuré pour envoyer des messages de réveil à l'adresse IP 168.121.100.1 toutes les 20 secondes, jusqu'à 10 envois, ou jusqu'à réception d'un accusé de réception du serveur. L'Enabler-IIIG envoie un message de maintien de connexion au serveur toutes les 60 minutes. Dans cet exemple, la période de resélection d'adresse IP est désactivée.
La figure 3 illustre l'utilisation de la fonction « Amis » avec plusieurs serveurs.
Dans cet exemple, l'Enabler-IIIG est configuré pour envoyer le paquet de réveil au premier serveur de sa liste d'amis. Ce paquet est envoyé à ce premier serveur toutes les 20 secondes, jusqu'à 10 envois, ou jusqu'à réception d'un accusé de réception. Si aucun accusé de réception n'est reçu après 10 tentatives, le modem lance la procédure de réveil auprès du serveur suivant dans la liste. Ce processus se poursuit (un serveur à la fois) jusqu'à épuisement de la liste d'amis ou jusqu'à réception du premier accusé de réception. Dans cet exemple, 10 paquets de réveil sont envoyés à l'adresse 168.121.100.1 pendant les 200 premières secondes. Ensuite, 10 autres paquets sont envoyés à l'adresse 168.121.100.2 pendant les 200 secondes suivantes. Enfin, 10 paquets de réveil sont envoyés à l'adresse 168.121.100.3 pendant les 200 secondes suivantes. Si le modem ne reçoit aucun accusé de réception pendant ces 600 secondes (10 minutes), il cesse d'envoyer des paquets de réveil jusqu'à la fin de la période de maintien de connexion (Keep-alive). Dans cet exemple, la période de maintien de connexion est de 60 minutes.
L'option de resélection d'adresse IP est activée. Si le modem ne reçoit pas d'accusé de réception d'un serveur à la fin de la période de réveil, il obtiendra une nouvelle adresse IP sur le réseau.
Pour plus d'informations ou un devis
José Adarve (ingénieur d'applications M2M, Venco Electrónica) et Angel Gutiérrez (chef de produit M2M, Venco Electrónica).