181
Cours de Réseaux Karim Sehaba Maître de conférences Université Lumière Lyon 2 [email protected] http://liris.cnrs.fr/~ksehaba

CMs-Reseaux.pdf

Embed Size (px)

Citation preview

  • Cours de Rseaux

    Karim SehabaMatre de confrences

    Universit Lumire Lyon 2

    [email protected]

    http://liris.cnrs.fr/~ksehaba

  • Organisation

    CM 5 sances d1h45 Examen

    Modles en couches : OSI & TCP/IP

    Couche internet (IP, ICMP, ARP/RARP)Couche transport (TCP, UDP)

    Couche application (HTTP, DNS, SMTP, FTP...)

    Plan

    Plan Modles en couches (OSI et TCP)Installation et configuration dun serveur Web ApacheL'adressage et le routage IPProgrammation par sockets MiniTchat (3 sances)valuation

    Programmation Rseaux

    TD 7 sances d1h45 Projet

    Supports de CM et TD ici : http://liris.cnrs.fr/ksehaba/Reseaux

  • Rfrences

    Livres : Rseaux de Andrew Tanenbaum Les Rseaux (edition2005) de Guy Pujolle TCP/IP : Architecture protocoles et applications de Douglas

    Comer TCP/IP pour les nuls de Candance Leiden et Marshall Wilensky

    Net : http://www.commentcamarche.net/ Certains transparents sont de Olivier Glck (Lyon1)

  • IntroductionQu'est-ce qu'un rseau ?

    Un ensemble d'entits (objets, personnes, machines, etc.) interconnectes les unes avec les autres

    Exemples : rseau de transport rseau tlphonique rseau de neurones

    Rseaux informatique Un ensemble d'ordinateurs relis entre eux grce des lignes physiques et changeant des informations sous forme de donnes numriques

    Intrts des rseaux informatique communication (personnes, processus) partage de ressources (fichiers, applications, matriels) minimisation des cots

  • Les topologiesEn busTous les ordinateurs sont relis une mme ligne de transmission (bus)

    En toileTous les ordinateurs sont relis un concentrateur (hub)

    En anneauLes ordinateurs sont situs sur une boucle

    Cblage en mailleChaque machine est relie toutes les autres par un cble

    Quels sont les avantages et inconvnients de chaque topologie ?

    Introduction

  • LAN (local area network - Rseau Local) mme organisation dans une petite aire gographique, dbit : [10 Mbps, 1 Gbps], utilisateurs : [100 1000]

    MAN (Metropolitan Area Network Rseau mtropolitain)

    interconnexion de plusieurs LAN gographiquement proches (dizaines de km)

    WAN (Wide Area Network Rseau tendu)

    interconnexion de plusieurs LAN travers de grandes distances gographiques

    LAN

    LAN

    LAN

    WAN

    Les types de rseaux

    Introduction

  • Introduction

    La commutation de circuitsCircuit entre les deux entits qui communiquentLe circuit reste ouvert jusquau moment o lun des deux participants interrompt la communication

    Le transfert de paquetsRoutageLe paquet qui arrive doit possder ladresse complte du destinataireLe routeur consulte sa table de routage pour choisir la meilleure ligne de sortie

    CommutationLes commutateurs acheminent les paquets vers le rcepteur en utilisant des rfrences, de circuit

    Les tables de commutation sont des tableaux, qui, une rfrence, font correspondre une ligne de sortie

    Seules les communications actives entre utilisateurs comportent une entre dans la table de commutation.

    Les techniques de transfert

  • Notion de protocole

    Modle de rfrence : OSI de ISO

    Modle utilis sur Internet : TCP/IP

    Modles en couches

  • A B

    1. Donnes

    2. Code binaire

    3. Signal

    Xyab lkd...

    00110110001...

    0 0 1 1 0 01 1 0 0

    -numrique-

    0 0 1 1 0

    -analogique-

    Problmatiques des rseaux

    3. Donnes

    2. Code binaire

    1. Signal

    Xyab lkd...

    00110110001...

  • Un ensemble de convention prtablies pour raliser un change de donnes entre deux entits

    Il dfinit le format des donnes et les rgles d'changes syntaxes et smantique de message...

    En particulier : format des donnes et les rgles dchange dlimitation des blocs de donnes changs organisation et contrle de lchange contrle de la liaison

    Communication en rseau : protocoles organiss en plusieurs couches

    Protocole

  • Open Systems Interconnection (Interconnexion des Systmes Ouverts)

    Dfinit par International Standard Organisation organisation non gouvernementale centaine de pays membres dite des normes dans tous les domaines

    Ide fondamentale : Modle en couches

    une couche : un ensemble homogne destin accomplir une tche ou rendre un service

    Le dcoupage en couche permet de dissocier des problmes de natures diffrentes rendre l'architecture volutive faire de la rutilisation

    Modle de rfrence OSI

  • Couchephysique

    Couchedes donnes

    Coucherseau

    Couchetransport

    Couchesession

    Coucheprsentation

    Coucheapplication

    bits

    DonnesDH DT

    DonnesNH

    DonnesTH

    DonnesSH

    DonnesPH

    DonnesAH

    Donnes

    Couchephysique

    Couchedes donnes

    Coucherseau

    Couchetransport

    Couchesession

    Coucheprsentation

    Coucheapplication

    Emetteur Rcepteur

    Modle de rfrence OSI

  • Modle TCP/IP

    TELNET, HTTP, FTP, DNS, SMTP...

    TCP, UDP

    IP, ARP/RARP, ICMP

    ETHERNET, ATM...Couche Rseaux

    CoucheInternet

    bits

    donnesH T

    CoucheTransport

    CoucheApplication

    Couche Rseaux

    CoucheInternet

    CoucheTransport

    CoucheApplication

    donnesH

    donnes

    Protocoles

    donnesH

    message

    segment

    datagramme

    trame

  • Rseau Acheminement des donnes sur la liaison Coordination de la transmission de donnes (synchronisation) Conversion des signaux (analogique/numrique)

    Internet : communication entre machine Adressage IP Acheminement de datagrammes Peu de fonctionnalit, pas de garanties Gestion de la fragmentation et assemblage

    IP IP

    IP

    IP

    IP IP IP

    IP

    IPIP

    datag

    ramme

    IP

    IP

    IP IP

    Les couches TCP/IP

    Modle TCP/IP

  • Transport : communication entre applications Protocole de transport de bout en bout Prsent uniquement en extrmits Transport fiable de segments (en mode connect) Protocole complexe (transmission, gestion des erreurs, squencement)

    Application services de gestion (transfert) de fichier et d'impression services de connexion au rseau services de connexion distance utilitaires Internet divers

    IP

    IP

    IP

    IP IP IP

    datag

    ramme

    IP

    IP IP

    TCP

    TCP

    TCP TCPIP IP

    IPIP

    IP

    Les couches TCP/IP

    Modle TCP/IP

  • en-tteTCP

    ServeurFTP

    donnes

    donnesen-tteIP en-tteTCP

    donnesen-tteIP en-tteTCPen-tteethernet

    PiloteETHERNET

    IP

    TCPmessage

    segment

    datagramme

    trame

    en-queueethernet

    en-tteapplicatif donnes

    en-tteapplicatif

    en-tteapplicatif

    en-tteapplicatif

    Encapsulation

    Efficacit du transfert = donnes utiles / donnes totalesEfficacit du transfert :

    Modle TCP/IP

  • en-tteTCP

    FTP

    donnes

    donnesen-tteIP en-tteTCP

    donnesen-tteIP en-tteTCPen-tteethernetPilote

    ETHERNET

    IP

    TCP

    message

    segment

    datagramme

    trame

    en-queueethernet

    en-tteFTP donnes

    en-tteFTP

    en-tteFTP

    en-tteFTP

    Modle TCP/IP

    FTP

    PiloteETHERNET

    IP

    TCP

    A B

    A veut envoyer 1024 octets de donnes B en utilisant le protocole FTP. On suppose que : - l'entte FTP a une taille de 70 octet - l'entte TCP a une taille fixe de 20 octets - l'entte IP a une taille fixe de 20 octets - l'entte plus l'en-queue des trames ETHERNET est de 18 octets - Taille max d'une trame Ethernet est de 1518 octets Quelle est l'efficacit du transfert ?

    Efficacit du transfert :

  • Notion de fanion

    Notion de transparence

    Dlimitation des donnes

  • Lors d'une transmission de donnes, il faut pouvoir reprrer le dbut et la fin de la squence des donnes transmises

    Fanion en transmission synchroneUn caractre spcialUne squence de bits particuliers

    fanion faniondonnes

    Fonctions du fanion dlimite les donnes maintien de la synchronisation de l'horloge de rception

    Quelles sont les problmes que pose le fanion ?

    Notion de fanion

    Exemple de fanion : 01111110

  • Les caractres spciaux comme le fanion ne sont pas dlivrs aux couches suprieures, il sont interprts pour les besoins du protocole

    Les caractres spciaux doivent pouvoir tre transmis en tant que donnes et donc dlivrs en tant que tel

    mcanisme de transparence

    dfinition d'un autre caractre spciale ; le caractre d'chappement

    Fonctionnement

    ct mission : Insertion du caractre d'chappement devant le caractre protger

    ct rception : L'automate examine chaque caractre pour dcouvrir le fanion de fin ; s'il rencontre le caractre d'chappement, il l'limine et n'interprte pas le caractre suivant -> il le dlivre au systme

    Notion de transparence

  • Seul le fanion (01111110) peut contenir plus de 5 bits conscutifs 1

    Ct mission : si 5 bits conscutifs sont 1, lautomate insre un 0

    Ct rception : si 5 bits conscutifs sont 1, lautomate regarde le bit suivant :

    sil est 1, il sagit dun fanion

    sil est 0, le 0 est enlev de la squence

    01111110 01111110000111111001011111001101100FanionFanion Squence originale

    01111110 0111111000011111010010111110001101100FanionFanion Squence transmise

    La technique du bit de bourrage

    Exemple

  • Organisation

    CM

    Couche internet (IP, ICMP, ARP/RARP)Couche transport (TCP, UDP)

    Couche application (HTTP, DNS, SMTP, FTP...)

    Plan

    Programmation Rseaux

    Modles en couches : OSI & TCP/IP

  • Couche Internet (1)

    Protocole IP

    Gestion de la fragmentation

    ARP, ICMP

    IPv6

  • TELNET, HTTP, FTP, DNS, SMTP...

    TCP, UDP

    IP, ARP/RARP, ICMP

    ETHERNET, ATM...Couche Rseaux

    CoucheInternet

    bits

    donnesH T

    CoucheTransport

    CoucheApplication

    Couche Rseaux

    CoucheInternet

    CoucheTransport

    CoucheApplication

    donnesH

    donnes

    Protocoles

    donnesH

    message

    segment

    datagramme

    trame

    Modle TCP/IP

  • Fonctionalit : communication entre machines Adressage IP Acheminement de datagrammes (en mode non connect) Peu de fonctionnalit, pas de garanties Gestion de la fragmentation et assemblage

    Couche internet

    Protocoles de la couche IP - Internet Protocol

    ARP - Address Resolution Protocol -

    ICMP - Internet Control and error Message Protocol - ...

  • Permet d'identifier les machines sur le rseau

    Distribues par ICANN -Internet Corporation for Assigned Names and Numbers

    NET_ID HOST_ID

    Adresse IP

    Adresse IP = 32 bits (4 octets)

    NET_ID : identifiant du rseau IP (utilis pour le routage)

    HOST_ID : identifiant de la machine dans le rseau IP

    4 octets

    Chaque adresse est compose de deux champs :

    Reprsentation dcimale : W.X.Y.Z

  • 4 octets

    HOST_IDNet_ID0

    Net_ID10

    Net_ID110

    Adresse de transmission multiple

    Rserv pour une utilisation ultrieure11110

    A

    B

    C

    D

    E

    1.0.0.0 127.255.255.255

    128.0.0.0 191.255.255.255

    192.0.0.0 223.255.255.255

    224.0.0.0 239.255.255.255

    240.0.0.0 247.255.255.255

    Classes rseaux

    HOST_ID

    HOST_ID

    1110

    Quel est le nombre d'ordinateurs support pour chaque classe ?

    Adresse IP

  • Diffusion locale et distante 255.255.255.255 : adresse de broadcast sur le rseau IP local : adresse de broadcast dirige vers le rseau de

    numro NET_ID

    Rebouclage local : 127.y.x.z Gnralement 127.0.0.1 (localhost) Permet de tester la pile TCP/IP locale sans passer par une interface

    matrielle

    Adresse 0.0.0.0 Utilise par le protocole RARP Adresse de la route par dfaut dans les routeurs

    Adresse IP spciales

  • NET_ID SUBNET_ID HOST_ID

    Comment diviser un rseau IP en plusieurs sous-rseaux ?

    Sous-rseaux

    Utilisation des masques Netmask

    Lacheminement se fait en fonction de et

    NET_ID HOST_ID

    Mais la taille de est inconnue !

    Information donne par le netmask ; tous les bits 1 correspond

    Prendre quelques bits de la partie de l'@IP pour le sous-rseau

  • Comment dterminer l'adresse de sous-rseau ?

    Le netmask permet de savoir si la machine source et destination sont sur le mme sous-rseau

    La classe dadressage permet de savoir si elles sont sur le mme rseau

    NET_1 SUBNET_1 HOST_ID

    1.1 1.1 00

    NET_1 SUBNET_1 00

    Netmask

    Adresse source Adresse destination

    Sous-rseaux

    NET_2 SUBNET_2 HOST_2

    1.1 1.1 00

    NET_2 SUBNET_2 00

    NetmaskET Logique ET Logique

    =?

  • Un rseau de classe B dispose du masque de sous-rseau 255.255.240.0

    Les machines 159.84.146.236, 159.87.178.23 et 159.84.158.23 trouvent-elles sur le mme sous-rseaux ?

    Sous-rseaux

    Netmask 255.255.240.0 = 11111111.11111111.11110000.00000000

    IP1 : 159.84.146.236 = 10011111.01010100.10010010.11101100

    IP2 : 159.87.178.23 = 10011111.01010111.10110010.00010111

    IP3 : 159.84.158.23 = 10011111.01010100.10011110.00010111

  • Couche Internet (1)

    Protocole IP

    Gestion de la fragmentation

    ARP, ICMP

    IPv6

  • Format d'un datagramme IP

    LET (4 bits) : Longueur d'En-Tte en nombre de mots de 32 bits

    Type de service (8 bits) : qualit de service

    Longueur Totale (16 bits) : taille (entte + donnes) en octetIdentification (16bits) : id des fragments d'un mme paquet

    Flags (3 bits):

    Bit 0: rserv, doit tre zro ;

    Bit 1: (AF) 0 = Fragmentation possible, 1 = Non fractionnable

    Bit 2: (DF) 0 = Dernier fragment, 1 = Fragment intermdiaire

    Version (4 bits): la version d'IP utilise

    4 octets

    Longueur totaleType serviceLETVersionIdentification Flag Dplacement

    Somme de contrle en-tteProtocoleDure de vie

    Adresse source

    Adresse destination

    Options (0 ou plusieurs mots)

    donnes

    Bourrage

    En-tte

  • Dplacement (13 bits) : Position du fragment par rapport au paquet de dpart, en nombre de mots de 8 octetsDure de vie (TTL) 8 bits: pour que le paquet peut rester dans le rseauProtocole (8 bits) : type du protocole de niveau suprieur 1 -> ICMP 17 -> UDP 6 -> TCP

    Checksum d'en-tte (16 bits) : code de contrle derreur pour lentteAdresse source (32 bits) : IP de la machine sourceAdresse destination (32 bits) : IP de la machine destination

    4 octets

    Longueur totaleType serviceLETVersionIdentification Flag Dplacement

    Somme de contrle en-tteProtocoleDure de vie

    Adresse source

    Adresse destination

    Options (0 ou plusieurs mots)

    donnes

    Bourrage

    En-tte

    Format d'un datagramme IP

  • Quel est la taille maximale d'un datagramme ?

    4 octets

    Longueur totaleType serviceLETVersionIdentification Flag Dplacement

    Somme de contrle en-tteProtocoleDure de vie

    Adresse source

    Adresse destination

    Options (0 ou plusieurs mots)

    donnes

    Bourrage

    En-tte

    Format d'un datagramme IP

  • Taille maxi dun datagramme : 216 - 1 = 65535 octet

    Taille maximale d'une trame - MTU (Maximum Transfer Unit)

    Problme : pas de capacit pour envoyer de si gros paquets

    Solution : dcouper en fragements les trames ==> la fragmentation

    Fragmentation des datagrammes IP

    Type de rseau MTU(oct)

    Arpanet

    Ethernet

    FDDI

    1000

    1500

    4470

  • Se fait au niveau des routeurs

    Fonctionnement

    Dcouper en fragments de tailles infrieures au MTU du rseau et de telle faon que la taille du fragment soit un multiple de 8 octets

    Ajouter des informations afin que la machine de destination puisse rassembler les fragments dans le bon ordre

    Envoyer ces fragments de manire indpendante et les rencapsuler de telle faon tenir compte de la nouvelle taille du fragment.

    Fragmentation des datagrammes IP

  • MTU = 1500 octets

    MTU = 1500 octets

    MTU = 800 octetsH 1400 octets

    H 1400 octets

    H 776 octets H 624 octets

    H 776 octets

    H 624 octets

    (Dplacement 0) (Dplacement 97)

    H 1400 octets H 1400 octets

    Exemple

    Fragmentation des datagrammes IP

  • MTU = 800 octets

    MTU = 1500 octets

    MTU = 1500 octets

    Longueur totale = 796Type serviceLETVersionID = 77 Dplacement = 0

    Somme de contrle en-tteProtocoleDure de vieAdresse source

    Adresse destination

    Donnes (776 oct)

    0 1Longueur totale = 644Type serviceLETVersion

    ID = 77 Dplacement = 97Somme de contrle en-tteProtocoleDure de vie

    Adresse sourceAdresse destination

    Donnes (624 oct)

    0 0

    Longueur totale = 1420Type serviceLETVersionID = 77 Dplacement = 0

    Somme de contrle en-tteProtocoleDure de vieAdresse source

    Adresse destination

    Donnes (1400 oct)

    0 0

    Longueur totale = 1420Type serviceLETVersionID = 77 Dplacement = 0

    Somme de contrle en-tteProtocoleDure de vieAdresse source

    Adresse destination

    Donnes (1400 oct)

    0 0

    Fragmentation des datagrammes IP

  • Longueur totale = 796Type serviceLETVersionID = 77 Dplacement = 0

    Somme de contrle en-tteProtocoleDure de vieAdresse source

    Adresse destination

    Donnes (776 oct)

    Longueur totale = 644Type serviceLETVersionID = 77 Dplacement = 97

    Somme de contrle en-tteProtocoleDure de vieAdresse source

    Adresse destination

    Donnes (624 oct)

    Longueur totale = 1420Type serviceLETVersionID = 77 Dplacement = 0

    Somme de contrle en-tteProtocoleDure de vieAdresse source

    Adresse destination

    Donnes (1400 oct)

    Longueur totale = 1420Type serviceLETVersionID = 77 Dplacement = 0

    Somme de contrle en-tteProtocoleDure de vieAdresse source

    Adresse destination

    Donnes (1400 oct)

    MTU = 800 octets

    MTU = 1500 octets

    MTU = 1500 octets

    Longueur totale = 1420Type serviceLETVersionID = 77 Dplacement = 0

    Somme de contrle en-tteProtocoleDure de vieAdresse source

    Adresse destination

    Donnes (1400 oct)

    0 0

    0 0

    0 1 0 0

    0 0

    Fragmentation des datagrammes IP

  • Couche Internet (1)

    Protocole IP

    Gestion de la fragmentation

    ARP, ICMP

    IPv6

  • Protocole ARP ARP (Address Resolution Protocol) Protocol de rsolution d'adresse

    @MAC (adresse physique): 48 bits

    fixe par le fabriquant

    exemple :

    @IP (adresse logique): 32 bits

    fixe par ladministrateur rseau ou ICANN

    exemple :

    Rle du protocole ARP

    Faire la correspondance entre une @IP et une @MAC.

    Les applications ne manipulent que des @IP (pourquoi pas des @MAC?)Le systme doit retrouver l'@ MAC correspondante.Les systmes construisent une table de correspondance (cache ARP).

  • Table de correspondance

    A B C D

    -Cache ARP-

    A consulte sa table de correspondance IP->MAC A met une requte ARP (contenant l'@IP de C) en broadcast B, C et D comparent cette adresse logique la leur C rpond en envoyant son adresse MAC A met jour son cache ARP A envoie le message

    @IP C @MAC C

    Principe du protocole

    A veut envoyer un message C (A et C sur le mme rseau)

    Protocole ARP

  • ICMP - Internet Control and error Message Protocol

    Encapsul dans un datagramme IP (champ protocole = 1)

    Sert contrler le bon droulement du protocole IP

    Utilis par lutilitaire ping, traceroute

    Protocole ICMP

    Utilitaire ping Teste laccessibilit dune destination de bout en bout valuation de performances (mesure de temps aller-retour) La rponse doit parvenir avant 20 secondes

    Exemple Ping 127.0.0.1 : tester la pile TCP/IP locale

    Ping mon@IP : vrifier la configuration rseau local

    Ping @default-routeur : tester la configuration du sous-rseau et la passerelle

    Ping @dest : tester un chemin de bout en bout

  • Permet de trouver pas pas le chemin pour atteindre une destination

    Envoie dun paquet IP avec TTL = 1 Attend ICMP dlai expirEnvoi dun paquet IP avec TLL = 2 ...

    Protocole ICMP

    Utilitaire Traceroute/Tracert

    TTL=1

    TTL=2

    R1 R2src dest

  • Couche Internet (1)

    Protocole IP

    Gestion de la fragmentation

    ARP, ICMP

    IPv6

  • Protocole IPv6

    Pourquoi IPv6 La fin d'IPv4 est proche

    Pnurie d'adresses IP et explosion des tables de routage Besoin d'un nouveau protocole mais suppose de le dployer sur tous les

    noeuds de l'Internet actuel ! L'IETF, en 1990, labore les souhaits d'un nouveau protocole et fit un appel

    propositions 1993 : IPv6 est ne de propositions combines (Deering et Francis)

    Objectifs du protocole Supporter des milliards d'htes Rduire la taille des tables de routage Simplifier encore le protocole pour un routage plus rapide des paquets Offrir une meilleure scurit Permettre au nouveau protocole et l'ancien de coexister pendant quelques

    annes

  • Protocole IPv6

    Caractristiques IPv6 est compatible avec IPv4, TCP, UDP, ICMP, DNS... (ou quelques modifications

    mineures Supporte un format d'adresses plus longues (16 octets au lieu de 4) Simplification de l'entte (7 champs au lieu de 13 et une taille fixe des options

    pour acclrer le traitement dans les routeurs)

  • Protocole IPv6

  • Protocole IPv6

  • Protocole IPv6

    Exemples d'options Routing Header

    Liste de routeurs traverser obligatoirement Fragmentation Header

    Pour permettre au destinataire de rassembler les fragments (reprend les champs de IPv4)

    Destination Options Header Informations additionnelles pour la destination

    L'adressage

    Adressage hirarchique pour allger les tables de routage Un prfixe de localisation public 48 bits Un champ de topologie locale (subnet) 16 bits Un identifiant de dsignation de l'interface (bas sur l'@MAC) sur 64 bits (quivalent

    HOST_ID qui garantie l'unicit de l'adresse

  • Organisation

    CM

    Couche internet (IP, ICMP, ARP/RARP)Couche transport (TCP, UDP)

    Couche application (HTTP, DNS, SMTP, FTP...)

    Plan

    Programmation Rseaux

    Modles en couches : OSI & TCP/IP

  • Couche Internet (2)

    Routage

    Routage statique (Commandes)

    Routage dynamique (Protocoles RIP, OSPF, EGP, BGP)

  • Routage

    Routage : mcanisme par lequel les donnes d'un quipement expditeur sont achemines jusqu' leur destinataire

    Routeur dispositif permettant de choisir le chemin que les datagrammes vont

    emprunter possde plusieurs cartes rseau dont chacune est relie un

    rseau diffrent utilise la table de routage qui dfinit le chemin emprunter pour une

    adresse donne

    Quel chemin empruntent les datagrammes pour arriver destination ?

  • Table de routageDfinit la correspondance entre l'adresse de la machine vise et le noeud suivant auquel le routeur doit dlivrer le message

    Contenu de la table de routage

    IP du prochain routeur vers lequel il faut envoyer le datagramme

    IP d'une machine ou d'un rseau de destination

    masque associ au rseau de destination

    interface physique par laquelle le datagramme doit rellement tre expdi

    utilis pour le calcul du meilleur chemin

    destination

    passerelle (gateway)

    masque (mask)

    interface

    mtrique (cost)

    Commandes pour afficher le contenu de la tablenetstat -r , route print

    Routage

  • Exemple

    Table de routage de ADestination Netmask Gateway Interface Cost

    192.168.1.0 255.255.255.0 - 192.168.1.3 0

    192.168.2.0 255.255.255.0 192.168.1.1 192.168.1.3 1

    0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.3 0

    A C

    B

    R1

    192.168.2.

    .2.1R2

    .2.1

    192.168.3.3192.168.1.3192.168.1. 192.168.3.

    192.168.2.3

    D192.168.3.4

    Routage

  • Table de routage de BDestination Netmask Gateway Interface Cost

    192.168.1.0 255.255.255.0 192.168.2.2 192.168.2.3 1

    192.168.3.0 255.255.255.0 192.168.2.1 192.168.2.3 1

    192.168.2.0 255.255.255.0 - 192.168.2.3 0

    Quelle doit tre la table de routage de C pour qu'il puisse

    communiquer avec les autres rseaux ?

    A C

    B

    R1

    192.168.2.

    .2.1R2

    .2.1

    192.168.3.3192.168.1.3192.168.1. 192.168.3.

    192.168.2.3

    D192.168.3.4

    Exemple

    Routage

  • Table de routage de R1Destination Netmask Gateway Interface Cost

    192.168.1.0 255.255.255.0 - 192.168.1.1 0

    192.168.2.0 255.255.255.0 - 192.168.2.2 0

    192.168.3.0 255.255.255.0 192.168.2.1 192.168.2.2 1

    A C

    B

    R1

    192.168.2.

    .2.1R2

    .2.1

    192.168.3.3192.168.1.3192.168.1. 192.168.3.

    192.168.2.3

    D192.168.3.4

    Exemple

    Routage

  • Table de routage de R2 Destination Netmask Gateway Interface Cost

    192.168.2.0 255.255.255.0 - 192.168.2.1 0

    192.168.3.0 255.255.255.0 - 192.168.3.2 0

    Modifier la table de routage de R2 pour que le rseau 192.168.3.0 puisse communiquer avec le rseau 192.168.1.0

    A C

    B

    R1

    192.168.2.

    .2.1R2

    .2.1

    192.168.3.3192.168.1.3192.168.1. 192.168.3.

    192.168.2.3

    D192.168.3.4

    Exemple

    Routage

  • Table de routage de R2 Destination Netmask Gateway Interface Cost

    192.168.2.0 255.255.255.0 - 192.168.2.1 0

    192.168.3.0 255.255.255.0 - 192.168.3.2 0

    192.168.1.0 255.255.255.0 192.168.2.2 192.168.2.1 1

    A C

    B

    R1

    192.168.2.

    .2.1R2

    .2.1

    192.168.3.3192.168.1.3192.168.1. 192.168.3.

    192.168.2.3

    D192.168.3.4

    Exemple

    Routage

  • Manuelle routage statique

    table de routage entre manuellement par l'administrateur

    commande route des stations unix

    langage de commande des routeurs (ip route...)

    Automatique dynamique

    table de routage mis jour dynamiquement par le routeur

    processus sur les stations et les routeurs

    changes d'informations de routage : protocoles de routage

    Routage bas sur un vecteur de distance

    Routage bas sur l'tat des liens

    Mise jour de la table de routage

    Routage

  • Couche Internet (2)

    Routage

    Routage statique (Commandes)

    Routage dynamique (Protocoles RIP, OSPF, EGP, BGP)

  • Routage statique

    La commande route permet d'indiquer une route vers:un rseau (NET_ID) une machine (HOST_ID)ou une adresse par dfaut (default)

    Syntaxe : route add | del [net | host] destination | netmask | gw | metric

  • Route vers une machineroute add 192.168.0.36 netmask 255.255.255.240 eth0

    route del 192.168.0.36 netmask 255.255.255.240 eth0

    Route vers un rseau route add net 192.168.0.0 netmask 255.255.255.240 eth0

    route del net 192.168.0.0 netmask 255.255.255.240 eth0

    Route vers un rseau via une passerelle route add net 192.168.0.0 netmask 255.255.255.240 gw 192.168.0.7 eth0

    route del net 192.168.0.0 netmask 255.255.255.240 gw 192.168.0.7 eth0

    --------> ajouter

    --------> supprimer

    --------> ajouter

    --------> supprimer

    ---> ajouter

    --> supprimer

    Routage statique

  • Configurer la table de routage des diffrentes machines

    A C

    B

    R1

    192.168.2.

    .2.1R2

    .2.1

    192.168.3.3192.168.1.3192.168.1. 192.168.3.

    192.168.2.3

    D192.168.3.4

    Exemple

    Routage statique

  • tape 1 : configuration des IP

    A C

    B

    R1

    192.168.2.

    .2.1R2

    .2.1

    192.168.3.3192.168.1.3192.168.1. 192.168.3.

    192.168.2.3

    D192.168.3.4

    A : ifconfig eth0 192.168.1.3 netmask 255.255.255.0

    B : ifconfig eth0 192.168.2.3 netmask 255.255.255.0

    C : ifconfig eth0 192.168.3.3 netmask 255.255.255.0

    D : ifconfig eth0 192.168.3.4 netmask 255.255.255.0

    Exemple

    Routage statique

  • tape 1 : configuration des IP

    A C

    B

    R1

    192.168.2.

    .2.1R2

    .2.1

    192.168.3.3192.168.1.3192.168.1. 192.168.3.

    192.168.2.3

    D192.168.3.4

    R1 : ifconfig eth0 192.168.1.1 netmask 255.255.255.0

    ifconfig eth1 192.168.2.2 netmask 255.255.255.0

    R2 : ifconfig eth0 192.168.2.1 netmask 255.255.255.0

    ifconfig eth1 192.168.3.2 netmask 255.255.255.0

    Exemple

    Routage statique

  • tape 2 : configuration des tables de routage

    A C

    B

    R1

    192.168.2.

    .2.1R2

    .2.1

    192.168.3.3192.168.1.3192.168.1. 192.168.3.

    192.168.2.3

    D192.168.3.4

    A : route add default gw 192.168.1.1

    B : route add -net 192.168.3.0 gw 192.168.2.1

    route add -net 192.168.1.0 gw 192.168.2.2

    Exemple

    Routage statique

  • tape 2 : configuration des tables de routage

    A C

    B

    R1

    192.168.2.

    .2.1R2

    .2.1

    192.168.3.3192.168.1.3192.168.1. 192.168.3.

    192.168.2.3

    D192.168.3.4

    R1 : route add -net 192.168.1.0 netmask 255.255.255.0 eth0

    route add -net 192.168.2.0 netmask 255.255.255.0 eth1

    route add -net 192.168.3.0 gw 192.168.2.1

    R2 : route add -net 192.168.2.0 netmask 255.255.255.0 eth0

    route add -net 192.168.3.0 netmask 255.255.255.0 eth1

    Exemple

    eth0 : 192.168.1.1

    eth1 : 192.168.2.2

    eth0 : 192.168.2.1

    eth1 : 192.168.3.2

    Routage statique

  • Couche Internet (2)

    Routage

    Routage statique (Commandes)

    Routage dynamique (Protocoles RIP, OSPF, EGP, BGP)

  • Manuelle routage statique

    table de routage entre manuellement par l'administrateur

    commande route des stations unix

    langage de commande des routeurs (ip route...)

    Automatique dynamique

    table de routage mis jour dynamiquement par le routeur

    processus sur les stations et les routeurs

    changes d'informations de routage : protocoles de routage

    Routage bas sur un vecteur de distance

    Routage bas sur l'tat des liens

    Mise jour de la table de routage

    Routage Dynamique

  • Deux algorithmes clefs

    Ce vecteur contient la distance chacune d'entre ellesDistance = cot

    Pr conditionChaque noeud connat la distance vers tous ses voisins directs

    Contrairement au"vecteur de distance", chaque noeud ne connat que les tats voisins

    Routage Dynamique

    Vecteur de distance Bellman-FordChaque noeud stocke un "vecteur" pour toutes destinations

    tat des liens DijkstraChaque noeud possde un carte complte du rseau

  • Types de routeurs

    Routeurs internesroutage l'intrieur d'un rseau autonome

    Protocole : IGP (Interior Gateway Protocol) RIP, OSPF, EIGRP Rseau autonome Rseau autonome

    Routeurs noyauxrelient les rseaux

    Routeurs externespermettent une liaison des

    rseaux autonomes entre euxProtocoles : EGP (Exterior Gateway Protocol)

    BGP (Border Gateway protocol)

    Routage Dynamique

  • Protocole de type Vecteur de Distance

    Chaque 30 seconde le routeur diffuse ses voisins ses vecteurs de distance

    vecteur de distance : (destination, nombre de sauts)

    nombre de sauts maximum = 16 (pour viter les boucles)

    utilisable uniquement l'intrieur de domaines peu tendus

    Si aucun message pendant 180s, route inaccessible

    un noeud construit sa table de routage en fonction des vecteurs de distance reus de ses voisins

    RIP - Routing information protocol

    Protocoles de routages

  • Avantages trs utilis et trs rpondu sur tous les quipements s'adapte automatiquement (panne, ajout de rseau...)

    Inconvnients la distance ne tient pas compte de l'tat de la liaison (la charge,

    dbit, cot des lignes...) distance maximale = 15 (ne peut pas aller plus que 15 routeurs) trafic important (toutes les 30s un message) pas d'authentification des messages (attaques de routeurs en

    gnrant des faux messages RIP)

    protocole trs efficace dans un petit rseau que l'on contrle mais pas adapt aux grands domaines

    RIP - Routing information protocol

    Protocoles de routages

  • Route de R1 A ?

    RIP : R1 -> R5 -> R4 -> A

    Supposons deux types de liens rapides et lents

    RIP n'est plus pertinent !

    R1

    R5

    R2

    R3

    R4

    1010

    10

    101

    1

    1

    192.168.1.0

    A

    Protocole de type tat des liens

    OSPF -Open Shortest Path First

    Protocoles de routages

  • Base de donnes topologique

    Arc CotR1, R2 1R1, R5 10R2, R3 1R3, R4 10R3, R5 1R4, R5 10R4, 192.168.1.0 10

    R1

    R5

    R2

    R3

    R4

    1010

    10

    101

    1

    1

    192.168.1.0

    A

    OSPF - Open Shortest Path First

    Protocoles de routages

  • lection des meilleures routes- Algorithme de Dijkstra -

    Meilleure routre entre R1 et A passe par R2, R3 et R4 pour un cot total de 1 + 1 + 10 + 10 = 22

    OSPF - Open Shortest Path First

    Protocoles de routages

  • Extrait de la table de R1

    Rseau de destination Moyen de l'atteindre Cot

    192.168.1.0 R2 22

    Extrait de la table R5:

    Rseau de destination Moyen de l'atteindre Cot

    192.168.1.0 R4 20

    Dtermination de la table de routage

    OSPF - Open Shortest Path First

    Protocoles de routages

  • Recherche du plus court chemin

    Protocoles de routages

    OSPF - Open Shortest Path First

  • Calculez les plus courts chemins de A destination de H, puis de G en utilisant lalgorithme de Dijkstra

    Protocoles de routages

    Recherche du plus court chemin

    OSPF - Open Shortest Path First

  • Calculez les plus courts chemins de A destination de H, puis de G en utilisant lalgorithme de Dijkstra

    Recherche du plus court chemin

    OSPF - Open Shortest Path First

    Protocoles de routages

  • 1. tat initial

    Le processus de routage OSPF est inactif sur tous les routeurs

    2. tablir la liste des routeurs voisins

    Chaque routeur se prsente et fait connaissance avec ses voisins

    message HELLO, my name is R1 and I'm an OSPF router

    Les voisins sauvegardent l'@IP de l'metteur dans leurs bases d'adjacences

    Les voisins rpondent en envoyant leurs IP l'metteur

    L'metteur ajoute les adresses IP de ses voisins dans sa base d'adjacence

    OSPF - Fonctionnement

    Protocoles de routages

  • 3. lire le routeur dsign (DR) et le routeur dsign de secours (BDR)

    - DR - routeur avec la plus grande priorit (=1 par dfaut) routeur avec la plus grande adresse IP en cas de conflit

    - BRG - routeur avec plus grande priorit juste aprs le DR

    4. Dcouvrir les routes Le DR transmet aux routeurs un rsum de sa base de donnes topologique Si les donnes des routeurs sont plus rcentes, ils demandent une information plus complte

    Le DR envoie l'intgralit de l'information demande Les routeurs (non DR ou BDR) transmettent les routes meilleures ou les routes inconnues du DR.

    OSPF - Fonctionnement

    Protocoles de routages

  • 5. lire les routes utiliserCration de la table de routage -> Algorithme de Dijkstra

    6. Maintenir la base topologiqueChaque routeur envoie ses tats de liens au routeur dsign avec des messages mises jour d'tat de lien

    Le DR et le BDR intgrent cette information leur base topologique

    Ces messages sont acquitts pour plus de fiabilit

    Toute modification de la topologie dclenche une nouvelle excution de l'algorithme Dijkstra et une nouvelle table de routage est constitue

    OSPF - Fonctionnement

    Protocoles de routages

  • Protocole de type tat des liens

    chaque noeud value le cot pour rejoindre ses voisins selon une certaine mtrique (plusieurs mtrique peuvent tre utilises simultanment)

    construit un paquet contenant les informations relatives chacun de ses liens (voisins)

    le diffuse tout le monde (par inondation)

    calcule la route de moindre cot pour atteindre chaque entit du rseau

    ensuite, les routeurs s'changent uniquement les changements dtects dans la topologie

    chaque noeud a une vision globale de la cartographie du rseau

    OSPF - Rsum

    Protocoles de routages

  • Protocole complexe encore peu mis en oeuvre mais

    remdie aux inconvnient de RIP

    temps de convergence

    OSPF adapt aux grands domaines

    OSPF prend en compte plusieurs mtriques

    autres avantages d'OSPF

    permet de router les sous-rseaux

    permet l'quilibrage de charge entre diffrentes routes de mme cot

    inclut un systme d'authentification des messages

    OSPF - Conclusion

    Protocoles de routages

  • Types de routeurs

    Routeurs internesroutage l'intrieur d'un rseau autonome

    Protocole : IGP (Interior Gateway Protocol) RIP, OSPF, EIGRP Rseau autonome Rseau autonome

    Routeurs noyauxrelient les rseaux

    Routeurs externespermettent une liaison des

    rseaux autonomes entre euxProtocoles : EGP (Exterior Gateway Protocol)

    BGP (Border Gateway protocol)

    Routage Dynamique

  • Premier protocole externe utilis dans internet (dsorm remplac par BGP)

    Echange entre routeurs dclars comme pairs

    deux routeurs de bordure s'changent l'intervalles rguliers la liste des rseaux accessible dans leurs AS respectives

    tout le trafic entre 2 AS passe par le mme chemin physique

    EGP Exterior Gateway Protocol

    Rseau autonome Rseau autonome

    IGP

    EGP

    IGPLiaison inter AS

    Protocoles de routages

  • Besoin de prendre en compte dans les stratgies de routage des considrations d'ordres

    politique : certain AS peuvent refuser de faire transiter du trafic externe ou le trafic sortant de tel AS prfre transiter par tel AS que tel autre...

    de scurit : trafic en provenance de tel AS ne doit pas transiter par tel AS

    conomique : la traverse d'une AS peut tre payante...

    La prise en compte de ces stratgies ne fait pas partie du protocole (configuration manuelle des routeurs l'aide de scripts)

    BGP Border Gateway Protocol

    Stratgie de routage

    Protocoles de routages

  • Deux routeurs BGP tablissent une connexion TCP pour s'changer des infos de routage: numro de l'AS liste des sous-rseaux de l'AS distance relative vers chacun des sous-rseaux de l'AS adresse IP du routeur (interne) d'accs ces rseaux

    Quatre types de messages message d'ouverture : ouverture d'une session BGP entre deux routeurs message de mise jour : signaler un peer router le changement d'tat d'une route interne l'AS message de notification : clore une session BGP message hello message signalant que tout va bien au routeur voisin (keep Alive)

    Principe de routage

    Protocoles de routages

    BGP Border Gateway Protocol

  • Type vecteur de distance mais les paires s'changent le chemin complet correspondant chaque destination (pas uniquement le cot)

    Exemple : pour la destination D, F utilise actuellement FGCD et apprend d'autres routes de ses voisins (il peut alors choisir celle qu'il prfre selon la stratgie choisie)

    Principe de routage

    Protocoles de routages

    BGP Border Gateway Protocol

  • Organisation

    CM

    Couche internet (IP, ICMP, ARP/RARP)Couche transport (TCP, UDP)

    Couche application (HTTP, DNS, SMTP, FTP...)

    Plan

    Programmation Rseaux

    Modles en couches : OSI & TCP/IP

  • Couche Transport

    Services de la couche

    Protocole UDP

    Protocole TCP

  • TELNET, HTTP, FTP, DNS, SMTP...

    TCP, UDP

    IP, ARP/RARP, ICMP

    ETHERNET, ATM...Couche Rseaux

    CoucheInternet

    bits

    donnesH T

    CoucheTransport

    CoucheApplication

    Couche Rseaux

    CoucheInternet

    CoucheTransport

    CoucheApplication

    donnesH

    donnes

    Protocoles

    donnesH

    message

    segment

    datagramme

    trame

    Modle TCP/IP

  • IP

    IP

    IP

    IP IP IP

    datag

    ramme

    IP

    IP IP

    TCP

    TCP

    TCP TCP

    IPIP

    IPIP

    IP

    Couche transport

    Services et protocoles de la couche Cre un circuit de communication logique entre des applications

    sexcutant sur des htes distants Les protocoles de la couche transport ne sexcutent quau extrmits

    Services transport vs rseau : Couche rseau : Transfert de donnes entre machines Couche transport : Transfert de donnes entre applications

    Se fonde sur les services de la couche rseau et les amliore

    Flux TCP

  • Services de transport

    Livraison fiable (TCP) rception des segments dans lordre contrle de congestion contrle de flotmise en place de connection

    Livraison non fiable (UDP) sans garantie dordrepeut stendre au multicast

    Services non disponibles temps-rel, garantie de dlaigarantie de bande passantemulticast fiable

    Couche transport

  • MultiplexageDistribuer chaque segment lapplication laquelle il est destin

    Multiplexage/demultiplexage

    Encapsuler les donnes de plusieurs applications dans un mme segment avec un en-tte qui permettra le dmultiplexage

    Demultiplexage

    Fond sur le port de rception, le port dmission et les adresses IPLes ports source et destination sont rpts dans chaque segmentCertaines applications utilisent des ports spcifiques

    Couche transport

  • Couche transport

  • Le numro de port est un entier de 16 bits [0, 65535] Le port 0 nest pas exploitable Distribus par l'IANA Internet Assigned Numbers Authority

    1. Le segment [1, 1023] rservs aux services bien connus dsigns par l'IANA mis en oeuvre par des applications avec des droits privilgis

    2. Le segment [1024, 49151] services enregistrs numrs par lIANA peuvent tre employs par des processus ayant des droits ordinaires

    3. Le segment [49152, 65535] attributions dynamiques

    Cathgories des ports

    Couche transport

  • Visualisation des services Unix : /etc/services Windows : C:\Winnt\System32\drivers\etc\services

    Couche transport

  • Couche Transport

    Services de la couche

    Protocole UDP

    Protocole TCP

  • UDP User Datagram Protocol

    Protocole simple

    Service au mieux, les segments UDP peuvent tre:

    Perdus

    Delivrs dans le dsordre

    Aucun contrle de flux ou de rcupration derreurs

    Mode sans connexion

    Sans handshaking entre lmetteur et le rcepteur

    Chaque segment UDP est trait indpendamment des autres

    Sans contrle de congestion

    UDP peut mettre aussi rapidement quil le souhaite

    Mode sans connexion (Datagram) Multiplexage applications -> transport Numro de port sur 1 octets Longueur en nombre doctets Dtection derreur optionnelle (par checksum) Aucun contrle de flux et rcupration derreur Entte UDP:

    Protocole UDP

  • Pourquoi UDP? sans dlai de connexion simple donc plus rapide (pas de dlai, pas d'tat entre metteur/rcepteur) Petit en-tte

    Souvent utilis pour les applications multimdias (streaming multimedia) Tolrance aux pertes Sensible au dbit

    Autre utilisation dUDP DNS SNMP

    Transfert fiable sur UDP ajouter des mcanismes de compensation de pertes niveau applicatif compensation de pertes adapte chaque appplication

    Protocole UDP

  • Segment UDP

    Port source : numro de port de lapplication mettrice du segment

    Port destination : numro de port de l'application destinataire

    Longueur : longueur de len-tte + donnes

    La longueur minimal est 8

    La longueur maximale est 65 535

    Somme de contrle : code de contrle d'erreurs

    Port source

    Donnes

    Port destination

    Longueur Somme de contrle

    4 octets

  • Couche Transport

    Services de la couche

    Protocole UDP

    Protocole TCP

  • Caractrisriques du protocole Arrive garantie des donnes Rcupration des erreurs par rmission Re-assemblage des donnes dans le bon ordre

    Vrification du flot de donnes afin d'viter une saturation du rseau

    Multiplexage/dmultiplexage des donnes

    Initialisation et fin d'une communication

    Communication en mode connect Ouverture dun canal Communication Full-Duplex Fermeture du canal

    TCP - Transport Control Protocol (Protocole de Contrle de Transmission)

    Protocole TCP

  • Segment TCP

    Port Source (2 oct) : numro de port de l'application mettrice

    Port Destination (2 oct) : numro de port de l'application distante

    Lg h. (4 bits) : longueur de l'en-tte en multiple de 4 octets

    NS (4 oct) : position du premier octet du segment transmettre Si SYN = 1, NS = ISN (Initial Sequence Number)

    NR (4 oct) : numro du prochain octet attendu

    4 octets

    Port source

    Taille fentreFIN

    Lg h.

    NR - Numro de squence acquitt

    Somme de contrle

    Donnes

    SYN

    RST

    PSH

    ACK

    URG

    Pointeur d'urgence

    Port destinationNS - Numro de squence

    Options (0 ou plusieurs mots) + bourrage

    Rserv

  • Rserv (6 bits) : champ inutilis actuellement

    CODE (6 bits) URG: si 1 le paquet doit tre trait de faon urgenteACK: si 1 le paquet est un accus de rceptionPSH (PUSH): si 1 les donnes collectes doivent tre transmises

    lapplication sans attendre les donnes qui suiventRST: si 1 la connexion est rinitialiseSYN: si 1 indique une demande d'tablissement de connexionFIN: si 1 la connexion s'interrompt

    4 octets

    Port source

    Taille fentreFIN

    Lg h.

    NR - Numro de squence acquitt

    Somme de contrle

    Donnes

    SYN

    RST

    PSH

    ACK

    URG

    Pointeur d'urgence

    Port destinationNS - Numro de squence

    Options (0 ou plusieurs mots) + bourrage

    Rserv

    Segment TCP

  • 4 octets

    Port source

    Taille fentreFIN

    Lg h.

    NR - Numro de squence acquitt

    Somme de contrle

    Donnes

    SYN

    RST

    PSH

    ACK

    URG

    Pointeur d'urgence

    Port destinationNS - Numro de squence

    Options (0 ou plusieurs mots) + bourrage

    Rserv

    Taille fentre (2 oct) : nb d'octets que le rcepteur peut recevoir sans acquittement

    Somme de contrle (2 oct) : permet de vrifier l'intgrit de l'en-tte

    Pointeur d'urgence (2 oct): numro d'ordre partir duquel l'information devient urgente

    Options (Taille variable): diverses options

    Bourage (Taille variable) : bits zro pour avoir une longueur en-tte multiple de 32 bits

    Segment TCP

  • Fiabilit des transferts

    Client Serveur

    Segment 1

    Segment 2

    ACK 1

    ACK 2

    NS = 92, 8 oct data

    NS = 100, 16 oct data

    ACK = 1, NR = 10

    0

    ACK = 1, NR = 11

    6

    ServeurClient

    tempstemps

    Notation :(ACK = x) (ACK = 1 et NR = x)

  • NS = 92, 8 oct data

    NS = 92, 8 oct data

    ACK = 100

    ACK = 100

    Xperdu

    Tim

    eo

    ut

    Les pertes de segment sont dtectes par absence d'ack positif expiration d'un temporisateur sur l'emetteur

    Exemple : Perte d'ACKEmetteur Rcepteur

    Fiabilit des transferts

  • NS = 92, 8 oct data

    ACK = 100

    Emetteur

    Tim

    eo

    ut

    NS = 92, 8 oct data

    ACK = 1

    00

    Rcepteur

    Les pertes de segment sont dtectes par absence d'ack positif expiration d'un temporisateur sur l'emetteur

    Exemple :

    Fiabilit des transferts

  • tablissement de connexion

    Schma de connexion Ports TCP doivent tre ouverts Application sur le serveur l'coute (en attente d'une connexion) Application sur le client fait une requte de connexion

    Les paquets pour ouvrir la connexion1. Client : Demande de connexion

    SYN=1, ACK =0, ISNclient

    = x (squence initiale du client)

    2. Serveur : Acceptation de connexion

    SYN= 1, ACK= x+1, ISNserveur

    = y (squence initiale du serveur)

    Options possibles (Taille maximale des paquets, convention pour le contrle de flux sur rseau haut dbit... )

    3. Client : Accus de rception ACK = y+1, SYN = 0

  • SYN=1, ACK =0, ISNclient = x

    ACK = y+1, SYN = 0

    SYN= 1, A

    CK= x+1,

    ISN serveur = y

    Temps

    Client Serveur

    tablissement de connexion

  • NSA= 56, ACK

    B =203

    NSA= 66, ACK

    B: 223

    NSB= 203, ACKA

    =66

    NSB: 223, ACKA

    =76

    Transfert de donnes

    A B

    Envoi de 10 oct

    Envoi de 10 oct

    Envoi de20 oct

    Envoi de2 oct

  • A demande la fin de connexion (FIN=1)

    B acquitte la demande de A (ACK)

    B envoie ses donnes en attente

    A acquitte les donnes (ACK)

    B accepte de la fin de connexion (FIN)

    A acquitte de la fin de connexion (ACK)

    FIN (seq = x)

    ACK (DATA)

    ACK (seq = x+1)

    DATA

    FIN (seq = y)

    ACK (seq = y + 1)

    Fin de connexion

    Fermeture ngocie

    A B

  • Utilisation du rseau

    Gaspillage de bande passante ! Envoi de donnes Attente Envoi dacknowledge Attente

    On peut faire mieux ! fentrage

  • Principe

    Fentre glissante

    Paquet iPaquet i+1

    ACK (i)

    Paquet i+3

    Paquet i+2

    Paquet i+4

    prendre de lavance sur les rponses --> fentre glissante fixer un nombre de squence au bout duquel un accus de rception est ncessaire

    Le nombre de squence est stock dans le champ fentre de l'en-tte TCP/IP La taille de la fentre n'est pas fixe Le serveur peut demander une augmentation de la taille de la fentre

    Tampon de l'metteurTampon du rcepteur

  • Gestion de la fentage

    Fentre glissante

    Seq = 0, 2k

    Seq = 4096,1k

    Contrle de flux TCP : l'metteur ne doit pas en envoyer de donnes si le tampon de rception n'a pas l'espace libre correspondant

    Quand l'metteur est bloqu, il peut :envoyer des donnes urgentes (interruption de l'application rceptrice)

    envoyer des segments de 1 octet pour obliger le rcepteur envoyer SEQa et WIN et maintenir l'tat actif de la connexion

    Tampon du rcepteur

    vide

    2 k

    Plein

    2 K

    1k 2 K

    ACK = 2k

    , WIN = 2k

    Seq = 2048, 2k

    ACK = 4k

    , WIN = 0

    WIN = 2k

    Application lit 2k

    Application crit 2k

    Application crit 2k

    Application crit 1k

    L'metteur est bloqu

    4K

  • Gestion de la fentage

    Fentre glissante

  • Seq = X, 500 octSeq = X + 500, 200 oct

    ACK Seq A

    = X

    Seq = X + 700, 10 oct

    Seq = X, 500 oct

    Hors seq.mmoris

    Hors seq.mmoris

    X

    ACK Seq A

    = X

    ACK Seq A

    = X + 71

    0 octTim

    eo

    ut

    Exemple : expiration du timeout

    Fentre glissante

  • Organisation

    CM

    Couche internet (IP, ICMP, ARP/RARP)Couche transport (TCP, UDP)

    Couche application (HTTP, DNS, SMTP, FTP...)

    Plan

    Programmation Rseaux

    Modles en couches : OSI & TCP/IP

  • Couche Applications

    Protocoles dns, telnet, shh, ftp, smtp, pop et http

  • Modle TCP/IP

    TELNET, HTTP, FTP, DNS, SMTP...

    TCP, UDP

    IP, ARP/RARP, ICMP

    ETHERNET, ATM...Couche Rseaux

    CoucheInternet

    bits

    donnesH T

    CoucheTransport

    CoucheApplication

    Couche Rseaux

    CoucheInternet

    CoucheTransport

    CoucheApplication

    donnesH

    donnes

    Protocoles

    donnesH

    message

    segment

    datagramme

    trame

  • Les adresses IP reprsentent une partie fondamentale de lInternet

    Adressage IP

    Routage IP (le paquet est rout selon sa destination)

    Comment joindre des sites Web (URL) ? Comment changer du courrier lectronique ? Comment mmoriser les adresses IP de tous les sites Internet joindre ? Comment grer les changements dadresses IP ?

    Protocole DNS

    Les utilisateurs prfrent des noms symboliques que des nombres

    # Exemple de fichier /etc/hosts# This file should contain the addresses and aliases# for local hosts that share this file.132.214.1.3 routerquebec132.212.1.5 routermontreal

    Fichier /etc/hosts pour faire la correspondance noms/adresses

    Solution

  • Problmes collision des noms dploiement grande chelle changements dadresses et mise jour

    Base de donnes hirarchique et distribue dans Internet Contient des correspondances entre :

    Nom ordinateur -> adresse IP Passerelle de courrier dun domaine -> adresse IP Traduction inverse : IP -> nom ordinateur ..., bien plus que seulement nom/adresse IP

    DNS - Domain Name System (rsolution de noms de domaines)

    Fichier /etc/hosts pour faire la correspondance noms/adresses

    Protocole DNS

  • Espace de noms de domaines base de donnes qui associe de manire structure des noms des @IP

    Serveurs de noms htes sur lesquels tournent un daemon (port 53) Htes comptents pour rpondre sur une ou plusieurs zones

    Resolvers fonctions applicatives qui sollicitent la rsolution dune information (nom,

    adresse) auprs dun serveur de nom

    Le DNS est constitu de

    Protocole DNS

  • Espace de noms

    Domaines de plus haut niveau (TLD - Top Level Domains) rattachs un noeud racine reprsent par un point

    Nom de domaine chaque noeud de l'arbre, ex : univ-lyon2, liris...

    Domaineensemble des tiquettes de noeuds d'une arborescence l'exception de l'hte

    Hteextrmit d'une branche, correspond une machine ou une entit du rseau

    Adresse FQDN (Fully Qualified Domain Name) : ensemble des tiquettes des noeuds d'une arborescence

    Zoneensemble de domaine (concerne un sous arbre du DNS)

    Protocole DNS

  • La hirarchie du DNS est partage en zone Linformation contenue dans une zone est implante dans au moins deux

    serveurs de nom

    dfinit une zone, ensemble de domaines sur lequel le serveur a autorit il est mis jour par ladministrateur systme/rseaux

    Pour des raisons de fiabilit Il recopie priodiquement ses informations d'un serveur primaireRecommandation: serveur primaire et secondaire sur des sites diffrents

    Serveurs de noms

    DNS Serveur Primaire

    DNS Serveur Secondaire

    serveur ayant autorit sur la racine de lespace de nommage (TLD)Actuellement il y a 13 serveurs de ce type

    Serveur racine

    Protocole DNS

  • Resolver : un ensemble de fonctions qui font l'interface entre les applications et lesserveurs de noms.

    Stratgie de fonctionnement

    Interrogation locale

    1.Le processus demande l'@ IP dune machine. Le resolver envoie la demande au serveur local

    2.Le serveur local reoit la demande et rpond directement au resolver

    Rsolution de noms de domaine

    Protocole DNS

  • Interrogation distante

    Rsolution de noms de domaine

    3. Le serveur racine renvoie ladresse du serveur qui a lautorit sur la zone.4. Le serveur local interroge ce nouveau serveur distant.5. Le serveur distant renvoie linformation demande au serveur local.6. Le serveur local retourne la rponse au resolver.

    1. Le processus demande ladresse IP dune machine. Le resolver envoie sa requte au serveur local.

    2. Le serveur local reoit la requte, il interroge le serveur racine pour avoir ladresse dun serveur qui a l'autorit sur la zone demande par le processus.

    Utilisation des cachesSi un processus redemande la mme machine distante, le serveur local interroge alors

    directement le serveur distant sans passer par le serveur racine

    Protocole DNS

  • TELetypewrite Network Protocol

    Systme de terminal virtuel (Travailler sur un systme distant comme sur un systme local)

    Connexion TCP

    Utiliser pour ouvrir un mulateur de terminal distance et pour communiquer avec dautres services rseau (HTTP, SMTP, FTP)

    Attention : donnes transmises en clair !

    Commande telnettelnet

    Exemple : mulation dun navigateur web :

    telnet liris.univ-lyon2.fr 80

    Protocole Telnet

  • SSH - Secure SHell

    Port 22

    Remplace Telnet pour lmulation de terminal

    Comme Telnet, protocole et logiciel

    Utilise un chiffrement asymtrique

    Commande :

    ssh -l

    Protocole SSH

    Connexion au serveur : ssh -l ksehaba liris.cnrs.fr

  • FTP - File Transfer Protocol (protocole de transfert de fichier) Port 21 permet un partage de fichiers entre machines distantes permet une indpendance aux systmes de fichiers des machines

    clientes et serveur permet de transfrer des donnes de manire efficace Transmission sur deux canaux :

    Un canal pour les commandes (canal de contrle), gr par l'interprteur de commandes (PI : Protocol Interpreter)

    Un canal pour les donnes, gr par un processus de transfert de donnes (DTP : Data Transfer Process)

    Protocole FTP

    Notations : Processus ct client : USER-PI, USER-DTPProcessus ct serveur : SERVER-PI , SERVER-DTP

  • DTP (Data Transfer Process): charg d'tablir la connexion et de grer le canal de donnes

    PI (Protocol Interpreter): interprteur de protocole permettant de commander le DTP

    SERVER-PI : charg d'couter les commandes provenant d'un USER-PI d'tablir la connexion pour le canal de contrle de recevoir sur celui-ci les commandes FTP de l'USER-PI de rpondre et de piloter le SERVER-DTP

    Le USER-PI charg d'tablir la connexion avec le serveur FTP d'envoyer les commandes FTP de recevoir les rponses du SERVER-PI de contrler le USER-DTP si besoin

    Protocole FTP

  • Commandes de contrle d'accs USER, PASS, CWD QUITCommandes du paramtrage de transfert PORT, TYPE, PASVCommandes de service FTP DELE, RMD, MKD, PWD...

    Protocole FTP

    Types de commandes FTP :

    1yz : Rponse prliminaire positive2yz : Rponse positive de ralisation3yz : Rponse intermdiaire positive4yz : Rponse ngative de ralisation5yz : Rponse ngative permanente

    Code 3 chiffres accompagn d'un texte

    Rponses FTP Connexion au serveur : ftp liris.cnrs.fr 21

  • SMTP - Simple Mail Transfert Protocol (Protocole Simple de Transfert de Courrier)

    Service denvoie de courrier lectronique

    Port 25

    Protocole SMTP

    EHLO : prsentation du clientMAIL FROM: : spcifie ladresse de lexpditeurRCPT TO: : spcifie ladresse du destinataireDATA : donnes envoyer (termines par .)QUIT : termine la session SMTP

    Commandes SMTP

  • To: [email protected]

    Cc: [email protected]

    Bcc: [email protected]

    From: [email protected]

    Reply-to: [email protected]

    User-Agent: Mozilla/5.0

    Return-Path:

    Date:

    Subject:

    Envoyez-vous un email en vous connectant via telnetau serveur mail de Lyon 2 (smtp.univ-lyon2.fr)

    et en utilisant les commandes du protocole SMTP.

    Champs den-tte

    Protocole SMTP

  • Protocole POP POP - Post Office Protocol (protocole de bureau de poste)

    permet de rcuprer les courriers sur un serveur distant (le serveur POP)

    deux versions du protocole (POP2 port 109 et POP3 port 110)

    Commandes POP2 HELLO : Identification l'aide de l'adresse IP de l'ordinateur expditeurFOLDER : Nom de la bote consulterREAD : Numro du message lireRETRIEVE: Numro du message rcuprerSAVE : Numro du message sauvegarderDELETE : Numro du message supprimerQUIT : Sortie du serveur POP2

    Commandes POP3 USER : nom de l'utilisateur, doit prcder la commande PASS.PASS : mot de passe de l'utilisateur STAT : Information sur les messages contenus sur le serveurRETR : Numro du message rcuprerDELE : Numro du message supprimerLIST : Numro du message afficherQUIT : sortie du serveur POP3.

  • HTTP : HyperText Transfer Protocol

    Transfert de fichiers (essentiellement au format HTML) Port 80

    Protocole HTTP

    HTTP 1.0 :Pour chaque requte : Raliser une connexion TCP Envoyer la requte Recevoir la rponse Librer la connexion

    Version 1.0/1.1 : Modes de communication

    HTTP 1.1 : Raliser une connexion TCP Pour chaque requte :

    Envoyer la requte Recevoir la rponse

    Librer la connexion

    Plusieurs requtes par site Web(par exemples, les fichiers images)-> Problme de performances

  • Communication en deux temps :

    Requte DcodeEn-tte HTTP

    Rponse HTTP

    Serveur HTTPClient

    1. Ligne de statut : prcise le type de document demand

    3. Lignes de Corps

    2. Lignes d'en-tte : informations supplmentaires sur la requte et/ou le client

    Structure des Requtes/Rponses

    Protocole HTTP

  • 1. Ligne de requte

    Requte HTTP

    MthodesGET : Requte de la ressource situe l'URL spcifieHEAD: Requte de l'en-tte de la ressource situe l'URL spcifiePOST : Envoi de donnes au programme situ l'URL spcifieDELETE: Suppression de la ressource situe l'URL spcifie

    URL - Uniform Resource LocatorSyntaxe url avec http : http :// :/?

    host : nom de machine ou une adresse IPPort : numro de port (80 par dfaut)path : slecteur au sens du protocole httpSearchpath : la chane dinterrogation

    Version du protocole :

    Forme HTTP-Numro de version. Par exemple HTTP/1.1

    Protocole HTTP

  • Informations supplmentaire sur la requte et/ou le navigateur Syntaxe Type en-entte : valeur en-tte

    2. Champs d'en-tte (facultatif)

    Requte HTTP

    Lignes optionnelles spares des lignes prcdentes par une ligne vide

    Permettent l'envoie des donnes au serveur (commande POST)

    3. Corps

    User-Agent : informations sur le client (nom et la version du navigateur, systme d'exploitation...)

    Accept-Language: Langage attendu par le navigateur

    Exemple d'en-tte

    Protocole HTTP

  • Requte HTTP

    GET http://www.google.com HTTP/1.0

    Accept : text/html

    If-Modified-Since : Saturday, 15-January-2000 14:37:11 GMT

    User-Agent : Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)

    Ligne de requte

    Champs d'en-tte

    $ telnet clx.anet.fr 80GET /\n\n

    $ telnet 10function.kicks-ass.org 80GET /books/ruhacker.txt\n\n

    Renvoie le contenu du document par dfaut Renvoie le document mentionn dans le chemin complet

    Exemples:

    $ telnet liris.cnrs.fr 80GET /ksehaba/Reseaux/Test.html\n\n

    Protocole HTTP

  • Version du protocole utilisHTTP-Numro de version

    Code de statut : valeur numrique (xxx) qui dcrit le statut de la rponse

    1xx: Nest pas utilis, Futur Use2xx: Succs, laction excute correctement3xx: Redirection, reprendre linterrogation avec une autre formulation4xx: Erreur cot client, erreur de syntaxe ou ne peut tre accepte5xx: Erreur cot serveur, erreur interne due lOS

    Signification du code

    Rponse HTTP1. Ligne de statut

    3. CorpsLe document demand

    Informations supplmentaires sur la rponse et/ou le serveur2. En-tte

    Protocole HTTP

  • Rponse HTTP

    Exemple :$ telnet localhost 80GET / HTTP/1.0\n\n

    Protocole HTTP

  • Organisation

    CM

    Couche internet (IP, ICMP, ARP/RARP)Couche transport (TCP, UDP)

    Couche application (HTTP, DNS, SMTP, FTP...)

    Plan

    Programmation Rseaux

    Modles en couches : OSI & TCP/IP

  • Programmation Rseau

    Applications Client/serveur

    Mode connect/mode non connect

    Programmation en C

    Programmation en java

  • Application client/serveur application qui fait appel des services distants travers dun

    change de messages (les requtes) plutt que par un partage de donnes (mmoire ou fichiers)

    Serveur programme offrant un service sur un rseau (par extension,

    machine offrant un service)

    Client programme qui met des requtes (ou demandes de service). Il

    est toujours linitiateur du dialogue

    Modle client-serveur dfinition

  • Un serveur de fichiers

    Des clients qui demandent des fichiers

    Comment grer la concurrence ?

    un processus serveur => un client servi

    plusieurs clients => il va falloir faire des fork() !!!

    Quel protocole utiliser ?

    le client envoie le nom du fichier

    le serveur renvoie la taille puis les donnes

    comment gre-t-on les erreurs ?

    Exemple de client/serveur

  • Mode connect (TCP) :

    problmes de communications grs automatiquement,

    primitives simples dmission et de rception,

    gestion de la connexion coteuse,

    pas de dlimitation des messages dans le tampon.

    Mode non connect (UDP) :

    consomme moins de ressources systmes,

    permet la diffusion,

    gestion de toutes les erreurs la main : il faut rcrire la couche transport !!!

    Mode connect/nom connect

  • Programmation Rseau

    Applications Client/serveur

    Mode connect/mode non connect

    Programmation en C

    Programmation en java

  • Interface daccs au rseau

    dvelopp dans Unix BSD (Berkeley Software Distribution)

    n port, @ IP, protocole (TCP, UDP, ...)

    Client Serveur

    n port :2345 @ IP : 193.168.20.1

    n port :80 @ IP : 193.168.20.2

    Couche Transport (TCP, UDP)

    @ IP : 193.168.20.1 @ IP : 193.168.20.2Couche Rseau (IP)

    @ Ethernet @ EthernetCouche Liaison

    Couches Session Application

    Les sockets

  • Cration de socket : socket(family, type, protocol)Ouverture de dialogue :

    client : connect(...)serveur : bind(..), listen(...), accept(...)

    Transfert de donnes :mode connect : read(...), write(...), send(...), recv(...)mode non connect : sendto(...), recvfrom(...), sendmsg(...), recvmsg(...)

    Clture du dialogue :close(...), shutdown(...)

    L'API socket

  • bloqu jusqu' la rception de la rponse

    bloqu jusqu' la rception de la requteenvoi requte

    Client Serveur

    socket()

    bind()

    sendto()

    recvfrom()

    close()

    socket()

    bind()

    sendto()

    recvfrom()

    close()

    Cration de la socket

    Assignation nport - @ IP

    traitement de la requte

    envoi rponse

    traitement de la rponse

    Fermeture de la socket

    Client/Serveur en mode non connect

  • Client/Serveur en mode connect

    tablissement de la connexion

    bloqu jusqu' la rception de la rponse

    bloqu jusqu' la rception de la requteenvoi requte

    Client Serveursocket()

    connect()

    write()

    read()

    close()

    socket()

    bind()

    write()

    read()

    close()

    Cration de la socket

    traitement de la requte

    envoi rponse

    traitement de la rponse

    Fermeture de la socket

    listen()

    accept()

  • La primitive socket()

    int socket(int family, int type, int protocol)family :

    AF_INET : pour des communications InternetAF_UNIX : pour des communications locales

    type ou mode de fonctionnement :SOCK_STREAM : mode connect (TCP)SOCK_DGRAM : mode dconnect (UDP)SOCK_RAW : accs direct aux couches basses (IP)

    protocol :IPPROTO_UDP (protocole UDP avec SOCK_DGRAM)IPPROTO_TCP (protocole TCP avec SOCK_STREAM)IPPROTO_ICMP (protocole ICMP avec SOCK_RAW)IPPROTO_RAW (accs direct IP avec SOCK_RAW)

  • La primitive connect()int connect(int sock_desc, struct sockaddr * @_serveur, int lg_@) sock_desc : descripteur de socket retourn par socket()@_serveur : adresse IP et n de port du serveur distantExemple de client :

    int sd;struct sockaddr_in serveur; // @IP, n port, modestruct hostent remote_host; // nom et @IP

    sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);serveur.sin_family = AF_INET;serveur.sin_port = htons(13);remote_host = gethostbyname(brassens.upmf-grenoble.fr);bcopy(remote_host->h_addr, (char *)&serveur.sin_addr, remote_host->hlength); // Recopie de ladresseconnect(sd, (struct sockaddr *)&serveur, sizeof(serveur));

  • La primitive bind()int bind(int sock_desc, struct sockaddr *my_@, int lg_@) sock_desc : descripteur de socket retourn par socket()my_@ : adresse IP et n de port auxquels le serveur veut rpondreExemple de serveur :

    int sd;struct sockaddr_in serveur; // @IP, n port, mode

    sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);serveur.sin_family = AF_INET;serveur.sin_port = 0; // Laisse le systme choisir un portserveur.sin_addr.s_addr = INADDR_ANY;

    // Autorise des connexions de nimporte obind(sd, (struct sockaddr *)&serveur, sizeof(serveur));

  • La primitive listen()

    int listen(int sock_desc, int backlog) sock_desc : descripteur de socket retourn par socket()backlog : nombre maximum de connexions en attente dtre acceptesExemple de serveur :

    int sd;struct sockaddr_in serveur; // @IP, n port, mode

    sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);serveur.sin_family = AF_INET;serveur.sin_port = 0; // Laisse le systme choisir un portserveur.sin_addr.s_addr = INADDR_ANY;

    // Autorise des connexions de nimporte obind(sd, (struct sockaddr *)&serveur, sizeof(serveur));listen(sd, 5);

  • La primitive accept()int accept(int sock_desc, struct sockaddr *client, int lg_@) sock_desc : descripteur de socket retourn par socket() client : identit du client demandant la connexion accept renvoie le descripteur de la nouvelle socket cre

    tablissement de la connexion

    bloqu jusqu' la rception de la rponse

    bloqu jusqu' la rception de la requteenvoi requte

    Client Serveursc = socket()

    connect(sc)

    write(sc)

    read(sc)

    close(sc)

    ss =socket()

    bind(ss)

    write(sa)

    read(sa)

    close(sa)

    Cration de la socket

    traitement de la requte

    envoi rponse

    traitement de la rponse

    Fermeture de la socket

    listen(ss)

    sa = accept(ss)

  • Les primitives d'envoi/rception int write(int sock_desc, char *tampon, int lg_tampon); int read(int sock_desc, char *tampon, int lg_tampon); int send(int sock_desc, char *tampon, int lg_tampon, int drap); int recv(int sock_desc, char *tampon, int lg_tampon, int drap); int sendto(int sock_desc, char *tampon, int lg_tampon, int drap, struct sockaddr *to, int lg_to);

    int recvfrom(int sock_desc, char *tampon, int lg_tampon, int drap, struct sockaddr *from, int lg_from);

    drap : options de contrle de la transmission (consulter le man)

  • Programmation Rseau

    Applications Client/serveur

    Mode connect/mode non connect

    Programmation en C

    Programmation en java

  • C a n a u x b i d i r e c t i o n n e l s C o m m u n i c a t i o n e n t r e d e u x a p p l i c a t i o n s

    d i s t a n t e s p a r d e s c a n a u x d e b i d i r e c t i o n n e l s ( s o c k e t s ) .

    d e u x t y p e s d e s o c k e t s e n J a v a : S t r e a m s o c k e t s ( T C P ) : c o m m u n i c a t i o n e n m o d e

    c o n n e c t , c a r a c t r i s e s p a r l e c a r a c t r e c o n t i n u d u f l u x d e d o n n e s ( o r d r e c o r r e c t - d o n n e s n o n c o r r o m p u e s ) .

    D a t a g r a m s o c k e t s ( U D P ) : c o m m u n i c a t i o n e n m o d e n o n - c o n n e c t : p l u s g r a n d e r a p i d i t , m a i s f i a b i l i t m o i n d r e ( p e r t e , d u p l i c a t i o n o u d s o r d r e p o s s i b l e s ) .

  • C l a s s e s d e j a v a . n e t

    C o n t e n t H a n d l e r : b a s e p o u r g r e r c o n t e n u s M I M E D a t a g r a m P a c k e t D a t a g r a m S o c k e t I n e t A d d r e s s : g e s t i o n d e s a d r e s s e s S e r v e r S o c k e t S o c k e t S o c k e t I m p l U R L U R L C o n n e c t i o n U R L E n c o d e r U R L S t r e a m H a n d l e r

    U D P

    U R L

    T C P

  • I n e t A d r e s sp u b l i c f i n a l c l a s s I n e t A d d r e s s {

    p u b l i c S t r i n g g e t H o s t N a m e ( )p u b l i c b y t e [ ] g e t A d d r e s s ( )p u b l i c S t r i n g g e t H o s t A d d r e s s ( )p u b l i c i n t h a s h C o d e ( )p u b l i c b o o l e a n e q u a l s ( O b j e c t o b j )p u b l i c S t r i n g t o S t r i n g ( )p u b l i c s t a t i c s y n c h r o n i z e d I n e t A d d r e s s g e t B y N a m e ( S t r i n g h o s t ) t h r o w s U n k n o w n H o s t E x c e p t i o np u b l i c s t a t i c s y n c h r o n i z e d I n e t A d d r e s s g e t A l l B y N a m e ( S t r i n g h o s t ) [ ] t h r o w s U n k n o w n H o s t E x c e p t i o np u b l i c s t a t i c I n e t A d d r e s s g e t L o c a l H o s t ( ) t h r o w s U n k n o w n H o s t E x c e p t i o n

    }

  • S e r v e r S o c k e tp u b l i c f i n a l c l a s s S e r v e r S o c k e t {p u b l i c S e r v e r S o c k e t ( i n t p o r t )

    t h r o w s I O E x c e p t i o np u b l i c S e r v e r S o c k e t ( i n t p o r t , i n t b a c k l o g )

    t h r o w s I O E x c e p t i o np u b l i c I n e t A d d r e s s g e t I n e t A d d r e s s ( )p u b l i c i n t g e t L o c a l P o r t ( )p u b l i c S o c k e t a c c e p t ( )

    t h r o w s I O E x c e p t i o np u b l i c v o i d c l o s e ( )

    t h r o w s I O E x c e p t i o np u b l i c S t r i n g t o S t r i n g ( )p u b l i c s t a t i c s y n c h r o n i z e d v o i d

    s e t S o c k e t F a c t o r y ( S o c k e t I m p l F a c t o r y f a c )t h r o w s I O E x c e p t i o n

    }

  • S o c k e tp u b l i c f i n a l c l a s s S o c k e t {

    p u b l i c S o c k e t ( S t r i n g h o s t , i n t p o r t )t h r o w s U n k n o w n H o s t E x c e p t i o n , I O E x c e p t i o np u b l i c S o c k e t ( S t r i n g h o s t , i n t p o r t , b o o l e a n s t r e a m )t h r o w s I O E x c e p t i o n

    p u b l i c S o c k e t ( I n e t A d d r e s s a d d r e s s , i n t p o r t )t h r o w s I O E x c e p t i o n

    p u b l i c S o c k e t ( I n e t A d d r e s s a d d r e s s , i n t p o r t , b o o l e a n s t r e a m )t h r o w s I O E x c e p t i o n

    p u b l i c I n e t A d d r e s s g e t I n e t A d d r e s s ( )p u b l i c i n t g e t P o r t ( )p u b l i c i n t g e t L o c a l P o r t ( )p u b l i c I n p u t S t r e a m g e t I n p u t S t r e a m ( ) t h r o w s I O E x c e p t i o n p u b l i c O u t p u t S t r e a m g e t O u t p u t S t r e a m ( ) t h r o w s I O E x c e p t i o n p u b l i c s y n c h r o n i z e d v o i d c l o s e ( ) t h r o w s I O E x c e p t i o n p u b l i c S t r i n g t o S t r i n g ( )p u b l i c s t a t i c s y n c h r o n i z e d v o i d

    s e t S o c k e t I m p l F a c t o r y ( S o c k e t I m p l F a c t o r y f a c )t h r o w s I O E x c e p t i o n}

  • Utilisation des sockets TCP / IP

    Client

    1- Cration d'un client et tentative de connexionConstruction d'un objet de type Socket (paramtres : hte et n de port)

    2- EchangeOutputStreamInputStream3- Fermeture (close())

    Serveur

    1- Enregistrement du service Construction d'un objet de type ServerSocket (paramtres : n de port et nombre connexions)2- Attente d'une demande de connexion du clientaccept() retourne, lorsqu'une connexion est accepte, un objet de type Socket

    3- EchangeInputStreamOutputStream4- Fermeture (close())

  • Exemple de code : Serveur (1)import java.net.*;import java.io.*;public class Serveur { ServerSocket srvk; public Serveur (int port) throws IOException { srvk = new ServerSocket (port); }public void go (){ while (true){ try { Socket sck = srvk.accept ();

    OutputStream os = sck.getOutputStream();ObjectOutputStream oos = new ObjectOutputStream(os);String msg = "REPONSE DE SERVEUR";Object obj = (Object) msg;

    oos.writeObject(obj); sck.close ();

    } catch (IOException e) {} }}

  • E x e m p l e d e c o d e : S e r v e u r ( 2 )

    public static void main (String args []) throws IOException { Serveur s = new Serveur (Integer.parseInt (args[0])); s.go (); } }

  • Exemple de code : Client (1)import java.net.*;import java.io.*;public class Client { Socket so; public Client (String host, int port) throws IOException { so = new Socket (host, port); } public void go () { try {

    InputStream is = so.getInputStream (); ObjectInputStream ois = new ObjectInputStream (is);

    Object obj = ois.readObject(); String msg = (String) obj;

    System.out.println(msg); }catch (IOException e) {}

    catch (ClassNotFoundException e){} } public void stop (){ try { so.close ();} catch (IOException e) { } }

  • public static void main (String args []) throws IOException { Client c = new Client (args[0], Integer.parseInt (args[1])); c.go (); c.stop (); }}

    Exemple de code : Client (2)

  • Bilan

  • Notion de protocole

    Modle de rfrence : OSI de ISO

    Modle utilis sur Internet : TCP/IP

    Modles en couches

    Notion de fanion

    Notion de transparence

    Dlimitation des donnes

  • Couche Internet (1)

    Protocole IP

    Gestion de la fragmentation

    ARP, ICMP

    IPv6

  • Couche Internet (2)

    Routage

    Routage statique (Commandes)

    Routage dynamique (Protocoles RIP, OSPF, RGP, BGP)

  • Couche Transport

    Services de la couche

    Protocole UDP

    Protocole TCP

  • Couche Applications

    Protocoles dns, telnet, shh, ftp, smtp, pop et http

  • Programmation Rseau

    Applications Client/serveur

    Mode connect/mode non connect

    Programmation en C

    Programmation en java

    Diapo 1Diapo 2Diapo 3Diapo 4Diapo 5Diapo 6Diapo 7Diapo 8Diapo 9Diapo 10Diapo 11Diapo 12Diapo 13Diapo 14Diapo 15Diapo 16Diapo 17Diapo 18Diapo 19Diapo 20Diapo 21Diapo 22Diapo 23Diapo 24Diapo 25Diapo 26Diapo 27Diapo 28Diapo 29Diapo 30Diapo 31Diapo 32Diapo 33Diapo 34Diapo 35Diapo 36Diapo 37Diapo 38Diapo 39Diapo 40Diapo 41Diapo 42Diapo 43Diapo 44Diapo 45Diapo 46Diapo 47Diapo 48Diapo 49Diapo 50Diapo 51Diapo 52Diapo 53Diapo 54Diapo 55Diapo 56Diapo 57Diapo 58Diapo 59Diapo 60Diapo 61Diapo 62Diapo 63Diapo 64Diapo 65Diapo 66Diapo 67Diapo 68Diapo 69Diapo 70Diapo 71Diapo 72Diapo 73Diapo 74Diapo 75Diapo 76Diapo 77Diapo 78Diapo 79Diapo 80Diapo 81Diapo 82Diapo 83Diapo 84Diapo 85Diapo 86Diapo 87Diapo 88Diapo 89Diapo 90Diapo 91Diapo 92Diapo 93Diapo 94Diapo 95Diapo 96Diapo 97Diapo 98Diapo 99Diapo 100Diapo 101Diapo 102Diapo 103Diapo 104Diapo 105Diapo 106Diapo 107Diapo 108Diapo 109Diapo 110Diapo 111Diapo 112Diapo 113Diapo 114Diapo 115Diapo 116Diapo 117Diapo 118Diapo 119Diapo 120Diapo 121Diapo 122Diapo 123Diapo 124Diapo 125Diapo 126Diapo 127Diapo 128Diapo 129Diapo 130Diapo 131Diapo 132Diapo 133Diapo 134Diapo 135Diapo 136Diapo 137Diapo 138Diapo 139Diapo 140Diapo 141Diapo 142Diapo 143Diapo 144Diapo 145Diapo 146Diapo 147Diapo 148Diapo 149Diapo 150Diapo 151Diapo 152Diapo 153Diapo 154Diapo 155Diapo 156Diapo 157Diapo 158Diapo 159Diapo 160Diapo 161Diapo 162Diapo 163Diapo 164Diapo 165Diapo 166Diapo 167Diapo 168Diapo 169Diapo 170Diapo 171Diapo 172Diapo 173Diapo 174Diapo 175Diapo 176Diapo 177Diapo 178Diapo 179Diapo 180Diapo 181