Cours 2 : Protocole IP - Marc-Andre Leger · 2020. 12. 18. · Services TCP Le TCP s'engage à...

56
Cours 2 : Protocole IP

Transcript of Cours 2 : Protocole IP - Marc-Andre Leger · 2020. 12. 18. · Services TCP Le TCP s'engage à...

  • 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

    Identification du paquet

    Version Longueur

    d'entête Type de service Longueur total du paquet IP

    Fanion Position relative

    015 31

    Compteur du temps de vie Protocole

    Zone de conrôle d'erreur (Checksum)

    Adresse du source

    Adresse du destinata ire

    Options Bourrage

    Données

  • 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 Reservé1 ICMP(Internet Control Message Protocol)2 IGMP(Internet Group Management Protocol)3 GGP ( Gataway to Gateway Protocol)6 TCP(Transmission Control Protocol)8 EGP (Exterior gateway Protocol)9 IGP(Interior Gateway Protocol)16 CHAOS17 UDP ( User DAtagram Protocol)18 MUX ( Multiplexing)22 XNS-IDP ( Xerox IDP)29 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 délai Débit Fiabilité réservé

    0 1 2 3 4 5 6 7Précédence 111 = Network Control110 = Internetwork Control100 = Flash Override011 = Flash010 = Immediate001 = Priority000 = Routine

    Delai Debit Fiabilité

    0 = Normal 0 = Normal 0 = Normal1 = Low 1 = High 1 = High

  • Services IP versus les applications

    Application Délai Débit fiabilité Cout valeur HexTelnetFTP contrôle donnéesSMTP phase de com. phase de donn.DNS requêtes TCP requêtes UDP zone de transf.

    ICMPSNMPBOOTPNNTP

    1

    10

    10

    100

    0000

    0

    01

    01

    001

    0000

    0

    00

    00

    000

    0100

    0

    00

    00

    100

    0001

    0x10

    0x100x08

    0x100x08

    0x100x000x08

    0x000x040x000x02

  • Les options de IP

    ● Enregistremet du chemin utilisé● Sécurité● Marquage du temps de transit (Timestamp)

  • Les options de IP

    Code Longueur Données d'option

    1 octet 1 octet Longueur octets

    bits0 1 7

    flag bit

    2

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

    2 4 var InternetTimestamp

  • 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 C Station D

    Station E

    Qui est sur le segment ?

  • Réponse ARP

    Station B Station A

    Station C Station D

    Station E

    Je suis là et mon adresse physique est :

  • Paquet ARP dans Ethernet

    Adresse destination

    Adresse destination

    Type ou longueur

    Data Ethernet

    CRC

    Paquet ARP

  • 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

    HLEN : Longueur de l'adresse Hardware PLEN : Longueur de l'adresse IP

    Adresse IP

    Adresses Hardware Destination

    Adresse IP Source

    Adresse Hardware Source

  • DNS root

  • DNS query

  • RIP

    Net 2 address, 1-2Family Net 2Net 2 address, 3-6

    Net 2 address, 7-10Net 2 address, 11-14Distance network 2

    Net 1 address, 1-2Family Net 1Net 1 address, 3-6

    Net 1 address, 7-10Net 1 address, 11-14Distance network 1

    ReservedCommandVersion

  • Routing

  • SNMP

    Simple Network Management Protocol

    IP

    Datalink

    Physical

    Application

    TCP/UDPICMP

    ARP

    MIB

    MIBMIBMIB

    MIBMIB

    MIB

  • 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

    A C K

    0 1531

    Zone de conrôle d'erreur (Checksum)

    Bourrage

    Données

    Adresse du port source Adresse du port destination

    Numéro de séquence

    Numéro d'accusé de réception

    Long. de l' entête

    RéservéeU R G

    SYN

    F I N

    R S T

    P S H

    Options

    Champ de contrôle erreur Zone d'urgence

    Fenêtre coulissante

  • Port

    ● Les adresses des ports source et destination correspondent aux points d'accès

    Numéro Nom Description5 RJE Remote Job Entry7 ECHO Echo11 USERS Active Users13 DAYTIME Daytime20 FTP-DATA File Transfert Data21 FTP-CONTROL File Transfert Control23 TELNET Telent25 SMTP Simple Mail42 TIME Time43 NAMESERV Host Name sever53 NICKNAME Who Is53 DOMAIN Domain Name Sever67 BOOTPS Bootstrap Server68 BOOTPC Bootstrap Client69 TFTP Trivial FTP79 FINGER Finger101 HOSTNAME Nic Host Name Server102 ISO-TSAP ISO transport103 X400 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

    Syn, ISN

    PassiveOpen

    ApplicationServeur

    Closed

    Listen

    TCP

    PassiveOpen

    Application Client

    Closed

    Listen

    Syn Received

    Etablished

    Syn,ACK, ISN',ISN+1

    OpenSucces

    OpenSucces

    ACK, ISN'+1,ISN+1

    Etablished

    TCP

  • É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 (Three-Way 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

    2

    3

    4

    5

    6

    7

    8

    (300 bytes sent)

    (300 bytes sent)

    (300 bytes sent)

    (300 bytes sent)

    (300 bytes sent)

    SEQ = 3

    ACK = 303

    SEQ = 303

    ACK = 303

    SEQ = 603

    ACK = 303

    SEQ = 303

    SEQ = 303

    ACK = 903

    X Not delivered

    Receive ACK =303

    Still expecting 303

    Time out and resend two segments

    ACK the two segments

  • 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

    Data

    Fin

    Closed

    ApplicationServeur

    Closed

    Listen

    TCP

    Closerequest

    Application Client

    Closed

    Fin Wait1

    Close Wait

    Etablished

    Fin ACK

    Closed

    CloseIndication

    Fin ACK

    Etablished

    TCP

    Data

    Fin Wait2

    Timewait

    Fin

  • Diagramme de l’automate à l’état fini du TCP.CLOSED

    Passive OPEN create TCB

    LISTEN

    SYN RCVD

    ESTAB

    SEND and SYN

    rcv SYN and ACK

    rcv ACK of SYN x

    rcv SYN and SYN,ACK

    SYN SENT

    CLOSE delete TCB

    Active Open createTCB and SYN

    CLOSE delete TCB

    CLOSING

    TIME WAIT

    LAST_ACK

    CLOSED

    FIN WAIT-2

    FIN WAIT -1 CLOSE WAIT

    rcv FIN and ACK

    rcv ACK of FIN x

    rcv ACK of SYN x

    rcv FIN and ACK

    rcv SYN,ACK and ACK

    Timeout=2MSL delete TCB

    CLOSE and FIN

    rcv FIN and ACK

    rcv ACK of FIN x

    rcv ACK of FIN x

    CLOSE and FIN

  • 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 (One-

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

    0 1531

    Données

    Adresse du port source Adresse du port destination

    Longueur 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

    http://www.rfc-editor.org/