Protocole IP
Transcription
Protocole IP
Cours 2 : Protocole IP Protocole IP ● ● ● ● ● ● ● ● ● Fonctions de la couche Réseau Protocole IP Les services offerts par IP Description du paquet IP Fragmentation et Réassemblage Adressage ARP RARP BOOTP Fonctions de la couche Réseau ● Principale – échange de paquets à travers un réseau ● Fonctions – Service avec connexion ou sans connexion(datagramme) – Routage (trouver le chemin du destinataire) – Contrôle de flux – Contrôle d'erreur – Segmentation et réassemblage des paquets – Congestion Protocole Internet (IP) ● ● ● ● ● Pierre angulaire du réseau Internet Réalise le transfert en datagramme N'assure pas la détection de paquets en erreurs N'indique pas qu'une donnée est perdue (erronée) Fait abstraction des caractéristique des sous réseaux Avantage ● Service en datagramme – gestion des paquets facilitée – résolution des engorgements – pas besoin d'établissement de connexion ● ● ● ● Adressage (réseau, hôte) Souplesse Extension de la source et de la destination Routage indépendant du type de routage sélectionné Inconvénients ● ● ● Adressage est actuellement limitée Qualité de service peu étendue Peu de sécurité Architecture TCP/IP Description du paquet IP 31 15 0 Version Longueur Type de service d'entête Identification du pa quet Compteur du temps de vie Longueur total du paquet IP Fanion Protocole Position relative Zone de conrôle d'erreur (Checksum) Adresse du source Adresse du destinata ire Options Données Bour rage Les champs du paquet IP ● ● ● ● Version Longueur de l'entête du paquet Internet (IHL). Type de service (TOS, Type of service)(voir plus loin). Longueur totale du paquet. Les champs du paquet IP(suite) ● ● Identification du paquet. Fanion. – le premier le bit D (Don’t Fragment); – le deuxième le bit M (More Fragment); – le troisième bit est le bit O (Qualificator of paquet). ● Position relative. Les champs du paquets IP(suite) ● ● ● ● ● ● Compteur du temps de vie. Protocole. Zone de contrôle d’erreurs (Header Checksum). Adresse source et Adresse destination. Options. Bourrage Les protocoles dans le paquet IP 0 1 2 3 6 8 9 16 17 18 22 29 Reservé ICMP(Internet Control Message Protocol) IGMP(Internet Group Management Protocol) GGP ( Gataway to Gateway Protocol) TCP(Transmission Control Protocol) EGP (Exterior gateway Protocol) IGP(Interior Gateway Protocol) CHAOS UDP ( User DAtagram Protocol) MUX ( Multiplexing) XNS-IDP ( Xerox IDP) ISO-TP4 ISO transport Class 4) Réassemblage des paquets ● ● ● On ne fait de réassemblage qu'à la station hôte. Perte de performance On n'utilise pas les paquets au maximum des tailles permises. Les types de service Type of service Précédence 0 délai Débit Fiabilité 1 2 réservé 3 4 5 6 7 Précédence 111 = Network Control 110 = Internetwork Control 100 = Flash Override 011 = Flash 010 = Immediate 001 = Priority 000 = Routine Delai 0 = Normal 1 = Low Debit 0 = Normal 1 = High Fiabilité 0 = Normal 1 = High Services IP versus les applications Application Telnet FTP contrôle données SMTP phase de com. phase de donn. DNS requêtes TCP requêtes UDP zone de transf. ICMP SNMP BOOTP NNTP Délai 1 Débit 0 1 0 0 1 1 0 fiabilité 0 Cout 0 valeur Hex 0x10 0 0 0 0 0x10 0x08 0 1 0 0 0 0 0x10 0x08 1 0 0 0 0 1 0 0 0 1 0 0 0x10 0x00 0x08 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0x00 0x04 0x00 0x02 Les options de IP ● ● ● Enregistremet du chemin utilisé Sécurité Marquage du temps de transit (Timestamp) Les options de IP 1 octet Code 0 flag bit Longueur octets 1 octet Longueur 1 Données d'option 2 7 Classe bits Numéro d'option Classe Numéro Longueur description 0 0 0 fin de l'option 0 2 11 sécurité 0 7 var enregistrement de route 2 4 var Internet Timestamp LAB 1: Etherreal ● ● Les étudiants installent l’analyseur de protocole Etherreal : installation des modules Windows et examen de paquets sur le LAN Dans un premier temps, les étudiants analysent le trafic sur le réseau en faisant un ‘capture’ avec Etherreal. Types de services (partie 1) ● ● ● ● ARP RARP DNS RIP Requête ARP Station B Station A Station E Qui est sur le segment ? Station C Station D Réponse ARP Station B Station A Station E Je suis là et mon adresse physique est : Station C Station D Paquet ARP dans Ethernet Paquet ARP Adresse Adresse Type ouData destinationdestinationlongueurEthernet CRC Reverse Address Resolution Protocol ● ● ● ● Dans le cas des processeurs (i.e. des hôtes sans mémoire secondaire = Diskless Host) on utilise le protocole . Le serveur garde une copie des adresses de tous les processeurs qui sont connectés à lui. Quand un processeur entre en service pour la première fois, il envoie un message RARP Request au serveur qui contient sa propre adresse NPA. Le serveur va lui répondre par RARP Reply contenant l’adresse IP du quéreur et son propre IP Paquet ARP/RARP HLEN PLEN Opération Adresse Hardware Source Adresse IP Source Adresses Hardware Destination Adresse IP HLEN : Longueur de l'adresse Hardware PLEN : Longueur de l'adresse IP DNS root DNS query RIP Command Version Reserved Family Net 1Net 1 address, 1-2 Net 1 address, 3-6 Net 1 address, 7-10 Net 1 address, 11-14 Distance network 1 Family Net 2Net 2 address, 1-2 Net 2 address, 3-6 Net 2 address, 7-10 Net 2 address, 11-14 Distance network 2 Routing Simple Network Management Protocol SNMP MIB Application MIB TCP/UDP MIB MIB ICMP MIB MIB ARP Datalink MIB Physical IP Types de services (partie 2) ● ● TCP UDP Protocole TCP et UDP ● ● ● ● ● ● ● ● Fonctions de la couche transport Services offerts par TCP Le paquet TCP La phase de connexion TCP La phase de transfert de données La déconnexion Les primitives de transport Le protocole UDP Fonctions de la couche transport ● ● ● Une transmission de bout-en-bout des messages entre deux stations (End-To-End Transport Service). Le protocole de transport est aussi appellé protocole entre hôtes (Host-To-Host Protocol). Toutes les fonctions que le réseau ne peut offrir et qui est demandé par l’application. Services TCP ● ● ● ● ● ● Le TCP s'engage à produire un service de transport Service de bout en bout Efficient(efficace) Sans erreur Ordonnencement des paquets. TCP est un client (utilise) du protocole IP – IP a été mis en place pour produire un service en datagramme où les paquets sont transmis et reçus à travers les réseaux. ● ● Le service offert par le TCP ressemble auTP4 d'ISO La connexion ici est réalisée en Full-Duplex. Fonctions de TCP ● Gestion de la connexion – Avec phase de connexion et une phase de libération ● Transfert de données – – – – – Transfert de données fiable Messages ordonnés Bidirectionnelle (full duplex) Contrôle de flux (Crédit, accusé de reception positive ) Envoie les données sous forme de paquets de dimension variable. Fonctions TCP ● Urgence – De plus le TCP permet de transmettre un paquet immédiatement et directement sans subir le contrôle de flux du TCP. Il suffit pour cela de passer les bons paramètres dans les primitives. ● Contrôle d'erreur – – – – ● Détection d'erreur sur les données Détection des duplications Détection des paquets hors d'ordre Retransmission Adressage – Ports ou sockets ● Multiplexage – Plusieurs apllications peuvent utiliser le même service TCP Autres services ● PUSH – C'est TCP qui décide quand il doit transmettre un nouveau paquet. Le TCP de destination met les informations reçues dans un tampon et ne délivre ces informations que du moment où ce tampon est plein. ● Dimension de paquets – La taille du paquet qui peut contenir un large paquet ou un ensemble de petits paquets dépend du TCP responsable d'une livraison efficace. ● Qualité de service – Le TCP détermine la taille des paquets en fonction des exigences de qualité de service, de vitesse, de débit exprimées par l'utilisateur Description du paquet TCP 31 15 0 Adresse du port source Adresse du port destination Numéro de séquence Zone de conrôle d'erreur Numéro d'accusé de réception (Checksum) Long. de l' entête U A S R C Y G K N Réservée Champ de contrôle erreur Options Données P S H R S T F I N Fenêtre coulissante Zone d'urgence Bourrage Port ● Les adresses des ports source et destination correspondent aux points d'accès Numéro 5 7 11 13 20 21 23 25 42 43 53 53 67 68 69 79 101 102 103 Nom RJE ECHO USERS DAYTIME FTP-DATA FTP-CONTROL TELNET SMTP TIME NAMESERV NICKNAME DOMAIN BOOTPS BOOTPC TFTP FINGER HOSTNAME ISO-TSAP X400 Description Remote Job Entry Echo Active Users Daytime File Transfert Data File Transfert Control Telent Simple Mail Time Host Name sever Who Is Domain Name Sever Bootstrap Server Bootstrap Client Trivial FTP Finger Nic Host Name Server ISO transport X400 Les numéros de séquence ● Le numéro de séquence de 32 bits – Le paquet doit être livré directement au destinataire; la fenêtre coulissante est alors mis à N. – Supposons que le numéro de séquence est X. L'entité destinataire retourne un paquet avec le fanion ACK à 1 et le numéro d'accusé de réception à (X+N+1), le numéro de séquence attendu du prochain octet. La fenêtre coulissante est remise à sa valeur initiale. ● Le numéro d'accusé de réception de 32 bits – le numéro de séquence reçu sans erreur dans le bon ordre . ● La longueur de l'entête de 4 bits – le nombre de 32 bits contenus dans ce paquet. ● Un espace de réserve – il est alloué pour un usage futur. Les fanions ● Viennent ensuite 6 fanions (Flag) d'un bit chacun, ce sont: – URG (URGent-Flag) indique qu'il faut passer à travers le contrôle de flux; – ACK (ACKnowledgment) est réservé à l'accusé de réception; – SYN (SYNchronization) est là pour synchronisation; – PSH (Push-Flag) dit qu'il faut que les informations soient transmises tout de suite à l'application et non mise dans un buffer; – RST (ReSeT-Flag) exige une réinitialisation de la connexion; et enfin – FIN indique qu'il n'y a plus d'informations à envoyer. Ces fanions sont à 1 lorsque la fonction correspondante est demandée. Fenêtre et Urgence ● La fenêtre coulissante de 16 bits – sert pour le contrôle de flux – C’est le nombre de crédit donné à l’autre pour lui permetre d’envoyer des octets – Ce nombre est estimé par la dimension des tampons libres dans la station ● Zone d’urgence – utilisé pour envoyer des informations exprès avec URG. Gestion de la connexion et transfert de paquets ● ● ● ● Trois phases: l'établissement de la connexion, le transfert des informations et le contrôle de flux. la libération de la connexion Etablissement de la connexion Application Client Passive Open TCP TCP Closed Closed Application Serveur Passive Open Listen Listen Syn, ISN Syn Received Syn,ACK, ISN', ISN+1 Open Succes Etablished ACK, ISN'+1, ISN+1 Etablished Open Succes Établissement de la connexion ● ● ● Pour permettre non plus seulement une relation de quéreur des clients et de répondant du serveur, On utilise la procédure à trois mains (ThreeWay Handshake). ISN (Initiale Sequence Number) – le numéro de séquence du premier octet d'information transporté par le paquet. – Si ce numéro est présent ce numéro correspond au numéro de séquence initial (ISN = Initial Sequence Number) et le premier octet d'information est alors de (ISN+1). Transfert des des données ● Séquencement – L'établissement de la connexion étant fait, les informations sont transmises dans les paquets sous forme d'une série d'octets. Les octets sont numérotés modulo 232. – Le champs numéro de séquence du paquet décrit le premier octet du paquet. ● Crédit( contrôle de flux) – Crédit – stratégie de fenêtre coulissante (Appliquées sur les octets et non pas sur le paquet, plus flexible et plus efficient) ● Le contrôle d'erreur -> la méthode Go back N ARQ sans accusé de reception négative Le contrôle d’erreur. 1 SEQ = 3 (300 bytes sent) ACK = 303 3 4 Receive ACK =303 5 SEQ = 303 (300 bytes sent) X Not delivered ACK = 303 SEQ = 603 (300 bytes sent) ACK = 303 7 Time out and resend two segments 2 Still expecting 303 6 SEQ = 303 (300 bytes sent) SEQ = 303 (300 bytes sent) ACK = 903 ACK the two segments 8 TCB (Transport Connection Block) ● ● ● A chaque fois qu'un paquet est envoyé, le numéro de séquence et le temps de transmission sont enregistré dans Transport connection Block. Lorsque l'accusé de réception est reçu, la station calcule le temps d'un aller/retour. Ce temps là, va servir a estimer le Smooth round-Trip delay. Libération de la connexion ● ● Nous allons voir deux cas: La libération normale; – Dans le premier cas de libération normale nous pouvons être en présence de deux situations où celui qui prend l'initiative de libération est soit le client soit le serveur. – On suppose que le client a fini de transmettre ses informations et veut libérer la connexion. ● La libération brutale ou d'interruption. – Une libération brutale est générée si l'utilisateur envoie la primitive ABORT avec le fanion RST à 1. – Dès lors toute transmission ou réception est interrompue et les tampons sont vidés de toutes leurs informations. – Le serveur génère alors la primitive TERMINATE avec un code indiquant la raison de cette libération brutale. Libération de la connexion Application Client Close request TCP TCP Etablished Etablished Fin Wait1 Application Serveur Listen Fin Close Wait Fin Wait2 Fin ACK Data Data Fin Close Indication Timewait Fin ACK Closed Closed Closed Closed Diagramme de l’automate à l’état fini du TCP. Active Open createTCB and SYN CLOSED Passive OPEN create TCB CLOSE delete TCB CLOSE delete TCB LISTEN rcv SYN and SYN,ACK SEND and SYN rcv SYN and ACK SYN RCVD rcv ACK of SYN x SYN SENT rcv SYN,ACK and ACK CLOSE and FIN ESTAB rcv FIN and ACK rcv ACK of SYN x FIN WAIT -1 CLOSE WAIT rcv ACK of FIN x rcv FIN and ACK FIN WAIT-2 CLOSE and FIN LAST_ACK CLOSING rcv ACK of FIN x rcv ACK of FIN x CLOSED TIME WAIT rcv FIN and ACK Timeout=2MSL delete TCB Interface avec les applications ● Primitives TCP – En effet le TCP utilise des primitives pour assurer les services TCP. ● OPEN – Passive open,Active open – Open parameters,Adressing,Timout,Security,Quality of service ● Transfert de données – Send, Send parameter,Urgent,Push,Timout ● Terminate – Close Protocole UDP ● ● ● L'UDP comme TCP est utilisé avec IP. Le protocole UDP offre un service de transport en datagramme L'UDP utilise la technique d'une main (OneWay-Handshake) i.e. l'UDP produit un UDP paquet et le transfère au protocole IP pour transmission. Services UDP ● Service datagramme sans connexion – Peu overhead – pas de detection d’erreur et de duplication ● Applications utilisant UDP – DNS – TFTP – NFS Format des paquets du protocole UDP 31 15 0 Adresse du port source Longueur Données Adresse du port destination Checksum Fonctions UDP ● ● ● ● Pour toutes ces raisons le paquet du protocole UDP est très simplifié Le paquet généré par le protocole UDP correspond à la zone d'information du datagramme IP. Si le checksum calculé par le destinataire ne correspond pas à celui contenu dans le paquet, le paquet est tout simplement ignoré. De plus il n'y a aucune garantie de livraison. Il n'existe aucune protection contre les erreurs telles la duplication, un numéro de séquence incorrect, la perte d'octet, l'absence d'accusé de réception. La seule protection contre ces erreurs est le champ checksum. Sources d’information ● ● RFC : http://www.rfc-editor.org/ Google