Re: connecté ou non ?

Top Page

Reply to this message
Author: Edgar Bonet
Date:  
To: guilde
Subject: Re: connecté ou non ?
Le Thursday 06 December, Torgue Philippe a écrit :
> J'entends dire que smtp est un protocole non connecté
> Mais , comment envoyer les messages si l'on est pas connecté ?
>
> J'en déduis que je n'ai pas compris la notion de protocole connecté et
> non connecté.


D'après ce que j'ai lu, IP, ICMP et UDP sont des protocoles non
connectés. Ça veut dire que quand un émetteur veut envoyer des
informations à un récepteur, il n'a qu'à lui envoyer un paquet avec les
informations en question, en espérant que celui-ci arrivera à bon port
(c'est sans garantie). C'est un peu comme le courrier ordinaire : tu
mets ta lettre dans la boîte aux lettres et tu ne t'en occuppes plus.

En revanche, TCP est un protocole connecté. Ça veut dire qu'avant tout
échange d'informations, les deux parties doivent se mettre d'accord pour
ouvrir une session. Dans le cas de TCP ça se fait par l'échange de trois
paquets : un premier paquet par lequel l'appelant formule sa demande de
connexion, un deuxième par lequel l'appelé accepte et un troisième pour
accuser réception du deuxième. Il y a aussi des paquets échangés pour
clore la session (quatre). TCP peut être vu dans ce sens comme
l'analogue du téléphone.

Pour les protocoles de plus haut niveau, je ne sais pas trop comment on
définit la notion de connecté ou non. J'aurais tendance à qualifier de
connecté tout ce qui passe sur TCP, mais c'est peut-être un peu
simpliste. Si on prend « non connecté » comme synonyme de « stateless »,
alors HTTP, bien que passant sur TCP, est non connecté : il n'y a pas
vraiment de dialogue entre le client et le serveur. Le client formule
une requête, le serveur répond et c'est fini. Les échanges
requête/réponse sont indépendants les uns des autres. Pas de notion de
session donc (bien qu'elle puisse être implémentée par dessus, par
exemple avec des cookies).

En revanche, SMTP m'a l'air d'être tout ce qu'il y a de plus connecté.
Voici à quoi ressemble un dialogue SMTP typique, librement adapté de
< http://www.freesoft.org/CIE/RFC/821/31.htm > :

    Serveur : Bonjour, ici serveur bidule, je vous écoute.
    Client : Salut, moi c'est machin.
    S : Salut machin, ravi de faire votre connaissance.
    C : J'ai un mail de la part de toto.
    S : OK
    C : Il est destiné à Jeannot Lapin.
    S : OK
    C : En voici le contenu
    S : Vas'y mon gars, termine avec <CRLF>.<CRLF>
    C : Bla, bla, bla... <CRLF>.<CRLF>
    S : OK
    C : À+.
    S : À la prochaine.


Comme tu vois, il y a bien une notion de session qui passe par plusieurs
phases : on se présente, on échange les adresses de l'envoyeur et du
destinataire, on envoie le message et on dit au revoir. Si un client
essaye d'envoyer un mail tout de go, il reçoit un message d'erreur :
« Les gens polis commencent par se présenter ».

-- 
Edgar Bonet                         Tel :    +33 476 881 096
Laboratoire Louis Néel -- CNRS      Mobile : +33 663 384 906
25 av. des Martyrs, BP 166          Fax :    +33 476 881 191
38042 Grenoble cedex 9, France      e-mail : bonet@???