THEME : INTERNET Partie 2 TCP - univ-lille.fr

Preview:

Citation preview

Formation académique de Lille SNT

THEME : INTERNETPartie 2 TCP

Formation académique de Lille SNT

Partie 1 : DNSPartie 2 : TCP

Partie 3 : Couche TRANSPORT

Partie 4 : Passerelle, NAT et PORT forwarding, ETHERNET...

Qu’est-ce qu’un réseau ?Un réseau informatique : ensemble d'équipements informatiques reliés entre eux.

La communication locale se fait en utilisant l’adresse MAC, identifiant de la couche LIAISON. Cette adresse permet de trouver les cartes physiques à joindre.

Sur cette couche, il y a nécessairement une communication entre deux machines d’un même réseau. La TRAME passe de machine locale en machine locale.

Qu’est-ce qu’un réseau ?Pour différencier la machine et le rôle qu’elle joue, on utilise deuxième adresse dite adresse logique.

L’adresse IP.

Il s’agit de l’identifiant de la couche RESEAU.

#Diapo 36

DNS : client HTTP et serveur HTTP

Cas réel : client HTTP et serveur HTTP

1

1 : Le client veut se connecter à qwant.com en utilisant le nom de domaine mais ne connaît pas l’IP du serveur !

Cas réel : client HTTP et serveur HTTP

2

2 : Il cherche s’il connaît la traduction adresse IP – Nom de domaine

Cas réel : client HTTP et serveur HTTP

3

3 : Si la réponse est NON, il va interroger son serveur DNS local(DOMAIN NAME SERVICE)

Cas réel : client HTTP et serveur HTTP

3

3 : Il connaît l’adresse IP de son serveur DNS et consulte donc sa table ARP pour connaître la MAC à joindre.

Cas réel : client HTTP et serveur HTTP

4

4 : Le DNS local fournit l’IP demandée (s’il ne connaît pas, il se connecte au DNS du provider par exemple)

Cas réel : client HTTP et serveur HTTP

5

5 : L’ordinateur détecte avec IP que l’adresse du serveur HTTP est hors réseau local.

Cas réel : client HTTP et serveur HTTP

6

6 : Il consulte l’adresse IP de sa passerelle. Il consulte sa table ARP pour en connaître la MAC.

172.

16.1

14.3

0 po

ur 1

92.1

68.1

.200

Cas réel : client HTTP et serveur HTTP

6

6 : Il envoie une demande au routeur. La MAC est celle du routeur mais l’IP de la demande est bien du serveur distant.

172.

16.1

14.3

0 po

ur 1

92.1

68.1

.200

Cas réel : client HTTP et serveur HTTP 7 7 : Le routeur

reçoit un message pour son adresse MAC mais pas son adresse IP : il route !

Cas réel : client HTTP et serveur HTTP 8 8 : Il consulte sa

table ARP pour faire le lien entre l’adresse IP voulue et une adresse MAC.

Cas réel : client HTTP et serveur HTTP 9 9 : Il envoit un

message au serveur avec sa propre MAC comme source mais

172.16.114.30 pour 192.168.1.200

Cas réel : client HTTP et serveur HTTP 9 9 : ne modifie pas

les IP source et destination (*)

172.16.114.30 pour 192.168.1.200

Cas réel : client HTTP et serveur HTTP

10

10 : Le serveur reçoit la demande et pourra répondre à l’aide de l’IP source du message.

Deux questions se posent encore

Et pour les gros envois ?Le routeur ne peut gérer qu’une demande à la fois, séquentiellement.

Si quelqu’un se tape l’intégrale de Games of Thrones, vous allez attendre un bout de temps avant que le routeur ne gère votre petite demande de consultation de boîte emails !

Heureusement, la réponse est ...

Et comment savoir si le paquet est arrivé

Les routeurs ne font que transmettre.

Si l’envoi est fait mais que la demande n’est pas traitée, il ne le saura jamais.

D’ailleurs, la réponse ou l’acquittement ne repassent pas nécessairement par lui !

Heureusement, quelque chose veille au grain. La réponse est ...

Le protocole TCPC’est là qu’intervient le protocole TCP.

Lorsqu’une application veut envoyer un gros message :

● Le protocole TCP fait une demande d’activation de communication et attend la réponse.

● Le protocole TCP découpe le gros message en plusieurs message ET numérote les messages.

● Il encapsule les messages dans différents paquets IP qu’il envoie un à la fois. Il attend la réponse du client avant d’envoyer le suivant.

Le protocole TCPEnsuite, c’est parti :

● Le serveur HTTPS veut répondre en fournissant un gros fichier HTML par exemple.

● Le serveur va amorcer la communication et attendre la réponse du client.

On

par

le ?

Ok 

!

Le protocole TCPLe serveur HTTPS envoie sa réponse mais elle est très lourde.

● Le protocole TCP découpe la réponse en plusieurs parties (3 ici) et envoie 3 paquets IP plutôt qu’un seul.

Le protocole TCPSOURCE HTML

HTML1 HTML2 HTML3

Le paquet IP 1 contient en gros:

● IP SERVEUR

● IP CLIENT

● Message n°1

● Contenu HTML1

Vo

ilà le

pre

mie

r p

aqu

et IP

Le protocole TCP

Le serveur reçoit l’acquittement du premier PAQUET.

Il sait ainsi que le client a reçu un bout de réponse et laquelle.

Vo

ilà le

pre

mie

r p

aqu

et IP

Ok 

!

Le protocole TCPSOURCE HTML

HTML1 HTML2 HTML3

Le paquet IP 2 contient en gros:

● IP SERVEUR

● IP CLIENT

● Message n°2

● Contenu HTML2

Vo

ilà le

deu

xièm

e p

aqu

et IP

Le protocole TCP

Envoi du PAQUET 3.

Vo

ilà le

tro

isiè

me

paq

uet

IPO

k !

Le protocole TCPDu côté client, l’ordinateur a reçu 3 paquets IP avec un codage lui permettant de les réorganiser de façon à obtenir à nouveau le message de base :

Encapsulation (hors programme SNT pour les élèves)

COUCHE LIAISON (TRAME)MAC RECEPTEUR : MAC ClientMAC EMETTEUR : MAC Routeur

COUCHE RESEAU (PAQUET)IP SOURCE : 30.30.30.10IP DESTINATION : 60.60.60.10TTL : 14

COUCHE TRANSPORT (segment)Information permettant de connaître le numéro du segment

HTML1

HTML1

Encapsulation (hors programme SNT pour les élèves)

COUCHE LIAISON (TRAME)MAC RECEPTEUR : MAC ClientMAC EMETTEUR : MAC Routeur

COUCHE RESEAU (PAQUET)IP SOURCE : 30.30.30.10IP DESTINATION : 60.60.60.10TTL : 14

COUCHE TRANSPORT (segment)Information permettant de connaître le numéro du segment

HTML2

HTML1 HTML2

Encapsulation (hors programme SNT pour les élèves)

COUCHE LIAISON (TRAME)MAC RECEPTEUR : MAC ClientMAC EMETTEUR : MAC Routeur

COUCHE RESEAU (PAQUET)IP SOURCE : 30.30.30.10IP DESTINATION : 60.60.60.10TTL : 14

COUCHE TRANSPORT (segment)Information permettant de connaître le numéro du segment

HTML3

HTML1 HTML2 HTML3 CODE SOURCE HTML

Encapsulation (hors programme SNT pour les élèves)

Le protocole TCP récupère alors les 3 segments et va reconstituer les données.

Il parvient alors à fournir les données correctes à la couche APPLICATION.

BilanPROTOCOLE IP : se charge de localiser les machines distantes, de déterminer si deux machines sont sur le même réseau et de faire disparaître au besoin les paquets IP perdus.

PROTOCOLE TCP : il se charge de créer des segments de taille acceptable, de vérifier que les paquets soient bien reçus, des envois multiples éventuels à refaire et réassemble ensuite les données segmentées.

BilanPROTOCOLE TCP :

● Il fait d’autres choses d’ailleurs :– Il vérifie si le segment reçu est bien le même

que le segment émis à l’aide d’un CHECK SUM. Dans le cas contraire, un nouveau paquet sera émis.

– Il est capable d’émettre plusieurs paquets à la fois et à vérifier un à un les paquets reçus ou non (variation des fenêtres glissantes).

Hors programme SNT : la couche TRANSPORT

● Comment signale-t-il qu’il est le serveur HTTPS et qu’il veut contacter le navigateur ?

C’est simple : en l’identifiant !

● Lors de la demande initiale l’ordinateur du client à fournir un numéro aléatoire supérieur à 1024 et identifiant Firefox sur ce PC. Disons PORT 5405.

Il a également placé le numéro de PORT du programme qu’il veut joindre : le serveur HTTPS de PORT 443.

La requête de baseOn passe à la couche TRANSPORT qui permet d’identifier les programmes.

L’identifiant de cette couche est le PORT.

Par convention, les serveurs HTTPS sont identifiés par 443.

GET https://www.cnil.fr/

COUCHE APPLICATIVE

Une requêteOn passe à la couche TRANSPORT qui permet d’identifier les programmes. Il s’agit de la couche du protocole TCP.

L’identifiant de programmes se nomme PORT.

Par convention, les serveurs HTTPS sont identifiés par 443.

GET https://www.cnil.fr/...

DATA (Application)

SEGMENT (Couche TRANSPORT)

SRC 5405DST 443Synchro...

Une requêteLa couche RESEAU contient les IP source et destination.

● L’identifiant de cette couche est l’IP

GET https://www.cnil.fr/...

DATA (Application)

SEGMENT (Couche TRANSPORT)

SRC 5405DST 443Synchro...

SEGMENT (Couche TRANSPORT)

SRC 5405DST 443Synchro

PAQUET (Couche Réseau)

SRC 172.16.114.30DST 192.168.1.200 TTL 16...

Une requêteLa couche LIAISON est sa trame contenant les MAC.

GET https://www.cnil.fr/...

DATA (Application)

SEGMENT (Couche TRANSPORT)

SRC 5405DST 443Synchro...

SEGMENT (Couche TRANSPORT)

SRC 5405DST 443Synchro

PAQUET (Couche Réseau)

SRC 172.16.114.30DST 192.168.1.200 TTL 16...

TRAME (Couche LIAISON)

DST RouteurSRC PC...

La réponseDATA ispersées dans 3 segments, donc 3 PAQUETS IP :

PARTIE 1 du code

« DATA (Application)

SEGMENT (Couche TRANSPORT)

SRC 443DST 5405Frag n°1...

PAQUET (Couche Réseau)

SRC 192.168.1.200DST 172.16.114.30 TTL 16...

TRAME (Couche LIAISON)

DST ServeurSRC Routeur...

Passerelle (complément)

Comme il n’y a pas assez d’adresses IPv4, on est en train de passer poussivement à IPv6.

Pourquoi garder IPv4 ?

Car on peut créer de multiples réseaux locaux qu’on ne peut atteindre depuis l’exterieur.

Passerelle (complément)

Il existe en effet dans IP des plages d’adresses réservés aux réseaux locaux.

Il s’agit de plages d’adresses qui ne peuvent pas être attribuées à une carte réseau côté « Internet ».

Passerelle (complément)Voici les adresses qui ne peuvent pas être routées sur Internet :

10. x . x . x / 8

172.16. x . x à 172.31.x . x / 12

192.168. 0 . x à 192.168.254. x / 16

Elles servent uniquement à l'intérieur d'un réseau local, jamais pour des adressages entre réseaux.

Passerelle (complément)

C’est le cas chez vous, derrière votre Box :

Passerelle (complément 1)

Si 192.168.0.12 veut accéder à un serveur HTTP par exemple, il va adresser ceci :

La couche TRANSPORT contiendra le port 80 de destination et un PORT aléatoire, disons 5600 pour Firefox.

La couche RESEAU contiendra l’adresse IP du serveur distant (mettons 194.199.79.5) et l’adresse source 192.168.0.12

Passerelle (complément)

Si 192.168.0.12 veut accéder à un serveur HTTP par exemple, il va adresser

La Box va alors faire du NAT : Network Adress Translation.

Elle va mémoriser la demande et va recréer une couche TRANSPORT et RESEAU en fournissant un nouveau port (mettant 7400) et sa propre adresse IP 185.86.168.101.

Passerelle (complément)

Si 192.168.0.12 veut accéder à un serveur HTTP par exemple, il va adresser

Lorsqu’une réponse arrivera vers 185.86.168.101 : 7400, la Box va faire la traduction : il faut transmettre en réalité à 192.168.0.12 : 5600 !

Et le tour est joué.

Passerelle (complément)

Et si vous voulez expliquer à vos élèves pourquoi ils ne parviennent pas à se créer un serveur joignable depuis Internet chez eux ?

Il faut se renseigner sur le PORT FORWARDING !

Communication sur un réseau (Complément 2)

Juste si vous vous posez des questions sur ces histoires d’adresses MAC.

→ Switch et table CAM

→ Protocole ARP

→ Interaction et complémentarité de MAC et IP en local.

→ Protocole Ethernet

Si le PC du haut veut communiquer avec le PC du bas, il doit donc joindre la carte réseau identifiée par l’adresse MAC suivante : CC:CC:CC:CC:CC:CC

Si le PC du haut, veut communiquer avec le PC du bas, il doit donc joindre la carte réseau identifiée par l’adresse MAC suivante : CC:CC:CC:CC:CC:CC

Et dire qu’il utilise la carte réseau AA:AA:AA:AA:AA:AA s’il veut avoir une réponse !

Communication sur un réseauOk.

Le PC A va émettre une TRAME qu’il va envoyer vers le switch.

Communication sur un réseauLe switch reçoit la trame.

Et ?

Communication sur un réseauComme la trame contient de façon codifiée l’adresse MAC de destination, il peut la récupérer.

Et ?

Communication sur un réseauIl possède une table nommée table CAM qui fait la correspondance entre ses broches et les adresses MAC qu’on peut y joindre.

Communication sur un réseau

Numéro

Fiche / Broche / PortAdresse MAC

atteignable

1 AA:AA:AA:AA:AA:AA

2 BB:BB:BB:BB:BB:BB

3 CC:CC:CC:CC:CC:CC

Communication sur un réseau

Numéro

Fiche / Broche / PortAdresse MAC

atteignable

1 AA:AA:AA:AA:AA:AA

2 BB:BB:BB:BB:BB:BB

3 CC:CC:CC:CC:CC:CC

Communication sur un réseauSi le switch ne connaît pas l’IP, il va envoyer le message sur toutes ses broches ! Il recevra ainsi UNE réponse : celle de l’ordinateur ayant la bonne IP et la bonne MAC.

Le problème ?

On ne peut pas faire ça avec un énorme réseau !

Il faudrait que chaque switch connaissent les adresses de tous les appareils ou qu’il interroge tous les autres switches s’il ne connaît pas l’adresse MAC d’une machine.

Communication sur un réseau

Communication sur un réseau

Communication sur un réseau

Communication sur un réseau

Communication sur un réseau

Communication sur un réseau

Communication sur un réseau

Communication sur un réseauEt si je change mon PC ou que ma carte réseau est hs, on fait quoi ?

Communication sur un réseauLa solution ? Créer des réseaux et identifier avec IP.

(Complément 3) Protocole Ethernet

L’un des protocoles les plus courants en couche LIAISON actuellement est le protocole ETHERNET.

Le message qui va être envoyé se nomme une TRAME.

Complément Protocole EthernetOn envoie un préambule bien précis de 8 octets codant le début d’une communication.

☐☐☐☐☐☐☐☐

La machine qui va recevoir la communication va ainsi savoir qu’on veut lui parler.

Complément Protocole EthernetOn place les 6 octets caractérisant l’adresse MAC à joindre, l’adresse MAC du récepteur.

☐☐☐☐☐☐☐☐☐☐☐☐☐☐

La machine qui va recevoir la communication va ainsi savoir si on veut réellement s’adresse à elle.

Si ce n’est pas son adresse, elle mettra le message à la poubelle.

Complément Protocole EthernetOn place les 6 octets caractérisant l’adresse MAC à joindre, l’adresse MAC du récepteur.

☐☐☐☐☐☐☐☐☐☐☐☐☐☐

Sauf si l’adresse MAC est FF:FF:FF:FF:FF:FF qui est l’adresse de broadcast : cela veut dire que le message est destiné à toutes les machines du réseau.

Complément Protocole EthernetOn place les 6 octets caractérisant l’adresse MAC de la machine qui envoie la trame, l’adresse MAC de l’émetteur.

☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐

Complément Protocole EthernetOn place ensuite 2 octets encodant la taille de la trame : cela permettra de savoir où se situe la fin de la trame.

☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐

Complément Protocole EthernetViennent ensuite les données à transmettre (elles doivent être comprises entre 46 et 1500 octets).

☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐...☐☐☐

Complément Protocole EthernetEnfin, on place le frame check sequence (FCS) : 4 octets composant un code détecteur d’erreur.

☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐...☐☐☐☐☐☐☐

Ouf. C’est fini. Nous avons notre trame prête à l’envoi.

Complément Protocole Ethernet

Comment se fait ensuite la communication ?

Notre machine A envoie la trame vers le switch :☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐...☐☐☐☐☐☐☐

Complément Protocole Ethernet

Comment se fait ensuite la communication ?

Le switch va lire l’adresse MAC de destination :☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐...☐☐☐☐☐☐☐

Communication sur un réseau

Comment se fait ensuite la communication ?

Par exemple :Numéro

Fiche / Broche / PortAdresse MAC

atteignable

1 AA:AA:AA:AA:AA:AA

2 BB:BB:BB:BB:BB:BB

3 CC:CC:CC:CC:CC:CC

Communication sur un réseau

Comment se fait ensuite la communication ?

Le switch va renvoyer la trame via la fiche 3 :☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐...☐☐☐☐☐☐☐

Communication sur un réseau

Comment se fait ensuite la communication ?

Le PC 3 va recevoir ceci :☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐...☐☐☐☐☐☐☐

Comme la MAC de destination est

la sienne, il va traiter le message.

Recommended