AccueilđŸ‡«đŸ‡·Chercher

Explicit Congestion Notification

La notification explicite de congestion (dite ECN, de l'anglais « Explicit Congestion Notification ») est une extension aux protocoles TCP et IP qui permet de signaler la congestion du réseau avant que la perte de paquets ne se produise. Elle est définie dans la RFC 3168[1].

Principe

Normalement, les protocoles de couche transport tels que TCP augmentent le débit tant qu'aucun paquet n'est perdu ; ce n'est que lorsqu'un paquet est perdu que le débit est modéré. Avec ECN, un routeur peut explicitement signaler un début de congestion avant de commencer à perdre des paquets.

ECN est négociée pour chaque connexion : elle n'est utilisée que lorsque les deux hÎtes échangeant des données signalent leur intention de l'utiliser.

Lorsque la notification explicite de congestion est mise en place, le routeur marque les paquets qui le traversent lorsqu'il dĂ©tecte une congestion. Malheureusement, ces paquets marquĂ©s sont reçus par leur destinataire, alors que c'est leur Ă©metteur qui devrait ĂȘtre averti de la congestion. Pour cette raison, le rĂ©cepteur doit transmettre cette information en retour Ă  l'Ă©metteur des paquets, et un aller-retour complet est nĂ©cessaire avant que l'Ă©metteur ne soit averti du problĂšme de congestion.

Adoption

Bien que cette extension ait été conçue de sorte que son usage soit compatible avec les normes existantes, il existe encore à ce jour, plus de dix ans aprÚs son introduction en 2001, un nombre important d'équipements incompatibles sur le réseau. Certains routeurs ou pare-feux incompatibles peuvent ainsi bloquer le trafic entre deux hÎtes implémentant ECN. C'est pour cette raison qu'elle est désactivée implicitement sur la plupart des systÚmes d'exploitation contemporains.

Mode opératoire

ECN est prise en charge à la fois par les couches réseau et transport, car les routeurs travaillent au niveau de la couche réseau, tandis que le débit est géré « de bout en bout », c'est-à-dire par les extrémités de la connexion, en couche transport.

Ainsi, dans le cas des protocoles TCP et IP, les routeurs signalent une congestion en cours dans l'en-tĂȘte du paquet IP, et le destinataire qui reçoit ce paquet en informe l'Ă©metteur dans l'en-tĂȘte du prochain segment TCP qu'il lui renvoie. Cette interaction entre des couches rĂ©seau diffĂ©rentes casse quelque peu la sĂ©paration de principe entre les couches rĂ©seau.

Marquage des paquets IP

ECN utilise les deux bits les moins significatifs (les plus Ă  droite) du champ DSCP de l'en-tĂȘte IPv4 ou IPv6, ce qui donne quatre valeurs possibles :

  • 00 : transport incapable de gĂ©rer l'ECN — Non-ECT
  • 10 : transport capable de gĂ©rer l'ECN — ECT(0)
  • 01 : transport capable de gĂ©rer l'ECN — ECT(1)
  • 11 : congestion subie — CE

Quand les deux extrémités de la transmission prennent en charge ECN, ils marquent leurs paquets avec ECT(0) ou ECT(1). Si le paquet traverse un routeur qui la prend en charge et qui est congestionné, il peut changer cette valeur en CE (Congestion Experienced).

Retour d'information dans les segments TCP

TCP utilise deux drapeaux de l'en-tĂȘte TCP :

  • Le bit ECE (ECN Echo) sert Ă  informer l'Ă©metteur qu'un paquet IP marquĂ© par un routeur a Ă©tĂ© reçu.
  • Le bit CWR (Congestion Window Reduced) sert Ă  informer le rĂ©cepteur que des mesures ont Ă©tĂ© prises par l'Ă©metteur en rĂ©duisant sa fenĂȘtre de congestion.

Le récepteur continue à transmettre des segments TCP avec le bit ECE tant qu'il n'a pas reçu un segment avec le bit CWR.

L'utilisation de ECN sur une connexion TCP est optionnelle : pour qu'elle soit utilisée, cela doit avoir été négocié lors de l'établissement de la connexion en utilisant les options ad hoc dans les segments SYN et SYN-ACK.

La fenĂȘtre de congestion de TCP ne s'applique pas aux segments de contrĂŽle (acquittements ACK purs, segments SYN ou FIN) et on ne marque donc en gĂ©nĂ©ral pas les paquets qu'ils contiennent comme Ă©tant capables de transmettre les notifications explicites de congestion. NĂ©anmoins, la RFC 5562[2][3] suggĂšre de marquer les paquets contenant des segments SYN-ACK comme capables de gĂ©rer l'ECN.

Avec les autres protocoles de transport

ECN est également définie pour d'autres protocoles de couche transport qui gÚrent la congestion, en particulier DCCP et SCTP.

Avec UDP, ce serait à l'application au-dessus de UDP de gérer la congestion, en admettant qu'elle puisse accéder aux bits qui lui sont consacrés depuis l'interface de programmation du réseau.

Articles connexes

Notes et références

  1. (en) K. Ramakrishnan, TeraOptic Networks, Sally Floyd, ACIRI, D. Black, EMC (Network Working Group), « The Addition of Explicit Congestion Notification (ECN) to IP », Request for comments no 3168, .
  2. (en) Request for comments no 5562.
  3. (en) RFC 5562 - Adding Explicit Congestion Notification Capability to TCP's SYN/ACK Packets. A. Kuzmanovic, A. Mondal, S. Floyd, K. Ramakrishnan
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.