Vous êtes sur la page 1sur 8

Les Couches OSI (Open System Interconnection)

Couche7 Application ftp, E-mail...


Couche6 Presentation format
Couche5 Session Synchronisation des dialogues...
Couche4 Transport TCP, UDP...
Couche3 Reseaux IP, X25...
Liaison des
Couche2 MAC...
données
connection reelle: paire dorsale, fibre
Couche1 Couche physique
optique...

Ainsi le TCP/IP n'est rien d'autre que couche 4/couche 3

PROTOCOLE TCP
Couche Transport Hôte à Hôte(TCP)

· La couche TCP correspond à la couche 4 de l'OSI (transport


de bout en bout) et assure également le multiplexage des
connexions IP vers les applications (Connected Less and
Oriented). On peut aussi utiliser UDP qui ne fait que ce
multiplexage et laisse aux couches supérieures les différents
contrôles.

1 Cinq caractéristiques du service TCP

1. Flot de données

Le récepteur reçoit exactement la séquence d'octets


envoyée par le processus source.

2. Connexion préalable Avant tout envoi de données, il


y a un échange de messages afin de mettre en place la
connexion.

3. Bufférisation Les données envoyées et reçues sont


buffénsées afin d'améliorer la communication.

4. Flot non structuré Nécessité d'un format donné afin


de comprendre les données.

5. Connexion Full-Duplex Communication dans les


deux sens. Information de contrôle + données
2 Le service de fiabilité

Acquittement positif avec retransmission (acknowledgement-ACK)

l"émetteur enregistre tout packet qu'il envoie et attend un acquittement. Il démarre


igalement une alarme qui, si elle expire avant l'arrivie de l'acquittement, entranne la
retransmission.
Les octets imis sont numirotis. Le N0 d'acquittement=N0 de l'octet attendu. Utilise le
micanisme de "Fenjtre glissante":

Sliding windows

Technique permettant d'acquitter plusieurs paquets en même temps.

cette technique nécessite :

Numero de siquence
Fenjtre de riception
Fenjtre d'imission .
L'acquittement d'un paquet allant de A vers B peut être
véhiculé par un paquet allant de B vers A. Cette technique est
appelée piggybacking.

La valeur du timeout
Utilisation du temps aller-retour en particulier lors de la
connexion est utilisé pour définir la valeur du timeout.

Jacobson : calcul de proche en proche s'il n'y a pas de timeout

Problème d'acquittements ambigües en cas de timeout.

· Trop court : en cas de perte timeout peut augmenter


indéfiniment.

· Trop long : paquet envoyé deux fois.

Karn : les paquets retransmis ne sont pas pris en compte pour


le calcul du timeout.
backoff policy, : timeout de façon géométrique en cas de
timeout.
3 Format des segments TCP

Port source Port destination

Numéro de séquence

Numéro d'acquittement

Taille Réservé Code Windows

Checksum Pointeur urgent

Options Bourrage

Données

Numéro de séquence spécifie le numéro de


séquence du premier octet de données.

Numéro d'acquittement spécifie le numéro de


séquence du prochain octet attendu.

Taille est la taille de l'entête du segment en


nombre de mots de 32 bits.

Window donne la taille de la fenêtre de réception.


S'il y a perte d'un segment, il n'y a pas de moyen
pour, éventuellement, acquitter les segments
suivants.

Code détermine le type de segment et son


contenu. Les valeurs possibles sont

0x20 uRG contient un message urgent.

0X10 AcK contient un acquittement

0x08 psH indication que la transmission a été


forcée

0x04 RsT indicateur de réinitialisation de la


connexion

0x02 syrr indication de début de communication

0x01 FIN indicateur de fin d'envoie de l'emetteur

Pointeur urgent indique l'offset du caractère


urgent dans données si le code uRc est présent.
Options permet, entre autres, de négocier la taille
des segments envoyés, en

fonction de la capacité mémoire de la machine réceptrice et


éventuellement de la MTU des réseaux traversés.

Checksum est calculée comme pour UDP en ajoutant une pseudo-


entête.

4 Scénario de connexion (three-way handshake)

1. Ouverture passive par le serveur en attente de


connexions
2. Ouverture active par le client
3. Le client envoie un segment de synchronisation (SYN)
contenant son numéro de séquence initial (ex:700)
4. Le serveur reçoit le (SYN) et renvoie au client un
segment de synchronisation contenant son numéro de
séquence initial (ex : 400) et un (ACK) de 701 signifiant
que le premier numéro de segment devrait être 701.
5. Le client reçoit le (SYN/ACK) et renvoie un (ACK) de
401.
6. Le client notifie l'ouverture de la connexion.
7. Le serveur reçoit (ACK) et notifie l'ouverture de la
connexion.

Le seul segment qui contient le numéro d'acquittement à zéro


est le premier SYN lors de la connexion.

5 Scénario de déconnexion (three-way handshake)


1. Le serveur envoie un message SN=650
ACK=180 CODE=FIN informant le client qu'il
n'envera plus de données . (niveau TCP)
2. Le client apprend que le serveur a fermé sa
connexion
3. Le client demande la clôture de la connexion
SN= 180 ACK=651 CODE=Fin
4. Il y a acquittement du message FIN par un ACK
SN=651 ACK=181 CODE=Ack

6 Congestion
Une congestion entraîne des retransmissions ce qui agrave
celle-ci.
En cas de congestion (réception d'un message ICMP) la fenêtre
de congestion est utilisée. Sa taille est divisée par deux à
chaque réception de message de congestion. La valeur du
timeout est également multipliée par deux.
La taille la fenêtre de congestion augmente au fur et à mesure
de la réception des acquittements (slow start). A partir de la
motié de la taille de la fenêtre originale la taille n'est
augmentée qu'une fois que tous les segments envoyés sont
acquittés (congestion avoidance)

7 Silly Window Syndrome


Si le tampon d'envoi est toujours plein, seuls des petits
paquets sont envoyés.
L'envoyeur doit éviter d'envoyer de petits segments

Il est recommandé d'envoyer les données, soit quand la taille


maximum du segment est
atteinte, soit quand une partie du buffer de réception est pleine.
Nagle propose de ne pas envoyer tant que l'on attend un
acquittement
Coté récepteur il ne faut pas notifier de fenêtre de réception trop petites.
Après avoir envoyé une taille de 0, attendre d'avoir libéré la moitié du
tampon avant d'envoyer une
notification non nulle. Une autre technique consiste à ne pas
envoyer tout de suite les
acquittements (500 ms) tant que la notification de la taille de
réception est de 0.

8 Les sockets
· Les "ports réservés" correspondent à des numéros de port
standardisés permettant aux ordinateurs à distance de déterminer à
quel port il doivent se connecter pour bénéficier d'un service de
réseau particulier. De cette manière, le processus de connexion est
simplifié, puisque l'émetteur et le récepteur connaissent à l'avance
le port spécifique qui sera utilisé pour les données destinées à une
opération déterminée. Exemple tous les systèmes offrant le service
TELNET, le proposent sur le port 23.
· Il existe un deuxième type de numéro de port appelé "port alloué
dynamiquement". Comme l'indique le nom, les ports alloués
dynamiquement ne sont pas préattribués. Ils sont attribués aux
opérations, si nécessaire. Le système s'assure qu'il n'attribue pas le
même numéro de port à deux opérations et que les numéros
attribués ne sont pas compris dans la plage des numéros de ports
standard.
· Les ports attribués dynamiquement confèrent la flexibilité
nécessaire au support de plusieurs utilisateurs. Si on attribue le
numéro de port 23 comme ports source et de destination à un
utilisateur TELNET, le deuxième utilisateur TELNET n'a plus de port
attribué. Pour déterminer de manière unique chaque connexion, un
numéro de port est alloué dynamiquement ce sont les sockets (qui
seront développées en détail dans un autre chapitre).

9 Constantes pour Numéros de port TCP


Constante Type Valeur
TCP Authentication Entier Long 113
TCP DNS Entier Long 53
TCP Finger Entier Long 79
TCP FTP Control Entier Long 21
TCP FTP Data Entier Long 20
TCP Gopher Entier Long 70
TCP HTTP WWW Entier Long 8080
TCP IMAP3 Entier Long 220
TCP Kerberos Entier Long 88
TCP KLogin Entier Long 543
TCP Nickname Entier Long 43
TCP NNTP Entier Long 119
TCP NTalk Entier Long 518
TCP NTP Entier Long 123
TCP PMCP Entier Long 1643
TCP PMD Entier Long 1642
TCP POP3 Entier Long 110
TCP Printer Entier Long 515
TCP RADACCT Entier Long 1646
TCP RADIUS Entier Long 1645
TCP Remote Cmd Entier Long 514
TCP Remote Exec Entier Long 512
TCP Remote Login Entier Long 513
TCP Router Entier Long 520
TCP SMTP Entier Long 25
TCP SNMP Entier Long 161
TCP SNMPTRAP Entier Long 162
TCP SUN RPC Entier Long 111
TCP Talk Entier Long 517
TCP Telnet Entier Long 23
TCP TFTP Entier Long 69
TCP UUCP Entier Long 540
TCP UUCP RLOGIN Entier Long 541