220 likes | 338 Views
Protocoles sur Internet C. Petitpierre. Station. Passerelle. Station. couche supérieure. routage. couche supérieure. IP. IP. IP. IP. Réseau. Réseau. IP1 Phys1. IP2 Phys2. IP3 Phys3. Protocole ARP (Address Resolution Protocole). PhysA, IPA, 0 , IP2.
E N D
Station Passerelle Station couche supérieure routage couche supérieure IP IP IP IP Réseau Réseau
IP1 Phys1 IP2 Phys2 IP3 Phys3 Protocole ARP(Address Resolution Protocole) PhysA, IPA, 0, IP2 Trouve l'adresse physique dont on connaît l'adresse IP
Structure de chaque message envoyé sur Internet En-tête niveau physique En-tête IP Données de la couche supérieure
5 premiers mots de IP(Internet Protocol) VERSION IHL TYPE DE SERVICE LONGUEUR TOTALE IDENTIFICATION F FRAGMENT TTL PROTOCOLE CHECKSUM EN-TETE ADRESSE DE LA SOURCE ADRESSE DE LA DESTINATION OPTIONS BOURRAGE En-tête TCP - Données du message
Adresses IP (version 4) 0 Réseau Adresse locale Classe a 1 0 Réseau Adresse locale Classe b 1 1 0 Réseau Adresse loc. Classe c Adressage étendu 1 1 1 Adresse indéfinie
En-tête du Transport Control Protocol PORT SOURCE PORT DESTINATION NUMERO DE SEQUENCE NUMERO D’ACQUITTEMENT LONGUEUR U A R P S F EN-TETE RESERVE R C S S Y I FENETRE G K T H N N CHECKSUM DE L’ENTETE POINTEUR URGENT OPTIONS DONNEES
ouverture active ouverture passive (SYN, SEQ=200) (SYN, SEQ=550, ACK=201) (ACK=551) confirmation confirmation Echanges initiant une connexion
ACTIVE OPEN OR ACTIVE OPEN WITH DATA UNSPECIFIED PASSIVE OPEN OR FULLY SPECIFIED PASSIVE OPEN CLOSED INIT SV. SEND SYN INIT SV. CLOSE CLEAR SV CLOSE CLEAR SV RECV SYN SEND SYN ACK RECV SYN SEND SYN ACK SYN SENT SYN RCVD LISTEN RECV ACK OF SYN RECV SYN ACK OF SYN SEND ACK ESTAB RECV FIN ACK OF SYN SEND ACK CLOSE SEND FIN RECV FIN CLEAR SV FIN WAIT CLOSE WAIT RECV FIN SEND ACK CLOSE SEND FIN RECV ACK OF FIN FIN WAIT 2 CLOSING LAST ACK RECV FIN ACK OF SYN SEND ACK RECV ACK OF FIN RECV FIN SEND ACK RECV FIN ACK TIMEOUT (2MSL) TIME WAIT CLOSED
Serveur Telnet port 12 port 12 port 12 port 23 port 23 connexion 50,12 – 48,23 adresse IP 50 connexion 75,12 – 48,23 port 12 port 12 port 12 port 12 adresse IP 48 connexion 75,13 – 48,23 port 13 port 13 port 13 port 13 adresse IP 75 Gestions des ports et adresses IP
NAT: Network address translation Réseau local, IP interne IP:10, port:12 IP:12, port:21 IP:12, port:39 Monde: IP externe IP:192, port:1012 IP:192, port: 2021 IP:192, port: 2039 Les différents IP internes sont liés à des ports différents. Comme il y a 16 bits pour les ports, il y a suffisamment de ports pour tous les ports/ordinateurs.
Organisation des clients-serveurs Ordinateur 2 accept read / write Ordinateur 1 read/write 1 serveur 3 2 2.1 client données 4 4 1 création d'un port de référence 2 connexion au port créé 2.1 création d'un port de données (en dérivation du port de référence) 3 acceptation du port par le serveur 4 écriture-lecture des ports des deux côtés
DNS: domain name space switch .de .fr .com .ch epfl.ch xxx.ch swiscom.ch Les clients adressent leurs requêtes à la racine qui répond soit en indiquant le numéro IP, soit en indiquant à quel serveur il faut s'adresser pour suivre l'arbre
Estimation du temps d’acquittement pour limiter la congestion
Telnet Serveur port 23 Terminal 1 seul canal TCP/IP
FTP Terminal port 21 Serveur Manager commandes données 2 canaux TCP/IP
HTTP Lorsque l’on met http://localhost:8080/xxx dans le navigateur, il envoie ce qui suit sur un canal TCP/IP GET /xxx HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.10) Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300Connection: keep-alive Cookie: ltiStyle=small;
Le serveur répond par HTTP/1.1 200 OK Date: Thu, 11 Jun 2009 15:48:42 GMT Server: Apache/2.2.3 (Red Hat) Last-Modified: Wed, 10 Jun 2009 14:09:32 GMT ETag: "274795-3989-46bff0637df00" Accept-Ranges: bytes Connection: close Content-Type: text/html; charset=ISO-8859-1 Content-Language: fr-ch Set-Cookie: name=xxxxx; value=12345; path=/; <html> <title>Form elements</title> <body> <formname="record"action="http://localhost:8080/xxx"> <inputtype=textname="txInput1"><br> <inputtype=textname="txInput2"value="initial"><br> <inputtype=submit> </form> </body> </html>
Lorsque l’on clique submit, le navigateur renvoie: GET /xxx?txInput1=1234&txInput2=final HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.10) Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://localhost:8080/xxx Cookie: ltiStyle=small; name=xxxxx