Un monde de TCP/IP - IUT de Nice

Transcription

Un monde de TCP/IP - IUT de Nice
Wireless Networks
Réseaux sans-fil
Un monde de TCP/IP
Série de rappels
[email protected]
1
Request for Comments
 Standards officiels de la communauté
Internet
 Beaucoup de RFC sont uniquement
publiées dans un but d’information
 http://www.rfc.org
2
Modèle OSI
7
Application layer
6
Presentation layer
5
Session layer
4
Transport layer
3
Network layer
2
Data Link layer
1
Physical layer
3
Les couches dans les paquets
Chaque couche encapsule la précédente
Application
Présentation
fichier
Données présentation
Session
Données session
Transport
Données transport
Réseau
Données réseau
Liaison
Données liaison
Physique
Données physique (bits)
4
TCP/IP model 1/3
Application layer
TCP / UDP layer
IP layer
Data link layer
Physical layer
5
Pile de protocoles Internet usuelle
Couche application
Couche transport
Echange de données entres applications
(HTTP, HTTPS, SMTP)
Liaison entre deux machines
(TCP, UDP)
Couche réseau
Adressage Internet, Routage, Acheminement
des paquets (IP, ICMP)
Couche liaison
Liaison peer to peer, intégration avec le
Hardware (Ethernet, PPP)
6
TCP/IP model 2/3
Application layer
Application layer
TCP / UDP layer
TCP / UDP layer
IP layer
IP layer
Data link layer
Data link layer
Physical layer
Physical layer
7
Parallèle: La pile de NetBEUI
Pile utilisée par Microsoft Windows
Conçue à l’origine pour des petits réseaux locaux
NetBEUI disparaît avec MS Windows 2000
Application
Application : WINS, SMB (Server Message Block), NCB
(Network Control Block), RPC (Remote Procedure Control)
Session
Session : NetBIOS (Network Basic Input/Output System)
Transport/Réseau
Transport/Réseau : NetBT (NetBios over Tcp/ip),
Liaison/Physique
NetBEUI (NetBios Extented User Interface)
Liaison/Physique : Ethernet, token-ring, …
8
Exemple Web
Web browser
Implémentation TCP
Implémentation IP
Driver Ethernet
Protocole HTTP
Protocole TCP
Protocole IP
Protocole Ethernet
Web server
Implémentation TCP
Implémentation IP
Driver Ethernet
Ethernet
9
1er et 2ème niveaux (layers)
 Les deux plus bas niveaux (physique et
liaison de données - physical and data link)
acheminent les datagrammes entre les
machines d’un même LAN
 On trouve plusieurs médias et plusieurs
protocoles à cet effet




ethernet,
token ring,
ATM,
etc.
10
Maximum Transmission Unit
 Chaque réseau de niveau 2 possède
sa propre valeur de MTU
 La MTU spécifie la taille maximale que
le média réseau peut transporter en
un seul datagramme
11
Fragmentation IP
 Si un paquet IP est plus gros que la
MTU du niveau du lien, le paquet a
besoin d’être fragmenté
 Les fragments sont des paquets IP
indépendants mais partageant la
même “identité IP”
 Les fragments sont routés
séparemment et réassemblés à la
destination finale
12
Path MTU (Maximum Transmission Unit)
Et quand on traverse des segments de technologies de
niveau 2 différentes ?
Path MTU
 La Path (chemin) MTU représente la
plus petite MTU des réseaux de 2ème
niveau rencontrés sur le chemin
 La Path MTU est une information très
utile pour optimiser la fragmentation
IP
14
3ème niveau - Internet Protocol
 Internet protocol (IP) achemine les
paquets entre des machines au
travers de réseaux
 Chaque machine possède une adresse
IP unique pour l’identifier
 Une route doit exister entre la
machine source et la machine de
destination
15
TCP/IP model 3/3
Application layer
Application layer
TCP / UDP layer
TCP / UDP layer
IP layer
IP
IP layer
Data link layer
Dl
Data link layer
Physical layer
Ph
Physical layer
16
IP header
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service|
Total Length
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Identification
|Flags|
Fragment Offset
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live |
Protocol
|
Header Checksum
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Source Address
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Destination Address
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Options
|
Padding
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
17
Rappel: Address Resolution Protocol
 ARP permet une association
(mapping) entre une adresse de 3ème
niveau (IP) et une adresse de 2ème
niveau (Ethernet)
 ARP ”requests” et ”replies”
 RARP
 proxy ARP
 gratuitous ARP
18
ARP
19
Scénario 1: A veut dialoguer avec B
situé sur le même réseau
Host A
192.168.3.5
Internet
Host B
192.168.3.125
Adresse de réseau
192.168.3.0/24
 de 192.168.3.0 à
192.168.3.255 (exclus)
20
Scénario 2: A veut dialoguer avec B
mais non situé sur le même segment
Host A
192.168.3.5
Internet
Host B
212.20.3.125
Adresse de réseau
192.168.3.0/24
de 192.168.3.0 à
192.168.3.255 (exclus)
Adresse du routeur
(passerelle par défaut)
192.168.3.1
21
Commandes de configuration du routage
Windows
Standard
UNIX
Configuration >ipconfig (NT, 2K,
>ifconfig
XP)
de l’adresse
or
IP
>winipcfg (Win9x,Me)
New
UNIX
>ip address show
Configuration >route print
du routage
>route add …
>route add -p …
>netstat -rn
>route
>ip route show
>route add
>ip route add …
… >netstat – >ip mr
rn
Configuration >arp -a
ARP
>arp -d
>arp
> ip maddr
> ip neighbour
22
Rappel: Routage IP
 Chaque machine et chaque passerelle sait
quel sera le prochain saut (hop) pour router
les paquets IP
 Le routage est toujours unidirectionnel
 Des informations de routage pour chaque
direction doivent être définies séparemment
 Le routage peut être:
 Statique
 Dynamique
 Combinaison des deux
23
Routage statique
Destination
Gateway
Netmask
Flags
Metric
Ref
Interface
0.0.0.0
10.0.1.0
192.168.1.0
172.16.4.0
127.0.0.0
192.168.2.0
10.0.1.254
10.0.1.5
192.168.1.5
172.16.4.5
0.0.0.0
172.16.4.50
0.0.0.0
255.255.255.0
255.255.255.0
255.255.255.0
255.0.0.0
255.255.255.0
UG
U
U
U
U
U
0
0
0
0
0
1
0
0
0
0
0
0
ge0
ge0
ge1
ge2
lo
ge2

La passerelle par défaut est 10.0.1.254




La route pour le réseau 192.168 est directe – DMZ.
La route pour le réseau 172.16.4.0 – réseau interne.
Le réseau 127.0.0.0 représente l’interface de loopback.
Pour un réseau spécifique de R&D (192.168.2.0), le
routeur/firewall devra utiliser 172.16.4.50.
 La deuxième route indique que pour atteindre ce routeur
et ce réseau il faudra utiliser l’interface ge0.
24
Configuration du Routeur/Firewall
127.0.0.0/8
ge2
ge0
.5
.5
.50
ge1
172.16.4.0/24
.254
.5
10.0.1.0/24
192.168.2.0/24
0.0.0.0/0
192.168.1.0/24
Destination
Gateway
Netmask
Flags
Metric
Ref
Interface
0.0.0.0
10.0.1.0
192.168.1.0
172.16.4.0
127.0.0.0
192.168.2.0
10.0.1.254
10.0.1.5
192.168.1.5
172.16.4.5
0.0.0.0
172.16.4.50
0.0.0.0
255.255.255.0
255.255.255.0
255.255.255.0
255.0.0.0
255.255.255.0
UG
U
U
U
U
U
0
0
0
0
0
1
0
0
0
0
0
0
ge0
ge0
ge1
ge2
lo
ge2
25
Exemple de routage
Internet
Routes par défaut
Routes statiques
selon texte attaché
net A+B
r1
a2
Réseau A
net B
a1
net B
r2
b1
a3
b4
Réseau B
b2
b3
26
Exemple de (mauvais) routage asymétrique
Routes par défaut
Internet
FW
a2
Réseau A
a1
Client
b2
a3
Réseau B
b1
Serveur
Client a1 veut se connecter à Serveur b1…
…mais Serveur b1 répondra directement par le réseau A via a3.
27
4ème niveau - Protocoles de Transport
 Les protocoles de transport
définissent les points d’arrivée au sein
d’une machine (ports)
 Les deux protocoles les plus utilisés
 transmission control protocol (TCP)
 user datagram protocol (UDP)
 TCP possède bien plus de
fonctionnalités que UDP, mais il est
donc plus “complexe” à paramètrer
28
UDP
 UDP est un protocole sans connexion
 connectionless protocol
 Pas de fiabilité rajoutée par dessus le
niveau IP
 Toutes les retransmissions doivent être
gérées par le niveau Application
 Simple à implémenter, très suffisant
la plupart du temps
29
UDP header
0
7 8
15 16
23 24
31
+--------+--------+--------+--------+
|
Source
|
Destination
|
|
Port
|
Port
|
+--------+--------+--------+--------+
|
|
|
|
Length
|
Checksum
|
+--------+--------+--------+--------+
30
TCP
 TCP est un protocole orienté
connexion
 connection-oriented protocol
 Une connexion est établie avant tout
envoi de données
 Une connexion TCP se place
exactement entre deux points finaux
 Quand la connexion n’est plus
utilisée, elle est terminée
31
TCP
 Protocole fiable
 Les applications n’ont pas à se soucier
des problèmes de retransmissions
 Tampons de données
 Nécessaires du côté émetteur comme du
côté récepteur
32
TCP header
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Source Port
|
Destination Port
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Sequence Number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Acknowledgment Number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data |
|U|A|P|R|S|F|
|
| Offset| Reserved |R|C|S|S|Y|I|
Window
|
|
|
|G|K|H|T|N|N|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Checksum
|
Urgent Pointer
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Options
|
Padding
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
33
fin
ack
fin
ack
Serveur
Étqblissement
de la
connexion
syn
syn/ack
ack
Terminaison de
la connexion
Client
Connexion TCP – “3 way handshake”
DATA
34
3/4ème niveau –
Internet Control Message Protocol
 ICMP permet d’envoyer des messages
d’erreur et d’autres indications sur
l’état du réseau qui doivent attirer
notre attention
 E.g. utilitaires ping, traceroute
 Deux principaux types:
 Requêtes/réponses - queries/replies
 Messages d’erreur - error messages
35
Message ICMP
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Type
|
Code
|
Checksum
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
(content depends on type and code)
|
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
36
Requêtes ICMP
 echo request / reply
 connu comme ping (certains traceroute)
 aide à vérifier que la machine distante est
“up&running”
 router solicitation / advertisement
 une machine demande un routeur par défaut par
une sollicitation et un routeur présent répond
par une publication
 timestamp request / reply
 une requête pour l’heure depuis minuit (ms)
 address mask request / reply
 une requête pour un masque de sous-réseau
 généralement envoyé sur l’adresse de broadcast
37
Erreurs ICMP
 Le message reprend l’entête IP et les 8 premiers octets
du datagramme IP ayant provoqué l’erreur
 destination unreachable
 network unreachable
 host unreachable
 protocol unreachable
 port unreachable
 fragmentation needed but don’t fragment bit is set
 source route failed
 redirect
 Envoyé par un routeur au précédent pour indiquer une
route plus rapide
 time exceeded
 le TTL, décrémenté à chaque saut, est arrivé à 0
38
Rappel: Domain Name System
 Des noms lisibles par les humains
“normaux” sont plus faciles à retenir
que des numéros IP
 Le DNS fait la relation entre les
adresses IP et les noms de domaines
 Les informations de “mapping” sont
distribuées et maintenues par les
serveurs DNS à travers la planète
entière
39
Exemple: Navigation Web
Workstation
1
DNS local
IP: 10.1.1.220
4
IP: 10.1.1.1
ns1.client.com
ws.client.com
6 5
Internet
3
2
Serveur Web
DNS distant
IP: 192.168.200.200
IP: 192.168.168.1
www.cible.com
dns.cible.com
40
Rappel: [uni|multi|broad]cast
 Unicast
 un destinataire
 Multicast
 un groupe de destinataires
 Broadcast
 destiné à "tout le monde"
41
Adresse Ethernet et *cast
 un octet pair pour l’octet de poids fort
(even byte as the most significant
byte) de l’adresse MAC indique une
adresse de type unicast
 un octet pair indique une adresse de
type multicast
 FF:FF:FF:FF:FF:FF est l’addresse de
broadcast (un cas particulier de
multicast)
42
Adresse IP et *cast
 Les adresses IP de 224.0.0.0 à
239.255.255.255 sont de type
multicast
 Les adresses plus petites sont de type
unicast
 La dernière adresse de chaque
segment de réseau représente son
adresse de broadcast
43
IP Multicast  Ethernet
 Toutes les adresses IP de type Multicast
sont associées à une plage d’adresses MAC
spécifique
 La plage d’adresse est de
01:00:5E:00:00:00 à 01:00:5E:7F:FF:FF
 Pour compléter l’adresse, copier les 23 bits
de poids faible de l’adresse IP multicast
dans les 23 bits de poids faible de l’adresse
MAC
 Une adresse MAC de type multicast peut
servir jusqu’à 32 adresses IP de type
multicast
44
Multicast IP: principe de fonctionnement
broadcast
unicast
Source
multicast
Inscription au groupe
Interfaces Ethernet et *cast
 Habituellement, chaque NIC (network
interface card == carte réseau)
présente exactement une adresse
MAC de type unicast
 un NIC peut présenter de 0 à N
adresse IP unicast
 un NIC peut aussi rejoindre de 0 à M
adresses (IP ou MAC) multicast
46