Discussion:Réseaux informatiques : des clients et des serveurs
Suggestions de Théo Bondolfi pour orienter les contenus de cet article
Angle simple : dans votre entreprise, vous mettez les documents sur le serveur interne. Quand vous faites une recherche sur le web, vous faites appel à des bases de données qui sont installées sur des serveurs. Quand vous allez dans un magasin pour acheter un ordinateur, ce que vous allez acheter comme ordinateur portable pour utiliser à la maison ou au travail, c'est un ordinateur de type poste client. Quelle est la différence entre serveur et client ? Voilà les explications.
Structure de l'article : partie 1 : Quelle est la différence entre clients et serveurs (histoire dictée y a 5 min) ? partie 2 : L'état de la situation aujourd'hui: étonamment + de serveurs sous logiciels libres, mais c'est pour des raisons techniques, c'est parce que ça marche mieux, ce qui prouve juste que l'intelligence collective à l’œuvre tend vers le libre car il fournit un modèle plus efficace, c'est d'ailleurs ce qu'on appelle le mouvement OpenSource, qui n'a pas de positionnement politique partie 3 : Passer de l'OpenSource au libre parce qu'il faut avoir une position politique, et ne pas se limiter à le faire sur des serveurs puisqu'on n'en a pas le contrôle si on est simple lecteur, mais de passer sous licence libre pour favoriser l'équité des chances.
Encart sur Apache Sous l'angle : comment ont-ils fait ce choix ? La majorité des serveurs sur le web tourne sur Debian, donc même si on a l'impression que Microsoft est partout, c'est pas vrai. Message positif : les informaticiens, non pas pour des raisons politiques, mais juste parce qu'ils ont testé et ils ont trouvé qu'il y avait une communauté plus dynamique, etc. ont opté pour Apache et Debian comme distribution, et donc les serveurs sont plutôt basés sur des logiciels libres.
Parler des Install Party
Raph:
- parler de la notion : n'importe quel serveur peut servir de client ou de serveur
- trouver les sources (notamment encart),
- parler de la question de l'erreur (remettre en forme) : « Le serveur a moins le droit à l'erreur que le poste client, puisque celui-ci ne servira qu'un seul client, alors que le serveur doit être invariablement exemplaire et irréprochable. C'est pour ça qu'il faut des logiciels qui soient en parfait état de marche, or c'est les logiciels libres qui ont le mieux répondu à cette attente, parce qu'ils font appel à l'intelligence collective, c'est-à-dire au fait que des milliers de contributeurs peuvent voir les failles. On évalue la qualité des logiciels libres en fonction de la vitalité du groupe des contributeurs. »
- chercher s'il ne s'agit que Apache ou d'autres? Seulement sur GNU/Linux ou d'autres?
Conférence de Benjamin Bayart
Lors de la première conférence du cycle "Qu'est-ce qu'Internet", Benjamin Bayart aborde le sujet des réseaux, serveurs et clients.
Donc la première spécificité d'internet en tant que réseau, c'est qu'il est basé sur de la commutation de paquet et non sur de la commutation de circuit... y en a combien qu'ont compris dans la salle? Ouais, on reconnaît bien le troupeau d'informaticiens... donc je vais commencer par expliquer ce que c'est la commutation de circuit, pour pouvoir à l'opposé expliquer ce que c'est la commutation de paquets. À partir de là je parlerai un tout petit peu de routage, ensuite on verra ce que c'est qu'une application, ce que c'est qu'une adresse, ce que c'est qu'un port, ensuite on verra ce que c'est une traduction d'adresse, normalement quand on aura fini la traduction d'adresse vous serez à peu près capables de comprendre ce qui se passe quand vous consultez un site web depuis chez vous. Et puis j'essaierai en conclusion de synthétiser l'ensemble de manière à ce que vous repartiez avec les 5% à retenir, en espérant que vous ayez compris les trois quarts du reste aussi. Voilà. J'ai pas appliqué mes règles de trois habituelles, je pense que j'en ai à peu près pour une heure.
1.3 La commutation de paquets
1.3.1 La commutation des circuits
Commutation de paquets
Bien, alors on va commencer par les choses intéressantes: la commutation de paquets.
Dia 3
Principe
La commutation de circuits:
- Création d'un circuit;
- Pré-réservation de ressource;
- Connaissance de la topologie.
Pour expliquer la commutation de paquets faut commencer par expliquer la commutation de circuit, la commutation de circuit c'est la façon dont fonctionnaient tous les réseaux jusque dans les années 70, en particulier c'est comme ça que fonctionne le réseau téléphonique. Le principe c'est que pour relier deux points sur le réseau on va créer un circuit continu allant du point A au point B. exactement ce que vous constatez sur un réseau électrique chez vous: quand vous allumez une ampoule, quand vous allumez une lampe, en bougeant un interrupteur, vous créez un circuit qui relie l'ampoule au réseau électrique et qui fait qu'il y a de la lumière, quand vous basculez l'interrupteur dans l'autre sens, vous coupez le circuit, ça supprime la lumière. Donc ça c'est à peu près ce qu'avait compris Graham Bell quand il s'est intéressé au téléphone; on crée des circuits. Ça suppose en fait de pré-réserver le circuit, après le moment en fait où vous avez composé le numéro et avant que ça sonne, les bidibidibidibidip que vous entendez, c'est le réseau qui est en train de chercher à pré-réserver le circuit... une fois que ça sonne à l'autre bout, le circuit est construit. Et pour faire ça, le réseau a besoin de connaître complètement la topologie du réseau, c'est à dire de savoir entièrement de quoi il est constitué pour savoir par où passent les appels. Alors pour ceux d'entre vous qui comme moi ont plutôt une mémoire visuelle, voilà ce que ça donne visuellement (Dia 4: exemple (schéma)). C'est un réseau. Chaque carré correspond à un nœud d'interconnexion, chaque trait correspond à, basiquement, une ligne possible dans le circuit... Alain, Bernard, Chantale, David, Edouard, Françoise, six personnes reliées au réseau. Quand on établit une connexion, quand on fait échanger Alain et Bernard, on réserve tout un circuit sur l'intégralité du réseau. Même pendant les périodes où l'on ne dit rien au téléphone, le circuit est réservé. Voilà une deuxième communication, jusque là tout va bien. Pourquoi est-ce qu'on a besoin de connaître la topologie complète du réseau, simplement parce que pour créer la troisième communication, entre Edouard et Françoise, y a un problème parce que le chemin passe par un point de congestion. C'est à dire que là le réseau quand il a calculé le circuit qu'il aurait voulu établir, il aimerait bien passer par le tronçon où y a deux lignes rouge et bleu, sauf que ce tronçon là, il est saturé. Et donc pour pouvoir trouver la voie de contournement et réserver le chemin complet, il y a besoin d'avoir une connaissance complète du réseau, pour simplement savoir créer ce détour. Ça c'est le principe d'une commutation par circuit.
1.3.2 La commutation de paquet
Dia 5
Principe
La commutation de paquet
- Transport de paquets de données
- Décision locale non planifiée
- Risque de perte
- Non-prédictible
La commutation par paquets se fait de manière très différente: chacun envoie des paquets d'information, donc pas un flux continu, mais un paquet d'information, si je garde le rapport avec le téléphone, avoir un paquet de données c'est quelques mini-secondes d'une discussion. Chaque nœud du réseau va décider de ce qu'il fait du paquet, en raison de la connaissance qu'il a de son voisinage, et non pas de la totalité du réseau. Et il va prendre sa décision, non pas pour toute une discussion, mais paquet par paquet. C'est à dire que dans le cas de congestion qu'on avait au-dessus, on va pas avoir une distribution très très claire de deux conversations rouge et bleu qui passent sur le tronçon principal et d'une conversation verte qui est déviée, on va avoir en fait les trois parfaitement mélangées sur le tronçon principal et le tronçon accessoire. Ce qui est quelque chose de techniquement très différent. Alors voilà une représentation schématique du même réseau sur lequel on ferait de la commutation de paquet, et ça ressemble à quelque chose comme ça (Dia 6: exemple (schéma)): l'émission d'un paquet qui est transporté, l'émission d'un deuxième, qui est transporté, ... La grande différence, c'est que mon interlocuteur A, qui tout à l'heure ne parlait que à B, là a été capable en parfait mélange, d'envoyer certaines données à destination de B, d'autres données à destination de F. Ça c'est l'aspect très novateur des réseaux à commutation de paquet à la fin des années 70. Le même terminal, qui est en fait votre ordinateur chez vous, peut discuter avec plusieurs serveurs en même temps, en parallèle, sans que ça se mélange. Ce qui n'était pas possible sur les réseaux précédents. Y en a à peu près aucun de la même génération, les gens qui ont connu le service minitel savent qu'on peut consulter un service minitel, puis un autre, mais pas deux en même temps, alors que vous savez tous couramment être sur deux sites web en même temps. Bien. Donc ça c'est le premier morceau important à comprendre: sur internet on raisonne paquet par paquet, jamais par circuit.
1.4 Bases de routage
Bases de routage
Maintenant qu'on a compris qu'on transportait des paquets, on va essayer de comprendre comment chacun de ces paquets se transmet. (THEO : rajouter le descriptif du <jeu des paquets> dans un groupe de 8 à 30 personnes comme Jango Edwards) En particulier, je veux que ce soit très clair pour vous, quand on télécharge un fichier, à moins que le fichier soit ridiculement petit, il n'existe pas une connexion continue entre le serveur qui envoie le fichier, et votre client qui le reçoit. Le serveur envoie des tout petits bouts de fichiers qui se perdent dans le réseau et reviennent à l'autre bout, comme fort heureusement les bouts ont été numérotés, en les remettant dans le bon ordre, on ré-obtient le fichier. Et je veux bien que vous soyez conscients de ça.
1.4.1 Le routage statique
Dia 7
Routage statique
- Une destination
- Une passerelle
- Défaut
Bien. Le routage le plus simple à comprendre, c'est le routage statique, c'est à dire qu'on dit à une machine: « pour telle destination, tu enverras à tel intermédiaire », et le cas le plus simple étant quand on a une route par défaut, ce qui est le cas chez vous, où je suppose que la majorité d'entre vous n'a qu'un seul fournisseur d'accès, en fait votre machine sait que la sortie c'est par là. Et ça suffit comme routage. Mais c'est exactement comme du routage routier: quand vous sortez de votre garage, basiquement y a qu'une seule allée pour sortir, ça se complique sitôt que vous êtes au portail, faut choisir si faut aller à droite ou à gauche. Mais juste sortir de chez vous en général c'est une route par défaut.
Formulation: 192.168.0.0/24 via 1.2.3.4
Voilà comment ça se formule une route. Moyennement lisible... ça dit: pour joindre telle plage d'adresse IP, faire suivre à telle personne.
En Français: de 192.168.0.0 à 192.168.0.255 via 1.2.3.4
Si on traduit en sensiblement plus français, pour toutes les adresses qui sont comprises entre machin et truc, il faut faire passer par ça.
Pourquoi je vous emmerde avec cette représentation numérique? En fait parce que ce qui est intéressant derrière, c'est la vision qu'en a votre ordinateur.
En binaire: de 3232235520 à 3232235775 via 16909056
Alors en général on l'écrit dans la formulation au-dessus pour les êtres humains normaux, et puis pour les ordinateurs on l'écrit comme c'est en-dessous. Pourquoi c'est intéressant de savoir que ça (formulation)ça n'est qu'une représentation simplifiée d'un entier? Parce qu'une décision de routage ça se fait avec des opérations aussi bêtes que plus petit que et plus grand que. Donc mathématiquement ça met en jeu des notions extrêmement puissantes, en générale enseignées vers le CE1. Si l'adresse de la destination est plus grande que ça (3232235520) et plus petite que ça (3232235775), alors il faut faire suivre à lui (16909056). On est bien d'accord, les ordinateurs ne manipulent que des chiffres, donc un interlocuteur c'est un numéro. Une route c'est donc quelque chose d'assez simple. Pour les adresse de tant à tant c'est par là, pour les adresses de tant à tant c'est par là. C'est même un protocole de routage que vous avez l'habitude d'appliquer. Ben oui: vous sortez d'une station de métro sur les boulevards parisiens, vous regarderez, à pas mal d'endroits, sur les plaques signalétiques des rues, y a écrit le nom de la rue, et y a écrit numéro tant à tant par là, numéro tant à tant par là. C'est bien exactement la même chose que vous faites.
Dia 8
Vocabulaire
192.168.0.12: adresse, destination, source
Un petit peu de vocabulaire! Alors ça, juste tout seul, selon le point de vue qu'on en a c'est une adresse sur le réseau internet, qui peut être soit la destination soit la source d'un paquet, soit un des intermédiaires de transport. 192.168.0.0/24: route, préfixe Et ça, techniquement c'est un préfixe, souvent on appelle ça une route, en fait c'est pas tout à fait vrai, c'est vraiment un préfixe, ça désigne une plage d'adresses.
1.2.3.4: passerelle
Ça, dans l'exemple que j'avais tout à l'heure, c'est la passerelle, c'est-à-dire c'est la personne à laquelle on va transmettre les données pour qu'elle les transmette en notre nom, ce qui dans le mécanisme postal serait l'adresse du bureau de poste d'à côté. BiduleBox: 1 passerelle, 2 adresses, 3 routes Une BiduleBox, par exemple comme vous avez chez vous, c'est un routeur, ce n'est qu'un routeur (c'est un des carrés de mon dessin de tout à l'heure), qui a une passerelle, qui est celle du FAI, qui a deux adresses, en général, et qui a trois routes. GroRouteur: 150 passerelles, 300.000 préfixes Un GroRouteur, c'est un vrai routeur, un des carrés du milieu quoi, pas celui qu'est chez vous, bon ça a facilement 150 passerelles et ça a à peu près 300.000 routes ou 300.000 préfixes, ça a des routes sur 300.000 préfixes.
Dia 9
BiduleBox
- 192.168.0.0/24 direct, patte 2
- 80.67.161.140 direct, patte 1
- 0.0.0.0/0 via 80.67.161.140
- Patte 1, je suis 192.168.0.1
- Patte 2, je suis 80.67.176.93
Comment ça se matérialise? Comme ça. Y a le réseau qui est chez vous, les trois machines à droite étant ce que vous voulez qui y a chez vous de relié à internet – le PC de bureau, le portable, l'iPhone, l'imprimante, la machine à laver, ce que vous voulez, on s'en fout, c'est le machin qu'est relié chez vous – la BiduleBox, le routeur du FAI, et sur le côté gauche, le vaste internet – vous savez là où y a tous les nazis, les pédophiles... c'est celui-là l'internet. Des fois il est de l'autre côté aussi mais... chez moins de monde! Bien. Cette machine-là, la Box, c'est celle qui m'intéresse, simplement parce que c'est le routeur, moi ce que je veux c'est simplement vous expliquer comment se route tout ce fatras. Cette boîte elle a une première route qui lui dit: « Si tu as un paquet qui est à destination de 192.168.0.0/24, tu y est connectée de manière directe, c'est sur ta patte numéro2 (celle qu'est à droite). » Ensuite elle a une deuxième route qui lui dit: « Y a un interlocuteur et un seul que tu sais joindre, parce qu'il est au bout de ta patte numéro 1 (c'est le routeur du FAI) ». Et puis enfin y a une route qui lui dit: « Pour toutes les adresses de 0 à 4 milliards, t'enverras à pépère à gauche là. » D'accord? C'est ce qu'on appelle une route par défaut. Ça veut dire que dans ce mécano-là, la boîte est capable, voyant un paquet sans savoir d'où il vient, juste en regardant où il va, de décider s'il faut l'envoyer sur la patte de droite ou sur la patte de gauche. En général c'est assez simple, hein, ce qui arrive sur la patte de droite va plutôt aller à gauche, ce qui arrive sur la patte de gauche devrait plutôt aller à droite. C'est pas complètement systématique, mais c'est presque ça.
1.4.2 Le routage dynamique
Dia 10
Routage dynamique
Bien, ça c'est du routage statique. C'est-à-dire qu'en fait chaque nœud du réseau connaît les adresses précises de ses voisins et par quel voisin il faut passer pour joindre quel autre bout du réseau. Maintenant sur ce mécanisme, pour vous donner une petite idée, c'est comme si en se promenant dans la rue, à chaque coin de rue, il y avait un panneau dans chacune des directions vous listant la totalité des destinations possibles. Pas juste les grands choix: Marseille par là, Paris par là. Non, non: ville par ville, rue par rue, toutes les adresses sur un panneau. On sent bien qu'à chaque fois que quelqu'un va donner un coup de tracto-pelle dans une rue quelque part, il va falloir mettre à jour un nombre de panneau considérable. C'est ce qu'on appelle le routage dynamique.
Nommer le réseau: AS
Pour ça, le premier morceau dont on a besoin, c'est de nommer les réseaux. Le nom d'un réseau, c'est ce qu'on appelle son AS (Autonomus System), c'est le numéro de l'opérateur, on reste dans l'informatique donc ils ont tout numéroté. Je sais joindre a.b.c.d/n en 3 sauts via AS1, AS2, AS3 Une route, le calcul de routage dynamique se fait simplement parce que deux routeurs discutent, et ils se racontent des histoires qui ressemblent à « Je sais joindre tel préfixe en trois sauts, via tel AS, tel AS, tel AS. » Et les routeurs passent leur vie à se raconter ça, et à se dire l'un l'autre « J'ai une nouvelle route pour joindre machin, c'est un poil plus court, faudrait passer par là .» « J'ai une nouvelle route, moins bonne parce que y a un truc qu'a sauté donc maintenant faut passer par là et c'est plus long. », etc. Et donc ils passent leur vie à se raconter ça, et à l'apprendre. C'est-à-dire que un routeur qui est connecté à cinq autres apprend les 300.000 routes de la part des cinq routeurs, et puis pour chacune de ces 300.000 routes va comparer les cinq exemplaires et choisir celui qu'il juge le meilleur. Soit parce que c'est plus court, soit parce que là-bas l'herbe est plus verte, y a mille raisons possibles.
(Dia 11: Échange, schéma)
Alors si je garde une symbolique qui va revenir dans plusieurs transparents, on va supposer que les bidules ronds, parfois à forme ovale sur certains dessins, sont des réseaux. Donc ça correspond à un AS, c'est-à-dire que typiquement vous allez avoir Free, Orange, Neuf, FDN, Google, etc. Des réseaux. Qui sont interconnectés entre eux et donc il y a au bord de ces réseaux un certain nombre de routeurs qui sont connectés avec le réseau d'à côté et sur lesquels on se raconte « Et bien moi je sais rejoindre Google en quatre sauts via Orange, alors que lui il sait joindre Google en sept sauts via Free », etc. Voilà à quoi ressemble le plat de nouilles si nos neuf opérateurs se retrouvent présents dans la même salle. Y a un nombre d'interconnexions qui est assez hallucinant. Pour vous donner un ordre de grandeur, dans une salle-machine d'usage international, comme y en a deux ou trois à Paris, on a couramment une centaine d'opérateurs. Je vous laisse imaginer la taille du merdier, sachant que sur internet, pour vous fixer toujours des ordres de grandeur, y a à peu près 40.000 opérateurs. Donc voilà à quoi ressemble ce qu'on peut faire de pire dans un système d'échange avec seulement neuf opérateurs présents, c'est-à-dire dans une petite salle-machine de province.
(Dia 12: Point d'échange, schéma)
Ça c'est beaucoup plus simple à établir, ça porte un nom, c'est un nœud d'échange. Donc quand vous entendrez parler sur internet de nœud d'échange, de GIX (Global Internet Xchange), de point de peering, c'est bêtement ça. C'est-à-dire que quand on est plus de deux opérateurs dans la même salle, plutôt que de tirer des liens dans tous les sens et de faire des plats de nouilles avec des tas de réseaux, on met un switch au milieu, et tout le monde se branche sur le même switch. Ça permet mine de rien de se raconter un très grand nombre de routes avec un très petit nombre de câbles.
1.4.3 Vocabulaire
Dia 13
Éléments de vocabulaire:
- interconnexion
- routes annoncées
- peering
- transit
- symétrie du trafic
- volume
Maintenant qu'on a ces quelques bases on va pouvoir essayer de se poser un petit peu de vocabulaire. Et pour le coup, ça ce sont des mots, si vous essayez de suivre par exemple les vidéos du colloque qui y avait hier sur la neutralité des réseaux, qu'est un des enjeux politiques majeurs, vous risquez de croiser ce genre de mots-là, qui ont été lâchés en supposant que tout le monde savait, et qui sont pas forcément clairs.
Ce qu'on appelle une interconnexion c'est simplement un lien entre deux opérateurs. Chacun des opérateurs gère son propre réseau, c'est-à-dire son petit bout d'adressage internet, comme il a envie, avec des routes statiques ou avec des routes dynamiques, il gère son petit bout de réseau, avec ses petits bouts de routeur, comme il veut. Deux opérateurs sont interconnectés quand ils ont établi un lien entre eux et que sur ce lien ils s'échangent des routes, ils se disent « Moi je sais aller là », « Moi je sais aller ailleurs », « Je sais y aller par telle route, qui coûte tant », etc. Y a donc une des notions-clés quand on veut comprendre le routage d'internet qui est de comprendre que chacun annonce des routes, et que chacun apprend des routes. En particulier, un AS, un réseau... on sent bien que pour que le merdier marche il faut un point de départ. Parce que j'interconnecte deux routeurs, chacun connaît 300.000 routes, et puis ils vont se les échanger, et puis décider de faire un partage, en fait. C'est-à-dire que le routeur de droite va décider que, sur tout le trafic qu'il envoyait précédemment ailleurs, maintenant y a telle partie qu'il va plutôt envoyer à son voisin de gauche parce qu'il a de meilleures routes. On sent bien que ça marche une fois que le système est établi. On sent bien aussi que ça démarre pas: alors je prend deux routeurs, je les sors du carton, je les branche et je les allume... et ils les ont trouvé où les 300.000 routes? Il manque l'étincelle initiale. En fait, chaque routeur commence par annoncer, quand il se lève le matin, il se réveille, on vient de l'allumer, il sait rien, il sait au moins une chose: il sait qui il est et où il est. Et donc il annonce à tous ses voisins: « Moi je suis l'AS numéro tant, et je sais joindre en 0 sauts, puisque c'est chez moi, telle plage d'adresses, telle plage d'adresses, telle plage d'adresses ». Et donc immédiatement, tous ses voisins savent « Tiens, ces trois nouveaux préfixes, qui n'existaient pas avant, maintenant se joignent en passant par telle case ». Et tout ça se réplique, et se répète, et se ré-annonce par l'ensemble des voisins.
Ce qu'on appelle du peering, c'est quand deux opérateurs sont interconnectés, et ne s'annoncent que leur route locale. C'est-à-dire: Free est connecté à Orange, Free annonce à Orange « Toutes les routes pour me joindre, moi, toutes ces routes-là sont moi. Ces ensembles d'adresses-là forment la totalité de mon réseau, tu peux me les renvoyer ». Et Orange annonce à Free « Ces adresses-là sont moi, tu peux me les envoyer. » Et ils ne s'échangent que ces routes-là. En règle générale le trafic qu'on s'échange en peering est gratuit. C'est-à-dire qu'en fait les deux opérateurs se trouvant voisins géographiquement, ils ont tout intérêt à tirer un câble une bonne fois pour toutes entre eux deux et à faire passer par ce câble-là tout le trafic. C'est ce qu'on appelle du transit. C'est assez facile, ça vient du sens du mot transit en fait. C'est quand deux opérateurs s'annoncent des routes qui ne sont pas les leurs. C'est-à-dire quand j'annonce à mon voisin « Non seulement ces routes-là c'est chez moi, mais en plus je te donne tout ce que j'ai moi comme route pour joindre le reste d'internet, tu jugeras de celles que tu préfères et donc du trafic que tu voudras m'envoyer. Ce trafic n'est pas à destination de mon réseau. Il est à destination de plus loin. Et donc ce trafic, que tu m'enverras et qui n'est pas à destination de mon réseau, va transiter sur mon réseau pour arriver à la sortie. Typiquement entre votre ordinateur et l'ordinateur de quelqu'un qui habite aux Etats-Unis, y a probablement trois ou quatre opérateurs intermédiaires. Ces trois ou quatre opérateurs intermédiaires font bien du transit. Le paquet qui circule n'est pas à destination de chez eux, ils le transportent pour qu'on les détienne. Ça, bien entendu c'est systématiquement facturé.
Ensuite il faut comprendre qu'il y a un élément clé pour les opérateurs, ces temps-ci ils ont en train de changer d'avis sur la signification qu'il a, il s'agit de la symétrie du trafic. On sent bien quand on crée un lien entre deux réseaux, la quantité de données envoyée dans chaque sens n'est pas symétrique. Typiquement si vous créez une interconnexion entre un fournisseur d'accès, admettons Orange et un fournisseur de contenu, mettons YouTube, le trafic va quand même essentiellement aller de YouTube vers Orange. Et marginalement dans l'autre sens. Ce point-là est techniquement sans le moindre intérêt mais est un argument de poids dans les négociations commerciales. En général on considérait jusqu'à y a quelques années que quelqu'un qui émet beaucoup de données est un partenaire intéressant parce que ça fera toujours ça de moins à aller récupérer et donc on cherchait à s'y connecter. Depuis à peu près un an, les opérateurs sont en train de changer d'avis. Ils sont en train de dire que finalement, quelqu'un qui émet beaucoup de données, c'est juste un parasite, il fait rien qu'à se servir du réseau, donc ils aimeraient bien soit qu'il paie, soit qu'il arrête. Voilà, y a des bouts de négociations politiques et commerciales derrière, qui sont montrés du doigt.
Enfin il y a évidemment un point clé qui est le volume. C'est-à-dire qu'un lien sur lequel on va échanger trois mails par jour, ça n'a pas du tout du tout du tout la même tête qu'un lien sur lequel on va faire circuler des centaines de millions de vidéos tous les jours. Et c'est en général un point clé. C'est-à-dire que deux opérateurs, même s'ils ne sont pas encore géographiquement voisins, qui s'échangent des quantités astronomiques de données, ont intérêt à devenir voisins, ont intérêt à, même s'il faut faire des trous dans les trottoirs, passer un câble entre eux deux. Donc les informations sur, si vous voulez comprendre ce qui peut se raconter sur du réseau dans la presse spécialisée, si vous voulez faire une lecture un peu fine de ce que Free peut dire comme mal sur YouTube ou de ce que Orange peut reprocher à tel ou tel fournisseur dans la presse, ou si vous voulez comprendre par exemple la guerre qu'il y a eue entre Neuf et Dailymotion en 2007, il vous faut comprendre qu'ils sont en train de parler de peering, qu'ils sont en train de parler de trafic asymétrique et qu'ils sont en train de parler de volumes énormes. Etque ce sont les trois points clés pour comprendre de quoi il s'agit.
1.4.4 Synthèse
Dia 14
Synthèse:
- paquets
- simplicité
- universalité
- symétrie
- public / privé
Bien. Si j'essaie de résumer un petit peu ce que je vous ai dit sur le routage et qui est à priori non simple: le premier morceau à bien retenir c'est qu'on route des paquets, toujours. C'est-à-dire que quand on essaie de vous faire croire que pour regarder de la vidéo il faut une qualité de réseau différente de celle qu'il faut pour lire du mail... Ben c'est pas vrai. C'est-à-dire que ça transporte des paquets, ça les transportera pas plus vite ou moins vite, et effectivement ça crée des vraies difficultés, c'est-à-dire que pour regarder de la vidéo y a un flux continu, on crée un flux continu en transportant des petits bouts. Et vous verrez, c'est très compliqué... en particulier un réseau qui fonctionne par paquets, si à un moment à un endroit, il sature, la seule chose raisonnable à faire c'est de jeter le paquet. Et on sent bien que dans une vidéo, si on jette un paquet en plein milieu, ça va faire un trou dans le film. Et donc de là viennent tout un tas de stratégie sur « Est-ce que je veux absolument voir le film? Auquel cas le bout de paquet que je n'ai pas reçu je vais demander à ce qu'on me le renvoie, pour compléter le flux ». C'est par exemple si je suis en train de télécharger un film, ou c'est par exemple ce qui explique que sur un navigateur, quand vous regardez une vidéo, il commence par bufferiser. C'est-à-dire que avant de vous montrer la vidéo, il va télécharger les cinq premiers méga-octets comme ça il a trente secondes d'avance, et le temps que vous regardiez les trente premières secondes il va télécharger le reste. Si à un moment y a un paquet qui se perd, c'est pas grave il aura le temps de le redemander sans bloquer. Internet est fait comme ça. Ce que je veux que vous compreniez aussi c'est que l'ensemble est bête à manger du foin, c'est-à-dire qu'un routeur, c'est quelque chose qui est capable de faire deux opérations mathématiques qui sont « inférieur » et « supérieur » pour décider de l'endroit où ça doit aller. C'est tout. Il le fait plusieurs milliards de fois par seconde, c'est entendu, mais il ne fait que ça. Ça n'a rien de compliqué. Et c'est ça qui fait qu'Internet fonctionne. Ce qui fait qu'on n'a pas été capables sur les réseaux précédents d'amener chez tout le monde un petit routeur c'est que ça coûtait trop cher. Un routeur de téléphone, ce qui vous aurait permis d'avoir autant de lignes de téléphone que vous voulez chez vous, c'est épouvantablement compliqué à fabriquer, parce qu'il faut que ça comprenne toute la topologie du réseau, et que ça soit capable de construire un circuit. Par contre un routeur qui commute des paquets, c'est bête à manger du foin! Un CPU de montre à quartz suffit à faire un routeur élémentaire. C'est ce qui fait qu'on peut fabriquer pour trois sous des routeurs qu'on peut mettre chez tout le monde. Et c'est ça qui a permis à Internet de se développer et qui a empêché des développements aussi massifs sur les autres réseaux. Donc techniquement c'est extraordinairement simple. Ensuite c'est absolument universel. C'est-à-dire que les données qu'on transporte peuvent être n'importe quoi, peuvent être des questions ou des réponses, y a pas de différence. Dans la mesure où on ne transporte que des paquets, juste en regardant passer le paquet, il n'y a pas moyen de savoir qui est serveur qui est client là-dedans. On sait juste: y a un paquet qui va dans tel sens. Est-ce que c'est la commande ou est-ce que c'est le colis avec la livraison, on ne sait pas. Et ça c'est ce qui est fondamental à comprendre. Ce qui a fait le succès d'Internet c'est le fait qu'il est extraordinairement simple à écrire.
Enfin là-dedans tout ça est symétrique, c'est-à-dire que si vous regardez dans les différents dessins de réseau que je vous ai passés jusque là et dans l'explication de comment fonctionne le routage, y a pas de nature d'adresse, c'est-à-dire qu'il y a pas des adresses qui sont d'un type donné, qui sont des adresses des serveurs et qu'il y a pas d'adresses d'un type différent qui sont des adresses de clients. Le réseau transporte des paquets, en fait quand je vais consulter une page web, y a des paquets qui partent de chez moi pour dire au serveur « je veux telle page », et y a des paquets qui partent du serveur web et qui vont chez moi pour dire « tiens, la voilà, je l'ai découpée en 37 paquets, voilà les paquets 1 à 12 ». Le réseau, s'il se contente de faire son travail de routage, ne sait pas ce que c'est, et ne sait pas qui est client et qui est serveur. Ce sont des notions qui ne le concernent pas. C'est quelque chose de particulier à internet. Typiquement quand vous regardez un réseau à commutation de circuit, on sait très bien qui est à la demande de la création du circuit, et qui est à la destination. Donc du coup on sait qui est le client, celui qui demande, et qui est le serveur, celui qui est la destination. Ils ont même parfois des connexions différentes. Si vous regardez un réseau dont vous avez l'habitude, et qui est un réseau à commutation de circuit: sur le réseau d'eau, on fait une différence assez nette entre les gens qui injectent de l'eau dans le réseau et les gens qui en sortent. C'est pas le cas sur internet. Donc le réseau est fondamentalement, essentiellement symétrique. Même si les débits peuvent être asymétriques, y a pas de différence de nature entre l'adresse IP qui est chez vous et l'adresse IP qui est à l'autre bout, et y a pas de différence structurelle entre un routeur et un autre.
Enfin y a un point à comprendre, qui est qu'on peut utiliser ce protocole de routage pour router n'importe quoi. Si je prends quatre ordinateurs, que je les raccroche à un switch et que je fais des petites configurations qui vont bien et des petits bouts de table de routage qui vont bien, j'ai créé un réseau qui est routé, qui utilise le protocole IP, qui utilise les tables de routage, qui est comme on a vu: machin.truc.bidule.chose/12, tout ça c'est un réseau, et ce réseau n'est pas internet. C'est juste un réseau routé avec ce protocole-là.
Ce qui fait internet, c'est simplement les 40000 réseaux routés par ce protocole-là, qui sont interconnectés entre eux, et qui pour pouvoir s'interconnecter entre eux ont été obligés de respecter un nombre de règles très simples, dont par exemple le fait d'éviter les doublons. Je sais pas si vous avez déjà réfléchi à comment marcherait le téléphone si deux personnes avaient le même numéro de téléphone. Quand je compose le numéro, j'appelle qui? Un vrai problème. L'unicité de l'adresse est quelque chose d'indispensable sur un réseau. Et donc le réseau IP sur lequel tout le monde s'est mis d'accord, sur l'unicité des adresses, et donc sur le fait de ne pas utiliser l'adresse du voisin quand on construit son petit bout de réseau personnel, c'est ça qu'on appelle Internet. Tous les autres, tout le reste, tous les autres réseaux IP, et il en existe énormément d'autres, sont des réseaux privés. Par exemple, le réseau qui existe entre mon ordinateur et mon imprimante, il utilise certes des adresses IP, mais pas des adresses IP publiques, pas des adresses IP qui m'ont été officiellement attribuée, et donc ça forme un réseau privé. En particulier, ce réseau continue à fonctionner quand je coupe l'accès à internet chez moi.
1.5 Applications, adresses, ports
Applications, adresses, ports
Ce que je veux que vous compreniez aussi, c'est que dans les questions de routage, quand il s'agit de savoir comment sont transportées les données, à aucun moment on a spécifié la nature du paquet. Que ce soit quelques mini-secondes de voix, que ce soit quelques lignes d'une page web, que ce soit une requête d'EMS, que ce soit quelques mini-secondes de jeu dans un jeu vidéo, c'est un paquet de données brut auquel le réseau ne comprend rien. Et en fait basiquement c'est pas son problème.
Dia 15
Utiliser cette infrastructure
- Une machine peut parler avec plusieurs
Maintenant, si on cherche à utiliser cette infrastructure pour faire de la communication, on constate qu'une machine peut parler avec plusieurs autres.
- Une machine peut être serveur ou client
C'est-à-dire... une machine peut parler avec plusieurs autres, je peux consulter deux pages web en simultané, et un serveur web peut être consulté par plusieurs personnes en simultané. Ça vous paraît évident ça? Vous pouvez être plusieurs sur Facebook en même temps... de la même manière, n'importe quelle machine sur le réseau peut être soit client soit serveur, ça ne change rien à la nature du réseau.
- Comment trier les paquets sur la machine?
Du coup, sur ma machine qui est en train d'émettre des pages web à destination de douze personnes pendant que moi je suis en train de surfer sur quinze sites, comment on fait le tri des paquets qui rentrent et qui sortent? Parce que des paquets elle en reçoit plein, elle en émet plein, comment elle sait que quel paquet correspond à quelle page? La bonne solution, c'est comme toujours en informatiques de rajouter un numéro. En rajoutant un numéro « de port » C'est ça ce qu'on appelle le numéro de port. En fait, c'est simplement un identifiant de la connexion. C'est juste: la machine indique: telle connexion porte tel numéro chez moi.
Dia 16
Exemples
Une requête web classique: Ça s'explique mieux sur un exemple. Voilà à quoi va ressembler une requête web.
Une URL qu'on veut aller chercher, je tape ça dans mon navigateur, voilà ce que ça donne sur le réseau.
A,5038 -> D,53 : où habite www.fdn.fr ?
Ma machine émet, depuis le port numéro n'importe quoi - quand on émet on prend un port au hasard – à destination du serveur D (D comme DNS), sur le port 53, une requête qui dit « où habite www.fdn.fr »? Je vous laisse imagine que le serveur DNS, sur le port 53, des requêtes, il en reçoit en permanence, il en reçoit des milliers par seconde. Si il a pas le numéro de port pour savoir à qui il doit répondre, il va envoyer la réponse, certes sur la bonne machine, mais pas forcément à la bonne question. C'est-à-dire que quand vous interrogez votre DNS, si quand vous lui demandez « où est Facebook » il vous répond l'adresse de Wikipedia, sous prétexte que dans l'onglet d'à côté vous avez demandé « où est Wikipedia » et que là il a répondu Facebook, ça va très vite mal se mettre.
D,53 -> A,5038 : il est en 80.67.169.12 (W)
Donc lui il répond: « il habite à telle adresse », que nous nous appellerons W dans la suite (W comme Web).
A,5039 -> W,80 : donne moi /minitel.avi
D'où connexion suivante: la même machine depuis un autre port, écrit à monsieur W sur le port 80, pour lui dire « donne-moi donc Minitel.avi ».
W,80 -> A,5039 : tiens, gaffe, c’est long...
Et monsieur W va répondre: « tiens voilà, fais gaffe c'est long. Prévoir plusieurs paquets, à peu près 600 000. » Voilà. Une requête web ça ressemble à ça. Il n'y a pas de différence structurelle importante entre le paquet réponse du serveur DNS et le paquet question pour le serveur Web. Au vu du réseau de transport, c'est la même chose.
Dia 17
Ports standards
Évidence : le port du serveur doit être connu
Une évidence cependant, autant le numéro de port du client n'a aucune espèce d'importance, il est important pendant la durée de la connexion, pour dire « c'est bien dans le cadre de telle connexion que telle réponse a un sens », mais il n'a pas d'importance a priori. Par contre le numéro de port du serveur est vital. Parce que si dans mon exemple précédent le serveur Web et le serveur DNS sont la même machine, si je parle sur le port 53 je pose une question sur les noms de domaines, si je parle sur le port 80 je pose une question sur le serveur web. Donc il est important que les numéros de port pour les serveurs, pour les applications soient fixés. Et donc y a tout un tas de numéros de port qui sont standardisés.
- 53: DNS (l'annuaire)
Alors un des moins connus des internautes débutants c'est le 53, qui est pourtant le plus important parce que c'est le DNS, c'est-à-dire que si vous enlevez le DNS, vous êtes obligés de taper les adresses des machines. C'est vite rébarbatif.
- 80: le web
Le 80, que beaucoup de gens connaissent, c'est le web.
- 443: le web chiffré
Le 443, que beaucoup de gens connaissent, c'est le web chiffré.
- 25: l'envoi de mail
Le 25, qui est l'envoi du mail. Ce que peu de gens pratiquent.
- 110: relever une boîte
Le 110 qui sert à relever une boîte aux lettres, ce qui est déjà plus fréquents.
- 179: BGP (routage)
- etc.
Et puis j'en ai choisi un autre, y en a quelques centaines hein des ports standardisés, le 179 moi je l'aime bien ça c'est le BGP, c'est-à-dire qu'en fait c'est le numéro de port de l'application utilisée par les routeurs pour se raconter leurs vies. Quand deux routeurs discutent entre eux, pour se raconter « moi je connais une route, etc. » c'est sur le port 179. C'est une application comme une autre, c'est pas plus malin ou pas plus crétin que du mail ou du web. Le protocole d'échange entre deux routeurs, ce qui permet de dire « j'ai une meilleure route maintenant pour joindre tel site », c'est une application comme une autre.
1.6 Traduction d'adresse
Traduction d'adresse
Bien. Alors là on va attaquer de la technique qui est assez pénible... pour le moment je vous ai expliqué comment on faisait pour faire discuter un client web avec un serveur web, et que le tout soit routé dans le milieu, si possible sans se perdre et en démêlant les fils à la sortie, tout en sachant que tous les paquets ont été transportés en vrac. C'est-à-dire qu'ils sont probablement arrivés dans le désordre, ils sont a priori parti dans l'ordre, à moins de faire complètement exprès, les ordinateurs émettent plutôt les paquets dans l'ordre, c'est juste les aléas du réseau qui font que ça arrive complètement dans le désordre, exactement comme quand vous partez à trente en voiture du même endroit, vous n'arriverez pas forcément dans l'ordre dans lequel vous êtes partis.
Y a un point là-dedans quand même qui est important, c'est qu'on a bien vu cette notion de publique/privé.
Dia 18
Un réseau à la maison
- un ordinateur
- deux portables
- deux téléphones
- une imprimante
- 6 adresses
Si je regarde ce que c'est qu'un réseau à la maison, basiquement y a un ordinateur, pour peu que je sois pas complètement célibataire y a deux portables, hein, un chacun. Pour peu que nous soyons des gens modernes avec iPhone ou équivalent y a deux téléphones qui veulent aussi une adresse, et puis comme il arrive d'écrire, y a une imprimante. Bien. Et puis comme on n'a pas acheté cinq imprimantes y en a qu'une, on la partage en réseau. Tout ça ça fait six adresses.
- 2 milliards d'internautes
sachant qu'il y a 2 milliards d'internautes, une multiplication rapide, ça fait douze milliards d'adresses. Et il n'y a que 4 milliards d'adresses possibles sur Internet à l'heure actuelle. Conclusion: ça rentre pas. Ça rentre pas. Je suis formel. Hormis pour les très grandes valeurs de quatre, douze ça rentre pas dans quatre. Comment on traite ça?
Dia 19
RFC 1918
Adresses interdites sur le réseau:
- 192.168.N.0/24
- 172.16.0.0/16 à 172.31.0.0/16
- 10.0.0.0/8
Adresses interdites sur le réseau public. Dites privées.
Alors en fait, on traite à partir d'adresses qui sont interdites sur le réseau, c'est-à-dire qu'il y a des blocs d'adresses qu'on n'a pas le droit d'avoir. Exactement comme il y a des numéros de téléphone que vous n'avez pas le droit d'avoir. Vous chercherez des numéros de téléphone qui commencent par 00, y en a pas, pour une raison simple: 00 c'est ce qui sert à faire l'international, c'est-à-dire que c'est réservé. Les numéros de téléphone qui commencent par 99 y en a pas. Voilà, y a des tas de plage comme ça de numéros de téléphone qui sont pas autorisés. Ou qui sont réservés à des usages internes. Eh bien de la même manière, y a des plages d'adresses, qui sont interdites sur le réseau public. C'est-à-dire que n'importe quel routeur qui participe à Internet, sait que si y a un paquet qui est en provenance de, ou à destination de, une adresses là-dedans (voir slide), il doit le jeter. Parce que ça ne correspond à rien. Ces adresses sont dites privées. Qu'on soit bien d'accord: elles sont pas abîmées, c'est des adresses normales, c'est juste qu'on a décidé par convention que ces adresses-là on ne les donnerait jamais à personne. Donc vous pouvez être certains qu'aucun ordinateur normalement relié à internet n'a cette adresse-là. Et c'est ce qui fait qu'on utilise ces adresses-là chez nous.
Dia 20
Usage simple
- réseau interne
- parler à l'imprimante
Pas moyen de parler en public.
Par exemple, pour faire mon réseau interne, pour que mes portables puissent discuter entre eux et puissent discuter avec l'imprimante. Comme je suis sûr que personne sur internet n'a cette adresse-là, je peux tranquillement faire mon petit réseau chez moi, ça ne posera pas de problème je ne vais pas masquer les adresses de quelqu'un. Par contre y a un vrai problème, alors ça marche très bien, ça se monte très facilement, y a un petit réseau interne, avec un bloc d'adresses qu'on a choisies, sauf que évidemment ça permet pas de parler en public, puisque si j'émets une requête, elle aura comme adresse source mon adresse privée, et que le premier routeur un petit peu sérieux sur internet qui voit passer ça il va dire « Ah c'est de la merde... c'est une adresse interdite, je jette! ». Et surtout comme ces adresses n'appartiennent à personne, les routes ne sont pas annoncées. Et donc, même si le paquet atteignait sa destination, la réponse ne pourrait pas revenir, y a pas de route vers cette adresse-là. Donc y a pas moyen de parler en public.
Dia 21
Traduction en sortie
- 192.168.0.42,5076 vers 80.67.169.12,80
Alors je vous propose qu'on regarde, en essayant de pas se faire trop mal à la tête, comment se passe une question, bêtement, une requête sur un serveur web, depuis une adresses IP privée, et ce que fait votre BiduleBox quand elle vous permet d'accéder à internet. Donc la question ressemble à ça. Le paquet qui est émis par votre machine, il vient de 192.168.0.42, sur le port n'importe quoi, et il est à destination d'une adresse IP publique, le port 80. Si je me trompe pas de mémoire ça veut dire l'adresse IP du serveur web du FDN ça...
- je note : 6734 est 192.168.0.42,5076
- 80.67.176.93,6734 vers 80.67.169.12,80
Bien. La BiduleBox elle fait « je note, je prend un numéro de port à moi, au hasard, et je note dans mes petites tablettes: 67.34 en vrai c'est monsieur 0.42, port tant ». Et donc le paquet qui venait du côté interne à destination de l'extérieur et qui avait donc comme adresse source une adresse privée, est rectifiée, c'est-à-dire qu'en fait on efface l'adresse source, et on en met une autre. Et en fait on met la vraie adresse IP de la BiduleBox, qui est une IP publique, sur le numéro de port qu'elle vient de réserver. Et elle a bien noté dans un coin « ce numéro de port, c'est celui que j'ai utilisé pour tel numéro de connexion en retour ». Internet transporte, le serveur répond Ce paquet-là, il a comme adresse source une adresse publique, comme adresse de destination une adresse publique. Il peut donc parfaitement être transporté sur internet, il ne pose plus de problèmes.
- 80.67.169.12,80 vers 80.67.176.93,6734
Donc internet transporte, ça va jusqu'au serveur web qui réfléchit longuement à la réponse, et il envoie sa réponse. Pas spécialement futé, le serveur web, il répond à la personne qui lui a parlé. Donc ce paquet-là quand il est reçu par la BiduleBox, ça dit que c'est à destination de la box, du routeur lui-même. Pas du tout à destination de la machine qui a demandé la page.
- lire mes notes
- 80.67.169.12,80 vers 192.168.0.42,5076
C'est pour ça que tout à l'heure il a pris des notes. Quand il regarde dans ses notes, il voit « 67:34, c'est pour qui, 67.34 j'avais noté, c'est pour machin, je lui renvoie ». On est bien d'accord, ce mécanisme-là, il n'est possible que sur de la commutation de paquets. Sur de la commutation de circuit, il aurait fallu établir un circuit continu entre une machine qui n'a pas d'adresse et une machine qui a une adresse à l'autre bout. C'eut été compliqué. Et bien évidemment, une fois que j'ai fait ça, le paquet est à destination de la bonne machine, qui recevra donc, qui aura vraiment l'impression de recevoir une vraie réponse venant du monde du dehors. La machine n'a pas notion que son message a été modifié, c'est-à-dire qu'on a changé le destinataires de la lettre, changé l'expéditeur, tout bricoler dans le milieu, et pourtant ça arrive au bon endroit. Ça c'est ce que fait votre routeur chez vous quand il permet ce qu'on appelle du partage de connexion. Lui il a une vraie connexion à Internet, et il la prête aux machines internes.
Ça marche, mais je n’ai pas de serveur, 192.168.0.42,80 n’est pas joignable.
Bien, donc ça ça marche. Ça marche au sens où vous vous en servez tous les jours, ça vous permet d'aller sur le web, en tant que client. Ça permet pas de stocker un serveur. C'est-à-dire que l'adresse IP, ici, comme elle n'est joignable de nulle part, elle ne permet plus d'avoir le serveur web. C'est-à-dire que ce petit artifice d'utilisation que vous avez chez vous, vous empêche d'avoir un serveur. Tant qu'on est sur ce mode de fonctionnement là vous ne pouvez chez vous que consulter des données qui sont à l'extérieur. Vous ne pouvez pas permettre pour le moment à quelqu'un de l'extérieur de venir consulter des adresses qui seraient stockées sur ce serveur-là, c'est-à-dire sur le port 80 de la machine interne de mon réseau dont l'adresse est tant. Et ça c'est ce qu'on appelle de la traduction en entrée.
Dia 22
Traduction en entrée
- Nouvelle règle : ce qui est pour MOI,80 est renvoyé à 192.168.0.42,80
- 147.215.1.4,1234 vers 80.67.176.93,80
C'est-à-dire que dans ma BiduleBox je rajoute une nouvelle règle, qui dit à la box « à partir de maintenant, ce qui est pour moi à destination du port 80 est renvoyé à telle machine sur le réseau interne sur le même port 80 ». Du coup, quand quelqu'un vient consulter le site web qui est hébergé chez moi comme ça, on a le quelqu'un du dehors, qui envoie sa requête vers l'adresse de la box, port 80. Pourquoi port 80, simplement parce qu'il a rentré le nom de domaine, donc le navigateur tout seul, ben c'est du web, donc port 80.
- appliquer la règle
- 147.215.1.4,1234 vers 192.168.0.42,80
La boîte, elle décide d'appliquer la règle, et donc elle réécrit le paquet en disant « il est à destination de telle machine en interne ».
- le serveur répond
- 192.168.0.42,80 vers 147.215.1.4,1234
Ça on sait joindre, le serveur peut répondre, et on voit ressortir un paquet, avec comme source ma machine locale qui a une adresse invalide, et comme destination l'adresse IP publique, qui a posé la question.
- appliquer la règle (en sortie)
- 80.67.176.93,80 vers 147.215.1.4,1234
On applique la même règle en sortie, c'est-à-dire qu'on dégage ce morceau là (192.168.0.42,80) et qu'on remplace par l'adresse publique de la boîte (80.67.176.93,80), on obtient un paquet qui est parfaitement valide et qui peut partir sur Internet. On voit donc que l'adresse IP publique qui avait posé la question, pensait parler à une machine, au final parlait à une autre, mais a vu la réponse venir de la machine avec laquelle elle pensait parler. Donc y a quelqu'un qui joue du pocker menteur au milieu de manière suffisamment propre pour que ça se voit pas.
Ça marche, mais j’ai 1 seul serveur, et plusieurs machines.
Maintenant si on regarde un cas d'école pas complètement idiot, alors ça marche, seul défaut: je peux avoir un seul serveur. Alors moi j'ai plusieurs machines chez moi, comme ma BiduleBox n'a qu'un seul port 80, je peux avoir qu'un seul serveur web.
Dia 23
Traduction dans les deux sens
Maintenant, on peut complètement imaginer que l'un d'entre vous, avec son ordinateur, derrière et sa BiduleBox, veuille parler au site web qui est derrière la mienne, de BiduleBox. Et donc il faut traduire en sortie, puis retraduire en entrée, puis retraduire en sortie, puis retraduire en entrée.
Laissé en exercice à l’auditeur qui aime l’aspirine.
L'exercice sera laissé à l'auditeur qui aime l'aspirine, ça donne très vite mal à la tête, et on se demande assez rapidement comment deux machines qui sont à des endroits différents sur le réseau, et qui pourtant ont la même adresse IP, peuvent discuter entre elles sans se marcher sur les pieds.
Ça c'est quelques chose qui est très courant dans les réseaux. Le fait de traduire les adresses et de retraduire à la volée, etc. Ça vient essentiellement du manque d'adresses IP dans l'internet qu'on connaît aujourd'hui, c'est-à-dire les adresses IP qu'on écrit comme ça sous forme de quatre paquets de chiffres et de trois points, la prochaine génération y en a un petit peu plus, vraiment beaucoup plus, c'est-à-dire qu'il y a plusieurs milliards d'adresses à disposition de n'importe quel être humain, c'est vraiment beaucoup plus en fait. L'ordre de grandeur est plus voisin du nombre d'atomes dans l'univers. Donc ça permettra entre autres d'enlever tout ce fatras, et donc de faire en sorte qu'on revienne à un adressage beaucoup plus simple.
1.7 Conclusion
1.7.1 Conclusion technique
Conclusion
Pourquoi est-ce que je vous ai embêté avec ça? Parce que je veux que vous compreniez que déjà à l'heure actuelle, une communication qui a lieu entre vous et un serveur web, elle supie (?) un nombre de chose, que la morale réprouve, assez violent. En particulier vous pensez que votre machine émet des requêtes à destination de et qu'elle reçoit des réponses, et en fait dans le milieu ils sont plusieurs à avoir à plusieurs reprises effacé l'adresse d'expédition pour la remplacer par une autre, effacé l'adresse de destination pour la remplacer par une autre, au final ça marche ou pas, mais globalement vous avez pas fait grand chose. Y a beaucoup de gens qui ont décidé de ce que vous allez faire de vos communications à votre place, là-dedans. Je dis pas que ce soit mal, en moyenne globalement l'ensemble marche. Mais c'est quand même important de savoir que le facteur réécrit l'adresse... c'est intéressant. Ce qui est intéressant c'est de savoir que vous n'êtes, à l'heure actuelle, pas capables de manière simple de le repérer. C'est ce qui fait par exemple que n'importe quel serveur peut se faire passer pour n'importe quel autre sans que vous ne puissiez rien repérer. Tant que je reste sur les adresses au niveau du routage et du transport, n'importe quelle machine peut se faire passer pour n'importe quelle autre et vous ne verrez rien.
Dia 24
Conclusion technique
- l’adresse destination suffit à transporter
- le port n’intéresse pas le réseau
- il faut une adresse publique pour un serveur
- le port réservé n’est qu’une convention
Bien. On rentre dans les 5% qu'il faut retenir. Si vous avez à peu près compris ce que c'est que du routage, vous avez compris que pour router un paquet, la seule information intéressante, c'est l'adresse destination. Le reste n'a aucune espèce d'importance. En particulier le numéro de port, que ce soit le numéro de port sur cette adresse destination, n'intéresse pas le réseau. Pour un routeur, que ce soit une requête DNS, une requête web, à destination de Google, ou de YouTube, ou de mon blog à moi, ou du blog de l'association, ou du site web de Sciences Po, c'est bien pareil. C'est juste un paquet, avec un IP destination, le numéro de port n'intéressera que la machine cible.
Une autre notion forte: quand on n'a qu'une adresse IP privée, on n'est qu'un pur utilisateur de contenu. On ne peut pas émettre sur la toile, depuis une IP privée. Il faut nécessairement une IP publique. Je vous rappelle: n'importe quel ordinateur connecté à Internet, c'est basiquement dans la même boîte, un émetteur radio, et un récepteur radio. Assez voisin d'une CiVi (?), où vous recevez tout le monde et vous pouvez parler à tout le monde. À partir du moment où vous supprimez son adresse publique, vous avez un pur récepteur. C'est-à-dire que vous êtes passé d'un monde dans lequel vous pouvez vous exprimer, à un monde dans lequel vous pouvez écouter. C'est structurellement, fondamentalement, différent. C'est ce qui fait qu'à l'heure actuelle, par exemple dans l'internet mobile, y a aucun des trois grands opérateurs qui fournissent des adresses IP publiques pour ces merdiers-là, parmi tous les MVNO y a un seul qui crée, et je donnerai pas son nom, je veux pas lui faire de pub. Pourtant il fait plein de trucs sales à côté. Et donc y en a qu'un, et vous n'êtes a priori pas client là-bas parce qu'ils ont très peu de clients. Donc il faut une adresse IP publique pour un serveur, c'est-à-dire que tant qu'on n'a pas une adresse IP publique, donc reconnue sur le réseau, donc joignable à tout moment sur le réseau, on n'est pas sur internet. On est sur un réseau privé, qui passe par un intermédiaire pour accéder à Internet. L'intermédiaire en question étant: chez vous votre BiduleBox, sur l'accès mobile, le gros routeur qui joue le rôle de BiduleBox de votre opérateur mobile, et bah typiquement dans une Université, le routeur de l'Université.
Enfin, le port réservé, qui permet de savoir quel type de serveur on joint, n'est qu'une convention. Faire en sorte qu'un serveur web ne soit pas sur le port 80, c'est à peu près 12 secondes de travail pour n'importe quel informaticien mauvais. Faire en sorte que votre navigateur aille chercher une page ailleurs que sur le port 80, c'est juste une convention de notation dans l'URL. À la fin du nom de domaine, donc à la fin de www.fdn.fr, au lieu de mettre /minitel.avi, vous mettez :18/minitel.avi, et votre navigateur il ira chercher sur le port 18 au lieu du port 80. Donc le numéro de port réservé ça n'est véritablement qu'une convention de notation. C'est plus simple de la respecter, ça évite de se perdre, mais ça n'est vraiment qu'une convention. Ce dont je parlerai dans la prochaine conférence, c'est essentiellement de ce qui circule là-dedans. De ce à quoi ressemble une requête sur une appli, et je m'intéresserai à différents types d'appli, pour que vous ayez une petite idée de à quoi ressemblent les échanges.
1.7.2 Conclusion politique
Dia 25
Conclusion politique
- Accès Internet = Adresse publique
Bien. L'aspect plus intéressant: les points politiques, maintenant. Un accès internet, c'est une adresse publique. Point, par définition. Le reste c'est des accès à des choses numériques mais c'est pas un accès internet.
- Danger d’interdire le peer-to-peer
Il y a un danger à interdire le peer-to-peer, c'est-à-dire les échanges directs d'un abonné internet à un autre. Pas forcément des échanges de musique illégale ou des films de pédonazis avec des animaux, c'est simplement un échange de fichiers entre deux ordinateurs connectés au réseau public. C'est dangereux de l'interdire parce qu'on crée une asymétrie. C'est-à-dire qu'on crée un réseau dans lequel certaines machines ne font que aspirer du contenu et d'autres machines ne font que pousser du contenu. Et donc on déstabilise l'ensemble du réseau. En particulier par exemple, on empêche tout échange local. Danger de l’adressage privé
On a également un vrai danger à multiplier les utilisations de l'adressage privé. Tant que l'adressage privé il est utilisé à l'intérieur de votre chez-vous derrière votre BiduleBox, ça pose pas de soucis majeurs, parce qu'en fait vous êtes toujours détenteur d'une adresse publique, qui est celle de la boîte. Et depuis laquelle vous pouvez émettre ce que vous voulez... par contre, le fait d'avoir généralisé ça, par exemple dans l'internet mobile, fait que vous ne pouvez plus émettre. En fait, l'accès mobile que nous vivons à l'heure actuelle, ne vous permet pas d'émettre des données. Et c'est en soi une limitation inacceptable. C'est exactement comme si on vous vendait de l'accès téléphonique, où vous pouvez soit appeler soit être appelés, mais pas l'autre sens. Donc typiquement c'est exactement comme si on vous vendait des téléphones où vous pouvez appeler les gens, mais où vous ne pouvez pas être appelés. Parce que vous n'avez pas de numéro de téléphone. C'est très curieux, comme mécanisme. Et donc ça ça crée un vrai danger, puisque ça crée artificiellement une centralisation de l'information.
Voilà, sur la partie réseau j'ai fini. Et donc je vous propose qu'on passe à des questions, si vous en avez.