ch1 Application
ch1 Application
cl>
Delivered-To: [email protected]
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 <[email protected]>; 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 <[email protected]>; 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 <[email protected]>;
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 <[email protected]>; 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 <[email protected]>; 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 <[email protected]>; 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 : [email protected]
• From :[email protected]
• Date : Tue, 4 Sep 2018 15 :21 :45 +0200
D’autres moins :
• Subject : Hola
• cc : [email protected]
• MIME-Version : 1.0
• Content-Type : ext/plain ; charset=utf-8 ;
43/54
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
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 <[email protected]>; 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 <[email protected]>; 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 <[email protected]>;
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 <[email protected]>; 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 <[email protected]>; 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 <[email protected]>;
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 <[email protected]>; Tue, 4 Sep 2018 17:29:46 +0200 (CEST)
From: Martin Delacourt <[email protected]>
To: [email protected]
Date: Tue, 4 Sep 2010 15:21:45 +0200
Subject: Hola!
Message-Id: <[email protected]>
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: [email protected]
Que tal?
45/54
Le protocole
• Protocole textuel, facile à comprendre ([email protected]
écrit à [email protected]).
• 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