Les fonctions réseau d Arduino

Dimension: px
Commencer à balayer dès la page:

Download "Les fonctions réseau d Arduino"

Transcription

1 Chapitre 2 Les fonctions réseau d Arduino 2.1 Matériel nécessaire Dans cette section, nous aurons besoin soit d un Arduino Uno et d une carte Wi-Fi, soit d un arduino Ethernet. Il existe plusieurs sortes d Arduino, parmi lesquels : Arduino UNO est le plus simple, il vaut une vingtaine d euro. Il est composé (cf. Figure 2.1 page suivante) d un processeur ATmega328 de la société ATmel. Il s agit d un processeur RISC 8 bits avec 32 Koctets de mémoire flash, des interfaces séries comme I2C, SPI. 23 broches d entrées sorties et la possibilité d échantillonner des signaux analogiques. La fréquence d horloge est de 16 Mhz conduisant à une puissance de traitement d environ 16 MIPS. 6 entrées analogiques pour échantillonage du signal. A noter que sur les anciennes versions les broches A4 et A5 peuvent servir pour les communications numériques via un bus I2C. Dans la dernière révision, des broches spécifiques sont apparues au niveau des broches d entrées/sorties numériques. une alimentation électrique comprise entre 9 et 12 volts. Elle n est pas nécessaire quand l Arduino est connecté à un port USB. un port USB qui permet d alimenter l Arduino, de téléverser le code compilé sur un ordinateur et de suivre l exécution d un programme si celui-ci envoie des informations sur la liaison série. Deux LED permettent de suivre l évolution des échanges de données en émission et en réception. L Arduino Ethernet vaut une cinquantaine d euro et a à peu près les mêmes caractéristiques que l Arduino UNO. Il se distingue par un port Ethernet à la place du port USB et un connecteur 6 broches qui permet de connecter un connecteur série connectable à de l USB. La carte dispose également d un emplacement mémoire dans le cas où l équipement est utilisé comme serveur et doit stocker des données. A noter que les broches 10 à 13 sont inutilisables car réservées à la communication avec le module Ethernet. D autres Arduino comme le Mega ou le DUE sont basés sur des processeurs ATmega plus puissants et possèdent plus de place en mémoire pour stocker les programmes, plus de broches d entrées/sorties et parfois une fréquence d horloge plus rapide. 11

2 Port USB (alimentation électrique, transfert de données, monitor) LED données port USB 13 Entrées/Sortie Numériques LED Alimenté Bouton RESET Alimentation électrique 9V à 12 V continu (+ au centre) Tensions et Masse Processeur ATmega328 6 entrées Analogiques (0 à 1023) FIGURE 2.1 Arduino UNO 2.2 Premières Applications en réseau Nous allons écrire des applications simples qui permettent d envoyer des informations vers un serveur. Dans un premier temps utiliser le protocole UDP qui est la manière la plus simple de communiquer avec l extérieur. Nous allons utiliser deux types de cartes Arduino. La première Arduino Ethernet contient une pile Ethernet intégrée, la seconde sera composée d un Arduino Uno et d une carte supplémentaire WiFi 1. Il faut aller télécharger sur la page suivante Software l application Arduino qui contient les bibliothèques nécessaire pour communiquer avec les différents modules, permet de compiler le code et de le télécharger le binaire obtenu via un port USB sur l équipement. Les exemples de ce livre sont basés sur la version Format d un programme Nous supposerons dans la suite que le lecteur possède quelques notions du langage C. Quand on en connaît les rudiments, la programmation en Arduino est très simple, deux 1. Il n est pas nécessaire d avoir les deux pour mettre en œuvre la suite des exemples. Ce chapitre explique comment facilement d une configuration vers une autre. 12

3 fonctions sont nécessaires pour tout programme Arduino : 2 la fonction setup est appelée une seule fois au démarrage du programme pour initialiser des variables. la fonction loop contient le programme principal. Elle est appelée continuellement donc il n est pas nécessaire qu elle contienne une boucle. Bien entendu, comme C, d autres fonctions appelées par setup ou loop peuvent être créées. De même qu il sera possible de créer des variables globales ou inclure les descriptions des types de données, des variables et des fonctions contenues dans des bibliothèques. La figure 2.2 montre l environnement de programmation pour le programme le plus simple (et qui ne fait rien). On y retrouve les deux fonctions setup ou loop. FIGURE 2.2 Interface de programmation Le bouton permet de compiler le programme pour vérifier qu il est syntaxiquement correct. Les erreurs de compilation (ou le message de succès) apparaît dans la fenêtre noire située en bas. Le bouton permet de compiler le code et, en bon québécois, de le téléverser, c est-à-dire de le copier sur l arduino et de l exécuter. En bas de l écran le port série est 2. voir également la très bonne introduction sur LivretArduinoFr06.pdf. 13

4 indiqué (dans notre exemple /dev/tty.usbmodem411). Cette information est importante dans le cas où l on développe sur plusieurs Arduinos connectés par USB pour ne pas téléverser le code sur le mauvais équipement. Les boutons permettent de manipuler les fichiers. Le premier crée une nouvelle fenêtre vide dans laquelle on pourra développer un nouveau code. La flèche vers le haut ouvre dans l éditeur un code déjà écrit ou un modèle que l on pourra adapter à ses besoins. La flèche vers le bas sauvegarde le programme écrit. Enfin, le bouton permet, quand le code s exécute, de suivre les messages envoyés par l Arduino, via le port série Premier programme : Adresse MAC Comme il s agit d un livre sur les réseaux, nous n allons pas faire clignoter bêtement une LED en guise de premier programme. Nous allons plutôt commencer par un programme simple lisant l adresse d un module Wi-Fi (cf. Listing 2.1). 1 # i n c l u d e <SPI. h> 2 # i n c l u d e <WiFi. h> 3 4 b y t e mac [ 6 ] ; / / a d r e s s e MAC 5 6 void setup ( ) 7 { 8 S e r i a l. b e g i n ( ) ; / / i n i t i a l i s e l a communication s e r i e 9 10 WiFi. macaddress ( mac ) ; / / r e c u p e r e l a d r e s s e MAC du module WiFi 11 S e r i a l. p r i n t ( MAC: ) ; / / l a f f i c h e s u r l e l i e n s e r i e 12 S e r i a l. p r i n t ( mac [ 5 ],HEX ) ; 13 S e r i a l. p r i n t ( : ) ; 14 S e r i a l. p r i n t ( mac [ 4 ],HEX ) ; 15 S e r i a l. p r i n t ( : ) ; 16 S e r i a l. p r i n t ( mac [ 3 ],HEX ) ; 17 S e r i a l. p r i n t ( : ) ; 18 S e r i a l. p r i n t ( mac [ 2 ],HEX ) ; 19 S e r i a l. p r i n t ( : ) ; 20 S e r i a l. p r i n t ( mac [ 1 ],HEX ) ; 21 S e r i a l. p r i n t ( : ) ; 22 S e r i a l. p r i n t l n ( mac [ 0 ],HEX ) ; } void loop ( ) {} Listing 2.1 Lecture de l adresse MAC Les 2 premières lignes définissent les variables et fonctions utilisées pour ce programme : SPI.h concerne les communications entre la carte Arduino et les périphériques, ici la carte Wi-Fi. WiFi.h définit les commandes permettant de piloter la carte Wi-Fi. 14

5 Ligne 4, le programme définit une structure globale de 6 octets appelée mac. Cette structure servira à stocker l adresse de la carte Wi-Fi. Ligne 6, la fonction d initialisation setup commence par définir la vitesse du bus serie USB pour communiquer avec le moniteur de l ordinateur. Ligne 10 un objet WiFi est déjà créé lors de l inclusion du fichier WiFi.h. La méthode macaddress retourne l adresse de la carte Wi-Fi. Cette adresses se retrouve également dans les carte Ethernet, on l appelle adresse MAC (Medium Access Control) Les lignes 11 à 22 envoyent le résultat sur le lien série pour qu il soit affiché par le moniteur de l ordinateur ayant servi à compiler le code (il faut sélectionner l icone ). Enfin, on peut remarquer que la fonction loop ligne 26 est vide car notre programme se déroule uniquement durant la phase d initialisation. Le résultat est donné dans le listing suivant : MAC: 7A: C4 : E : 9 2 : EB: Comprendre les adresses MAC Le programme précédent a retourné une valeur sur 6 octets qui correspond à l adresse MAC de la carte Wi-Fi. L IEEE qui standardise les protocoles des réseaux locaux (Ethernet et Wi-Fi) a défini une structure commune pour tous les types de réseaux locaux. Cela permet leur interconnexion au niveau 2, c est-à-dire au niveau des trames. Le but d une adresse de niveau 2 est d identifier sans ambiguïté un équipement sur le réseau local (Ethernet, Wi-Fi,...). Techniquement parlant, l unicité de l adresse doit être garantie que sur ce réseau local, mais en pratique un réseau est amené à évoluer n importe qu elle machine dans le monde peut potentiellement s y connecter. Il est donc plus facile de garantir l unicité de l adresse au niveau mondial, de cette manière, il n y aura jamais de conflit d adresses quelque soit la configuration du réseau. EUI 48 I / G U / L OUI Vendor ID U=0 : Universal L=1 : Local I=0 : Individual G=1 : Group EUI 64 I / G U / L OUI Vendor ID MAC 16 I / G Local FIGURE 2.3 Adresses IEEE La figure 2.3 reprend les différents formats que l on retrouve dans les réseaux et dont le format est standardisé par l IEEE. Ce qui a été retourné par la carte Wi-Fi est appelée plus 15

6 formellement un EUI-48 (Extended Unique Identifier). Cet identificateur est décomposée en trois parties. Au centre se trouvent les 22 bits de l OUI (Organizationally Unique Identifier). L IEEE les attribue aux entreprises qui en font la demande (contre $). Cette partie étant unique et les entreprises numérotant de manière unique les 24 bits restants (Vendor ID) la valeur est par construction unique dans le monde. Le deux premiers bits transmis ont un rôle particulier : le premier bit appelé I quand il est à 0 et G quand il est à 1 indique la nature de l adresse. Quand il est à 0, il s agit d une adresse unicast ou individuelle, c est-àdire destinée à un seul équipement sur le réseau. Quand il est à 1, il s agit d une adresse de groupe, on distingue : les adresses de broadcast dans laquelle tous les bits sont à 1, dans ce cas toutes les cartes réseaux recevant ces trames avec cette adresse de destination doivent la traiter. Elle est notée FF-FF-FF-FF-FF-FF. les adresses de multicast où tous les bits ne sont pas à 1, dans ce cas les machines qui veulent recevoir ce trafic, doivent l indiquer à leur carte réseau qui va s abonner. Les autres rejetteront les paquets qui ne leur sont pas destiné. Le deuxième bit est appelé U quand il est à 0 et L quand il est à 1. Quand il est à 0 il s agit d une adresse universelle c est-à-dire attribuée à partir de OUI de l IEEE et unique dans le monde. Ce bit mis à 1 devrait indiquer que l adresse a été modifiée ou créée par l administrateur de la machine 3. Dans notre notre exemple précédent, nous avions eu la valeur 7A-C4-0E-92-EB-00. Si l on regarde le premier octet transmis, c est à dire celui de gauche, il s écrit en binaire Nous avons ici un piège lié à la représentation d un nombre sur le papier ou sur un écran, car il faut lire cette valeur de droite à gauche, le bit le moins significatif étant à droite. Nous avons donc une adresse individuelle (c est à-dire de l adresse d un seul équipement) et une adresse universelle. La figure 2.3 page précédente montre aussi deux autres types d adresses. Les EUI-64 sont une extension des EUI-48, la partie Vendor ID a été étendue sur 5 octets. Il existe également une forme d adressage sur 16 bits. Dans ce cas, bien entendu, il ne peut exister que des adresses locales, il est impossible de garantir leur unicité à l échelon mondial. On retrouvera ces deux types d adresses quand nous regarderons la norme IEEE pour les réseaux de capteurs Carte Ethernet Une particularité de l Arduino avec une carte Ethernet embarquée est de ne pas avoir l adresse MAC stockée dans les composants. Sur les modèles récents, elle est imprimée sur une étiquette collée sur la face arrière de la carte. Il faut donc rentrer la valeur au début de la phase d initialisation, comme le montre le programme # i n c l u d e <SPI. h> 2 # i n c l u d e <E t h e r n e t. h> 3 3. Dans les fait, il n y a aucun contrôle possible, il ne faut donc pas baser une sécurité sur un EUI car ils sont modifiables et par conséquent facilement usurpables. 16

7 4 b y t e mac [ ] = { 0x90, 0xA2, 0xDA, 0x0D, 0x6F, 0x30 } ; 5 6 void setup ( ) 7 { 8 E t h e r n e t. b e g i n ( mac ) ; 9 } void loop ( ) {} Listing 2.2 Affectation de l adresse MAC On y retrouve ligne 4, la structure mac à laquelle on affecte 6 valeurs qui correspondent à l adresse inscrite sur le dos de la carte. La méthode begin permet de l affecter à la carte Ethernet. Question 1 Le site web html permet de connaître les affectations publiques des OUI par l IEEE. Qui possède l OUI des Arduino Ethernet? Cette solution si elle est simple d un point de vue matériel, peut poser des problèmes si l on doit déployer plusieurs cartes arduino tournant le même code. Il faudra à chaque fois le modifier pour prendre en compte une adresse MAC différente Pile protocolaire Arduino Si l on se réfère au modèle en couche présenté à la figure 3.14 page 68, la carte Arduino se place au niveau applicatif (7) et elle va communiquer avec la carte réseau qui se charge de mettre en place l ensemble de la pile protocolaire du niveau transport (4) au niveau physique (1). La communication entre l arduino et la carte se fait par le bus SPI (Serial Peripheral Interface) synchrone et bi-directionnel via les broches 10 à 13. Depuis l arduino, il n est pas possible de modifier les piles réseaux, en particulier comme les cartes Wi-Fi et Ethernet n incluent pas de pile IPv6, les communications se feront qu en IPv4. Comme le montre le programme 2.1 page 14 et le programme 2.2 page ci-contre un objet (au sens langage de progrmmation) est utilisé pour permettre la communication avec la carte réseau adéquate (respectivement WiFi et Ethernet). Ces noms sont assez trompeur car ils définissent des méthodes permettant d accéder également aux protocoles des couches 2 à 4 comme TCP/IP ou UDP. 2.4 Connexion à un réseau WiFi Si la connexion à un réseau Ethernet est généralement très simple, il suffit de brancher la prise Ethernet RJ-45 pour s y connecter physiquement, avec les réseaux sans fil le processus est un petit peu plus complexe. En effet, plusieurs réseaux peuvent être disponibles à un instant donné, et l utilisateur doit pouvoir sélectionner celui qu il désire utiliser. Il faut également empêcher qu un utilisateur non autorisé s y connecte ou puisse écouter les données émises. 17

8 2.4.1 Découverte des points d accès La carte Wi-Fi d Arduino met en œuvre le mode avec point d accès (AP : Access Point). Ce point d accès va diffuser toutes les 100 ms le nom du réseau (formellement SSID : Service Set Identifier). Ce message appelé beacon en anglais permet aux stations que le reçoivent de faire le choix d AP en fonction du nom et aussi de la qualité du signal (RSSI : Received Signal Strength Indication). Le programme 2.3 fortement inspiré d un programme que l on trouve sur le site web d Arduino permet de scanner et d afficher les réseaux présents. 1 / 2 c r e a t e d 13 J u l y 2010 by d l f ( Metodo2 s r l ) 3 m o d i f i e d 21 Junn 2012 by Tom Igoe and Jaymes Dec 4 / 5 # i n c l u d e <SPI. h> 6 # i n c l u d e <WiFi. h> 7 8 b y t e mac [ 6 ] ; 9 10 void setup ( ) { / / I n i t i a l i z e s e r i a l and w a i t f o r p o r t t o open : 11 S e r i a l. b e g i n ( ) ; 12 w h i l e (! S e r i a l ) {} / / w a i t f o r s e r i a l p o r t t o c o n n e c t. 13 / / Needed f o r Leonardo only 14 i f ( WiFi. s t a t u s ( ) == WL NO SHIELD ) { / / check f o r s h i e l d p r e s e n c e 15 S e r i a l. p r i n t l n ( WiFi s h i e l d n o t p r e s e n t ) ; 16 w h i l e ( t r u e ) ; 17 } 18 WiFi. macaddress ( mac ) ; p r i n t M a c A d d r e s s ( mac ) ; / / P r i n t WiFi MAC a d d r e s s : 19 } void loop ( ) { 22 l i s t N e t w o r k s ( ) ; / / Scan 23 d e l a y ( ) ; / / w a i t 10 s e c 24 } void p r i n t M a c A d d r e s s ( b y t e macaddr ) { 27 S e r i a l. p r i n t ( MAC: ) ; 28 S e r i a l. p r i n t ( macaddr [ 5 ],HEX ) ; S e r i a l. p r i n t ( : ) ; 29 S e r i a l. p r i n t ( macaddr [ 4 ],HEX ) ; S e r i a l. p r i n t ( : ) ; 30 S e r i a l. p r i n t ( macaddr [ 3 ],HEX ) ; S e r i a l. p r i n t ( : ) ; 31 S e r i a l. p r i n t ( macaddr [ 2 ],HEX ) ; S e r i a l. p r i n t ( : ) ; 32 S e r i a l. p r i n t ( macaddr [ 1 ],HEX ) ; S e r i a l. p r i n t ( : ) ; 33 S e r i a l. p r i n t l n ( macaddr [ 0 ],HEX ) ; 34 } void l i s t N e t w o r k s ( ) { 37 S e r i a l. p r i n t l n ( Scan Networks ) ; 38 i n t numssid = WiFi. scannetworks ( ) ; 39 i f ( numssid == 1) { 40 S e r i a l. p r i n t l n ( Couldn t g e t a w i f i c o n n e c t i o n ) ; 41 w h i l e ( t r u e ) ; 42 } 43 / / p r i n t t h e l i s t of n e t w o r k s seen : 44 S e r i a l. p r i n t ( number of a v a i l a b l e n e t w o r k s : ) ; 45 S e r i a l. p r i n t l n ( numssid ) ; 18

9 46 47 f o r ( i n t t h i s N e t = 0 ; t h i s N e t <numssid ; t h i s N e t ++) { 48 S e r i a l. p r i n t ( t h i s N e t ) ; S e r i a l. p r i n t ( ) ) ; 49 S e r i a l. p r i n t ( WiFi. SSID ( t h i s N e t ) ) ; 50 S e r i a l. p r i n t ( \ t S i g n a l : ) ; S e r i a l. p r i n t ( WiFi. RSSI ( t h i s N e t ) ) ; 51 S e r i a l. p r i n t ( dbm ) ; 52 S e r i a l. p r i n t ( \ t E n c r y p t i o n : ) ; 53 p r i n t E n c r y p t i o n T y p e ( WiFi. e n c r y p t i o n T y p e ( t h i s N e t ) ) ; 54 } 55 } void p r i n t E n c r y p t i o n T y p e ( i n t t h i s T y p e ) { 58 S e r i a l. p r i n t ( ( ) ; S e r i a l. p r i n t ( t h i s T y p e ) ; S e r i a l. p r i n t ( ) ) ; 59 s w i t c h ( t h i s T y p e ) { 60 c a s e ENC TYPE WEP : S e r i a l. p r i n t l n ( WEP ) ; b r e a k ; 61 c a s e ENC TYPE TKIP : S e r i a l. p r i n t l n ( WPA ) ; b r e a k ; 62 c a s e ENC TYPE CCMP : S e r i a l. p r i n t l n ( WPA2 ) ; b r e a k ; 63 c a s e ENC TYPE NONE : S e r i a l. p r i n t l n ( None ) ; b r e a k ; 64 c a s e ENC TYPE AUTO : S e r i a l. p r i n t l n ( Auto ) ; b r e a k ; 65 } 66 } Listing 2.3 Scanning des réseaux Wi-Fi disponibles La partie initialisation lignes 10 à 21 ressemble au premier programme que nous avons vu, un test supplémentaire vérifie que la carte Wi-Fi est bien présente. Dans le cas contraire le programme se bloque en exécutant une boucle sans fin (ligne 16). La partie boucle va appeler la fonction de scan (listnetworks) puis attendre 10 secondes. La fonction listnetworks (lignes 38 à 57) appelle ligne 40 la méthode scannetworks de la classe WiFi qui retourne soit le nombre de points d accès trouvé, soit une erreur (-1) qui provoque l arrêt du programme (ligne 43). Une boucle permet de parcourir et d afficher les caractéristiques des points d accès trouvés, à savoir, leur nom (SSID), la puissance du signal (RSSI) et la méthode de chiffrement. La fonction printencryptiontype indique l algorithme associé à la valeur. Le chiffrage WEP (Wired Equivalent Privacy) a été la première méthode utilisée pour chiffrer les connexions, mais elle est peu fiable pour deux raisons, la première est que la clé de chiffrement peut être facilement trouvée, la seconde est que comme son nom l indique ce mécanisme de chiffrement offre l équivalent d un réseau filaire de type Ethernet : tout équipement entré dans le réseau peut écouter les trafics venant des autres équipements. WPA (Wi-Fi Protected Access) offre des mécanismes de chiffrement plus robustes TKIP (Temporal Key Integrity Protocol) dans les premières versions et CCMP (Counter Cipher Mode with Block Chaining Message Authentication Code Protocol) pour la version WPA Il existe un mode entreprise, dans lequel l authentification des utilisateurs se fait par un serveur centralisé. La carte Wi-Fi ne prend pas en compte ce mode de fonctionnement. 19

10 2.4.2 Connexion à un point d accès Pour se connecter à un point d accès, la méthode begin de l objet WiFi est utilisée, suivant la nature du réseau, elle prend plus ou moins d arguments : WiFi.begin(ssid) où ssid est une chaîne de caractères contenant le nom d un réseau ouvert c est-à-dire sans mécanisme de chiffrement. WiFi.begin(ssid, keyindex, key) où keyindex est un entier indiquant l index de la clé WEP et key une chaîne de caractère contenant la séquence hexadécimale. WiFi.begin(ssid, key) où keyindex est un entier indiquant l index de la clé WEP et key une chaîne de caractère contenant la séquence hexadécimale. Le programme 2.4 permet de se connecter à un réseau Wi-Fi protégé par WPA. Une fois connecté, il affiche periodiquement la force du signal. 1 / c r e a t e d 13 J u l y 2010 by d l f ( Metodo2 s r l ) 2 m o d i f i e d 31 May 2012 by Tom Igoe / 3 # i n c l u d e <SPI. h> 4 # i n c l u d e <WiFi. h> 5 6 c h a r s s i d [ ] = MyPlace ; / / your network SSID ( name ) 7 c h a r p a s s [ ] = ; / / your network password 8 i n t s t a t u s = WL IDLE STATUS ; / / t h e Wifi r a d i o s s t a t u s 9 10 void setup ( ) { / / I n i t i a l i z e s e r i a l and w a i t f o r p o r t t o open : 11 b y t e b s s i d [ 6 ] ; S e r i a l. b e g i n ( ) ; 14 w h i l e (! S e r i a l ) {} i f ( WiFi. s t a t u s ( ) == WL NO SHIELD ) { 17 S e r i a l. p r i n t l n ( WiFi s h i e l d n o t p r e s e n t ) ; 18 w h i l e ( t r u e ) ; 19 } w h i l e ( s t a t u s!= WL CONNECTED) { 22 S e r i a l. p r i n t ( A t t e m p t i n g t o c o n n e c t t o WPA SSID : ) ; 23 S e r i a l. p r i n t l n ( s s i d ) ; / / Connect t o WPA/WPA2 network : 24 s t a t u s = WiFi. b e g i n ( s s i d, p a s s ) ; 25 d e l a y ( ) ; / / w a i t 10 s e c o n d s f o r c o n n e c t i o n : 26 } S e r i a l. p r i n t ( You r e c o n n e c t e d t o t h e network ) ; WiFi. BSSID ( b s s i d ) ; 31 S e r i a l. p r i n t ( BSSID : ) ; 32 S e r i a l. p r i n t ( b s s i d [ 5 ],HEX ) ; S e r i a l. p r i n t ( : ) ; 33 S e r i a l. p r i n t ( b s s i d [ 4 ],HEX ) ; S e r i a l. p r i n t ( : ) ; 34 S e r i a l. p r i n t ( b s s i d [ 3 ],HEX ) ; S e r i a l. p r i n t ( : ) ; 35 S e r i a l. p r i n t ( b s s i d [ 2 ],HEX ) ; S e r i a l. p r i n t ( : ) ; 36 S e r i a l. p r i n t ( b s s i d [ 1 ],HEX ) ; S e r i a l. p r i n t ( : ) ; 37 S e r i a l. p r i n t l n ( b s s i d [ 0 ],HEX ) ; 38 } 39 20

11 40 void loop ( ) { 41 p r i n t C u r r e n t N e t ( ) ; 42 d e l a y ( ) ; 43 } void p r i n t C u r r e n t N e t ( ) { / / p r i n t t h e r e c e i v e d s i g n a l s t r e n g t h : 46 long r s s i = WiFi. RSSI ( ) ; 47 S e r i a l. p r i n t ( s i g n a l s t r e n g t h ( RSSI ) : ) ; S e r i a l. p r i n t l n ( r s s i ) ; 48 } Listing 2.4 Connexion à un réseau Wi-Fi WPA 2.5 Comprendre IPv4 Au dessus du niveau 2, se trouve la couche IP. Il existe actuellement deux versions du protocole. L historique et la plus déployée est IPv4, mais la taille des adresses utilisées est trop petite et l espace d adressage sera bientôt saturé. Pour faire face à la pénurie, l IETF (Internet Engineering Task Force) travaille depuis une vingtaine d années sur un successeur, appelé IPv6, qui reprend les principes qui ont fait le succès d IPv4. Mais cette version peine à se déployer car la plupart des contenus se trouve encore uniquement accessible en IPv4. Pour l Internet des Objets, IPv6 offre plus de potentiel qu IPv4 grâce à une capacité d adresse quasi-illimitée et aux mécanismes d auto-configuration, mais dans une première approche nous nous intéresserons qu au protocole IPv4 puisqu il est le seul disponible pour les cartes Wi-Fi et Ethernet. Nous aborderons IPv6 dans le chapitre consacré à XBee, et un certain nombre de principes vu pour IPv4 seront conservés L adressage IPv4 Si le format d adresses est resté le même depuis la création du protocole en 1983, la manière de gérer l affectation des adresses a évoluée au cours de temps. Une adresse IPv4 est un mot de 32 bits. Pour simplifier la représentation, on utilise une notation utilisant 4 mots de 8 bits séparés par un point. préfixe identifiant d interface /21 FIGURE 2.4 Adresse IPv4 Dans les faits une adresse est divisée en 2 parties, une partie préfixe qui sert au routage et une partie identifiant d interface qui sert à repérer la machine sur le dernier lien. La 21

12 frontière entre ces deux parties varie d un réseau à un autre et est fixée par l ingénieur réseau en fonction du nombre de réseaux dont il a besoin et du nombre de machines qu il veut y placer. Toutes les machines sur un même réseau partage la même valeur de préfixe (et par conséquent la même longueur), par contre l identifiant d interface doit être unique. Comme il est impossible connaître la longueur du préfixe en lisant une adresse IPv4, cette information est indiquée après un /. La représentation d une adresse en décimal n aide pas à la lecture de la valeur du préfixe, ainsi sur l exemple figure 2.4 page précédente, le préfixe est /21. Pour le calculer, il faut mettre tous les bits de l identifiant d interface à 0. Comme les adresses sont de taille fixe, il n est pas nécessaire de représenter les octets à 0 situés à droite, le préfixe peut aussi se noter : /21 Cette représentation permet de rendre l adressage hiérarchique, ainsi si une société se voit attribuer le préfixe /21, elle peut assigner 8 préfixes de longueur 24 pour ses réseaux en interne. De même un opérateur peut représenter l ensemble de ses clients par un préfixe plus court, par exemple, /16. L identifiant d interface peut prendre toutes les valeurs possibles, sauf celles ou : tous les bits sont à 0 puisque ceci est la représentation d un préfixe tous les bits sont à 1 car cela correspond à l adresse de diffusion pour joindre l ensemble des machines connectées au réseau. Historiquement, la notion de longueur de préfixe était définie par un netmask. Comme son nom l indique, il s agissait de masquer la partie préfixe (net) de l identifiant d interface, en définissant un mot de la longueur de l adresse (32 bits) où les bits à 1 indiquaient un bit de préfixe dans l adresse et un bit à 0 un bit d identifiant d interface. Même si cela était théoriquement possible, la zone où les bits était à 1 devaient être contigüe. Par exemple, le netmask correspondant à un préfixe de longueur 24 est car 255 s écrit en binaire Le concept de netmask est plus difficile à manier que la longueur de préfixe, ainsi le netmask correspondant au préfixe de longueur 21 de notre exemple est Plan d adressage ADSL Wi-Fi SSID : Chezmoi box 1 câble Ethernet commutateur câble Ethernet Wi-Fi SSID : Test 5PC2 6PC3 4PC1 routeur 2 3 7PC4 câble Ethernet DHCP Réseau /24 Réseau /24 FIGURE 2.5 Topologie IP 22

13 La figure 2.5 page ci-contre représente schématiquement un réseau un peu plus complexe que ce que l on retrouve habituellement dans une maison. Ce réseau se compose d un routeur d accès connecté au réseau d opérateur (appelé en France Box). Elle peut être vu comme un routeur avec dans la maisons des ports Ethernet et un réseau Wi-Fi. L interconnexion entre le réseau Ethernet et le Wi-Fi est faite au niveau 2, c est-à-dire qu au niveau IP il s agit d un même réseau. Le commutateur, qui dans cet exemple, a été connecté à la box est également de niveau 2, donc tous les éléments qui y sont connectés appartiendront également à ce réseau. Pour connecter les équipements, l IETF propose, dans le document RFC1819 5, 3 plans d adressages privés (10/8, /12, /16). Ces préfixes sont utilisables librement et ils ne rentrent pas en conflit avec des préfixes officiellement attribués à d autres site. En contre partie, le trafic ne peut pas sortir du site avec ces adresses. On suppose que la box de l opérateur est configurée pour utiliser le préfixe /16. La box peut affecter au réseau Wi-Fi et Ethernet le préfixe /24. Ainsi le PC1 pourra avoir l adresse /24 et le PC2 l adresse /24. Le routeur sera également vu comme un équipement et pourra avoir l adresse /24. La box qui aura aussi une adresse en interne pour se connecter au réseau peut prendre la valeur /24 Le routeur va définir un second réseau auquel est connecte le réseaux Wi-Fi et ses propres ports Ethernet. L administrateur peut utiliser le préfixe /24. Le PC3 aura l adresse /24 et le PC /24. L adresse interne assignée à ce réseau sera / DHCP L utilisation du protocole DHCP Dynamic Host Configuration Protocol est la méthode la plus simple pour affecter les paramètres nécessaires pour qu un nœud puisse s insérer dans le réseau. Le programme 2.5 montre comment configurer le port Ethernet d un Arduino. 1 # i n c l u d e <SPI. h> 2 # i n c l u d e <E t h e r n e t. h> 3 4 b y t e mac [ ] = { 0x90, 0xA2, 0xDA, 0x0D, 0x6F, 0x30 } ; 5 6 void setup ( ) 7 { 8 S e r i a l. b e g i n ( ) ; 9 10 E t h e r n e t. b e g i n ( mac ) ; S e r i a l. p r i n t ( IP a d d r e s s : ) ; S e r i a l. p r i n t l n ( E t h e r n e t. l o c a l I P ( ) ) ; 13 S e r i a l. p r i n t ( netmas : ) ; S e r i a l. p r i n t l n ( E t h e r n e t. subnetmask ( ) ) ; 14 S e r i a l. p r i n t ( D e f a u l t r o u t e r : ) ; S e r i a l. p r i n t l n ( E t h e r n e t. gatewayip ( ) ) ; 15 S e r i a l. p r i n t ( DNS s e r v e r : ) ; S e r i a l. p r i n t l n ( E t h e r n e t. d n s S e r v e r I P ( ) ) ; 16 } void loop ( ) {}

14 Listing 2.5 Récupération des paramètres via DHCP Comme nous l avons indiqué précédemment, les cartes Ethernet des Arduino n ont pas d adresse MAC stockée dans leur ROM. Il est essentiel, ligne 4, de bien préciser l adresse MAC de l Arduino. En effet DHCP si deux équipements font une requête avec la même adresse MAC, le serveur DHCP retournera la même adresse IP. Ligne 10, la méthode begin permet d assigner l adresse MAC à la carte et comme aucun n autre paramètre n est précisé, la carte Ethernet va dérouler le protocole DHCP pour récupérer les paramètres. les lignes 12 à 15 permettent d afficher les résultats. Le résultat obtenu sur le port console est le suivant : IP a d d r e s s : netmask : D e f a u l t r o u t e r : DNS s e r v e r : le serveur DHCP a attribué l adresse IP /24 puisque le netmask est Le routeur par défaut, c est-à-dire le routeur vers lequel sera envoyé le trafic qui n est pas à destination du préfixe de l Arduino ( /24, est C est également l adresse du résolveur DNS, c est-à-dire l équipement qui pourra transformer un nom de machine du genre en adresse IP. Exemple de trafic Un analyseur réseau sur l ordinateur, comme wireshark 6 ou tcpdump 7, placé sur le réseau Ethernet permet de voir le trafic engendré pour l attribution des paramètres par DHCP. E t h e r n e t I I, Src : GheoSa 0d : 6 f : 3 0 ( 9 0 : a2 : da : 0 d : 6 f : 3 0 ), Dst : B r o a d c a s t ( f f : f f : f f : f f : f f : f f ) Type : IP (0 x0800 ) I n t e r n e t P r o t o c o l, Src : ( ), Dst : ( ) User Datagram Protocol, Src Port : bootpc ( 6 8 ), Dst Port : bootps ( 67) B o o t s t r a p P r o t o c o l Transaction ID : 0x C l i e n t IP a d d r e s s : ( ) Your ( c l i e n t ) IP a d d r e s s : ( ) Next s e r v e r IP a d d r e s s : ( ) Relay a g e n t IP a d d r e s s : ( ) C l i e n t MAC a d d r e s s : GheoSa 0d : 6 f : 3 0 ( 9 0 : a2 : da : 0 d : 6 f : 3 0 ) C l i e n t hardware a d d r e s s padding : S e r v e r h o s t name n o t g i v e n Boot f i l e name n o t g i v e n Magic cookie : DHCP Option : ( t =53, l =1) DHCP Message Type = DHCP D i s c o v e r Option : ( t =61, l =7) C l i e n t i d e n t i f i e r Value : 0190 a2da0d6f30 Hardware t y p e : E t h e r n e t Option : ( t =12, l =12) Host Name = WIZnet0D6F30 Option : ( t =55, l =6) P a r a m e t e r Request L i s t Option : ( 55) Parameter Request L i s t Length : 6 Value : f3a3b 1 = Subnet Mask 3 = R o u ter 6 = Domain Name S e r v e r 15 = Domain Name 58 = Renewal Time Value 59 = Rebinding Time Value End Option Comme il peut exister plusieurs serveurs DHCP dans un réseau, l Arduino va envoyer une requête DISCOVER en diffusion sur le réseau local

15 Au niveau Ethernet, on retrouve en adresse source l adresse qui a été configurée dans le programme 2.5 page 23. On peut remarquer que l analyseur à partir de l OUI identifie le fabriquant comme GheoSa. L adresse de destination est celle réservée à la diffusion généralisée (tout les bits sont à 1). Le champ type de la trame Ethernet indique le protocole de niveau supérieur ; 0x800 est la valeur désignant le protocole IPv4. Il est paradoxal d utiliser le protocole IP vue que l arduino ne dispose pas encore d adresse IP pour envoyer une requête DHCP. En fait comme le montre le listing, l adresse source est et l adresse de destination est c est-à-dire l ensemble des équipements du réseau local. Le protocole de niveau supérieur est UDP. UDP sert uniquement à identifier les applications. Dans ce cas spécial, les numéros de ports restent constants ; 67 pour le serveur et 68 pour le client DHCP. Le protocole DHCP est une extension du protocole bootstrap qui permet en particulier d allouer des adresses dynamiquement. Comme les adresses IP ne permettent pas d identifier l émetteur du message, un champ Transaction ID permet d identifier la transaction. Un certain nombre de champs permettent ensuite de transporter les adresses à allouer, dans notre cas elles sont toutes à Le champ Magic Coockie : DHCP indique les paramètres supplémentaires définis pour étendre le protocole bootstrap : le premier paramètre décrit le type de message DHCP, ici une découverte des serveurs DHCP présent sur le réseau. un identificateur du client qui est basé sur l adresse Ethernet MAC de l arduino. le nom de l équipement ; Arduino utilise le mot clé WIZnet auquel il concatène les 3 derniers octets de l adresse MAC. et finalement la liste des paramètres qu il attend du serveur en plus de l adresse IP (le netmask, le routeur par défaut, le résolveur DNS, le nom de domaine et la durée pendant laquelle l Arduino pourra garder l adresse attribuée). Les serveurs DHCP répondent, dans notre exemple, il n y en a qu un d où une seule réponse : E t h e r n e t I I, Src : Apple a9 : f7 : ac ( 0 0 : 2 3 : df : a9 : f7 : ac ), Dst : B r o a d c a s t ( f f : f f : f f : f f : f f : f f ) Type : IP (0 x0800 ) I n t e r n e t P r o t o c o l, Src : ( ), Dst : ( ) User Datagram Protocol, Src Port : bootps ( 6 7 ), Dst Port : bootpc ( 68) B o o t s t r a p P r o t o c o l Transaction ID : 0x C l i e n t IP a d d r e s s : ( ) Your ( c l i e n t ) IP a d d r e s s : ( ) Next s e r v e r IP a d d r e s s : ( ) Relay a g e n t IP a d d r e s s : ( ) C l i e n t MAC a d d r e s s : GheoSa 0d : 6 f : 3 0 ( 9 0 : a2 : da : 0 d : 6 f : 3 0 ) C l i e n t hardware a d d r e s s padding : Server host name : coba. lan Boot f i l e name n o t g i v e n Magic cookie : DHCP Option : ( t =53, l =1) DHCP Message Type = DHCP O f f e r Option : ( t =54, l =4) DHCP S e r v e r I d e n t i f i e r = Option : ( t =51, l =4) IP Address Lease Time = 23 hours, 45 minutes, 36 seconds Option : ( t =1, l =4) Subnet Mask = Option : ( t =3, l =4) Router = Option : ( t =6, l =4) Domain Name Server = Option : ( t =15, l =3) Domain Name = l a n End Option Les niveaux 2 à 4 ne changent fondamentalement par rapport à la précédente trame. On peut remarquer que l émetteur de la trame Ethernet est le serveur DHCP et qu il a mis son adresse comme adresse source du paquet IP ( ). Au niveau DHCP, il répond montrant les paramètres qu il offre (OFFER) : Dans le corps du message l adresse IP qui pourra être affecté à l Arduino : et dans les options : la durée du bail (Lease Time), précisemment 23 heures 45 minutes et 36 secondes, le netmask associé à l adresse précédente , 25

16 le routeur par défaut On peut remarquer que le serveur DHCP est localisé sur le routeur, le résolveur DNS qui est également sur le routeur, le nom du domaine lan. Le nom de l équipement sera donc WIZnet0D6F30.lan. Le client a reçu toutes les offres, il sélectionne celle qui lui convient le mieux, dans notre cas, il n a pas trop le choix : E t h e r n e t I I, Src : GheoSa 0d : 6 f : 3 0 ( 9 0 : a2 : da : 0 d : 6 f : 3 0 ), Dst : B r o a d c a s t ( f f : f f : f f : f f : f f : f f ) Type : IP (0 x0800 ) I n t e r n e t P r o t o c o l, Src : ( ), Dst : ( ) User Datagram Protocol, Src Port : bootpc ( 6 8 ), Dst Port : bootps ( 67) B o o t s t r a p P r o t o c o l Transaction ID : 0x C l i e n t IP a d d r e s s : ( ) Your ( c l i e n t ) IP a d d r e s s : ( ) Next s e r v e r IP a d d r e s s : ( ) Relay a g e n t IP a d d r e s s : ( ) C l i e n t MAC a d d r e s s : GheoSa 0d : 6 f : 3 0 ( 9 0 : a2 : da : 0 d : 6 f : 3 0 ) C l i e n t hardware a d d r e s s padding : S e r v e r h o s t name n o t g i v e n Boot f i l e name n o t g i v e n Magic cookie : DHCP Option : ( t =53, l =1) DHCP Message Type = DHCP Request Option : ( t =61, l =7) C l i e n t i d e n t i f i e r Value : 0190 a2da0d6f30 Hardware t y p e : E t h e r n e t Option : ( t =12, l =12) Host Name = WIZnet0D6F30 Option : ( t =50, l =4) Requested IP Address = Option : ( t =54, l =4) DHCP S e r v e r I d e n t i f i e r = Option : ( t =55, l =6) P a r a m e t e r Request L i s t Option : ( 55) Parameter Request L i s t Length : 6 Value : f3a3b 1 = Subnet Mask 3 = R o u ter 6 = Domain Name S e r v e r 15 = Domain Name 58 = Renewal Time Value 59 = Rebinding Time Value End Option Dans les options, on peut voir qu il a sélectionné le serveur DHCP et qu il lui demande officiellement les paramètres. Le serveur acquitte la demande. L adresse sera attribuée pour un peu moins qu une journée. Il faudra que l arduino renouvelle se demande pour ne pas qu après ce laps de temps cette adresse soit attribuée à un autre équipement E t h e r n e t I I, Src : Apple a9 : f7 : ac ( 0 0 : 2 3 : df : a9 : f7 : ac ), Dst : B r o a d c a s t ( f f : f f : f f : f f : f f : f f ) Type : IP (0 x0800 ) I n t e r n e t P r o t o c o l, Src : ( ), Dst : ( ) User Datagram Protocol, Src Port : bootps ( 6 7 ), Dst Port : bootpc ( 68) B o o t s t r a p P r o t o c o l Transaction ID : 0x C l i e n t IP a d d r e s s : ( ) Your ( c l i e n t ) IP a d d r e s s : ( ) Next s e r v e r IP a d d r e s s : ( ) Relay a g e n t IP a d d r e s s : ( ) C l i e n t MAC a d d r e s s : GheoSa 0d : 6 f : 3 0 ( 9 0 : a2 : da : 0 d : 6 f : 3 0 ) C l i e n t hardware a d d r e s s padding : Server host name : coba. lan Boot f i l e name n o t g i v e n Magic cookie : DHCP Option : ( t =53, l =1) DHCP Message Type = DHCP ACK Option : ( t =54, l =4) DHCP S e r v e r I d e n t i f i e r = Option : ( t =51, l =4) IP Address Lease Time = 23 hours, 45 minutes, 36 seconds Option : ( t =1, l =4) Subnet Mask = Option : ( t =3, l =4) Router = Option : ( t =6, l =4) Domain Name Server = Option : ( t =15, l =3) Domain Name = l a n End Option La figure 2.6 page suivante représente graphiquement l échange précédent. 2.6 Trafic TCP Nous allons étudier le fonctionnement en mode client/serveur de TCP. Une première définition d un serveur est un équipement qui attend des connexions venant de clients qui 26

17 WIZnet0D6F30 WIZnetaaaaaa WIZnetbbbbbb WIZnetcccccc DHCP Serveur OFFER DISCOVER REQUEST ACK FIGURE 2.6 Echange DHCP les initient Mise en place d un serveur apache Nous allons utiliser une machine Lunix Ubuntu chez un hébergeur, du type KimSufi d OVH. La premère étape est d installer un serveur Apache sur cette machine. Apache est le serveur Web le plus populaire, pour l installer sur une machine Linux, il suffit de taper : 1 >sudo apt-get install apache2 2 [sudo] password for toutain: 3 Reading package lists... Done 4 Building dependency tree 5 Reading state information... Done 6 The following NEW packages will be installed: 7 apache2 8 0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. 9 Need to get 0 B/1,492 B of archives. 10 After this operation, 29.7 kb of additional disk space will be used. 11 Selecting previously unselected package apache2. 12 (Reading database files and directories currently installed.) 13 Unpacking apache2 (from.../apache2_ ubuntu1.3_amd64.deb) Setting up apache2 ( ubuntu1.3)... En se connectant via un navigateur sur le serveur ainsi créé, nous avons la page représentée figure 2.7 page suivante. Noter l adresse IP de votre serveur en tapant la commande ifconfig eth >sudo ifconfig eth0 2 eth0 Link encap:ethernet HWaddr 00:22:4d:86:84:8a 3 inet addr: Bcast: Mask: inet6 addr: fe80::222:4dff:fe86:848a/64 Scope:Link 5 inet6 addr: 2001:41d0:8:bcc4::1/64 Scope:Global 6 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 7 RX packets: errors:0 dropped:0 overruns:0 frame:0 8 TX packets: errors:0 dropped:0 overruns:0 carrier:0 9 collisions:0 txqueuelen: Vous pouvez devoir être super-utilisateur pour lancer cette commande 27

18 FIGURE 2.7 Page par défaut du server web 10 RX bytes: (1.1 GB) TX bytes: (461.2 MB) 11 Interrupt:16 Memory: La ligne inet donne l adresse IP du serveur, ici Mise en place du client Arduino Nous allons poursuivre l écriture du programme 2.5 page 23 qui ne faisait que demander une adresse IP. Le programme 2.6 va ouvrir une connexion avec le serveur et afficher le résultat de la requête. 1 # i n c l u d e <SPI. h> 2 # i n c l u d e <E t h e r n e t. h> 3 4 b y t e mac [ ] = { 0x90, 0xA2, 0xDA, 0x0D, 0x6F, 0x30 } ; 5 6 E t h e r n e t C l i e n t c l i e n t ; 7 IPAddress i p ( 5, 1 3 5, 1 8 1, ) ; 8 9 void setup ( ) 10 { 11 S e r i a l. b e g i n ( ) ; E t h e r n e t. b e g i n ( mac ) ; S e r i a l. p r i n t ( IP a d d r e s s : ) ; S e r i a l. p r i n t l n ( E t h e r n e t. l o c a l I P ( ) ) ; 16 S e r i a l. p r i n t ( netmask : ) ; S e r i a l. p r i n t l n ( E t h e r n e t. subnetmask ( ) ) ; 17 S e r i a l. p r i n t ( D e f a u l t r o u t e r : ) ; S e r i a l. p r i n t l n ( E t h e r n e t. gatewayip ( ) ) ; 18 S e r i a l. p r i n t ( DNS s e r v e r : ) ; S e r i a l. p r i n t l n ( E t h e r n e t. d n s S e r v e r I P ( ) ) ; d e l a y ( ) ; 28

19 21 22 S e r i a l. p r i n t l n ( c o n n e c t i n g... ) ; i f ( c l i e n t. c o n n e c t ( ip, 8 0 ) ) { 25 S e r i a l. p r i n t l n ( c o n n e c t e d ) ; 26 c l i e n t. p r i n t l n ( GET / HTTP / 1. 0 ) ; 27 c l i e n t. p r i n t l n ( ) ; 28 } e l s e { 29 S e r i a l. p r i n t l n ( c o n n e c t i o n f a i l e d ) ; 30 } 31 } void loop ( ) { 35 i f ( c l i e n t. a v a i l a b l e ( ) ) { 36 c h a r c = c l i e n t. r e a d ( ) ; 37 S e r i a l. p r i n t ( c ) ; 38 } i f (! c l i e n t. c o n n e c t e d ( ) ) { 41 S e r i a l. p r i n t l n ( ) ; 42 S e r i a l. p r i n t l n ( d i s c o n n e c t i n g. ) ; 43 c l i e n t. s t o p ( ) ; 44 f o r ( ; ; ) 45 ; 46 } } Listing 2.6 Client HTTP Ligne 6, un objet client de la classe EthernetClient 9 est déclaré. Ligne 7, un objet ip de la classe IPAddress est déclaré, il est vu comme un tableau de 4 entiers, il est initialisé avec les octets de l adresse IP du serveur web installé au paragraphe précédent. Comme il s agit d une structure de données, et non pas d une adresse IP, les octets sont séparés par des virgules. Ligne 22 commence par l envoi d un message de trace sur la liaison série indiquant la phase d initialisation. Ligne 24, la méthode connect de l objet client permet une ouverture de connexion vers l adresse IP précédemment indiquée et sur le port 80 qui correspond au protocole HTTP (Hypertext Transfer Protocol) utilisé par le serveur Web 10. Si la connexion est un succès, le programme envoie la commande HTTP GET / HTTP1.0 (ligne 26) qui demande au serveur Web d envoyer la ressource située à la racine du serveur en utilisant la version 1.0 du protocole. En cas d échec de la connexion, un message d erreur est retourné (ligne 29). La boucle (loop), à partir de la ligne 34, va permettre d afficher le texte retourné par le serveur. Deux états vont être utilisés : la méthode client.available() (ligne 35) indique le nombre d octets disponibles à la lecture. Ils sont lus et affichés sur le port série un par un par le 9. WifiClient en cas d utilisation du module Wi-Fi. 10. Elle aurait pu être remplacée par client.connect("ks.touta.in", 80) où "ks.touta.in" correspond au nom de la machine, dans ce cas le résolveur DNS aurait été appelé. 29

20 programme. la méthode client.connected() (ligne 40) indique si la connexion est toujours établie avec le serveur. Dans le cas, on elle ne l est plus, le programme client libère les ressources locales utilisées pour gérer cette connexion grâce à la méthode client.stop() (ligne 43). En exécutant le programme on obtient le résultat donné au listing IP a d d r e s s : netmask : D e f a u l t r o u t e r : DNS s e r v e r : c o n n e c t i n g... 6 c o n n e c t e d 7 HTTP / OK 8 Date : F r i, 26 Apr : 5 4 : 5 0 GMT 9 S e r v e r : Apache / ( Ubuntu ) 10 Last Modified : Sat, 20 Apr : 3 0 : 0 7 GMT 11 ETag : 201 ce b1 4d a c b a c 1 f a f Accept Ranges : b y t e s 13 Content Length : Vary : Accept Encoding 15 C o n n e c t i o n : c l o s e 16 Content Type : t e x t / html <html><body><h1> I t works! </ h1> 19 <p>this i s t h e d e f a u l t web page f o r t h i s s e r v e r. </ p> 20 <p>the web s e r v e r s o f t w a r e i s r u n n i n g b u t no c o n t e n t has been added, y e t. </ p> 21 </ body ></ html> d i s c o n n e c t i n g. Listing 2.7 Résultat de l interrogation du serveur Web La réponse du serveur commence ligne 7 où est donné le status de la requête : la version du protocole utilisé est HTTP/1.1. La valeur 200 indique que le serveur a accepté la demande, cette valeur est normalisée et peut être interprétée par les applications clientes, pour les humains, le status est aussi indiqué par OK. Les lignes qui suivent contiennent les champs de l en-tête HTTP qui se termine par une ligne vide (ligne 17). Ensuite de la ligne 18 à 22 viennent les données. Ces données sont structurées suivante le protocole HTML (HyperText Markup Language) comme indiqué ligne 16 dans le champ Content-Type de l en-tête. Un document HTML est structuré par des balises de la forme <balise>... </balise>. Ici tout le document est sous la balise <html> puis sous celle de <body>. la balise <h1> permet d afficher un texte en grand et les balises <p> permettent de délimiter les paragraphes Analyse du trafic Les échanges suivants ont eu lieu sur le câble Ethernet, après l échange DHCP étudié précédemment. 30

21 E t h e r n e t I I, Src : GheoSa 0d : 6 f : 3 0 ( 9 0 : a2 : da : 0 d : 6 f : 3 0 ), Dst : B r o a d c a s t ( f f : f f : f f : f f : f f : f f ) Type : ARP (0 x0806 ) Address R e s o l u t i o n P r o t o c o l ( r e q u e s t ) Hardware type : Ethernet (0 x0001 ) Protocol type : IP (0 x0800 ) Hardware s i z e : 6 P r o t o c o l s i z e : 4 Opcode : request (0 x0001 ) [ I s g r a t u i t o u s : F a l s e ] Sender MAC a d d r e s s : GheoSa 0d : 6 f : 3 0 ( 9 0 : a2 : da : 0 d : 6 f : 3 0 ) Sender IP address : ( ) T a r g e t MAC a d d r e s s : 0 0 : 0 0 : : 0 0 : 0 0 ( 0 0 : 0 0 : 0 0 : 0 0 : 0 0 : 0 0 ) T a r g e t IP a d d r e s s : ( ) L Arduino envoie une requête ARP (Address Resolution Protocol). Il recherche l adresse MAC du routeur ( ) pour lui envoyer les paquets à destination du serveur Web. En effet, comme la destination ne partage pas le préfixe de la source, l utilisation du routeur par défaut configuré par DHCP s impose. E t h e r n e t I I, Src : Apple a9 : f7 : ac ( 0 0 : 2 3 : df : a9 : f7 : ac ), Dst : GheoSa 0d : 6 f : 3 0 ( 9 0 : a2 : da : 0 d : 6 f : 3 0 ) Type : ARP (0 x0806 ) Address R e s o l u t i o n P r o t o c o l ( r e p l y ) Hardware type : Ethernet (0 x0001 ) Protocol type : IP (0 x0800 ) Hardware s i z e : 6 P r o t o c o l s i z e : 4 Opcode : reply (0 x0002 ) [ I s g r a t u i t o u s : F a l s e ] Sender MAC a d d r e s s : Apple a9 : f7 : ac ( 0 0 : 2 3 : df : a9 : f7 : ac ) Sender IP a d d r e s s : ( ) T a r g e t MAC a d d r e s s : GheoSa 0d : 6 f : 3 0 ( 9 0 : a2 : da : 0 d : 6 f : 3 0 ) Target IP address : ( ) Le routeur retourne son adresse MAC (00:23:df:a9:f7:ac), l arduino la met dans une table pour éviter de faire cette requête à chaque envoi de paquet. Le client Arduino peut ouvrir la connexion avec le serveur Web. I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : 1025, Dst Port : h t t p ( 80), Seq : 0, Len : 0 Flags : 0x02 (SYN) L arduino envoie un message TCP avec un bit SYN mis à 1. Ce bit indique au serveur la volonté du client d ouvrir une connexion. Le client a choisi un numéro de port (1025) comme port source, designant localement l application qui ouvre la connexion, et envoi au port destination (80) qui correspond au protocole HTTP. I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : h t t p ( 80), Dst Port : 1025, Seq : 0, Ack : 1, Len : 0 Flags : 0x12 (SYN, ACK) Le serveur acquitte la demande d ouverture de connexion en envoyant un message TCP contenant les bits SYN et ACK positionnés. I n t e r n e t P r o t o c o l, Src : ( ), Dst : ( ) Transmission Control Protocol, Src Port : blackjack ( 1025), Dst Port : h t t p ( 80), Seq : 1, Ack : 1, Len : 0 Flags : 0x10 (ACK) Le client acquitte le message précédent en positionnant le bit ACK. A partir de ce moment, la connexion est ouverte sur le client, elle le sera sur le serveur quand il recevra ce message. Le transfert de données peut commencer. I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : 1025, Dst Port : h t t p ( 80), Seq : 1, Ack : 1, Len : 14 TCP segment data (14 bytes ) GET / HTTP / 1. 0 Le client envoie la requêtre HTTP I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : 1025, Dst Port : h t t p ( 80), Seq : 15, Ack : 1, Len : 1 TCP segment data (1 byte ) \ r pour le caractère de contrôle \r correspondant au retour chariot I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : 1025, Dst Port : h t t p ( 80), Seq : 16, Ack : 1, Len : 1 TCP segment d a t a (1 b y t e ) \n 31

22 et le caractère \n qui correspond à un saut de ligne. Ceci correspond à l envoi de caractère de la ligne 26 du programme 2.6 page 28. I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : 1025, Dst Port : h t t p ( 80), Seq : 17, Ack : 1, Len : 1 TCP segment data (1 byte ) \ r I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : 1025, Dst Port : h t t p ( 80), Seq : 18, Ack : 1, Len : 1 TCP segment d a t a (1 b y t e ) Encore un retour chariot - saut de ligne qui correspond à la ligne 27 du programme 2.6 page 28. Le serveur acquitte les données qu il a reçues. I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : h t t p ( 80), Dst Port : 1025, Seq : 1, Ack : 15, Len : 0 I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : h t t p ( 80), Dst Port : 1025, Seq : 1, Ack : 16, Len : 0 I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : h t t p ( 80), Dst Port : 1025, Seq : 1, Ack : 17, Len : 0 I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : h t t p ( 80), Dst Port : 1025, Seq : 1, Ack : 18, Len : 0 I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : h t t p ( 80), Dst Port : 1025, Seq : 1, Ack : 19, Len : 0 Pour chaque message TCP émis, un message d acquittement est retourné, comme on peut le voir avec l évolution du champ Ack. I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : h t t p ( 80), Dst Port : 1025, Seq : 1, Ack : 19, Len : 453 TCP segment data (453 bytes ) : HTTP / OK\r\n Date : Fri, 26 Apr : 2 5 : 2 9 GMT\r\n S e r v e r : Apache / ( Ubuntu )\ r\n Last Modified : Sat, 20 Apr :30:07 GMT\r\n ETag : 201 ce b1 4dacbac1faf34 \ r\n Accept Ranges : b y t e s \r\n Content Length : 177\ r\n [ Content length : 177] Vary : Accept Encoding\r\n Connection : c l o s e \r\n Content Type : t e x t / html\r\n \r\n <html><body><h1>i t works!</h1>\n <p>this i s t h e d e f a u l t web page f o r t h i s s e r v e r.</p>\n <p>the web server software i s running but no content has been added, yet.</p>\n </body></html>\n Le serveur envoie la réponse correspondant à la requête GET. On retrouve le texte qui avait été affiché par l arduino (c.f. Listing 2.7 page 30). I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : h t t p ( 80), Dst Port : 1025, Seq : 454, Ack : 19, Len : 0 L arduino acquitte les données reçues. I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : h t t p ( 80), Dst Port : 1025, Seq : 454, Ack : 19, Len : 0 Header length : 20 bytes Flags : 0x11 ( FIN, ACK) I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : 1025, Dst Port : h t t p ( 80), Seq : 19, Ack : 455, Len : 0 Flags : 0x10 (ACK) I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : 1025, Dst Port : h t t p ( 80), Seq : 19, Ack : 455, Len : 0 Flags : 0x11 ( FIN, ACK) I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : h t t p ( 80), Dst Port : 1025, Seq : 455, Ack : 20, Len : 0 Flags : 0x10 (ACK) Le serveur met fin à la connexion en envoyant un paquet avec le bit FIN de positionné que l Arduino acquitte. Puis l Arduino envoie à son tour un paquet avec le bit FIN de 32

23 positionné que le serveur acquitte. A ce stade, la connexion est terminée et les ressources utilisées pour la contrôler sont libérées sur les deux équipements. La figure 2.8 retrace l échange. Le nombre de paquets échangés (21) pour ce simple échange est relativement important. Dans des mises en oeuvres plus complètes, des algorithmes auraient limité le nombre de paquets échangés, mais l implémentation dans la carte Ethernet du protocole TCP est limitée par la taille, ce qui pour effet d augmenter le nombre de paquets échangés. Client Serveur SYN SYN ACK ACK ACK : 15 ACK : 16 ACK : 17 ACK : 18 ACK : 19 GET / HTTP/1.0 \r \n \r \n HTTP/ OK... ACK : 454 FIN ACK FIN ACK ACK FIGURE 2.8 Diagramme temporel des échanges entre le client et le serveur Question 2 Relancer le programme 2.6 page 28 en supprimant le println vide ligne 27. Qu obtienton comme résultat? Au bout de combien de temps? Comment interpréter cette réponse? 2.7 Traduction d adresses Si l on regarde le trafic du coté du serveur, le premier paquet émis par le client pour ouvrir la connexion (paquet SYN), on trouve : I n t e r n e t P r o t o c o l, Src : , Dst : Transmission Control Protocol, Src Port : 50814, Dst Port : h t t p ( 80), Seq : 0, Len : 0 Flags : 0x02 (SYN) On remarque que l adresse IP source a été changée de à En effet le préfixe /16 est un préfixe privé et ne peut donc être utilisé dans le 33

24 réseau du site (domicile, entreprise) et ne doit pas être vu à l extérieur sur Internet. Si l on reprend le schéma figure 2.5 page 22, l opérateur va fournir à la box une adresse IP publique, la box offrira une fonction de traduction et changera l adresse privée en adresse publique. Mais cela ne suffit pas de changer d adresse car cela risque de créer des ambiguités. Toujours sur le schéma figure 2.5 page 22, supposons que PC1 et PC2 aillent sur le même serveur Web. En IP on identifie un flux à partir de 5 valeurs tirées des paquets : F lux =< adresse source, adresse destination, port source, port destination, proto > Dans notre exemple on aura : F lux 1 =< , IP serveur, P S 1, 80, T CP > F lux 1 =< , IP serveur, P S 2, 80, T CP > Il n y a pas d ambiguïtés car même si les numéros de ports sont identique (P S 1 = P S 2 ) les adresses IP étant différentes, les flux sont bien identifiés. Le choix des numéros de ports source étant local au client, il se peut que deux machines choisissent le même. Or après la phase de traduction d adresse, les adresses sources deviendront les mêmes. Pour éviter que l on ne puisse plus identifier les flux, le NAT devra veiller à l unicité des numéros de ports. On peut noter que dans la trace précédente, le numéro de port source est passé de 1025 à En fait le numéro de port devient, en quelque sorte, l identifiant du flux localement. Le NAT va associer aux numéros de ports extérieurs, les adresses et numéros de ports internes. De cette manière, quand un paquet revient, le NAT regarde le port destination et peut le remplacer, ainsi que l adresse destination par les valeurs mémorisées. S il elle n existe dans aucun contexte associé à un numéro de port externe, une machine est inaccessible depuis l extérieur. En d autres termes les connexions entrantes (c est-à-dire à l initiative de machines situées sur Internet) sont bloquées, le NAT ne permet que les connexion sortantes à l initiative des machines situées sur le réseau privé. Cela donne un sentiment de sécurité, puiqu une machine n est accessible que pour des flux ayant déjà créés des contextes au niveau du NAT. Si on veut qu une machine, ou qu un serveur, soit accessible depuis l extérieur, deux possibilités s offrent : créer un contexte permanent sur le routeur d accès. Généralement, en se connectant sur la box via son interface web de configuration, il est possible de définir un port externe et d indiquer vers quel machine et quel port en interne le trafic devra être traduit et dirigé. Ainsi dans l exemple figure 2.5 page 22, si l on veut que PC4 offre un service web accessible depuis l extérieur, il faudra configurer le NAT pour que le trafic entrant avec le port 80 soit dirigé vers PC4, le port 80 pouvant être conservé. Si le site privé dispose de plusieurs serveurs web, ils devront être accessible depuis l extérieur sur un numéro de port différent. La création de contexte peut être automatisée par l utilisation de protocole comme UPnP (Universal Plug and Play) permettant aux applications d ouvrir des ports sur le NAT. Si cela simplifie la mise en œuvre, cela rend les machines plus vulnérables. 34

25 Définir une zone démilitarisée (DMZ : Demilitarized Zone. Ceci n est pas valable sur tous les équipements, mais le principe est simple, tout les paquets entrant dont le numéro de port destination n est pas dans le contexte du NAT seront dirigé vers un machine particulière. Evidemment cette machine est beaucoup plus sensible aux attaques vu qu elle peut être considérée comme directement connectée sur Internet. Un inconvénient du NAT est que l on change au niveau 3 d espace de nommage, mais que cela reste transparent pour les applications. Ainsi si une application envoie dans les données son adresse IP (par exemple, pour être jointe ultérieurement) le récepteur ne pourra pas la contacter car il peut s agir s une adresse privée. Une règle d ingénierie des protocoles pour être le plus transparent possible au NAT est de prendre l adresse IP contenue dans l en-tête du paquet et de ne pas envoyer l adresse dans les données. 2.8 Compteur distant Puisqu une des forces d Arduino est de pouvoir interagir avec le monde extérieur, nous allons écrire un programme qui enverra une requête HTTP vers un serveur quand un interrupteur sera activé relié à la broche A0. Nous allons utiliser sur le serveur un petit programme PHP qui compte le nombre de requêtes sur une page donnée (cf Listing 2.8). Ce programme est à mettre dans le répertoire où se trouvent les pages du serveur, typiquement /var/www sous Ubuntu. 1 <?php 2 $count my page = ( h i t c o u n t e r. t x t ) ; 3 $ h i t s = f i l e ( $count my page ) ; 4 $ h i t s [ 0 ] = $ h i t s [ 0 ] + 1 ; ; 5 $fp = fopen ( $count my page, w ) ; 6 f p u t s ( $fp, $ h i t s [ 0 ] ) ; 7 f c l o s e ( $fp ) ; 8 echo $ h i t s [ 0 ] ; 9?> Listing 2.8 Script PHP de comptage d accès aux pages Un script PHP commence par la séquence <?php (ligne 1) et se termine par?>. Ligne 2, le nom du fichier hitcounter.txt contenant la dernière valeur du compteur est stockée dans la variable $count my page. Ce fichier doit se trouver dans le même répertoire que le script et être accessible en lecture écriture pour le serveur web, typiquemet accessible pour l utilisateur www-data pour Ubuntu. Ligne 3, le contenu du fichier précédemment nommé est stocké dans la variable $hits. Comme ce fichier ne comporte qu un seul élément correspondant au nombre de requêtes, cette valeur sera accessible en utilisant le premier élément $hits[0]. La valeur est incrémentée ligne 4 puis le fichier est ouvert en lecture (ligne 5) et le résultat y est stocké (ligne 6) avant d être fermé (ligne 7). Ligne 8 le résultat est affiché, ce sera la réponse aux requêtes HTTP. Bien qu il reprenne une grande partie des concepts vu dans au programme 2.6 page 28, ce programme Arduino (cf. Listing 2.9 page suivante) est plus complexe car plusieurs 35

26 événements peuvent arriver simultanément, soit un changement d état de la broche A0, soit une réponse du serveur web distant. Pour gérer ce parallélisme d événements, une variable permettra de réagir en fonction des événements et de l état dans lequel se trouve le programme. Ainsi, 3 états peuvent être définis : 1. Attente que l utilisateur appuie sur l interrupteur. Quand cet événement est détecté, une connexion est établie avec le serveur et l on passe dans le deuxième état. 2. Attente que le serveur distant envoie la réponse. Tant que la connexion reste ouverte avec le serveur distant, le programme attend la réponse et l affiche. Lorsque la connexion se perd, le programme retourne dans l état 1 si l interrupteur n est plus appuyé ou dans l état 3 sinon. 3. Attente que l utilisateur relâche l interrupteur. Le programme reste dans cet état tant que l interrupteur est appuyé puis revient dans l état 1. La figure 2.9 représente l automate à états finis décrivant le programme. Les états sont représenté par des rectangles aux cotés arrondis. Les transitions par des flèches. Les événements qui vont déclencher les changements d état sont représentés en blanc sur fond noir avec les actions associées lors de ce changement d état. réponse du serveur Afficher le résultat sur le port série Attente que le serveur distant envoie la réponse fermeture de la connexion et Interrupteur appuyé libérer ressources Interrupteur appuyé ouvrir connexion avec le serveur, envoyer requête Attente que l utilisateur relâche l interrupteur fermeture de la connexion et Interrupteur relaché libérer ressources Attente que l utilisateur appuie sur l interrupteur Interrupteur relaché FIGURE 2.9 Automate à états finis représentant le programme # i n c l u d e <SPI. h> 2 # i n c l u d e <E t h e r n e t. h> 3 4 b y t e mac [ ] = { 0x90, 0xA2, 0xDA, 0x0D, 0x6F, 0x30 } ; 5 6 E t h e r n e t C l i e n t c l i e n t ; 7 8 c o n s t i n t a n a l o g I n P i n = A0 ; 9 10 enum C l i e n t S t a t e { waitup, waitdown, waitresp } CS ; void setup ( ) { 36

27 13 S e r i a l. b e g i n ( ) ; 14 E t h e r n e t. b e g i n ( mac ) ; 15 CS= waitup ; 16 } void loop ( ) { 19 i n t v a l u e = analogread ( a n a l o g I n P i n ) ; s w i t c h ( CS ) { 22 c a s e waitup : 23 S e r i a l. p r i n t ( v a l u e ) ; S e r i a l. p r i n t l n ( waitup ) ; i f ( v a l u e == 1023) { 26 i f ( c l i e n t. c o n n e c t ( ks. t o u t a. i n, 8 0 ) ) { 27 S e r i a l. p r i n t l n ( c o n n e c t e d ) ; 28 c l i e n t. p r i n t l n ( GET / compteur HTTP / 1. 0 ) ; 29 c l i e n t. p r i n t l n ( ) ; CS= waitresp ; } e l s e { 34 S e r i a l. p r i n t l n ( c o n n e c t i o n f a i l e d ) ; 35 } 36 } 37 b r e a k ; c a s e waitresp : 40 i f ( c l i e n t. a v a i l a b l e ( ) ) { 41 c h a r c = c l i e n t. r e a d ( ) ; 42 S e r i a l. p r i n t ( c ) ; 43 } i f (! c l i e n t. c o n n e c t e d ( ) ) { 46 S e r i a l. p r i n t l n ( d i s c o n n e c t i n g. ) ; 47 c l i e n t. s t o p ( ) ; i f ( v a l u e == 1023) CS = waitdown ; e l s e CS = waitup ; 50 } 51 b r e a k ; c a s e waitdown : 54 S e r i a l. p r i n t ( v a l u e ) ; S e r i a l. p r i n t l n ( waitdown ) ; 55 i f ( v a l u e < 1023) CS =waitup ; 56 b r e a k ; 57 } 58 } Listing 2.9 Appel de la page compteur Le programme commence comme le programme 2.6 page 28 en décrivant l adresse Ethernet et la création de l objet client. La ligne 8 crée l entier analoginpin et lui affecte la valeur A0. Cette variable permettra de lire l entrée analogique 0 et dira si l interrupteur est appuyé ou non. Pour décrire l automate, les différents états sont définis dans une structure enum dont CS contiendra une des trois valeurs possibles (ligne 10). Dans la procédure d initialisation, 37

28 CS sera mis dans l état d attente d un appuis de l interrupteur (ligne 15). Dans la boucle, la valeur de l entrée analogique A0 est lue. Cela correspond à une valeur comprise entre 0 (l entrée est à la masse) à 1023 (l entrée est connecté à une tension de 3.3 V). Quand l interrupteur est appuyé la valeur est donc de Ligne 21 commence le switch qui va permettre de décrire tous les états de l automate et dans chacune des entrées les événements seront testés. Lignes 22 à 37, l appuis sur l interrupteur est testé, si la valeur de l entrée passe à 1023 alors la connexion est ouverte avec le serveur et la requête est envoyée vers Le programme passe dans l état d attente de réponse. En cas d échec de la connexion, le programme reste dans le même état. Dans l état attente de données, si des données sont présentes, elles sont affichées (lignes 40 à 43), Si la connexion est coupée, l état de l entrée analogique est testée, si la valeur est de 1023 on passe dans l état waitdown sinon le programme revient dans l état waitup. Le listing suivant donne le résultat de l exécution du programme 2.9 page 36. Pour mieux montrer le fonctionnement de l automate, les états waitup et waitdown sont indiqués avec la valeur collectée sur la broche A waitup 460 waitup 458 waitup 463 waitup 1023 waitup c o n n e c t e d HTTP / OK Date : Sat, 04 May : 2 3 : 1 2 GMT S e r v e r : Apache / ( Ubuntu ) Content L o c a t i o n : compteur. php Vary : n e g o t i a t e, Accept Encoding TCN: c h o i c e X Powered By : PHP/ ubuntu3. 6 Content Length : 4 C o n n e c t i o n : c l o s e Content Type : t e x t / html 96 d i s c o n n e c t i n g waitdown waitdown 1015 waitdown 1011 waitup 1011 waitup 1006 waitup 998 waitup 993 waitup waitup c o n n e c t e d HTTP / OK 38

29 Date : Sat, 04 May : 2 3 : 1 8 GMT S e r v e r : Apache / ( Ubuntu ) Content L o c a t i o n : compteur. php Vary : n e g o t i a t e, Accept Encoding TCN: c h o i c e X Powered By : PHP/ ubuntu3. 6 Content Length : 4 C o n n e c t i o n : c l o s e Content Type : t e x t / html 97 d i s c o n n e c t i n g waitdown Thermomètre Traditionnellement, un programme pour Arduino doit pouvoir faire clignoter des LED. Nous avions pour le moment résisté, mais pour finir ce chapitre, nous allons écrire un programme plus complexe qui va allumer une LED d une certaine couleur en fonction de la température d un lieu. Pour se faire nous allons réaliser le montage représenté sur la photo figure FIGURE 2.10 Montage d un Arduino Ethernet Comme la lisibilité sur une photo est médiocre, il est préférable d utiliser une représentation schématique. Il existe une convention pour la représentation des fils électrique : le noir représente la masse, le rouge une tension continue. Les autres couleurs peuvent être utilisées sans contraintes. Ici elles sont en relation avec la couleur des LED. 39

30 Ethernet SCL SDA AREF GND Digital (PWM ) 3 2 T X 1 RX 0 ICSP RESET RX TX +5 GND USB power Power IOREF RESET 3.3V 5V GND GND Vin Analog IN A0 A1 A2 A3 A4 A5 FIGURE 2.11 Représentation schématique du montage 2.10 Ce montage représenté 2.11 ne comporte aucune difficulté particulière en particulier grâce à l utilisation d une plaque sans soudure (breadboard). L espacement permet de mettre des composants standards. Les connecteurs placées sur les deux rangées extérieures sont connectées horizontalement, ce qui permet d avoir une alimentation en courant continu et la masse. Les colonnes du milieu sont connectées verticalement. La seule difficulté du montage concerne la polarité des LED. Comme toutes diodes, elles ne laissent passer le courant que dans un sens. La figure 2.12 représente une LED, le pôle négatif (la cathode) peut être repéré par un plat sur la surface bombée, un connecteur plus court et en regardant en transparence par la plus grande partie intérieure. Dans notre cas, la cathode doit donc être connecté à la masse. Cathode (-) Anode (+) FIGURE 2.12 Format d une LED Pour connaître la température pour une ville donnée, nous allons utiliser les services de Yahoo!. La page web explique son fonctionnement. Il faut demander l URL 40

31 en précisant deux paramètres w=localisation et u=unité, où localisation est le code de la ville dont on veut connaître la météo. Pour obtenir facilement cet valeur, il suffit d aller sur la page weather.yahoo.com, de rentrer le nom d une ville et d analyser l URL retournée. Par exemple, pour Rennes, la valeur est , comme le montre la figure Les unités sont soit f pour Fahrenheit et c pour Celsius. FIGURE 2.13 Détermination du code de la ville Le résultat suivant est retourné par un navigateur quand l URL yahooapis.com/forecastrss?w=619163&u=c : 1 <r s s xmlns : y w e a t h e r = h t t p : / / xml. w e a t h e r. yahoo. com / ns / r s s / xmlns : geo= h t t p : / / www. w3. org / / 0 1 / geo / wgs84 pos # v e r s i o n = 2. 0 > 3 <channel> 4 <t i t l e >Yahoo! Weather Rennes, FR</ t i t l e > 5 <l i n k> 6 h t t p : / / us. rd. yahoo. com / d a i l y n e w s / r s s / w e a t h e r / Rennes FR / h t t p : / / w e a t h e r. yahoo. com / f o r e c a s t / FRXX0114 c. html 7 </ l i n k> 8 <description>yahoo! Weather for Rennes, FR</ description> 9 <language>en us </language> 10 <lastbuilddate>sat, 01 Jun :59 pm CEST</ lastbuilddate> 11 <t t l >60</ t t l > 12 <y w e a t h e r : l o c a t i o n c i t y = Rennes r e g i o n = c o u n t r y = F r a n c e /> 13 <y w e a t h e r : u n i t s t e m p e r a t u r e = C d i s t a n c e = km p r e s s u r e = mb speed = km / h /> 14 <y w e a t h e r : wind c h i l l = 17 d i r e c t i o n = 340 speed = /> 15 <y w e a t h e r : a t m o s p h e r e h u m i d i t y = 68 v i s i b i l i t y = p r e s s u r e = r i s i n g = 1 /> 16 <y w e a t h e r : astronomy s u n r i s e = 6:10 am s u n s e t = 9:57 pm /> 17 <image> 18 <t i t l e >Yahoo! Weather </ t i t l e > 19 <width >142</width> 20 <h e i g h t >18</h e i g h t> 21 <l i n k>h t t p : / / w e a t h e r. yahoo. com</ l i n k> 22 <u r l> 23 h t t p : / / l. yimg. com / a / i / brand / p u r p l e l o g o / / uh / us / news wea. g i f 24 </ u r l> 25 </image> 26 <item> 27 <t i t l e >C o n d i t i o n s f o r Rennes, FR a t 12:59 pm CEST</ t i t l e > 28 <geo : lat >48.11</geo : lat> 29 <geo : long > 1.68</geo : long> 30 <l i n k> 31 h t t p : / / us. rd. yahoo. com / d a i l y n e w s / r s s / w e a t h e r / Rennes FR / h t t p : / / w e a t h e r. yahoo. com / f o r e c a s t / FRXX0114 c. html 32 </ l i n k> 33 <pubdate>sat, 01 Jun :59 pm CEST</pubDate> 34 <yweather : condition t e x t = Mostly Cloudy code= 28 temp= 17 date= Sat, 01 Jun :59 pm CEST /> 35 <d e s c r i p t i o n > 36 <![CDATA[ 37 <img s r c = h t t p : / / l. yimg. com / a / i / us / we / 5 2 / 2 8. g i f /><br /> <b>c u r r e n t C o n d i t i o n s :</b><br /> Mostly Cloudy, 17 C 38 <BR /> 39 <BR /><b>forecast :</b><br /> Sat Mostly Sunny. High : 17 Low : 8<br /> 40 Sun P a r t l y Cloudy. High : 19 Low : 7<br /> <br /> 41 <a h r e f = h t t p : / / us. rd. yahoo. com / d a i l y n e w s / r s s / w e a t h e r / Rennes FR / h t t p : / / w e a t h e r. yahoo. com / f o r e c a s t / FRXX0114 c. html > 42 Full Forecast at Yahoo! Weather</a><BR/><BR/> ( provided by <a href = h t t p : / / www. weather. com >The Weather Channel </a>) 43 <br/> 44 ]]> 45 </ d e s c r i p t i o n > 46 <y w e a t h e r : f o r e c a s t day= S a t d a t e = 1 Jun 2013 low= 8 h igh = 17 t e x t = Mostly Sunny code= 34 /> 47 <y w e a t h e r : f o r e c a s t day= Sun d a t e = 2 Jun 2013 low= 7 h igh = 19 t e x t = P a r t l y Cloudy code= 30 /> 48 <guid ispermalink= f a l s e >FRXX CEST</guid> 49 </item> 50 </channel> 41

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP Résolution d adresses et autoconfiguration Les protocoles ARP, RARP, TFTP, BOOTP, DHCP Le protocole ARP (Address Resolution Protocol) Se trouve au niveau de la couche réseau Interrogé par le protocole

Plus en détail

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage: Administration d un Intranet Rappel: Le routage dans Internet La décision dans IP du routage: - Table de routage: Adresse destination (partie réseau), netmask, adresse routeur voisin Déterminer un plan

Plus en détail

Configuration automatique

Configuration automatique Configuration automatique (C:\Documents and Settings\bcousin\Mes documents\enseignement\res (UE18)\14.DHCP.fm- 25 janvier 2009 13:22) PLAN Introduction Les principes de DHCP Le protocole DHCP Conclusion

Plus en détail

L3 informatique Réseaux : Configuration d une interface réseau

L3 informatique Réseaux : Configuration d une interface réseau L3 informatique Réseaux : Configuration d une interface réseau Sovanna Tan Septembre 2009 Révision septembre 2012 1/23 Sovanna Tan Configuration d une interface réseau Plan 1 Introduction aux réseaux 2

Plus en détail

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free. 2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement

Plus en détail

DHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013

DHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013 DHCP et NAT Cyril Rabat cyril.rabat@univ-reims.fr Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 22-23 Cours n 9 Présentation des protocoles BOOTP et DHCP Présentation du NAT Version

Plus en détail

Introduction. Adresses

Introduction. Adresses Architecture TCP/IP Introduction ITC7-2: Cours IP ESIREM Infotronique Olivier Togni, LE2I (038039)3887 olivier.togni@u-bourgogne.fr 27 février 2008 L Internet est basé sur l architecture TCP/IP du nom

Plus en détail

Configuration automatique

Configuration automatique Configuration automatique (/home/terre/d01/adp/bcousin/polys/internet:gestion_reseau/6.dhcp.fm- 29 Septembre 1999 12:07) PLAN Introduction Les principes de DHCP Le protocole DHCP Conclusion Bibliographie

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30 Plan du Travail Chapitre 1: Internet et le Web : Définitions et historique Chapitre 2: Principes d Internet Chapitre 3 : Principaux services d Internet Chapitre 4 : Introduction au langage HTML 2014/2015

Plus en détail

Configuration réseau Basique

Configuration réseau Basique Configuration réseau Basique 1. Configuration réseau bas niveau Les outils de configuration réseau bas niveau traditionnels des systèmes GNU/Linux sont les programmes ifconfig et route qui viennent dans

Plus en détail

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM Copyright TECH 2012 Technext - 8, avenue Saint Jean - 06400 CANNES Société - TECHNEXT France - Tel : (+ 33) 6 09 87 62 92 - Fax :

Plus en détail

Présentation du modèle OSI(Open Systems Interconnection)

Présentation du modèle OSI(Open Systems Interconnection) Présentation du modèle OSI(Open Systems Interconnection) Les couches hautes: Responsables du traitement de l'information relative à la gestion des échanges entre systèmes informatiques. Couches basses:

Plus en détail

Administration Réseau sous Ubuntu SERVER 12.10 Serveur DHCP

Administration Réseau sous Ubuntu SERVER 12.10 Serveur DHCP Installation d un serveur DHCP (Dynamic Host Configuration Protocol) sous Ubuntu Server 12.10 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières 1. Comment le protocole DHCP alloue

Plus en détail

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark Wireshark est un programme informatique libre de droit, qui permet de capturer et d analyser les trames d information qui transitent

Plus en détail

SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide pour Mac OS X

SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide pour Mac OS X SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide pour Mac OS X But de ce guide Ce guide décrit la méthode d'installation et de configuration de votre SAGEM Wi-Fi 11g USB ADAPTER pour réseau sans

Plus en détail

Elle supporte entièrement la gestion de réseau sans fil sous Windows 98SE/ME/2000/XP.

Elle supporte entièrement la gestion de réseau sans fil sous Windows 98SE/ME/2000/XP. SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide But de ce guide Ce guide décrit la méthode d'installation et de configuration de votre SAGEM Wi-Fi 11g USB ADAPTER pour réseau sans fil. Lisez-le

Plus en détail

SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide

SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide But de ce guide Ce guide décrit la méthode d'installation et de configuration de votre SAGEM Wi-Fi 11g USB ADAPTER pour réseau sans fil. Lisez-le

Plus en détail

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet Chapitre I La couche réseau 1. Couche réseau 1 Historique de l Internet Né 1969 comme projet (D)ARPA (Defense) Advanced Research Projects Agency; US Commutation de paquets Interconnexion des universités

Plus en détail

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection) II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection) II.2/ Description des couches 1&2 La couche physique s'occupe de la transmission des bits de façon brute sur un canal de

Plus en détail

REPETEUR SANS FIL N 300MBPS

REPETEUR SANS FIL N 300MBPS REPETEUR SANS FIL N 300MBPS Guide d installation rapide DN-70181 Introduction : Le DN-70181 est un répéteur Wi-Fi permettant une connexion réseau filaire/sans fil conçu spécialement pour les besoins des

Plus en détail

Dynamic Host Configuration Protocol

Dynamic Host Configuration Protocol Dynamic Host Configuration Protocol 1 2 problèmes de gestion avec IP La Gestion des adresses IP Les adresses IP doivent être unique Nécessité d une liste d ordinateurs avec leurs adresses IP respectives

Plus en détail

Année Universitaire 2010-2011 session 1 d automne Parcours : CSB5 Licence 3 STS Informatique

Année Universitaire 2010-2011 session 1 d automne Parcours : CSB5 Licence 3 STS Informatique Année Universitaire 2010-2011 session 1 d automne Parcours : CSB5 Licence 3 STS Informatique UE : INF157 Épreuve : Examen Utilisation des réseaux Date : 13 décembre 2010 Heure : 8h30 Durée : 1h30 Modalités

Plus en détail

Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H.

Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H. Conceptronic C100BRS4H Guide d installation rapide Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H. Ce guide d installation vous permettra d installer pas à pas votre

Plus en détail

Plan. Programmation Internet Cours 3. Organismes de standardisation

Plan. Programmation Internet Cours 3. Organismes de standardisation Plan Programmation Internet Cours 3 Kim Nguy ên http://www.lri.fr/~kn 1. Système d exploitation 2. Réseau et Internet 2.1 Principes des réseaux 2.2 TCP/IP 2.3 Adresses, routage, DNS 30 septembre 2013 1

Plus en détail

Master d'informatique 1ère année. Réseaux et protocoles. Architecture : les bases

Master d'informatique 1ère année. Réseaux et protocoles. Architecture : les bases Master d'informatique 1ère année Réseaux et protocoles Architecture : les bases Bureau S3-203 Mailto : alexis.lechervy@unicaen.fr D'après un cours de Jean Saquet Réseaux physiques LAN : Local Area Network

Plus en détail

Contrôleur de communications réseau. Guide de configuration rapide DN1657-0606

Contrôleur de communications réseau. Guide de configuration rapide DN1657-0606 K T - N C C Contrôleur de communications réseau Guide de configuration rapide DN1657-0606 Objectif de ce document Ce Guide de configuration rapide s adresse aux installateurs qui sont déjà familiers avec

Plus en détail

NOTIONS DE RESEAUX INFORMATIQUES

NOTIONS DE RESEAUX INFORMATIQUES NOTIONS DE RESEAUX INFORMATIQUES GENERALITES Définition d'un réseau Un réseau informatique est un ensemble d'équipements reliés entre eux afin de partager des données, des ressources et d'échanger des

Plus en détail

Télécommunications. IPv4. IPv4 classes. IPv4 réseau locaux. IV - IPv4&6, ARP, DHCP, DNS

Télécommunications. IPv4. IPv4 classes. IPv4 réseau locaux. IV - IPv4&6, ARP, DHCP, DNS Télécommunications IV - &6, ARP, DHCP, 1 32 bits => 2 32 adresses => 4'294'967'296 C'était largement suffisant dans les années 80 (Internet n'était constitué que de plusieurs centaines de noeuds) Clairement

Plus en détail

Fonctionnement du protocole DHCP. Protocole DHCP (S4/C7)

Fonctionnement du protocole DHCP. Protocole DHCP (S4/C7) Protocole DHCP (S4/C7) Le protocole DHCP (Dynamic Host Configuration Protocol) Le service DHCP permet à un hôte d obtenir automatiquement une adresse IP lorsqu il se connecte au réseau. Le serveur DHCP

Plus en détail

Protection des protocoles www.ofppt.info

Protection des protocoles www.ofppt.info ROYAUME DU MAROC Office de la Formation Professionnelle et de la Promotion du Travail Protection des protocoles DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC Sommaire 1. Introduction... 2

Plus en détail

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7 Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones

Plus en détail

Internet Protocol. «La couche IP du réseau Internet»

Internet Protocol. «La couche IP du réseau Internet» Internet Protocol «La couche IP du réseau Internet» Rôle de la couche IP Emission d un paquet sur le réseau Réception d un paquet depuis le réseau Configuration IP par l administrateur Noyau IP Performance

Plus en détail

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer

Plus en détail

Présentation et portée du cours : CCNA Exploration v4.0

Présentation et portée du cours : CCNA Exploration v4.0 Présentation et portée du cours : CCNA Exploration v4.0 Dernière mise à jour le 3 décembre 2007 Profil des participants Le cours CCNA Exploration s adresse aux participants du programme Cisco Networking

Plus en détail

Configurer et sécuriser son réseau sans fil domestique

Configurer et sécuriser son réseau sans fil domestique Configurer et sécuriser son réseau sans fil domestique Présentateur: Christian Desrochers Baccalauréat en informatique Clé informatique, 22 mars 2007 1 Avant de débuter Qui suis-je? À qui s adresse cette

Plus en détail

>> Lisez-moi d abord... Connecter le ZyXEL Prestige 650HW/HW-I

>> Lisez-moi d abord... Connecter le ZyXEL Prestige 650HW/HW-I >> Lisez-moi d abord... Connecter le ZyXEL Prestige 650HW/HW-I Étendue de la livraison * Mise en exploitation 1 Câble de raccordement Ethernet (patchcable) pour connexion à l ordinateur ou connexion au

Plus en détail

Algorithmique et langages du Web

Algorithmique et langages du Web Cours de Algorithmique et langages du Web Jean-Yves Ramel Licence 1 Peip Biologie Groupe 7 & 8 Durée totale de l enseignement = 46h ramel@univ-tours.fr Bureau 206 DI PolytechTours Organisation de la partie

Plus en détail

Internet. Licence Pro R&S. TD 5 - Wifi / Radius. 1 Sur le réseau de distribution (DS) 1.1 Configuration des routeurs PC6

Internet. Licence Pro R&S. TD 5 - Wifi / Radius. 1 Sur le réseau de distribution (DS) 1.1 Configuration des routeurs PC6 Département des Sciences Informatiques Licence Pro R&S 2009 2010 Chiffrement et authentification T.T. Dang Ngoc dntt@u-cergy.fr TD 5 - Wifi / Radius Vous déployerez la salle en IPv4 de la manière suivante

Plus en détail

Réseaux. 1 Généralités. E. Jeandel

Réseaux. 1 Généralités. E. Jeandel 1 Généralités Réseaux Couche Application E. Jeandel Couche application Dernière couche du modèle OSI et TCP/IP Échange de messages entre processus Protocole Un protocole de niveau application doit spécifier

Plus en détail

INSTALLATION MODULE WEB

INSTALLATION MODULE WEB INSTALLATION MODULE WEB NOTICE INSTALLATEUR CP015551 02/02/2012 Version 2.0 CP015551 23/04/14 V2.1 - page 1 - BLOSOL COMBI Sommaire 1. COMPOSITION... 3 2. GENERALITE... 4 2.1. Présentation du module...

Plus en détail

PocketNet SNMP/Modbus

PocketNet SNMP/Modbus Volume 1 RBEI-ADISCOM Manuel utilisateur PocketNet SNMP/Modbus CONVERTISSEUR SERIE - ETHERNET Manuel utilisateur PocketNet SNMP/Modbus Table des matières CHAPITRE 1 Caractéristiques utiles à la mise en

Plus en détail

La sécurité dans un réseau Wi-Fi

La sécurité dans un réseau Wi-Fi La sécurité dans un réseau Wi-Fi Par Valérian CASTEL. Sommaire - Introduction : Le Wi-Fi, c est quoi? - Réseau ad hoc, réseau infrastructure, quelles différences? - Cryptage WEP - Cryptage WPA, WPA2 -

Plus en détail

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication Chapitre VII : Principes des réseaux Structure des réseaux Types de réseaux La communication Les protocoles de communication Introduction Un système réparti est une collection de processeurs (ou machines)

Plus en détail

Guide d installation du serveur vidéo

Guide d installation du serveur vidéo Page 13 Guide d installation du serveur vidéo Ce guide d installation vous explique comment installer le serveur vidéo sur votre réseau. Les instructions concerment les modèles dans la liste ci-dessous.

Plus en détail

Réseau - VirtualBox. Sommaire

Réseau - VirtualBox. Sommaire Réseau - VirtualBox 2015 tv - v.1.0 - produit le 10 mars 2015 Sommaire Le réseau virtuel 2 Introduction.............................................. 2 Modes réseaux............................................

Plus en détail

Installation et configuration d un serveur DHCP (Windows server 2008 R2)

Installation et configuration d un serveur DHCP (Windows server 2008 R2) Installation et configuration d un serveur DHCP (Windows server 2008 R2) Contenu 1. Introduction au service DHCP... 2 2. Fonctionnement du protocole DHCP... 2 3. Les baux d adresse... 3 4. Etendues DHCP...

Plus en détail

Présentation et portée du cours : CCNA Exploration v4.0

Présentation et portée du cours : CCNA Exploration v4.0 Présentation et portée du cours : CCNA Exploration v4.0 Profil des participants Le cours CCNA Exploration s adresse aux participants du programme Cisco Networking Academy diplômés en ingénierie, mathématiques

Plus en détail

Réseaux IUP2 / 2005 IPv6

Réseaux IUP2 / 2005 IPv6 Réseaux IUP2 / 2005 IPv6 1 IP v6 : Objectifs Résoudre la pénurie d'adresses IP v4 Délai grâce à CIDR et NAT Milliards d'hôtes même avec allocation inefficace des adresses Réduire la taille des tables de

Plus en détail

Etape 1 : Connexion de l antenne WiFi et mise en route

Etape 1 : Connexion de l antenne WiFi et mise en route Guide de Configuration Rapide Bullet et Picostation Introduction Ce guide s adresse au plaisancier qui navigue de port en port, donc en mobilité, souhaitant pouvoir se connecter à un point d accès Wifi

Plus en détail

VIDEO SURVEILLANCE SV82400 SV82500 SV82600 Type de panne cause Que faire? VIDEO SURVEILLANCE IPSV87050 VIDEO SURVEILLANCE IPSV87050 SERR1

VIDEO SURVEILLANCE SV82400 SV82500 SV82600 Type de panne cause Que faire? VIDEO SURVEILLANCE IPSV87050 VIDEO SURVEILLANCE IPSV87050 SERR1 VIDEO SURVEILLANCE SV82400 SV82500 SV82600 Le moniteur ne s allume pas (SV82400 - Pas d alimentation - Vérifier le branchement de l adaptateur 82500) Le récepteur ne s allume pas (SV82600) Pas d image

Plus en détail

Les possibilités de paramétrage réseau des logiciels de virtualisation sont les suivantes quant à la connexion réseau :

Les possibilités de paramétrage réseau des logiciels de virtualisation sont les suivantes quant à la connexion réseau : DHCP TP Le protocole DHCP (Dynamic Host Configuration Protocol) est un standard TCP/IP conçu pour simplifier la gestion de la configuration d'ip hôte. DHCP permet d'utiliser des serveurs pour affecter

Plus en détail

Principes de DHCP. Le mécanisme de délivrance d'une adresse IP à un client DHCP s'effectue en 4 étapes : COMMUTATEUR 1. DHCP DISCOVER 2.

Principes de DHCP. Le mécanisme de délivrance d'une adresse IP à un client DHCP s'effectue en 4 étapes : COMMUTATEUR 1. DHCP DISCOVER 2. DHCP ET TOPOLOGIES Principes de DHCP Présentation du protocole Sur un réseau TCP/IP, DHCP (Dynamic Host Configuration Protocol) permet d'attribuer automatiquement une adresse IP aux éléments qui en font

Plus en détail

Augmenter la portée de votre WiFi avec un répéteur

Augmenter la portée de votre WiFi avec un répéteur Augmenter la portée de votre WiFi avec un répéteur Vous utilisez le réseau sans fil Wifi de votre box pour vous connecter à Internet mais vous avez du mal à capter le signal à certains endroits de votre

Plus en détail

DHCP. Dynamic Host Configuration Protocol

DHCP. Dynamic Host Configuration Protocol DHCP Dynamic Host Configuration Protocol DHCP : Dynamic Host Configuration Protocol Permet la configuration des paramètres IP d une machine: adresse IP masque de sous-réseau l adresse de la passerelle

Plus en détail

Démarrage à partir du réseau

Démarrage à partir du réseau Démarrage à partir du réseau Matthieu Herrb LAAS-CNRS 12 octobre 2006 Plan 1 Introduction 2 Protocoles de démarrage réseau 3 Implémentations pratiques 4 Sécurité 5 Conclusion Pourquoi démarrer du réseau?

Plus en détail

module Introduction aux réseaux DHCP et codage Polytech 2011 1/ 5

module Introduction aux réseaux DHCP et codage Polytech 2011 1/ 5 DHCP et codage DHCP ( Dynamic Host Configuration Protocol RFC 2131 et 2132) est un protocole client serveur qui permet à un client hôte d un réseau local (Ethernet ou Wifi) d obtenir d un serveur DHCP

Plus en détail

Réseaux - Cours 3. BOOTP et DHCP : Amorçage et configuration automatique. Cyril Pain-Barre. IUT Informatique Aix-en-Provence

Réseaux - Cours 3. BOOTP et DHCP : Amorçage et configuration automatique. Cyril Pain-Barre. IUT Informatique Aix-en-Provence Réseaux - Cours BOOTP et DHCP : Amorçage et configuration automatique Cyril Pain-Barre IUT Informatique Aix-en-Provence Semestre 2 - version du 2/4/2 /67 Cyril Pain-Barre BOOTP et DHCP /7 Introduction

Plus en détail

Internet - Outils. Nicolas Delestre. À partir des cours Outils réseaux de Paul Tavernier et Nicolas Prunier

Internet - Outils. Nicolas Delestre. À partir des cours Outils réseaux de Paul Tavernier et Nicolas Prunier Plan Internet - Outils Nicolas Delestre 1 DHCP 2 Firewall 3 Translation d adresse et de port 4 Les proxys 5 DMZ 6 VLAN À partir des cours Outils réseaux de Paul Tavernier et Nicolas Prunier 7 Wake On Line

Plus en détail

Guide d installation Caméras PANASONIC Série BL

Guide d installation Caméras PANASONIC Série BL Bienvenue Sur SeeClic.com Nous sommes allés très loin pour vous rendre plus proches SOMMAIRE Page Introduction 3 1 Configuration initiale de la Caméra A- Déballage de la caméra 3 B- Utilitaire d installation

Plus en détail

Figure 1a. Réseau intranet avec pare feu et NAT.

Figure 1a. Réseau intranet avec pare feu et NAT. TD : Sécurité réseau avec Pare Feu, NAT et DMZ 1. Principes de fonctionnement de la sécurité réseau Historiquement, ni le réseau Internet, ni aucun des protocoles de la suite TCP/IP n était sécurisé. L

Plus en détail

DIFF AVANCÉE. Samy. samy@via.ecp.fr

DIFF AVANCÉE. Samy. samy@via.ecp.fr DIFF AVANCÉE Samy samy@via.ecp.fr I. RETOUR SUR QUELQUES PROTOCOLES COUCHE FONCTIONS Protocoles 7 Application 6 Présentation 5 Session 4 Transport 3 Réseau 2 Liaison 1 Physique Interface entre l utilisateur

Plus en détail

Introduction aux Technologies de l Internet

Introduction aux Technologies de l Internet Introduction aux Technologies de l Internet Antoine Vernois Université Blaise Pascal Cours 2006/2007 Introduction aux Technologies de l Internet 1 Au programme... Généralités & Histoire Derrière Internet

Plus en détail

Les clés d un réseau privé virtuel (VPN) fonctionnel

Les clés d un réseau privé virtuel (VPN) fonctionnel Les clés d un réseau privé virtuel (VPN) fonctionnel À quoi sert un «VPN»? Un «VPN» est, par définition, un réseau privé et sécurisé qui évolue dans un milieu incertain. Ce réseau permet de relier des

Plus en détail

Trois types de connexions possibles :

Trois types de connexions possibles : Procédure d installation d un transmetteur wifi Canon WFT pour transmission des images sur un serveur FTP. PC (Windows XP). Trois types de connexions possibles : Connexion sans point d accès de type (Add

Plus en détail

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT Administration Réseau Niveau routage Intérêt du NAT (Network Address Translation) Possibilité d utilisation d adresses privées dans l 4 2 1 Transport Réseau Liaison Physique Protocole de Transport Frontière

Plus en détail

WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0

WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0 WINDOWS NT 2000: Travaux Pratiques -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 TABLE DES MATIÈRES Installer un boitier Serveur...3 Fonctions du boitier :...3 Installation du boitier Hp Jetdirect

Plus en détail

NOTICE D UTILISATION FACILE

NOTICE D UTILISATION FACILE NS-555100-FACILE-1312 NOTICE D UTILISATION FACILE 1 Sommaire Recommandations de sécurité... 3 Composition du kit... 4 Description du système...6 et 7 Branchement de la caméra...8 et 9 Chapître 1 : Utilisation

Plus en détail

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement SIP Nguyen Thi Mai Trang LIP6/PHARE Thi-Mai-Trang.Nguyen@lip6.fr UPMC - M2 Réseaux - UE PTEL 1 Plan Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement UPMC -

Plus en détail

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+ Guide de formation avec exercices pratiques Configuration et dépannage de PC Préparation à la certification A+ Sophie Lange Troisième édition : couvre Windows 2000, Windows XP et Windows Vista Les Guides

Plus en détail

Pare-feu VPN sans fil N Cisco RV110W

Pare-feu VPN sans fil N Cisco RV110W Fiche technique Pare-feu VPN sans fil N Cisco RV110W Connectivité simple et sécurisée pour les petits bureaux ou les bureaux à domicile Figure 1. Pare-feu VPN sans fil N Cisco RV110W Le pare-feu VPN sans

Plus en détail

TP5 VOIP résidentiel étendu Page 1 sur 7 Lp Ampere CLAVAUD

TP5 VOIP résidentiel étendu Page 1 sur 7 Lp Ampere CLAVAUD PEXTR/PSEN NOM Date 1 MISE EN SITUATION TP5 Suite à un déménagement dans une résidence plus grande qu au paravent, un particulier relié à Internet via une box désire téléphoner à partir de plusieurs terminaux

Plus en détail

Administration réseau Résolution de noms et attribution d adresses IP

Administration réseau Résolution de noms et attribution d adresses IP Administration réseau Résolution de noms et attribution d adresses IP A. Guermouche A. Guermouche Cours 9 : DNS & DHCP 1 Plan 1. DNS Introduction Fonctionnement DNS & Linux/UNIX 2. DHCP Introduction Le

Plus en détail

TP : STATION BLANI 2000 SIMULATION DU RESEAU INFORMATIQUE

TP : STATION BLANI 2000 SIMULATION DU RESEAU INFORMATIQUE SIN STI2D - Système d'information et Numérique TD TP Cours Synthèse Devoir Evaluation Projet Document ressource TP : STATION BLANI 2000 SIMULATION DU RESEAU INFORMATIQUE 1 MISE EN SITUATION Le plan réseau

Plus en détail

Réseaux et protocoles Damien Nouvel

Réseaux et protocoles Damien Nouvel Réseaux et protocoles Plan Les couches du réseau Suite de protocoles TCP/IP Protocoles applicatifs pour les sites web Requêtes HTTP 2 / 35 Plan Les couches du réseau Suite de protocoles TCP/IP Protocoles

Plus en détail

Guide de l'utilisateur. Linksys AE1000 Adaptateur USB sans fil - N hautes performances

Guide de l'utilisateur. Linksys AE1000 Adaptateur USB sans fil - N hautes performances Guide de l'utilisateur Linksys AE1000 Adaptateur USB sans fil - N hautes performances Table des matières Table des matières Chapitre 1 : Présentation du produit 1 Voyant 1 Chapitre 2 : Installation 2 Installation

Plus en détail

Services Réseaux - Couche Application. TODARO Cédric

Services Réseaux - Couche Application. TODARO Cédric Services Réseaux - Couche Application TODARO Cédric 1 TABLE DES MATIÈRES Table des matières 1 Protocoles de gestion de réseaux 3 1.1 DHCP (port 67/68)....................................... 3 1.2 DNS (port

Plus en détail

Movie Cube. Manuel utilisateur pour la fonction sans fil WiFi

Movie Cube. Manuel utilisateur pour la fonction sans fil WiFi Movie Cube Manuel utilisateur pour la fonction sans fil WiFi Table des matières 1. Connexion de l'adaptateur USB sans fil WiFi...3 2. Paramétrage sans fil...4 2.1 Infrastructure (AP)...5 2.2 Peer to Peer

Plus en détail

Le réseau Internet. Christian.Fondrat@dsi.univ-paris5.fr

Le réseau Internet. Christian.Fondrat@dsi.univ-paris5.fr Le réseau Internet Christian.Fondrat@dsi.univ-paris5.fr Un réseau Définition : Un réseau est un ensemble d ordinateurs connectés et qui communiquent entre eux. Classification : Réseau local (LAN = Local

Plus en détail

Tutoriel XBNE Connexion à un environnement XBMC distant

Tutoriel XBNE Connexion à un environnement XBMC distant Tutoriel XBNE Connexion à un environnement XBMC distant 1. Introduction... 3 2. Quelques notions d informatique... 4 2.1 Réseau informatique... 4 2.1.1 Adresse ip... 4 2.1.2 Fixer l adresse ip d un équipement...

Plus en détail

TP redondance DHCP. Gillard Frédéric Page 1/17. Vue d ensemble du basculement DHCP

TP redondance DHCP. Gillard Frédéric Page 1/17. Vue d ensemble du basculement DHCP Vue d ensemble du basculement DHCP Dans Windows Server 2008 R2, il existe deux options à haute disponibilité dans le cadre du déploiement du serveur DHCP. Chacune de ces options est liée à certains défis.

Plus en détail

7.1.2 Normes des réseaux locaux sans fil

7.1.2 Normes des réseaux locaux sans fil Chapitre 7 7.1.2 Normes des réseaux locaux sans fil Quelles sont les deux conditions qui poussent à préférer la norme 802.11g à la norme 802.11a? (Choisissez deux réponses.) La portée de la norme 802.11a

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Sécurité des réseaux sans fil

Sécurité des réseaux sans fil Sécurité des réseaux sans fil Francois.Morris@lmcp.jussieu.fr 13/10/04 Sécurité des réseaux sans fil 1 La sécurité selon les acteurs Responsable réseau, fournisseur d accès Identification, authentification

Plus en détail

TARMAC.BE TECHNOTE #1

TARMAC.BE TECHNOTE #1 TARMAC.BE C O N S U L T I N G M A I N T E N A N C E S U P P O R T TECHNOTE #1 Firewall, routeurs, routage et ouverture de ports, raison d être d un routeur comme protection, connexions wi-fi & airport,

Plus en détail

TP Réseau 1A DHCP Réseau routé simple

TP Réseau 1A DHCP Réseau routé simple IUT Aix en Provence Année 2007-2008 Dept. R&T Module Réseaux TP Réseau 1A DHCP Réseau routé simple J.L.Damoiseaux 1 1. Etude du protocole dhcp Le but de cette première partie est d étudier le protocole

Plus en détail

Notice d installation rapide. www.monaco.mc

Notice d installation rapide. www.monaco.mc Notice d installation rapide www.monaco.mc Sommaire 3 Contenu du pack 4 Avant de commencer 6 Connexion électrique 7 Connexion Internet Filaire 8 Connexion Internet sans fil 12 La téléphonie illimitée 13

Plus en détail

Comprendre le Wi Fi. Patrick VINCENT pvincent@erasme.org

Comprendre le Wi Fi. Patrick VINCENT pvincent@erasme.org Comprendre le Wi Fi Patrick VINCENT pvincent@erasme.org Le standard 802.11 Débit théorique maximum 802.11b 802.11a 802.11g 11 Mbps 54 Mbps 54 Mbps Bande de fréquence Portée maximale Observations intérieur

Plus en détail

Le Protocole DHCP. Définition. Références. Fonctionnement. Les baux

Le Protocole DHCP. Définition. Références. Fonctionnement. Les baux Définition Le Protocole DHCP DHCP signifie Dynamic Host Configuration Protocol. Il s'agit d'un protocole qui permet à un ordinateur qui se connecte sur un réseau local d'obtenir dynamiquement et automatiquement

Plus en détail

Administration du WG302 en SSH par Magicsam

Administration du WG302 en SSH par Magicsam Administration du WG302 en SSH par Magicsam Le Point d'accès WG302 comprend une interface sécurisée de commande en ligne Telnet. Deux possibilités pour administrer le WG302 en SSH : via le port série situé

Plus en détail

Un peu de vocabulaire

Un peu de vocabulaire Un peu de vocabulaire Le SSID Service set identifier C est l identifiant de votre réseau. Votre réseau doit en principe porter un nom. Personnalisez-le. Attention si vous cochez «réseau masqué», il ne

Plus en détail

Mise en place de la G4100 pack avec Livebox

Mise en place de la G4100 pack avec Livebox Mise en place de la G4100 pack avec Livebox Par défaut la Livebox a une adresse LAN 192.168.1.1 comme la G4100. Afin de pouvoir sortir sur internet vous devez obligatoirement changer un des deux sous-réseaux.

Plus en détail

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt Client sur un domaine stage personnes ressources réseau en établissement janvier 2004 Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt Lycée de Villaroy 2 rue Eugène Viollet Le Duc BP31 78041

Plus en détail

Sécurité d IPv6. Sécurité d IPv6. Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr. Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr

Sécurité d IPv6. Sécurité d IPv6. Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr. Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr Sécurité d IPv6 Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr 1 / 24 Sécurité d IPv6 Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr 2 / 24 Introduction IPv6 est la version d IP normalisée en 1995-1998 (RFC

Plus en détail

1 DHCP sur Windows 2008 Server... 2 1.1 Introduction... 2. 1.2 Installation du composant DHCP... 3. 1.3 Autorisation d'un serveur DHCP...

1 DHCP sur Windows 2008 Server... 2 1.1 Introduction... 2. 1.2 Installation du composant DHCP... 3. 1.3 Autorisation d'un serveur DHCP... Table des matières 1 DHCP sur Windows 2008 Server... 2 1.1 Introduction... 2 1.2 Installation du composant DHCP... 3 1.3 Autorisation d'un serveur DHCP... 11 1.4 Visualiser les serveurs autorisés... 12

Plus en détail

Belgacom Forum TM 3000 Manuel d utilisation

Belgacom Forum TM 3000 Manuel d utilisation Belgacom Forum TM 3000 Manuel d utilisation Forum 3000 Manuel d utilisation Table des matières Section 1. Introduction 3 1.1 Aperçu du Forum 3000 3 1.2 Indicateurs du panneau frontal 4 1.3 Connecteurs

Plus en détail

Sommaire 1. Aperçu du Produit

Sommaire 1. Aperçu du Produit Sommaire 1. Aperçu du Produit... 1 2. Caractéristiques du Produit... 2 3. Contenu du Pack... 3 4. Données techniques... 3 5. Configuration Matérielle Minimum... 3 6. Description du Produit... 4 6.1 Affichage

Plus en détail

Mode d Emploi du Module d ASRock WiFi-802.11g

Mode d Emploi du Module d ASRock WiFi-802.11g Mode d Emploi du Module d ASRock WiFi-802.11g 1 1. Introduction Le module d'asrock WiFi-802.11g est un adapteur facile à utiliser du réseau local (WLAN) sans fil pour soutenir la fonction de WiFi+AP. Avec

Plus en détail

Carte Relais GSM (Manuel Utilisateur)

Carte Relais GSM (Manuel Utilisateur) Carte Relais GSM (Manuel Utilisateur) Carte Relais GSM Introduction Cette carte est une véritable centrale de télécommande et d alarme par GSM. Elle se connecte par un port série à un modem GSM compatible

Plus en détail

Routeur VPN Wireless-N Cisco RV215W

Routeur VPN Wireless-N Cisco RV215W Fiche technique Routeur VPN Wireless-N Cisco RV215W Une connectivité simple et sécurisée pour le travail à domicile et les très petites entreprises Figure 1. Routeur VPN Wireless-N Cisco RV215W Le routeur

Plus en détail