Remi Forax
“The Internet is the global system of interconnected computer networks that use the Internet protocol suite (TCP/IP) to link billions of devices worldwide”
source: Wikipedia.org - Internet
“ L'Internet est un système global de réseaux d'ordinateurs interconnectés qui utilise la suite de protocoles Internet (TCP/IP) pour lier des milliards de terminaux dans le monde entier”
source : Wikipedia.org - Internet
Plusieurs protocoles d'échange de données permettant à des machines de communiquer entre elles à travers un réseau de machines
Adresse unique identifiant une machine sur le réseau Internet
La commande ping permet d'envoyer des paquets ICMP
(de contrôle) à une adresse IP
$ ping 193.50.159.151
PING 193.50.159.151 (193.50.159.151) 56(84) bytes of data.
64 bytes from 193.50.159.151: icmp_seq=1 ttl=53 time=27.2 ms
64 bytes from 193.50.159.151: icmp_seq=2 ttl=53 time=29.4 ms
64 bytes from 193.50.159.151: icmp_seq=3 ttl=53 time=28.8 ms
64 bytes from 193.50.159.151: icmp_seq=4 ttl=53 time=28.4 ms
^C
--- 193.50.159.151 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 27.293/28.505/29.422/0.782 ms
“The Domain Name System (DNS) is a hierarchical distributed naming system for computers, services, or any resource connected to the Internet”
source: Wikipedia.org - DNS
“Le système de nom de domaine (DNS) est un système de nommage hiérarchique et distribué pour des ordinateurs, services ou n'importe quelle ressource connectée à l'Internet”
source : Wikipedia.org - DNS
La commande host permet de demander au DNS une adresse IP pour un nom de machine
$ host www.u-pem.fr
www.u-pem.fr is an alias for typo3-prod.u-pem.fr.
typo3-prod.u-pem.fr has address 193.50.159.151.
$ host playboy.com
playboy.com has address 204.74.99.100
playboy.com mail is handled by 10 mx.la.playboy.com.
playboy.com mail is handled by 5 mx01.la.playboy.com.
En utilisant un des DNS de Google 8.8.8.8
$ host www.u-pem.fr 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:
www.u-pem.fr is an alias for typo3-prod.u-pem.fr.
typo3-prod.u-pem.fr has address 193.50.159.151
Matériel connecté à plusieurs machines qui sépare différents réseaux IP
Pour atteindre une machine distante, les données sont acheminées (routées) de proche en proche
La commande traceroute permet de savoir
comment sont routées les données
$ traceroute 93.184.220.20
traceroute to 93.184.220.20 (93.184.220.20), 30 hops max, 60 byte packets
1 router.belkin (192.168.2.1) * 8.856 ms 8.941 ms
2 88.167.50.254 (88.167.50.254) 35.054 ms 35.510 ms 37.737 ms
3 stmaurice-6k-1-a5.routers.proxad.net (213.228.14.254) 40.146 ms 41.482 ms 42.518 ms
4 bzn-crs16-2-be1008.intf.routers.proxad.net (194.149.160.125) 48.989 ms 46.015 ms 49.999 ms
5 th2-9k-3-be1000.intf.routers.proxad.net (194.149.163.90) 51.011 ms 55.204 ms 54.792 ms
6 be4204.ccr21.par04.atlas.cogentco.com (149.11.115.13) 57.950 ms 48.369 ms 51.117 ms
7 ntt.par04.atlas.cogentco.com (130.117.14.166) 26.249 ms 27.425 ms 27.546 ms
8 xe-0-2-0-32.r04.parsfr01.fr.ce.gin.ntt.net (81.25.197.190) 27.131 ms
xe-0-2-0-34.r04.parsfr01.fr.ce.gin.ntt.net (81.25.197.238) 26.901 ms 27.719 ms
9 93.184.220.20 (93.184.220.20) 26.546 ms 26.683 ms 25.159 ms
On voit que les données ont pris deux chemins à l'étape 8
Transmission Control Protocol (TCP) fait croire à des machines qu'elles sont connectées directement l'une à l'autre
“The World Wide Web (WWW) is an open source information space where documents and other web resources are identified by URLs, interlinked by hypertext links, and can be accessed via the Internet”
source: Wikipedia.org - World Wide Web
“La toile mondiale (WWW) est un espace d'information à code source ouvert où les documents et autres ressources de la toile sont identifiés par des URLs, interconnectés par des liens hypertextes et auxquels on peut accéder par l'Internet”
source : Wikipedia.org - World Wide Web
Uniform Resource Locator
permet d'identifier une ressource sur le Web
C'est le truc que l'on écrit dans la barre de navigation du browser
Identifie à la fois des documents (au format HTML) ou des images, vidéos, etc. sur le Web
HyperText Transfer Protocol : protocole d'échange de documents et d'images au-dessus du protocole TCP
permet d'envoyer une requête HTTP :)
$ nc monge.univ-mlv.fr 80
GET / HTTP/1.0
HTTP/1.1 302 Found
Date: Mon, 21 Dec 2015 17:15:35 GMT
Server: Apache
Location: http://igm.u-pem.fr/
Content-Length: 269
Connection: close
Content-Type: text/html; charset=iso-8859-1
...
La première ligne est un code de réponse
HTTP/1.1 200 OK
puis d'informations supplémentaires
de la forme clé: valeurs
Content-Length: 269
Content-Type: text/html; charset=iso-8859-1
et enfin, séparé par ligne vide, le contenu
200 OK
301 Moved Permanently
401 Unauthorized
404 Not Found
Content-Length définit la taille du contenu, ou -1
Content-Type définit le type du contenu, texte, image, etc
au format MIME.
Content-Length: 269
Content-Type: text/html; charset=iso-8859-1
Fichier HTML de 269 octets encodé en iso-latin1
Multipurpose Internet Mail Extensions (MIME) définit l'encodage du Content-Type.
text/plain; charset=utf-8 | texte simple (encodage UTF8) |
text/html; charset=utf-8 | texte au format HTML |
image/jpeg | image JPEG |
video/mp4 | video au format MPEG4 |
application/msword | contenu lisible par Microsoft Word |
On doit de plus spécifier un Host car un serveur
peut héberger plusieurs sites
$ nc forax.github.io 80
GET / HTTP/1.0
HTTP/1.1 404 Not Found
Server: GitHub.com
...
$ $ nc forax.github.io 80
GET / HTTP/1.1
Host: forax.github.io
HTTP/1.1 200 OK
Server: GitHub.com
...
$ nc imgs.xkcd.com 80
GET /comics/google_announcement.png HTTP/1.1
Host: imgs.xkcd.com
HTTP/1.1 200 OK
Cache-Control: public, max-age=300
Expires: Sun, 24 Jan 2016 10:51:04 GMT
Content-Type: image/png
ETag: "3722984847"
Last-Modified: Mon, 28 Apr 2014 04:40:03 GMT
Server: lighttpd/1.4.28
Content-Length: 19172
Accept-Ranges: bytes
Date: Sun, 24 Jan 2016 13:58:11 GMT
Via: 1.1 varnish
Age: 16
Connection: close
X-Served-By: cache-lcy1135-LCY
X-Cache: HIT
X-Cache-Hits: 6
X-Timer: S1453643891.248729,VS0,VE0
Fichier PNG de 19172 octets
wget permet de télécharger une ressource
à partir d'une URL
$ wget http://igm.u-pem.fr/index.html
--2015-12-22 00:54:29-- http://igm.u-pem.fr/index.html
Resolving igm.u-pem.fr (igm.u-pem.fr)... 193.50.159.151
Connecting to igm.u-pem.fr (igm.u-pem.fr)|193.50.159.151|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’
Une page nécessite plusieurs requêtes HTTP
Avec la première page du Monde (www.lemonde.fr)
Tunnel de sécurité autour de HTTP
Utilise le principe du chiffrement asymétrique
entre le client et le serveur
La clé public est cherchée auprès de serveurs (dit serveurs de certificats) qui ont leurs clés publiques stockées dans le code du client
Pour des questions de performance, le chiffrement asymétrique n'est utilisé que pour échanger une clef symétrique entre le client et le serveur, le reste des échanges se fait en utilisant cette clef symétrique