LES PROTOCOLES TCP ET UDP



Documents pareils
Le protocole TCP. Services de TCP

UDP/TCP - Protocoles transport

Couche Transport TCP et UDP

Introduction. Adresses

Architecture TCP/IP. Protocole d application. client x. serveur y. Protocole TCP TCP. TCP routeur. Protocole IP IP. Protocole IP IP.

Rappels réseaux TCP/IP

Présentation du modèle OSI(Open Systems Interconnection)

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

Systèmes et Réseaux (ASR 2) - Notes de cours Cours 14

L outil Nmap-Stateful. Olivier Courtay Thomson R&D / IRISA

Firewall. Souvent les routeurs incluent une fonction firewall qui permet une première sécurité pour le réseau.

Devoir Surveillé de Sécurité des Réseaux

18 TCP Les protocoles de domaines d applications

Internet - Outils. Nicolas Delestre. À partir des cours Outils réseaux de Paul Tavernier et Nicolas Prunier

La collecte d informations

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Couche application. La couche application est la plus élevée du modèle de référence.

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July ENPC.

DIGITAL NETWORK. Le Idle Host Scan

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

La couche transport. La couche Transport. La couche Transport et Internet. Cours Réseau Esial 2ème. 5. La couche transport TCP/UDP et les applications

L3 informatique Réseaux : Configuration d une interface réseau

Master e-secure. VoIP. RTP et RTCP

Sécuriser son réseau. Sécuriser son réseau Philippe Weill (IPSL/LATMOS) Frédéric Bongat (SSI/GOUV/FR)

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Algorithmique des Systèmes Répartis Protocoles de Communications

Mr. B. Benaissa. Centre universitaire Nâama LOGO

Réseaux et protocoles Damien Nouvel

Christian CALECA TCP/IP

Cours de sécurité. Pare-feux ( Firewalls ) Gérard Florin -CNAM - - Laboratoire CEDRIC -

Introduction à l'analyse réseau Philippe Latu philippe.latu(at)linux-france.org

VoIP et "NAT" VoIP et "NAT" 1/ La Traduction d'adresse réseau. 1/ La traduction d'adresse réseau. 1/ La traduction d'adresse réseau

Niveau Transport "Transport Layer" I) Problèmes et solutions au niveau transport II) Exemple des protocoles et services de transport dans l INTERNET

Cisco Certified Network Associate

Le Protocole DHCP. Définition. Références. Fonctionnement. Les baux

Les Réseaux. les protocoles TCP/IP

Plan. Le système de transfert de fichiers d'internet. Introduction aux systèmes de transfert de fichiers Le protocole FTP.

Nmap (Network Mapper) Outil d exploration réseau et scanneur de ports/sécurité

[ Sécurisation des canaux de communication

Dynamic Host Configuration Protocol

2. DIFFÉRENTS TYPES DE RÉSEAUX

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Chapitre : Les Protocoles

Le service FTP. M.BOUABID, Page 1 sur 5

Introduction aux Technologies de l Internet

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

Réseaux Internet & Services

Packet Tracer : configuration des listes de contrôle d'accès étendues, scénario 1

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

ADSL. Étude d une LiveBox. 1. Environnement de la LiveBox TMRIM 2 EME TRIMESTRE LP CHATEAU BLANC CHALETTE/LOING NIVEAU :

Réseau : Interconnexion de réseaux, routage et application de règles de filtrage.

EPREUVE E1 Epreuve scientifique et technique SOUS-EPREUVE E11 Etude des supports et protocoles de communication

Configuration automatique

Ch2 La modélisation théorique du réseau : OSI Dernière maj : jeudi 12 juillet 2007

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

Plan. Programmation Internet Cours 3. Organismes de standardisation

Services Réseaux - Couche Application. TODARO Cédric

FILTRAGE de PAQUETS NetFilter

La couche réseau Le protocole X.25

pare - feu généralités et iptables

JetClouding Installation

Divers éléments. Protocoles d'applications. Un agent Utilisateur. MUA - Agents Utilisateurs de Courriel. Simple Mail Transfer Protocol

Protocoles DHCP et DNS

Service de certificat

Guide de configuration de la Voix sur IP

Réseaux grande distance

La Solution Crypto et les accès distants

NOTIONS DE RESEAUX INFORMATIQUES

Culture informatique. Cours n 9 : Les réseaux informatiques (suite)

Partie 2 (Service de téléphonie simple) :

Les messages d erreur d'applidis Client

Les Réseaux Privés Virtuels (VPN) Définition d'un VPN

TR2 : Technologies de l'internet. Chapitre VII. Serveur DHCP Bootp Protocole, Bail Relais DHCP

MAUREY SIMON PICARD FABIEN LP SARI

Profitez de tous les avantages de votre réseau, comme vos clients Remédiez à la coupure du service

Réseaux IUP2 / 2005 IPv6

Protocoles IP (2/2) M. Berthet. Les illustrations sont tirées de l ouvrage de Guy Pujolle, Cours réseaux et Télécom Contributions : S Lohier

Administration Réseau sous Ubuntu SERVER Serveur DHCP

Serveur FTP. 20 décembre. Windows Server 2008R2

Filtrage IP MacOS X, Windows NT/2000/XP et Unix

GENERALITES. COURS TCP/IP Niveau 1

Les ACL Cisco. F. Nolot Master 2 Professionnel STIC-Informatique 1

TCP/IP. [ Les protocoles ] [ L'adresse IP ] [ Les sockets ] [ Mode connecté ] [ Mode non connecté ]

Les réseaux : les principes Comment ça marche?

Protocoles réseaux. Abréviation de Binary Digit. C'est la plus petite unité d'information (0, 1).

Un aperçu de la technologie d'accélération WAN de Silver Peak

TP réseau Les réseaux virtuels (VLAN) Le but de se TP est de segmenter le réseau d'une petite entreprise dont le câblage est figé à l'aide de VLAN.

Programmation Réseau. ! UFR Informatique ! Jean-Baptiste.Yunes@univ-paris-diderot.fr

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

SSH, le shell sécurisé

Protocole SIP et rc o d n o C ée yc L N E S ro P c a B

Administration réseau Firewall

TP a Notions de base sur le découpage en sous-réseaux

Principe de la messagerie électronique

Transmissions série et parallèle

Réseaux - Cours 3. BOOTP et DHCP : Amorçage et configuration automatique. Cyril Pain-Barre. IUT Informatique Aix-en-Provence

Mise en service HORUS version HTTP

Transcription:

LES PROTOCOLES TCP ET UDP 1. LES NUMEROS DE PORT TCP et UDP sont des protocoles de la couche Transport (niveau 4) du modèle OSI. A la réception d'un datagramme, une machine est identifiée de manière unique par la couche IP à l'aide de l'adresse Internet, la couche IP délivre ensuite le datagramme reçu à TCP ou à UDP en fonction de la valeur du champ Protocole contenu dans l'en-tête IP. La couche TCP comme la couche UDP doit délivrer le datagramme à l'application destinataire, TCP et UDP doivent alors reconnaître l'application destinataire. Cette distinction est assurée par un numéro appelé numéro de port, à chaque application correspond un numéro de port (quelquefois deux). Application x Application y Application z Application v Application w Numéro de port TCP UDP Champ protocole : =06 =17 IP Datagramme entrant Le numéro de port est un entier positif sur 16 bits, le rfc 1700 donne la liste des numéros de port attribués aux applications connues. Les numéros 0 à 1023 sont réservés aux applications standards, les numéros supérieurs à 1024 sont disponibles pour n'importe quelle autre application. Application N de port Protocole Description echo 7 TCP Le serveur retourne les données envoyées par le client discard 9 TCP Le serveur rejette les données envoyées par le client ftp 21 TCP Utilisé par ftp pour transmettre les ordres ftp 20 TCP Utilisé par ftp pour transmettre les données telnet 23 TCP Terminal virtuel de réseau smtp 25 TCP Le courrier électronique http 80 TCP Protocole utilisé par les serveurs Web et les navigateurs echo 7 UDP Le serveur retourne les données envoyées par le client discard 9 UDP Le serveur rejette les données envoyées par le client tftp 69 UDP Transfert de fichiers (Trivial FTP) talk 517 UDP Dialogue entre usagers distants Cours Réseaux - TCP 1 / 11

2. LE SEGMENT TCP (Transport Control Protocol) TCP procure un service transport fiable : on dit que TCP offre un service de transfert de données orienté connexion ou bien encore que TCP travaille en mode connecté. Lorsque 2 applications veulent échanger des données, le service connecté apporté par TCP est caractérisé dans ses grandes lignes par les principales fonctionnalités suivantes : Etablissement préalable d'une connexion entre les 2 applications qui veulent échanger des données. Identification de chaque paquet transmis à l'aide d'un système de numérotation. Acquittement par le destinataire de chaque paquet reçu. Libération de la connexion à la demande des applications. Le paquet de données délivré par TCP à la couche IP est appelé un segment. Segment et en-tête TCP 0 7 8 15 16 23 24 31 Port Source Port Destination Numéro de séquence Numéro d'acquittement L(sur 4 bits) Réserve U A P R S F Taille de la fenêtre Checksum Offset message urgent Options Données L'en-tête TCP a une longueur de 20 sans les options. Port Source : Permet d'identifier de manière unique l'application qui a émis ce paquet. Port Destination : Permet d'identifier de manière unique l'application destinataire de ce paquet. Numéro de séquence : Ce champ identifie le 1 er octet du champ Données du paquet transmis. Chaque octet est numéroté, le 1 er numéro est égal à ISN+1, ISN (Initial Sequence Number) est un nombre déterminé en interne par chaque émetteur de données. Le 1 er octet du 1 er paquet transmis porte le numéro ISN+1. Numéro d'acquittement : Lorsque le récepteur acquitte l'émetteur (flag Ack positionné), il place dans ce champ le prochain numéro de séquence qu'il s'attend à recevoir. L (Longueur de l'entête) : Donne la longueur de l'entête en mots de 32 bits; la taille normale de l'entête est de 20 quand il n'y a pas d'option. Les bits de contrôle : Ils permettent de définir la validité de certains champs et la fonction du paquet. Cours Réseaux - TCP 2 / 11

U (URGent) : Le champ Offset message urgent est valide, ce champ offset indique le rang du 1 er octet du message urgent dans le paquet transmis. A (ou ACK comme ACKnowledge) : Acquittement, indique que le champ Numéro d'acquittement est valide. P (ou PSH comme PuSH) : La couche TCP doit délivrer ce segment à la couche Application le plus rapidement possible. R (ou RST comme ReSeT) : Fermeture de la connexion à cause d'une erreur irrécupérable. S (ou SYN comme SYNchronisation) : Indique l'ouverture d'une connexion, le champ numéro de séquence est valide. F (ou FIN comme FINish) : Indique une fermeture normale de la connexion, l'émetteur de ce paquet signale ainsi qu'il n'a plus de données à émettre. Taille de la fenêtre : Ce champ permet un contrôle automatique de flux, un récepteur indique ainsi à un émetteur le nombre maximal d' qu'il peut accepter. Checksum : Cette somme de contrôle est calculée comme il est indiqué plus bas. Offset message urgent : Champ valide que si le bit URG est positionné à 1. Options : Le champ Options le plus courant se rencontre lors de l'établissement de la connexion entre 2 entités. Chaque entité indique alors à l'autre la taille maximale en d'un paquet de données qu'elle peut recevoir. Cette taille maximale de la partie Données d'un segment TCP est appelée MSS (Maximum Segment Size). La segmentation Lors d'une émission, TCP reçoit le message à émettre de la couche Application. Il doit segmenter ce message si sa taille en est supérieure au MSS du récepteur. Par exemple, si la couche Application transmet un message 1200 et que le MSS du récepteur est de 500, cela impose la segmentation des données par la couche TCP en 3 paquets : le 1 er et le 2 nd auront une longueur de 500, le 3 ème une longueur de 200. TCP ajoute son entête à chaque paquet, il délivre successivement à IP 3 segments de longueur 520, 520 et 220. La couche TCP du récepteur reçoit successivement les 3 segments, elle s'occupe de réassembler les 3 paquets de données dans le bon ordre afin de reconstituer le message initial qu'elle délivre à l'application concernée. Le checksum Le checksum est calculé sur tout le segment TCP et sur un pseudo en-tête dont le format est le suivant : 0 15 16 31 Adresse Internet de la source Adresse Internet de la destination 00 Protocole destinataire Longueur totale du segment TCP Le checksum est obtenu en effectuant la somme des tous les mots du pseudo en-tête et du segment entier TCP puis en prenant le complément à 1 du résultat. Cours Réseaux - TCP 3 / 11

3. ETABLISSEMENT D'UNE CONNEXION TCP est un protocole connecté, il établit une connexion avant que s'effectue le transfert des données. On indique sur les diagrammes temporels les fonctions de la bibliothèque TCP/IP que les applications et utilisent. Un serveur se place en attente d'une demande de connexion, il exécute la fonction accept(). Un client demande à se connecter en exécutant la fonction connect(). Le client doit parfaitement identifier l'application serveur par son adresse IP ainsi que le numéro port qui lui est affecté. Il en résulte un échange de segments entre les couches TCP du client et du serveur. 1. La couche TCP du client demande l'ouverture d'une connexion en positionnant le bit SYN à 1, il place aussi dans le champ N de séquence seq une valeur c égale à ISN, ce N de séquence initial correspond à la valeur d'un compteur 32 bits (valeur au moment de la demande de connexion, le compteur est incrémenté de 1 toutes les 4 ms). 2. La couche TCP du serveur répond positivement à cette demande de connexion en positionnant aussi le bit SYN à 1. Il donne lui aussi son N de séquence seq égal à s. Il positionne le bit ACK à 1 indiquant ainsi que le champ N d'acquittement est valide, ce champ ack contient le N de séquence c du client augmenté de 1. On dit qu'un segment SYN consomme un N de séquence (alors qu'il ne transporte pas de données). 3. La couche TCP du client acquitte le segment SYN du serveur, il positionne le bit ACK à 1 indiquant ainsi que le champ N d'acquittement est valide, ce champ ack contient le N de séquence s du serveur augmenté de 1. La taille maximale d'un segment ou MSS Cette valeur est transmise dans le champ Options entre les 2 couches TCP au moment de la connexion. Type = 2 Longueur options=4 MSS Le champ Options est constitué d'un octet Type, d'un octet Longueur du champ Options et d'un mot 16 bits qui est le MSS. L'exemple suivant montre un client qui a une valeur de MSS égale à 0x5B4 (1460) et un serveur dont le MSS vaut 0x400 (1024). connect() connect() SYN seq=c ACK ack =c+1 SYN seq =s ACK ack =s+1 SYN seq=100 Type:02 Long Op=04 MSS=0x5B4 SYN seq =250 ACK ack =101 Type:02 Long Op=04 MSS=0x400 ACK ack =251 accept() accept() Cours Réseaux - TCP 4 / 11

On constate que le MSS du client est optimisé pour Ethernet : 1460 de MSS + 20 d'entête TCP + 20 d'en-tête IP donne 1500 qui le nombre maximal de données dans une trame Ethernet. 4. TRANSFERT DE DONNEES Le code d'une application peut employer : La fonction write() pour fournir des données à la couche TCP (émission). La fonction read() pour lire les données que TCP tient à sa disposition (réception). On part de l'exemple précédent où le N de séquence attendu du client est 101 et celui du serveur 251. Exemple : Le client transmet des données write() de 10 write() de 20 PSH seq=101 ACK ack=251 seq =251 ACK ack =111 PSH seq=111 ACK ack =251 seq =251 ACK ack =131 write() de 20 PSH seq=131 ACK ack =251 seq =251 ACK ack =151 L'application client effectue un 1 er write() de 10, la couche TCP du client transmet un segment contenant ces 10. Le flag PSH indique à la couche TCP du serveur qu'elle peut délivrer ces 10 à l'application car il n'y a pas de segmentation. La couche TCP du serveur lit ces 10, elle les stocke en attendant que le client les lise. Elle acquitte le client en lui transmettant un segment dans lequel le bit ACK est positionné indiquant un acquittement et que le champ N d'acquittement est valide. Ce champ contient le N de séquence du 1 er octet du prochain segment que TCP du serveur s'attend à recevoir : 101+10=111. L'application client effectue un 2ème write() de 20, la couche TCP du client transmet un segment contenant ces 20. Le flag PSH indique à la couche TCP du serveur qu'elle peut délivrer ces 20 à l'application car il n'y a pas de segmentation. Cours Réseaux - TCP 5 / 11

La couche TCP du serveur lit ces 20, elle les stocke en attendant que le client les lit. Elle acquitte le client en lui transmettant un segment dans lequel le bit ACK est positionné indiquant un acquittement et que le champ N d'acquittement est valide. Ce champ contient le N de séquence du 1 er octet du prochain segment que TCP du serveur s'attend à recevoir : 111+20=131.. L'indicateur PSH signale à la couche TCP réceptrice qu'elle peut transmettre les données du paquet à l'application. Cela signifie concrètement que si l'application effectue un read(), elle ne bloquera pas et retournera aussitôt avec des données. Acquittements retardés En réalité TCP n'acquitte pas instantanément le segment reçu, il attend un certain délai pour tenter d'associer dans un même segment l'acquittement du paquet reçu et l'envoi de données. La valeur maximale de ce retard dépend des diverses implémentations, sa valeur courante est fixée à 200ms. L'utilisation de ce mécanisme diminue le trafic sur le réseau. Il faut alors que l'application réceptrice soit en attente de lecture de données (avec read() par exemple) et que l'exploitation de ces données entraîne une réaction immédiate avec l'envoi d'une réponse (avec write() par exemple). 5. FERMETURE DE LA CONNEXION La fermeture de la connexion est normalement laissée à l'initiative du client. L'application client exécute close(), la couche TCP du serveur acquitte automatiquement le client mais il faut que l'application serveur détecte alors la fermeture du client. Cette application serveur est généralement en attente de données du client en exécutant read(). La fonction read() retourne alors 0, TCP du serveur signalant ainsi à l'application la fermeture de la connexion. close() FIN ACK FIN ACK close() 6. FLUX DE DONNEES EN MASSE - LA FENETRE GLISSANTE Le dialogue "Envoi d'un paquet - Attente de l'acquittement" peut s'avérer très lent dans le cas d'un réseau WAN. TCP autorise alors un émetteur d'envoyer un paquet sans attendre l'acquittement du paquet précédent émis. Mais, dans ces conditions, il est évident que le récepteur peut se trouver engorgé par trop de données reçues. Pour éviter cette situation, TCP a prévu de réguler l'émission des paquets de l'émetteur par un contrôle de flux appelé protocole de fenêtre glissante. Cours Réseaux - TCP 6 / 11

Le champ Window de l'en-tête TCP indique au destinataire le nombre d' maximal que l'émetteur peut recevoir. Le diagramme des temps suivant illustre ce mécanisme de la gestion de la fenêtre. 1)Envoi de 1024, il reste 3072 dans la fenêtre du serveur 2)Envoi de 1024, il reste 2048 dans la fenêtre du serveur 3)Envoi de 1024, il reste 1024 dans la fenêtre du serveur 4)Envoi de 1024, il reste 0 dans la fenêtre du serveur : le client suspend son émission 6)Envoi de 1024, ce qui correspond à la fenêtre disponible SYN seq=1000 MSS=2048 Window = 4096 SYN seq =250 ACK ack =1001 MSS = 1024 Window = 4096 ACK ack=251 Window = 4096 PSH seq=1001 ACK ack=251 PSH seq=2025 ACK ack=251 PSH seq=3049 ACK ack=251 PSH seq=4073 ACK ack=251 seq = 251 ACK ack =5097 Window = 1024 PSH seq=5097 ACK ack=251 seq = 251 ACK ack =6121 Window = 4096 5)Le serveur acquitte les 4096 données reçues, il indique une fenêtre disponible de 1024 7)Le serveur acquitte le segment reçu, il indique une fenêtre disponible de 4096 Le client transmet 4 segments consécutifs 1, 2, 3 et 4. Il remplit la fenêtre du serveur. Le serveur acquitte en 5 tous les segments reçus et précise que sa nouvelle fenêtre est de 1024. Le client émet alors en 6 un segment de 1024. Le serveur acquitte ce segment en 7 et signale que sa fenêtre est revenue à la taille maximale. 7. DIAGRAMME ETATS TRANSITIONS DE TCP Chaque état est symbolisé par un rectangle, les flèches indiquent les transitions entre les états. En trait plein épais : Transitions normales suivies par le client En trait pointillé épais : Transitions normales suivies par le serveur Chaque transition est représentée par une barre verticale avec des noms de part et d'autre, le nom au-dessus de cette barre indique l'événement survenu, le(s) nom(s) en dessous Cours Réseaux - TCP 7 / 11

désigne(nt) les actions résultantes engagées par TCP en réponse à l'occurrence de l'événement. Les événements suivants sont provoqués par l'application : Ouverture active, ouverture passive, fermeture, émission de données. CLOSED Ouverture passive Retour à l'état d'attente pour le serveur et le client Reçoit : SYN Envoi : SYN, ACK Reçoit : RST LISTEN Ouverture active Envoi : SYN Emission de données Envoi : SYN SYN_RCVD Recoit : SYN Envoi : SYN, ACK SYN_SENT Fermeture ou timeout Fermeture Envoi : FIN Reçoit : ACK Envoi : rien Fermeture Envoi : FIN ESTABLISHED Recoit : SYN, ACK Envoi : ACK Fermeture active Reçoit : FIN Envoi : ACK Fermeture passive CLOSE_WAIT Fermeture Envoi : FIN FIN_WAIT_1 Reçoit : FIN Envoi : ACK TIME_WAIT LAST_ACK Reçoit : ACK Envoi : rien Reçoit : FIN, ACK Envoi : ACK Reçoit : ACK Envoi : rien Reçoit : ACK Envoi : rien FIN_WAIT_2 Reçoit : FIN Envoi : ACK TIME_WAIT 8. TIMEOUT ET RETRANSMISSION DE TCP Le mécanisme des acquittements mis en place par TCP assure un transport fiable. Il se peut que des segments de données ou des acquittements émis se perdent, TCP gère un compteur de temps qui est initialisé à chaque segment émis, il retransmet le paquet si le timeout se produit alors que les données n'ont pas été pas acquittées. Le diagramme des temps suivant présente un exemple de la retransmission par TCP d'un segment non acquitté. Cours Réseaux - TCP 8 / 11

Une temporisation est déclenchée lors de l'émission de chaque paquet. 1) Le 1 er paquet est émis, le temporisateur est déclenché. L'exemple présenté suppose que le 1 er paquet est perdu. 2) et 3) L'émetteur anticipe l'acquittement de ce 1 er paquet en émettant successivement deux autres paquets. 4) et 5) L'émetteur reçoit deux acquittements mais il ne peut pas savoir pas à quel paquet ils correspondent. Le serveur précise comme N d'acquittement le dernier qu'il avait donné dans sa dernière trame d'acquittement (non représenté sur la figure). 6) Le délai mesuré par le temporisateur est écoulé, le client sait que la 1 er paquet n'a pas était acquitté, il retransmet alors un paquet qui contient MSS données à partir de celle qui n'a pas été acquittée, c'est à dire les données X+1 à X+601. 7) Le serveur acquitte tous les paquets reçus. 2)Paquet 2 :Envoi de 200 3)Paquet 3 : Envoi de 100 : le N de séquence du dernier octet émis est X 1)Paquet1 :Envoi de 500 seq = X+1 seq = X+501 seq = X+701 ACK ack = X+1 ACK ack = X+1 : son MSS vaut 600 4)Cet acquittement indique que le paquet 2 est mémorisé mais considéré comme hors-séquence 5)Cet acquittement indique que le paquet 3 est mémorisé mais considéré comme hors-séquence 6)Retransmission : Envoi de 600 seq = X+1 ACK ack = X+801 7)Le serveur acquitte tous les segments reçus La difficulté pour TCP est ici d'évaluer convenablement la valeur de la temporisation. Il ne faut pas une valeur trop petite car il y aurait des retransmissions inutiles; et si la valeur est trop grande, l'attente entre 2 retransmissions ralentira de trop le fonctionnement et sous exploitera les capacités du réseau. La valeur de la temporisation est calculée à partir du temps d'aller et retour (RTT : Round Trip Time ), le RTT est réévalué à la réception de chaque acquittement. Cours Réseaux - TCP 9 / 11

9. SEGMENTATION Un des rôles de TCP est de découper un message trop long afin d'envoyer des segments dont la taille soit égale au MSS du récepteur. L'exemple suivante présente une application client qui délivre 2000 à sa couche TCP. Le MSS du serveur est de 1024 (0x400), le client émet un 1 er paquet de 1024 de données, puis un 2 ème de 976 (0x3D0) données. Le 1 er paquet de 1024 de données est émis par TCP du client avec le bit d'état PSH qui n'est pas positionné. La couche TCP du serveur acquitte ce paquet, le champ ack vaut 4A01=4601+400, elle détecte que PSH est à 0 et stocke ce paquet (il n'est pas transmis à l'application). Le 2ème paquet de 976 de données est émis par TCP du client avec le bit d'état PSH positionné. La couche TCP du serveur acquitte ce paquet, le champ ack vaut 4DD1=4A01+3D0, elle détecte que PSH est à 1, elle reconstitue alors le message avec le précédent paquet puis le transmet à l'application dès qu'elle le demande. connect() write() de 2000 SYN seq = 4600 Type:02 Long Op=04 MSS=5B4 SYN seq =D201 ACK ack =4601 Type:02 Long Op=04 MSS=400 seq = 4601 ACK ack = D202 seq = 4601 ACK ack =D202 seq = D202 ACK ack =4A01 PSH seq = 4A01 ACK ack =D202 seq = D202 ACK ack =4DD1 accept() 10. LE PROTOCOLE UDP (User Datagram Protocol) UDP est un protocole simple orienté datagramme qui permet d'envoyer des données d'une application à une autre. UDP n'offre aucune garantie de fiabilité de la communication. L'en-tête UDP a une longueur de 8. Cours Réseaux - TCP 10 / 11

Datagramme et en-tête UDP 0 7 8 15 16 23 24 31 Port Source Port Destination Longueur Checksum Données Port Source : Permet d'identifier de manière unique l'application qui a émis ce paquet. Port Destination : Permet d'identifier de manière unique l'application destinataire de ce paquet. Longueur : Indique la longueur totale en du datagramme (en-tête + données). Checksum : Ce mot de contrôle se calcule comme pour les paquets TCP. 11. LES SOCKETS Une application sur une machine donnée est totalement identifiée par : L'adresse Internet de la machine. Le port affecté à l'application. L'association <Adresse Internet - N de port> est appelée une socket. Certains éditeurs de logiciel et quelques auteurs intègrent le protocole utilisé dans la définition d'une socket. Cette précision s'avère nécessaire car deux applications sur une même machine peuvent être associées à un même numéro de port mais l'une travaillant avec TCP et l'autre avec UDP. La paire de sockets <Adresse Internet - N de port - Protocole> <Adresse Internet - N de port - Protocole> identifie de manière unique la "connexion" entre 2 applications. Cours Réseaux - TCP 11 / 11