• Aucun résultat trouvé

Les réseaux Technologies IP Couche 4: TCP, UDP

N/A
N/A
Protected

Academic year: 2022

Partager "Les réseaux Technologies IP Couche 4: TCP, UDP"

Copied!
36
0
0

Texte intégral

(1)

Les réseaux

Technologies IP

Couche 4: TCP, UDP

(2)

Couche 2 Ethernet Couche 3 IP Couche 4 TCP, UDP

Couche Applicative ftp, mozilla,telnet…

Adressage, routage…

Accès réseaux locaux

(3)

Transporter les données de bout en bout (de l’émetteur au destinataire) ÞLes couches inférieures sont transparentes (non considérées)

ØUDP: transfert non fiable, ajout uniquement de la notion de port

ØTCP: transfert fiable => fiabilise le protocole IP

§notion de ports

§contrôle de flux

§acquittement des paquets

=> Si un paquet est erroné ou perdu il est réémis !

(4)

Ø Identification du service : les ports

Les adresses IP désignent les stations entre lesquelles les communications sont établies.

Lorsqu'un processus d’une station désire entrer en communication avec un autre processus, il doit identifier le processus destination.

1 port = adresse d’un processus 65535 ports / station

0-1024=> ports privés

> 1024=> ports non privés

(5)

• 1 port identifie une application ou un service.

• L'émission d'un message se fait sur la base d'un port source et un port destination.

• Les accès aux ports sont généralement synchrones, les opérations sur les ports sont tamponnés (files d'attente FIFO).

• Il est donc possible de créer plusieurs connections entre deux stations en utilisant plusieurs ports => multiplexage

Ex: 2 connections ftp entre Serveur ftp et Station1:

port Serveur ftp 21 port Station1 5009 port Serveur ftp 21 port Station1 6003

(6)

• Certains ports sont réservés (well-kown port assignements) :

No port Mot-clé Description

7 ECHO Echo

11 USERS Active Users

13 DAYTIME Daytime

37 TIME Time

42 NAMESERVER Host Name Server

53 DOMAIN Domain Name Server

69 TFTP Trivial File transfert protocol

161 SNMP Simple Network Management prot.

• D'autres numéros de port (non réservés) peuvent être assignés dynamiquement aux applications.

(7)

No port Mot-clé Description

20 FTP-DATA File Transfer [Default Data]

21 FTP File Transfer [Control]

23 TELNET Telnet

25 SMTP Simple Mail Transfer

37 TIME Time

42 NAMESERVER Host Name Server

43 NICNAME Who Is

53 DOMAIN Domain Name Server

79 FINGER Finger

80 HTTP WWW

110 POP3 Post Office Protocol - Version 3

111 SUNRPC SUN Remote Procedure Call

(8)

import java.net.*;

import java.io.*;

public class client1 {

public static void main(String[] args){

try {

Socket client = new Socket("localhost",8080);

InputStream entree= new

DataInputStream(client.getInputStream());

OutputStream sortie=new PrintStream (client.getOutputStream());

sortie.println("salut je suis le client");

String recevoir = entree.readLine();

System.out.println(recevoir);

client.close();}

catch (IOException e){

System.err.println(e);}

catch (UnknownHostException e) {

import java.net.*;

import java.io.*;

public class serveur {

public static void main(String[] args) { try {

ServerSocket ecoute =new ServerSocket(8080);

Socket serveur=ecoute.accept();

InputStream entree= new

DataInputStream(serveur.getInputStream())

;

OutputStream sortie=new PrintStream (serveur.getOutputStream());

String recevoir = entree.readLine();

System.out.println(recevoir);

sortie.println("Bienvenu client");

serveur.close();

Client Serveur

(9)

Ø RFC 768

Ø UDP : protocole de transport orienté non connexion :

– Emission de messages : sans établissement de connexion au préalable

Ø Pas de gestion des erreurs

– L'arrivée des messages ainsi que l’ordonnancement ne sont pas garantis.

(10)

Ø Les messages UDP sont également appelés des datagrammes UDP.

Ø Ils contiennent deux parties : un en-tête UDP et les données UDP.

Port UDP source

Longueur message UDP

Port UDP dest.

0 16 31

Données ...

Format des messages UDP Checksum UDP

La longueur du message est exprimée en octets (8 au minimum) (en-tête + données),

le champ de contrôle (checksum) est optionnel (0 si non utilisé).

(11)

Ø Lorsqu'il est utilisé, le checksum couvre plus d'informations que celles contenues dans le datagramme UDP;

Ø le checksum est calculé avec un pseudo-en-tête non transmis dans le datagramme:

zéro

0 8 16 31

Format du pseudo en-tête Adresse IP Source

proto Longueur UDP Adresse IP Destination

Le champ PROTO indique l'identificateur de protocole pour IP (17= UDP) Le champ LONGUEUR UDP spécifie la longueur du datagramme UDP sans le pseudo-en-tête.

(12)

Ø RFC 793

Ø TCP = transport fiable de la technologie TCP/IP.

Ø transferts tamponnés : découpage en segments Ø connexions bidirectionnelles et simultanées

Ø Contrôle le flux, contrôle la congestion Ø service en mode connecté

Ø garantie de non perte de messages ainsi que de l'ordonnancement

(13)

Ø une connexion de type circuit virtuel est établie (2 circuits, mode full-duplex)

Ø Une connexion = une paire d'extrémités de connexion Ø Une extrémité de connexion = couple (adresse IP, port)

Ø La mise en oeuvre de la connexion se fait en deux étapes : 1. une application (extrémité) effectue une ouverture passive

en indiquant qu'elle accepte une connexion entrante, 2. une autre application (extrémité) effectue une ouverture

active pour demander l'établissement de la connexion.

(14)

Une connexion TCP est établie en trois temps de manière à assurer la synchronisation nécessaire entre les extrémités

=> Négociation de la taille des messages (recommendation 536o) de la taille de fenetre

(15)

TCP source TCP destination Syn seq=x x2 mss=1024 win= 4096

Syn seq=y y2,ack=x2+1 mss=512 win=3048

Ack y2+1

Une connexion TCP est établie en trois temps de manière à assurer la synchronisation nécessaire entre les extrémités :

(16)

Ø Une connexion TCP est libérée avec 2 ½ connexions:

TCP source TCP destination

Fin seq=x x2 ack=x2+1

Ack y2+1 Fin seq=y y2

(17)

Ø 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 : la destination acquitte un segment 1..N avec ack N+1

Ø Si l’acquittement ACK ne parvient pas à S, le segment est re-émis au bout d’un temps T, T dépend du réseau :

(18)

emetteur recepteur Segment

Sequence= 1..N

Acquittement ACK=N+1

Envoi de N octets

ØUn réseau offre des temps de transit variables nécessitant le réglage des temporisations;

ØTCP gère des temporisations variables (T) pour chaque connexion en utilisant un T

(19)

Ø Le mécanisme d’acquittement de TCP est cumulatif :

– il indique le numéro de séquence du prochain octet attendu : tous les octets précédents cumulés sont implicitement acquittés

emetteur recepteur

Segment

Sequence= 1..N

Acquittement ACK=M+1 Segment

Sequence=

N+1..M

(20)

Ø Pour tout segment émis, TCP s’attend à recevoir un acquittement – Si le segment n’est pas acquitté, le segment est considéré comme

perdu et TCP le retransmet.

emetteur recepteur

T

Segment

Sequence= 1..N

Segment

Sequence= 1..N

emetteur recepteur

T

Segment

Sequence= 1..N

Segment

Sequence= 1..N

emetteur recepteur

T

Segment

Sequence= 1..N

Segment

Sequence= 1..N

(21)

• 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 fenêtre = nombre d’octets que l’on peut émettre sans acquittement.

– Un fois la fenêtre remplie, il faut attendre un acquittement avant de reemettre

• La fenêtre permet de contrôler le flux: plus on agrandi la fenêtre plus on peut émettre de données. Si le réseau se congestionne on referme la fenêtre.

(22)

• Fenêtre glissante don’t la taille peut varier (limites de fenêtre glissent sur les octets à envoyer)

• permet au destinataire de faire varier le débit de l'émetteur donc de gérer le contrôle de flux.

1 2 3 4 5 6 7 8 9 10 11 . . .

Octets émis et

acquittés Octets non émissibles

tout de suite.

Octets émis et non acquittés

Octets émissibles

(23)
(24)

Et sous windows en plus ?

(25)

• Segment : unité de transfert du protocole TCP.

– échangés pour établir les connexions, – transférer les données,

– émettre des acquittements, – fermer les connexions;

Port source Port destination Numéro de séquence

Numéro d’acquittement HLEN réservé Codes fenêtre

Checksum pointeur urgence Options éventuelles padding

Données . . .

0 4 10 16 24 31

N * 32bits

(26)

Numéro de séquence : identificateur du segment. permet de regrouper tous les morceaux reçus si le segment a ete fragmente.

Num de séquence = (en général) numéro du 1er octet du segment

Numéro d’acquittement : le prochain numéro de séquence NS attendu par l’émetteur de cet acquittement. Acquitte implicitement les octets NS-1, NS- 2, etc.

Fenêtre: la quantité de données que l’émetteur de ce segment est capable de recevoir; ceci est mentionné dans chaque segment (données ou

acquittement).

(27)

CODE (BITS) : indique la nature du segment :

URG =1: le pointeur de données urgentes est valide, les données sont émises sans délai, les données reçues sont remises sans délai.

SYN : utilisé à l’initialisation de la connexion pour indiquer où la numérotation séquentielle commence.

FIN : utilisé lors de la libération de la connexion;

PSH : fonction push permet d’envoyer des donnees sans attendre que le segment TCP soit plein.

Utile pour utilitaires comme telnet (je tape sur une touche le caractere est emis directement)

RST : pour réinitialiser la connexion

(28)

TCP format du segment

Ø CHECKSUM :

calcul du champ de contrôle : utilise un pseudo-en-tête et s'applique à la totalité du segment obtenu (PROTO =6) :

Adresse IP source Adresse IP destination

zéro protocole (6) longueur TCP

(29)

TCP : la congestion

Gestion de la congestion

• TCP gère le contrôle de flux de bout en bout mais également les problèmes de congestion liés à l’interconnexion.

• La congestion correspond à la saturation de routeurs dans le réseau

provoquant des délais d’acheminement de datagrammes jusqu‘a leur pertes éventuelles.

• Les extrémité ignorent tout de la congestion sauf les délais. Habituellement, les protocoles retransmettent les segments ce qui agrave encore le

phénomène.

• Dans la technologie TCP/IP, les passerelles (niveau IP) utilisent la réduction du débit de la source mais TCP participe également à la gestion de la

congestion en diminuant le débit lorsque les délais s’allongent :

(30)

TCP : L’automate

Fermé

Ecoute (Listen)

SYN reçu

SYN émis Réinitialisation

SYN/SYN+ACK

RST

ouverture passive fermeture

Send SYN

SYN/SYN+ACK

Etablie

ACK SYN+ACK/ACK

Attente Fermer

Dernier ACK FIN

Attente -1

FIN/ACK Fermeture

en cours Fermer/FIN

ACK Départ

Fermer RST Tempo. exp.

ouverture active

rcv Close/FIN

rcv

rcv FIN (send)

/ SYN

FIN/ACK

(31)

•Création d’un protocole d’échange de données (par mots clés, plus par trame)

•Sérialisation des données (enpacketage)

•Exemple HTTP:

•Une requête HTTP a la syntaxe suivante METHODE URL VERSION<crlf>

EN-TETE : Valeur<crlf>

. . .

EN-TETE : Valeur<crlf>

Ligne vide<crlf>

CORPS DE LA REQUETE

(32)

•Exemple HTTP:

exemple de requête HTTP :

GET http://iut.u-clermont1.fr HTTP/1.1 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)

GET Requête de la ressource située à l'URL spécifiée

HEAD Requête de l'en-tête de la ressource située à l'URL

spécifiée

POST Envoi de données au programme situé à l'URL

spécifiée

(33)

•HTTP v2

•Compression de données (reduire latence)

•Mode push (serveur fait des requètes, mode out in des SW)

•Pipeline pour // le traitement (voir janvier)

•Multiplexage de pl. requètes TCP (bien pour javascript)

•QUIC (google)

•Quick UDP Internet Connections, basé dur UDP pour optimiser le multiplexage et compense le manque de fiabilité

Quic et antitrust

HTTP/3-> http over quic (fin 2019) Pour réduire latence, basé sur HTTP2

(34)

Aujourd’hui, besoin de sécurité les données qui transitent dans un réseau Sécurité, essentiellement obtenue par cryptage et authorisation (mais aussi,

denial of service, virus, port scanning, …):

• NAT, parefeu

• IPsec: sécurité au niveau IP

• Associations de membres connus (authentification ajoutée dans l’entête IP

• Tunnels

• VPN (virtual private network)

• Création de tunnels entre partenaires (réseaux, stations,…)

(35)

• VPN (virtual private network)

• Création de tunnels entre partenaires (réseaux, stations,…)

• Peut utiliser Ipsec

(36)

• Protocole SSL:

• Souvent utilisé avec HTTP

• 2 couches, 1 de cryptage et 1 d’authentification

• Gestion de certificats

• si authentification requise, alors le client doit envoyer un certification

• Accords sur le cryptage par envoi de clés

• Mais aussi TLS, L2TS,…

Références

Documents relatifs

● Transport des datagrammes ou des flots d'octets entre un processus client et un processus serveur.. ● Nécessité d'identifier ces processus lors de cet

Pour une liaison qui prend en charge la détection d'erreurs partielles, le champ Couverture de somme de contrôle dans l'en-tête UDP-Lite PEUT être utilisé comme indication de si

Noter que dans chacun de ces cas, la différence de second ordre des champs de numéro de séquence et d'horodatage est zéro, de sorte que le

Le numéro de séquence du premier octet de données est transmis avec le segment, dans le champ SequenceNumber de l'en-tête TCP (32 bits), et est appelé numéro de séquence du

UDP, lui, utilise le protocole IP pour acheminer un message d’un ordinateur à un autre, sans aucune valeur ajoutée (pas de connexion, pas de contrôle d’erreur, de contrôle de flux

Cliquez ici pour telecharger le

 La partie client crée une socket pour accéder à la couche UDP et la lie sur un port quelconque..  Le serveur se met en attente de réception de paquet sur

 Du coté du serveur, le service d'attente de connexion retourne une socket de service (associée à un port quelconque).  C'est la socket qui permet de dialoguer avec