Académique Documents
Professionnel Documents
Culture Documents
Bases de tlcommunication
Technologies de l'Internet
1 - Internet
2 - TCP/IP
3 - HTTP
Bibliographie
Grard-Michel Cochard
cochard@u-picardie.fr
Technologies de l'Internet
1 - Internet
2 - TCP/IP
3 - HTTP
Grard-Michel COCHARD
Universit de Picardie Jules Verne
IUP MIAGE
1 - Internet
Internet, rseau de rseaux, s'est dvelopp partir de 1985 et a subi un essor extraordinaire partir de 1990 (suite la mise en service des premiers
serveurs WWW). Il constitue actuellement le moyen de communication le plus performant et le plus populaire.
Nous passons en revue, dans ce chapitre quelques aperus sur les technologies employes, sans vouloir prtendre l'exhaustivit complte sur le sujet,
d'ailleurs en perptuelle volution.
Internet est un ensemble de rseaux de tous types :
rseaux locaux (exemple rseau local de la DEP)
Le "provider" ou fournisseur d'accs Internet est une entreprise qui propose aux particuliers ou aux socits un raccordement Internet.
Internet possde des instances de gestion :
ISOC (Internet SOCiety) : socit savante discutant de l'avenir d'Internet
IAB (Internet Architecture Board) : conseil des "sages" ; fixation des rgles d'attribution des adresses et des noms de domaines ; prsident : Ch.
Huitema
IRTF (Internet Assigned Numbers Authority) : bureau enregistrant les numros de ports (applications), les numros de rseaux, les noms de
domaines, ... ; dlgation aux NIC (Network Information Center) ; exemples RIPE = NIC europen, NIC France l'INRIA.
Les caractristiques principales d'Internet sont les suivantes ; elles seront, pour la plupart, reprises en dtail ci-dessous :
RFC (Request For Comments) fournit les spcifications des divers protocoles , documents de rfrence (quelque fois appels FYI = For Your
Information) ; voir ftp://ftp.urec.fr/pub/reseaux/docs/intro-docs/FYIs ;
au niveau rseau, Internet emploie des datagrammes : les paquets IP sont des blocs circulant indpendamment les uns des autres ;
un rseau IP comprend des stations, des connexions physiques, des routeurs ;
routeurs : emploi du routage par dfaut ; chaque routeur connat les routeurs voisins ; si l'adresse est inconnue, le datagramme est envoy vers un
routeur par dfaut (simplification de la table de routage) ;
adresses IP : chaque station possde une adresse compose de 4 parties : 129.88.32.30 (adresse rseau + adresse station) ; l' attribution est
effectue par le NIC ;
adresses Internet : FQDN (Fully Qualified Domain Name) de la forme nom@organisation.domaine ; classes de domaine : com, fr, hu, edu, gov,
net, ... Transformation automatique en numro IP ;
adresses URL (Uniform Resource Locator) : identification d' un service ; exemples : http://www.microsoft.com, ftp://www.cern.fr/public.
2 - TCP/IP
Les protocoles TCP/IP et le modle OSI
TCP/IP est une famille de protocoles issus du projet amricain DARPA (annes 60) qui ont conduit au rseau exprimental ARPANET, devenu par la
suite .... Internet au plan mondial.
La famille TCP/IP se compose essentiellement des protocoles IP, TCP, UDP. Le modle OSI, dont le but est de normaliser les protocoles de
communication, a t labor pratiquement en mme temps que TCP/IP. On ne s'tonnera donc pas des diffrences invitables que ces deux familles de
protocoles prsentent. Il faut remarquer que, pendant que OSI se dveloppait avec une relative lenteur, TCP/IP s'est dvelopp, quant lui, avec une
relative rapidit. La figure ci-dessous prsente sommairement la correspondance centre les deux familles de protocoles :
Couche application
Couche prsentation
Couche application
Couche session
Couche transport
TCP UDP
Couche rseau
IP
Couche liaison
Couche d'accs
Couche physique
au rseau
modle OSI
famille TCP/IP
IP = Internet Protocol ; TCP = Transport Control Protocol ; UDP = User Datagram Protocol
On constate que TCP/IP n'est pas concern par les deux couches basses (physique et liaison) ce qui signifie que n'importe quel protocole ces niveaux
est utilisable (par exemple Ethernet, Token Ring,...) et que les couches suprieures de l'OSI correspondent, dans TCP/IP, une seule couche
"application". Les deux couches essentielles de TCP/IP sont la couche rseau avec le protocole IP et la couche transport avec les deux protocoles
exclusifs TCP et UDP.
On constatera que la classe A correspond un maximum de 128 rseaux, chacun d'eux pouvant contenir 224 machines ; la classe B correspond un
maximum de 214 rseaux, chacun d'eux pouvant contenir 216 machines ; enfin la classe C, la plus courante, correspond un maximum de 221 rseaux,
chacun pouvant contenir 256 machines. La classe D est une classe permettant une diffusion de message sur plusieurs destinataires. La classe E est, pour
l'instant, d'un usage rserv. Les cinq classes se reprent par les premiers bits, caractristiques de la classe.
Le protocole IP permet aussi d'identifier une application (ou service) par un port IP. Ainsi, l'accs une application, fonctionnant sur une machine
donne, ncessite de connatre l'adresse IP et le port IP (ce qui, comme on le verra plus loin, correspond la notion de socket).
Les ports sont numrots de 0 1023 pour les applications standards. Par exemple,
HTTP
Port 80
FTP
Port 20 et Port 21
Gopher
Port 70
SMTP
Port 25
POP3
Port 110
Telnet
Port 23
L'adresse IP est peu commode pour identifier une machine de la part de l'utilisateur qui prfre lui donner un nom. Il faut donc tablir dans ce cas une
correspondance entre nom de la machine et l'adresse IP. Cette correspondance est effectue dans le cadre d'une base de donnes rpartie sur plusieurs
serveurs au niveau mondial : le DNS (Domain Service Name).
Un socket est l'association d'une adresse IP (machine) et d'un port IP (application). Par extension, un socket dsigne aussi un ensemble de
fonctionnalits permettant la connexion une application excutable sur une machine sur Internet. Cette notion, au dpart dveloppe sur les machines
Unix, vaut galement maintenant pour les plates formes Windows, l'ensemble des fonctionnalits portant le nom de Winsock et comprenant 44
fonctions diffrentes. Dans la pratique, cet ensemble est simplifi dans des packages courants. Ainsi, pour Visual Basic, on peut utiliser le package
DSSock.OCX (de Dolphin Systems) qui comporte 22 proprits et 7 vnements ; pour utiliser DSSock, il faut ajouter dans la liste des contrles de
Visual Basic (VB4), le contrle DSSock32.OCX qui se trouve dans le sous-rpertoire "system" du rpertoire "windows" de Windows95. Le principe de
l'utilisation de DSSock est simple : il suffit d'ajouter aux modules que l'on programme le module DSSock.bas qui contient les constantes globales et les
fonctions utilitaires.
exemple : obtenir la correspondance entre l'adresse IP et le nom de la machine sur laquelle on travaille. On cre un projet sous VB4, on ajoute
DSSock.bas au projet, on ajoute le contrle DSSock dans une feuille de travail Form1 dont le code sera :
DSSocket1.LocalDotAddr donne l'adresse IP de la machine locale, DSSocket1.LocalName donne le nom de la machine locale.
IP
Rappelons tout d'abord le modle en couche correspondant la famille TCP/IP en dtaillant un peu plus chaque couche :
Au niveau de la couche rseau, nous avons vu que les paquets utilisent des adresses IP, appartenant des classes dfinies. Ces adresses sont sur 32 bits,
or les adresses de la couche liaison ne sont pas ncessairement sur 32 bits ; par exemple, si Ethernet est le protocole utilis dans la couche liaison,
l'adressage Ethernet est sur 48 bits. Pour effectuer la conversion entre une adresse IP et une adresse Ethernet, les protocoles ARP (Address Resolution
Protocol) et RARP (Reverse Address Resolution Protocol) sont utiliss.
Les paquets IP sont des datagrammes : ils peuvent circuler indpendamment les uns des autres. Le format d'un paquet IP est dcrit ci-dessous :
Le routage des paquets IP est effectue grce des tables de routage. Ces tables utilisent le fait que le dbut d'une adresse IP indique le numro de
rseau et la suite le numro de machine sur ce rseau. La transmission d'un paquet peut se faire suivant deux modes : le mode direct et le mode indirect :
le mode direct est utilis quand le paquet peut tre transmis sous la forme d'une trame de la couche infrieure (liaison) ; ce mode est employ
lorsque le destinataire est directement reli au routeur qui a reu le paquet ;
le mode indirect est employ lorsque le destinataire appartient un rseau autre que celui auquel appartient le routeur qui a reu le paquet ; la
table de routage consulte doit indiquer alors l'adresse du routeur vers lequel diriger ce paquet.
route
200.0.0.0
direct
300.0.0.0
direct
100.0.0.0
300.0.0.7
TCP et UDP
La couche rseau utilise un protocole unique : IP. La couche transport utilise deux protocoles, exclusifs, TCP (Transport Control Protocol) et UDP
(User Datagramme Protocol). Alors que IP utilise des adresses de machines, TCP et UDP utilisent des ports ; on trouvera donc, dans les blocs
manipuls par TCP ou UDP des ports source et destinataire. La diffrence entre TCP et UDP est base sur la proprit "connexion". Un protocole est
"avec connexion" (ou orient connexion) si un chemin de parcours des blocs est dfini : c'est le cas de TCP ; un protocole est dit "sans connexion" s'il
n'y a pas de chemin dfini : c'est le cas de UDP qui utilise des datagrammes (comme IP).
La structure d'un datagramme UDP est la suivante :
UDP ne garantit pas la remise d'un datagramme son destinataire, ni que les datagrammes d'un message arrivent dans leur ordre d'mission. TCP, au
contraire, possde les qualits requises au prix, bien sr, d'une complexit plus grande. De plus, TCP optimise l'utilisation de la bande passante de la
voie de communication en effectuant un contrle de flux dynamique. Ce contrle de flux et la garantie de dlivrance d'un message sont bass sur la
technique de l'acquittement ; dans la technique de base de l'acquittement, un message reu est acquitt par le destinataire par l'envoi d'un message de
service ACK qui doit revenir l'metteur dans un temps dtermin ; si ce temps est expir, le message doit tre r-mis. TCP utilise une amlioration de
cette technique : un acquittement est envoy, mais il n'est reu par l'metteur qu'aprs l'mission de plusieurs messages par utilisation de la mthode de
la fentre "glissante".
La taille de la fentre est le nombre d'octets que l'on peut envoyer avant de commencer recevoir des acquittements. Cette taille est ngocie lors de
l'tablissement d'une connexion TCP ; des tailles de 4086, 8192 et 16384 sont courantes.
Un message ou unit d'information transporte par TCP est appel segment et constitue une fraction d'un flux continu de bits. La structure d'un segment
TCP est donne ci-dessous :
On constate tout de suite que l'en-tte est plus importante que celle d'un datagramme UDP. Les champs de l'en-tte sont les suivants :
le port source et le port destinataire ;
le numro de squence qui identifie le premier octet de donnes de la zne de donnes ;
le champ acquittement qui identifie le prochain octet qui devra tre envoy ;
long HD qui reprsente la longueur de l'en-tte (en mots de 32 bits) ;
le drapeau URG qui indique que le champ "urgent pointer" contient un pointeur vers des donnes urgentes ;
le drapeau ACK qui valide le champ d'acquittement ;
le drapeau PSH qui indique que le rcepteur doit transmettre immdiatement les donnes reues l'application concerne ;
le drapeau RST qui indique une demande de r-initialisation de la connexion TCP ;
Lors de l'tablissement d'une connexion TCP, une conversation en trois tapes s'effectue (three-way handshake) :
1. l'metteur envoie un segment avec un drapeau SYN et un numro de squence initial (qui peut tre une valeur alatoire)
2. le rcepteur rpond par un segment comportant le champ ACK valid et un numro d'acquittement qui est le prochain numro de squence qu'il
espre recevoir ; le segment indique galement la validation avec SYN et le numro de squence initial propre au rcepteur (ainsi metteur et
rcepteur changent leurs numros de squence initiaux)
3. l'metteur acquitte le segment envoy par le rcepteur par l'envi d'un segment comportant le champ ACK valid et le champ numro
d'acquittement rempli.
Lors de l'change ultrieur, chaque segment comportera un numro de squence et un numro d'acquittement. Si le volume de donnes par segment est
de n octets et si le numro de squence initial est s0, alors un numro de squence sera de la forme :
s = s0 + k*n + 1
si k segments de donnes ont t dj envoys sans problme. Il en est de mme pour le numro d'acquittement.
La fin d'une connexion peut tre dcide par l'un quelconque des interlocuteurs. Celui qui dcide de mettre fin la connexion envoie un segment
comportant le drapeau FIN, l'autre rpond par un acquittement. Cependant, comme une connexion TCP est full-duplex, cette procdure est effectue
dans les deux sens (autrement dit mettre fin une connexion d'mission n'empche pas de continuer recevoir des segments de la part du rcepteur).
Les deux protocoles UDP et TCP correspondent des besoins diffrents :
TCP a pour rle d'tablir une connexion , de contrler les erreurs, de r-ordonnancer les datagrammes pour reconstituer le message ou l'inverse
de fractionner un message en plusieurs datagrammes. Ce protocole est utile pour un volume important d'informations.
UDP n'est pas orient connexion et n'effectue pas de contrle d'erreur. Par suite, il est plus rapide, mais moins fiable. Ce protocole est utilis
pour la transmission d'informations de faible taille, voire rptitive.
HTTP
HTTP (HyperText Transport Protocol) est un exemple de protocole de la couche application d'Internet. HTTP dsigne le protocole utilis par
l'application communment appele World Wide Web (WWW) ou simplement Web. Cette application est un dispositif client-serveur o le client
demande un serveur de lui envoyer des documents. Ces documents sont simples ou composites et la demande comme la rception de documents est
effectue sur le poste client par un logiciel spcifique appel navigateur (browser).
Etape 2 : Un client met une requte vers le serveur dont il connat l'adresse URL :
GET /document.htm HTTP/1.0 <CRLF>
Cette chane de caractres est mmorise par le serveur. GET est une mthode ; /document.htm est un document HTML
situ sous la racine du serveur ; HTTP/1.0 indique le protocole et sa version.
Etape 3 : Le serveur analyse la requte.
Etape 4 : Le serveur lit la suite de la requte :
Accept : */* <CRLF>
Accept : image/gif <CRLF>
Accept : image/jpeg<CRLF>
Accept : text/plain <CRLF>
Accept : text/HTML<CRLF>
<CRLF>
L'attribut Accept indique le type de document que le navigateur peut recevoir. Le code <CRLF>, situ tout
seul sur une ligne indique la fin de la requte.
Etape 5 : Excution de la mthode : recherche du document partir du gestionnaire de fichier du systme d'exploitation. Deux cas sont
considrer :
Succs : envoi du document :
HTTP/1.0 200 Document follows <CRLF>
Server : NCSA/1.4 <CRLF>
Date : Mon, 20 Dec 1997 22.00.00 GMT <CRLF>
Content-type : text/html <CRLF>
Content-length : 1328 <CRLF>
Last-modified : Mon, 15 Jun 1993 14.23.96.78 GMT <CRLF>
Envoi du fichier demand <CRLF>
<CRLF>
Echec : envoi d'un message
Le nom du serveur est plac dans la variable serv et le nom du fichier html est plac dans la variable fic.
Requtes simultanes
Un logiciel httpd se doit de grer des requtes simultanes. Plusieurs mthodes sont employes.
mthode de la filiation : httpd cre un processus fils httpdi chaque connexion pour grer celle-ci. Pour 3 connexions simultanes, on aura donc
la situation suivante :
mthode du " temps partag " : les connexions sont traites morceau par morceau avec des temps d'attente et des temps d'excution.
mthode du pool d'auxiliaires : httpd se borne couter, comme dans la mthode de la filiation, mais au contraire de celle-ci, seul un nombre
fix d'auxiliaires excutent les requtes.
Il convient de noter qu'une machine peut tre multi-serveur, c'est dire hberger plusieurs serveurs Web ; il faut videmment leur attribuer des ports
diffrents. Par exemple , une machine peut hberger 3 serveurs Truc, Chose et Machin avec les affectations : Truc : port 80 ; Chose : port 8080 ;
Machin : port 8081
MIIS (Microsoft Internet Information Server) est un serveur Web/FTP/Gopher qui comprend Windows NT 4.0 et MSDN (MicroSoft Developer
Network). On peut le tlcharger depuis le serveur de Microsoft (http://www.microsoft.com/). Il est assez complet et bien rpandu actuellement.
EMWAC (Centre Acadmique Europen de Microsoft Windows NT en rpublique tchque) offre un serveur gratuit pour Windows NT (mais
qui ne supporte pas WinCGI - voir plus loin). Voir http://emwac.ed.ac.uk/html/internet_toolchest/https/contents.htm.
HTTPD, le serveur de Bob Denny que l'on peut tlcharger partir de http://www.city.net/win-httpd/ peut tre acquis pour un cot de l'ordre de
550 F (version 1.4C pour Windows NT)
WebSite est aussi conu par Bob Denny ; c'est un produit qui a une bonne critique et qui peut tre tlcharg partir de http://website.ora.com
pour un cot de l'ordre de 3000F. Voir aussi http://gnn.com/gnn/bus/ora/news/c.website.html.
HTML
HTML (HyperText Mark-up Language) est le langage de description d'un document fourni par un serveur http. Il drive de SGML (Standard
Generalized Mark-up Language) et a t dvelopp spcifiquement pour le Web. Ce langage utilise des balises (tags) signales par les signes "<" et
">"pour indiquer comment sont formats les documents. La structure d'un document HTML est la suivante :
<HTML>
<HEAD>
------------
</HEAD>
<BODY>
-----------</BODY>
</HTML>
La plupart des balises s'utilisent par paires : <balise> et </balise> pour encadrer la partie du document qui doit hriter des attributs spcifis dans les
balises. <HTML> et </HTML> indiquent le dbut et la fin du document HTML. Ce document se compose de deux parties : l'en-tte, encadre par
<HEAD> et </HEAD> et le corps, encadr par <BODY> et </BODY>.
Les balises permettent
de prciser le style
Par ailleurs, l'hypertexte permet de dfinir des liens sur des objets du document (texte ou image). Chaque lien dfinit une rfrence un fichier par son
URL (Uniform Resource Locator). Les URL sont galement utilises pour lier des ressources un document HTML ; ainsi pour insrer une image on
utilisera la balise IMG :
<IMG src="http://www.truc/site_untel/images/image08>
On trouvera aux adresses (URL) suivantes des guides de HTML :
http://www.yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/Information_and_Documentation/Beginner_s_Guides/Beginner_s_HTML/
http://www-leland.stanford.edu/~ttores/Internet/toc.html
une autre faon de procder est de lier un document des programmes qui peuvent tre tlchargs de manire transparente pour l'utilisateur.
Dans ce cas, l'excution s'opre au niveau du poste client. Les applets java appartiennent cette catgorie. Il s'agit de programmes crits en java
et compils qui sont lis des documents HTML.
une version du procd ci-dessus est galement fournie avec javascript qui est un langage interprt, plus simple que java ; les scripts crits en
javascript apparaissent en clair dans le document HTML et font partie inhrente du document. On trouvera une introduction javascript
l'adresse : http://www.u-picardie.fr/~cochard/javascript.
Bibliographie
K.JAMSA,K.COPE
Internet Programming
Jamsa
C. SERVIN
Telecoms, de la transmission
l'architecture de rseaux
Masson
W. STALLINGS
Prentice Hall
P. ROLLIN,
G. MARTINEAU,
L. TOUTAIN,
A. LEROY
Hermes
A. TANENBAUM
Rseaux
InterEditions
International Thomson
Publishing
C. FRANKLIN
Programmation Internet en
Visual Basic
International Thomson
Publishing
L'Internet professionnel
CNRS Editions