REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE
UNIVERSITÉ DE MOHAMED EL-BACHIR EL-IBRAHIMI - BORDJ BOU ARRERIDJ
FACULTÉ DES SCIENCES ET DE LA TECHNOLOGIE
DÉPARTEMENT D’ELECTRONIQUE
Transmission Control Protocol (TCP)
MCIL 04
Réseaux en Télécommunications
Superviseur:
DR. NASSIM ASBAI
Par:
KHAMSA ALI G : 2.1
BENKHIRA RISSEL G :1.1
FEGHOUL HAYTHEM G :2.1
BEN MANOUFI AHMED G :1.1
2021/2022
1- DIFINITION :
Transmission Control Protocol abrégé TCP, est un protocole de
transport fiable, en mode connecté, documenté dans la RFC 7931 de l’IETF.
Dans le modèle Internet, aussi appelé modèle TCP/IP, TCP est situé au-
dessus de IP. Dans le modèle OSI, il correspond à la couche transport,
intermédiaire de la couche réseau et de la couche session. Les applications
transmettent des flux de données sur une connexion réseau. TCP découpe le
flux d’octets en segments dont la taille dépend de la MTU du réseau sous-
jacent.
2- Utilisations du TCP :
TCP est un protocole qui spécifie :
- Comment distinguer plusieurs destinations sur une machine donnée
- Comment lancer et terminer un transfert de flux
- Format des données et accusés de réception que deux ordinateurs
échangent pour réaliser un transfert fiable
- Procédures utilisées par les ordinateurs pour s'assurer que les données
arrivent correctement
3- Format de segment TCP
TCP divise le flux de données en segments pour la transmission :
4- Champs de segment TCP
- Port source/destination : numéro de port 16 bits de la
source/destination
- Numéro de séquence du premier octet de données dans ce segment
Sauf si le drapeau SYN est défini, auquel cas le numéro de séquence est
le numéro de séquence initial (ISN)
- Numéro d'accusé de réception : numéro de séquence du prochain octet
de données que TCP s'attend à recevoir
- Longueur de l'en-tête : taille de l'en-tête (mesurée en 4 octets)
- Réservé pour une utilisation future
- Drapeaux voir diapositive suivante
- La fenêtre contient le nombre d'octets que le récepteur est prêt à
accepter (pour le contrôle de flux)
- Somme de contrôle pour détecter les erreurs dans le segment TCP
- Le pointeur d'urgence pointe vers le numéro de séquence du dernier
octet de données urgentes dans le segment
- Options : telles que la taille maximale du segment, la mise à l'échelle de
la fenêtre, l'acquittement sélectif, …
5- TCP Segment Flags
Drapeaux (1 bit chacun, si 1 le drapeau est vrai ou activé) :
- CWR : fenêtre de congestion réduite
- ECE : écho de notification explicite de congestion
- CWR et ECE sont utilisés sur un mécanisme spécial de contrôle des
encombrements - nous ne le couvrons pas dans ITS 323
- URG : le segment transporte des données urgentes, utilisez le champ de
pointeur urgent ; le destinataire doit informer le programme
d'application des données urgentes dès que possible
- ACK : segment porte ACK, utilisez le champ ACK
- PSH : fonction push
- RST : réinitialiser la connexion
- SYN : synchroniser les numéros de séquence
- FIN : plus de données de l'expéditeur
6- TCP - Remerciements et retransmission
- Utilise un schéma d'accusé de réception cumulatif :
ACK 7 = « tous les octets jusqu'au numéro 7 mais non compris ont été reçus
correctement »
- Avantages
Les ACK sont faciles à générer et sans ambiguïté
Les accusés de réception perdus ne forcent pas la retransmission
- Désavantages
L'expéditeur ne reçoit pas d'informations sur toutes les transmissions
réussies
7- TCP - Timeout and Retransmission
- Pour chaque segment envoyé :
Démarrer la minuterie et attendre l'accusé de réception
Retransmettre si la minuterie expire
- TCP utilise un algorithme de retransmission adaptatif car les délais
Internet sont si variables
- Le temps d'aller-retour de chaque connexion est recalculé à chaque fois
qu'un accusé de réception arrive
- La valeur du délai d'attente est ajustée en conséquence
- How should the most recent round trip sample (RTS) effect the round
trip time (RTT)?
New RTT = (a * RTT) + ((1-a) * RTS)
a=0 ; a=1
- How should RTT be used to compute timeout?
Timeout = b * RTT
b=1 ; b>1
8- Répondre à la congestion
- Les points de terminaison ne peuvent pas connaître les détails de
l'endroit où la congestion Internet s'est produite ou pourquoi
- La congestion allongera généralement les délais
- La réponse de TCP aux délais prolongés (retransmission) peut provoquer
l'effondrement de la congestion
- Au lieu de cela, TCP doit réduire les taux de transmission en cas de
congestion
- Augmentez la fenêtre de transmission TCP avec une fenêtre de
congestion :
Fenêtre = min (publicité du récepteur, fenêtre de congestion)
- Diminution multiplicative de l'évitement de la congestion :
. n cas de perte d'un segment, réduire de moitié la fenêtre de
congestion (jusqu'à un minimum d'un segment)
. Retarder le temporisateur de retransmission de façon exponentielle
- Récupération lente (additive) :
. Lors du démarrage du trafic sur une nouvelle connexion ou de
l'augmentation du trafic après une période de congestion
. Démarrez la fenêtre de congestion à la taille d'un seul segment et
augmentez la fenêtre de congestion d'un segment à chaque fois qu'un
ACK arrive
- Phase d'évitement de la congestion (pendant la récupération) :
. Une fois que la fenêtre d'encombrement atteint la moitié de sa taille
d'origine avant que l'encombrement ne se produise
. Augmentez la taille de la fenêtre de congestion de 1 uniquement si
tous les segments de la fenêtre ont été acquittés
9- Établissement d'une connexion
Même s'il est possible pour deux systèmes d'établir une connexion entre
eux simultanément, dans le cas général, un système ouvre une 'socket' (point
d'accès à une connexion TCP) et se met en attente passive de demandes de
connexion d'un autre système. Ce fonctionnement est communément
appelé ouverture passive, et est utilisé par le côté serveur de la connexion. 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.
10- Performances TCP
Syndrome de la fenêtre bête :
- L'expéditeur génère des données rapidement
- Le récepteur lit les données entrantes un octet à la fois
- Each ACK advertises a small amount of space
- Each segment carries a small amount of data
Problems:
– Poor use of network bandwidth
– Unnecessary computational overhead
Avoiding Silly Window Syndrome
– Use heuristics at sender to avoid transmitting a small amount
of data in each segment
– Use heuristics at receiver to avoid sending small window
advisements
Receive-side silly window avoidance
– Monitor receive window size
– Delay advertising an increase until a “significant” increase is
possible
Conclusion
Résumé TCP:
Fournit un service de livraison de flux fiable
- Un duplex plein
- Hors bande pour les données urgentes
Utilise efficacement le réseau
- Le ferroutage
- Fenêtres coulissantes
Efficacité
Contrôle de flux de bout en bout
- Accusé de réception et retransmission
- Récupération/évitement de la congestion