6LowPan:présentation(pdf)

6LoWPAN
IPv6 sur IEE 802.15.4
Lanteri Isabelle
NFP215
CNAM 2008-2009
De IPv4 à IPv6
●
●
●
IPv6 est né d'une probable pénurie d'adresses
due à la croissance de l'Internet et à la
structure en classes de l'adressage IPv4.
En 1992 l'IETF (Internet Engineering Task
Force), organisme qui gère la standardisation
de l'Internet, lance un appel à propositions à la
communauté mondiale pour définir les
caractéristiques de l'IP de nouvelle génération
(IPng).
En 2002, fin de la standardisation.
De IPv4 à IPv6
●
●
●
●
Interopérabilité IPv4 à IPv6.
Adressage IPv6 sur 128 bits (32 bits pour
IPv4) et utilisation de la notion d'interface.
Taille minimale des MTU(Maximum Transmission Unit) de 1 280 octets (576 pour
IPv4).
Simplification des en-têtes, suppression du
champ checksum et taille d'en-tête fixe (40
octets) pour simplifier le routage.
IPv6: adressage
●
La représentation textuelle d'une adresse
IPv6 se fait en découpant le mot de 128 bits
en 8 mots de 16 bits séparés par le caractère :, chacun d'eux étant représenté en
hexadécimal. Par exemple :
FEDC:BA98:7654:3210:EDBC:A987:6543:210F
●
●
3 types d'adressage sont possibles: unicast,
multicast, anycast.
Notion de portée: adresses locales,
adresses globales.
IPv6: adressage
●
●
●
Les adresses peuvent être décomposées en 3
parties: préfixe de site, ID de sous-réseau et ID
d'interface.
Les adresses de liaison locales sont utilisées
pour communiquer d'hôte à hôte sur un même
lien. Elles sont préfixées FE80::/10. Suit l'identifiant d'interface dérivé en général de l'adresse
MAC 48 bits ou EUI-64.
IPv6: adressage
●
●
Une adresse multicast se compose principalement d'un préfixe multicast (FF00::/8) et
d'un identifiant de groupe (32 bits). Cet identifiant peut être dynamique ou pas. Certaines
adresses IPv6 multicast sont assignées de
façon permanente par l'IANA (Internet Assigned Numbers Authority).
Une adresse anycast identifie également un
groupe d'interfaces mais un seul membre du
groupe reçoit le paquet (le plus proche topologiquement parlant).
IPv6: adressage
●
Une adresse globale unicast se compose
d'un préfixe de routage ou de site (unique)
sur 48 bits, d'un ID de sous-réseau (unique
sur le site) sur 16 bits et d'un identifiant d'interface (unique sur le lien) de 64 bits.
IPv6: adressage
●
●
●
On dispose d'environ 3,4 × 1038 adresses,
soit 340 282 366 920 938 463 463 374 607
431 768 211 456, soit encore, pour reprendre
l'image usuelle, plus de 667 millions de
milliards d'adresses par millimètre carré de
surface terrestre.
L'Internet IPv6 est défini comme étant le
sous-réseau 2000::/3.
Les adresses 6to4 (2002::/16) permettent
d'acheminer le trafic IPv6 via un ou plusieurs
réseaux IPv4.
IPv6: les en-têtes
●
●
IPv6 définit un nouveau format d'en-tête.
Plutôt que des options, un en-tête a des
extensions, ce qui améliore de beaucoup les
performances des routeurs. Un en-tête
d'extension a toujours une longueur multiple
de huit. On trouve des en-têtes d'extension
Fragmentation, Hop-by-Hop, Authentication,
Encapsulating security Payload,...
L'en-tête de base a une longueur de 40
octets.
IPv6: les en-têtes
IPv6: les en-têtes
●
●
●
●
Le champ Version vaut toujours 6.
Les champs Classe de Trafic et Identificateur
de flux sont utilisés par les routeurs.
La longueur des données est celle des
données utiles du paquet.
Le nombre de sauts est décrémenté à la
traversée d'un routeur. S'il atteint 0, le paquet
est abandonné.
IPv6: les en-têtes
●
●
Le champ « Next Header » identifie l'en-tête
suivant : en-tête d'extension ou de protocole.
Valeur
0
43
44
50
51
59
60
136
UDP-lite
IPv6: la détection des voisins
●
●
●
Le protocole de détection des voisins utilise
ICMPv6 (Internet Message Control Protocol)
Les noeuds voisins sont des noeuds situés
sur le même lien.
Détection de routeur, détection de préfixe,
configuration automatique d'adresse,
détermination du prochain saut, détection
d'inaccessibilité voisin, détection d'adresses
dupliquées, redirection, route par défaut...
IPv6: configuration automatique
●
●
IPv6 permet à une machine nouvellement
connectée sur le réseau de s'autoconfigurer
soit déterminer son adresse lien-local et
vérifier son unicité.
IPv6 permet également la détermination
d'adresses unicast globales. Deux méthodes
pour celà: avec ou sans état. La méthode
avec état plus stricte utilise DHCPv6
(Dynamic Host Configuration Protocol for
IPv6).
IPv6: les protocoles de niveau 4
●
●
●
UDP et TCP: Les modifications apportées
aux protocoles de niveau 4 UDP et TCP sont
minimes. L'un des pré-requis à la mise en
œuvre d'IPv6 était de laisser en l'état aussi
bien TCP (Transmission Control Protocol)
qu'UDP (User Datagram Protocol).
UDP-lite permet de remonter aux couches
supérieures des données erronées sans
supprimer un bloc complet (multimédia).
SCTP(Stream Control Transmission
Protocol) gère la multidomiciliation.
IPv6: les protocoles de niveau 4
●
●
●
UDP et TCP: Les modifications apportées
aux protocoles de niveau 4 UDP et TCP sont
minimes. L'un des pré-requis à la mise en
œuvre d'IPv6 était de laisser en l'état aussi
bien TCP (Transmission Control Protocol)
qu'UDP (User Datagram Protocol).
UDP-lite permet de remonter aux couches
supérieures des données erronées sans
supprimer un bloc complet (multimédia).
SCTP((Stream Control Transmission
Protocol) gère la multidomiciliation.
IPv6: groupes de travail
IEEE 802.15.4
●
●
Protocole de l'IEEE (Institute of Electrical
and Electronics Engineers) destiné aux
réseaux sans fil de la famille des LR
WPAN(Low Rate Wireless Personal Area
Network)
IEEE 802.15.4 correspond aux couches
basses de ZigBee soit la couche physique
et la couche MAC (Medium Access Control)
IEEE 802.15.4
●
IEEE 802.15.4
●
●
●
●
●
●
Bas coût et ressources limitées.
Basse consommation et détection de
l'énergie.
Faible portée et courtes distances.
Interconnecter des unités embarquées avec
peu de ressources comme des capteurs.
Les unités sont en sommeil la plupart du
temps.
Taux d'erreur et de perte assez élevé.
IEEE 802.15.4
●
●
●
●
Trois bandes de fréquence: 868 MHz
(Europe), 915 MHz (USA) et 2450 MHz
(mondial).
Trois canaux dans la bande 868 MHz, 30
canaux dans la bande 915 MHz et 16
canaux dans la bande 2,4 GHz. (2006)
Débits de 250 kb/s, 100 kb/s, 40 kb/s et 20
kb/s
Quatre couches physiques différentes: à 2,4
GHz, étalement de spectre et modulation OQPSK.
IEEE 802.15.4
●
●
Deux modes pour l'accès au médium: le
mode CSMA/CA (Carrier Sense Multiple
Access with Collision Avoidance)) et le
mode balise (beacon).
Deux types d'adressage: court sur 16 bits
ou étendu sur 64 bits (IEEE EUI64).
●
Indication sur la qualité de la liaison (LQI).
●
Possibilité de GTS (Guaranteed Time Slot).
●
Détection du niveau d'énergie (ED).
IEEE 802.15.4
●
●
●
Deux types d'entités réseau: FFD (Full
Function Device) qui peut être coordinateur
et RFD (Reduced Function Device).
Les RFD ne peuvent communiquer entre
eux.
Topologies réseau: étoile et point à point.
Zigbee introduit le réseau maillé (mesh) au
niveau de la couche réseau.
ZigBee: topologies réseau
●
ZigBee: pile protocole
●
IEEE 802.15.4
●
4 types de trames:
●
Les trames balise.
●
Les trames de données.
●
Les trames d'acquittement.
●
Les trames de commande MAC.
IEEE 802.15.4
●
Format de la trame MAC
IEEE 802.15.4
●
●
La trame PHY
IEEE 802.15.4: le mode beacon
●
Dans ce mode, le coordinateur envoit
périodiquement des trames balises pour
synchroniser les noeuds du réseau.
Ce mode permet les meilleures performances
sur le plan énergétique.
L'espace temporel entre deux trames balises
est appelé supertrame.
La supertrame peut comprendre une portion
active et une portion inactive( le coordinateur
dort).
IEEE 802.15.4: la supertrame
●
●
●
Il y a deux modes d'accès à la supertrame:
Mode CAP (Contention Access Period):
situé en début de supertrame. Le mode est
CSMA/CA
Mode CFP (Contention Free Period):
le coordinateur alloue un ou plusieurs slots à
un noeud. On a des GTS (Guaranted Time
Slots) alloués en fin de trame. Le début reste
disponible en CAP.
IEEE 802.15.4:la supertrame
●
La supertrame est divisée en 16 intervalles
de temps. Le premier slot est la trame
beacon. Elle est utilisée pour synchroniser
les équipements, identifier le PAN et décrire
la structure de la supertrame .
6LoWPAN
●
●
●
●
Transmettre des paquets IPv6 sur des
réseaux IEEE802.15.4.
Une couche d'adaptation est nécessaire
pour passer d'un MTU de 1280 octets à un
MTU de 127. Cette couche doit effectuer
fragmentation et ré-assemblage des
paquets.
Compression des en-têtes.
Utiliser l'identifiant IEEE64 pour obtenir un
identifiant d'interface IPv6.
6LoWPAN:les avantages d'IP
●
Interopérabilité extensive (WiFi, Ethernet,
GPRS, ATM,...).
●
Sécurité : authentification, pare-feux,...
●
Adressage, nommage, routage éprouvés
●
●
●
Services réseau de haut niveau: équilibrage
de la charge, cache, mobilité, NAT.
Services applicatifs de haut niveau:
HTTP/XML/HTTP/FTP/SOAP/REST
Outils de supervision réseau: ping, SNMP,
Traceroute.
6LoWPAN
6LoWPAN
6LoWPAN
Types d'en-tête
Code
00
01
01
01
01
10
11
11
xxxxxx
000001
000010
010000
111111
xxxxxx
000xxx
100xxx
Type d'en-tête
NALP
IPv6 Adresses Ipv6 non compressées
LOWPAN_HC1 Ipv6 compressé
LOWPAN_BCO Broadcast
ESC Additional Dispatch byte follows
MESH Mesh header
FRAG1 Fragmentation Header (first)
FRAGN Fragmentation Header
6LoWPAN
●
●
●
●
6LoWPAN reprend le principe des en-têtes
d'extension de IPv6 en empilant les en-têtes.
L'en-tête Fragmentation est utilisé chaque
fois que la charge utile ne peut être
transportée dans une unique trame IEEE.
L'en-tête Mesh est utilisée lorsque des
trames IEEE sont transmises avec de
multiples sauts radio.
L'en-tête HC1_LOWPAN indique un en-tête
de compression.
6LoWPAN
●
Lorsque la charge utile ne peut être contenue
dans une trame 802.15.4, on doit la
fragmenter et chaque fragment doit être
préfixé de l'en-tête de fragmentation.
6LoWPAN:Fragmentation
Header
●
●
●
●
●
Tous les fragments sauf le dernier doivent
être des multiples de 8 octets.
Le premier en-tête ne contient pas d'offset et
est préfixé 110.
Les suivants sont préfixés 111 et l'offset (8
bits) est en incréments de 8 octets..
La taille du datagramme (11 bits) est celle de
la charge utile avant fragmentation.
Le tag (16 bits) est commun à tous les
fragments d'une même charge utile.
6LoWPAN
●
●
L'en-tête Mesh est utilisé pour envoyer des
charges utiles avec de multiples sauts.
6LoWPAN:Mesh Header
●
●
●
Les bits 2 et 3 indiquent si les adresses
source et destination sont des adresses
courtes sur 16 bits ou des adresses IEEE
étendues sur 64 bits.
Le champ de 4 bits est décrémenté à chaque
saut et le paquet est supprimé s'il vaut zéro.
Les adresses source et destination peuvent
être sur 16 ou 64 bits.
6LoWPAN
●
●
6LoWPAN utilise un principe de compression
des en-têtes optimisé pour le liaison locale et
appelé HC1.
6LoWPAN
●
●
●
●
HC1compresse le préfixe réseau 64 bits en
un seul bit s'il s'agit du préfixe bien connu de
la liaison locale.
Le champ Next Header sur 2 bits indique si
suit un paquet UDP, TCP ou ICMPv6.
La redondance intercouches permet de
supprimer plusieurs champs (PayLoad
Length, Interface Identifier, ...).
Le champ Version est toujours supprimé car
il vaut toujours 6.
6LoWPAN
●
●
Lorsque le bit HC2 est à 1, les 8 bits suivants
spécifient comment l'en-tête UDP est
compressé.HC2 utilise un ensemble de ports
bien connus (61616-61631). Si un port
appartient à cet intervalle, les 12 bits de
poids le plus fort sont supprimés.
6LoWPAN
6LoWPAN
●
●
●
●
La compression HC1 est adaptée pour les
communications unicast sur la liaison locale.
L'Internet Draft « 6LoWPAN Compression of
IPv6 Datagrams » définit une méthode de
compression plus globale nommée IPHC qui
utilise la notion de contexte partagé.
Ce contexte peut être par exemple un préfixe
global de routage pour tout le réseau ou CPR
(Common Routing Prefix).
IPHC compresse le préfixe en un identifiant
de 4 bits.
6LoWPAN
●
●
●
●
●
IPHC peut stocker jusqu'à 16 contextes
différents.
Les 3 premiers bits (001) sont le type et
indiquent IPHC.
Le bit TF indique si les champs Traffic Class
et/ou Flow Label sont compressés.
Le bit HLIM concerne le champ Hop_by_Hop.
Le champ M (Multicast) précise si l'adresse
destination est unicast ou multicast.
6LoWPAN
●
●
Les bits 8 à 15 indiquent les méthodes de
compression pour les adresses source et
destination. Si le champ CID (Context
Identifier) est à zéro, on utilise le contexte
par défaut. S'il est à 1, les 4 bits suivants
indiquent quel contexte utiliser.
Le bit NH (Next Header) indique si l'en-tête
suivant est compressé.
6LoWPAN
●
●
●
Les champs SAC (Source Adress
Compression) et SAM (Source Adress Mode)
précisent le type de compression et le type
de codage de l'adresse destination.
Les champs DAC et DAM sont identiques
aux champs SAC et SAM pour la destination.
6LoWPAN
6LoWPAN
IPSO Alliance
●
●
IPSO Alliance: Internet Protocol for Smart
Objects vise à promouvoir IP comme
protocole réseau pour connecter les
« choses ».
Membres : Atmel, EDF, Bosch, Ericsson,
Sun, Intel, Freescale, Sensinode, Cisco, Arch
Rock....
6LoWPAN: produits Arch Rock
●
●
IP Sensor Node est un équipement sans fil
802.15.4 avec des capteurs intégrés de
température, humidité et luminosité. Il rejoint
automatiquement un réseau IP maillé, a une
interface de gestion Web et des services
UDP/TCP/Shell.
Phynet Router est une passerelle.
6LoWPAN: produits Sensinode
●
NanoStack et NanoRouter.
6LoWPan: implémentation
●
●
●
●
Contiki: The Operating System for
Embedded Smart Objects- the internet of
Things.
Contiki est un système d'exploitation open
source offrant des communications Ipv4 et
Ipv6.
Développé au Swedish Institute of Computer
Sciences.
http://www.sics.se/contiki
6LoWPAN: implémentation
●
●
Le projet b6lowpan devenu blip implémente
les principales fonctionalités de 6LowPAN
dans TinyOS soit compression HC-01 des
en-têtes, protocole de découverte des
voisins, routage de bout en bout,....
http://smote.cs.berkeley.edu:8000/tracenv/wi
ki/blip
6LoWPAN: documents de
référence
●
●
●
RFC4944-Transmission of IPv6 Packets over IEEE
802.15.4 Networks.
RFC4919- IPv6 over Low-Power Wireless Personal
Area Networks (6LowPans): Overview, Assumptions,
Problem Statements and Goals.
Internet-Drafts:
-Compression Format for IPv6 Datagrams in
6LoWPAN Networks.
-Design and Application Spaces for 6 LoWPANs.
-Neighbour Discovery for 6LoWPAN.
-Problem Statement and Requirements for 6 LoWPAN
Routing.
6LoWPAN:documents de
référence
●
IEEE Std 802.15.4-2006 (Revision of IEEE Std
802.15.4-2003)
●
RFC4862 IPv6 Stateless Adress Autoconfiguration.
●
RFC4861 Neighbor Discovery for IP version 6 (IPv6).
●
RFC4291 IP Version 6 Addressing Architecture.
●
●
●
RFC4941 Privacy Extensions for Stateless Address
Autoconfiguration in IPv6
RFC2460 Internet Protocol, Version 6 (IPv6)
Specification.
RFC2464 Transmission of IPv6 Packets over Ethernet
Networks.
6LoWPAN:webographie
●
IEEE 802.15 WPAN™ Task Group 4 (TG4) à
www.ieee802.org/15/pub/TG4.html
●
http://www.ietf.org/
●
http://www.cs.berkeley.edu/~jwhui/
●
http://www.ipso-alliance.org/
●
●
http://lara.inria.fr/ipv6/ IPv6 applicability to
Intelligent Transport Systems(ITS).
http://www.g6.asso.fr/ Ipv6 Task Force
France.