Upload
samia-hmidi
View
221
Download
4
Embed Size (px)
Citation preview
Cours de Rseaux
Karim SehabaMatre de confrences
Universit Lumire Lyon 2
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
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