Chapitre 12 Réseaux
Transcription
Chapitre 12 Réseaux
L'informatique au lycée Chapitre 12 http://ow.ly/n6wZ3 Chapitre 12 Réseaux La communication entre ordinateurs est un sujet vaste et complexe. Nous ne donnons ici que quelques principes généraux, sans trop entrer dans les détails. Le lecteur intéressé trouvera beaucoup pus d'informations sur... le web bien sûr. Un réseau informatique est un ensemble d'équipements reliés entre eux pour échanger des informations. Par analogie avec un filet, on appelle nœud (node) l'extrémité d'une connexion, qui peut être une intersection de plusieurs connexions (un ordinateur, un routeur, un concentrateur, un commutateur). Les protocoles de communication définissent de façon formelle et interopérable la manière dont les informations sont échangées entre les équipements du réseau. Des logiciels dédiés à la gestion de ces protocoles sont installés sur les équipements d'interconnexion que sont par exemple les commutateurs réseau, les routeurs, les commutateurs téléphoniques, les antennes GSM, etc. Les fonctions de contrôle ainsi mises en place permettent une communication entre les équipements connectés. Le protocole probablement le plus répandu est IP pour ses fonctions UDP et TCP. La première permet l'envoi de données d'une manière non sécurisée (UDP ne prévient pas l'équipement émetteur si les données ont été reçues ou pas) : il est le plus souvent employé dans des applications temps-réel comme la transmission de parole (où un correspondant peut demander à l'autre de répéter un message incompréhensible). L'autre permet au contraire une transmission fiable des données (TCP garantit chaque extrémité d'un canal de communication qu'une information envoyée a bien été reçue ou alors prévient cette extrémité du problème après plusieurs essais infructueux). 12.1. Modèles en couches La communication passe par un ensemble de couches empilées: • chaque couche a un rôle précis (conversion, routage, découpage, vérification...) • chaque couche dialogue avec la couche juste au-dessus et celle juste au-dessous. Elle fournit des services à la couche au-dessus, et utilise les services de la couche en-dessous. • chaque couche encapsule les données venant de la couche du dessus en y ajoutant ses propres informations avant de le passer à la couche du dessous (et opération inverse dans l'autre sens). ISO : International Organization for Standardization Ne pas confondre OSI et SIO ! Didier Müller 12.1.1. Modèle OSI Le modèle OSI (de l'anglais Open Systems Interconnection) est un standard de communication, en réseau, de tous les systèmes informatiques. C'est un modèle de communications entre ordinateurs proposé par l'ISO qui décrit les fonctionnalités nécessaires à la communication et l'organisation de ces fonctions. Le modèle comporte sept couches. 12-1 juillet 2013 Réseaux La caractérisation donnée ici est tirée du chapitre 7 de ISO 7498-1. La description originelle donne en plus pour chaque couche les fonctions de manipulation de commandes ou de données significatives parmi celles décrites plus bas. 1. La couche « physique » est chargée de la transmission effective des signaux entre les interlocuteurs. Son service est limité à l'émission et la réception d'un bit ou d'un train de bit continu (notamment pour les supports synchrones). 2. La couche « liaison de données » gère les communications entre deux machines adjacentes, directement reliées entre elles par un support physique. 3. La couche « réseau » gère les communications de proche en proche, généralement entre machines : routage et adressage des paquets. 4. La couche « transport » gère les communications de bout en bout entre processus (programmes en cours d'exécution). 5. La couche « session » gère la synchronisation des échanges et les « transactions », permet l'ouverture et la fermeture de session. 6. La couche « présentation » est chargée du codage des données applicatives, précisément de la conversion entre données manipulées au niveau applicatif et chaînes d'octets effectivement transmises. 7. La couche « application » est le point d'accès aux services réseaux, elle n'a pas de service propre spécifique et entrant dans la portée de la norme. 12.1.2. TCP/IP Le modèle TCP/IP (appelé aussi modèle Internet), qui date de 1976, a été stabilisé bien avant la publication du modèle OSI en 1984. Il présente aussi une approche modulaire (utilisation de couches) mais en contient uniquement quatre (voir schéma ci-contre). Aujourd'hui, c'est le modèle TCP/IP, plus souple, qui l'emporte sur le marché. Le modèle OSI, plus rigoureux, est principalement utilisé pour certaines applications critiques, ou pour ses fonctionnalités permettant de garantir une qualité de service. Encapsulation des données/IP Lors d'une transmission, les données traversent chacune des couches au niveau de la machine émettrice. A chaque couche, une information est ajoutée au paquet de données, il Didier Müller 12-2 juillet 2011 L'informatique au lycée Chapitre 12 s'agit d'un en-tête, ensemble d'informations qui garantit la transmission. Au niveau de la machine réceptrice, lors du passage dans chaque couche, l'en-tête est lu, puis supprimé. Ainsi, à la réception, le message est dans son état originel. 12.2. Internet Le 2 septembre 1969, le professeur Len Kleinrock de l'UCLA (University of California, Los Angeles) et son équipe, comprenant deux étudiants, Stephen Crocker et Vinton Cerf, parvenaient à échanger quelques données entre deux gros ordinateurs reliés par un câble de 4,5 mètres. Ce premier essai est généralement considéré comme l'événement fondateur d'Arpanet, réseau à l'origine d'Internet quelques années plus tard. Internet est le réseau informatique mondial qui rend accessibles au public des services comme le courrier électronique et le World Wide Web. Techniquement, Internet se définit comme le réseau public mondial utilisant le protocole de communication IP (Internet Protocol). Internet ayant été popularisé par l'apparition du World Wide Web au début des années 1990, les deux sont parfois confondus par le public non averti. Le Web est une des applications d'Internet, comme le sont le courrier électronique, la messagerie instantanée et les systèmes de partage de fichiers poste à poste. L'accès à Internet peut être réalisé auprès d'un Fournisseur d'accès (FAI) via divers moyens de télécommunication. Technique Internet est composé d'une multitude de réseaux répartis dans le monde entier. Chaque réseau est rattaché à une entité propre (université, fournisseur d'accès à Internet, armée) et se voit attribuer un identifiant unique appelé Autonomous System (AS). Afin de pouvoir communiquer entre eux, les réseaux s'échangent des données, soit en établissant une liaison directe, soit en se rattachant à un nœud d'échange (point de peering). Chaque réseau est donc connecté à plusieurs autres réseaux. Lorsqu'une communication doit s'établir entre deux ordinateurs appartenant à des AS différents, il faut alors déterminer le chemin à effectuer parmi les réseaux. Aucun élément d'Internet ne connaît le réseau dans son ensemble, les données sont simplement redirigées vers un autre nœud selon des règles de routage. Protocoles Internet fonctionne suivant un modèle en couches. Les éléments appartenant aux mêmes couches utilisent un protocole de communication pour s'échanger des informations. Un protocole est un ensemble de règles qui définissent un langage afin de faire communiquer plusieurs ordinateurs. Chaque protocole a des indications particulières et, ensemble, ils fournissent un éventail de moyens permettant de répondre à la multiplicité et à la diversité des besoins sur Internet. Les principaux sont les suivants : • IP (Internet Protocol) : protocole réseau qui définit le mode d'échange élémentaire entre les ordinateurs participants au réseau en leur donnant une adresse unique sur le réseau. • TCP : responsable de l'établissement de la connexion et du contrôle de la transmission. C'est Didier Müller 12-3 juillet 2013 Réseaux • • • • • • • • • • un protocole de remise fiable. Il s'assure que le destinataire a bien reçu les données. HTTP (HyperText Transfer Protocol) : protocole mis en œuvre pour le chargement des pages web. HTTPS : pendant du HTTP pour la navigation en mode sécurisé. FTP (File Transfer Protocol) : protocole utilisé pour le transfert de fichiers sur Internet. SMTP (Simple Mail Transfer Protocol) : mode d'échange du courrier électronique en envoi. POP3 (Post Office Protocol version 3) : mode d'échange du courrier électronique en réception. IMAP (Internet Message Access Protocol) : un autre mode d'échange de courrier électronique. IRC (Internet Relay Chat) : protocole de discussion instantanée. NNTP (Network News Transfer Protocol) : protocole de transfert de message utilisé par les forums de discussion Usenet SSL : protocoles de transaction sécurisée, utilisés notamment pour le paiement sécurisé. DNS (Domain Name System) : système de résolution de noms Internet. Circulation de l'information Dans un réseau, l'information qui circule est découpée en unités élémentaires appelées paquets. Il s'agit d'une suite d'octets suffisamment courte pour pouvoir être communiquée sous forme numérique et sans erreur. Dans le cas d'Internet, le format des paquets est spécifié par l'Internet Protocol. On parle donc de paquets IP. Quand on récupère un fichier par exemple, son contenu est découpé en petits morceaux inclus dans une multitude de paquets IP qui transitent sur le réseau. Chaque paquet circule indépendamment des autres. Pour cela, il contient un en-tête indiquant entre autres quelle est la destination du paquet. Le protocole IP spécifie que cette destination est identifiée par une suite de 4 octets : son adresse IP (chaque octet est généralement lu comme un nombre entre 0 et 255). Voici ci-dessous le format de l'en-tête d'un paquet IP, tel que spécifié au bit près dans le standard RFC 791. La première ligne indique la signification des quatre premiers octets du paquet (soit 32 bits), la deuxième, celle des quatre suivants et ainsi de suite. Le reste du paquet est constitué par les données qui transitent dans le paquet (typiquement de l'ordre de 1000 octets). 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ On voit qu'outre l'adresse IP de la destination (cinquième ligne), un paquet IP contient aussi celle de la source (quatrième ligne) et bien d'autres champs comme la version du protocole (quatre premiers bits de la première ligne). La version présentée ici (la plus courante à l'heure actuelle) est la version 4 (IPv4). Tout paquet IPv4 commence par les bits 0100, soit 4 en binaire. À l'intérieur d'un réseau Comment les paquets ainsi formés circulent-ils dans un réseau ? Un réseau est constitué de routeurs et de liens de communication. Les liens relient les routeurs entre eux à la manière de routes entre les villes d'un pays. Plus précisément, un routeur est une sorte d'aiguilleur qui possède des liens avec d'autres routeurs. Chaque lien est branché au routeur via une interface. La principale activité d'un routeur consiste à... router des paquets. Toute machine reliée à un des routeurs du réseau peut ainsi communiquer avec toute autre machine reliée à un routeur du réseau. Les machines qui sont ainsi mises en relation par un réseau Didier Müller 12-4 juillet 2011 L'informatique au lycée Chapitre 12 sont appelées des hôtes. Entre les réseaux Comment les paquets circulent-ils d'un réseau à un autre ? Les hôtes sont généralement reliés à un réseau local. Pour chaque réseau local, un routeur appelé passerelle relie ce réseau avec l'internet. La seule décision de routage prise par un hôte est d'envoyer un paquet, soit directement à la destination si elle se trouve dans le réseau local, soit à la passerelle sinon. Tous les routeurs d'un réseau sont gérés par la même organisation. Ils sont reliés entre eux, et savent acheminer des paquets entre eux. Certains des routeurs du réseau peuvent avoir des liens vers des routeurs d'autres réseaux, appelons-les des routeurs frontière (border gateway). Le monde des destinations, vu d'un routeur d'Internet, se sépare donc en deux populations, les destinations qui sont accessibles sans sortir de son propre réseau d'une part, et celles qui sont en dehors de ce réseau d'autre part. Internet est constitué par un empilement hiérarchique de réseaux, comme le montre la figure ciaprès. Source de l'image : [3] Représentation schématique de la structure d'Internet. Le réseau F est par exemple connecté par sa passerelle au réseau E, qui est lui-même un sous-réseau du système autonome A. Le réseau F pourrait par exemple être le réseau Wifi d'un particulier dont le modem ADSL f (qui fait aussi routeur Wifi) est relié à un routeur e de son fournisseur d'accès à Internet. Ce routeur e fait partie du réseau national E de son fournisseur qui possède une connexion directe avec un système autonome A internationalement connecté. Les routeurs des systèmes autonomes possèdent des sortes de méta-tables de routage qui indiquent pour une adresse IP comment atteindre le système autonome où se trouve la destination possédant cette adresse. Plus précisément, chacun de ces routeurs connaît la suite de systèmes autonomes qu'il va falloir traverser pour atteindre la destination. Pour cela, tout routeur frontière connecté au routeur frontière d'un autre système autonome échange avec lui des informations sur les Didier Müller 12-5 juillet 2013 Réseaux adresses IP gérées par tel ou tel système autonome et sur les interconnexions entre système autonomes selon le protocole de routage BGP (pour « Border Gateway Protocol »). L'acheminement d'un paquet IP se fait donc généralement ainsi : 1. le paquet remonte la hiérarchie de réseau jusqu'à un routeur du système autonome de la source, 2. il transite ensuite de système autonome en système autonome jusqu'à celui de la destination, 3. il descend la hiérarchie jusqu'à la passerelle en charge du réseau local de la destination, 4. cette passerelle l'envoie à la destination. 12.3. World Wide Web Le World Wide Web, littéralement la « toile (d'araignée) mondiale », communément appelé le Web, le web, parfois la Toile ou le WWW, est un système hypertexte public fonctionnant sur Internet qui permet de consulter, avec un navigateur, des pages accessibles sur des sites. L'image de la toile d'araignée vient des hyperliens qui lient les pages web entre elles. Techniquement, rien ne distingue le World Wide Web d'un quelconque autre web utilisant les mêmes technologies ; d'ailleurs d'innombrables webs privés existent. Fin 2010, la société anglaise spécialisée dans la sécurité internet Netcraft dénombre environ 250 millions de sites web dans le monde. Saviez-vous que la Suisse présente une des plus fortes densités de noms de domaine du monde ? En moyenne, en 2010, un habitant sur six a son propre nom de domaine mais il y a de grandes différences régionales : dans le canton de Zoug par exemple, un habitant sur trois a déjà un nom de domaine, dans le canton du Jura en revanche, un sur 14 seulement. 12.3.1. Termes rattachés au web L'expression en ligne signifie « connecté à un réseau », en l'occurrence le réseau informatique Internet. Cette expression n'est pas propre au Web, on la retrouve à propos du téléphone. Un hôte est un ordinateur en ligne. Chaque hôte d'Internet est identifié par une adresse IP à laquelle correspondent zéro, un ou plusieurs noms d'hôte. Cette terminologie n'est pas propre au Web, mais à Internet. Une ressource du World Wide Web est une entité informatique (texte, image, forum Usenet, boîte aux lettres électronique, etc.) accessible indépendamment d'autres ressources. Une ressource en accès public est librement accessible depuis Internet. Une ressource locale est présente sur l'ordinateur utilisé, par opposition à une ressource distante (ou en ligne), accessible à travers un réseau. On ne peut accéder à une ressource distante qu'en respectant un protocole de communication. Les fonctionnalités de chaque protocole varient : réception, envoi, voire échange continu d'informations. Une URL (Uniform Resource Locator) pointe sur une ressource. C'est une chaîne de caractères permettant d'indiquer un protocole de communication et un emplacement pour toute ressource du Web. Un hyperlien (ou lien) est un élément dans une ressource associé à une URL. Les hyperliens du Web sont orientés : ils permettent d'aller d'une source à une destination. HTML (HyperText Markup Language) et XHTML (Extensible HyperText Markup Language) sont les langages informatiques permettant de décrire le contenu d'un document (titres, paragraphes, disposition des images, etc.) et d'y inclure des hyperliens. Un document HTML est un document décrit avec le langage HTML. Dans un mode de communication client-serveur, un serveur est un hôte sur lequel fonctionne un logiciel serveur auquel peuvent se connecter des logiciels clients fonctionnant sur des hôtes clients. Un serveur Web est un hôte sur lequel fonctionne un serveur HTTP. Un serveur Web héberge les ressources qu'il dessert. Un navigateur Web est un logiciel client HTTP conçu pour accéder aux ressources du Web. Sa fonction de base est de permettre la consultation des documents HTML disponibles sur les serveurs HTTP. Le support d'autres types de ressource et d'autres protocoles de communication dépend du navigateur considéré. Didier Müller 12-6 juillet 2011 L'informatique au lycée Chapitre 12 Une page Web (ou page) est un document destiné à être consulté avec un navigateur Web. Une page Web est toujours constituée d'une ressource centrale (généralement un document HTML) et d'éventuelles ressources liées automatiquement accédées (typiquement des images). Un éditeur HTML (ou éditeur Web) est un logiciel conçu pour faciliter l'écriture de documents HTML et de pages Web en général. Un site Web (ou site) est un ensemble de pages Web et d'éventuelles autres ressources, liées dans une structure cohérente, publiées par un propriétaire (une entreprise, une administration, une association, un particulier, etc.) et hébergées sur un ou plusieurs serveurs Web. Visiter un site Web signifie « consulter ses pages ». Le terme visite vient du fait que l'on consulte généralement plusieurs pages d'un site, comme on visite les pièces d'un bâtiment. Une adresse Web est une URL de page Web, généralement écrite sous une forme simplifiée limitée à un nom d'hôte. Une adresse de site Web est en fait l'adresse d'une page du site prévue pour accueillir les visiteurs. Un hébergeur Web est une entreprise de services informatiques hébergeant (mettant en ligne) sur ses serveurs Web les ressources constituant les sites Web de ses clients. 12.3.2. Web profond (deep web) L'exploration récursive du Web à partir de ressources bien choisies est la méthode de base programmée dans les robots d'indexation des moteurs de recherche. Le Web profond, ou Web invisible, est la partie du Web qui n'est pas indexée et donc introuvable avec les moteurs de recherche généralistes. Des études indiquent que la partie invisible du Web représente plus de 99 % du Web. Le Web profond comprend notamment les ressources suivantes : • les ressources inaccessibles au public, donc aux robots d'indexation 1, notamment les pages administratives ou payantes, protégées par un mot de passe ; • les ressources qui ne sont pas communiquées par des protocoles de communication pris en charge par les robots (souvent ils ne prennent en charge que HTTP et HTTPS) ; • les ressources dont le format de données n'est pas pris en charge par le robot ; • les ressources listées dans un fichier d'exclusion des robots ; • les ressources exclues pour référencement abusif (spamdexing2) ; • les ressources exclues par le robot car considérées comme trop peu pertinentes ; • les ressources vers lesquelles les hyperliens sont créés dynamiquement en réponse aux interrogations des visiteurs. Ces dernières ressources proviennent généralement de bases de données et constituent la partie la plus importante du Web profond. 12.3.3. Exploration du Web Le World Wide Web, en tant qu'ensemble de ressources hypertextes, peut être modélisé par un graphe orienté où les ressources sont les sommets et les hyperliens les arcs. Du fait que le graphe est orienté, certaines ressources peuvent constituer des puits : il n'existe aucun chemin vers le reste du Web. À l'inverse, certaines ressources peuvent constituer des sources en indiquant des liens vers d'autres ressources. Le graphe obtenu n'est pas forcément connexe : il n'est peut-être pas possible de rejoindre un sommet à partir d'un autre... Un moteur de recherche comme Google est un ensemble de robots qui parcourent le Web de page en page, en suivant les liens entre ces pages, puis qui 1 Un robot d'indexation (ou littéralement araignée du Web ; en anglais web crawler ou web spider) est un logiciel qui explore automatiquement le Web. Il est généralement conçu pour collecter les ressources (pages web, images, vidéos, documents Word, PDF ou PostScript, etc.), afin de permettre à un moteur de recherche de les indexer. 2 Le spamdexing est un ensemble de techniques consistant à tromper les moteurs de recherche sur la qualité d'une page ou d'un site afin d'obtenir, pour un mot-clef donné, un bon classement dans les résultats des moteurs. Didier Müller 12-7 juillet 2013 Réseaux indexent automatiquement les pages visitées. Trois étapes sont indispensables à son fonctionnement : • La collecte d'information grâce à des robots (aussi appelés spiders ou crawlers). • L'indexation des données collectées et la constitution d'une immense base de données nommée « index ». • Le traitement des requêtes, avec en particulier un système d'interrogation de l'index et de classement des résultats en fonction de critères de pertinence suite à la saisie de mots-clés. Des documents apparaissent et disparaissent tous les jours : il faut donc constamment réactualiser cette base de données. Aucun moteur de recherche ne peut parcourir la totalité des pages en un jour (ce processus peut prendre plusieurs semaines). 12.4. Google Larry Page Sergey Brin 3 L'histoire de l'entreprise Google commence par la rencontre de deux étudiants de l'université de Stanford en 1995. En cette année, Sergey Brin (23 ans) et Larry Page (24 ans) commencent à travailler sur un nouveau moteur de recherche. Ils nomment leur projet BackRub. Ils imaginent un logiciel qui analyserait les relations entre les sites web afin d'offrir des meilleurs résultats que ceux donnés par leurs concurrents de l'époque, Altavista notamment. Une fois leurs travaux finalisés, les deux étudiants commencent à concrétiser leur projet de moteur de recherche, et à cet effet, achètent un téraoctet de disque dur d'occasion, afin de créer une base de donnée. Cette installation sommaire a pris place dans la chambre de Larry Page. Les deux entrepreneurs sollicitent des entreprises (Sun Microsystems entre autres), famille et amis, et parviennent finalement à réunir un million de dollars pour fonder la compagnie. Dans la plus pure tradition des pionniers de l'informatique, Google Inc. s'installe dans un garage de Menlo, loué par un ami, en septembre 1998, La société comporte trois personnes : Sergey, Larry et Craig Silverstein qui est aujourd'hui directeur de Google Technology. Alors que le moteur est toujours en phase version bêta3, il répond à près de 10'000 requêtes par jour. En août 1999, la barre des 3 millions de recherches quotidiennes est franchie. En décembre 1998, PC Magazine classe Google dans sa liste des 100 meilleurs sites au monde. En février 1999, c'est 500'000 requêtes journalières que Google doit gérer. Devenant trop grand pour le garage qui l'héberge, Google se déplace, en mars, dans un bureau sur l'avenue de l'université de Palo Alto et 8 personnes y travaillent désormais. Dès janvier 1999, la presse mondiale commence à se faire l'écho des performances de ce nouveau moteur de recherche. Le journal français Le Monde écrit ainsi que le choix technologique de Google « s'avère très efficace à l'usage ». Ainsi, une recherche avec les mots « Bill Clinton » renvoie d'abord au site de la Maison Blanche, alors qu'AltaVista ne fait apparaître le site qu'après des dizaines d'autres références. Autre avantage : Google affiche les mots-clés en gras dans le contexte d'une phrase pour chaque lien, alors qu'Altavista ne fournit, à l'époque, que les liens eux-mêmes. La société déménage une seconde fois vers son emplacement définitif, le Googleplex, situé à Mountain View, en Californie. Le moteur de recherche, jusque-là en version bêta, achève sa phase de test le 9 septembre. Google assure alors la gestion de 3 millions de recherche par jour. Le 9 mai 2000, le moteur de recherche est disponible en 10 nouvelles langues : allemand, danois, espagnol, finnois, français, italien, néerlandais, norvégien, portugais et suédois, permettant à la société de pénétrer de nouveaux marchés et de gagner en importance. Tout juste un mois plus tard, en juin 2000, Google est le premier moteur de recherche à avoir référencé un milliard de pages web. L'entreprise cherche à étendre la portée de son moteur en concentrant ses efforts sur l'Asie, avec les versions chinoise, japonaise et coréenne (12 septembre), puis au monde entier, totalisant 26 langues dès le 27 mars 2001. Fin octobre 2000, Google signe un partenariat avec Yahoo! et commence à proposer de la publicité ciblée en fonction des mots-clés. L'année 2000 voit le trafic journalier du site dépasser les 100 millions de requêtes, ce qui représente plus de 1000 requêtes/seconde en moyenne. Par son succès et sa croissance exponentielle, l'entreprise devient un phénomène mondial de presse. L'année 2001 s'achève par une conquête physique du monde et par l'annonce de la 3 milliardième page indexée. Le 4 septembre 2001, Google obtient la validation de son brevet concernant Un produit en période de test bêta est généralement soumis à un nombre important ou représentatif de personnes : les bêta-testeurs. Ils peuvent être soit des employés de la société qui développe le logiciel, soit des bénévoles notamment dans le cas des logiciels libres. Ces personnes ont pour but d'utiliser le logiciel et de rapporter les problèmes rencontrés ainsi que leurs suggestions. Didier Müller 12-8 juillet 2011 L'informatique au lycée Chapitre 12 PageRank. Le moteur de recherche continue ainsi sa croissance, est décliné en plus de 100 langues en 2004 et 150 de nos jours. Aujourd'hui Google est le premier moteur de recherche sur Internet, que 80 % d'internautes américains utilisent contre seulement 35 % de Chinois, qui préfèrent l'outil chinois Baidu. C'est à partir de 2002 que l'entreprise diversifie son activité, basée jusqu'alors sur son moteur de recherche. Apparaitront alors, parmi les plus connus, Gmail, Google Earth, Google Maps, Google Documents, Google Books, etc. 12.4.1. Fonctionnement du moteur de recherche Voici comment se passe une recherche avec Google : 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. L'internaute surfe sur Google.ch. Il tape des mots-clés. Sur certains navigateurs, Google complète certaines requêtes avec des termes de recherche fréquents. L'internaute appuie sur la touche Entrée. Google ôte les mots non-significatif tels que les articles. La requête est dirigée vers le serveur Google le plus proche. Google recherche les informations correspondant à la requête parmi les milliards de pages stockées sur des milliers d'ordinateurs de par le monde. Le gestionnaire de requête filtre les résultats pour proposer les plus pertinents. Il utilise plus de 200 questions et une démarche proche de la logique humaine pour affiner les résultats. Dans certaines langues, le logiciel effectue des recherches de synonymes qui permettraient de présenter des résultats encore plus pertinents. Un correcteur orthographique entre en action pour rechercher des liens en tenant compte d'une éventuelle faute de frappe. Le logiciel recherche spam, virus et autres logiciels malveillants sur les pages. Google vérifie le type de fichier des contenus qu'il va lister. Les pages sont classées en fonction de leur PageRank (voir paragraphe suivant). Avant d'afficher les liens actifs, Google prépare les versions qu'il a déjà stockées sur ses serveurs (et appelés « cache »), afin que l'internaute puisse au besoin les visionner. Le moteur prépare aussi une liste des Pages similaires, obtenue en utilisant diverses logiques pour trouver des mots-clés en rapport avec ceux de la recherche initiale. La recherche que l'on a effectuée est devenue l'une des centaines de millions de pages générées par Google quotidiennement. Entre l'étape 5 et l'étape 16, il s'est écoulé moins d'une seconde ! 12.4.2. PageRank Le PageRank ou PR est l'algorithme d'analyse des liens concourant au système de classement des pages Web utilisé par le moteur de recherche Google pour déterminer l'ordre dans les résultats de recherche qu'il fournit. Ce système a été inventé par Larry Page, cofondateur de Google. On attribue à chaque page un score compris entre 0 et 10, proportionnel au nombre de fois que passerait par cette page un internaute parcourant aléatoirement le graphe du Web en suivant les liens. L'idée principale est que si une page A fait un lien vers une page B, alors c'est que la page A juge que la page B est suffisamment importante pour mériter d'être citée et d'être proposée aux visiteurs. Ce lien de A vers B augmente le PageRank de B. Didier Müller 12-9 juillet 2013 Réseaux Deux idées supplémentaires mais essentielles viennent la compléter : • l'augmentation de PageRank de la page B est d'autant plus importante que le PageRank de la page A est élevé. En d'autres termes, il est bien plus efficace d'avoir un lien depuis la page d'accueil de Google que depuis une page du site de votre petit neveu. • l'augmentation de PageRank de la page B est d'autant plus importante que la page A fait peu de liens. Autrement dit, si la page A juge qu'il n'y a qu'une page qui mérite un lien, alors il est normal que le PageRank de la page B augmente plus que dans le cas où de nombreuses pages obtiennent un lien. Formulation mathématique Appelons A1, A2, ... An les n pages pointant vers une page B. Notons PR(Ak) le PageRank de la page Ak, N(Ak) le nombre de liens sortants présents sur la page Ak et d un facteur compris entre 0 et 1, généralement fixé à 0.85. Le PageRank de la page B se calcule à partir du PageRank de toutes les pages Ak de la manière suivante : PR B=1 – d d⋅ PR A1 PR A 2 PR An N A 1 N A2 N An Cette formule est à la fois simple et compliquée. Simple parce qu'elle ne contient que des fractions, compliquée parce qu'elle est récursive : pour calculer le PageRank d'une page, il faut avoir calculé celui de toutes les pages pointant vers elle. Mais alors comment commencer ? En fait c'est très simple, il suffit de commencer avec des valeurs arbitraires de PageRank (par exemple 1). Le choix de cette valeur n'a pas d'influence sur le résultat final à condition que toutes les pages commencent avec la même valeur. Une application de la formule permet de calculer un nouveau PageRank pour chaque page, plus proche de la réalité que la valeur par défaut que nous avons choisie au début. Ensuite, nous recommençons à calculer les PageRank de toutes les pages en appliquant de nouveau la formule, mais en partant cette fois des valeurs que nous avons calculées précédemment. Après un certain nombre d'itérations, le système converge : les valeurs de PageRank de chaque page ne bougent plus entre deux itérations. En pratique la convergence est obtenue au bout de plusieurs dizaines d'itérations (tout dépend du nombre de pages considérées). Le PageRank d'une page B ne dépend donc que de trois facteurs : • le nombre de pages Ak faisant un lien vers B, • le PageRank de chaque page Ak, • le nombre de liens sortants de chaque page Ak. Il ne dépend ni du trafic, ni du nombre de fois qu'apparaît un mot-clé. Exercice 12.1 Vous avez créé un site web. Comment pouvez-vous améliorer le PageRank de la page d'accueil (les moyens malhonnêtes sont permis) ? Exercice 12.2 Calculez le PageRank des pages web reliées selon le schéma ci-contre. A Prenez 1 comme PR initial. Faites une itération à la main, puis écrivez un programme pour montrer la convergence. Didier Müller 12-10 B C D juillet 2011 L'informatique au lycée Chapitre 12 12.5. Les réseaux pair-à-pair (peer to peer, P2P) Les systèmes pair-à-pair permettent à plusieurs ordinateurs de communiquer via un réseau, de partager simplement des objets – des fichiers le plus souvent, mais également des flux multimédia continus (streaming), le calcul réparti, un service (comme la téléphonie avec Skype), etc. sur Internet. Le pair-à-pair a permis une décentralisation des systèmes, auparavant basés sur quelques serveurs, en permettant à tous les ordinateurs de jouer le rôle de client et serveur (voir clientserveur). En particulier, les systèmes de partage de fichiers permettent de rendre les objets d'autant plus disponibles qu'ils sont populaires, et donc répliqués sur un grand nombre de nœuds. Cela permet alors de diminuer la charge (en nombre de requêtes) imposée aux nœuds partageant les fichiers populaires, ce qui facilite l'augmentation du nombre de nœuds et donc de fichiers dans le réseau. Un réseau de type client-serveur. Un réseau pair-à-pair. L'utilisation d'un système pair-à-pair nécessite pour chaque nœud l'utilisation d'un logiciel particulier. Ce logiciel, qui remplit alors à la fois les fonctions de client et de serveur, est parfois appelé « servent » (de la contraction de « serveur » et de « client », due à Gnutella), ou plus communément mais de façon réductrice, « client ». C'est là l'origine du terme pair (de l'anglais : peer) que l'on trouve dans pair-à-pair : les communications et les échanges se font entre des nœuds qui ont la même responsabilité dans le système. Le modèle pair-à-pair va bien plus loin que les applications de partage de fichiers. Il permet en effet de décentraliser des services et de mettre à disposition des ressources dans un réseau. Tout nœud d'un réseau pair-à-pair peut alors proposer des objets et en obtenir sur le réseau. Les systèmes pair-à-pair permettent donc de faciliter le partage d'informations. Ils rendent aussi la censure ou les attaques légales ou pirates plus difficiles. Ces atouts font des systèmes pair-à-pair des outils de choix pour décentraliser des services qui doivent assurer une haute disponibilité tout en permettant de faibles coûts d'entretien. Toutefois, ces systèmes sont plus complexes à concevoir que les systèmes client-serveur. Applications Chaque internaute est un pair du réseau et les ressources sont des fichiers. Chacun peut donc partager ses fichiers et télécharger les fichiers des autres. Ces systèmes s'avèrent très efficaces y compris quand il s'agit d'échanger des données de gros volumes. Une seconde application destinée au grand public ou à la recherche est la possibilité pour les internautes de mettre à disposition une partie de leur puissance de calcul. Les ordinateurs d'aujourd'hui sont tellement puissants que la majeure partie du temps, une grande partie de leur processeur est disponible pour effectuer des calculs. Le projet BOINC a saisi cette opportunité pour créer un gigantesque parc informatique réparti dans le monde afin d'utiliser cette immense puissance de calcul totale pour effectuer des calculs trop complexes pour être réalisé dans un laboratoire. Le projet BOINC demande donc au particulier de permettre l'usage de la puissance de calcul dont il n'a pas immédiatement besoin pour contribuer à la recherche sur le repliement de protéine (Folding@Home) et même à la recherche d'intelligence extra-terrestre (SETI@home). Didier Müller 12-11 juillet 2013 Réseaux 12.6. L'informatique dans les nuages L'« informatique dans les nuages » (cloud computing) est un concept apparu assez récemment, mais dont les prémices remontent à quelques années, notamment à la technologie des grilles de calcul, utilisée pour le calcul scientifique. Le cloud computing fait référence à l'utilisation de la mémoire et des capacités de calcul des ordinateurs et des serveurs répartis dans le monde entier, et liés par un réseau, tel Internet. Cela signifie pour les utilisateurs, qu'ils accèdent à leurs applications et données sur des serveurs distants et non plus sur leurs propres machines. Dans ce concept, les utilisateurs n'ont plus à se soucier des aspects techniques (infrastructures, déploiement, mises à jour…). Les utilisateurs du nuage peuvent ainsi disposer d'une puissance informatique considérable. L'intérêt du cloud computing est évident. Au lieu d'acheter cher des serveurs et des logiciels, qui ne sont pas utilisés à 100 %, les entreprises les louent et ne paient que pour l'usage qu'elles en font. Elles peuvent aussi, en quelques minutes, accéder à des capacités de stockage et de calcul supplémentaires, auxquelles elles n'auraient pas pu prétendre si elles avaient dû se les payer seules. Il est fort probable que vous utilisez déjà le cloud computing sans vous en rendre compte : Gmail, Flickr ou Spotify sont des services auxquels vous avez accès via Internet et où vous stockez des données. C'est exactement le principe du cloud computing. Avantages • • • L'accessibilité : vos données sont sur un serveur, consultables à n'importe moment et où que vous soyez via une connexion Internet. Partage et travail collaboratif : vous pouvez également partager vos ressources et permettre ainsi un travail à plusieurs (pae exemple Google Docs). Économique : votre prestataire gère complètement les aspects techniques du service et des coûts engendrés. Pour une entreprise, cela se traduit par exemple par la disparition de mises à jour pour chaque poste, car réalisées côté serveur. Homogénéisation des versions et gain de temps. Inconvénients • • • Connexion Internet obligatoire : sans celle-ci, inutile d'espérer pouvoir accéder à vos ressources. C'est un réel frein lorsqu'on sait qu'en pleine campagne par exemple, le WiFi devient rare et la 3G difficile à capter. Transportabilité des données : vos données sont-elles « prisonnières » du service auxquelles elles sont liées ? Comment récupérer nos données en cas de fermeture d'un service ? Sécurité et intégrité des données : le sujet est loin d'être simple et mérite des études approfondies. En regroupant vos ressources sur Internet vous perdez, une partie du contrôle sur celles-ci. Dès lors que vos données, même chiffrées, transitent sur Internet, le risque de piratage est bien plus présent que sur une utilisation locale. Deux exemples récents de pertes de données utilisateurs en cloud computing prouvent que le sujet est encore préoccupant. Toutes les données (contacts, agenda, photos, etc) d'utilisateurs du téléphone Sidekick (de l'opérateur T-mobile) se sont envolées suite à une opération de maintenance ratée par Microsoft. Autre exemple, un service en ligne de sauvegardes, Carbonite, a perdu les données d'une cinquantaine de clients, à cause d'une défaillance matériel. Il est donc primordial de prendre conscience des limites que le cloud computing impose. Les avis divergent sur l'intérêt du cloud computing. D'un côté, les révolutionnaires vénèrent le principe et voient le futur sur un petit nuage. Un avenir mutualisé et sans cesse connecté à la Toile. De l'autre, les méfiants qui le redoutent et font des inconvénients cités ci-dessus leur argumentaire d'anti-cloud. Trop risqué et trop fragile, ce n'est pas un concept viable. Pour Richard Stallman, à l'origine du système d'exploitation libre GNU, l'informatique dans le nuage « est un piège », ses utilisateurs perdant le contrôle de leurs applications. Ce militant du logiciel libre y voit un concept publicitaire sans intérêt, rejoignant les critiques exprimées par Larry Ellison, fondateur d'Oracle, selon lequel il s'agit d'un phénomène de mode. Didier Müller 12-12 juillet 2011 L'informatique au lycée Chapitre 12 Sources [1] Wikipédia, « Modèle OSI », <http://http://fr.wikipedia.org/wiki/Modèle_OSI > [2] Site du Zéro. « Ils en tiennent une couche : OSI et TCP/IP », <http://www.siteduzero.com/informatique/tutoriels/les-reseaux-de-zero/ils-en-tiennent-unecouche-osi-et-tcp-ip> [3] Interstices, « Internet, le conglomérat des réseaux », <http://interstices.info/internet> [4] Wikipédia, « World wide web », <http://fr.wikipedia.org/wiki/World_Wide_Web> [5] Comment ça marche No5, Novembre 2010, pp. 62-65 [6] Wikipédia, «Google», <http://fr.wikipedia.org/wiki/Google> [7] Webrankinfo, « Description de l'algorithme du PageRank », <http://www.webrankinfo.com/dossiers/pagerank/introduction> [8] Eisermann Michael, « L'algorithme PageRank de Google : une promenade sur la toile », <http://www.igt.uni-stuttgart.de/eiserm/enseignement/google-promenade.pdf> [9] Wikipédia, « Pair à pair », <http://fr.wikipedia.org/wiki/Pair_à_pair> Didier Müller 12-13 juillet 2013