Les Couches OSI (Open System Interconnection

)
Couche7 Couche6 Couche5 Couche4 Couche3 Application Presentation Session Transport Reseaux Liaison des Couche2 données Couche1 Couche physique ftp, E-mail... format Synchronisation des dialogues... TCP, UDP... IP, X25... MAC... connection reelle: paire dorsale, fibre 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 Numéro de séquence Numéro d'acquittement Taille Réservé Checksum Options Données Code Windows Pointeur urgent Bourrage Port destination

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 pseudoentê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 TCP Authentication TCP DNS TCP Finger TCP FTP Control TCP FTP Data TCP Gopher TCP HTTP WWW TCP IMAP3 TCP Kerberos TCP KLogin TCP Nickname TCP NNTP TCP NTalk TCP NTP TCP PMCP TCP PMD TCP POP3 TCP Printer TCP RADACCT TCP RADIUS TCP Remote Cmd TCP Remote Exec TCP Remote Login TCP Router TCP SMTP TCP SNMP TCP SNMPTRAP TCP SUN RPC TCP Talk TCP Telnet TCP TFTP TCP UUCP TCP UUCP RLOGIN

Type Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long Entier Long

Valeur 113 53 79 21 20 70 8080 220 88 543 43 119 518 123 1643 1642 110 515 1646 1645 514 512 513 520 25 161 162 111 517 23 69 540 541

Sign up to vote on this title
UsefulNot useful