Quels sont les protocoles gérés par un serveur web ?

Quels sont les protocoles gérés par un serveur web ?
Quels sont les protocoles gérés par un serveur web ?
Quels sont les protocoles gérés par un serveur web ?

Chapitre�4��Les protocoles de l’Internet

  • Le protocole IP
  • UDP: User Datagram Protocol
  • TCP : Transmission Control Protocol

4.1��Le protocole IP

IP est un protocole permettant d’avoir une adresse logique pour les machines (contrairement aux adresses physiques d’Ethernet). Ces adresses sont fix�es par l’administrateur du r�seau (ce sont donc des adresses qui permettent d’organiser les adresses sur le r�seau ind�pendament des machines). Une autre particularit� des adresses Ethernet est qu’elles sont globales : une adresse IP publique est cens�e �tre unique dans le monde entier.

4.1.1��Trame ARP

Les r�seaux locaux sont des r�seaux utilisant les adresses physiques des cartes. Par contre, si on ne conna�t que l’adresse IP d’une machine il faut pouvoir retrouver son adresse MAC. Le m�canisme de r�solution d’adresse propos� ici est le protocole ARP (Address Resolution Protocol) qui permet en deux �changes de trames de retrouver l’adresse MAC d’une machine � partir de son adresse IP.

Le protocole ARP est bien un protocole de niveau 3 car il permet au niveau r�seau de savoir avec qui il veut communiquer sur le lien Ethernet. ARP est en fait ind�pendant d’Ethernet et fonctionne avec n’importe quel type de r�seau de niveau 2. Apr�s la r�solution ARP, la couche de niveau 3 ne conna�t que la taille des identifiants de niveau 2 et des valeurs num�riques pour joindre les machines distantes. De cette fa�on IP peut fonctionner sur plusieurs types de protocoles de niveau 2 sans changer le principe de base de la r�solution d’adresse ARP. Les requ�tes ARP sont v�hicul�es dans des trames de niveau 2.

Quels sont les protocoles gérés par un serveur web ?

Une requ�te/r�ponse ARP est v�hicul�e par une trame Ethernet (sur Ethernet donc) de type 0x0806. La machine �mettrice envoie une requ�te en broadcast (FF:FF:FF:FF:FF:FF) afin de contacter toutes les machines du r�seau local au niveau Ethernet. La machine qui reconna�t son adresse IP peut renvoyer une r�ponse ARP en utilisant l’adresse Ethernet inscrite dans la requ�te comme adresse de destination. Voici un exemple de requ�te/r�ponse entre une machine d’adresse IP 129.104.254.6 cherchant � contacter la machine 129.104.254.5.

Requ�te ARP R�ponse ARP
   

  • Partie Ethernet
      itemvFF:FF:FF:FF:FF:FF broadcast adresse itemv08:00:20:02:45:9E adresse source itemv0x0806 type de trame ethernet question ARP
  • Partie ARP
      itemv0x0001 type de r�seau de niveau 2 (ethernet) itemv0x0800 type de r�seau de niveau 3 (IP) itemv0x06 taille des adresses de niveau 2 itemv0x04 taille des adresses de niveau 3 itemv0x0001 opcode : requ�te itemv08:00:20:02:45:9E adresse Ethernet source itemv81.68.fe.06 adresse IP source (129.104.254.6) itemv00:00:00:00:00:00 itemv81.68.fe.05 adresse IP demand�e.

  • Partie Ethernet
      itemv08:00:20:02:45:9E itemv08:00:20:07:0B:94 itemv0x0806
  • Partie ARP
      itemv0x0001 itemv0x0800 itemv0x06 itemv0x04 itemv0x0002 r�ponse ARP itemv08:00:20:02:45:9E itemv81.68.fe.06 itemv08:00:20:07:0B:94 itemv81.68.fe.05

   


Certains syst�mes d’exploitation apprennent les adresses Ethernet des autres machines en �coutant les requ�tes ARP qui passent sur le r�seau.

Les traductions IP/ARP sont conserv�es dans une machine de fa�on temporaire dans une table ARP. Vous pouvez voir le contenu de la table de la machine sur laquelle vous �tes en tapant la commande (sous Unix) arp -a.
0.8@percent

4.1.2��En-t�te du datagramme IP

Quels sont les protocoles gérés par un serveur web ?

Figure 4.2: En-t�te du datagramme IP

  • Version (4 bits): indique le num�ro de version pour le datagramme IP (4 ou 6)
  • HL (4bits): Header Length, taille de l’ent�te avec les options
  • TOS: Type of Service: champs type de service pour IP
  • Taille: taille des donn�es du datagramme (16 bits)
  • ID: identifiant de datagramme, utilis� pour la fragmentation
  • Flags (3 bits): drapeaux binaires pour la fragmentation (dont bits DF et MF)
  • Offset: offset du datagramme courant dans le datagramme fragment�
  • TTL: time to live = nombre de sauts maximum sur la route
  • Protocole: protocole contenu dans les donn�es IP
  • Total de contr�le: somme de contr�le effectu�e sur l’ent�te
  • Adresse IP source
  • Adresse IP destination

Une liste des protocoles support�s par IP est disponible sur les machines Unix dans le fichier
/etc/protocols. Dans la suite du cours nous ne nous interesserons qu’aux protocole ICMP (num�ro 1), UDP (num�ro 17) et TCP (num�ro 6)

4.1.3��Adressage IP

Les adresses IP sont des nombres sur 32 bits dont la repr�sentation usuelle est un groupe de 4 entiers sur 8 bits s�par�s par des points. Ainsi l’adresse 2262191317 (en d�cimal) correspond � l’adresse 134.214.76.213 dans la notation usuelle. Les adresses IP sont des adresses logiques qui sont fix�es par configuration logicielle de la machine. Une machine a au moins autant d’adresses IP que d’interfaces (cartes) r�seaux. Elle peut �ventuellement en avoir plus.

Les adresses sur Internet sont g�r�es par l’organisme IANA. C’est l’organisme charg� de r�partir les adresses IP dans le monde. Une premi�re liste pour voir � qui appartiennent les tranches d’adresses est disponibles ici. La gestion est ensuite faite par des organismes r�gionaux (voir Ripe NCC).

La configuration d’une machine pour avoir une connexion IP se r�sume donc, pour l’instant aux param�tres suivants:

  • adresse IP
  • masque de sous r�seau
  • adresse IP de la passerelle de sortie
  • adresse IP d’au moins un serveur DNS (voir partie�??)

4.1.4��D�cision de routage dans IP

Le r�seau local auquel est reli� la machine est calcul� en effectuant un et logique entre l’adress IP de la machine et son masque de r�seau. Pour savoir si une machine destination est dans le m�me r�seau il faut faire la m�me op�ration avec l’adresse que l’on souhaite joindre et son propre masque de r�seau. Si le r�sultat est le m�me alors les deux machines sont dans le m�me r�seau local et la communication peut s’effectuer via le r�seau local. Dans le cas contraire la machine source doit envoyer le datagramme au routeur de sortie (dont elle connait l’adresse IP par configuration et qu’elle peut joindre en utilisant le LAN). Le routeur se chargera de trouver le prochain saut et ainsi d’acheminer le datagramme un peu plus loin dans le r�seau jusqu’� destinaition. Le nombre maximum de sauts autoris�s (passage de routeurs) est fix� au d�part par la valeur du champs TTL. Si le TTL arrive � 0 pendant le transport, alors le paquet est d�truit et on re�oit en retour un message ICMP de type 11 et de code 0.
0.8@percent
0.8@percent

4.1.5��Fragmentation

La fragmentation fait intervenir les champs ID, Flags et Offset de l’ent�te pour remettre dans l’ordre les morceaux d’un paquet IP fragment� au cours du routage dans le r�seau.

Les routeurs interm�diaires peuvent fragmenter un paquet mais ne font pas la d�fragmentation. C’est � la machine destinatrice d’attendre et de remettre les fragments dans l’ordre. La machine utilise le champs TTL pour mesurer le temps maximum d’attente une fois qu’elle commence � r�assembler un datagramme. Si ce TTL passe � 0 alors le datagramme est jet� car les morceaux n’ont pas �t� re�us � temps.

Le bit DF (don’t fragment) indique que l’on ne souhaite pas qu’un paquet puisse �tre fragment�. Si le cas se pr�sente le datagramme est jet� et un message ICMP est renvoy� � la source (type 3, code 4). Ce bit DF permet de faire de la d�couverte de MTU sur le chemin. Cette "MTU de chemin" est donc le plus gros datagramme que l’on puisse envoyer de bout en bout sans qu’il soit fragment� (on a donc la MTU la plus petite de tous les r�seaux travers�s).

4.1.6��Diagnostic sur IP : ICMP

ICMP (Internet Control Message Protocol) est utilis� pour avoir des retours d’information sur l’�tat du r�seau et des machines.

Quels sont les protocoles gérés par un serveur web ?

Figure 4.3: En-t�te du datagramme ICMP

Les donn�es, quand il y en a, d�pendent du type de paquet ICMP. Si le paquet ICMP est un signalement d’erreurs alors le contenu des donn�es est pris dans les 8 premiers octets des donn�es du datagramme ayant g�n�r� l’erreur.

type 0 code=0 echo reply (requ�te)
type 3   destination unreachable (messages d’erreurs)
  code 0 network unreachable
  code 1 host unreachable
  code 2 protocol unreachable
  code 3 port unreachable
  code 4 fragmentation needed but don’t-fragment bit set
  code 5 source route failed
  code 6 destination network unknown
  code 7 destination host unknown
  code 8 source host isolated (obsolete)
  code 9 destination network administratively prohibited
  code 10 destination host administratively prohibited
  code 11 network unreachable for TOS
  code 12 host unreachable for TOS
  code 13 communication administratively prohibited by filtering
  code 14 host precedence violation
  code 15 precedence cutoff in effect
type 4 code=0 source quench (contr�le de flux) (messages d’erreurs)
type 5   redirect (messages d’erreurs)
  code 0 redirect for network
  code 1 redirect for host
  code 2 redirect for type-of-service and network
  code 3 redirect for type-of-service and host
type 8 code=0 echo request (ping) (requ�te)
type 9 code=0 router advertisement (requ�te)
type 10 code=0 router solicitation (requ�te)
type 11   TTL (messages d’erreurs)
  code 0 TTL = 0 during transit
  code 1 TTL = 0 during reassembly
type 12   parameter problem (messages d’erreurs)
  code 0 IP header bad
  code 1 required option missing
type 13 code=0 timestamp request
type 14 code=0 timestamp reply
type 17 code=0 address mask request
type 18 code=0 address mask reply

Tableau 4.1: Table des types et codes ICMP

4.1.7��ToS : Type of Service

Le champs ToS permet de donner une information sur la nature des donn�es contenues dans le datagramme IP. Cette information peut �tre utilis�e pour am�liorer et diriger le routage. Il faut que les routeurs soient configur�s pour en tenir compte. En pratique tr�s peu de routeurs acceptent de prendre en compte le champs ce qui le rend inutile en pratique.

4.1.8��Protocoles de transports

IP permet de communiquer avec une machine. Pour atteindre un service (application) il faut donc plus de pr�cision dans l’adresse logique du destinataire du datagramme.

Les protocoles de transport UDP et TCP font l’interface entre le r�seau (comment atteindre une machine) et les applications (comment atteindre un programme pr�cis qui tourne dans une machine).

De la m�me mani�re que pour les adresses IP (il faut conna�tre une adresse IP � l’avance pour communiquer avec une machine), il faut conna�tre le port (num�ro d’acc�s au service ou programme) pour acc�der � un service particulier sur un serveur. Il existe pour cela une liste de r�f�rence connue sous le nom de "well known ports" qui est la m�me pour toutes les machines. Il s’agit ici d’�tablir une communication de bout en bout. Les deux protocoles utilis�s sur l’Internet sont UDP et TCP.

4.2��UDP: User Datagram Protocol

UDP est un protocole en mode datagramme et propose seulement le service de multiplexage applicatif par rapport � IP. UDP ne propose pas de service suppl�mentaire et on reste donc dans un mode non connect� avec des probl�mes potentiels de perte de paquets dans le r�seau (ce ne sera pas le cas de TCP).

UDP reste n�anmoins un protocole rapide qui est tr�s efficace et est utilis� par de nombreuses applications dont le service de nommage DNS (port 53)

Quels sont les protocoles gérés par un serveur web ?

Figure 4.4: Structure du datagramme UDP

  • port source : port de communication (socket) ouvert par l’�metteur.
  • port destination : port de communication c�t� serveur (destinataire)
  • taille : taille en octets
  • somme de contr�le : somme de contr�le de l’ent�te UDP

4.2.1��Propri�t�s des datagramme UDP

UDP utilise IP comme support, il est donc soumis aux m�mes contraintes

  • support de transmission non fiable
  • perte de datagrammes possibles
  • l’ordre des datagrammes peut �tre invers� pendant le trajet sur le r�seau (s’ils ne prennent pas la m�me route)

Les donn�es sont envoy�es d�s que l’application effectue une �criture. Chaque �criture de l’application g�n�re un datagramme UDP. Les lectures des datagrammes depuis l’application se font sur des datagrammes complets.

4.3��TCP : Transmission Control Protocol

TCP permet d’avoir une connexion entre programmes ayant des propri�t�s bien plus complexes que les datagrammes UDP. TCP propose, par l’interm�diaire d’acquittements, d’avoir un contr�le de perte de paquet avec d�livrement des donn�es � l’application dans l’ordre d’envoi ainsi qu’un contr�le de congestion du r�seau.

  • TCP temporise les donn�es envoy�es sous forme de segments dont la taille est adapt�e aux conditions pr�sentes sur le r�seau
  • Chaque segment est acquitt� par le destinataire pour avoir un transport fiable
  • La perte de paquets est contr�l�e � l’aide de temporisations
  • Les donn�es sont transmises "en ordre" � l’application
  • TCP propose un m�canisme de fen�trage pour ne pas saturer le m�moire de l’application
  • Les connexions TCP sont bidirectionnelles.

Quels sont les protocoles gérés par un serveur web ?

Figure 4.5: Structure du segment TCP

  • port source: port TCP sur la machine source
  • port destination: port TCP sur la machine destination
  • num�ro de s�quence: num�ro du premier octet du segment
  • num�ro d’acquittement: num�ro du premier octet attendu
  • HL: Header Length, permet de savoir s’il y a des options dans l’ent�te, la taille de l’ent�te est indiqu�e en nombre de mots de 32 bits (comme pour le champs HL du datagramme IP)
  • R�serv�: bits r�serv�s pour un usage futur
  • Drapeaux:
    • URG: le pointeur de donn�es urgente est valide
    • ACK: le num�ro d’aquittement est valide
    • PSH: push, le receveur doit passer les donn�es le plus rapidement
    • RST: reset, r�initialisation de la connexion
    • SYN: synchronisation de num�ro de s�quence, d�but de connexion
    • FIN: signale que l’�metteur a fini d’�mettre
  • taille de fen�tre: place disponible dans la m�moire de r�ception de l’annonceur
  • somme de contr�le: somme de contr�le appliqu�e sur l’ent�te et les donn�es du segment
  • pointeur donn�es urgentes:

Les num�ros de s�quences et d’acquittements identifient le nombre d’octets transmis sur la connexion. Le compteur ne commence pas de z�ro mais du nombre annonc� lors de la synchronisation d’ouverture de connexion (ISN: Initial Sequence Number).

Une communication TCP est identifi�e par le quadruplet (adresse IP source, port source, adresse IP destination, port destination ).

L’option la plus courante dans TCP est l’annonce de la taille maximum de segment (MSS : Maximum Segment Size). Cette option est pr�sente dans les segments ayant le bit SYN positionn� pour indiqu� quelle est la quantit� maximale de donn�es que veut recevoir l’�metteur. Lorsque la connexion est locale le MSS est fix� � la MTU du protocole de niveau 2 moins la taille des ent�tes IP et TCP : pour un r�seau ethernet le MSS sera fix� � 1460 dans la plupart des cas (cela peut d�pendre des syst�mes d’exploitation) sinon, pour une connexion distante, le MSS est fix� � 536 (la plus petite MTU sur Internet est fix�e � 576 octets).

Les acquittements ne sont pas envoy�s d�s que l’on re�oit des donn�es. Une temporisation de 500ms (au maximum) est mise en place pour augmenter la probabilit� d’avoir des donn�es � transmettre en m�me temps que l’acquittement et ainsi augmenter le d�bit utile du r�seau.

Quels sont les protocoles gérés par un serveur web ?

Quels sont les protocoles gérés par un serveur web ?

Figure 4.6: �tablissement et ferneture de connexion TCP

Le m�canisme d’ouverture de connexion TCP est pr�vu pour fonctionner dans le cas o� les deux machines font une ouverture simultan�e (cas tr�s rare). Dans ce cas, une seule connexion TCP bidirectionnelle r�sulte de cette double ouverture.

4.3.1���tats d’une connexion TCP

Quels sont les protocoles gérés par un serveur web ?

Figure 4.7: �tats d’une connexion TCP

  • rouge: c�t� serveur
  • bleu: connexion active (c�t� client). Une socket dans l’�tat LISTEN peut �mettre des donn�es et initier une connexion mais le cas reste tr�s rare.
  • magenta: ouverture simultan�e, les deux c�t� font une ouverture active (cas extr�mement rare)
  • vert: fermeture active et fermeture passive
  • rose: fermeture simultan�e (la fin de connexion se fait en 3 �tapes au lieu de 4)
  • noir: fermeture de la socket par l’application alors que la connexion n’est pas encore �tablie

Quels sont les protocoles gérés par un serveur web ?

Figure 4.8: �tats d’une connexion TCP dans le temps

L’�tat TIME_WAIT est appel� �tat d’attente 2MSL. Un MSL est la dur�e de vie maximum d’un segment, cette valeur est comprise entre 30s et 2 min. C’est la dur�e maximale pendant laquelle un segment peut exister sur le r�seau avant d’�tre rejet�.

Dans le cas d’une fermeture simltan�e, la partie gauche et la partie droite passent par les �tats FIN_WAIT_1, CLOSING et TIME_WAIT au lieu de passer par les �tats mentionn�s sur la figure pr�c�dente.

TCP propose des m�canismes pour d�synchroniser les envois de segment des acquittements. Chaque machine annonce la quantit� de m�moire disponible dans son buffer de r�ception (champs window dans l’ent�te TCP). L’�metteur sait alors quelle quantit� de donn�es il peut esp�rer envoyer sans saturer le destinataire. La taille de cette fen�tre peut varier de 8Ko � 16Ko (ou plus) selon les syst�mes.

Quels sont les protocoles gérés par un serveur web ?

Figure 4.9: Fen�tre glissante de TCP

Une application qui aurait indiqu� une fen�tre vide dans son dernier acquittement doit r��mettre un segment avec le m�me num�ro d’acquittement que le pr�c�dent pour r�anoncer sa nouvelle taille de fen�tre.

L’envoi des segments ainsi que l’envoi des acquittements peut �tre diff�r� par rapport aux donn�es envoy�es et lues de l’application (algorithmes de Clark et Nagle vus en TD)

4.3.2��Contr�le de congestion

Le contr�le de congestion sert � adapter le d�bit de TCP par rapport aux pertes de paquets pouvant arriver dans le r�seau. L’adaptation du d�bit dans TCP est appel� slow start.

La fen�tre de r�ception permet � l’�metteur d’envoyer rapidement plusieurs segments TCP sans attendre d’acquittement entre l’envoi des segments. Ce m�canisme fonctionne tr�s bien sur un m�me LAN mais peut poser des probl�me en cas de congestion du r�seau.

TCP poss�de une fen�tre de gestion de la congestion appel�e congestion window (cwnd). Cette fen�tre est locale � l’�metteur et sa valeur n’est pas inscrite dans l’ent�te de segment. Alors que la fen�tre annonc�e dans les ent�tes TCP conditionne la quantit� de donn�es trait�es c�t� r�cepteur, la fen�tre de congestion conditionne la quantit� de donn�es qui peut �tre envoy�e c�t� �metteur.

L’�metteur peut �mettre � hauteur du minimum entre la taille de la fen�tre annonc�e et la taille de la fen�tre de congestion.

L’�metteur commence � �mettre un segment et attend l’acquittement. Une fois l’acquittement re�u, l’�metteur peut alors �mettre deux segments et attendre les acquittements. La taille de la fen�tre de congestion est agrandie de fa�on exponentielle jusqu’� trouver la limite de congestion du r�seau. Une fois cette limite atteinte, des segments commencent � se perdre et l’�metteur retombe alors � une fen�tre de congestion � 1. Il recommence le "slow start" exponentiel jusqu’au pr�c�dent point de rupture. Une fois le point de rupture atteint l’augmentation devient lin�aire jusqu’au prochain seuil de rupture (et ainsi de suite).

Quels sont les protocoles gérés par un serveur web ?

Figure 4.10: D�marrage lent de TCP : slow start


Quels sont les protocoles gérés par un serveur web ?
Quels sont les protocoles gérés par un serveur web ?
Quels sont les protocoles gérés par un serveur web ?

Quels sont les protocoles web ?

Les protocoles Internet.
Le protocole “TCP” : ( Transmission Control Protocol ). ... .
Le Protocole “UDP”: ( User Datagram Protocol ). ... .
Le Protocole “ICMP”: ( Internet Control Message Protocol ). ... .
Le Protocole “SMTP” : ( Simple Mail Transfert Protocol ). ... .
Le Protocole “POP” : ( Post Office Protocol )..

Quels sont les types de protocoles ?

On distingue généralement deux grands types de protocoles : les protocoles routables et les protocoles non routables. Dans les sections suivantes, nous allons étudier ces deux types de protocoles. Ensuite, nous examinerons les protocoles routables les plus utilisés sur les réseaux locaux – TCP/IP, IPX/SPX.

Quel est le protocole utilisé par les serveurs Web pour l'envoi d'une page web ?

Le protocole de communication Hypertext Transfer Protocol (HTTP) permet le dialogue via le réseau avec le logiciel client, généralement un navigateur web.

Quels sont les protocoles les plus connus sur Internet ?

Le nom TCP/IP se compose des deux protocoles les plus importants pour la communication Internet : le Transmission Control Protocol (TCP) et l'Internet Protocol (IP). Ce terme couvre cependant également plusieurs autres protocoles : dont l'Internet Control Message Protocol (ICMP) et l'User Datagram Protocol (UDP).