Title: Section 2: L
1Linternet, le protocole TCP/IP et le modèle
client-serveur
2LInternet est un système ouvert
- La documentation technique détaillée est gratuite
et publiquement disponible - Les logiciels gratuits et ouverts sont
disponibles - Lexpertise technique y est facilement accessible
3Architecture ouverte
- Standards ouverts, normes
- Protocoles et conversions réseaux
- Données, documents, fichiers en tout genre
- Interface dappel (API) standardisé pour les
logiciels - Tests dacceptation
- Référence disponible
- Logiciels ouverts
- Bien public et commun
- Composants recyclés et réutilisables
- Code source
- Accessible
- Distribuable
- Modifiable
4Implication des systèmes ouverts
- Une grande variété dimplémentations des
standards, par exemple TCP/IP - Le coût de lutilisation est faible
- Haut niveau de compatibilité
- Un écosystème riche
- Entreprises qui vendent et supportent des produits
5Exemples de systèmes ouverts
- TCP/IP
- HTTP
- Linux
- Apache
- Sendmail
6Histoire de lInternet (i)
- ARPA (Agence américaine) démarre le réseau
ARPAnet - ARPAnet utilise initialement le protocole NCP
- En 1974, Cerf et Kahn développe TCP/IP
7Histoire de lInternet (ii)
- Séparation de ARPAnet entre MILnet et ARPAnet,
ARPAnet devient lInternet - 1982- Unix/BSD rend disponible les codes sources
des logiciels opérant Internet - 1990- Développement du Web au CERN
- 1993- National Center for SuperComputing
Application (NCSA) - Serveur et client Web accessibles
8Introduction aux réseaux
- Topologie physique des réseaux
- Bus
- Anneau
- Étoile
- Fédération
9Bus
Devices computers, printers etc
Terminator
10Exemple de topologie en bus
11Anneau
Computer
Computer
Mass storage device
Printer
12Exemple danneau
- Fibre pour accès aux disques
13Étoile
14Exemple détoile
- Concentrateur Ethernet,
- Rejoint par les postes locaux avec des paires
torsadées par les prises murales
15Fédération
Réseau local 1
Réseau local 2
Réseau local 3
Réseau local 4
16Exemple de fédération
- LInternet actuel
- Fédération de réseaux locaux
17Topologie logique
- Une architecture en couche
- Séparée en niveau de fonctionnalité
- Chaque niveau sappuie sur les capacités de la
couche inférieure - Les niveaux les plus bas sont proches du matériel
- Cette séparation en couche permet une division du
travail et des préoccupations
18Modèle de référence simplifié
A1
A2
19Principes des couches
- Réduire la complexité des logiciels
- La couche N-1 offre ses services à la couche N
- La couche supérieure (N) na pas besoin de savoir
comment les services à la couche N-1 sont
implémentés - Les entités paires utilisent des protocoles pour
communiquer. - Les protocoles sont des règles déchange de
message et des conventions entre les entités
paires - Les messages forment une chorégraphie
20Modèle OSI
- Le modèle OSI a été défini par l'Internatinal
Standardization Organisation (ISO). - Ce modèle se décompose en 7 couches.
- Les services de chaque couche peuvent interagir
uniquement avec les services des couches
contigües, via un Service Access Point (SAP). - Chaque couche définit un protocole de niveau N et
échange des Protocol Data Unit de niveau N
(N-PDU). - Chaque N-PDU est encapsulé dans (N-1)-PDU.
21Division en niveaux (TCP/IP et OSI)
Applications 7 Applications
Transport (TCP) 6 Présentation
Transport (TCP) 5 Session
Transport (TCP) 4 Transport
Couche Inter-réseau (IP-Internet Protocol) 3 Réseau
Couche accès au réseau 2 Liaison de données
Modem, Éthernet, FDDI, ATM 1 Physiques
22Description des couches
- Physique -gt Brochage, Tensions...
- Liaison de Données -gt Structuration, Correction,
Accès au medium... - Réseau -gt Routage, Fragmentation. Communication
entre systèmes - Transport -gt Communication entre processus
- Session -gt Connexion, Déconnexion.
- Présentation -gt Structuration des données typées.
- Application -gt Communication entre "utilisateurs
23Suite des protocoles Internet
- Application
- HTTP, HTTPS, FTP, IMAP, IRC, NNTP, POP3, SIP,
SMTP, SNMP, SSH, Telnet, BitTorrent - Transport
- TCP, UDP, DCCP, SCTP, RTP, UDP, IL, RUDP
- Réseau
- IPv4, IPv6, ...
- Liaison de données
- Ethernet, Wi-Fi, Token ring, FDDI, PPP, ...
- Physique
- RS-232, EIA-422, RS-449, EIA-485, 10BASE2,
10BASE-T, ...
24Les applications de lInternet (i)
- HyperText Transfer Protocol (HTTP),
- Utilisé pour le transfert de documents Web
- File Transfert Protocole (FTP),
- pour le transfert de fichiers
- Simple Mail Transfer Protocol (SMTP),
- pour le courrier électronique
- Network News Transfer Protocol (NNTP)
- Pour les news et les babillards électroniques
- Telnet, Terminal Emulation
- pour les connections en mode ligne
- Internet Relay Chat (IRC) pour le clavardage
- Gnutella pour léchange de fichiers
- peer to peer
25Les applications de lInternet (ii)
- Ligthweight Directory Access Protocol (LDAP)
- Service pour les répertoires distribués
- Kerberos, pour la sécurité
- Network Time Protocol (ntp)
- Pour la synchronisation du temps
- Network File System (NFS)
- utilisé pour le partage des fichiers
26Les applications de lInternet (iii)
- Trivial File Transfer Protocol (TFTP)
- utilisé pour la transmission rapide de fichiers
- Transmission Control Protocol (TCP),
- Utilisé pour le contrôle dune session de
communication. - User Datagram Protocol (UDP),
- Utilisé pour la transmission rapide dun petit
message, non fiable. - Internet Protocol (IP),
- Routage des packets dun réseau à un autre réseau
27Lidentification des ordinateurs
- Une fonction de base de nimporte quel réseau est
ladressage unique et universel - Ladresse physique
- MAC Address
- Numéro unique de fabrication de la carte réseau
- 009027178c3c
- Ladresse logique ladresse IPv4
- La notation décimale, avec 4 chiffres dun octet,
identifie ladresse numérique IP de lordinateur - 132.204.70.11
- Ladresse avec le nom internet
- bor.iro.umontreal.ca
28Ladresse physique
- MAC Address
- Numéro unique de fabrication de la carte réseau
- 009027178c3c
- 6 octets, 48 bits
- notation hexadécimale
- organizationally unique identifier
- OUI 22 bits
- organizationally unique address
- OUA 24 bits
- Peut être modifiée par programme!
- Tout 1 ladresse MAC globale
29Les adresses IPv4
- 4 types dadresses Classe A, Classe B, Classe C,
Classe D - Classe A
- premier bit à 0
- 7 bits suivant numéro de réseau
- 3 octets suivant ladresse de lordinateur
- Classe B
- 2 premiers bits à 10
- 6 bits et 1 octet suivant adresses du réseau
- 1 octet, adresse du sous-réseau dans
linstitution - dernier octet adresse de lordinateur
30Les adresses IP (ii)
- Classe C
- 3 premiers bits à 110
- 21 bits suivant donne ladresse du sous-réseau
- Dernier octet adresse de lordinateur
- Classe D
- 3 premiers bits à 111
- Les autres octets spécifient une adresse
multidestinataire - Par exemple
- Lheure
- un canal de vidéo numérique
- Des tics de synchronisation
31Exemple une adresse de classe A
7 bits
1 bit
24 bits
Adresse du réseau
Adresse de lordinateur
32La notation décimale
4 octets de 0 à 255, réflètant les 32 bits
utilisés dans lInternet
Exemple
101.23.111.128
33Ladresse de retour arrière
- Loopback address
- 127.0.0.1
- Tout paquet envoyé à cette adresse revient à cet
ordinateur - Idéal pour faire des tests
- Idéal pour faire des exercices de réseau sur un
seul ordinateur
34Problèmes de IPv4
- Les quatre milliards d'adresses IP théoriquement
disponibles - ne sont pas utilisables en grande partie
- Elles sont destinées à des usages particuliers le
multicast - Appartiennent déjà à des sous-réseaux importants,
les réseaux de classe A et B - Américains, Européens, Canadiens
- Pénurie d'adresses
- Partiellement compensée par
- la Traduction d'Adresse et de Port Réseau
(NAPT)-(Network Address Translation) - L'attribution dynamique d'adresses
- Assouplir le découpage en classes des adresses
(CIDR).
35IPv6
- Conçu en 1995
- Des adresses à 128 bits
- Augmentation de 232 à 2128 des adresses
disponibles - 64 premiers bits de l'adresse IPv6 servent
généralement à l'adresse de sous-réseau - 64 bits suivant identifient l'hôte à l'intérieur
du sous-réseau - Sécurité - Ipsec
- Qualité de service QoS
- Garantie de bande passante
- Configuration et renumérotation automatique
36Les serveurs de noms de domaine (DNS)
- Permet dassocier un nom à chaque adresse
internet IP - Gère la correspondance entre le nom internet
utilisé dans les URL, et l'adresse IP - Les noms sont organisés hierarchiquement, 4
niveaux - Premier niveau
- .com, .edu, .biz, .net, .org, .mil (domaine par
secteur) - .ca, .fr, .it (domaine par pays)
- Deuxième niveau
- .qc, .on (province)
- Ibm, cgi, videotron, bell, umontreal
(compagnies/organisations)
37Un exemple
Pays dorigine
www.iro.umontreal.ca
Nom de lordinateur
Nom de lorganisationccanadienne
Nom du département
38Hierarchie
com edu gov uk fr
athena.cs.mit.edu
mit
Lordinateur athena dans le département cs au MIT
du domaine educatif
cs
athena
39Les Serveurs de noms
- "Domain Name Service DNS"
- Service bottins de noms distribués
- Hierarchique et transversal
- Les noms locaux sont gérés localement
.umontreal.ca. est géré à l'Université de
Montréal - Les noms nationaux sont gérés par un organisme
national, par ex ca. et qc.ca. - La racine "." est distribué à travers le monde
- De A à M.ROOT-SERVER.NET
- États-Unis, Japon, Europe
40Protocoles client-serveur
- Un réseau peut être perçu comme un ensemble de
clients et de serveurs - Un serveur fournit un service
- Un serveur Web fournit des documents Web
- Le client demande les services fournit par un
serveur
41Port et socket
- Un port est un concept logique de TCP/IP, à ne
pas confondre avec un port matériel - Un port, chiffré sur 16 bits,
- Il identifie un canal de communication local à
une machine - Certains port sont dédiés à certaines applications
42Multiplexage et démultiplexage
Port xx
Port yy
Internet
Machine B
Machine A
43Quelques ports serveur dédiés
- Numéro de port inférieur à 1024
- 80 est dédié au traffic Web
- 25 est utilisé pour le courrier électronique
- Simple Mail Transfer Protocol
- 110 est utilisé pour le Post Office Protocol
- POP, version 3
- 20, 21 sont utilisés pour le transfert de
fichiers - FTP
44Canal de communication
- Fil de messages
- Suite de caractères
- A la base
- Messages unidirectionnels
- 2 fils de messages unidirectionnels
- forment un canal bi-directionnel
45Un socket
- Un socket est une connexion dans un ordinateur
- Adresse IP (4 octets) numéro de port (2
octets) - Deux types de connexion
- Mode connecté, avec TCP
- Mode non connecté, avec UDP
- Pour le mode connecté
- Socket serveur,
- en écoute universelle, en attente dappel
- Utilisé pour créer les sockets de connexion
- Socket de connexion
- dédié à une connexion en cours
46Une conversation TCP/IP
- Initiée par le client sur le socket serveur
- Poursuivie sur une connexion dédiée
- 2 sockets, un à chaque extrémité de la connexion
- Adresse Ip numéro du port dorigine
- Adresse IP numéro du port de destination
47Les sockets en Java
- Java contient les objets pour gérer les sockets,
les sockets serveur et les files (streams)
dentrées-sorties - ServerSocket
- Socket
- InputStream
- OutputStream
- BufferedReader
- PrintWriter
48Les sockets et lentrée en Java
Socket ss new Socket(bor.iro.umontreal.ca,
2048) InputStream is ss.getInputStream() Buffe
redReader bf new BufferedReader(new
InputStreamReader(is))
Crée un BufferedReader à lordinateur bor du iro
sur le port 2048. Les données peuvent maintenant
être lues.
49Les sockets et la sortie en Java
Socket ss new Socket(archer.open.ac.uk,
2048)OutputStream os ss.getOutputStream()Pri
ntWriter pw new PrintWriter(os, true)
Sets up a PrintWriter object attached to the
computer archer at the Open University. The
client can then write data to this computer. Note
that true in the PrintWriter constructor flushes
data from the buffer automatically
50La classe ServerSocket
- Utilisée pour construire un socket en mode écoute
du côté serveur - A un constructeur qui spécifie le port qui doit
être utilisé - La méthode accept bloque jusquà ce quune
requête de connexion dun client arrive - Puis elle génére un objet socket unique pour la
connexion.
51Exemple dutilisation
ServerSocket ss new ServerSocket(200)//Wait
for a connectionSocket sockS
ss.accept()//Connection receivedInputStream is
sockS.getInputStream()OutputStream os
sockS.getOutputStream()// is and os can then be
used for communication// to the server
52Clients et Serveurs
- Un serveur fournit un service comme distribuer
des fichiers - Un client demande un service
- Cette distinction nest pas coulé dans le béton
et un serveur peut agir comme client sur un autre
serveur
53Un serveur comme client
- Fréquent dans les applications commerce
électronique - Exemple
- Un serveur Web appelle les services dun serveur
de base de données pour accéder à un catalogue
54Protocoles
- Utilisés pour la communication au sein dun
système distribué - HTTP est le protocole utilisé pour laccès aux
services Web - Décrit plus loin
- Beaucoup dautres protocoles existent
- POP3 pour le courrier électronique
- Les plus simples sont de type requête/réponse
55Les protocoles synchrones
- Modèle requête/réponse
- Simple
- souvent du texte sur une connexion
- Un client
- émet une requête
- reçoit une réponse
- Le serveur
- Reçoit la requête
- Retourne la réponse
56HTTP est le meilleur exemple
- a une commande qui requière une page HTML,
- la réponse est soit la page, soit un message
derreur
57Les protocoles asynchrone
- Selon un modèle
- Ranger et faire suivre
- Store and forward
- Construit en assemblant les protocoles synchrones
- Chaîne
- client1-serveur2-serveur3-client4
- Suites de Requête/Réponse
- A chaque maillon de la chaîne
- les serveurs rangent les messages
- Puis, retransmettent les messages au suivant de
la chaîne
58Exemple Le courrier électronique
- La chaîne humain-agent-serveur-serveur-agent-huma
in - Serveurs de courrier électronique
- Protocole SMTP entre les serveurs
- En-tête de message
- Logiciels humain-agent de courrier
- Netscape, section Messenger
- Outlook Express
- Service Web de courrier (Hotmail)
- Protocoles agent-serveur
- Protocole POP
- Protocole IMAP
- Contenus multiples
- Types MIME
59Protocole SMTPContenu d'un message (i)
- En-têtes
- Received from outmta031.topicadirect.com
(outmta031.topicadirect.com 64.209.191.215) by
hercule.cirano.qc.ca (8.9.3/8.9.3) with SMTP id
RAA12085 for ltrgl_at_cirano.umontreal.cagt Thu, 30
Aug 2001 171252 -0400 - To developerWorks ltdeveloperworks_at_ibm.email-publi
sher.comgt - From IBM developerWorks ltdeveloperworks_at_ibm.email
-publisher.comgt - Subject IBM developerWorks JavaMail J2EE SAX
Perl - 08/30/2001 - Date Thu, 30 Aug 2001 140000 -0700
- Message-ID lt11526.900008993.1837295047-738719082-
999205564_at_topica.comgt - Mime-Version 1.0
- Content-Type text/html
60Contenu d'un message (ii)
- Content-Type multipart/mixed boundary"----_Nex
tPart_000_0004_01C12BF5.18795030" - ------_NextPart_000_0004_01C12BF5.18795030
- Content-Type text/plain charset"iso-8859-1"
- Content-Transfer-Encoding 8bit
- Voici mon fichier électronique.
61Courrier électronique
- Simple, simple, trop simple
- Lémetteur du message
- Peut complètement le construire à sa guise
- Et ainsi forger les signatures des en-têtes
62Serveurs classiques
- Serveurs de fichiers
- Serveurs de base de données
- Serveurs collaboratifs
- Serveurs Web
- Serveur de courrier électronique
- Serveur dimpression
- Serveur dobjets distribués
63Références
- Introduction générale
- http//www.commentcamarche.net/internet/internet.p
hp3 - TCP/IP et les réseaux
- http//www.ens-lyon.fr/mquinson/reseaux.html
- Programmation Java
- http//java.sun.com/docs/books/tutorial/networking
/index.html