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

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP sur IP

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP sur IP Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A TP sur IP L'objectif de ce premier TP est de vous montrer comment les données circulent dans un réseau, comment elles

Plus en détail

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 (à côté du protocole ) Routage

Plus en détail

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

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

Réseaux Réseaux à diffusion

Réseaux Réseaux à diffusion Réseaux Réseaux à diffusion Exemple 1 (Réseau sans fil) Chaque station fait office d emetteur et de récepteur Chacune a une portée radio Si deux machines émettent en même temps, interférences E. Jeandel

Plus en détail

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant RÉSEAUX INFORMATIQUES

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant RÉSEAUX INFORMATIQUES RÉSEAUX INFORMATIQUES Page:1/13 Objectifs de l activité pratique : Réseau Ethernet : - câblage point à point, test d écho ; commandes «mii-tool» et «linkloop» Commutation Ethernet : - câblage d un commutateur

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

COURS SUR L ADRESSAGE IP

COURS SUR L ADRESSAGE IP COURS SUR L ADRESSAGE IP FORMATEUR : NOUTAIS JEAN-MARC PLAN DU COURS I. GENERALITES II. STRUCTURE D UNE ADRESSE IP III. LES DIFFERENTES CLASSES DE RESEAUX IV. LES ADRESSES RESERVEES a) L adresse de réseau

Plus en détail

Adressage de réseaux

Adressage de réseaux Page 1 sur 28 Adressage de réseaux 5.1 Adresses IP et masques de sous-réseau 5.1.1 Rôle de l adresse IP Un hôte a besoin d une adresse IP pour participer aux activités sur Internet. L adresse IP est une

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

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 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

Services d infrastructure réseaux

Services d infrastructure réseaux Services d infrastructure réseaux Cours de Réseaux Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012-2013 Tuyêt Trâm DANG NGOC Services d infrastructure réseaux 1 / 30 Plan 1 Adressage

Plus en détail

Principes de mise en réseau & Manuel d installation réseau pour l imprimante Crystal Printer

Principes de mise en réseau & Manuel d installation réseau pour l imprimante Crystal Printer Principes de mise en réseau & Manuel d installation réseau pour l imprimante Crystal Printer 1. Présentation Ce manuel fournit les connaissances de base sur la mise en place d un réseau sans fil pour que

Plus en détail

TD2 : CORRECTION. Exercice 1 : 1. Quel est l avantage de la séparation de l adressage en deux parties dans l adressage Internet?

TD2 : CORRECTION. Exercice 1 : 1. Quel est l avantage de la séparation de l adressage en deux parties dans l adressage Internet? TD2 : CORRECTION I. connaître son environnement réseau a. Quelle est l adresse IPv4 de votre PC? l adresse IPv6? ipconfig : Adresse IPv4..............: 192.168.1.13 Masque de sous-réseau.... : 255.255.255.0

Plus en détail

Semaine 4 : le protocole IP

Semaine 4 : le protocole IP Semaine 4 : le protocole IP Séance 1 : l adressage... 1 Séance 2 : le protocole IP... 8 Séance 3 : l adresse IP... 16 Séance 1 : l adressage Introduction Au cours de cette séance, nous allons parler de

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

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP sur IP

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP sur IP Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A TP sur IP L'objectif de ce premier TP est de vous montrer comment les données circulent dans un réseau, comment elles

Plus en détail

NFA083 Réseau et Administration Web TCP/IP

NFA083 Réseau et Administration Web TCP/IP NFA083 Réseau et Administration Web TCP/IP Sami Taktak sami.taktak@cnam.fr Centre d Étude et De Recherche en Informatique et Communications Conservatoire National des Arts et Métiers Rôle de la Couche

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

Mise en réseau d'une station Linux

Mise en réseau d'une station Linux Stéphane Gill Stephane.Gill@CollegeAhuntsic.qc.ca Table des matières Introduction 2 Fichiers de paramétrage et scripts 2 /etc/hosts 2 /etc/networks 3 /etc/hosts.conf 3 /etc/resolv.conf 4 /etc/sysconfig/network

Plus en détail

Apprendre à développer pour créer des objets intelligents

Apprendre à développer pour créer des objets intelligents Arduino Apprendre à développer pour créer des objets intelligents Nicolas GOILAV Geoffrey LOI Table des matières 1 Les éléments à télécharger sont disponibles à l'adresse suivante : http://www.editions-eni.fr

Plus en détail

Travaux Pratiques n 1 Principes et Normes des réseaux.

Travaux Pratiques n 1 Principes et Normes des réseaux. Travaux Pratiques n 1 Principes et Normes des réseaux. Objectifs Connaitre le matériel de base (switch, hub et routeur) Savoir configurer une machine windows et linux en statique et dynamique. Connaitre

Plus en détail

Internet. PC / Réseau

Internet. PC / Réseau Internet PC / Réseau Objectif Cette présentation reprend les notions de base : Objectif, environnement de l Internet Connexion, fournisseurs d accès Services Web, consultation, protocoles Modèle en couches,

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

Protocole TCP/IP. On classe généralement les protocoles en deux catégories selon le niveau de contrôle des données que l'on désire :

Protocole TCP/IP. On classe généralement les protocoles en deux catégories selon le niveau de contrôle des données que l'on désire : Nom.. Prénom.. Protocole TCP/IP Qu'est-ce qu'un protocole? Un protocole est une méthode de codage standard qui permet la communication entre des processus s'exécutant éventuellement sur différentes machines,

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

L adressage IP & MAC

L adressage IP & MAC L adressage IP & MAC 1. Adresse MAC 1.1. Définition Dans un réseau informatique, l adresse MAC (Media Access Control) est l identifiant physique d une carte réseau d un périphérique. Stockée par le constructeur

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

Concepts de base de l Internet Protocol IPv4. Module 2

Concepts de base de l Internet Protocol IPv4. Module 2 Concepts de base de l Internet Protocol IPv4 Module 2 Objectifs Comprendre les bases du protocole IPv4 IPv4 Internet Protocol version 4 (IPv4) est la 4ème version du protocole d internet et la première

Plus en détail

VI - La couche réseau : adresse IP. LPSIL ADMIN 2014 M.A. Peraldi-Frati - IUT Nice Côte d Azur

VI - La couche réseau : adresse IP. LPSIL ADMIN 2014 M.A. Peraldi-Frati - IUT Nice Côte d Azur VI - La couche réseau : adresse IP LPSIL ADMIN 2014 M.A. Peraldi-Frati - IUT Nice Côte d Azur 86 La couche réseau Achemine les données entre l émetteur et le destinataire au travers de différents réseaux

Plus en détail

Laboratoire de téléinformatique Introduction à l analyseur de réseau Wireshark (Ethereal)

Laboratoire de téléinformatique Introduction à l analyseur de réseau Wireshark (Ethereal) Laboratoire de téléinformatique Introduction à l analyseur de réseau Wireshark (Ethereal) Description Wireshark est un analyseur de protocole gratuit pour Windows, Unix et ses dérivés. Il permet d examiner

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

TP Installation d un simple réseau, L3 Liens physiques, configuration des adresses IP, routage

TP Installation d un simple réseau, L3 Liens physiques, configuration des adresses IP, routage TP Installation d un simple réseau, L3 Liens physiques, configuration des adresses IP, routage Auteur: Congduc Pham, Université de Pau et des Pays de l Adour 1 Introduction Ce TP s attache aux aspects

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

Cours réseaux Modèle OSI

Cours réseaux Modèle OSI Cours réseaux Modèle OSI IUT 1 Université de Lyon Introduction: le modèle OSI Un modèle théorique : le modèle OSI (Open System Interconnection) A quoi ça sert: Nécessité de découper/classifier l ensemble

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

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

LA COMMUNICATION DE L INFORMATION EN RESEAUX

LA COMMUNICATION DE L INFORMATION EN RESEAUX LA COMMUNICATION DE L INFORMATION EN RESEAUX A LES RESEAUX Un réseau est un ensemble d objets connectés entre eux. Il permet de faire circuler un certain nombre d information entre ces objets selon des

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

Les Protocoles de Transport Introduction à l analyse de trames

Les Protocoles de Transport Introduction à l analyse de trames Les Protocoles de Transport Introduction à l analyse de trames telnet localhost 80 telnet localhost 80 Trying ::1 connected to localhost. Escape character is ^]. Demande de connexion du client Ouverture

Plus en détail

Man In The Middle. (MITM ou TCP hijacking)

Man In The Middle. (MITM ou TCP hijacking) Man In The Middle (MITM ou TCP hijacking) Ce type d attaque, traduit en français par «l homme du milieu» est plus facile à comprendre qu on ne le pense. Cette attaque fait intervenir 3 ordinateurs. Un

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

TP SIMULATION RESEAU Logiciel PACKET TRACER

TP SIMULATION RESEAU Logiciel PACKET TRACER TP SIMULATION RESEAU Logiciel PACKET TRACER Objectif du TP : Choix du matériel pour faire un réseau Comprendre l adressage IP Paramétrer des hôtes sur un même réseau pour qu ils communiquent entre eux

Plus en détail

Fiche de Réseau de données

Fiche de Réseau de données Fiche de Réseau de données V.R May 25, 2015 Contents I Le modèle OSI 2 1 Concepts de base 2 2 Modèle OSI 4 II Réseau de données 5 1 Erreurs et correction d erreurs 5 2 Contrôle de flux 6 3 Contrôle de

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

Ch4 Interconnexion des postes dans un Lan Ethernet : protocoles des couches 3 à 7 du modèle OSI Dernière maj : lundi 2 avril 2007

Ch4 Interconnexion des postes dans un Lan Ethernet : protocoles des couches 3 à 7 du modèle OSI Dernière maj : lundi 2 avril 2007 Ch4 Interconnexion des postes dans un Lan Ethernet : protocoles des couches 3 à 7 du modèle OSI Dernière maj : lundi 2 avril 2007 I. RAPPEL : ADRESSAGE PHYSIQUE : (OSI 2)... 1 A. L ADRESSAGE DANS UN RESEAU

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

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

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

Protocoles «Application»

Protocoles «Application» Protocoles «Application» POP3 (rappel) TFTP BOOTP DHCP Applications TCP/IP 1 Application POP3 Documentation Post Office Protocol 3, RFC 1460 (Request For Comments) But Protocole TCP pour la réception des

Plus en détail

Median SR04 - Automne 2007 Les documents ne sont pas autorisés

Median SR04 - Automne 2007 Les documents ne sont pas autorisés Median SR04 - Automne 2007 Les documents ne sont pas autorisés - Utiliser le verso en cas de besoin Exercice 1 (1,5pts) : soit le réseau suivant dont l'adresse réseau est 130.252.0.0 : Segment 1.10.34.10.35.10.36

Plus en détail

Formation Réseaux : Notions de base

Formation Réseaux : Notions de base Formation x Formation Réseaux : Notions Jean-Philippe André (), p2009 3. Couche Septembre 2007 Que sont les x? Formation x Wikipedia.org : Un est un ensemble de nœuds (ou pôles) reliés entre eux par des

Plus en détail

IP - ICMP - UDP - TCP

IP - ICMP - UDP - TCP Encapsulation Ethernet IP ICMP TCP UDP IP - ICMP - UDP - TCP Université de Cergy-Pontoise 2006 2007 Encapsulation Ethernet IP ICMP TCP UDP Plan 1 Encapsulation 2 Ethernet 3 IP Datagramme

Plus en détail

Architectures de communication. «Architecture protocolaire réseau» «protocolaire»

Architectures de communication. «Architecture protocolaire réseau» «protocolaire» Architectures de communication C. Pham Université de Pau et des Pays de l Adour Département Informatique http://www.univ-pau.fr/~cpham Congduc.Pham@univ-pau.fr «Architecture protocolaire réseau» Architecture

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

Laboratoire de téléinformatique, TIN Les réseaux locaux, câblage, 2008

Laboratoire de téléinformatique, TIN Les réseaux locaux, câblage, 2008 Laboratoire de téléinformatique, TIN Les réseaux locaux, câblage, 2008 1. Description de la manipulation Le but de ce laboratoire est de se familiariser avec quelques commandes usuelles utilisées dans

Plus en détail

SIN : Maquettage d une solution en réponse à un cahier des charges

SIN : Maquettage d une solution en réponse à un cahier des charges SIN : Maquettage d une solution en réponse à un cahier des charges Module SIN 1.1 : Concevoir un système local et permettre le dialogue entre l homme et la machine Activité : TP2 IOWarrior - Commande de

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

Jeudi 27 Janvier Thomas Petazzoni

Jeudi 27 Janvier Thomas Petazzoni Réseau sous GNU/Linux «Connectez vos passions» Jeudi 27 Janvier Thomas Petazzoni Unité de transmission En réseau, l'unité de transmission est le paquet. 0x0000: 00e0 4cec 59d7 00e0 4cec 323b 0800 4500..L.Y...L.2;..E.

Plus en détail

LE RESEAU INFORMATIQUE

LE RESEAU INFORMATIQUE Sommaire LE RESEAU INFORMATIQUE Introduction Objectifs 1. Pourquoi mettre en place un réseau? 2. Définitions 3. Les modes de réseau 4. Les types de réseaux I- Configuration d un réseau LAN. 1. Outils et

Plus en détail

MISE EN PLACE DE LA PLATEFORME DE TESTS...

MISE EN PLACE DE LA PLATEFORME DE TESTS... SOMMAIRE : MISE EN PLACE DE LA PLATEFORME DE TESTS...2 INTRODUCTION...2 LE CÂBLE DE BOUCLE EXTERNE...2 CONFIGURATION DU POSTE INFORMATIQUE...3 Problème posé...3 Identification des éléments mis en cause...3

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

Mise en place d un portail captif avec une distribution pfsense

Mise en place d un portail captif avec une distribution pfsense Mise en place d un portail captif avec une distribution pfsense Présentation : pfsense est une distribution routeur/pare-feu OpenSource basée sur FreeBSD, pouvant être installée sur un simple ordinateur

Plus en détail

TP N o 2 de Réseaux Etude des protocoles ARP et ICMP

TP N o 2 de Réseaux Etude des protocoles ARP et ICMP TP N o 2 de x Etude des protocoles ARP et ICMP Pascal Sicard 1 INTRODUCTION L objectif de ce TP est d observer et comprendre le protocole de résolution d adresse ARP, et un protocole annexe : ICMP. Nous

Plus en détail

Semestre 6 2008-09. Licence miage Université Lille 1 Pour toutes remarques : Alexandre.Sedoglavic@univ-lille1.fr. Quelques outils systèmes pour IP

Semestre 6 2008-09. Licence miage Université Lille 1 Pour toutes remarques : Alexandre.Sedoglavic@univ-lille1.fr. Quelques outils systèmes pour IP V0 (01-02-2009) Licence miage Université Lille 1 Pour toutes remarques : Alexandre.Sedoglavic@univ-lille1.fr Semestre 6 2008-09 Définition Entre l ensemble de protocoles, de structures de données et de

Plus en détail

Ethernet Control System IPX-800 V3

Ethernet Control System IPX-800 V3 Ethernet Control System IPX-800 V3 Serveur Ethernet autonome qui permet de piloter tout ce que vous voulez depuis internet avec votre iphone, ipad ou PC. L'IPX800 V3 est entièrement personnalisable et

Plus en détail

Quoi de neuf en acquisition de données?

Quoi de neuf en acquisition de données? Quoi de neuf en acquisition de données? Jean-Luc DELAY National Instruments, Ingénieur d applications Les nouveautés en acquisition de données chez NI USB Série X NI SC Express Nouveau châssis NI CompactDAQ

Plus en détail

Travaux pratiques n o 1

Travaux pratiques n o 1 Travaux pratiques n o 1 Passerelle Applicative IPv6-IPv4 Le déploiement d IPv6 pose la problématique de l accès aux services disponibles dans l Internet IPv4. Dans ce TP nous allons procéder à l installation

Plus en détail

Travaux Pratiques. Octobre 2015 CESI

Travaux Pratiques. Octobre 2015 CESI Travaux Pratiques Octobre 2015 CESI 1. Adressage dans Internet 1.1 Identification d une machine Une machine (appelée aussi hôte ou host) est identifiée dans l Internet par son adresse. L adresse Internet

Plus en détail

TP sur l adressage dynamique

TP sur l adressage dynamique TP sur l adressage dynamique 1) Préparation du matériel Ce TP nécessite l utilisation de routeurs. Ne disposant pas de ce type de matériel spécifique, nous allons donc utiliser des machines virtuelles

Plus en détail

Protocoles «Application»

Protocoles «Application» Protocoles «Application» POP3 (rappel) TFTP BOOTP DHCP 03/10/2007 Applications TCP/IP 1 Le protocole TFTP Trivial File Transfert Protocol Utilise UDP RFC 783 et RFC 1350 Permet uniquement le transfert

Plus en détail

A l'origine, les FYI sont uniquement des documents officiels issus des organismes de normalisation de l'internet, sans toutefois être des normes.

A l'origine, les FYI sont uniquement des documents officiels issus des organismes de normalisation de l'internet, sans toutefois être des normes. 1 2 Deux groupes guident les évolutions de l Internet : un groupe de recherche, l IRTF (Internet Research Task Force) un groupe de développement, l IETF (Internet Engineering Task Force) ; travaille sur

Plus en détail

Réseaux - Cours 3. IP : introduction et adressage. Cyril Pain-Barre. Semestre 1 - version du 13/11/2009. IUT Informatique Aix-en-Provence

Réseaux - Cours 3. IP : introduction et adressage. Cyril Pain-Barre. Semestre 1 - version du 13/11/2009. IUT Informatique Aix-en-Provence Réseaux - Cours 3 IP : introduction et adressage Cyril Pain-Barre IUT Informatique Aix-en-Provence Semestre 1 - version du 13/11/2009 1/32 Cyril Pain-Barre IP : introduction et adressage 1/24 TCP/IP l

Plus en détail

Guide d installation TEW-435BRM

Guide d installation TEW-435BRM 1- Contenu de la boite Guide d installation TEW-435BRM Modem/Routeur adsl/câble TEW-435BRM (a) Câble Ethernet RJ45 (relie votre ordinateur au modem/routeur) (b) Câble RJ11 (relie votre modem/routeur à

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

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

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

Informatique Générale. Partie 3 - TD Les réseaux. Travaux dirigés associés au CM 3. Informatique, G. KEMBELLEC

Informatique Générale. Partie 3 - TD Les réseaux. Travaux dirigés associés au CM 3. Informatique, G. KEMBELLEC Informatique Générale Partie 3 - TD Les réseaux Travaux dirigés associés au CM 3 1 Chef de projet en ingénierie documentaire Les réseaux et internet Travaux dirigés 2 Réseaux locaux, étendus, Internet

Plus en détail

Ces cartes sont aussi appelées : NIC (Network Interface Card). Les cartes réseaux les plus courantes sont de type Ethernet.

Ces cartes sont aussi appelées : NIC (Network Interface Card). Les cartes réseaux les plus courantes sont de type Ethernet. 1. Introduction La connexion entre ordinateurs nécessite une carte réseau implantée dans chaque ordinateur (PC ou autre) et éléments de réseau (commutateur, routeurs,...). Ces cartes sont aussi appelées

Plus en détail

DI-524 / DWL-922. Configuration Internet Pour les Opérateurs Câble

DI-524 / DWL-922. Configuration Internet Pour les Opérateurs Câble DI-524 / DWL-922 Configuration Internet Pour les Opérateurs Câble Topologie réseau MAC wifi Internet DI-524 Portable wifi Modem Câble PC wifi PC ethernet Le principe d installation du DI-524 pour les connexions

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

DIFF DE BASE. Serendip serendip@via.ecp.fr. Samy samy@via.ecp.fr

DIFF DE BASE. Serendip serendip@via.ecp.fr. Samy samy@via.ecp.fr DIFF DE BASE Serendip serendip@via.ecp.fr Samy samy@via.ecp.fr I. INTRODUCTION AU RÉSEAU RÉSEAU : /ʁE.ZO/ N.M. DÉR., AU MOYEN DU SUFF. -EAU, DE L'A. FR. REIZ, REZ «FILET» (RETS); RÉSEAU A ÉTÉ EN CONCURRENCE

Plus en détail

Travaux pratiques 2.6.2 : Utilisation de Wireshark pour afficher des unités de données de protocole

Travaux pratiques 2.6.2 : Utilisation de Wireshark pour afficher des unités de données de protocole pour afficher des unités de données de protocole Objectifs pédagogiques Expliquer l objectif d un analyseur de protocoles (Wireshark) Exécuter une capture de base des unités de données de protocole (PDU)

Plus en détail

IBox GUIDE DE CONNEXION. : IBox_Guide_de_Connexion_v1.1. Date : 2013-07-09

IBox GUIDE DE CONNEXION. : IBox_Guide_de_Connexion_v1.1. Date : 2013-07-09 IBox GUIDE DE CONNEXION Fichier : IBox_Guide_de_Connexion_v1.1 Date : 2013-07-09 Rédacteurs : Helpdesk ImaginLab FICHE D'EVOLUTION Edition Date Action Nature de la modification v1.0 22/02/2011 Helpdesk

Plus en détail

Laboratoire Télécom&Réseaux TP M1 2005/2006 TP ADMINISTRATION RESEAUX SANS FIL

Laboratoire Télécom&Réseaux TP M1 2005/2006 TP ADMINISTRATION RESEAUX SANS FIL TP ADMINISTRATION RESEAUX SANS FIL Manipulation N 1 : Installation d un Réseau Ad-hoc ( indépendant, ou point à point). Matériel nécessaire : Trois postes PC fixes. Trois cartes (format PCI).client 11b

Plus en détail

TP DE PROGRAMMATION RESEAU : LES SOCKETS

TP DE PROGRAMMATION RESEAU : LES SOCKETS - ENSEIRB - TP DE PROGRAMMATION RESEAU : LES SOCKETS Patrice KADIONIK - 1/11- TABLE DES MATIERES www.enseirb.fr/~kadionik 1. BUT DES TRAVAUX PRATIQUES...3 2. SEANCE 1 : UTILISATION DES COMMANDES UNIX/LINUX

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

Routeur Mobile MOR600 Guide d installation

Routeur Mobile MOR600 Guide d installation Routeur Mobile MOR600 Guide d installation 1. Contenu de la boîte La boîte du routeur MOR600 que vous avez reçue doit contenir les articles suivants. Si l un des éléments manqué, contactez votre distributeur.

Plus en détail

Les Réseaux : Quelques Notions de base. Cycle de formation Ramage 2 Mars 2011

Les Réseaux : Quelques Notions de base. Cycle de formation Ramage 2 Mars 2011 Les Réseaux : Quelques Notions de base Cycle de formation Ramage 2 Mars 2011 1 Agenda Concepts et introduction aux réseaux Les Réseaux Locaux Internet Le Web Les Réseaux longue distance Exercices pratiques

Plus en détail

TP ébauche n o 1. Passerelle Applicative IPv6-IPv4 *** Corrigé indicatif ***

TP ébauche n o 1. Passerelle Applicative IPv6-IPv4 *** Corrigé indicatif *** TP ébauche n o 1 Passerelle Applicative IPv6-IPv4 *** Corrigé indicatif *** Le déploiement d IPv6 pose la problématique de l accès aux services disponibles dans l Internet IPv4. Dans ce TP nous allons

Plus en détail

Travaux pratiques Utilisation de Wireshark pour examiner une capture DNS UDP

Travaux pratiques Utilisation de Wireshark pour examiner une capture DNS UDP Travaux pratiques Utilisation de Wireshark pour examiner une capture DNS UDP Topologie Objectifs 1re partie : Enregistrer les informations de configuration IP d un ordinateur 2e partie : Utiliser Wireshark

Plus en détail

Licence professionnelle CDAISI TP3 : systéme d'exploitation UE1 : Module 1.1 J. RIDET & R. CROCFER

Licence professionnelle CDAISI TP3 : systéme d'exploitation UE1 : Module 1.1 J. RIDET & R. CROCFER Licence professionnelle CDAISI TP3 : systéme d'exploitation UE1 : Module 1.1 J. RIDET & R. CROCFER I INTRODUCTION I.1 Outils de capture de paquets Pour communiquer, les machines échangent des informations

Plus en détail

Sécurité des réseaux Sécurité des réseaux sans-fil

Sécurité des réseaux Sécurité des réseaux sans-fil Sécurité des réseaux Sécurité des réseaux sans-fil A. Guermouche A. Guermouche Cours 6 : WEP & WPA 1 Plan 1. WEP 2. WPA A. Guermouche Cours 6 : WEP & WPA 2 Plan WEP 1. WEP 2. WPA A. Guermouche Cours 6

Plus en détail

Collecte des examens du module Introduction aux Réseaux et Bases de Routage

Collecte des examens du module Introduction aux Réseaux et Bases de Routage INSTITUT SUPERIEUR DE GESTION DE TUNIS Collecte des examens du module Introduction aux Réseaux et Bases de Routage Examens corrigés Kaouther Nouira 2011-2012 Ministère de l Enseignement Supérieur, de le

Plus en détail

Sujet Projets 2 nd Semestre

Sujet Projets 2 nd Semestre Sujet Projets 2 nd Semestre Seuls les appels systèmes vus en cours sont autorisés. L usage d autres fonctions doit impérativement être validé par l enseignant. La date d ouverture pour l assignation de

Plus en détail

3.5. Choisir la connexion Wi-Fi

3.5. Choisir la connexion Wi-Fi Choisir la connexion Wi-Fi Chapitre 3 Configurer la connexion Internet Si vous êtes passé par le kit d installation de Wanadoo, votre connexion à Internet devrait être active. Néanmoins, quelques réglages

Plus en détail

Fonera et DD-WRT. Sébastien Jean. IUT de Valence Département Informatique. v2.0, 5 février 2009

Fonera et DD-WRT. Sébastien Jean. IUT de Valence Département Informatique. v2.0, 5 février 2009 Fonera et DD-WRT Sébastien Jean IUT de Valence Département Informatique v2.0, 5 février 2009 Au programme 1 La Fonera en bref 2 Remplacement du firmware FON par DD-WRT 3 Configurations typiques Fonera/DD-WRT

Plus en détail

Guide d installation rapide DPR-1260

Guide d installation rapide DPR-1260 Guide d installation rapide DPR-1260 Wireless Serveur d impression Print multifonction Server USB Wireless with 3G G Mobile USB 2.0 Video Adapter Configuration requise Réseau Fast Ethernet 10/100 filaire

Plus en détail