Vous êtes sur la page 1sur 12

Ecole Supérieur de Management, PLAN

Télécommunication et d’Informatique

ADMINISTRATION
RESEAUX
Chapitre 1 :

Protocoles de la couche
Chapitre II : Architecture des
systèmes d'administration de
réseaux

transport 

Préparé par :

Dr. Yacouba KOURAOGO TCP-UDP

4ème année SI Année académique: 2017-2018

PLAN La couche Transport

• Protocole UDP
Transmission Control Protocol (TCP)
! orienté connexion
• Protocole TCP User Datagram Protocol (UDP)
! orienté non connexion

• Introduction au modèle Client/Serveur

• Généralités sur les sockets • Distingue entre les différentes applications;


• Etablit les connexions de bout en bout entre les
applications;
• Principe de la programmation Réseau • Définit un mécanisme de contrôle de flux;
• Offre un service fiable ou non fiable au transport
des messages (segments)
TCP et UDP: Notion de port Exemples de ports TCP et UDP

Port TCP ou UDP Protocole applicatif


Identification du service : les ports
20 tcp ftp-data - File Transfer Protocol [flux de données]
les adresses IP désignent les machines entre lesquelles les
communications sont établies. 21 tcp ftp - File Transfer Protocol (le flux de contrôle pour
Lorsqu'un processus désire entrer en communication avec un autre le transfert de fichiers)
processus, il doit s’adresser au processus exécuté sur la 22 tcp SSH - Secure Shell
machine réceptrice.
Ces destinations abstraites permettant d'adresser un service 23 tcp telnet
applicatif s'appellent des ports de protocole.
25 tcp smtp - Simple Mail Transfer Protocol RFC 5321
L'émission d'un message se fait sur la base d'un port source et un port
destination. 53 udp/tcp domain - Domain Name Service (DNS)

Les processus disposent d'une interface système leur permettant de 67 udp DHCP, pour la recherche d'un serveur DHCP
spécifier un port ou d'y accéder (socket, etc.)
68 udp DHCP, pour le dialogue entre le serveur DHCP et le
client
110 tcp pop3 - Post Office Protocol - Version 3 RFC 1939

123 udp ntp - Network Time Protocol RFC 5905

Protocole UDP (User Datagram Protocol) UDP - Multiplexage

A l’émission: UDP multiplexe et démultiplexe les datagrammes en sélectionnant les


UDP possède un mécanisme permettant d’identifier les processus d’application à l’aide numéros de ports :
de numéros de port UDP.
une application obtient un numéro de port de la machine locale; dès que
UDP est orienté datagrammes (sans connexion), ce qui évite les problèmes liés l'application émet un message via ce port, le champ PORT SOURCE du
à l’ouverture, au maintien et à la fermeture des connexions. datagramme UDP contient ce numéro de port,
UDP ne séquence pas les données. La remise conforme des données n’est pas une application connaît un numéro de port distant afin de communiquer avec
le service désiré.
garantie. Aucunes fonctions de reconstitution des données perdues ou corrompues.
A la réception: Lorsque UDP reçoit un datagramme, il vérifie que le port de
UDP peut éventuellement vérifier l’intégrité des données (et des données seulement) destination est un des ports actuellement actifs (associé à une application) et le
délivre à l'application responsable.
avec un total de contrôle.
UDP est plus rapide, plus simple que TCP mais il est moins robuste et moins fiable. Si ce n'est pas le cas, il émet un message ICMP port unreachable, et détruit le
datagramme.
UDP est efficace pour les applications en diffusion et/ou multidiffusion.
TCP & UDP - Multiplexage Structure d'un datagramme UDP

Structure d'un datagramme UDP Structure d'un segment TCP

Source Port occupe 16 bits. Il indique:


le numéro de port du processus émetteur,
le numéro de port où on peut adresser les réponses lorsque l’on ne dispose
d’aucun autre renseignement.
si sa valeur est 0, cela signifie qu’aucun numéro de port n’est attribué.

Destination Port identifie le processus correspondant à l’adresse IP de destination


auquel on envoie les données UDP. UDP effectue le démultiplexage des données à
Drapeaux
l’aide de numéros de port. Lorsqu’UDP reçoit un datagramme sans numéro de Réservé : réservé pour un usage futur
ECN : signale la présence de congestion, voir RFC 3168
port, il génère un message d’erreur ICMP indiquant qu’il est impossible de URG : Signale la présence de données urgentes
ACK : signale que le paquet est un accusé de réception (acknowledgement)
contacter le port et il rejette le datagramme. PSH : données délivrées immédiatement à l'application sans attendre que le tampon du
récepteur soit plein (push)
RST : rupture anormale de la connexion (reset) (réinitialisation de la connexion)
SYN : demande de synchronisation (SYN) ou établissement de connexion
Length contient la longueur du paquet UDP en octets (entête + données). FIN : demande la FIN de la connexion
Structure d'un segment TCP Structure d'un segment TCP

Signification des champs : Signification des champs :

Somme de contrôle : somme de contrôle Numéro de séquence (32 bits) : La signification de ce numéro est à interpréter
Port source : numéro du port source calculée sur l'ensemble de l'en-tête TCP et selon la valeur du bit SYN (Synchronize), situé dans le champ Drapeaux de l'entête
des données TCP.
Port destination : numéro du port Lorsque SYN = 0, le numéro de séquence est celui du premier octet de données
Pointeur de données urgentes : position
destination relative des dernières données urgentes du segment en cours (par rapport à tous les octets du flot de données
Options : (de taille variable selon les transportées).
Taille de l'en-tête : longueur de l'en- options ajoutées. Ex. : MSS – Maximum
tête en mots de 32 bits (les options Lorsque SYN = 1, ce numéro présente le numéro initial (ISN – Initial Sequence
Segment Size, Timestamp pour calculer
font partie de l'en-tête) RTT). Number), c-à-d celui du premier octet du flot de données à transmettre. Ce
Remplissage : zéros ajoutés pour aligner numéro est géré par une horloge interne, propre à la machine locale. Il est tiré
Fenêtre : taille de fenêtre demandée, au sort.
les champs suivants du paquet sur 32 bits,
c'est-à-dire le nombre d'octets que le si nécessaire
récepteur souhaite recevoir sans Données : séquences d'octets transmis Numéro d'acquittement : numéro de séquence du dernier octet reçu par le
accusé de réception par l'application (par exemple : +OK POP3 récepteur (par rapport à tous les octets du flot de données reçues).
server ready...)

Exemple de communication en TCP Établissement d'une connexion TCP

• Le côté client de la connexion effectue une ouverture active en 3 temps :


Le client envoie un segment SYN au serveur,
Le serveur lui répond par un segment SYN/ACK,
Le client confirme par un segment ACK.
Terminaison d'une connexion TCP Fonctions du protocole TCP

Fiabilité
L’utilisation d’un mécanisme appelé PAR (Positive Acknowlegment with
Retransmission, Accusé de réception positif avec la retransmission)
permet à TCP de garantir des transmissions fiables.
Un système utilisant PAR envoie à nouveau les données, à moins que le
système à distance ne lui renvoie un message précisant que les données
sont arrivées correctement.

Chaque segment contient un total de contrôle que le destinataire utilise pour vérifier
que les données n’ont pas été endommagées pendant leur transmission.
Si le segment de données est reçu en parfait état, le récepteur renvoie
un accusé de réception positif à l’émetteur.
Dans la négative, le récepteur élimine ce segment de données. Après
un délai d’attente déterminé, le module TCP d’envoi retransmet les
La phase de terminaison d'une connexion utilise un handshaking en quatre segments pour lesquels aucun accusé de réception positif n’a été reçu.
temps, chaque extrémité de la connexion effectuant sa terminaison de
manière indépendante.

La fin d'une connexion nécessite une paire de segments FIN et ACK pour
chaque extrémité.

Fonctions du protocole TCP Fonctions du protocole TCP

Acquittement de messages
Fiabilité Contrairement à UDP, TCP garantit l'arrivée des messages, c'est à dire qu'en cas de perte, les deux
extrémités sont prévenues.
Ce concept repose sur les techniques d’acquittement de message : lorsqu'une source S émet un
message Mi vers une destination D, S attend un acquittement Ai de D avant d'émettre le
message suivant Mi+1.
Si l’acquittement Ai ne parvient pas à S, S considère au bout d'un certain temps que le message est
perdu et reémet Mi (acquitement simple).
Fonctions du protocole TCP Fonctions du protocole TCP

Transfert de données & Acquittement de messages :

Segmentation
TCP représente les données qu’il envoie sous la forme d’un flot continu
d’octets et non sous la forme de paquets indépendants. Par conséquent, TCP
veille à maintenir l’ordre dans lequel les octets ont été transmis et reçus.
TCP divise ce flot de données en segments en utilisant un mécanisme de fenêtrage.
Un segment est émis dans un datagramme IP.

Le fenêtrage et contrôle de flux:


La technique acquittement simple pénalise les performances puisqu'il faut attendre un
acquittement avant d'émettre un nouveau message.
Le fenêtrage améliore le rendement des réseaux.
La technique du fenêtrage : une fenêtre de taille T, permet l'émission d'au plus T
messages "non acquittés" avant de ne plus pouvoir émettre.

TCP – Exemple de fenêtrage

Modèle Client/serveur
Modèle Client / Serveur Modèle Client / Serveur

Communication Communication
Le modèle client-serveur désigne un mode de communication à 1 client / 1 serveur N client / 1 serveur

travers un réseau entre plusieurs programmes ou logiciels :


l'un, qualifié de client, envoie des requêtes
l'autre, qualifié de serveur, attend les requêtes des clients et y répond.

Le terme serveur fait référence à tout processus qui reçoit une


demande de service (requête) venant d'un client via un réseau,
traite cette demande et renvoie le résultat (réponse) au
demandeur, le client.

Exemples d’applications Client/Serveur Modes de communication

Il existe 2 types d’application :


Il existe une grande variété de logiciels serveurs et de logiciels clients en fonction
des besoins à servir : Applications orientées connexion
Applications orientées sans connexion
un serveur web publie des pages web demandées par des navigateurs
web ;
un serveur de messagerie électronique envoie des mails à des clients de Applications orientées connexion :
messagerie
protocole fonctionnant en mode connecté : TCP/IP
un serveur de fichiers permet de stocker et consulter des fichiers sur le
réseau protocole fiable
un serveur de données sert à stocker et administrer des données
stockées dans une base de données
Applications orientées sans connexion :
etc.
protocole fonctionnant en mode non connecté : UDP/IP
vérifications devant être faites au niveau applicatif
Protocole non fiable mais rapide
Mode connecté Mode non connecté

Le mode connecté :
Le mode non connecté
⋍ communication téléphonique
⋍ communication par courrier
protocole TCP. protocole UDP

une connexion durable est établie entre les deux processus


nécessite l'adresse de destination à chaque envoi

l'adresse de destination n'est pas nécessaire à chaque envoi de aucun accusé de réception n'est donné.
Risque de perte de paquets
données.
Ordre inconnu des paquets

Il faut penser à fermer la connexion

Comment écrire une application réseau?

La pile TCP/IP est implémentée au sein du système d’exploitation (OS – Operating

Généralités sur les


System)

sockets OS permet l’utilisation des fonctionnalités TCP/IP à travers les Interfaces SOCKET

(SOCKET APIs)

API: Application Program Interface

Les programmeurs ont développé les applications réseau en utilisant les SOCKET

APIs
Définition d’un socket Principe de communication avec des sockets

Un socket constitue un mécanisme de communication entre processus


du système Unix (mais pas exclusivement). Il sert d’interface entre les
applications et les services réseau fournis par l’OS. Il existe pour cela une
bibliothèque (ensemble de fonctions/primitives) permettant de gérer les
services de communication offerts par les sockets.

Une application envoie et reçoit des données à travers un socket:

Caractéristiques d’un socket Caractéristiques d’un socket

Il y a plusieurs types de sockets. Le type de socket dépend des


Un domaine de communication est une famille abstraite qui définit un mode
caractéristiques de la communication que l’on souhaite établir à l’aide du
d’adressage (standard d’adressage) et un ensemble de protocoles utilisables par
socket :
unicité des envois (pas de doublons), les sockets. Il existe une variété de domaines : UNIX, INTERNET, X25, DECNET,
respect de la séquentialité des envois,
APPLETALK, ISO, etc.
efficacité de distribution et sécurité,
autorisation de messages hors-normes (out-of-bande), c’est un message délivré hors du
flux normal des données,
Les principaux domaines sont :
support de mode connecté,
Etc. AF_UNIX (PF_UNIX): le domaine local.
Un socket est toujours défini dans un domaine de communication et son
AF_INET (PF_UNIX): le domaine Internet qui permet d’atteindre des
type est défini par rapport aux propriétés du domaine de communication.
processus s’exécutant sur des machines distantes (de l’Internet).
Modes de communication Modes de communication
avec les sockets avec les sockets

Les sockets en mode connecté (protocole TCP): Ces sockets ouvrent une liaison
bidirectionnelle sécurisée et séquentielle entre deux processus, et garantissent l’unicité
Les sockets en mode connecté (protocole TCP).
des transferts. Le mode séquentiel établit un circuit virtuel de communication point à

Les sockets à base de datagramme en mode non connecté (protocole point.

UDP). Les sockets à base de datagramme en mode non connecté (protocole UDP): Ces
sockets permettent le transfert de fichiers de façon bidirectionnelle mais ne garantissent
Les sockets en mode caractère (raw socket).
ni l’unicité, ni la séquentialité des transferts. Ce mode n’est pas fiable, il peut y avoir des
pertes.

Les sockets raw (raw socket): Ce type de socket sont nécessaires aux protocoles qui
sont directement encapsulés dans IP, sans passer par TCP ni UDP.

Type de sockets Opérations sur un socket

Le type détermine la sémantique des communications que le socket permet de réaliser.


Un socket fait objet principalement des opérations suivantes:

Création: fonction socket()


Association avec les informations de la connexion: fonction bind()
Mise en écoute: fonction listen()
Connexion: fonction connect()
Envoi & réception de données: fonctions read, recv, write, send, sendto,
recvfrom
Fermeture: fonction closesocket(), shutdown()
Paramétrage et mise en écoute
Création d’un socket d’un socket

A la création (socket), il faut spécifier:


De la même façon qu’on attribue un numéro de téléphone à une
Le domaine du socket: pour une communication entre client et serveur utilisant
les protocoles de la pile TCP/IP, on utilise: personne pour recevoir des appels, il faut spécifier au socket une
AF_INET : famille d’adresses Internet IPv4 (format xx.xx.xx.xx) adresse à laquelle il doit recevoir les messages qui lui sont destinés
Il faut spécifier son type, selon le domaine du socket : (bind)
Les types en relation avec la famille AF_INET sont:
SOCK_STREAM : spécifique au mode connecté (TCP)
Les sockets de type SOCK_STREAM ont la possibilité de se mettre à
SOCK_DGRAM : spécifique au mode non-connecté (UDP)
SOCK_RAW: spécifique au protocole IP l’écoute en attente de requêtes de connexions (listen)
Un numéro de port sur la machine:
Il existe 65535 numéros de ports différents. Ce paramètre spécifie le protocole Le socket du serveur accepte les demandes de communication
à utiliser.
provenant des clients (accept)

Connexion entre 2 sockets Récapitulatif en mode connecté

Une fois créé (socket) et (bind), le socket qui reçoit des demandes de communication,
peut être appelé par un autre socket

Il faut connecter un socket (socket client) à un autre socket qui est en attente (connect)
(en mode connecté)

Une fois la connexion établie, la conversation peut commencer (read, write…)

À la fin de la communication (comme on raccroche le téléphone) il faut fermer le socket


qui a servi à la communication (closesocket)
Récapitulatif en mode non connecté

Principe de la
programmation réseau

Annexe – Principe de la programmation Réseau


TP – Programmation d'une application de temps en UDP et en TCP