La fiche mémo est ici.
Ce qu'on appelle Internet est en fait l'interconnexion entre eux d'une multitude de réseaux plus ou moins grands, qui "parlent" tous la même langue, c'est à dire qui s'échangent des informations en suivant le même protocole, c'est à dire le même ensemble de règles de communication de façon à se comprendre.
De très nombreux protocoles de communication réseau ont été développés et utilisés, celui utilisé sur internet est le protocole TCP/IP.
( Remarque : on appelle intranet le réseau informatique de certaines entreprises, qui utilise le protocole TCP/IP mais qui n'est pas directement relié à internet. )
Dans ces réseaux, des machines peuvent être accessibles directement les unes aux autres, par exemple quand elles font partie du réseau d'une même entreprise. Dans d'autres cas, elles ne sont pas accessibles directement entre elles, pour diverses raisons notamment de sécurité.
Dans le premier cas, on dit que les machines sont sur le même sous-réseau. Internet est ainsi "cloisonné" en une multitude de sous-réseaux plus ou moins gros :
Une machine donnée ne possède en général qu'une seule interface réseau, elle ne peut dont être relié physiquement qu'à une seule autre machine.
Pour constituer des réseaux plus gros, on utilise alors différents équipements.
Voila un exemple très simple d'un réseau de 6 machines divisé en 2 sous-réseaux; les deux sous-réseau sont indépendants :
De la même façon que vous pouvez recevoir du courrier grâce à votre adresse postale, une machine peut échanger au sein du réseau à partir du moment où elle dispose d'une adresse qui permet de l'identifier sans ambiguité.
L'adressage est le maillon essentiel des protocoles TCP/IP pour rendre transparents les détails physiques des réseaux et faire apparaître l'Internet comme une entité uniforme.
Les adresses sur les réseaux sont numériques; deux familles d'adresses existent :
Tout matériel réseau ( carte réseau, wifi, ...) dispose d'une adresse MAC unique au niveau mondial, attribuée "en dur" dès la fabrication par le constructeur du dispositf.
L'adresse MAC ne change donc jamais et permet d’identifier chacun des périphériques réseau, notamment sur un réseau local.
Elle se présente sous une forme numérique de 6 nombres représentés en hexadécimal et correspondant chacun à un octet : XX:XX:XX:XX:XX:XX
.
Les 3 premiers nombres permettent d’identifier le fabricant de l’appareil; par exemple, 00:E0:4C:XX:XX:XX
désigne le constructeur "Realtek Semiconductor Corp".
Elle permet elle d’identifier une connexion à un réseau. On communique en s'adressant à une adresse IP donnée, pas directement une adresse MAC; toutefois, elle peut est amenée à changer : si vous utilisez le même appareil pour vous connecter à internet depuis un autre endroit, votre adresse IP ne sera plus la même car l’adresse IP dépend du réseau utilisé.
Un protocole particulier, le protocole ARP ( = Address Resolution Protocol ), permet alors de déterminer l'adresse MAC de la machine connectée à ce moment avec cette adresse IP. Pour faire correspondre les adresses matérielles aux adresses réseaux, le protocole ARP interroge les machines du réseau afin de connaître leur adresse matérielle et d’en créer une table de correspondance, dans une mémoire cache. Ainsi, lorsqu’une machine doit communiquer avec une autre, elle n’a qu’à consulter cette table de correspondance.
C'est pourquoi, plutôt que de "machines", on préfère parler d'hôtes sur un réseau, au sens où la machine concernée est alors "invitée" sur cette IP...
Deux catégories d'adresse IP existent :
172.174.96.2
.fe80::7961:9173:9e5f:1d8c
Certains réseaux ( que l'on appelle LAN = Local Area Network ) ne sont pas directement reliés à internet, comme par exemple les machines composant l'intranet d'une société,
d'un lycée ( c'est le cas à Vaugelas ! ) ou celles d'un réseau domestique.
Ces machines ne sont pas "visibles" depuis l'extérieur et ne peuvent pas non plus directement y "aller sur Internet"; comment font-elles alors pour y accéder ?
Il faut pour cela qu'une machine du réseau appelée serveur NAT ( c'est chez soi la "box" qui généralement fait ce travail ), qui dispose de deux cartes réseau, fasse "le lien" vers ou depuis l'extérieur du réseau.
Chacune des cartes réseau de cette machine dispose de sa propre IP :
Le rôle du serveur NAT est alors de "traduire" l'IP privée de l'hôte en l'IP publique lorsqu'une machine du réseau local cherche à accéder à internet.
Ce mécanisme permet d'utiliser des adresses IP identiques à différents "endroits" du réseau Internet sans risquer que deux machines aient la même IP puisque les IP privées sont "invisibles" depuis l'extérieur et donc des autres réseaux locaux...C'est aussi une façon, avant l'adoption généralisée des adresses IPv6, "d'économiser" les adresses IPv4 !
Des plages d'adresse IP sont réservées aux IP privées, ces plages d'adresse sont "interdites" sur internet, et les équipements qui en gèrent le trafic les ignorent :
10.0.0.0/8
pour les très grands réseaux172.16.0.0/12
pour les réseaux moyens, comme ceux des établissement scolaires par exemple192.168.0.0/16
pour les réseaux domestiques, comme chez vous sans douteAvec la généralisation des adresses IPv6, le besoin de mécanismes comme le NAT devrait disparaître.
L'administrateur d'un réseau peut attribuer à une machine une IP fixe lorsque cette machine est destinée à être connectée en permanence et redémarrée très rarement, comme un serveur par exemple.
A l'inverse, pour la majorité des machines, une IP "temporaire" suffit puisque l'on n'a pas besoin en général d'être connecté en permanence; cela permet de gérer au mieux les adresses IP et d'éviter les connexions consommant inutilement des ressources réseau. Dans ce cas, l'adresse IP de la machine changera d'une session à l'autre, elle sera dynamique.
Le mécanisme qui permet d'allouer une IP dynamique à la machine d'un réseau s'appelle le protocole DHCP ( = Dynamic Host Configuration Protocol ) : il nécessite qu'une machine sur le réseau dispose d'un logiciel appelé serveur DHCP permettant d'attribuer une IP dynamique aux autres machines du réseau. Chez vous, c'est votre box internet qui joue ce rôle.
Effectivement, retenir 217.70.184.5
plutôt que "www.qwant.fr", ce n'est pas très pratique...
Aux débuts d'internet, pour accéder à un site, il fallait entrer l'IP du serveur sur lequel ce site était hébergé ( c'est toujours valable : vous pouvez entrer une IP dans la barre d'adresse d'un navigateur, vous verrez, ça marche ! )
Mais avec la multiplication très rapide des sites en ligne, cela est vite devenu très compliqué, au même titre qu'il nous serait impossible de retenir les numéros de téléphone de tous nos contacts; on a donc mis en place un protocole qui permet d'associer un nom à l'IP du serveur qui héberge un site : le protocole DNS ( = Domain Name Service ). C'est en gros un "annuaire" d'internet.
Ce nom, plus simple à retenir, est appelé nom de domaine. Résoudre un nom de domaine consiste à trouver l'adresse IP qui lui est associée.
Ce service nécessite là aussi qu'une machine sur le réseau joue le rôle de résolveur DNS : lorsque vous entrez une adresse dans la barre d'adresse d'un navigateur, c'est en fait ce serveur que vous interrogez, charge à lui de vous fournir ensuite l'IP associée au nom de domaine au bout d'un processus plus ou moins complexe..
C'est généralement votre fournisseur d'accès qui héberge ce service, mais il est aussi possible de choisir le serveur DNS que l'on préfère utiliser, ou en cas de "panne" du serveur habituel ( c'est rare, mais ça arrive... ).
Au niveau mondial, un ensemble de machines hébergent les 13 serveurs racines d'internet qui constituent la "clef de voûte" du système DNS.
Sous Linux, ouvrir un terminal et entrer les commandes suivantes : ( voir cette page pour l'équivalent de ces commandes sous Windows )
user@host:~$ ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever
inet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:4f:41:81 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.100/28 brd 192.168.56.255 scope global eth0
inet6 fe80::a00:27ff:fe4f:4181/64 scope link valid_lft forever preferred_lft forever
3: wlan0: mtu 1500 qdisc noqueue state UP group default
link/ether 08:00:27:5b:b3:66 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.101/30 brd 192.168.56.255 scope global wlan0
inet6 fe80::a00:27ff:fe5b:b366/64 scope link valid_lft forever preferred_lft forever
La liste de toutes les interfaces réseau s'affiche, avec de nombreuses informations.
127.0.0.1/8
, ce qui signifie que toute la plage de 127.0.0.0
à 127.255.255.255
est assignée à cette interface.Pour chaque interface :
link/ether
donne l'adresse MAC de l'interfaceinet
donne son IPv4brd
est l'adresse de diffusion ( = broadcast ) ( ici 192.168.56.255
) : elle sert à envoyer un message à toutes les machines en même temps, de façon par exemple à savoir si elles sont toujours en ligne ou alors leur demander leur adresse MAC.inet6
donne l' IPv6 de la machine.
user@host:~$ curl ifconfig.me
77.178.49.156
user@host:~$ ping www.qwant.fr
PING webredir.gandi.net (217.70.184.56) 56(84) bytes of data.
64 bytes from webredir.gandi.net (217.70.184.56): icmp_seq=1 ttl=52 time=66.5 ms
64 bytes from webredir.gandi.net (217.70.184.56): icmp_seq=2 ttl=52 time=46.2 ms
64 bytes from webredir.gandi.net (217.70.184.56): icmp_seq=3 ttl=52 time=45.6 ms
....
La commande ping
permet d'envoyer des requètes vers un nom de domaine ou une IP ( selon le protocole ICMP ) afin d'en tester l'accessibilité; la commande permet en retour de connaître l'IP associée
au nom de domaine, mais également de connaître le temps de réponse du serveur qui l'héberge. Faire CTRL-C pour arrêter l'éxécution.
La commande arp
permet de visualiser la table de correspondance IP/MAC de toutes les machines actuellement connectées au réseau local.
user@host:~$ arp -a
Server.local (192.168.1.254) at 00:24:d4:78:74:23 [ether] on eth0
PC1 (192.168.1.2) at 0b:02:b5:f8:35:7a [ether] on eth0
PC2 (192.168.1.25) at 00:24:d4:57:3a:8e [ether] on eth0
....
La commande traceroute
permet de connaître les "sauts" de machine en machine que doit faire un message pour atteindre sa destination sur un réseau; pour chaque routeur traversé, la commande affiche l'IP et le nom
de l'hôte correspondant ainsi que la durée de chaque "saut".
On peut l'éxécuter sur une IP du réseau local :
user@host:~$ traceroute 192.168.1.28
traceroute to 192.168.1.28 (192.168.1.28), 30 hops max, 60 byte packets
1 192.168.1.28 (192.168.1.28) 268.088 ms 268.027 ms 269.261 ms
Dans ce cas, il n'y a qu'un seul saut puisqu'aucun routeur ne se situe entre les machines d'un même réseau local.
Mais on peut aussi l'éxécuter sur un nom de domaine ou une IP distante, et on voit à quel point le chemin suivi peut être compliqué...
user@host:~$ traceroute www.qwant.fr
traceroute to www.qwant.fr (217.70.184.56), 30 hops max, 60 byte packets
1 Freebox-Server.local (192.168.1.254) 4.130 ms 4.071 ms 4.095 ms
2 ita73-5-97.205.44.244.fbx.proxad.net (97.205.44.244) 59.065 ms 67.350 ms 71.688 ms
3 * * *
4 194.149.170.78 (194.149.170.78) 93.657 ms 96.216 ms 101.899 ms
5 lyon-crs16-1-be1004.intf.routers.proxad.net (212.27.50.209) 115.368 ms 115.341 ms 124.029 ms
6 th2-crs16-1-be2001.intf.routers.proxad.net (212.27.59.29) 128.239 ms 47.300 ms 53.372 ms
7 194.149.166.54 (194.149.166.54) 56.978 ms 44.779 ms 49.365 ms
8 free-bzn.th2-1.rt.hopus.net (37.77.34.60) 54.284 ms 58.978 ms 64.154 ms
9 lag-th2-1.pa3-1.rt.hopus.net (37.77.32.11) 69.143 ms 73.729 ms 107.034 ms
10 gandi.pa3.hopus.net (37.77.38.5) 81.138 ms 85.110 ms 90.730 ms
11 * * *
12 vlan548-br0.lf-3-b.sd4.ip4.gandi.net (217.70.176.123) 67.710 ms 67.556 ms 67.822 ms
13 webredir.gandi.net (217.70.184.56) 66.694 ms 66.469 ms 66.661 ms