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