Programmation Réseau. ! UFR Informatique ! 2013-2014. Jean-Baptiste.Yunes@univ-paris-diderot.fr



Documents pareils
L3 informatique Réseaux : Configuration d une interface réseau

2. DIFFÉRENTS TYPES DE RÉSEAUX

Plan. Programmation Internet Cours 3. Organismes de standardisation

Introduction aux Technologies de l Internet

Cisco Certified Network Associate

Introduction. Adresses

Figure 1a. Réseau intranet avec pare feu et NAT.

DIFF AVANCÉE. Samy.

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Réseaux et protocoles Damien Nouvel

Algorithmique et langages du Web

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

RESEAUX TCP/IP: NOTIONS AVANCEES. Preparé par Alberto EscuderoPascual

Serveurs de noms Protocoles HTTP et FTP

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

Culture informatique. Cours n 9 : Les réseaux informatiques (suite)

Informatique Générale Les réseaux

Présentation et portée du cours : CCNA Exploration v4.0

Devoir Surveillé de Sécurité des Réseaux

1.Introduction - Modèle en couches - OSI TCP/IP

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

18 TCP Les protocoles de domaines d applications

Ch2 La modélisation théorique du réseau : OSI Dernière maj : jeudi 12 juillet 2007

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

TP : Introduction à TCP/IP sous UNIX

TP 1 : LES COMMANDES RESEAUX Matière: RESEAUX LOCAUX

L annuaire et le Service DNS

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July ENPC.

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Présentation du modèle OSI(Open Systems Interconnection)

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

Protocoles IP (2/2) M. Berthet. Les illustrations sont tirées de l ouvrage de Guy Pujolle, Cours réseaux et Télécom Contributions : S Lohier

Présentation et portée du cours : CCNA Exploration v4.0

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

CAS IT-Interceptor. Formation «Certificate of Advanced Studies»

Rappels réseaux TCP/IP

Groupe Eyrolles, 2000, 2004, ISBN :

Sécurité des réseaux Les attaques

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

Programme formation pfsense Mars 2011 Cript Bretagne

Internet Protocol. «La couche IP du réseau Internet»

Outils de l Internet

Protocoles réseaux. Abréviation de Binary Digit. C'est la plus petite unité d'information (0, 1).

Cours d'informatique «Internet» Session 1

Daniel POULIN DRT 3808 (version 2010) Faculté de droit, Université de Montréal

1. Fonctionnement de l Internet 2. Protocoles applicatifs 3. Programmation réseau

Les Réseaux Les transferts de données

Présentation Internet

Le service de nom : DNS

Tunnels. Plan. Pourquoi? Comment? Qu est-ce? Quelles solutions? Tunnels applicatifs ESIL INFO 2005/2006. Sophie Nicoud

Sécurité d IPv6. Sécurité d IPv6. Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr. Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr

Administration de Réseaux d Entreprises

Cours CCNA 1. Exercices

VPN TLS avec OpenVPN. Matthieu Herrb. 14 Mars 2005

COMMANDES RÉSEAUX TCP/IP WINDOWS.

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

M1101a Cours 4. Réseaux IP, Travail à distance. Département Informatique IUT2, UPMF 2014/2015

L3 informatique TP n o 2 : Les applications réseau

Cours de sécurité. Pare-feux ( Firewalls ) Gérard Florin -CNAM - - Laboratoire CEDRIC -

Services Réseaux - Couche Application. TODARO Cédric

Étude de l application DNS (Domain Name System)

LE RESEAU GLOBAL INTERNET

Le protocole RADIUS Remote Authentication Dial-In User Service

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

R eseaux TP RES /2015

SSL. Secure Socket Layer. R. Kobylanski janvier version 1.1 FC INPG. Protocole SSL Application avec stunnel

Réseaux - Cours 4. Traduction d adresse (NAT/PAT) et Service de Nom de Domaine (DNS) Cyril Pain-Barre. IUT Informatique Aix-en-Provence

Oléane VPN : Les nouvelles fonctions de gestion de réseaux. Orange Business Services

TER Réseau : Routeur Linux 2 Responsable : Anthony Busson

TP réseaux Translation d adresse, firewalls, zonage

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

Les clés pour un hébergement web réussi. Bruno Mairlot Maehdros SPRL

Sécurité des réseaux Firewalls

Administration UNIX. Le réseau

TCP/IP, NAT/PAT et Firewall

Fonctionnement de Iptables. Exercices sécurité. Exercice 1

PACK SKeeper Multi = 1 SKeeper et des SKubes

LAB : Schéma. Compagnie C / /24 NETASQ

Quelques protocoles et outils réseaux

Licence Pro ASUR Supervision Mai 2013

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

NOTIONS DE RESEAUX INFORMATIQUES

SOMMAIRE : CONFIGURATION RESEAU SOUS WINDOWS... 2 INSTRUCTIONS DE TEST DE CONNECTIVITE... 5

Le filtrage de niveau IP

DUT Informatique Module Système S4 C Département Informatique 2009 / Travaux Pratiques n o 5 : Sockets Stream

Supervision des réseaux

TD n o 8 - Domain Name System (DNS)

Internet - Outils. Nicolas Delestre. À partir des cours Outils réseaux de Paul Tavernier et Nicolas Prunier

Sécurité des réseaux sans fil

Administration des ressources informatiques

Les RPV (Réseaux Privés Virtuels) ou VPN (Virtual Private Networks)

M Architecture des réseaux

Administration réseau Résolution de noms et attribution d adresses IP

20/09/11. Réseaux et Protocoles. L3 Informatique UdS. L3 Réseaux et Protocoles. Objectifs du cours. Bibliographie

SSH, le shell sécurisé

Transcription:

Programmation Réseau Jean-Baptiste.Yunes@univ-paris-diderot.fr! UFR Informatique! 2013-2014 1

Programmation Réseau Introduction Ce cours n est pas un cours de réseau on y détaillera pas de protocoles de basniveau (mais on en parlera) Ce cours est un cours de programmation réseau on y apprend à écrire des applications nécessitant de la communication 2

Pour le programmeur, qu est-ce qu un réseau? un ensemble de services un moyen de communication (ensemble de machines/applications atteignables) 3

Il existe au moins deux grands modes de communication : par paquet (datagram) : la poste en est un bon exemple dans ce mode on est pas connecté (encore que), on est juste atteignable en flux (stream) : la téléphonie en est un bon exemple dans ce mode on est connecté 4

dans le mode paquet : il n existe pas d ordre dans la délivrance des paquets un paquet posté en premier peut arriver en dernier il n existe pas non plus de fiabilité un paquet envoyé peut être perdu intérêt : souple et léger... 5

dans le mode flux : les informations sont reçues dans l ordre exact de leur émission il n y a pas de perte inconvénient : nécessite l établissement d une connexion et consomme donc des ressources pour sa gestion 6

Comment ceci fonctionne-t-il dans la réalité? le service de base est un mode paquet non fiable la perte peut être compensée par des réémissions la dégradation peut être compensée par des codages Comment passe-t on d un tel service à des services fiables? en superposant des couches logicielles agrémentant les couches inférieures de propriétés attendues 7

le modèle de référence est le modèle ISO/OSI (Open System Interconnection) en 7 couches 2010 escotal.com 8

Couche Application Présentation Session Transport Réseau Liaison Physique Protocoles FTP, HTTP, SMTP, POP, SSH, TELNET, IMAP SSL, WEP, WPA, Kerberos Ports TCP, UDP, SPX IPv4, IPv6, ARP, IPX 802.11, WiFi, ATM, Ethernet, ISDN Fibre, Câble, Radio 9

Le modèle Internet est à 4 couches skokberg.eu 10

Couche Protocoles Application FTP, HTTP, IMAP, POP Transport TCP, UDP Internet IPv4, IPv6, IPsec, ICMP Liaison ARP, PPP, DSL, Ethernet 11

Wikipedia 12

Rappelons que dans le monde Internet la normalisation est disponible sous la forme de RFCs (Request For Comments) documents officiels recouvrant tous les aspects de l Internet http://www.ietf.org/rfc.html 13

Les deux couches qui nous intéressent seront donc : la couche transport : UDP (User Datagram Protocol), RFC 768 TCP (Transmission Control Protocol), RFC 793 la couche application : très variée 14

Le couche transport fournit un ou plusieurs services de communication entre applications (par exemple TCP ou UDP) pour communiquer, ces applications doivent se connaître il existe donc un mécanisme de nommage une application fournit un service particulier sur une machine donnée le service est identifié par un port la machine est identifiée par une adresse ces informations sont similaires à celles jouées par un numéro de bureau (port) dans une administration donnée (machine) 15

un couple (adresse,port) est un point de communication toute communication ne peut s effectuer qu entre au moins deux points de communications l émetteur le (ou les) receveur(s) 16

une machine peut-être identifiée par : un nom Internet (pas strictement nécessaire) par exemple : www.samsung.com une machine peut posséder plusieurs noms par une adresse Internet (toute machine connectée au réseau en possède une) en réalité il s agit de l adresse d un dispositif réseau sur une machine (ex : 211.45.27.202) une adresse par dispositif mais possiblement plusieurs dispositifs pour une machine 17

Les adresses correspondent à une organisation structurelle du réseau Les machines préfèrent les nombres Les noms correspondent à une organisation logique Les humains préfèrent les noms Pensez à la situation des liens et des inœuds dans les systèmes de fichiers de la famille Unix inœud structure disque, lien structure logique 18

Le nom entièrement qualifié d une machine est une représentation hiérarchique de la structure logique à laquelle elle appartient Le nom est constitué de deux parties www.informatique.univ-paris-diderot.fr machine domaine 19

La spécification du domaine représente la hiérarchie des responsabilités exemple : l ufr d informatique de l université paris diderot située dans le domaine français le domaine le plus à droite est appelé domaine de premier niveau (top-level domain) en gros, deux types : génériques (ex. :.com,.edu, ) nationaux (ex. :.fr,.tz, ) 20

pour www.informatique.univ-parisdiderot.fr fr est le domaine national attribué par l ICANN à la france avec délégation à l AFNIC univ-paris-diderot est le sous-domaine attribué par l AFNIC à l université paris diderot avec délégation à la DSI de l université informatique est le sous-domaine attribué par la DSI à l UFR avec délégation au service informatique de l UFR d informatique www est le nom d une des machines sous la responsabilité de l UFR d informatique 21

Les adresses aussi sont structurées mais la structure est un reflet de la structure physique du réseau, du moins en théorie dans ce cours la structure des adresses ne nous intéresse pas cela relève du domaine pur des réseaux 22

Le service permettant de faire la translation d un nom en une adresse s appelle le service de nom, c est un annuaire le système aujourd hui le plus répandu est le DNS (RFC 882) qui est un service d annuaire distribué Important : les communications nécessitent la connaissance des adresses Internet des machines concernées On notera au passage qu il existe aujourd hui deux types d adresses : IPv4 et IPv6 (respectivement 4 et 8 octets) deux réseaux qui cohabitent 23

le service d annuaire distribué peut être interrogé à l aide d outils (des APIs sont disponibles comme on le verra plus tard) Outils : dig nslookup (souvent considéré comme obsolète) 24

25

26

27

D autre part, sur une machine donnée plusieurs communications peuvent prendre place simultanément par conséquent il doit être possible de les distinguer, comme pour différencier les téléphones fixes dans une entreprise, il existe la notion de port toute communication nécessite l utilisation d un port les ports sont donc utilisés pour assurer le multiplexage, un flux est identifié par deux couples (adresse,port) Les ports UDP et TCP sont distincts (deux espaces) 28

Il existe essentiellement trois types de ports : les ports reconnus, de numéro compris entre 0 et 1023 les ports réservés, de numéro compris entre 1024 et 49151 les ports libres, de numéro compris entre 49152 et 65535 29

Les ports reconnus (Well-known ports) sont utilisés par des services réseau d usage général et commun : 20 et 21 pour FTP 25 pour SMTP 80 pour HTTP ce qui signifie que pour établir une connexion avec un serveur web, il faut s adresser au port 80 de la machine concernée 30

Les ports réservés (Registered ports) : certains correspondent à des services d usage moins général (souvent des services propriétaires) 17500 pour Dropbox n importe quelle application peut en faire l usage quelle désire Les ports libres (Dynamic, private or ephemeral ports) normalement utilisés pour des durées limitées 31

Extrait du fichier /etc/services 32

sur les machines de la famille Unix, la configuration réseau (d une interface) peutêtre obtenue par la commande ifconfig ifconfig : configuration des interfaces une machine peut posséder plusieurs interfaces 33

boucle locale tunnel ethernet WiFi Firewire Virtual Box VMWare 34

Pour communiquer entre deux machines distantes séparées par des appareillages de relais, il est nécessaire de trouver un chemin (on dit une route) il existe donc sur le réseau de quoi permettre le guidage (on dit le routage) des paquets la consultation (sous Unix) des tables locales de routage s effectuent à l aide de la commande netstat 35

36

On peut observer les routes suivies par des paquets sur le réseau par l intermédiaire de la commande traceroute [-P protocole] machine Attention traceroute ne fournit qu une route probable Chaque paquet peut suivre une route différente pour atteindre un point donné à partir d une même source L algorithme utilisé par traceroute ne permet pas d obtenir une route réellement utilisée (en théorie non, en pratique oui) 37

38

On peut tester si une machine est présente (si le service n est pas interdit pour des raisons de sécurité) sur le réseau en utilisant le service de très bas-niveau d écho réseau. Ce service est habituellement désigné sous le vocable ping. Ce service peut-être obtenu à l aide de la commande ping 39

40

La commande hostname permet d obtenir le nom de la machine sur laquelle on est connecté 41

La commande netstat permet aussi d obtenir des informations relatives aux connexions connues de la machine netstat [-a] [-f famille] [-p protocole] 42

43

Il existe une commande permettant d établir une liaison TCP «interactive» (i.e. dont l entrée standard et la sortie standard correspondent à un bout de la liaison) telnet nom_ou_adresse [port] 44

on établit ici une connexion sur le service echo tcp d un serveur clavier réponse du serveur 45

On établit ici une liaison vers le service daytime en tcp 46

L établissement d une liaison UDP peut être aussi obtenue par emploi de la commande netcat nc -u machine port 47

Ces deux commandes permettent de fabriquer des applications réseau à moindre coût mais elles seront nécessairement primitives 48

Le principe général de l établissement d une connexion réseau est que l un des deux points de communication [m,p] doit être placé en attente d une demande de connexion (mode serveur) l autre point de communication [m,p ] peut alors demander l établissement d une connexion (mode client) la partie serveur décide d accepter ou non la connexion et si oui un nouveau point de communication [m,p ] est construit (à l aide d un port éphémère) et connecté avec le point de connexion du client une connexion est alors établie entre [m,p ] et [m,p ] à ce moment les deux points sont fonctionnellement interchangeables (symétrie de la liaison) 49

L objet standard de communication est la socket de quoi s agit-il? il faut avoir à l esprit que dans l univers inspiré d Unix «tout est fichier» un abus de langage pour signifier l uniformité d opérations d entrées/ sorties : «tout se manipule de la même manière en matière d entrées/sorties» y compris le réseau... où l objet sousjacent correspondant est appelé socket 50

Une communication standard s établit de façon suivante : la partie serveur est passive et attend toute demande de connexion sur un port donné la partie cliente choisit un port depuis lequel elle va émettre sa demande de connexion le serveur accepte la demande en établissant la connexion sur un port de service lorsque tout est établi, on aura bien un couple identifiant la connexion 51

Endianess Le codage Puisqu il s agit de communiquer entre machines diverses et variées, il est nécessaire de rappeler que la représentation des nombres aussi est variée. Pour les entiers, il y a deux grands types de codage : petit-boutiste ou petit-boutien (littleendian) grand-boutiste ou grand-boutien (bigendian) 52

Endianess On rappelle que le codage (univoque) d un nombre n en base b s écrit : n = cib i comme les machines utilisent des octets, on peut considérer la base comme égale à 256 pour un entier de 32 bits, 4 octets l écriture est donc : n = c3.256 3 +c2.256 2 +c1.256 1 +c0.256 0 53

Endianess se pose donc le problème du stockage de ces 4 octets en mémoire, deux grandes possibilités (parmi d autres) : petit-boutien (petit bout d abord) :!! adresse m m+1 m+2 m+3 chiffre c c c c grand-boutien (grand bout d abord) : adresse m m+1 m+2 m+3 chiffre c c c c 54

Endianess dans les communications ce problème est parfois dénommé «the NUXI problem»... le protocole IP a donc nécessité de faire un choix : c est celui du grand-boutisme cet ordre est aussi dénommé NBO (Network Byte Ordering) 55

Endianess il peut être nécessaire d effectuer soi-même, les conversions du codage courant vers NBO : en C, il existe des 4 fonctions pour convertir depuis l hôte vers le réseau (ou vice-versa) les types entiers de 16 bits et entiers de 32 bits appelés respectivement (short et long) : #include <arpa/inet.h> uint32_t htonl(uint32_t hostlong); uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort); 56

Endianess en C il faut bien prendre soin de réaliser les conversions pour toute donnée utilisée par les protocoles réseau... en Java, ce n est pas nécessaire, l API fait la conversion elle-même car le codage des entiers en Java est standardisé 57