Sie sind auf Seite 1von 59

Module 214

Rseaux et Protocoles

La famille des protocoles TCP/IP

Introduction Le protocole IP Les protocoles de transport Le routage sous IP La couche Application

Exercices Bibliographie

Thierry Jeandel jeandel@univ-nancy2.fr

Introduction

Sommaire :

TCP/IP, un "vieux" protocole Les couches de TCP/IP Historique de TCP/IP Les organismes lis au dveloppement de TCP/IP

TCP/IP, un "vieux" protocole...


25 ans ! Une ternit en informatique, c'est pourtant l'ge du protocole TCP/IP, ou plutt des protocoles de la famille TCP/IP. En effet, TCP et IP sont les deux briques d'une famille de protocoles qui s'est enrichie au fil des annes et qui comprend dsormais une bonne de douzaine de protocoles utilisant les services des couches IP ou TCP. Bien sr, en 25 ans, TCP/IP a beaucoup volu et volue encore en fonction des innovations technologiques et des besoins mais voir un protocole, d'abord ddi aux rseaux tendus, devenir quasiment le protocole le plus adopt par les rseaux d'entreprise est un fait suffisamment unique pour tre not et mriter quelques explications. Une des raisons principales du succs de TCP/IP est qu'il est le protocole du rseau internet, il a donc ainsi profit de sa popularit, mais le protocole TCP/IP a d'autres caractristiques fondamentales qui ont contribu son succs : - C'est un protocole ouvert. Le terme ouvert s'oppose celui de propritaire qui indiquerait que le protocole est li un constructeur, or ce n'est pas le cas de TCP/IP qui dans sa dfinition mme n'est li aucun type de matriel. A l'origine, TCP/IP a t cr pour un systme Unix, cela a d'ailleurs contribu la popularit de ce protocole, dsormais on trouve une implmentation de TCP/IP sur pratiquement tous les systmes d'exploitation et pour pratiquement tous les types de matriel. - C'est une famille de protocoles structure en couches. L'ensemble des fonctionnalits ncessaires au bon fonctionnement d'un rseau et de toutes les applications qui s'y rapportent est hirarchis en un ensemble de couches dont le rle est dfini de faon prcise. TCP/IP se rapproche en cela du modle OSI de l'ISO, la diffrence que TCP/IP est organis en seulement 4 couches au lieu des 7 du modle ISO.

- C'est un protocole routable, c'est dire que des mcanismes peuvent tre mise en oeuvre pour dterminer le chemin qu'un message doit prendre pour arriver son destinataire.

Les couches de TCP/IP


La famille de protocoles TCP/IP est ce que l'on appelle un modle en couche comme il est dfini dans le modle OSI (Open System Interconnexion) dict par l'ISO (International Standard Organisation). Mais la diffrence du modle OSI qui comprend 7 couches, le modle en couche de TCP/IP, qu'on appelle parfois modle DoD pour se souvenir que ce modle a t conu pour le Department Of Defense des Etats Unis, ne comprend que 4 couches qu'on peut dfinir de la faon suivante (en partant des couches les plus basses):
q

La couche "Accs au rseau". Cette couche concerne la connexion physique proprement dite et est directement lie au type de rseau utilis : Ethernet, rseau jeton, etc... Cette couche peut tre considre comme la fusion des couches Liaison de Donnes et Physique du modle OSI. A ce niveau on parle de trame d'information. La couche Internet (IP). Cette couche est responsable de l'adressage logique du rseau, de l'acheminement de l'information d'un noeud du rseau un autre. Les units logiques d'informations vhicules par cette couche sont appeles des datagrammes. La couche Transport. Cette couche, parfois appele galement couche hte hte ou Service Provide Layer o l'on trouve 2 protocoles TCP et UDP, est responsable du service de transmission fiable de donnes. Le terme segment est utilis pour dsigner les paquets d'informations. La couche Application. Cette couche regroupe un ensemble d'applications lies aux rseaux TCP/IP.

On peut citer HTTP, le protocole du Web, mais aussi FTP le protocole de transfert de fichiers, Telnet l'mulation de terminal, etc... Cette couche regroupe les 3 couches hautes du modle OSI: Application, Prsentation et Session. Les units d'information sont appeles messages. Chacune des couches intermdiaires fournit aux couches suprieures des services et utilisent les services de la couche infrieure, on assiste donc au niveau du format des donnes circulant sur le rseau une encapsulation des donnes.

Historique de TCP/IP

Un enjeu stratgique
Dans les annes 60, les responsables de la DARPA (Defense Advanced Research Projects Agency) se sont rendus compte que le parc d'ordinateurs utiliss dans le domaine militaire tant compos de machines de constructeurs diffrents, seuls les ordinateurs de mme marque pouvaient communiquer entre eux ! De plus le systme tait trs centralis donc trs vulnrable en cas de destruction d'un des sites or la "guerre

froide" entre USA et URSS est son paroxysme. Le ministre de la dfense amricaine (DOD : Departement Of Defense) demanda donc aux ingnieurs de la DARPA de mettre au point un protocole de communication qui serait indpendant du matriel. Ce protocole devait permettre non seulement des machines htrognes de dialoguer entre elles mais galement de permettre de construire un rseau non centralis dans lequel l'information pouvait tre distribue. Les informations envoyes devaient parvenir sans perte au destinataire, quelles que soient les pannes et les incidents rencontrs en cours de route.

Premires exprimentations
Pour raliser ce protocole les chercheurs utiliseront une thorie avance par Paul Baran et Donald Davis qui avaient imagin un protocole bas sur la "commutation de paquets" : le message envoyer est dcoup en paquets, paquets qui empruntent des routes diffrentes sur le rseau et sont reclasss l'arrive pour reconstituer le message initial. La premire exprimentation eu lieu en 1969, elle permis de relier 4 sites de l'ouest amricain (Universit de Californie Los Angeles, Universit de Californie Santa Barbara, Universit de l'Utah Salt Lake City et le SRI International dans la Silicon Valley). Cette exprience a marqu le dbut du projet ARPAnet (Advanced Research Projects Agency network). Ensuite le nombre de sites connects a rapidement augment, en 1972 une autre dmonstration met en oeuvre 50 noeuds et vingt htes. A cette poque les bases de ce protocole qu'on appelle dsormais TCP/IP (Transmission Control Protocol / Internet Protocol) sont jetes par Vinton Cerf et Robert Kahn.

Un projet universitaire
Dans les annes 70, l'infrastructure d'Arpanet est mise disposition des universits amricaines par le biais de la National Science Foundation, le rseau s'appelle dsormais NFSNet, il relie les principaux centres de recherches amricains, les universits et quelques laboratoires de constructeurs informatiques mais le rseau est toujours limit au territoire amricain. Le rseau permet des changes de fichiers, de courrier lectronique mais galement de se connecter distance sur d'autres ordinateurs distants. Ce rseau va ensuite tre prolong en Europe puis dans la plupart des pays industrialiss. Le nom d'INTERNET apparat pour la premire fois en 1982, et en 1988, il devient un rseau mondial essentiellement consacr la recherche civile. Paralllement au dveloppement d'internet, le systme d'exploitation Unix d'abord rserv au monde universitaire puis celui de quelques rseaux de mainframes va connatre un essor considrable grce l'apparition de Linux, un Unix "lger", gratuit et ouvert, portable sur un micro ordinateur. Bien videmment, Linux intgre le protocole TCP/IP.

La naissance du Web
En 1989, un chercheur du CERN (Centre Europen de Recherche du Nuclaire) de Genve, Tim Berners-Lee cre, en 1989, le concept de World Wide Web. S'appuyant sur la technologie internet, le Web est un univers d'informations relies par des liens dits hypertextes. L'hypertexte permet, grce un simple clic

de souris, de passer d'un texte un autre, de faire apparatre une image, entendre un document sonore, de visionner une vido, etc. Ensuite c'est le dbut de la dmocratisation d'internet avec l'apparition des premiers navigateurs Mosaic d'abord, ensuite Netscape et Internet Explorer.

La conscration de TCP/IP
Depuis le milieu des annes 90, l'essor d'internet et le besoin de connecter la plupart des rseaux locaux ce rseau mondial font que le protocole TCP/IP est en train de s'imposer comme un standard de fait. Pour satisfaire de nouveaux besoins : nombre croissant d'ordinateurs connects, nature des donnes qui circulent sur les rseaux (voix, image, etc...), gestion des priorits, etc, le protocole IP est en train de subir des modifications profondes concrtises par la sortie du protocole IP version 6.

Les organismes lis au dveloppement de TCP/IP


L'IAB
Les rgles de fonctionnement de l'internet et des protocoles qui le rgissent n'appartiennent aucune socit prive, ils sont accessibles tous. L'organisme charg de superviser le dveloppement des protocoles de l'internet s'appelle l'IAB (Internet Architecture Board). L'IAB fait partie d'une instance beaucoup plus large qui s'appelle l'Internet Society. L'IAB comprend deux groupes dont les rles sont distincts :
q

l'IRTF (Internet Research Task Force) qui est ddi la recherche long terme sur le devenir du rseau l'IETF (Internet Engineering Task Force) le groupe de dveloppement charg de mettre au point les standards

A ct de ces 2 instances, existent 2 "Steering Group" qui supervisent les travaux des 2 "Task Force" cits prcdemment :
q q

l'IRSG (Internet Research Steering Group) qui supervise l'IRTF l'IESG (Internet Engineering Steering Group) qui supervise l'IETF

Les RFC
Ces organismes ont un mode de fonctionnement assez original, il repose sur un principe trs dmocratique et un refus de tout ce qui ressemble des monopoles. Chacun publie sa solution et celle qui marche le mieux se dveloppe sous l'effet du ralliement des utilisateurs. Le processus d'tablissement des standards

repose donc sur les RFC (Request For Comment). Cette technique et cette ide de dire "SVP commentez cette proposition et dites nous ce que vous en pensez" est au cur de l'idologie et de la synergie qui ont fait d'Internet ce qu'il est. Les protocoles qui peuvent devenir des standards passent donc par une srie d'tats qui sont la proposition, le brouillon puis enfin le standard. Au fur et mesure de l'volution, certains protocoles sont classs historique. La liste complte des RFC peut tre obtenue sur le site http://www.rfc-editor.org/

Le Protocole IP

Sommaire :

Adressage IP Structure du datagramme IP Sous-rseau et sur-rseau Protocole de rsolution d'adresse IPv6

Adressage IP
Gnralits - Adresses spciales - Affectation des adresses Cette partie concerne uniquement le format d'adressage de la version 4 du protocole IP : IPv4. Prochainement et progressivement va se mettre en place une autre version IP : IPv6 avec un systme d'adressage compltement diffrent..

Gnralits sur l'adressage


L'adressage IP est un adressage logique totalement indpendant des adresses de la couche physique comme les adresses MAC par exemple, cette indpendance permet un rseau IP d'interconnecter des quipements htrognes. Une opration de conversion entre les adresses physiques et les adresses logiques est donc indispensable, cette opration est gnralement dsign par le terme mapping. Un adresse IP est une squence de 32 bits, ce qui devrait en principe nous donner 232 connexions possibles c'est dire un peu plus de 4 milliards d'adresses (4 294 967 296 pour tre exact), en fait, certaines adresses sont exclues ou reserves ce qui fait que le nombre maximal effectif de connexions est moindre . L'adressage IP reflte, de par sa structure, la distinction entre les diffrents rseaux logiques. En effet un certain nombre de bits de l'adresse IP identifie le rseau lui mme (netid), l'autre partie identifie l'hte dans ce rseau (hostid). Ce dcoupage netid - hostid constitue donc un plan d'adressage hirarchique pour un rseau IP, ce qui permet une meilleure gestion des routeurs qui n'ont besoin que de mmoriser des adresses de rseaux et non des adresses d'htes. Il va sans dire que des rseaux interconnects doivent avoir des netids distincts. Cette structuration est diffrente selon la classe du rseau. On distingue 5 classes de rseaux code de A E. La distinction de classe de rseaux se fait sur la valeur des premiers bits. Pour les classes A, B et C, la taille de la partie d'adresse rserve au net-id varie, elle est de 1 octet pour la classe A, 2 pour la classe B et 3 pour la classe C. La classe D est rserve la multidiffusion (multicast), technique utilise par des protocoles spciaux pour transmettre simultanment des messages un groupe donn de noeuds diffrents, de la diffusion de vido par exemple. La classe E tait rserv un usage ultrieur.

Exercices et tests : Exercice 1 Pour des raisons de commodits, les adresses IP sont rarement exprime en binaire mais en notation dcimale pointe. Chaque octet est traduit en sa valeur dcimale et les 4 nombres sont spars par des points. Exemple : 137.65.4.1. correspond l'adresse 10001001 01000001 00000100 00000001

Les adresses spciales


Il existe un certain nombre d'adresses IP rserves :
q

hostid = 0 dsigne le rseau lui mme L'hostid gal 0 ne sera jamais affect un hte mais il dsigne le rseau lui mme. Exemple : 192.145.56.0 est un rseau de classe C dont l'hostid est 0 donc cette adresse dsigne le rseau lui mme.

0.0.0.0 dsigne l'hte lui mme Lorsque tous les bits d'une adresse IP sont 0, cela signifie "cet hte-ci sur ce rseau". Cette adresse spciale est par exemple utilise par un hte afin d'obtenir une adresse IP de manire dynamique dans le cas du protocole BOOTP.

Tous les bits de l'hostid = 1 indique une diffusion dirige Lorsque tous les bits de l'hostid sont gaux 1, on est en prsence non pas d'une adresse d'hte mais d'une adresse de diffusion dirige (direct broadcast) c'est dire un message destin tous les htes d'un rseau sans exception. Exemple : 192.145.56.255 est une adresse de classe C dont la partie rserve l'hostid est gale 255 donc pour laquelle tous les bits sont 1, on est donc en prsence d'un message destin l'ensemble des htes du rseau 192.145.56.0.

255.255.255.255 = diffusion limite

Une diffusion limite (limited broadcast) est un message qui est envoy tous les htes du rseau dont fait partie l'expditeur. La diffusion limite est reprsente par l'adresse spciale 255.255.255.255. Exemple : L'adresse de destination 255.255.255.255 indique que le message doit tre envoy tous les htes du rseau dont fait partie l'expditeur.
q

netid = 0 indique que l'hte fait partie du rseau Lorsque que la partie netid est gale 0 et que la partie hostid est non nulle, cela signifie qu'on est en prsence d'un message issu du mme rseau. Exemple : Si un hte d'adresse 192.14.25.56 reoit un paquet destination de 0.0.0.56, il considrera que ce paquet lui est bien destin.

127.x.x.x = adresse de bouclage Le netid 127.0.0.0 qui devrait normalement faire partie de la classe A est en fait utilis pour dsigner l'adresse de bouclage (loopback), peut importe le hostid utilis. Un paquet envoy cette adresse ne passe pas par les interfaces rseau mais est dpos directement sur le tampon de rception de la machine elle mme. Cette adresse de bouclage permet de vrifier la configuration de la couche logicielle TCP/IP d'une machine. Exemple : 127.0.0.1 dsigne l'adresse de bouclage sur la machine elle mme.

Exercices et tests : Exercice 2 , Exercice 3

Affectation des adresses IP


L'affectation d'une adresse IP un rseau ne peut pas se faire n'importe comment car pour que le systme fonctionne il ne faut absolument pas que 2 htes puissent avoir une adresse IP identique sinon c'est tout le systme d'adressage qui s'croule. L'attribution d'un netid un rseau est donc soumis une autorit centrale. C'est l'Address Supporting Organization (ASO) qui est responsable de l'allocation des adresses IP (et de tous les identifiants uniques) dans l'Internet. Cet organisme a dlgu cette responsabilit des organismes rgionaux comme ARIN aux USA, le RIPE NCC en Europe, et l'APNIC en Asie. Ces organismes dlguent nouveau d'autres organismes : les "local registries". Il existe trois types de "local registries" en Europe dfinis par le RIPE NCC:
q

Les "provider local registries" Ce sont des "local registries" qui allouent des adresses IP pour les clients d'un fournisseur de service particulier. C'est typiquement le cas des fournisseurs de service. Ces "local registries" se voient allouer des plages d'adresses qu'il peuvent ensuite "redistribuer" leur clients. Les "enterprise registries" Ce sont des "local registries" qui allouent des adresses IP l'intrieur d'une entreprise donne. Les "last resort registries" Ce sont des "local registries" qui allouent des adresses IP si le demandeur ne peut tre servi par l'un des deux types de "local registries" ci-dessus. Ces "local registries" sont actuellement en voie de disparition car l'allocation d'adresses par eux ne permet pas d'obtenir une bonne agrgation des tables de routages indispensable au bon fonctionnement de l'Internet.

Les adresses de classe C ont t divises en 8 blocs qui correspondent peu prs des zones gographiques : 192.0.0 - 193.255.255 194.0.0 - 195.255.255 196.0.0 - 197.255.255 198.0.0 - 199.255.255 200.0.0 - 201.255.255 202.0.0 - 203.255.255 204.0.0 - 205.255.255 Plusieurs rgions, ces adresses ont t alloues avant la rpartition rgionale Europe Utilises lorsqu'il est ncessaire d'affecter des adresses IP qui ne sont pas bases sur la rgion Amrique du Nord Amrique centrale et Amrique du Sud Zone Pacifique Utilises lorsqu'il est ncessaire d'affecter des adresses IP qui ne sont pas bases sur la rgion

206.0.0 - 207.255.255 208.0.0 - 223.255.255

Utilises lorsqu'il est ncessaire d'affecter des adresses IP qui ne sont pas bases sur la rgion Disponible

Mais on peut tre amen utiliser le protocole TCP/IP sans tre connect Internet ou en tant connect Internet via une passerelle applicative (un serveur Proxy ou un Firewall par exemple), on parle alors de rseaux privs. Pour ces rseaux privs, il est prvu d'utiliser des plages d'adresses spcifiques (qui par ailleurs ne sont jamais affects par l'ASO) :
q q q

10.0.0.0 10.255.255.255 pour un rseau de classe A 172.16.0.0 173.31.255.255 pour des rseaux de classe B 192.168.0.0 192.168.255.255 pour des rseaux de classe C

Remarque : Le RIPE NCC donne accs sa base de donne (par l'intermdiaire du site http://www.ripe.net/perl/whois? ) afin d'associer une adresse IP des informations comme les coordonnes de l'instance responsable de cette adresse IP, l'intervalle d'adresses alloue, etc... Remarque : Cela ne fonctionne qu'avec les adresses IP gre par le RIPE NCC donc uniquement en Europe:

Donner une adresse IP :

Recherche

Structure du datagramme IP
Gnralits - Datagramme IP - Fragmentation des datagrammes

Gnralits
La couche IP est une couche intermdiaire dans la vision globale d'un rseau. En effet si on se rfre au modle OSI, la couche IP correspond la couche "rseau" (couche 3) de la pile de protocoles. Cette position intermdiaire signifie donc que le protocole IP va, la fois fournir des services aux couches suprieures (TCP et UDP) et utiliser des services des couches infrieures (Ethernet, token Ring, X25...). Le protocole IP est un protocole sans connexion ce qui signifie que chaque datagramme va tre tiquet avec l'adresse de l'expditeur et du destinataire. Dans ce datagramme on va galement trouver un certain nombre d'informations concernant l'acheminement du datagramme comme le nombre de routeurs traverss par exemple. La version 4 de IP prvoit mme la possibilit d'insrer dans les datagrammes des informations de "qualit de service" mais elles sont en fait peu utiliss, c'est dans la version 6 que cette technique est rellement dveloppe. Le rseau IP est un rseau abstrait qui fait abstraction des problmes matriels grs par les couches infrieures, chaque datagramme pourra donc ventuellement tre rout par des chemins diffrents, ce qui ne garanti pas qu' l'arrive les datagrammes soient dans le mme ordre qu'au dpart, c'est pourquoi un mcanisme de numrotation de datagramme est mis en oeuvre. La remise en ordre des diffrents datagrammes n'incombe pas au protocole IP mais aux protocoles suprieures (TCP, UDP).

Le Datagramme IP
Le datagramme IP est divis en 2 parties :
q

L'entte IP Cette partie va contenir des informations essentielles comme les adresses des destinataire et expditeur, des informations sur la taille du datagramme, des informations sur l'ventuelle fragmentation du datagramme, la qualit de service attendue par les couches suprieures, etc... Les Donnes IP Ces donnes sont celles qui ont t transmises par les couches suprieures.

L'entte IP L'entte IP a une longueur minimale de 20 octets mais il peut tre plus grand. On va trouver dans cet entte un certain nombre d'informations essentielles (structures en champ) pour l'acheminement de l'information :
q

Version : n de version du protocole IHL (Internet Header Length) : longueur de l'entte TOS (Type of Service) : qualit de service dsire Total Length : Longueur totale du datagramme Identification : N du datagramme Flags : Drapeau de fragmentation Fragment Offset : Dcalage du fragment TTL (Time To Live) : Dure de Vie du datagramme Protocol : protocole suprieur Header Checksum : Contrle d'erreur de l'entte IP source et destination : Adresses expditeur et destinataire Options : Options du protocole Padding : Remplissage

Cliquer sur une zone pour obtenir le descriptif du champ.

Version (4 bits) Le champ version est utilis pour indiquer le numro de version de protocole utilis (4, 6 etc...). Le logiciel Ip commencera par vrifier la valeur de ce champ pour s'assurer que le datagrame peut tre trait. Les valeurs possibles vont de 0 15 avec 4 pour IPv4, 6 pour IPv6 et d'autres valeurs pour des versions moins connues comme TP/IX ou TUBA. Retour au schma de l'entte IHL Internet Header Length (4 bits) Longueur de l'entte en mots de 32 bits : Tous les champs de l'entte sont de longueur fixe sauf le champ Options qui lui est de longueur variable, la longueur de l'entte doit donc tre prcise, c'est cela que sert ce champ.

Retour au schma de l'entte TOS Type Of Service (8 bits) Ce champ permet d'indiquer des informations lies la qualit de service dsir en terme de priorit (prsance), de dlais, de dbit, de fiabilit et de cot. Le bit de prsance li la priorit tait l'origine destin aux applications du ministre de la dfense amricain, les valeurs possibles sont tiquetes de la manire suivante :
q q q q

Flash : priorit maximale sur tous les circuits Immediate : Dans les 4 heures Priority : Le mme jour Routine : D'ici au lendemain

Les 4 drapeaux dlai, dbit, fiabilit et cot peuvent prendre alternativement les valeurs Normal (0) ou Elev (1). Exemple la suite de bit 0010 correspond "fiabilit maximale". La plupart des applications ignorent la valeur de ce champ TOS mais il semble que ce champ puisse jouer un rle important dans certains protocoles de routage. Par exemple si un routeur connat 2 chemins possibles pour acheminer un datagramme : l'un haut dbit mais dlai important comme une connexion satellite par exemple et l'autre une connexion dlai faible et dbit faible galement (ligne spcialise). Si l'application ncessite un fort volume de transfert de donnes, la liaison satellite sera choisie, si, par contre, c'est une application interactive qui ncessite des saisies de touches utilisateur, c'est la ligne spcialise qui doit tre utilise. Retour au schma de l'entte Total Length (16 bits) Ce champ contient la longueur totale du datagramme, le datagramme peut donc faire au maximum 216 octets - 1 c'est dire 65 535 octets de long, ce qui est rarement le cas car les couches infrieures ne sauraient pas traiter des paquets de donnes aussi importants. La longueur minimale est de 576 octets (512 octets de donnes + 64 octets d'entte). Retour au schma de l'entte Identification (16 bits) Ce champ correspond au numro de datagramme. Chaque datagramme est numrot par l'expditeur en partant d'une certaine valeur initiale. La codification sur 16 bits permet de numroter les datagrammes jusque 65535. Retour au schma de l'entte Flags (3 bits) On va trouver 2 drapeaux sur ces 3 bits (le premier bit tant toujours 0) :
q q

DF (Flag de fragmentation) : Ce drapeau s'il est 1 indique que le datagramme ne doit pas tre fragment. MF (More fragment) : Si ce drapeau est 1 cela signifie que le datgramme est fragment et que d'autres fragments vont arriver, si ce flag est 0 cela signifie que c'est l'unique ou le dernier fragment. Retour au schma de l'entte

Fragment Offset (13 bits) Ce champ indique la position des donnes du fragment par rapport au dbut du datagramme originel. Retour au schma de l'entte

TTL Time To Live ( 8 bits) Ce champ "Dure de Vie" reprsente la dure de vie maximale d'un datagramme sur le rseau, cette dure est exprime en secondes. Le principe est d'viter que des datagrammes errent indfiniment sur le rseau. Cette "dure de vie" est dcrmente chaque routeur de la dure ncessaire son traitement, mais en fait comme l'valuation de cette dure ncessiterait un traitement supplmentaire, les routeurs se contentent de dcrmenter de 1 le TTL, on considre que ce TTL correspond finalement un compteur de sauts (hops). Lorsque le TTL tombe 0, le datagramme est dtruit par le routeur. Retour au schma de l'entte Protocol (8 bits) Ce champ indique quel protocole de couche suprieure ce datagramme est destin. Par exemple la valeur de Protocol est 6 pour TCP, 17 pour UDP, 1 pour ICMP, etc... Retour au schma de l'entte Header Checksum (16 bits) Champ de contrle de l'entte. Le complment 1 de chaque valeur de 16 bits de l'entte est ajout (sauf le champ Checksum Header). On prend alors le complment 1 de cette somme que l'on code dans ce champ. Ce champ est donc recalcul chaque routeur puisque le TTL est dcrment. Retour au schma de l'entte IP source et destination (2 x 32 bits) Le rseau IP est un rseau sans connexion donc sur chaque datagrame doivent figurer les adresses source et destination. Retour au schma de l'entte Options IP ( taille variable, multiple de 32 bits) Ce champ correspond des informations qui sont assez peu utilises dans le protocole IP et qui concernent la scurit, l'enregistrement du chemin emprunt au travers des routeurs, l'obligation d'emprunter une certaine route, etc... Retour au schma de l'entte Padding Champ de remplissage li au champ Options IP qui permet d'avoir un multiple de 32 bits. Retour au schma de l'entte Exercices et tests : Exercice 4

La fragmentation des datagrammes


Le protocole IP peut tre utilis en rseau htrogne, c'est dire qu'un datagramme peut traverser des rseaux de nature diffrentes (Ethernet, Token Ring, X25..), or ces rseaux ont des caractristiques totalement diffrentes notamment ne ce qui concerne leur MTU, c'est dire la taille de l'unit de transmission maximale. Type de rseau MTU en octets

Ethernet Token Ring FDDI X 25

1500 4 440 17 940 4 352 1 007

Quelques valeurs de MTU de rseaux courants Le problme survient donc si la taille d'un datagramme IP est plus grand que le MTU du rseau emprunt, dans ce cas le datagramme doit tre dcoup en fragments. C'est le routeur qui va effectuer cette opration et non l'metteur du datagramme initial puisque ce dernier ignore la structure des rseaux traverss. Chaque fragment va tre trait comme un datagramme IP mais l'arrive les diffrents fragments devront tre rassembls.

Sous-rseaux et sur-rseaux
Gnralits - Pourquoi des sous-rseaux - Principe du subnetting - Masques de sous-rseau -Sur-rseaux

Gnralits
Lorsque le protocole IP a t mis au point, les nombres de rseaux et d'htes potentiellement adressables par le systme d'adressage mis en place semblaient surdimensionns par rapport aux besoins de l'poque, dsormais aprs le dveloppement fulgurant d'Internet ce systme a montr ses limites. En effet le systme d'adressage divis en classes a pour effet de gnrer un gchis considrable d'adresses. C'est essentiellement pour remdier ce gaspillage d'adresses que ds 1985 un mcanisme de sous-rseau est apparu, le principe est de diviser un rseau en plusieurs sous-rseaux interconnects entre eux. Plus rcemment le concept de surrseau que l'on dsigne galement par CIDR (Classless Internet Domain Routing) a vu le jour. Le principe est de combiner plusieurs numros de rseaux (gnralement de classe C) pour former un rseau plus important.

Sous-rseaux
Pourquoi des sous-rseaux ? Dans le mcanisme d'adressage IP on distingue principalement 3 classes de rseaux (A,B et C) pour lesquelles chaque rseau disposera d'un nombre maximum d'adresses (cf Adressage IP). Par exemple pour un rseau de classe C, c'est 254 adresses qui seront utilisables puisque l'adresse de l'hte est code sur un octet ce qui donne donc 256 adresses possibles auxquelles on soustrait les adresses spciales (255 et 0) qui ne peuvent tre alloues un hte. Mais il arrive frquemment qu'on veuille fragmenter un rseau pour diffrentes raisons :
q

La premire motivation de fragmentation d'un rseau peut tre la simplification de l'administration. En effet, l'installation de routeurs et le partitionnement en sous-rseaux d'un rseau va permettre d'administrer les sous-

rseaux de faon indpendante. Par exemple, le plan d'adressage de chaque sous-rseau pourra se faire de faon totalement indpendante.
q

Une seconde motivation peut tre galement de faire une conomie d'adresses. Prenons par exemple le cas d'une entreprise qui dispose d'un rseau de classe B, ce qui lui offre un potentiel de 65534 adresses d'htes. Il y beaucoup de chances qu'une proportion assez faible de ces adresses soit rellement employe. Si cette mme entreprise dsire installer un second rseau spar physiquement du premier par un routeur elle a le choix entre faire l'acquisition d'un nouveau numro de rseau ce qui est dommage puisqu'il lui reste un potentiel d'adresses non utilises. Dans ce cas de figure, la solution du partitionnement en sous-rseau est bien meilleure. Enfin, le dernier avantage de la fragmentation en sous-rseaux est l'aspect scurit. En effet, il sera plus facile d'isoler certains htes du rseau s'ils se trouvent dans un sous-rseau reli par un routeur au reste du rseau que si toutes les machines se trouvent sur un mme rseau. Principe du subnetting

Le subnetting est le terme anglo-saxon qui dsigne la fragmentation en sous-rseau. Le principe est d'introduire en plus des notions de netid et d'hostid, la notion de sous-rseau. Or une adresse IP a une taille fixe de 32 bits donc la technique consiste "prendre" les bits ncessaires au codage du sous-rseau sur la partie rserve l'hostid.

Il sera donc possible d'utiliser un nombre variable de bits pour caractriser le sous-rseau. Par exemple pour un rseau de classe C d'adresse 192.47.56.0, on peut dcider d'utiliser 3 bits pour caractriser le sousrseau, ce qui laissera seulement 5 bits pour adresser les htes dans chacun des sous-rseaux. En respectant les rgles d'adressage vues prcdemment cela donne donc 25 - 2 = 30 adresses d'htes possibles par sous-rseau. Par contre l'utilisation de 3 bits par sous-rseau permet en thorie l'utilisation de 23 = 8 sous-rseaux, mais comme pour les netid les numros de sousrseau composs uniquement de 1 ou uniquement de 0 ne sont pas autoriss donc cela fait seulement 6 sous-rseaux possibles. Lors de la structuration en sous-rseaux, il faudra donc trouver un quilibre entre un grand nombre de sous-rseaux avec peu d'adresses possibles par sous-rseau d'une part et peu de sous-rseaux et un nombre d'adresses important.

Enfin, on peut remarquer que la mise en sous-rseau a pour inconvnient de diminuer l'espace d'adressage d'un rseau puisque dans notre exemple on est pass pour ce rseau de classe C de 254 adresses d'htes possibles seulement 6 x 30 = 180 adresses potentielles. Exercices et tests : Exercice 5, Exercice 6 Les masques de sous-rseaux Un masque de sous-rseau est une suite de 32 bits (comme pour les adresses IP) qui va permettre un hte (un ordinateur, un routeur) de dterminer si un hte dont on connat l'adresse IP est accessible directement (car l'hte se trouve dans le mme sous-rseau ou le mme rseau si aucun dcoupage n'a t effectu) ou bien s'il faut passer par un routeur (qui se nomme souvent passerelle par dfaut ou default gateway dans les logiciels). Tout hte IP a donc besoin d'un masque, que le rseau soit dcoup en sous rseau ou non. Ce masque est construit de la faon suivante : Les bits du masque 1 correspondent la partie d'adresse qui doit tre identique pour faire partie du mme sous-rseau ou rseau si celui-ci n'est pas segment, les bits 0 correspondent la partie d'adresse qui varie d'un hte l'autre. Pour un rseau qui n'est pas segment en sous-rseau, le masque standard se dduit aisment puisque les bits 1 correspondent

la partie rserve au net-id : Classe de rseau A B C Masque standard 255.0.0.0 255.255.0.0 255.255.255.0

Pour les htes se trouvant dans un sous-rseau, le masque va dpendre du nombre de bits reservs au sous-rseau. Ce nombre de bits devra tre forcment suprieur 1, car sur un bit on ne pourrait coder que 2 sous-rseau de n 1 et 0 ce qui est dconseill par les diffrentes RFCs.

Exemple : Soit un rseau de classe C d'adresse 192.47.56.0, dans lequel on a dcid de laisser 3 bits pour le sous-rseau, le masque aura la valeur suivante : 11111111 11111111 11111111 11100000 , ce qui donne en notation dcimale pointe 255.255.255.224. Dans ce rseau, on pourra donc disposer de 6 sous-rseaux : 001, 010, 011, 100, 101 et 110. Si on considre la machine 192.47.56.57, cette machine se trouve dans le sous-rseau 001 car 57 en binaire donne 0011 1001, prenons l'adresse 192.47.56.37, d'aprs le masque on en dduit qu'elle se trouve dans le mme sous-rseau que notre hte car 37 en binaire donne 0010 0101, par contre les adresses suivantes ne sont pas accesibles directement :
q

q q

192.47.56.66 car pas dans le mme sous-rseau mais dans le sous-rseau 010, car 66 = 0100 0010, 010 est diffrent de 001 192.47.41.24 car pas dans le mme rseau (41 diffrent de 56) 192.47.56.12 car adresse illgale (le sous rseau 000 ne peut tre atribu), car 12=0000 1100

Exercices et tests : Exercice 7

Sur-rseaux
Il y a depuis pas mal de temps pnurie de rseaux de classe A et de classe B, par contre il reste encore un grand nombre de rseaux de classe C disponibles. Mais l'inconvnient majeur de ces rseaux de classe C est qu'ils ne peuvent prendre en charge que 254 htes. Les organisations de grande taille se voient donc obliges d'utiliser plusieurs rseaux de classes C. Le principe du sur-rseau est donc d'utiliser un ensemble d'adresses de rseaux de classe C contigus au lieu d'un seul rseau de classe B. Par exemple, une entreprise a besoin d'un rseau de 8 000 htes, il est donc possible d'utiliser 32 rseaux de classe C, car 32x254=8128. Ce mcanisme est trs utilis par les fournisseurs d'accs internet qui ont besoin d'un volant important d'adresses IP. Si on voit bien l'avantage d'utiliser plusieurs rseaux de classe C la place d'un rseau de classe B, un problme va rsider au niveau des routeurs. En effet, pour avoir la mme capacit d'adressage qu'un rseau de classe B, il faut 256 adresses de rseaux de classe C. La place ncessaire au stockage de ces adresses dans la mmoire d'un routeur se trouve donc multipli par 256 !. La technique Classless Internet Domain Routing (CIDR) permet de n'utiliser qu'une seule entre pour un bloc d'adresses de rseau de classe C. Le bloc de classe C sera dcrit en donnant la plus basse adresse du bloc suivie d'un masque de sur-rseau. Le masque de sur-rseau est construit en mettant des 1 pour la partie commune tous les sous-rseau et des 0 pour la partie variable. On peut remaruqer qu' l'inverse des sous-rseaux, les bits 1 sont pris sur la partie netid de l'adresse. Exemple : (198.24.32.0, 255.255.224.0) dsigne un bloc de sous rseaux de classe C. Afin de dterminer lequel, il faut exprimer ces 2 donnes en binaire :

La partie commune au diffrents rseaux est indique en rouge sur la figure prcdente, on peut donc dterminer les adresses de rseaux faisant partie de ce bloc : Premire adresse : 11000110 00011000 00100000 00000000 = 198.24.32.0 Dernire adresse : 11000110 00011000 00111111 00000000 = 198.24.63.0 On utilise galement une autre notation pour dsigner ces blocs CIDR : plus basse adresse du bloc / nombre de bits de prfixe commun ce qui donne pour l'exemple prcdent : 198.24.32.0/19

Protocoles de rsolution d'adresses


Gnralits - ARP - RARP

Gnralits
L'adressage IP est un adressage logique qui utilise dans la version 4 de ce protocole une adresse sur 32 bits. Nanmoins la transmission des informations va se faire l'aide des couches basses, les datagrammes IP seront donc encapsuls dans des trames de la couche 2 du modle OSI telle que les trames Ethernet, Token ring, etc... Ces rseaux physiques utilisent un systme d'adressage physique, il faudra donc faire la correspondance entre les adresses du protocole IP et les adresses physiques (adresse MAC : Medium Access Control) des quipements correspondants, c'est le rle du protocole ARP. Plus rarement, il sera ncessaire de faire la correspondance entre une adresse physique MAC et une adresse logique IP, le protocole RARP assure ce rle.

Le protocole ARP
ARP signifie Adress Resolution Protocol, son rle est de mettre en place un mcanisme de restitution d'une adresse MAC partir d'une adresse IP dans le cadre d'un rseau o le support est partag comme le rseau Ethernet par exemple. Le principe de fonctionnement du protocole ARP est le suivant : Supposons que la machine A de numro IP 193.54.41.38 et d'adresse MAC 00:b0:d0:65:dd:19 dsire connatre l'adresse MAC de l'hte B d'adresse 193.54.41.42 afin de lui envoyer un message. 1. La machine A va mettre sur le support une trame MAC de diffusion appele trame ARP Request. Dans cette trame figurent les adresses IP et MAC de l'metteur A et l'adresse IP de l'hte B.

Trame ARP Request : L'adresse Ethernet de destination est ff:ff:... ce qui indique une diffusion, le champ Target MAC Adress est vide.

2.Tous les noeuds du rseau physique reoivent cette trame ARP. Chacun des noeuds compare l'adresse IP destinataire figurant dans cette trame avec la sienne. 3. La machine B a reconnu son adresse IP dans le champ destinataire, elle rpond donc directement A (car elle connat son adresse MAC) en encodant sa propre adresse MAC dans une trame ARP Reply.

Trame ARP Reply - L'adresse MAC demande se trouve dans le champ Sender Mac adress. 4. A reoit donc la rponse sa requte, il place donc le couple adresse IP/adresse MAC de B dans sa table de cache ARP 5. A connaissant l'adresse MAC de B peut lui envoyer le message. La table de cache ARP est destine conserver un certain temps en mmoire (gnralement 15 minutes) les adresses IP rsolues en adresse MAC afin d'conomiser du temps et du trafic rseau lors des changes.

Table cache ARP

Le protocole RARP
Gnralement une machine peut connatre facilement sa propre adresse IP car elle est stocke dans un endroit de son disque local, mais certains ordinateurs ne disposent pas de disque local (diskless station), ou tout du moins n'utilisent pas ce disque local pour stocker des paramtres de configuration comme l'adresse IP. Pour obtenir son adresse IP, l'ordinateur en question devra utiliser le protocole RARP (Reverse Adress Resolution Protocol), le principe de ce protocole est le suivant :

1. La machine A (diskless station) envoie en diffusion une requte RARP dans laquelle figure son adresse MAC 2. Tous les noeuds du rseau reoivent cette requte mais seuls le ou les serveurs RARP vont la traiter 3. Le serveur RARP tient jour une liste des adresses IP des noeuds du rseau avec la correspondance avec l'adresse 4. Si l'adresse MAC figurant dans la trame RARP existe dans la table de correspondance du serveur RARP, ce dernier
renvoie une rponse la machine A avec son adresse IP physique MAC

IPv6
A l'heure actuelle le "vieux" protocole IPv4 comporte de nombreux inconvnients :
q

q q q

Le potentiel d'adressage est insuffisant : 4 milliards d'adresses alors que le nombre d'ordinateurs mais galement de matriels en tout genre intgrs des rseaux ne cesse d'augmenter de faon significative. La qualit de service est trs mal assur Des problmes de scurit demeurent Les rseaux et les routeurs sont encombrs par les nombreux contrles effectus diffrents niveaux

Les principaux objectifs du nouveau protocole IPv6 dont les premiers travaux remontent 1993 (le protocole IPv5 existe dj mais est destin au streaming) sont les suivants :
q q q q q q

Augmenter le potentiel d'adressage Rduire la taille des tables de routage afin d'allger le travail des routeurs Simplifier le protocole, pour permettre aux routeurs de router les datagrammes plus rapidement, Fournir une scurit (authentification et confidentialit) satisfaisante Amliorer la qualit de service pour prendre en compte les applications "temps rel" comme la vido par exemple Donner la possibilit un ordinateur de se dplacer sans changer son adresse

Il n'est pas envisageable de basculer du jour au lendemain de IPv4 IPv6, donc le changement se fait petit petit, pour l'instant il existe des "niches" IPv6 qui dialoguent entre elles ou avec le reste d'internet en encapsulant les trames IPv6 dans des trames IPv4, progressivement le nombre de ces niches va augmenter et seul resteront des niches IPv4 au milieu d'un monde IPv6. La trame IPv6 est considrablement simplifie puisqu'on n'y trouve plus que les lments suivants :
q

Le champ Version (4 bits) : Version d'IP utilise. Le champ Traffic Class (8 bits) : Contrle de flux . Des priorits de 0 7 sont affectes aux sources capables de ralentir leur dbit en cas de congestion, les valeurs 8 15 sont assignes au trafic temps rel (audio, vido, etc...). Le champ Flow Label (20 bits) : contient un numro unique choisi par la source qui a pour but de faciliter le travail des routeurs et de permettre la mise en oeuvre les fonctions de qualit de services. Cet indicateur peut tre considr comme une marque pour un contexte dans le routeur. Le routeur peut alors faire un traitement particulier : choix d'une route, traitement en "temps-rel" de l'information, ... Le champ identificateur de flux peut tre rempli avec une valeur alatoire qui servira rfrencer le contexte. La source gardera cette valeur pour tous les paquets qu'elle mettra pour cette application et cette destination. Le traitement est optimis puisque le routeur n'a plus consulter que cinq champs pour dterminer l'appartenance d'un paquet. De plus, si une extension de confidentialit est utilise, les informations concernant les numros de port sont masques aux routeurs intermdiaires. Le champ Payload Length (2 octets) : Taille des donnes utiles. Le champ Next Header (8 bits) : Protocole de niveau suprieur ICMP, UDP, TCP. Le champ Hop Limit (8 bits) : Remplace le champ "TTL" (Time-to-Live) de IPv4. Sa valeur est dcrmente chaque noeud travers. Si cette valeur atteint 0 alors que le paquet IPv6 traverse un routeur, il sera rejet avec l'mission d'un message ICMPv6 d'erreur. Le but est d'empcher les datagrammes de circuler indfiniment. Champs Source Adress et Destination Adress sur 128 bits (16 octets chacun) : Adresse de l'metteur et du destinataire. 128 bits au lieu de 32 bits pour IPv4, ce qui offre un potentiel d'adressage de 3,4 x 1038 ce qui devrait suffire pendant quelques temps...

Datagramme IPv6

Les protocoles de transport

Sommaire :

Le protocole TCP Le protocole UDP

Le protocole TCP
Gnralits - Segmentation et squencement des donnes - Mcanisme d'acquittement - Etablissement d'une connexion - Contrle du flux de donnes - Structure des segments TCP - Numros de ports usuels

Gnralits
TCP est un protocole de la couche Transport au sens du modle OSI. Il s'excute au dessus du protocole IP qui lui fournit un service de datagrammes sans connexion entre deux machines. TCP est un protocole orient connexion qui garantit que les donnes sont remises de faon fiable. TCP s'oppose UDP qui est moins robuste mais plus efficace dans certaines situations. Le protocole IP est sans connexion et ne garantit absolument pas que le datagramme envoy a t remis, TCP s'appuie donc sur l'hypothse que IP n'est pas fiable et qu'il faut au niveau Transport mettre en place un certain nombre de contrle. Les fonctionnalits de TCP sont donc principalement :
q q

Etablissement d'une connexion Transmission fiable des donnes en effectuant un contrle des donnes et en effectuant un rmission pour les donnes qui n'ont pas pu tre transfres correctement. Rordonnancement des informations transfres. En effet, les informations seront en fait transmises dans des datagrammes IP qui peuvent ventuellement emprunter des chemins diffrents donc ne pas arriver dans l'ordre d'mission. Grer le multiplexage, c'est dire que plusieurs applications peuvent utiliser simultanment les services du protocole TCP, exemple : un client courrier qui s'excute en mme temps qu'une navigation sur le web et un tlchargement de fichier.

Segmentation et squencement des donnes


Lorsque de l'information doit tre envoye d'un metteur vers un rcepteur par le protocole TCP, cette information est dcoupe en segments qui peuvent tre de taille variable. Mais pour des raisons de fiabilit chaque octet d'un segment va tre numrot avec un numro de squence. Lors de l'envoi de l'information, dans l'entte de chaque segment, seul le n de squence du premier octet sera mentionn. Les autres numros (en fait c'est le numro du dernier qui est intressant) seront calculs en ajoutant ce numro au nombre d'octets prsents dans la partie "donnes" du segment.

Ce numro de segment est cod sur 32 bits ce qui permet de numroter les segments jusqu' la valeur 232 = 4 294 967 296, au del il faudra repartir partir de la valeur 0.

Mcanisme d'acquittement
La transmission doit tre fiable, TCP utilise donc le mcanisme classique d'acquittement mais dans une version dite cumulative. Le principe de l'acquittement Le principe gnral est assez simple : Lorsqu'un segment est reu par le destinataire, celui-ci vrifie que les donnes contenues dans ce segment sont correctes (consultation du checksum) et si c'est le cas envoie un message d'acquittement positif (ACK) vers l'expditeur.

Deux types de problmes peuvent se produire :


q q

Les donnes du segment sont endommages. Le segment n'arrive jamais destination.

Pour dtecter ce type de problme, chaque fois qu'il envoie un segment l'expditeur effectue 2 oprations :
q q

Il stocke dans un buffer une copie du segment qu'il vient d'envoyer Il arme une temporisation

Si au bout d'un certain dlai aucun acquittement positif n'a t reu du destinataire le segment est renvoy en utilisant la copie prsente dans le buffer, si par contre un acquittement est reu pour ce segment, la copie est supprime du buffer.

L'acquittement cumulatif Le protocole TCP utilise le principe de l'acquittement cumulatif, c'est dire que comme les donnes sont envoyes par segments de taille variable mais comportant le n de squence du premier octet du segment (cf paragraphe sur la segmentation et le squencement des donnes), si le contrle du checksum est satisfaisant, le rcepteur dduit partir du n de squence du premier octet et du nombre d'octets reus le n de squence du dernier octet et accuse rception pour cet octet, ce qui implique de faon implicite que tous les octets dont le n de squence est infrieur ce n de squence ont t bien reus. Il se peut mme que pour des raisons d'optimisation, le rcepteur attende la rception de plusieurs segments avant d'envoyer un acquittement, ceci a pour but de diminuer le nombre de segments d'acquittements circulant sur le rseau. Cette technique d'acquittement cumul a pour principal avantage d'viter la retransmission de donnes si un paquet d'acquittement s'est perdu.

Etablissement d'une connexion


TCP est un protocole orient connexion, cela signifie qu'il va tablir et maintenir une connexion entre deux machines et surveiller l'tat de cette connexion pendant toute la dure du transfert. Pour tablir une connexion, il faut videmment identifier les extrmits (end points) de cette connexion, cela se fait avec le couple (n IP, n de port). Le n IP est celui de l'interface rseau par laquelle les donnes vont transiter, le n de port est un numro associ l'application. Exemple de connexion : (192.14.56.17,1400) <-> (192.14.56.26,21) Cette connexion est tablie entre les 2 machines 192.14.56.17 et 192.14.56.26 en utilisant respectivement les ports 1400 et 21. TCP fonctionne en full duplex, c'est dire que lorsqu'une connexion est tablie les donnes vont pouvoir transiter simultanment dans un sens et dans l'autre. La demande de connexion peut s'effectuer de 2 manires :
q

passive (Passive Open), ceci signifie que la machine accepte une connexion entrante. C'est le cas par exemple d'un serveur FTP par exemple qui va se mettre en attente de demande d'tablissement de connexion de la part d'un client FTP. active (Active Open) pour demander l'tablissement de la connexion.

L'initialisation d'une connexion se fait toujours par ce qui s'appelle une "Poigne de main 3 voies" qui est la traduction littrale de "Three Way Handshake", cette initialisation se droule donc en 3 tapes. Ces 3 tapes ont pour but essentiel de synchroniser les numros de squence des 2 machines :

La machine A envoie un segment de type "ouverture de connexion" avec le n de squence X (dans ce segment ne figure aucune donne) La machine B renvoie un segment de type "ouverture de connexion" avec le n de squence Y et en acquittant la squence X envoye par A La machine A renvoie un acquittement B du segment n Y

De cette faon chaque machine connat le n de squence de l'autre et l'change d'information peut dbuter. Exemple : Dans l'exemple qui suit la machine A (193.54.41.42) va effectuer une connexion telnet sur le serveur S (193.50.231.10). 1re tape :

La machine A envoie un segment TCP vers S pour ouvrir la connexion (SYN). Le n de squence est fix par A 4578763, le champ ACK est 0 car il n'y a encore aucun segment en provenance de S valider. 2me tape :

La machine S renvoie un segment TCP vers S afin d'acquitter la demande de connexion (ACK=4578764 indique le n du prochain octet attendu ce qui implicitement acquitte le prcdent), le n de squence de S est 1718545887. 3me tape :

La machine A acquitte le prcdent segment en provenance de S (ACK=1718545888) ce qui termine la phase de connexion.

Contrle du flux de donnes


Les machines qui mettent et qui reoivent des donnes sont sans doute diffrentes, elles ne sont sans doute pas en mesure de travailler au mme rythme. Il se peut donc que l'metteur envoie ses donnes avec un dbit trop important par rapport au dbit de traitement du rcepteur. En fait le rcepteur stocke les donnes reues dans un buffer et c'est la place encore libre dans ce buffer qui dtermine la quantit de donnes que cette machine peut encore recevoir. C'est pour cette raison que le protocole TCP prvoit un mcanisme de contrle de flux de donnes bas sur la technique dite de la "fentre glissante". Le principe est le suivant : A chaque acquittement, le rcepteur renvoie une valeur (taille de la fentre) qui correspond au nombre d'octets que l'metteur peut envoyer avant le prochain retour d'acquittement. La taille de la fentre est fixe par le rcepteur chaque mission d'acquittement. Exemple :

Dans cet exemple la fentre est de largeur 8. Les octets 1 3 ont t envoys et acquitts, par contre les octets 4 8 non pas encore t acquitts il reste donc une incertitude sur leur bonne rception par le rcepteur, comme la taille de la fentre est de 8, l'metteur peut encore mettre sans attendre d'acquittement les octets 9 11 mais pas au del. Supposons qu' cet instant l'metteur reoit un acquittement pour les octets 4 6 et une taille de fentre de 10, on obtient alors la situation suivante :

Lorsque le rcepteur est trop sollicit et qu'il voit l'espace libre dans son buffer diminuer, il va avoir tendance rduire la taille de la fentre jusqu' ventuellement atteindre 0 ce qui signifie que le rcepteur n'est plus apte pour l'instant recevoir des donnes. Il y un cas trs embtant c'est le cas o le destinataire impose une taille de fentre de 1, c'est que

l'on appelle le syndrome de la fentre stupide (SWS pour Silly Window Syndrom).

Dans ce segment TCP, la largeur de fentre est de 8760

Structure des segments TCP


Le segment TCP c'est l'unit de transfert du protocole TCP, il est utilis indiffremment pour tablir les connexions, transfrer les donnes, mettre des acquittements, fermer les connexions. De faon classique, la structure d'un segment TCP comprend un entte de taille variable qui utilise un format en mot de 32 bits suivi d'un zone de donnes.
q

q q

Source Port et Destination Port : N de port source et destination Sequence Number : N squence du premier octet de donnes Acknowledgment Number : N d'acquittement Offset : Nb de mots de l'entte Flags : Drapeaux Window : Taille de la fentre Checksum : Contrle d'erreurs Urgent Pointer : Donnes urgentes Options : Options du protocole Padding : Remplissage

Cliquer sur une zone pour obtenir le descriptif du champ.

Source Port et Destination Port (2 x 16 bits) Ces deux champs de 16 bits chacun contiennent les numros de port de la source et de la destination. Certains numros de ports sont ddis un protocole particulier (par exemple le port 80 est ddi http). Retour au descriptif du segment TCP Sequence Number (32 bits)

Ce n sur 32 bits correspond au numro de squence du premier octet de donnes de ce segment de donnes, en effet le protocole TCP numrote chaque octet envoy. Si le drapeau SYN vaut 1, ce champ dfinit le numro de squence initial (ISN). Retour au descriptif du segment TCP Acknowledgment Number (32 bits) Ce champ sert lorsque le segment est un segment d'acquittement (le drapeau ACK du champ Flags est 1), il indique le numro de squence du prochain octet attendu (c'est dire le n de squence du dernier octet reu + 1), tous les octets prcdents cumuls sont implicitement acquitts. Retour au descriptif du segment TCP Offset (4 bits) Le champ Options ayant une largeur variable, ce champ donne la taille en mots de 32 bits de l'entte du segment. Si le champ Options est vide, cette taille est gale 5 (entte de 20 octets). Retour au descriptif du segment TCP Flags (6 bits) Ce champ comprend 6 drapeaux qui indique le rle du segment TCP :
q q q q q q

ACK : Indique un segment d'acquittement SYN : Ouverture de la connexion FIN : Fermeture de la connexion RST : Rinitialisation de la connexion pour cause d'erreurs non rcuprables PSH : Demande de remise immdiate des donnes au processus de la couche suprieure URG : Donnes urgentes Retour au descriptif du segment TCP Window (16 bits)

Taille de la fentre, c'est dire le nombre d'octets que le rcepteur est en mesure d'accepter partir du numro d'acquittement.. Voir le paragraphe sur le contrle de flux. Retour au descriptif du segment TCP Checksum (16 bits) Le Checksum permet de contrler si le paquet TCP n'a pas t modifi lors de son transport. Retour au descriptif du segment TCP Urgent Pointer (16 bits) Donne la position d'une donne urgente en donnant son dcalage par rapport au numro de squence. Ce champ n'est utilis que si le drapeau URG est positionn. Les donnes urgentes devront passer devant la file d'attente du rcepteur, c'est par exemple avec ce mcanisme qu'il est possible d'envoyer des commandes d'interruption au programme Telnet. Retour au descriptif du segment TCP Options (variable)

Utilis des fonctions de test. Retour au descriptif du segment TCP Padding (variable) Octets de bourrage qui permettent de terminer l'en-tte TCP. Retour au descriptif du segment TCP

Numros de port usuels


No port 20 21 23 25 37 42 43 53 79 80 110 111 Mot-cl FTP-DATA FTP TELNET SMTP TIME NAMESERVER NICNAME DOMAIN FINGER HTTP POP3 SUNRPC Description File Transfer [Default Data] File Transfer [Control] Telnet Simple Mail Transfer Time Host Name Server Who Is Domain Name Server Finger WWW Post Office Protocol - Version 3 SUN Remote Procedure Call

Le protocole UDP
Gnralits - Structure du paquet UDP

Gnralits
Le protocole UDP est une alternative au protocole TCP. Comme TCP, il intervient au dessus de la couche IP, au niveau Transport au sens des couches ISO.

Les caractristiques du protocole UDP sont les suivantes :


q q q q q

identifie les processus d'application l'aide de numros de ports UDP (distincts des numros de port TCP) possde un contrle d'erreurs assez rudimentaire, il est donc destin aux rseaux fiables UDP est un protocole qui n'est pas orient connexion peut ventuellement vrifier l'intgrit des donnes transportes Les donnes ne sont pas squences donc rien ne permet de vrifier que l'ordre d'arrive des donnes et le mme que celui d'mission. Ceci le destine plutt aux rseaux locaux o le mode d'acheminement des informations ne risque pas d'inverser l'ordre des donnes mais galement aux applications qui vhiculent des informations de petites tailles qui peuvent tenir en un seul datagramme. De par sa structure UDP est plus rapide que TCP, mais moins robuste

UDP est donc un protocole orient commande/rponse. UDP peut tre utile pour les applications qui ncessitent une diffusion d'informations car dans ce cas il serait pnalisant d'utiliser un protocole comme TCP orient connexion qui devrait grer (ouvrir et fermer) autant de connexion que de noeuds auxquels l'information est destine. En conclusion, UDP est utilis par les applications TFTP (Trivial File Transfer Protocol), DNS (Domain Name System), NFS (Network File System), SNMP (Simple Network Management Protocol), RIP (Routing Information Protocol) ainsi que de nombreux services qui envoient des donnes en diffusion comme WHOD (Who Daemon pour serveurs Unix) par exemple.

Structure du paquet UDP


q

Source Port et Destination Port : port source et destination Length : Longueur du paquet UDP Checksum : champ de contrle des donnes.

Le routage sous IP

Voir chapitre 6 : Interconnexion de rseaux

La couche Application

Sommaire :

La rsolution de noms Allocation dynamique d'adresses HTTP Transfert de fichiers Autres applications utilisant TCP/IP

La rsolution de noms
Gnralits - Fichiers HOSTS - DNS - NSLookup

Gnralits
Sur un rseau TCP/IP les diffrents noeuds du rseaux (ordinateurs, routeurs, etc..) sont identifis par une adresse Ip dont le format dans la version IPv4 est une suite binaire de 32 bits que l'on note gnralement sous la forme de 4 entiers infrieurs 256 spars par des points, exemple : 192.14.25.251 (cf chapitre sur l'adressage). Ds les dbuts des rseaux TCP/IP, les utilisateurs ont rapidement pris conscience que ce type d'adressage tait pratiquement impossible mmoriser pour des individus normalement constitus. C'est la raison pour laquelle est apparue le sytme de noms de machine appel FQDN : Full Qualified Domain Name. Par exemple : mamachine.service.masociete.fr Remarque : Il ne faut pas confondre FQDN et URL (Uniform Ressource Locator). L'URL est la mthode d'accs un document distant, un lien hypertexte par exemple, avec une syntaxe de la forme: <Type de connexion>://<FQDN>/[<sous-rpertoire>]/.../<nom du document>. Exemple : http://mamachine.service.masociete.fr/cours/chapitre1.htm Puisque le protocole TCP/IP ne connat que des adresses IP, il faut donc disposer d'un mcanisme qui permette de traduire une adresse de type FQDN en adresse IP. Cette traduction est appele rsolution de noms. Elle peut se faire de 2 faons :
q q

Manuellement, par le biais des fichiers hosts En utilisant les services du DNS : Domain Name System

Les Fichier HOSTS

A l'origine, les rseaux IP taient peu tendus et le nombre de machines relativement faible, c'est pourquoi la premire solution pour faire correspondre un FQDN avec une adresse IP fut d'utiliser sur chacune des machines du rseau, un fichier qui porte gnralement le nom HOSTS et qui rpertorie les paires (FQDN,adresse IP) connues et utiles. 102.54.94.97 rhino.acme.com # source server 38.25.63.10 x.acme.com # x client host 127.0.0.1 localhost Extrait d'un fichier hosts Il va sans dire que ce systme trouve tout de suite ses limites :
q q

Ncessit d'une mise jour permanente impossible raliser dans le cadre d'un rseau comme internet Non prise en compte de la structure hirarchique de l'adressage IP

Cette solution n'est donc plus utilise que pour des cas trs particulier de rsolution de noms mais la mthode universellement utilise est celle du serveur de noms ou DNS. Il faut tout de mme remarquer que lorsqu'un nom doit tre traduit en adresse FQDN, c'est tout d'abord le fichier hosts qui est consult, si le nom n'est pas trouv il est fait appel au serveur de noms, ce qui signifie que la mthode du fichier hosts peut permettre :
q q

D'acclrer la rsolution de noms pour des noms utiliss frquemment Bloquer l'accs certains sites internet indsirables (ceux qui diffusent les bandeaux publicitaires par exemple) en redirigeant le nom sur l'adresse de loopback 127.0.0.1

Le DNS
DNS signifie Domain Name System, autrement dit Systme de Noms de Domaine. Ce systme repose sur une base de donne hirarchique, distribue sur un grand nombre de serveurs appels serveurs de noms. En haut de la hirarchie on trouve les "serveurs de racine" (DNS Root Servers). Les serveurs racine connaissent les serveurs de nom ayant autorit sur tous les domaines racine (c.a.d .com, .edu, .fr, etc...). Ces serveurs racine reprsentent la pierre angulaire du systme DNS : si les serveurs racine sont inoprationnels, il n'y a plus de communication sur lInternet, d'o multiplicit des serveurs racines (actuellement il y en a 13). Chaque serveur racine reoit environ 100000 requtes /heure. Ces serveurs racine ont d'ailleurs fait l'objet d'une attaque de pirates informatiques en octobre 2002.

DNS Root Servers (source ICANN) En dessous de ces "serveurs racine", on trouve des "zones" qui correspondent des sous-ensembles de

l'arborescence, ces zones sont gres par une mme autorit.

Dans ces zones on trouve 3 types de serveurs de noms :


q

Le serveur primaire C'est le serveur qui a autorit sur sa zone, il tient jour toutes les correspondances entre noms et adresse Ip de sa zone. Il n'y a qu'un seul serveur primaire par zone. Les serveurs secondaires Ce sont des serveurs qui reoivent leurs informations directement du serveur primaire par une opration qu'on appelle "transfert de zone". Ils sont capables de remplacer ce dernier en cas de panne. Les serveurs caches Ce type de serveur ne constitue sa base d'information qu' partir des rponses d'autres serveurs de noms. Ces informations sont stockes avec une dure de vie limite (TTL). Il est capable de rpondre aux requtes des clients DNS.

Pour que le systme fonctionne, il faut bien sr qu'un serveur de noms qui ne peut pas rpondre une demande puisse interroger un autre serveur de noms, c'est pour cela que chaque serveur de noms dispose d'un certain nombre de pointeurs vers des serveurs de noms capables de rsoudre le problme. Algorithme de rsolution de noms (exemple) :

1. L'ordinateur portable du schma est configur pour utiliser le serveur DNS Z2. Il emet une requte pour 2. Si le DNS Z2 ne possde pas cette information en cache, il va se rferrer au serveur de domaine X 3. X n'a pas l'information mais il connait l'adresse du serveur DNS Z1 qui gre la Zone 1, il renvoit donc cette 4. Z2 fait donc une requte vers Z1 5. Z1 connat forcment l'adresse de serveur1, il la communique donc Z2 qui la recopie dans son cache et la
transmet au portable demandeur adresse Z2 connatre l'adresse du serveur1.

NSLookup
La commande NSLookup prsente sur la plupart des systmes d'exploitation permet d'interroger les DNS. Par dfaut, cette commande interroge le DNS pour lequel la machine a t configure.

C:\>nslookup Serveur par dfaut : isis.univ-nancy2.fr Address: 194.214.218.110


Il est possible ensuite de rechercher un nom de machine (ici la machine rmi208tj) du domaine, on obtiendra alors son nom complet (FQDN) et son adresse IP :

> rgmi208tj Serveur: isis.univ-nancy2.fr Address: 194.214.218.110 Nom : rgmi208tj.plg.univ-nancy2.fr Address: 193.54.41.42

On peut galement interroger ce DNS pour connatre l'adresse IP d'un serveur web quelconque situ n'importe o sur la toile. On obtient le vrai nom de la ressource (ici skirandopc1.skirando.ch) et on apprend que notre DNS a obtenu cette information en contactant d'autre(s) DNS (rponse de source secondaire..) :

> www.skirando.ch Serveur: isis.univ-nancy2.fr Address: 194.214.218.110 Rponse de source secondaire : Nom : skirandopc1.skirando.ch Address: 128.179.66.2 Aliases: www.skirando.ch
On peut galement interroger un autre DNS, un serveur "racine" par exemple (la liste des serveurs racines peut tre consulte l'adresse : ftp://ftp.rs.internic.net/domain/named.root) . :

C:\>nslookup Serveur par dfaut : isis.univ-nancy2.fr Address: 194.214.218.110 > server b.root-servers.net Serveur par dfaut : b.root-servers.net Address: 128.9.0.107
On se trouve donc la racine de l'arbre, on peut donc "remonter" la branche qui nous intresse par exemple .fr On obtient ainsi la liste des serveurs de noms que l'on peut interroger sur ce domaine :

> fr Serveur: b.root-servers.net Address: 128.9.0.107 Nom : fr Served by: - DNS.CS.WISC.EDU 128.105.2.10 fr - NS1.NIC.fr 192.93.0.1 fr - NS3.NIC.fr 192.134.0.49 fr - DNS.INRIA.fr 193.51.208.13 fr - NS2.NIC.fr 192.93.0.4 fr - DNS.PRINCETON.EDU 128.112.129.15 fr - NS-EXT.VIX.COM

204.152.184.64 fr - NS3.DOMAIN-REGISTRY.NL 193.176.144.6 fr


On peut choisir l'un d'eux et rechercher un nom de domaine (univ-nancy2.fr par exemple). On obtient ainsi l'adresse des serveurs qui peuvent nous renseigner sur des machines de ce domaine (ici il y en a 2).

> univ-nancy2.fr Serveur: dns.inria.fr Address: 193.51.208.13 Nom : univ-nancy2.fr.plg.univ-nancy2.fr Served by: - isis.univ-nancy2.fr 194.214.218.110 univ-nancy2.fr - arcturus.ciril.fr 193.50.27.66 univ-nancy2.fr

L'allocation dynamique d'adresses


Gnralits - DHCP

Gnralits
Dans un rseau utilisant le protocole TCP/IP, chaque machine doit disposer d'une adresse IP. Cette adresse IP est gnralement stocke (avec d'autres paramtres relatifs au protocole comme le masque, l'adresse de la passerelle par dfaut) sur le disque dur de la machine. On parle dans ce cas d'adressage statique. L'adressage IP statique prsente un certain nombre d'inconvnients :
q

La configuration doit se faire manuellement. Cette opration, mme si elle est simple a raliser, a non seulement un cot en terme de temps pass raliser cette opration mais comporte galement un certain risque d'erreurs : mauvaise adresse, adresse duplique, erreur dans le masque, etc... Le gaspillage d'adresses. Sur un parc de n machines, il n'est pas toujours certain que ces n machines vont avoir besoin simultanment d'utiliser le protocole IP. C'est typiquement le problme des fournisseurs d'accs internet qui possdent un grand nombre de clients mais, un instant donn, seule une proportion assez faible utilise internet.

Une configuration rigide. La structure d'un rseau peut voluer : ajout de nouvelles machines, interconnexion de rseaux, etc... Ceci est d'autant plus vrai si on utilise du matriel trs mobile comme les ordinateurs portables. La configuration effectue manuellement va dans ce cas pnaliser fortement la flexibilit du rseau et son adaptation rapide aux nouvelles contraintes.

L'adressage statique sera donc bien adapt des rseaux de petite taille et qui voluent peu, par contre pour les autres il sera plus intressant de se tourner vers un mode d'allocation d'adresse dynamique. Il existe 2 protocoles qui grent l'allocation dynamique d'adresses :
q q

BOOTP : C'est le plus ancien, il a t dvelopp l'origine pour le dmarrage des stations sans disque. DHCP : C'est une extension du protocole BOOTP, plus souple dans sa gestion des adresses IP, c'est lui qui est utilis l'heure actuelle sur la plupart des configurations o une allocation dynamique d'adresses est mise en oeuvre.

DHCP
Le principe DHCP signifie Dynamic Host Configuration Protocol. C'est un protocole de la couche Application qui utilise UDP et IP. Le principe de configuration dynamique repose sur un principe de Client / Serveur. Le client DHCP, pour obtenir une adresse IP va effectuer auprs d'un serveur DHCP un certain nombre de requtes. Les adresses obtenues ne le sont gnralement pas de faon dfinitive mais le sont pour une dure (dure de bail) prvues au niveau du serveur. Cette procdure s'effectue de la faon suivante :
q

Le client en qute de configuration met un datagramme spcifique (destin au port 67 du serveur) via le protocole UDP destin tout serveur DHCP prsent sur le rseau. Ce datagramme (DHCP DISCOVER) est de type diffusion c'est dire qu'il est envoy l'adresse 255.255.255.255 (voir chapitre relatif l'adressage IP). Dans ce datagramme figure l'adresse physique (adresse MAC) du client. Le client passe dans un tat d'attente pendant lequel il attend qu'un serveur DHCP et lui propose une adresse IP sur son port 68. Si un serveur DHCP est actif est dispose d'une adresse IP libre il va la proposer au client qui a fait la demande et lui faire une proposition sous la forme d'une trame DHCP OFFER. Cette trame peut tre envoye soit directement l'adresse physique du client soit en mode broadcast. Lorsqu'il reoit une adresse IP, le client peut ventuellement vrifier que cette adresse IP n'est pas dj attribue sur le rseau. Cette vrification peut se faire en envoyant une requte ARP l'adresse indique (cf chapitre Rsolution d'adresse). Ensuite le client peut accepter cette adresse (c'est gnralement ce qu'il fait...) ou la refuser. Si le client accepte cette adresse, il va diffuser un datagramme d'acceptation de cette adresse (DHCP REQUEST), ce qui a pour effet de rserver cette adresse et de prvenir les ventuels autres serveurs DHCP qui auraient rpondu la demande de ne pas donner suite. S'il existe plusieurs serveurs DHCP sur le rseau, c'est la premire proposition valide d'adresse qui sera retenue. Le serveur DHCP constate que son offre a t retenue, il envoie donc un datagramme de confirmation (DHCP ACK) au client. Dans ce datagramme on trouve l'adresse IP bien sr mais galement le masque indispensable la configuration, de manire optionnelle on peut galement trouver l'adresse de la passerelle par dfaut et la ou les adresses des DNS. A la rception de ces paramtres, le client va configurer sa pile IP avec les paramtres reus et dans le mme temps va armer 3 temporisateurs qui vont servir la gestion du bail. La gestion du bail

La plupart du temps, la gestion des adresses IP par un serveur DHCP est faite en incluant la notion de bail, c'est dire qu'une adresse IP sera alloue un client pour une dure finie. Un client qui voit son bail arriver terme peut demander au serveur un renouvellement du bail. De mme, lorsque le serveur verra un bail arriv terme, il mettra un paquet pour demander au client s'il veut prolonger son bail. Si le

serveur ne reoit pas de rponse valide, il rend disponible l'adresse IP prcdemment alloue. Le bail est caractris par 3 temporisateurs :
q

T3 : Dure totale du bail. Cette dure est fixe par le serveur et est transmise au client par l'intermdiaire du datagramme DHCP ACK. T1 : Temporisateur de renouvellement du bail. Cette dure est gnralement gale la moiti de T3, c'est la dure limite au terme de laquelle il faudra que le client ait effectu une demande de renouvellement de bail auprs du serveur. T2 : Temporisateur de rebinding. Il se peut que le client ait procd une demande de renouvellement de bail mais que le serveur n'ai pas rpondu cette demande de renouvellement pour des problmes de dysfonctionnement de ce serveur ou des connexions avec celui-ci. A l'expiration de T2, le client va donc diffuser sur le rseau une demande de renouvellement de son adresse l'intention de tous les serveurs DHCP ventuellement prsent sur le rseau. Gnralement T2 quivaut peu prs 80 % de T3.

Toute la problmatique dans la gestion d'un serveur DHCP vient justement du choix de la dure du bail. Un bail trop court va imposer un renouvellement frquent avec toutes les mobilisations de ressources ct serveur et client que cela engendre ainsi que les messages vhiculs sur le rseau, d'autant plus que ces messages sont de type diffusion. A l'oppos, un bail trop long ne va pas permettre une gestion conome des adresses IP surtout dans un contexte o le rseau volue beaucoup (ordinateurs portables par exemple).

Le protocole HTTP
Gnralits - Les URL - Les requtes-rponses - HTTPS

Gnralits
HTTP signifie HyperText Transport Protocol, c'est un protocole lger et rapide utilis pour dlivrer des fichiers multimdia et hypertextes, appels plus gnralement "ressources", en utilisant internet. Ces ressources sont identifies par un URL : Uniform Ressource Locator. Une ressource peut tre un fichier (fichier texte cod en HTML par exemple ou image de type jpeg, gif, etc...) ou du texte HTML (Hypertext Transfer Protocol) gnr dynamiquement par un script CGI (Common Gateway Interchange).

HTTP se base sur un systme requte/rponse entre un client HTTP (un navigateur en fait) et un serveur HTTP. Par dfaut, le n de port utilis par le serveur HTTP est le port 80 mais dans la pratique n'importe quel port peut tre utilis.

Les URL
Un URL permet de localiser des ressources sur le Web. Un URL se compose de plusieurs lments : Exemple (en cliquant sur un lment, on peut se dplacer vers la signification de celui-ci) :

q q q

Le protocole (ou classification): http ou https (http scuris) Le nom d'hte : Le nom du serveur ou ventuellement son adresse IP Le numro de port (facultatif) : Par dfaut ce n de port est 80 pour HTTP et 443 pour HTTPS, mais il est possible d'utiliser un autre n de port (prcd par :) Le chemin : C'est l'emplacement de la ressource demande, cela n'a pas forcment de lien avec un chemin disque dur car les serveurs grent des alias qui permettent de remplacer une portion de chemin par un littral. La chane de requte (facultatif) : Permet de passer des paramtres supplmentaires aux scripts. Cette chane lorsqu'elle existe est constitue d'un ensemble de paires nom=valeur spares par le symbole &, la chane elle mme dbute par le caractre ? L'identificateur de fragment (facultatif) : Dsigne une section spcifique d'une ressource, un dbut de paragraphe dans une page web par exemple. Cet identificateur n'est utilis que par les navigateurs afin de dcaler sa fentre de visualisation en consquence.

Dans la pratique, il existe en fait plusieurs classes d'URL :


q q

Les URL absolues : Elles contiennent le nom d'hte comme spcifi dans la dfinition prcdente. Les URL relatives : Ces URL ne comportent pas les parties protocoles, nom d'hte et numro de port. Le navigateur devra alors suppos que la ressource se trouve sur la mme machine. Ces URL relatives peuvent commencer par un / , il s'agira alors d'un chemin complet, dans le cas contraire, il s'agira d'un chemin relatif dcrit par rapport l'emplacement de la ressource o ce chemin est spcifi.

Exemple : l'URL ../images/schema.gif est un URL relatif avec un chemin relatif, c'est dire que pour trouver la ressource schema.gif il faut remonter au rpertoire (ou dossier) suprieur et ouvrir le rpertoire images. L'encodage des URL : De nombreux caractres apparaissant dans les URL posent problme, c'est le cas des caractres espace, #, ?,@,+,etc.. qui soit on une signification dans la structure d'un URL, soit ont une signification pour d'autres protocoles. Ce codage s'effectue en utilisant % suivi de la valeur hexadcimale du caractre sur 2 chiffres (exemple : %20 correspond l'espace).

Les Requtes-Rponses
Lorsqu'un navigateur demande une page (l'utilisateur a cliqu sur un lien ou a tap un URL dans la fentre de navigation par exemple), celui-ci envoie au serveur une requte HTTP. Le serveur lui rpondra par une rponse HTTP qui gnralement (mais pas toujours..) contient la ressource demande par le serveur. Le protocole HTTP jusqu' la version 1.0 tait un protocole qui fonctionne en mode non connect (stateless) c'est dire qu'aprs l'change requte-rponse la connexion n'est pas maintenue, depuis la version 1.1, la connexion peut dsormais tre

maintenue. La structure des requtes et des rponses est la mme, elle est constitue de :
q q

un entte un corps

Structure de l'entte : une ligne initiale + couples (champ d'entte : valeur) La ligne initiale : de forme diffrente si l'on est dans une requte ou dans une rponse. Dans une requte, la ligne initiale est compose de 3 parties :
q

La mthode de requte (exemple : GET,POST,HEAD,...)

L'URL de la resource concerne Le protocole utilis HTTP/x.x (exemple HTTP/1.1) Exemple : GET /index.htm HTTP/1.1

Dans une rponse, la ligne initiale appele ligne status, est compose de 3 parties :
q q q

Le protocole utilis HTTP/x.x (exemple HTTP/1.1) Le code d'tat a 3 chiffres La version textuelle en langue anglaise correspondant l'tat Exemple : HTTP/1.0 404 Not Found

Les principaux codes d'tat : Il existe 5 classes de codes d'tat :


q q q

q q

1xx : utiliss bas niveau lors des transaction HTTP 2xx : la requte s'est bien passe (200 : OK) 3xx : la requte est correcte mais la ressource n'est plus l ou le serveur ne veut pas l'envoyer comme c'est le cas pour le code 304 qui signifie que la ressource n'a pas t modifie depuis le dernier envoie donc il est inutile de la renvoyer. 4xx : la requte est incorrecte (exemple 404 : la ressource n'existe plus) 5xx : erreur du serveur (exemple script ct serveur de syntaxe incorrecte)

Les champs d'entte : Les champs d'entte sont de la forme champ d'entte : valeur. Il en existe 16 diffrents pour HTTP 1.0 et 46

pour HTTP 1.1. Le seul requis pour le protocole HTTP 1.1 est le champ HOST.

Accept-Language Authorization Content-Base

Langages accepts par le navigateur Nom et mot de passe de l'utilisateur demandant la ressource URL de base pour la rsolution de toutes les URL relatives du document Longueur du contenu de la requte. Utile pour la mthode POST dans les requtes et pour les rponses en gnral (c'est notament ce qui permet au navigateur d'afficher le pourcentage dj charg) Ncessaire lorsque la mthode POST est utilise. Valeur la plus courante : multipart/form-data Introduit par Netscape. Renvoie des couples de nom/valeur configure par le serveur lors d'une rponse antrieure Identificateur unique attribu une ressource utilis par les caches pour vrifier qu'une copie est obsolte ou pas. Nom de l'hte cible Sert faire des requtes conditionnelles sur la date de dernire modification de la ressource Sert faire des requtes conditionnelles sur la valeur de l'Identity Tag (ETag) Permet l'tablissement de connexions permanentes. On trouve les paramtres timeout qui indique la dure au bout de laquelle la connexion sera libre et max qui est le nombre maximum de requtes traites par connexion. Date et heure de la dernire modification de la ressource demande Nouvel emplacement de la ressource URL de la dernire page visite, gnralement celle d'o vient la requte Demande la mmorisation par le navigateur d'une paire nom/valeur Lorsque ce champ la valeur chunked, cela indique que les donnes sont envoyes par blocs (chaque bloc sera prcd de la taille en octets) Client (navigateur) utilis

Content-Length

Content-Type Cookie ETag Host If-Modified-Since If-None-Match

Keep-Alive

Last-Modified Location Referer Set-Cookie Transfer-Encoding User-Agent La structure du corps :

Pour une requte, le corps contiendra des couples de nom-valeur dans le cas de la mthode POST, ou le contenu d'un fichier dans le cas d'un upload de fichier vers le serveur. Pour une rponse, ce corps contient gnralement une ressource destine au navigateur comme du code HTML par exemple.

HTTPS

Dans le sigle HTTPS, le S ajout HTTP signifie SECURE. Cela indique que le protocole HTTP utile le protocole SSL (Secure Socket Layer) dvelopp par Netscape et qui a t conu pour assurer la scrit des transactions sur internet. Ce protocole est intgr dans les navigateurs depuis 1994. Le protocole SSL en est dj sa version 3. On peut considrer que le protocole SSL s'insre entre le protocole HTTP et le protocole TCP. SSL permet d'assurer les services de scurit suivants :
q q

confidentialit obtenue par l'utilisation d'algorithmes chiffrement symtrique de blocs. intgrit. L'intgrit des donnes est assure par l'utilisation de MAC (Message Authentification Code) bass sur des fonctions de hachage. authentification des extrmits (client et/ou serveur)

Le droulement d'une session SSL respecte le schma suivant :


q

q q

Le client envoie un "client_hello" avec une valeur gnre alatoirement et la liste des algorithmes de chiffrement supports Le serveur rpond avec un "server_hello" avec galement une valeur gnre alatoirement et l'algorithme de chiffrement choisi ainsi que son certificat, un message d'cahnge de cls Le client envoie un "premaster secret" qui sera utilis pour le chiffrement Le client et le serveur calcul partir de ce "premaster secret" leur "master secret" qui est une cl de 48 bits Le dialogue peut alors commenc, les donnes sont dcoupes en blocs, compresss et chiffrs en utilisant la fonction de hachage augmente du "master secret"

Transfert de fichiers
FTP - TFTP

FTP
FTP signifie File Transfer Protocol, c'est un protocole de transfert de fichier qui utilise TCP. Le mode de fonctionnement est de type client-serveur. FTP permet les oprations suivantes :
q q q q

transfert de fichiers du serveur vers le client (download) transfert de fichiers du client vers le serveur (upload) renommage et suppression depuis le client de fichiers stocks sur le serveur listage depuis le client de rpertoire situs sur le serveur

Le mode opratoire standard de FTP est le suivant :


q

Le client FTP initie une connexion avec le serveur FTP. Il doit s'authentifier auprs de ce serveur c'est dire fournir un identifiant et un mot de passe. Le serveur FTP tant en coute permanente de demande de connexion, il reoit donc cette demande de

connexion . Le serveur initie donc une connexion TCP dite de connexion de contrle qui servira transfrer les commandes TCP Chaque fois que le client FTP excute une commande de transfert de donnes, il envoie au serveur FTP cette demande accompagne du n de port local utilis Si le serveur TCP reoit une commande de transfert de donnes, il initie une connexion dite connexion de donnes.

Gnralement un transfert de fichier par ftp se fait en utilisant ct serveur les ports 21 pour les oprations de contrle et le port 20 pour les donnes. La commande FTP existe sur la plupart des systmes d'exploitation mais il existe dsormais des clients FTP qui permettent une utilisation simplifie sans connatre la syntaxe des commandes.

Client FTP

TFTP
TFTP signifie Trivial File Transfer Protocol, c'est un autre protocole de transfert de fichier mais qui utilise UDP comme protocole de transfert. Le protocole TFTP est plus simple implanter que FTP mais il ne permet pas l'utilisation d'un rpertoire utilisateur sur le serveur, ni celle d'un mot de passe garantissant une la protection des donnes. On utilise le protocole TFTP notamment pour amorcer des stations de travail sans disque dur.

Quelques autres applications utilisant TCP/IP


Telnet - SMTP - SNMP - NFS

TELNET

Ce protocole est utilis pour muler une connexion de terminal un hte distant. Le but de ce protocole est donc de transmettre les informations du clavier du client vers l'hte distant et, dans l'autre sens, d'afficher les informations en retour sur l'cran du client. Telnet utilise TCP comme protocole de transport. Le mode de fonctionnement est de type client-serveur. Gnralement ct serveur c'est le port 23 qui est utilis. Une connexion TELNET dbute toujours par une phase de ngociation qui a pour but de dterminer la configuration du client utilis comme par exemple la faon dont les donnes vont tre groupes avant d'tre envoyes (ligne par ligne ou caractre par caractre). Telnet utilise le concept de terminal virtuel qui permet de s'affranchir de la multiplicit des terminaux. Un terminal virtuel consiste se doter d'une base de communication standard comprenant le codage des caractres ASCII et de quelques caractres de contrle.

SMTP
SMTP signifie Simple Mail Transfer Protocol, c'est le protocole standard permettant de tranfrer du courrier d'un serveur (on parle de serveur SMTP) un autre. Le protocole SMTP fonctionne en mode connect, le droulement d'une connexion comprend toujours les tapes suivantes :
q q q

L'ouverture de la session symbolis par la commande HELO ou EHLO sur les versions plus rcentes Un envoi MAIL FROM qui indique qui est l'expditeur du message Un envoi RCPT TO qui indique le destinataire (s'il y a plusieurs destinataires, cette commande est rpte autant de fois que ncessaire) Un envoi DATA qui correspond au corps du message

Le port utilis par dfaut est le port 25. La spcification de base du protocole SMTP indique que tous les caractres transmis dans un mail soient cods en ASCII sur 7 bits. Afin de pouvoir envoyer des caractres de la table ASCII tendue (accents, etc...) il est donc ncessaire d'utiliser des systme de transcodage (spcifications MIME : Multipurpose Internet Mail Extensions) comme base64 par exemple qui est utilis pour coder les fichiers attachs ou quoted-printable pour les caractres spciaux contenus dans le corps du message. Il existe d'autres protocoles lis la messagerie lectronique :
q

POP (Post Office Protocol) Ce protocole permet d'aller rcuprer son courrier sur un serveur distant. Ce protocole est indispensable pour les personnes qui ne sont pas connects directement l'internet, afin de rapatrier leurs mails sur leur machine. La version POP3 gre l'authentification par nom d'utilisateur + mot de passe, par contre le cryptage n'est pas utilis. IMAP (Internet Mail Access Protocol) Ce protocole considr comme une alternative POP offre des possibilits supplmentaires. La principale est que le client de courrier peut demander les en-ttes des messages au serveur, ou les corps de certains messages, ou la recherche de messages rpondant certains critres ce qui permet une plus grande souplesse d'utilisation.

SNMP
SNMP signifie Simple Network Management Protocol, c'est donc un protocole utilis pour contrler les diffrents lments d'un rseau. Le principe de fonctionnement de SNMP est encore une fois bas sur un modle clientserveur. Les diffrents lments de SNMP sont :
q

Une station de gestion (Network Management Station). Cette station interroge les diffrents composants du rseau.

Des composants de rseau (station, routeur, ponts, etc...) avec des agents qui sont en fait des programmes qui s'excute sur les diffrents lments du rseau. Des tables MIB (Management Information Base) qui sont en fait des bases de donnes gres par chaque agent et qui contienent des informations lies la transmission d'informations au sein du rseau.

Le principe de fonctionnement de SNMP repose sur les requtes que peut formuler la station de gestion et les rponses renvoyes par les diffrents agents interrogs. Pour rpondre les agents utilisent bien sr les donnes stockes dans leurs tables MIB. Il est prvu galement que l'agent d'un lment de rseau qui passerait dans un tat anormal prvienne la station de gestion par un message appel trap SNMP. SNMP s'appuie sur des services du protocole UDP.

NFS
NFS signifie Network File System, c'est un protocole dvelopp l'origine par Sun Microsystems. Ce protocole permet un serveur NFS d'exporter son systme de fichiers vers des clients NFS. Chaque client NFS aura donc accs l'arborescence de fichiers exporte par le serveur NFS comme s'il faisait partie de son propre systme de fichiers. Les versions originales de NFS utilisaient le protocole UDP, les plus rcentes s'appuient sur le protocole TCP plus adapt aux rseaux tendus. Au niveau de la couche session du modle OSI, NFS utilise le protocole RPC (Remote Procedure Call) qui permet d'effectuer des appels de procdure distance. Pour l'utilisateur d'une partition NFS, il dispose de toutes les oprations de manipulation de fichiers ou de rpertoires classique avec en plus des protocoles particuliers comme Mount qui implmente la procdure de montage de l'arborescence NFS.

Bibliographie
Les livres :
q

TCP/IP, Karanjit S.Siyan, CampusPress Les protocoles IP et TCP sont trs bien dtaills TCP/IP, Joe Casad, Campus Press Moins complet et technique que le prcdent mais les protocoles de la couche Application sont prsents de faon assez complte

Sur le Net :
q

Les RFC de TCP/IP :

Exercices et Tests

sommaire :

Enoncs Solutions

Exercice 1
Pour chacune des classes de rseaux IP, A, B et C, calculer le nombre thorique de rseaux possibles et le nombre thorique d'htes par rseau.

Exercice 2
Que dsigne les adresses suivantes (Classe de rseau, @ de la machine, @ du rseau, etc...) ?
q q q q q q

137.14.0.0 : Classe B, rseau 137.14, cette adresse dsigne ce rseau 137.14.0.255 : Classe B, rseau 137.14, hte 0.255 137.14.255.255 : Classe B, rseau 137.14, diffusion 127.0.0.1 : Bouclage 0.0.146.245 : dsigne l'hte 146.245 dans le mme rseau (classe B) 137.256.0.1 : adresse impossible (256 > 255)

Exercice 3
Reprendre l'exercice 1 mais en tenant compte de la contrainte lie aux adresses spciales. Donner pour chaque classe d'adresse l'intervalle des adresses de rseau. Evaluer le nombre thorique d'htes

adressables.

Exercice 4
Dcoder le datagramme IP ci-dessous et remplir le tableau suivant : Version IP Longueur de l'entte (mots de 32 bits) Longueur totale du datagramme N du datagramme Datagramme fragment ? TTL Protocole de niveau suprieur @IP source @IP destination

Datagramme IP (codage hexadcimal) : 45 7d 80 c1 c1 0c 02 03 50 8b 00 e5 06 36 36 e8 95 83 10 40 00 40 a8 29 29 00 0d 12 1c 00 28 00 32 2a 21 8b 6a 35 b2 00

Exercice 5
Pour un rseau de classe C donner les diffrentes possibilits en matire de dcoupage en sous rseau en prcisant pour chaque solution le nombre de sous rseau possible et le nombre d'htes par sous rseau ainsi que le nombre d'htes total.

Exercice 6
Quel est le nombre maximum d'hte d'un sous-rseau de classe B ? Quel est le nombre maximum de sousrseaux que l'on peut crer partir d'un rseau de classe A ?

Exercice 7
Une entreprise a obtenu l'adresse de rseau 144.25.0.0, on veut structurer ce rseau en 20 sous-rseaux. Proposer un masque de sous-rseau et indiquer combien d'adresses seront utilisables dans chacun des sousrseaux.

Exercice 8
On a plac un analyseur de trames sur un ordinateur connect un rseau local. Le document suivant prsente uniquement les trames concernant le protocole http. Reconstituer les tapes du dialogue.
GET /Deust/exo5.php HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* Accept-Language: fr,ru;q=0.5 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) Host: spmi2:8000 Connection: Keep-Alive

HTTP/1.1 200 OK Date: Thu, 21 Nov 2002 14:36:53 GMT Server: Apache/1.3.24 (Win32) PHP/4.2.0 X-Powered-By: PHP/4.2.0 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html 53 <html> <head> <title>Catalogue de photos</title> </head> .... GET /Deust/images/miniatures/s_image001.jpg HTTP/1.1 Accept: */* Referer: http://spmi2:8000/Deust/exo5.php Accept-Language: fr,ru;q=0.5 Accept-Encoding: gzip, deflate If-Modified-Since: Wed, 07 Aug 2002 20:40:52 GMT If-None-Match: "0-1b36-3d5185d4" User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) Host: spmi2:8000 Connection: Keep-Alive HTTP/1.1 304 Not Modified Date: Thu, 21 Nov 2002 14:36:53 GMT Server: Apache/1.3.24 (Win32) PHP/4.2.0 Connection: Keep-Alive Keep-Alive: timeout=15, max=99 ETag: "0-1b36-3d5185d4" GET /Deust/images/miniatures/s_fdfd.jpg HTTP/1.1 Accept: */* Referer: http://spmi2:8000/Deust/exo5.php Accept-Language: fr,ru;q=0.5 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) Host: spmi2:8000 Connection: Keep-Alive HTTP/1.1 404 Not Found Date: Thu, 21 Nov 2002 14:36:54 GMT Server: Apache/1.3.24 (Win32) PHP/4.2.0 Keep-Alive: timeout=15, max=77 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1 156 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>404 Not Found</TITLE> </HEAD><BODY> <H1>Not Found</H1> The requested URL /Deust/images/miniatures/s_fdfd.jpg was not found on this server.<P> <HR> <ADDRESS>Apache/1.3.24 Server at <A HREF="mailto:didier.croutz@univ-nancy2.fr">Spmi2</A> Port 8000</ADDRESS> </BODY></HTML>0 POST /Deust/exo5.php HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint,

application/vnd.ms-excel, application/msword, */* Referer: http://spmi2:8000/Deust/exo5.php Accept-Language: fr,ru;q=0.5 Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) Host: spmi2:8000 Content-Length: 9 Connection: Keep-Alive coupure=6 HTTP/1.1 200 OK Date: Thu, 21 Nov 2002 14:36:58 GMT Server: Apache/1.3.24 (Win32) PHP/4.2.0 X-Powered-By: PHP/4.2.0 Keep-Alive: timeout=15, max=75 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html 53 <html> <head> <title>Catalogue de photos</title> </head> <body> ... GET /Deust/exo5_a.php?numphot=4 HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* Referer: http://spmi2:8000/Deust/exo5.php Accept-Language: fr,ru;q=0.5 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) Host: spmi2:8000 Connection: Keep-Alive

Solution de l'Exercice 1
Classe A : Nombre de rseaux : De 000 0001 111 1111 , ce qui donne 127 rseaux.

Nombre d'htes: 224 = 16,7 millions d'htes / rseau Classe B: Nombre de rseaux : , ce qui donne rseaux. Nombre d'htes: 216 = 65 538 htes / rseau Classe C: Nombre de rseaux : De , ce qui donne rseaux. Nombre d'htes: 28 = 256 htes / rseau

Solution de l'Exercice 2
q q q q q q

137.14.0.0 : Classe A 137.14.0.255 137.14.255.255 127.0.0.1 0.0.146.245 137.256.0.1

Solution de l'Exercice 3
Classe A : 126 rseaux et 16,7 Millions d'htes/rseaux. De 1.x.x.x 126.x.x.x Classe B : 16384 rseaux et 65 534 htes/rseaux. De 128.x.x.x 191.x.x.x Classe C : 2 097 152 rseaux et 254 htes/rseaux. De 192.x.x.x 223.x.x.x Ce qui donne un espace d'adressage thorique de 3,7 Milliards d'htes environ.

Solution de l'Exercice 4
Version IP 4

Longueur de l'entte (mots de 32 bits) Longueur totale du datagramme N du datagramme

5 40 octets 7d e5

Datagramme fragment Non ? TTL Protocole de niveau suprieur @IP source @IP destination 128 TCP 193.54.41.42 193.54.41.33

Solution de l'Exercice 5
Dans un sous rseau de classe C, 8 bits sont allous l'adresse de l'hte. Dans le cadre d'un dcoupage en sous rseau, on a donc les possibilits suivantes : Nb de bits rserv au sous rseau 1 2 3 4 5 6 7 8

Nb de sous rseaux Impossible 2 6 14 30 62 Impossible Impossible

Nb d'htes par sous rseau Impossible 62 30 14 6 2 Impossible Impossible

Nb d'htes total Impossible 124 180 56 180 124 Impossible Impossible

Solution de l'Exercice 6
Pour un rseau de classe B, l'host-id tient sur 2 octets donc 16 bits, lors d'un dcoupage en sous-rseaux, il faut prendre au minimum 2 bits pour le sous-rseau, ce qui en laisse 14 pour le n d'hte, sur 14 bits on code 214 - 2 htes, c'est dire 16 382 htes. Pour un rseau de classe A, l'host-id tient sur un 3 octets donc 24 bits, lors d'un dcoupage en sousrseaux, on peut prendre au maximum 22 bits (car il faut disposer d'au moins 2 bits pour coder les htes des sous-rseaux), sur 22 bits on peut coder 222-2 sous-rseaux c'est dire 4 194 302 sous-rseaux mais dans chacun de ces sous-rseaux on ne disposera que de 2 adresses !!

Solution de l'Exercice 7
Le rseau 144.25.0.0 est un rseau de classe B, le masque par dfaut est 255.255.0.0. Pour obtenir 20 sousrseaux, il faut "prendre" sur la partie hostid 5 bits, car sur 5 bits on peut coder 25 valeurs donc 32-2=30 sous-rseaux (Rappel : sur 4 bits, on ne peut coder que 24 -2 = 14 sous rseaux). Le masque utiliser sera donc : 255.255.248.0 (248 est cod 1111 1000). Dans chaque sous rseau, on dispose de 211 - 2 = 2046 adresses.

Solution de l'Exercice 8
GET /Deust/exo5.php HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* Accept-Language: fr,ru;q=0.5 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) Host: spmi2:8000

Connection: Keep-Alive

Il s'agit de la demande de la page exo5.php (dans le dossier ou l'alias Deust) sur l'hte spmi2 en utilisant le port 8000. C'est une connexion permanente qui est demande. Le navigateur est Internet Explorer 5.5, il accepte les langages franais et russe ainsi que diffrents formats d'images et d'applications comme Word, Excel et PowerPoint.
HTTP/1.1 200 OK Date: Thu, 21 Nov 2002 14:36:53 GMT Server: Apache/1.3.24 (Win32) PHP/4.2.0 X-Powered-By: PHP/4.2.0 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html 53 <html> <head> <title>Catalogue de photos</title> </head> ....

C'est la rponse du serveur. Le serveur est un serveur Apache install sous Windows. Le code envoy est de l'HTML gnr par un script PHP. La connexion permanente est accepte avec un timeout de 15 secondes et un nombre maxi de requtes de 100. Les donnes seront dcoupes en blocs et envoyes par plusieurs segment TCP.
GET /Deust/images/miniatures/s_image001.jpg HTTP/1.1 Accept: */* Referer: http://spmi2:8000/Deust/exo5.php Accept-Language: fr,ru;q=0.5 Accept-Encoding: gzip, deflate If-Modified-Since: Wed, 07 Aug 2002 20:40:52 GMT If-None-Match: "0-1b36-3d5185d4" User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) Host: spmi2:8000 Connection: Keep-Alive

Le navigateur demande le chargement d'une image s_image001.jpg. Ce lien se trouve sur la page exo5.php. Si la date de dernire modification de la ressource est antrieure au 7 Aot 2002, il est inutile de renvoyer cette image. De mme il est inutile de renvoyer l'image si l'ETag est "0-1b36-3d5185d4".
HTTP/1.1 304 Not Modified Date: Thu, 21 Nov 2002 14:36:53 GMT Server: Apache/1.3.24 (Win32) PHP/4.2.0 Connection: Keep-Alive Keep-Alive: timeout=15, max=99 ETag: "0-1b36-3d5185d4"

Rponse du serveur : La ressource ne sera pas renvoye puisqu'elle n'a pas t modifie et que le ETag est toujours le mme.
GET /Deust/images/miniatures/s_fdfd.jpg HTTP/1.1 Accept: */* Referer: http://spmi2:8000/Deust/exo5.php Accept-Language: fr,ru;q=0.5 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) Host: spmi2:8000 Connection: Keep-Alive

Le navigateur demande le chargement d'une image s_fdfd.jpg. Cette image ne se trouve pas dans le cache du navigateur.
HTTP/1.1 404 Not Found Date: Thu, 21 Nov 2002 14:36:54 GMT Server: Apache/1.3.24 (Win32) PHP/4.2.0 Keep-Alive: timeout=15, max=77 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1 156 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>404 Not Found</TITLE> </HEAD><BODY> <H1>Not Found</H1> The requested URL /Deust/images/miniatures/s_fdfd.jpg was not found on this server.<P> <HR> <ADDRESS>Apache/1.3.24 Server at <A HREF="mailto:didier.croutz@univ-nancy2.fr">Spmi2</A> Port 8000</ADDRESS> </BODY></HTML>0

Rponse du serveur : l'image est introuvable. un message d'erreur en HTML est envoy avec cette rponse.
POST /Deust/exo5.php HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* Referer: http://spmi2:8000/Deust/exo5.php Accept-Language: fr,ru;q=0.5 Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) Host: spmi2:8000 Content-Length: 9 Connection: Keep-Alive coupure=6

Le navigateur envoie un formulaire (en mthode POST), le script qui traite la page est exo5.php. Contenu des donnes du formulaire : "coupure=6"
HTTP/1.1 200 OK Date: Thu, 21 Nov 2002 14:36:58 GMT Server: Apache/1.3.24 (Win32) PHP/4.2.0 X-Powered-By: PHP/4.2.0 Keep-Alive: timeout=15, max=75 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html 53 <html> <head> <title>Catalogue de photos</title> </head> <body> ...

Le serveur rpond en gnrant la page correspondante (la valeur coupure=6 a sans doute t utilise par le script php qui a gnr cette page). On remarque que le nombre maximum de requte dans le champ Keep-Alive diminue au fur et mesure.

GET /Deust/exo5_a.php?numphot=4 HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* Referer: http://spmi2:8000/Deust/exo5.php Accept-Language: fr,ru;q=0.5 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0) Host: spmi2:8000 Connection: Keep-Alive

Le navigateur envoie une requte en mthode GET avec le paramtre "numphot" qui est gal 4.

Das könnte Ihnen auch gefallen