Lire - I3S

Transcription

Lire - I3S
Introduction aux Réseaux PeiP2 : Introduction au Web Dino López, Benjamin Miraglio et Philip Julien 1. Adresses IP et ports Lorsqu'on souhaite se connecter à une machine distante (pour télécharger ou envoyer un fichier, parcourir une page web, lire ses emails, etc.), il faut connaître au minimum, les 2 informations suivantes : •
•
•
L'identité de la machine distante (« le serveur ») qui fournit le service recherché. Le port d'écoute du serveur. Le protocole de transport. 1.1. Identité d’une machine Fréquemment, nous connaissons l'identité de la machine distante par son nom canonique (« humain »). Par exemple, www.google.fr (ou google.fr uniquement), smtp.unice.fr, etc. Cependant, pour se connecter à une machine distante, ce nom de machine doit toujours être traduit en son ID réseau, qui est très souvent, une adresse IP (de type IPv4) de la forme « w.x.y.z ». Lorsqu'on visite par exemple un site web, le nom du site est toujours traduit en adresse IP par le navigateur web. De ce fait, on pourrait ne pas connaître le nom canonique de la machine distante ou tout simplement vouloir travailler avec une machine distante sans nom canonique, et donc la désigner uniquement avec son adresse IP et pouvoir néanmoins travailler dessus. La traduction du nom canonique en adresse IP et vice-­‐versa se fait grâce à l'utilisation d'un protocole appelé DNS (Domain Name System -­‐ Système de noms de domaines). Pour obtenir l'adresse IP d'une machine, en ligne de commande, vous pouvez utiliser la commande nslookup. 1.2. Relation numéro de port <-­‐> service En ce qui concerne le port d'écoute, celui-­‐ci permet à la machine d'offrir le service. En conséquence, le numéro de port donne un premier indice sur le service offert. Par exemple, le port 80 est utilisé par le protocole HTTP (le service Web), le port 25 est utilisé par le protocole SMTP (le service de transmission d'e-­‐mails), le port 21 est utilisé par le service de transfert de fichiers ftp. Les standards spécifient que les numéros de port inférieurs ou égaux à 1024, dits les « ports bien connus », sont utilisés par de services standardisés (HTTP, SMTP, DNS, …). Dans un système d'exploitation, l'utilisation de ports bien connus requiert des droits d'administration (droits de root dans les systèmes basés sur Unix, ou Administrateur dans les systèmes Windows). Au dessus de 1024, on retrouve des ports que tout utilisateur peut ouvrir avec ou sans droits d'administration. 1.3. Le protocole de transport Enfin, le protocole de transport peut-­‐être TCP ou UDP. Dans ce cours, nous n'entrerons pas dans les détails de tels protocoles. La librairie Java que vous utiliserez un peu plus loin pour vos exercices de ce TP fait appel au protocole TCP. La figure ci-­‐dessous illustre graphiquement les grandes étapes à accomplir pour télécharger une page web à partir d’un nom canonique de serveur. DNS
2
192.168.0.1:80
Internet
1
3
Katty
1. Who is www.exemple.com? 2. www.exemple.com is 192.168.0.1 3. 192.168.0.1, please give m e index.html 2. La commande ping Afin de savoir si une certaine adresse IP a été attribuée ou si une certaine adresse IP est joignable par le réseau, la solution la plus simple consiste à lui envoyer un certain type de requêtes. Si la machine répond à nos requêtes (même si la requête est négative) ceci indique que l'adresse est attribuée. Le travail effectué par la commande ping consiste à envoyer ce type de requête. Étant donné que les réponses aux requêtes ping peuvent être utilisées par un hacker pour avoir un aperçu de l'architecture réseau, certains administrateurs décident de donner une configuration spéciale aux serveurs afin qu'ils ne répondent pas aux requêtes ping. En supposant une configuration standard de machine du réseau, la commande $ ping 192.168.0.1
permettrait de savoir si la machine 192.168.0.1 existe ou pas dans le réseau. 3. Les Identifiants Uniformisé de Ressources -­‐ URI Un URI (Uniform Resource Identifier ou Identifiant Uniforme de Ressource) est une adresse qui permet d'identifier l'emplacement d'une ressource. Un URI est composé d'un URL (Localisateur Uniforme de Ressource) et/ou d'un URN (Nom Uniforme de Ressource). Dans le cas spécifique du protocole HTTP, le terme URL est utilisé comme synonyme d'URI et indique l'emplacement d'une ressource dans le Web. Un exemple d'URL est http://www.yahoo.com/. Le format d'un URL indique le protocole à utiliser, l'identifiant de l'hôte et le nom de la ressource. Cependant, d'autres éléments peuvent être indiqués, comme le port à utiliser. En effet, même si le port HTTP par défaut est le port 80, un administrateur peut à tout moment offrir un service par le biais du protocole HTTP en utilisant un port différent (p.e. 8080), et dans ce cas, l'URL sera donné sous la forme suivante http://www.example.com:8080/ (comme vous pouvez le déduire, l'absence d'un numéro de port indique l'utilisation du port par défaut). 4. Exercices 1. Toute machine connectée au réseau a une adresse IP associée. Si vous êtes capable de naviguer sur Internet c'est que votre machine est connectée au réseau et qu'elle possède une adresse IP. Sur Windows, la commande ipconfig vous permet de connaître les informations liées aux cartes réseaux vues par le système. Sur Linux, vous devez utiliser la commande ifconfig. Selon votre système d'exploitation, exécutez ipconfig ou ifconfig et retrouvez votre adresse IP. 2. Comme expliqué plus haut dans cette section, pour vous connecter à une machine, vous devez connaître au moins son nom canonique car à partir de là, l'application trouvera l'adresse IP de la machine distante. Utilisez la commande host (sous Linux) ou nslookup (sous Windows) afin de connaître l'adresse IP de la machine www.i3s.unice.fr. Ensuite, ouvrez votre navigateur web et écrivez dans sa barre d'adresses l'adresse IP retrouvée. Vérifiez que vous téléchargez en effet la page web du site. Faites de même avec 2 autres serveurs web de votre choix. Remarquez que votre navigateur supporte aisément l'absence d'indication de votre part de « http: » avant l'adresse IP ou le nom canonique, au sens où il rajoute ceci automatiquement, signifiant qu'il va contacter le service à l'adresse indiquée en utilisant le protocole HTTP. 3. Trouver un nom en partant d'une adresse IP est également possible. On parle de « Résolution Inverse ». Utilisez la commande nslookup pour retrouver le nom canonique de votre machine et celui de celle de votre camarade le plus proche. Essayez de demander à votre navigateur de contacter le nom canonique retrouvé. Pourquoi cela ne fonctionne pas ? 4. À l'aide de la page http://fr.wikipedia.org/wiki/Uniform_Resource_Locator, indiquez et expliquez chaque élément que vous identifiez dans l'URL suivante : http://Jojo:[email protected]:8888/chemin/d/acc%C3%A8s.php?q=req&q2=req2#si
gnet Par exemple, « http » = schéma de représentation (protocole HTTP) 5. Utilisez la commande ping afin de confirmer que les machines de vos camarades sont joignables par le réseau.