Networking Protocols Overview
Networking Protocols Overview
cl>
                               Delivered-To: p53252@univ-orleans.fr
                               Received: from juni.univ-orleans.fr (juni.univ-orleans.fr [194.167.30.176])
                                     by mailper.univ-orleans.fr (Postfix) with ESMTP id F2591936C1
                                     for <martin.delacourt@univ-orleans.fr>; Thu, 30 Aug 2018 15:19:34 +0200 (CEST)
                               Received: from localhost (localhost [127.0.0.1])
                                     by juni.univ-orleans.fr (Postfix) with ESMTP id 2A5722062F
                                     for <martin.delacourt@univ-orleans.fr>; Thu, 30 Aug 2018 15:19:32 +0200 (CEST)
                               X-Virus-Scanned: Debian amavisd-new at juni.univ-orleans.fr
                               Received: from juni.univ-orleans.fr ([127.0.0.1])
                                     by localhost (juni.univ-orleans.fr [127.0.0.1]) (amavisd-new, port 10024)
                                     with ESMTP id 8b8U9FpI23hY for <martin.delacourt@univ-orleans.fr>;
                                     Thu, 30 Aug 2018 15:19:30 +0200 (CEST)
                               Received: from mxb2-2.relay.renater.fr (mxb2-2.relay.renater.fr [194.214.200.9])
                                     by juni.univ-orleans.fr (Postfix) with ESMTP id 34D712045F
                                     for <martin.delacourt@univ-orleans.fr>; Thu, 30 Aug 2018 15:19:30 +0200 (CEST)
                               Received: from scfilter.dim.uchile.cl (scfilter.dim.uchile.cl [146.83.7.10])
                                     (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
Couche application
                                     (No client certificate requested)
                                     by mxb2-2.relay.renater.fr (asm) with ESMTPS id A451F605E4
                                     for <martin.delacourt@univ-orleans.fr>; Thu, 30 Aug 2018 15:19:32 +0200 (CEST)
                               Received: from localhost (localhost.localdomain [127.0.0.1])
                                     by scfilter.dim.uchile.cl (Postfix) with ESMTP id 421NPV5tdgzyNj
                                     for <martin.delacourt@univ-orleans.fr>; Thu, 30 Aug 2018 10:19:26 -0300 (-03)
                               X-Amavis-Modified: Mail body modified (using disclaimer) -
                                     scfilter.dim.uchile.cl
                               X-Virus-Scanned: Scrollout F1 at dim.uchile.cl
                               Received: from scfilter.dim.uchile.cl ([127.0.0.1])
OSI TCP/IP
       Application
       Présentation     Application
         Session
        Transport        Transport
         Réseau           Internet
         Liaison
                      Interface réseau
        Physique
                                         2/54
Couche application (Application)
      Application             Données               Application
       Transport                                    Transport
        Réseau                Réseau                  Réseau
        Liaison               Liaison                 Liaison
       Physique               Physique               Physique
                                                                 4/54
Application réseau
 Une application réseau, c’est :
   • Un (plusieurs ?) protocole mais aussi. . .
 Exemple : Le web :
   • HTTP
   • HTML
   • Navigateur web (Opera. . .), serveur web (Apache. . .).
                                                               5/54
Organisation : client-serveur
                                                                    6/54
Client-serveur
                                                                     7/54
Autre modèle : généralisation
                                                                  8/54
Design : format
• XML : XMPP. . .
• binaire, hexadécimal
   • ...
 Avec des séparateurs (ou une taille précisée au début du
 message), des codes de confirmation ou d’erreur. . .
                                                                  9/54
Design : synchronisation
 L’application doit décrire les échanges de messages :
   • Mode connecté : échange de questions/réponses dans une
     connexion établie à l’avance. Protocole TCP de la couche
     transport pour échanger un flux de données. Exemples :
     HTTP, SMTP, FTP.
                                                                   11/54
Sockets
                                                            12/54
Sockets : implémentation
                                                           13/54
TP Sockets
                                                                  14/54
Démo asyncio
               15/54
Programmation socket : client
  • asyncio.run(client(server))
  • reader, writer = await asyncio.open_connection(server,
    port)
  • writer.write(message.encode())
    data = await reader.read()
                                                             16/54
Programmation socket : serveur
  • asyncio.run(server())
  • server = await asyncio.start_server(callback, servername,
    port)
    await server.serve_forever()
  • async def callback(reader, writer) :
        ...
  • data = await reader.readline()
    writer.write(message.encode())
                                                                17/54
  Domain Name System
edu          com   net          gov    mil      fr                  be                     de
                                                                 19/54
edu          com   net          gov    mil      fr                  be                     de
                                 www.ucl.ac.be
IP : Rappels du cours 4
 Une adresse IP est de la forme x.y.z.t où x, y, z et t sont entre
 0 et 255.
   • Si on oublie les détails, une adresse de réseau contient un
      préfixe qui représente un domaine et un suffixe laissé à 0,
      ex : 194.167.30.0
   • Une adresse d’hôte dans ce réseau spécifie le suffixe, ex :
     194.167.30.130
   • L’ensemble des adresses a une structure d’arbre (premier
     préfixe 0.0.0.0 comme racine) avec à ses noeuds les
     sous-réseaux et aux feuilles les hôtes.
 DNS fait le lien entre les deux arborescences.
                                                                     21/54
Principe
                                                                22/54
Requête DNS
                                                                   23/54
Résolutions DNS
 Il existe 2 modes de résolution DNS :
   • Requête récursive : Le serveur qui reçoit la requête fait la
     résolution et répond. Un serveur qui accepte les requêtes
     récursives est appelé serveur récursif. Ce sont les solveurs
     DNS des FAI en particulier.
   • Requête itérative : Le serveur qui reçoit la requête répond
     soit avec l’information demandée s’il peut, soit avec un lien
     vers un serveur plus proche auquel il délègue la
     responsabilité. Ce sont les serveurs faisant autorité sur une
     zone en particulier.
 Chaque serveur DNS connaît le nom et l’adresse IP des serveurs
 auxquels il délègue.
                                                                     24/54
Résolution DNS
                                                                          25/54
Serveurs DNS
                                                                    26/54
Résolution DNS
                                                                 27/54
Exemple
smtp.cold.net A ?
NS dnsnet.net
smtp.cold.net A ?
NS dnscold.cold.net
smtp.cold.net A ?
A 2.3.4.5
A 2.3.4.5
                                                                                                         28/54
Robustesse et temps d’exécution
                                                                29/54
Resource Records
 Un enregistrement DNS (dans le fichier de configuration d’un
 serveur DNS) contient :
  Nom         TTL        Classe           Type          Valeur
   • Nom : Nom de domaine concerné
   • TTL : Time To Live de l’enregistrement (vide si valeur par
     défaut)
   • Classe : En général IN pour internet
   • Type : Type d’enregistrement
   • Valeur : Selon le type
                                                                  30/54
Types d’enregistrement
  • A : Adresse IPv4
  • AAAA : Adresse IPv6
  • MX : Mail eXchanger (avec une priorité)
  • TXT : Commentaires
  • NS : Name Server (nom du serveur à contacter)
  • SOA : Start Of Authority (informations sur la zone DNS)
  • CNAME : Canonical NAME (pour un alias)
                                                              31/54
Exemple dans labobs (dnscom)
Pour la zone com.
    $TTL      60000
    @                 IN   SOA   dnscom.com. root.dnscom.com. (
                           1 ; serial
                           28 ; refresh
                           14 ; retry
                           3600000 ; expire
                           60000 ; negative cache ttl
                           )
    @                 IN   NS    dnscom.com.
    dnscom            IN   A     42.13.37.42
    jmail             IN   NS   dnsjmail.jmail.com.
    dnsjmail.jmail    IN   A    173.194.66.108
    perdu             IN   NS   dnsperdu.perdu.com.
    dnsperdu.perdu    IN   A    8.8.8.8                    32/54
Exemple dans labobs (perdu)
Pour la zone perdu.com.
    $TTL       60000
    @              IN     SOA    dnsperdu.perdu.com. root.dnsperdu.
                          1 ; serial
                          28 ; refresh
                          14 ; retry
                          3600000 ; expire
                          60000 ; negative cache ttl
                          )
    @              IN     NS   dnsperdu.perdu.com.
    dnsperdu       IN     A    8.8.8.8
    www            IN     A    8.8.8.8
                                                              33/54
% dig -t ANY univ-orleans.fr
; <<>> DiG 9.11.4-4-Debian <<>> -t ANY univ-orleans.fr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52661
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 10, AUTHORITY: 0, ADDITIONAL: 13
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;univ-orleans.fr.               IN      ANY
;; ANSWER SECTION:
univ-orleans.fr.         86400   IN     TXT    "v=spf1 mx ip4:194.167.30.0/24 ~all"
univ-orleans.fr.         86400   IN     SOA    dns.univ-orleans.fr. gestion-dns.univ-orleans.fr. 20180913
univ-orleans.fr.         86400   IN     NS     dns.univ-orleans.fr.
univ-orleans.fr.         86400   IN     NS     dns2.univ-orleans.fr.
univ-orleans.fr.         86400   IN     NS     dns3.univ-orleans.fr.
univ-orleans.fr.         86400   IN     MX     50 mxc.relay.renater.fr.
univ-orleans.fr.         86400   IN     MX     50 mxd.relay.renater.fr.
univ-orleans.fr.         86400   IN     MX     50 mxa.relay.renater.fr.
univ-orleans.fr.         86400   IN     MX     50 mxb.relay.renater.fr.
univ-orleans.fr.         86400   IN     A      194.167.30.239
;; ADDITIONAL SECTION:
dns.univ-orleans.fr.     86400   IN     A      194.167.30.130
dns.univ-orleans.fr.     86400   IN     AAAA   2001:660:6402:1200::130
dns2.univ-orleans.fr.    86400   IN     A      194.167.31.3
dns3.univ-orleans.fr.    86400   IN     A      194.167.31.100
mxa.relay.renater.fr.    2248    IN     A      194.214.201.8
mxa.relay.renater.fr.    1207    IN     AAAA   2001:660:3027:1::8
mxb.relay.renater.fr.    2248    IN     A      194.214.201.9
mxb.relay.renater.fr.    1207    IN     AAAA   2001:660:3027:1::9
mxc.relay.renater.fr.    2090    IN     A      194.214.200.8
mxc.relay.renater.fr.    1207    IN     AAAA   2001:660:3027:2::8
mxd.relay.renater.fr.    2248    IN     A      194.214.200.9
mxd.relay.renater.fr.    1207    IN     AAAA   2001:660:3027:2::9
                                                                                                 34/54
% dig -t ANY www.univ-orleans.fr
; <<>> DiG 9.11.4-4-Debian <<>> -t ANY www.univ-orleans.fr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49828
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 6
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.univ-orleans.fr.           IN        ANY
;; ANSWER SECTION:
www.univ-orleans.fr.      86400   IN     A       194.167.30.239
www.univ-orleans.fr.      86400   IN     MX      0 smtp.univ-orleans.fr.
;; AUTHORITY SECTION:
univ-orleans.fr.         86400    IN      NS     dns2.univ-orleans.fr.
univ-orleans.fr.         86400    IN      NS     dns.univ-orleans.fr.
univ-orleans.fr.         86400    IN      NS     dns3.univ-orleans.fr.
;; ADDITIONAL SECTION:
smtp.univ-orleans.fr.     86400   IN     A       194.167.30.100
dns.univ-orleans.fr.      86400   IN     A       194.167.30.130
dns.univ-orleans.fr.      86400   IN     AAAA    2001:660:6402:1200::130
dns2.univ-orleans.fr.     86400   IN     A       194.167.31.3
dns3.univ-orleans.fr.     86400   IN     A       194.167.31.100
                                                                           35/54
Reverse DNS
                                                                   36/54
Reverse DNS : objectif
                                                                    37/54
% dig -x 194.167.30.239
; <<>> DiG 9.11.4-4-Debian <<>> -x 194.167.30.239
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44949
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 7
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;239.30.167.194.in-addr.arpa.   IN        PTR
;; ANSWER SECTION:
239.30.167.194.in-addr.arpa. 10800 IN    PTR     sulkut.univ-orleans.fr.
;; AUTHORITY SECTION:
30.167.194.in-addr.arpa.    10800   IN    NS     arcturus.ciril.fr.
30.167.194.in-addr.arpa.    10800   IN    NS     dns2.univ-orleans.fr.
30.167.194.in-addr.arpa.    10800   IN    NS     dns.univ-orleans.fr.
30.167.194.in-addr.arpa.    10800   IN    NS     dns3.univ-orleans.fr.
;; ADDITIONAL SECTION:
dns.univ-orleans.fr.       86400    IN   A       194.167.30.130
dns.univ-orleans.fr.       86400    IN   AAAA    2001:660:6402:1200::130
dns2.univ-orleans.fr.      86400    IN   A       194.167.31.3
dns3.univ-orleans.fr.      86400    IN   A       194.167.31.100
arcturus.ciril.fr.         12116    IN   A       193.50.27.66
arcturus.ciril.fr.         12116    IN   AAAA    2001:660:4503:201::66
                                                                           38/54
Simple Mail Transfer
Protocol
Les principes
                                                                     40/54
Le chemin
                                                                  41/54
MSA & MTA
                                                                   42/54
Le contenu
 Plusieurs entêtes puis le corps après une ligne vide. Entêtes
 fortement recommandées :
   • To : mdelacourt@dim.uchile.cl
   • From :martin.delacourt@univ-orleans.fr
   • Date : Tue, 4 Sep 2018 15 :21 :45 +0200
 D’autres moins :
   •   Subject : Hola
   •   cc : martin.delacourt@univ-lorraine.fr
   •   MIME-Version : 1.0
   •   Content-Type : ext/plain ; charset=utf-8 ;
                                                                 43/54
Return-Path: <martin.delacourt@univ-orleans.fr>
X-Original-To: mdelacourt@dim.uchile.cl
Delivered-To: mdelacourt@dim.uchile.cl
Received: from scfilter.dim.uchile.cl (unknown [10.0.0.179])
        (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
        (No client certificate requested)
        by gauss.dim.uchile.cl (Postfix) with ESMTPS id 93FDAA5DDB9
        for <mdelacourt@dim.uchile.cl>; Tue, 4 Sep 2018 12:31:57 -0300 (-03)
Received: by scfilter.dim.uchile.cl (Postfix, from userid 65534)
        id 424W6543FlzyVj; Tue, 4 Sep 2018 12:31:57 -0300 (-03)
Received: from localhost (localhost.localdomain [127.0.0.1])
        by scfilter.dim.uchile.cl (Postfix) with ESMTP id 424W650MRQzyVL
        for <mdelacourt@dim.uchile.cl>; Tue, 4 Sep 2018 12:31:57 -0300 (-03)
X-Virus-Scanned: Scrollout F1 at dim.uchile.cl
X-Spam-Flag: NO
X-Spam-Score: 1.504
X-Spam-Level: *
X-Spam-Status: No, score=1.504 tagged_above=-1000 required=5
        tests=[BAYES_00=-1.9, DATE_IN_PAST_96_XX=3.405,
        RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001]
        autolearn=no autolearn_force=no, No
Received: from scfilter.dim.uchile.cl ([127.0.0.1])
        by localhost (scfilter.dim.uchile.cl [127.0.0.1]) (amavisd-new, port 10024)
        with LMTP id ks6lD8C9eGCb for <mdelacourt@dim.uchile.cl>;
        Tue, 4 Sep 2018 12:31:42 -0300 (-03)
Received: from dio.univ-orleans.fr (dio.univ-orleans.fr [194.167.30.47])
        by scfilter.dim.uchile.cl (Postfix) with ESMTP id 424W5n5NdpzyV5
        for <mdelacourt@dim.uchile.cl>; Tue, 4 Sep 2018 12:31:41 -0300 (-03)
Received: from localhost (localhost [127.0.0.1])
        by dio.univ-orleans.fr (Postfix) with ESMTP id DFE0E7AB0D
        for <mdelacourt@dim.uchile.cl>; Tue, 4 Sep 2018 17:31:25 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at dio.univ-orleans.fr
Received: from dio.univ-orleans.fr ([127.0.0.1])
        by localhost (dio.univ-orleans.fr [127.0.0.1]) (amavisd-new, port 10024)
        with ESMTP id DFogT9XUXNX6 for <mdelacourt@dim.uchile.cl>;
        Tue, 4 Sep 2018 17:31:24 +0200 (CEST)
                                                                                      44/54
Received: from Chao (unknown [192.168.80.74])
        by dio.univ-orleans.fr (Postfix) with SMTP id CECC47AB0B
        for <mdelacourt@dim.uchile.cl>; Tue, 4 Sep 2018 17:29:46 +0200 (CEST)
From: Martin Delacourt <martin.delacourt@univ-orleans.fr>
To: mdelacourt@dim.uchile.cl
Date: Tue, 4 Sep 2010 15:21:45 +0200
Subject: Hola!
Message-Id: <20180904153125.DFE0E7AB0D@dio.univ-orleans.fr>
X-UCHILE-MailScanner-Information: Please contact the ISP for more information
X-UCHILE-MailScanner-ID: 93FDAA5DDB9.A9A67
X-UCHILE-MailScanner: Found to be clean
X-UCHILE-MailScanner-From: martin.delacourt@univ-orleans.fr
Que tal?
                                                                                45/54
Le protocole
   • Protocole textuel, facile à comprendre (alice@jmail.com
     écrit à bob@cold.net).
   • Le MUA d’Alice transmet le message au serveur de courrier
     sortant de jmail.com, au moyen d’une session SMTP.
   • Le serveur sortant résout l’enregistrement DNS de type
     MX pour cold.net.
   • Il transmet le message au moyen d’une nouvelle session
     SMTP.
   • Le serveur entrant de cold.net stocke le message dans la
     boîte mail de Bob.
 Pour chaque session SMTP, le client demande une connexion
 TCP avec le serveur, celui-ci lance alors l’échange.
                                                                 46/54
                          nc dio.univ-orleans.fr 25
                                                               Que tal?
                                                                       .
250 2.0.0 Ok: queued as CECC47AB0B
                                                                 QUIT
221 2.0.0 Bye
                                                                           47/54
HyperText Transfer
Protocol
Principe
                                                             49/54
Uniform Resource Locator
 http://www.perdu.com
 https://celene.univ-orleans.fr/course/view.php ?id=1980
 http://cnp3book.info.ucl.ac.be/1st/html/application/http.html
 file:///etc/apt/sources.list
ftp://ftp.lip6.fr/pub/rfc/rfc/rfc1149.txt.gz
                                                            50/54
HyperText Markup Language
 <html>
   <head>
     <title>Vous Etes Perdu ?</title>
   </head>
   <body>
     <h1>Perdu sur l’Internet ?</h1>
     <h2>Pas de panique, on va vous aider</h2>
     <strong>
       <pre>    * <----- vous ê ;tes ici</pre>
     </strong>
   </body>
 </html>
                                                      51/54
HyperText Transfer Protocol
                                                         52/54
                  nc -C www.perdu.com 80
GET / HTTP/1.1
Host: www.perdu.com
HTTP/1.1 200 OK
Date: Tue, 04 Sep 2018 16:01:18 GMT
Server: Apache
Last-Modified: Thu, 02 Jun 2016 06:01:08 GMT
ETag: "cc-5344555136fe9"
Accept-Ranges: bytes
Content-Length: 204
Vary: Accept-Encoding
Content-Type: text/html
<html><head><title>Vous Etes Perdu
?</title></head><body><h1>Perdu sur l’Internet
?</h1><h2>Pas de panique, on va vous
aider</h2><strong><pre> * <—– vous êtes
ici</pre></strong></body></html>
                                                 53/54
Droits
54/54