Procédé et dispositif de contrôle d'un trafic de paquets de données en entrée d'un réseau, programme d'ordinateur et équipement réseau correspondants. Method and device for controlling data packet traffic entering a network, computer program and corresponding network equipment.
Le domaine de l'invention est celui des réseaux de communication, et notamment mais non exclusivement des réseaux de type IP ou équivalents. Plus précisément, l'invention concerne un procédé de contrôle d'un trafic de paquets de données en entrée d'un réseau, dans le cas où le trafic comprend une pluralité de flux et/ou sous-flux associés chacun à un niveau de priorité, et où chacun des paquets est marqué avec le niveau de priorité associé au flux ou sous-flux auquel appartient ce paquet. En d'autres termes, l'invention concerne un mécanisme réseau permettant d'optimiser l'écoulement d'un trafic entrant sur un réseau.The field of the invention is that of communication networks, and in particular but not exclusively of networks of IP type or equivalent. More specifically, the invention relates to a method for controlling traffic of data packets entering a network, in the case where the traffic comprises a plurality of streams and / or substreams each associated with a priority level , and where each of the packets is marked with the priority level associated with the stream or substream to which this packet belongs. In other words, the invention relates to a network mechanism making it possible to optimize the flow of incoming traffic on a network.
L'invention a de nombreuses applications, telles que par exemple le contrôle de flux multimédia (par exemple des flux MPEG), seuls ou par agrégats, ou encore le contrôle d'un multiplex de flux de différentes natures (par exemple un flux vidéo/audio multiplexe avec un flux TCP, sur un accès ADSL). On présente maintenant brièvement le contexte réseau dans lequel se situe la présente invention.The invention has numerous applications, such as for example the control of multimedia streams (for example MPEG streams), alone or by aggregates, or even the control of a multiplex of streams of different natures (for example a video stream / multiplex audio with a TCP stream, on an ADSL access). We now briefly present the network context in which the present invention is situated.
L'augmentation des performances des ordinateurs ainsi que les débits offerts par les nouvelles générations de réseaux ouvrent la voie à de nouveaux services basés sur les flux multimédias. De fait, le nombre d'informations audiovisuelles transmises sur les réseaux (par exemple de type IP (« Internet Protocol »)) croît sans cesse, et les algorithmes de compression (par exemple de type MPEG (« Moving Picture Experts Group »)) s'améliorent, offrant une qualité meilleure avec des débits plus faibles. Cependant, aujourd'hui le niveau de qualité n'est pas toujours acceptable. Si chaque maillon de la chaîne a les capacités intrinsèques pour fournir cette qualité, leur mise bout à bout et le partage des ressources réseau IP par de nombreux usagers aboutissent parfois à des résultats médiocres.The increase in computer performance as well as the speeds offered by new generations of networks open the way to new services based on multimedia streams. In fact, the number of audiovisual information transmitted over networks (for example of the IP type ("Internet Protocol")) is constantly increasing, and the compression algorithms (for example of the MPEG type ("Moving Picture Experts Group")) improve, providing better quality with lower flow rates. However, today the level of quality is not always acceptable. If each link in the chain has the intrinsic capacities to provide this quality, putting them end to end and the sharing of IP network resources by many users sometimes lead to poor results.
D'une manière générale, la transmission d'informations dans un réseau IP s'appuie sur la couche transport pour un contrôle de la qualité entre la source et les récepteurs. Cette couche, située entre le routage et les applications, est réalisée traditionnellement par le protocole TCP (« Transmission Control Protocol »). D'un point de vue application, TCP se charge de retransmettre les informations perdues ou mal
reçues, par un contrôle au niveau de la session. D'un point de vue réseau, certains paramètres du protocole permettent de déceler des possibles congestions, et d'adapter le débit de la source aux contraintes du réseau. L'objectif est alors de limiter le débit si le réseau ne peut pas tout écouler, et d'éviter d'envoyer des paquets qui seront perdus. De nombreuses études cherchent aujourd'hui à appliquer des mécanismes équivalents aux flux vidéo, avec la contrainte temps réel d'une adaptation dynamique des codeurs au débit disponible.In general, the transmission of information in an IP network relies on the transport layer for quality control between the source and the receivers. This layer, located between the routing and the applications, is traditionally carried out by the TCP protocol (“Transmission Control Protocol”). From an application point of view, TCP takes care of retransmitting lost or bad information received, by session level control. From a network point of view, certain protocol parameters make it possible to detect possible congestion, and to adapt the bit rate of the source to the constraints of the network. The objective is then to limit the speed if the network cannot handle everything, and to avoid sending packets which will be lost. Many studies today seek to apply equivalent mechanisms to video streams, with the real-time constraint of a dynamic adaptation of coders to the available bit rate.
Mais en raison du temps important de réaction entre un ou plusieurs clients et la source vidéo, les protocoles temps réel et audiovisuels ne font actuellement que peu de traitements, et se limitent principalement au marquage du temps d'émission et à l'encapsulation des paquets de l'application pour leur routage dans la couche IP (par exemple RTP/UDP), à charge des applications de se débrouiller avec les données reçues.But due to the significant reaction time between one or more clients and the video source, the real-time and audiovisual protocols currently do little processing, and are mainly limited to marking the transmission time and the encapsulation of packets of the application for their routing in the IP layer (for example RTP / UDP), in charge of the applications to cope with the received data.
L'évolution des réseaux offre la possibilité de gérer la « qualité de service »The evolution of networks offers the possibility of managing "quality of service"
(QoS) dans les routeurs. Or, il est pertinent de remarquer que c'est le lieu où se produisent la plupart des pertes des réseaux IP, et des mécanismes sont mis en oeuvre à ce niveau pour traiter sélectivement les différents flux en vue d'assurer au mieux des objectifs de qualité. Les moyens déployés pour améliorer la qualité des flux transmis sont l'objet des travaux des groupes « IntServ » (pour « integrated services », c'est-à-dire « intégration de services ») et « DiffServ » (pour « differentiated services », c'est-à-dire « services différenciés ») à l'IETF (Internet Ingineering Task Force) :(QoS) in routers. However, it is relevant to note that this is the place where most of the losses of IP networks occur, and mechanisms are implemented at this level to selectively process the different flows in order to best ensure the objectives of quality. The means deployed to improve the quality of the flows transmitted are the subject of the work of the “IntServ” (for “integrated services”, ie “integration of services”) and “DiffServ” (for “differentiated services”) groups. ”, That is to say“ differentiated services ”) at the IETF (Internet Engineering Task Force):
- « IntServ » définit des moyens pour réserver une ressource en débit garantie entre deux nœuds d'un réseau ;- “IntServ” defines means for reserving a resource with guaranteed speed between two nodes of a network;
- « DiffServ » définit des moyens pour contrôler dynamiquement le débit d'agrégats de flux en fonction de la charge du réseau. En comparaison avec les solutions de bout en bout (analogues à TCP) les solutions localisées dans les routeurs ont plusieurs avantages :- "DiffServ" defines means for dynamically controlling the flow of flow aggregates as a function of the network load. Compared with end-to-end solutions (analogous to TCP) solutions located in routers have several advantages:
- elles s'affranchissent de toute contrainte de session ;- they are free from any session constraints;
- elles sont aussi adaptées au temps réel, car leur action dans les routeurs est immédiate sans nécessiter de retour d'informations en provenance des usagers ;
- elles sont donc naturellement adaptées à la diffusion sélective (« multicast »), car indépendantes du nombre d'usagers alimentés par le flux et indépendantes de rapports en provenance d'un nombre variable d'usagers.- they are also adapted to real time, because their action in the routers is immediate without requiring feedback from users; - They are therefore naturally suitable for selective broadcasting (“multicast”), since they are independent of the number of users fed by the flow and independent of reports from a variable number of users.
Les traitements dans les routeurs s'appuient sur une distinction des paquets arrivant dans les routeurs supportant des mécanismes de « qualité de service » (QoS, pour « Quality of Service »).Processing in routers is based on a distinction between packets arriving in routers supporting “quality of service” (QoS, “Quality of Service”) mechanisms.
Cette distinction existe naturellement dans les flux MPEG, car la compression des flux vidéo MPEG aboutit à une suite de données de natures différentes et non indépendantes. On distingue trois types d'images : I, P et B. Les images de type I (Intra), sont chacune codées sans faire référence à une autre image, la compression étant limitée à la réduction des redondances spatiales au sein de chaque image. Pour optimiser la quantité d'informations transmises, les codeurs MPEG exploitent le fait que deux images consécutives sont peu différentes en général. Une détection de mouvement ne considère que la partie qui vient de changer par rapport à l'image précédente pour obtenir une information de taille réduite codée dans une image de type P (Prédite).This distinction naturally exists in MPEG streams, because the compression of MPEG video streams results in a series of data of different natures and not independent. There are three types of images: I, P and B. Type I (Intra) images are each coded without reference to another image, compression being limited to the reduction of spatial redundancies within each image. To optimize the amount of information transmitted, MPEG coders exploit the fact that two consecutive images are generally little different. A motion detection only considers the part which has just changed with respect to the previous image to obtain information of reduced size coded in a P-type image (Predicted).
D'autres moyens permettent d'obtenir une information encore plus réduite en interpolant les mouvements entre deux images de type I ou P ; ces images sont alors de type B (Bidirectionnelle).Other means make it possible to obtain even more reduced information by interpolating the movements between two type I or P images; these images are then type B (Bidirectional).
La taille des images P est beaucoup plus petite en général que celle des images I, et un codage avec peu d'images I permet d'obtenir, à débit équivalent, une qualité de décodage bien supérieure. Dans ces conditions, la perte d'une image n'est pas équivalente en fonction de la nature de l'information qu'elle contient. Cette structure de l'information doit conduire à considérer l'importance ou le poids de chaque information dans son traitement par le réseau. Deux raisons justifient la conservation d'images I :The size of the images P is generally much smaller than that of the images I, and coding with few I images makes it possible to obtain, at equivalent bit rate, a much higher decoding quality. Under these conditions, the loss of an image is not equivalent depending on the nature of the information it contains. This structure of information must lead to considering the importance or the weight of each piece of information in its processing by the network. There are two reasons for keeping images I:
- la re-synchronisation périodique du flux en cas de pertes ;- periodic re-synchronization of the flow in the event of losses;
- tout changement de scène car il n'est plus possible de s'appuyer sur les images précédentes pour un codage de mouvement.- any change of scene because it is no longer possible to rely on the previous images for movement coding.
Une autre manière de considérer ce poids de l'information est la découpe d'un flux MPEG4 en plusieurs niveaux hiérarchiques pour obtenir une qualité variable en fonction du contenu global reçu par l'usager. Un niveau hiérarchique N doit s'appuyer
sur la présence des N-l niveaux inférieurs pour apporter un complément de qualité. Un cas élémentaire est de considérer une vidéo constituée d'un flux de base (contenant des images I et P) et d'un flux de rehaussement (contenant des images P et B). Pour ce cas élémentaire, le flux de base dans sa globalité est considéré plus prioritaire que le flux de rehaussement.Another way of considering this weight of information is to split an MPEG4 stream into several hierarchical levels to obtain a variable quality according to the overall content received by the user. A hierarchical level N must be supported on the presence of the Nl lower levels to provide additional quality. An elementary case is to consider a video made up of a basic stream (containing I and P images) and of an enhancement stream (containing P and B images). For this elementary case, the basic flow as a whole is considered to have higher priority than the enhancement flow.
La distinction de nature des images ou des flux dans le trafic MPEG est à exploiter dans les routeurs « DiffServ » pour traiter sélectivement les différentes informations d'un flux vidéo :The distinction in the nature of images or streams in MPEG traffic should be used in the "DiffServ" routers to selectively process the different information in a video stream:
- soit par un marquage du champs TOS (« type of service », c'est-à-dire « type de service ») ou DSCP (« Differentiated Services Code Point », c'est-à-dire- either by marking the TOS (“type of service”, ie “type of service”) or DSCP (“Differentiated Services Code Point”, ie
« valeur de marquage pour services différenciés ») des paquets par le serveur vidéo,"Markup value for differentiated services") of packets by the video server,
- soit par une classification effectuée par le routeur, ce qui aboutit également à un marquage des paquets IP. Dans le présent document, on considère que le marquage des paquets est possible dans tous les cas. Les moyens de réaliser ce marquage sont considérés comme bien connus de l'homme du métier. Ils ne sont donc pas discutés en détail.- or by a classification carried out by the router, which also results in a marking of IP packets. In this document, we consider that the marking of packets is possible in all cases. The means of carrying out this marking are considered to be well known to those skilled in the art. They are therefore not discussed in detail.
Quand une situation de congestion apparaît dans un routeur, les paquets reçus sont éliminés en fonction de la charge et de leur niveau de priorité. Une caractéristique importante des données contenus dans ces paquets est leur variation importante en fonction du contenu de la scène. Or, les informations les plus critiques pour la restitution à l'usager sont contenues dans les rafales les plus importantes, et le problème principal des réseaux IP de type « Best effort » (c'est-à-dire sans garantie) est leur difficulté à laisser passer les rafales en cas de congestion. De ce fait, le simple marquage des flux élémentaires d'un flux MPEG n'est pas suffisant pour leur traitement optimal. En effet, les mécanismes « DiffServ » usuels sont prévus pour accepter des rafales que l'on trouve habituellement dans les réseaux IP, avec les applications qui sont majoritaires aujourd'hui : le transfert d'URL (« Uniform Resource Locator ») pour les applications WEB et les transferts de fichiers par FTP (« File Transport Protocol »). Toutes ces applications exploitent le protocole TCP dont
les mécanismes ont fait l'objet de nombreuses études afin d'obtenir une montée en charge progressive, et une adaptation du débit en fonction de la charge du réseau.When a congestion situation appears in a router, the received packets are discarded according to the load and their priority level. An important characteristic of the data contained in these packets is their significant variation depending on the content of the scene. However, the most critical information for the restitution to the user is contained in the largest bursts, and the main problem of IP networks of the “Best effort” type (that is to say without guarantee) is their difficulty. to let the gusts pass in case of congestion. Therefore, the simple marking of the elementary streams of an MPEG stream is not sufficient for their optimal processing. Indeed, the usual "DiffServ" mechanisms are designed to accept bursts that are usually found in IP networks, with the applications that are in the majority today: the transfer of URLs ("Uniform Resource Locator") for WEB applications and file transfers by FTP ("File Transport Protocol"). All these applications use the TCP protocol, the mechanisms have been the subject of numerous studies in order to obtain a gradual increase in load, and an adaptation of the flow according to the load of the network.
Or, les flux vidéo remettent en cause ce fonctionnement car leur comportement est qualifié d'agressif, dans la mesure où ils ignorent généralement l'état et la charge du réseau. De plus, la plupart des mécanismes introduits dans les réseaux IP ont tous pour objectif le lissage des flux pour favoriser un bon écoulement du trafic. Paradoxalement, les codeurs fournissent une qualité meilleure quand ils produisent des flux à débit variable, qui sont les plus maltraités dans les réseaux IP.However, video streams question this functioning because their behavior is qualified as aggressive, insofar as they generally ignore the state and the load of the network. In addition, most of the mechanisms introduced into IP networks all have the objective of smoothing flows to promote a smooth flow of traffic. Paradoxically, coders provide better quality when they produce variable rate flows, which are the most abused in IP networks.
L'introduction de flux vidéo dans le réseau IP se heurte donc à trois contradictions :The introduction of video streams into the IP network therefore faces three contradictions:
- augmenter la qualité des codages, conduit pour un débit moyen défini, à produire des rafales de paquets quand la séquence codée l'exige ;- increase the quality of coding, leading to a defined average bit rate, to produce bursts of packets when the coded sequence requires it;
- les réseaux d'accès offrent une bande passante maximale limitée (y compris en ADSL (« Asymétrie Digital Subscriber Line ») car les applications sont tentées d'exploiter un débit moyen proche du maximum pour procurer la meilleure qualité aux usagers ;- access networks offer a limited maximum bandwidth (including ADSL (“Asymmetry Digital Subscriber Line”) because applications are tempted to exploit an average speed close to the maximum to provide the best quality to users;
- les rafales sont les informations les plus importantes car elles correspondent à un changement de scène ou au moins à un changement important du contenu de l'image. Bien souvent, ces images sont du type I (Intra) dont la perte est très critique, car il devient impossible de reproduire les images suivantes, même si ces dernières sont correctement reçues. On présente maintenant les techniques connues de conditionnement de trafic visant à réduire les congestions dans les réseaux.- the bursts are the most important information because they correspond to a change of scene or at least to a significant change in the content of the image. Very often, these images are of type I (Intra) whose loss is very critical, because it becomes impossible to reproduce the following images, even if the latter are correctly received. We now present the known traffic conditioning techniques aimed at reducing congestion in networks.
On notera tout d'abord que les travaux sur l'application de la mise en forme pour les flux MPEG dans les réseaux IP en se basant sur UDP et RTP comme protocoles de transport sont très rares. La majorité des travaux concernent les réseaux ATMFirst of all, it should be noted that work on the application of formatting for MPEG flows in IP networks based on UDP and RTP as transport protocols is very rare. The majority of work concerns ATM networks
(« Asynchronous Transfer Mode ») et l'utilisation de TCP comme protocole de transport.("Asynchronous Transfer Mode") and the use of TCP as a transport protocol.
Les mécanismes de mise en forme et de conditionnement de trafic sont utilisés dans les réseaux IP à « qualité de service » (QoS). On peut notamment se reporter au document « Traffic Shaping for MPEG video transmission over next génération
internet » (lissage de trafic pour la transmission de vidéo MPEG sur l'internet de prochaine génération), M.F Alan, M. Atiquzzaman, M.A. Karim. Dans ce document, le lissage de trafic (TS) est utilisé pour assurer la conformité des flux MPEG au TSPEC (« Traffic Spécifier » c'est-à-dire « spécification de trafic ») nécessaire à la réservation de ressources dans les réseaux « IntServ ». Pour les réseaux « DiffServ », le traitement se fait par agrégat de flux et donc sans trop se soucier des applications. Les algorithmes de lissage de trafic (TS) sont par contre largement utilisés au niveau du codage dans le but de contrôler le débit des codeurs. Ceci reste insuffisant pour maîtriser les flux au niveau réseau. L'utilisation de la mise en forme, par lissage de trafic (TS, pour « TrafficTraffic shaping and conditioning mechanisms are used in “quality of service” (QoS) IP networks. We can in particular refer to the document “Traffic Shaping for MPEG video transmission over next generation internet ”(traffic shaping for transmission of MPEG video over the next generation internet), MF Alan, M. Atiquzzaman, MA Karim. In this document, traffic smoothing (TS) is used to ensure the conformity of MPEG flows to the TSPEC ("Traffic Specifier", ie "traffic specification") necessary for the reservation of resources in networks " IntServ ". For "DiffServ" networks, the processing is done by flow aggregate and therefore without worrying too much about the applications. Traffic smoothing (TS) algorithms are however widely used in coding in order to control the bit rate of coders. This remains insufficient to control flows at the network level. The use of formatting, by traffic smoothing (TS, for "Traffic
Shaping ») ou contrôle des règles de trafic (ou TP, pour « Traffic Policing »), pour réduire la congestion dans le réseau peut améliorer d'une manière significative le niveau de « qualité de service » (QoS) que le réseau est capable de délivrer aux applications.Shaping ") or traffic rule control (or TP, for" Traffic Policing "), to reduce congestion in the network can significantly improve the level of" quality of service "(QoS) that the network is capable to deliver to applications.
Le lissage (TS) lisse les rafales en « bufferisant » (c'est-à-dire en mettant en mémoire-tampon) les paquets concernés par l'excès de rafales dans les équipements de frontière du réseau. Il peut réduire la congestion à des niveaux acceptables, surtout que les algorithmes d'ordonnancement (« scheduler ») tels que CBQ (« Class Based Queuing » c'est-à-dire « gestion de files d'attente basées par classes de services ») ou bien PQ (« Priority Queuing » c'est-à-dire « gestion de files d'attentes par priorités ») ne sont pas capables de le faire. Utilisés seuls, ces mécanismes propagent les rafales dans le réseau.Smoothing (TS) smoothes the bursts by “buffering” (that is to say by buffering) the packets concerned by the excess of bursts in the border equipment of the network. It can reduce congestion to acceptable levels, especially that scheduling algorithms such as CBQ (“Class Based Queuing” ie “management of queues based on service classes) ”) Or PQ (“ Priority Queuing ”that is to say“ queue management by priorities ”) are not able to do this. Used alone, these mechanisms propagate bursts in the network.
Comme le lissage (TS), le contrôle des règles de trafic (TP) limite le débit du trafic au débit configuré. Mais au lieu de « bufferiser » les paquets comme le lissage (TS), les paquets non-conformes sont soit rejetés, soit remarqués pour diminuer leurs priorités. Le contrôle des règles de trafic (TP) ne lisse pas par conséquent le trafic mais il n'introduit pas de délai de « bufferisation » non plus.Like smoothing (TS), traffic rule control (TP) limits the traffic rate to the configured rate. But instead of "buffering" packets like smoothing (TS), non-compliant packets are either rejected or noticed to lower their priorities. Traffic rule control (TP) therefore does not smooth traffic, but it does not introduce a "buffering" delay either.
Dans la majorité des architectures qui supportent la « qualité de service » (QoS), un contrat de service existe entre le fournisseur du service réseau (NSP, pour « Network Service Provider ») et le fournisseur de l'application (ASP, pour « Application Service Provider »). Dans les réseaux ATM, ce contrat est appelé « Contrat de trafic ». Dans les réseaux « DiffServ », les aspects de contractualisation sont traités dans le SLA
(« Service Level Agreement ») et plus précisément dans le SLS (« Service Level Spécification »).In the majority of architectures that support "quality of service" (QoS), a service contract exists between the network service provider (NSP, for "Network Service Provider") and the application provider (ASP, for " Application Service Provider ”). In ATM networks, this contract is called "Traffic contract". In the "DiffServ" networks, the contractual aspects are dealt with in the SLA ("Service Level Agreement") and more specifically in the SLS ("Service Level Specification").
On connaît également le document suivant : RFC2475, « An Architecture for Differentiated Services » (une architecture pour des services différenciés), Décembre 1998. Il précise que les sources de trafic peuvent assurer les tâches de classification et de. conditionnement de trafic. En effet, le trafic peut être marqué avant de quitter le domaine source. Ce marquage initial est appelé « Initial Marking » ou « Pre-marking ». L'avantage du marquage initial est que les préférences et les besoins des applications peuvent être mieux pris en compte pour décider quels paquets doivent recevoir un meilleur traitement dans le réseau.We also know the following document: RFC2475, "An Architecture for Differentiated Services", December 1998. It specifies that traffic sources can perform classification and classification tasks. traffic conditioning. Indeed, traffic can be marked before leaving the source domain. This initial marking is called "Initial Marking" or "Pre-marking". The advantage of initial tagging is that application preferences and needs can be better taken into account when deciding which packets should receive better processing in the network.
La prévention contre la surcharge d'une classe de service donnée n'est pas une tâche facile dans les réseaux « DiffServ ». En plus, en cas de surcharge dans une classe de service, il faut noter que tous les flux de cette classe de service souffrent d'une dégradation de la « qualité de service » (QoS). En plus, plusieurs mécanismes utilisés dans la mise en œuvre de « DiffServ » fonctionnent d'une façon moins efficace en présence des rafales. Le mécanisme RED (« Random Early Drop »), par exemple, est plus efficace lorsqu'il est appliqué à un trafic lissé, sinon ce sont les flux lissés qui sont pénalisés alors que les flux en rafales ne subissent pas une amélioration significative. Les flux MPEG sont caractérisés par le fait qu'ils présentent des rafales (naturePreventing overloading of a given service class is not an easy task in "DiffServ" networks. In addition, in the event of an overload in a class of service, it should be noted that all the flows of this class of service suffer from a degradation of the “quality of service” (QoS). In addition, several mechanisms used in the implementation of "DiffServ" work less efficiently in the presence of gusts. The RED (“Random Early Drop”) mechanism, for example, is more effective when applied to smooth traffic, otherwise it is the smooth flows which are penalized while the burst flows do not undergo a significant improvement. MPEG streams are characterized by the fact that they present bursts (nature
« bursty ») et par leur sensibilité aux pertes de paquets. Ces pertes causent une dégradation de la qualité subjective, mais il est très difficile de prévoir le niveau de cette dégradation suite à des pertes. Cette dégradation est fortement liée à la nature des informations transportées par les paquets perdus. Les mécanismes de correction d'erreurs sont utilisés lors du décodage pour palier aux pertes."Bursty") and their sensitivity to packet loss. These losses cause a degradation of the subjective quality, but it is very difficult to predict the level of this degradation following losses. This degradation is strongly linked to the nature of the information transported by the lost packets. Error correction mechanisms are used during decoding to compensate for losses.
Gérer les flux MPEG dans le réseau, ou même dans les routeurs d'extrémité (ER, pour « Edge Router »), est une tâche compliquée. Le fournisseur du service réseau (NSP) n'est pas obligé de traiter différemment les flux MPEG. En plus, l'agrégat de trafic résultant de plusieurs flux audio-visuels est généralement difficile à décrire : - le processus d'arrivée de paquets est auto-similaire ;Managing MPEG flows in the network, or even in the end routers (ER, for "Edge Router"), is a complicated task. The network service provider (NSP) is not required to treat MPEG streams differently. In addition, the traffic aggregate resulting from several audio-visual streams is generally difficult to describe: - the packet arrival process is self-similar;
- grande variation des données transportées par les paquets ;
- la dynamique des protocoles.- large variation in the data transported by the packets; - the dynamics of the protocols.
Une solution consiste à marquer les paquets et à leur attribuer le niveau de « qualité de service » (QoS) approprié avant qu'ils quittent le domaine du fournisseur de service sur Internet (ISP, pour « Internet Service Provider »). La passerelle d'accès au média (MAG, pour « Media Access Gateway ») est par exemple responsable de cette tâche. Cette passerelle MAG gère le trafic selon le SLS spécifié. Cette approche facilite la négociation de SLA/SLS pour les services en mode continu (« Streaming ») et impose au client un profil de trafic bien particulier.One solution is to mark the packets and assign them the appropriate level of "quality of service" (QoS) before they leave the domain of the Internet service provider (ISP). The media access gateway (MAG, for “Media Access Gateway”) is for example responsible for this task. This MAG gateway manages traffic according to the specified SLS. This approach facilitates the negotiation of SLA / SLS for services in continuous mode (“Streaming”) and imposes on the client a very specific traffic profile.
Parmi les techniques actuelles, la plus répandue pour contrôler le trafic est le mécanisme WRED (« Weighted Random Early Drop ») qui consiste en une perte de paquets aléatoire et différente en fonction du marquage des paquets. Ce mécanisme se base sur un taux de remplissage moyen de la file d'attente d'émission sur un lien d'un réseau. Mais cette technique introduit un caractère aléatoire des rejets de paquets, et le taux de remplissage de la file d'attente n'est pas optimisée. Selon les tailles des rafales et leur fréquence, ces rejets peuvent se produire pour un remplissage faible ou un remplissage très élevé de la file d'attente. Ce qui conduit d'une part à une sous utilisation de la file d'attente, et d'autre part à la réservation de taille mémoire conséquente pour la réalisation de cette file. Ce problème existe pour tout type d'application, et il est encore plus réel pour les flux audiovisuels en raison de leurs rafales importantes.Among the current techniques, the most widespread for controlling traffic is the WRED (Weighted Random Early Drop) mechanism which consists of a random and different packet loss depending on the marking of the packets. This mechanism is based on an average filling rate of the transmission queue on a network link. However, this technique introduces a random nature of packet rejections, and the filling rate of the queue is not optimized. Depending on the size of the bursts and their frequency, these rejections can occur for a low filling or a very high filling of the queue. This leads on the one hand to an underuse of the queue, and on the other hand to the reservation of consequent memory size for the realization of this queue. This problem exists for any type of application, and it is even more real for audiovisual streams because of their large bursts.
Pour détailler ce point, il est fondamental de remarquer tout d'abord que les rafales des flux vidéo sont imprévisibles, autant en taille qu'en durée, tout en garantissant un débit moyen sur une période de l'ordre d'une seconde. Cette fenêtre de calcul du débit moyen est beaucoup trop grande pour obtenir des tailles raisonnables des files d'attente associées. De fait, les routeurs réagissent en calculant les moyennes de remplissage sur une dizaine de paquets reçus, alors que certaines rafales peuvent largement dépasser les 20 paquets.To detail this point, it is fundamental to note first of all that the bursts of video streams are unpredictable, both in size and in duration, while guaranteeing an average bit rate over a period of the order of one second. This window for calculating the average throughput is far too large to obtain reasonable sizes of the associated queues. In fact, the routers react by calculating the filling averages over ten packets received, while certain bursts can greatly exceed 20 packets.
Ainsi, une succession de rafales peut aboutir à des rejets par saturation de la capacité de la file d'attente, inhibant le fonctionnement normal du mécanisme. A l'opposé, quand un trafic faible survient après une suite de rafales, la valeur moyenne
peut rester temporairement anormalement élevée et des paquets sont rejetés alors que la file est pratiquement vide.Thus, a succession of bursts can lead to rejections by saturation of the capacity of the queue, inhibiting the normal operation of the mechanism. Conversely, when light traffic occurs after a series of gusts, the average value may remain temporarily abnormally high and packets are dropped while the queue is almost empty.
Le mécanisme WRED n'est donc pas adapté au contrôle de flux caractérisés par une valeur moyenne sur une durée fixe. L'invention a notamment pour objectif de pallier ces inconvénients de l'état de la technique et offrir une solution optimale en cas de congestion du réseau.The WRED mechanism is therefore not suitable for controlling flows characterized by an average value over a fixed duration. The invention particularly aims to overcome these drawbacks of the prior art and offer an optimal solution in the event of network congestion.
Plus précisément, l'un des objectifs de la présente invention est de fournir un procédé et un dispositif de contrôle de trafic permettant de contrôler des rafales et de lisser le trafic sur un ensemble de flux et/ou sous-flux associés à des niveaux de priorités.More specifically, one of the objectives of the present invention is to provide a method and a device for traffic control making it possible to control gusts and to smooth traffic over a set of flows and / or substreams associated with levels of priorities.
En d'autres termes, un objectif de la présente invention est de fournir un procédé et un dispositif de contrôle de trafic permettant de protéger les informations importantes des rafales, afin d'apporter une solution à l'antinomie entre l'optimisation d'un flux (par exemple un flux vidéo) contenant des rafales et le lissage des rafales pour un transport de qualité dans le réseau.In other words, an objective of the present invention is to provide a method and a device for traffic control making it possible to protect the important information from the bursts, in order to provide a solution to the contradiction between the optimization of a stream (for example a video stream) containing bursts and smoothing the bursts for quality transport in the network.
L'invention a également pour objectif de fournir de tels procédé et dispositif qui soient simples à mettre en œuvre et peu coûteux.The invention also aims to provide such a method and device which are simple to implement and inexpensive.
Un autre objectif de l'invention est de fournir de tels procédé et dispositif permettant de proposer efficacement des contrats de trafic (SLA/SLS) entre opérateurs réseau et fournisseurs de services.Another objective of the invention is to provide such a method and device making it possible to efficiently offer traffic contracts (SLA / SLS) between network operators and service providers.
Ces différents objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints selon l'invention à l'aide d'un procédé de contrôle d'un trafic de paquets de données en entrée d'un réseau, le trafic comprenant N flux et/ou sous-flux associés chacun à un niveau de priorité, N > 2, chacun des paquets étant marqué avec le niveau de priorité associé au flux ou sous-flux auquel appartient ledit paquet, ledit procédé comprenant une étape de mise en œuvre d'un mécanisme de seau à jetons à N niveaux de fonctionnement avec N mémoires-tampons de jetons contenant chacune un nombre de jetons disponibles, les jetons de chacune des N mémoires-tampons de jetons étant utilisés pour traiter l'un des N niveaux de priorité, chacun des paquets étant accepté ou refusé selon qu'il est possible ou non de lui attribuer des jetons en fonction
des jetons disponibles au moins dans la mémoire-tampon de jetons utilisée pour traiter le niveau de priorité dudit paquet.These various objectives, as well as others which will appear subsequently, are achieved according to the invention using a method for controlling a traffic of data packets entering a network, the traffic comprising N stream and / or substream each associated with a priority level, N> 2, each of the packets being marked with the priority level associated with the stream or substream to which said packet belongs, said method comprising an implementation step an N-level token bucket mechanism with N token buffers each containing a number of available tokens, the tokens of each of the N token buffers being used to process one of the N levels of priority, each packet being accepted or refused depending on whether or not it is possible to allocate tokens according to it tokens available at least in the token buffer used to process the priority level of said packet.
Le principe général de l'invention consiste donc à utiliser un seau à jetons multi- niveau (MLTB, pour « Multi Layer Token Bucket ») pour rejeter les paquets en dehors d'un profil requis et caractérisé par les N niveaux de fonctionnement du seau à jetons multi-niveau. Chaque paquet subit un traitement selon un marquage correspondant à son niveau de priorité. Les paquets acceptés sont placés dans une file d'attente.The general principle of the invention therefore consists in using a multi-level token bucket (MLTB, for “Multi Layer Token Bucket”) to reject packets outside a required profile and characterized by the N operating levels of the bucket multi-level tokens. Each packet undergoes processing according to a marking corresponding to its priority level. Accepted packets are placed in a queue.
Le seau à jetons multi-niveau permet de traiter sélectivement et conjointement plusieurs niveaux de priorités de flux. Il est bien adapté à la caractérisation du trafic entre la taille des rafales en entrée et l'écoulement du trafic en sortie. On sait qu'en cas de congestion du réseau, il est illusoire de chercher de la bande passante disponible. Le réglage des paramètres du seau à jetons multi-niveau assure une relation entre les niveaux de priorité pour équilibrer les contraintes de fonctionnement entre les débits par niveaux de priorité et les rafales acceptables par le seau à jeton selon les contraintes des applications transportées. La caractérisation des paramètres des N jeux de paramètres du seau à jetons multi-niveau permet de nombreuses solution et peut s'adapter à peu près à tous les cas de fonctionnement :The multi-level token bucket makes it possible to selectively and jointly process several levels of flow priorities. It is well suited to characterizing traffic between the size of incoming gusts and the flow of outgoing traffic. We know that in the event of network congestion, it is illusory to seek available bandwidth. The adjustment of the parameters of the multi-level token bucket ensures a relationship between the priority levels to balance the operating constraints between the flow rates by priority levels and the bursts acceptable by the token bucket according to the constraints of the transported applications. The characterization of the parameters of the N sets of parameters of the multi-level token bucket allows numerous solutions and can be adapted to almost all operating cases:
- un cas extrême est le comportement avec N jeux de paramètres indépendants agissant comme des seaux à jetons indépendants ; - un autre cas extrême est la possibilité pour le niveau le plus prioritaire de prendre tous les jetons et d'aboutir à une rejet des paquets de tous les autres niveaux ;- an extreme case is the behavior with N sets of independent parameters acting like buckets with independent tokens; - another extreme case is the possibility for the highest priority level to take all the tokens and result in a rejection of the packets from all the other levels;
- entre ces deux extrêmes, toutes les configurations sont possibles, autorisant plus ou moins de rafales ou plus ou moins de débit réservé par niveau. L'invention permet donc de traiter des rafales sur les niveaux les plus prioritaires, du fait qu'il existe pour chaque niveau de priorité une réserve disponible pour prévenir toute arrivée soudaine d'un ensemble de données qui ne doivent pas être rejetées.- between these two extremes, all the configurations are possible, allowing more or less gusts or more or less reserved flow per level. The invention therefore makes it possible to process bursts on the highest priority levels, because there is for each priority level a reserve available to prevent any sudden arrival of a set of data which must not be rejected.
On rappelle qu'un seau à jeton habituel ne possède qu'un seul niveau de fonctionnement (il dispose d'un unique jeu de paramètres) et traite donc tous les paquets
indistinctement. En cas de congestion du réseau, les paquets sont donc rejetés indépendamment de leur niveau de priorité.Remember that a usual token bucket has only one operating level (it has a single set of parameters) and therefore processes all packets indiscriminately. Packets are therefore dropped in the event of network congestion regardless of their priority level.
On notera que la présente invention est totalement compatible avec les flux IP « unicast » (à destinataire unique) et « multicast » (diffusés sélectivement). On notera également que la présente invention permet de transmettre dans une même classe de service plusieurs groupes de flux avec des priorités différentes. En particulier, l'invention permet de fournir un traitement adapté à un ou un groupe de flux vidéo (IPB ou hiérarchique) conformément à un profil de trafic contractualisé (SLS) par des valeurs caractéristiques de type seau à jeton. En effet, les paramètres facilement mesurables et adaptables d'un seau à jetons multi-niveau (MLTB) sont un moyen efficace de proposer des contrats de trafic (SLA/SLS) entre opérateurs réseau et fournisseurs de services. La présence d'informations prioritaires conduit à la spécification de ce seau. Les multiples déclinaisons de ce seau sont un moyen d'offrir des classes de services adaptées aux exigences des clients. Quelles que soient les applications, le profil de trafic fait intervenir les principaux éléments de caractérisation d'un flux dans un réseau : le débit et le délai. L'invention est donc un moyen de définir un contrat avec un compromis négocié entre le débit, la taille des rafales, et le délai de transmission.Note that the present invention is fully compatible with IP streams "unicast" (single recipient) and "multicast" (selectively broadcast). It will also be noted that the present invention makes it possible to transmit several groups of flows with different priorities in the same class of service. In particular, the invention makes it possible to provide processing adapted to one or a group of video streams (IPB or hierarchical) in accordance with a contracted traffic profile (SLS) by characteristic values of the token bucket type. Indeed, the easily measurable and adaptable parameters of a multi-level token bucket (MLTB) are an effective means of proposing traffic contracts (SLA / SLS) between network operators and service providers. The presence of priority information leads to the specification of this bucket. The multiple versions of this bucket are a means of offering classes of services adapted to customer requirements. Whatever the applications, the traffic profile involves the main elements of characterization of a flow in a network: the speed and the delay. The invention is therefore a means of defining a contract with a negotiated compromise between the speed, the size of the bursts, and the transmission time.
Dans une première application avantageuse de l'invention, le trafic comprend N sous-flux correspondant chacun à un des N niveaux hiérarchiques d'un flux hiérarchique ou d'un agrégat de flux hiérarchiques.In a first advantageous application of the invention, the traffic comprises N sub-flows each corresponding to one of the N hierarchical levels of a hierarchical flow or of an aggregate of hierarchical flows.
Il s'agit par exemple d'un flux hiérarchique audio/vidéo comprenant les sous- flux suivants : un sous-flux audio, un sous-flux vidéo de base et un sous-flux vidéo de réhaussement. Dans une deuxième application avantageuse de l'invention, le trafic comprend N sous-flux correspondant chacun à un des N types d'images d'un flux multimédia ou d'un agrégat de flux multimédia.It is for example an audio / video hierarchical stream comprising the following substreams: an audio substream, a basic video substream and an enhancement video substream. In a second advantageous application of the invention, the traffic comprises N sub-streams each corresponding to one of the N types of images of a multimedia stream or of an aggregate of multimedia streams.
Il s'agit par exemple d'un flux vidéo MPEG comprenant trois sous-flux correspondant aux trois types d'images I, P et B. Dans une troisième application avantageuse de l'invention, le trafic comprend N flux correspondant chacun à un des flux d'un multiplex d'au moins deux flux.
Il s'agit par exemple d'un flux vidéo/audio multiplexe avec un flux TCP, sur un accès ADSL.It is for example an MPEG video stream comprising three substreams corresponding to the three types of images I, P and B. In a third advantageous application of the invention, the traffic comprises N streams each corresponding to one of the stream of a multiplex of at least two streams. This is for example a multiplex video / audio stream with a TCP stream, on an ADSL access.
Avantageusement, le trafic comprend N flux et/ou sous-flux appartenant à une même classe de service. Ainsi, l'invention, grâce au seau à jetons multi-niveau, permet de transmettre dans une même classe de service plusieurs flux et/ou sous-flux avec des priorités différentes. On peut distinguer plusieurs classes de service, telles que par exemple la classe « streaming » (contenant des flux audio et vidéo, la classe « TCP prioritaire », la classe « Best Effort de réseau IP », ...) et utiliser un seau à jeton multi-niveau pour chaque classe. Chaque classe de service peut être définie par marquage des paquets, par l'adresse IP source ou destination des paquets, par le protocole utilisé pour les paquets, etc.Advantageously, the traffic comprises N flows and / or substreams belonging to the same class of service. Thus, the invention, thanks to the multi-level token bucket, makes it possible to transmit several flows and / or sub-flows with different priorities in the same service class. We can distinguish several service classes, such as for example the "streaming" class (containing audio and video streams, the "priority TCP" class, the "Best IP network effort" class, ...) and use a bucket with multi-level token for each class. Each class of service can be defined by marking packets, by the source or destination IP address of the packets, by the protocol used for the packets, etc.
Préférentiellement, les paquets refusés sont jetés.Preferably, the refused packets are discarded.
Les paquets refusés sont ceux qui ne sont pas conformes au profil de trafic défini par les paramètres des N niveaux de fonctionnement du seau à jetons multi-niveau.The packets refused are those which do not comply with the traffic profile defined by the parameters of the N operating levels of the multi-level token bucket.
Une autre option, moins performante mais qui rentre néanmoins dans le cadre de la présente invention, est de transmettre les paquets refusés après les avoir à nouveau marqués avec un niveau de priorité plus faible. Cette option présente toutefois l'inconvénient d'augmenter la probabilité de rejet de paquets dans les nœuds congestionnés du réseau.Another option, less efficient but which nevertheless falls within the scope of the present invention, is to transmit the refused packets after having marked them again with a lower priority level. However, this option has the disadvantage of increasing the probability of packet rejection in congested network nodes.
Avantageusement, le réseau est de type IP ou équivalent.Advantageously, the network is of IP type or equivalent.
Selon une caractéristique avantageuse, chacun des N niveaux de fonctionnement du mécanisme de seau à jetons est géré par un régulateur bi(rb bπi;), i G {1 à N}, avec : rj le débit nominal du régulateur ; - bn ; la taille maximale de la mémoire-tampon de jetons du régulateur ; bi(t) la valeur instantanée du remplissage de la mémoire-tampon de jetons du régulateur.According to an advantageous characteristic, each of the N operating levels of the token bucket mechanism is managed by a regulator bi (r b bπi;), i G {1 to N}, with: r j the nominal flow rate of the regulator; - bn; the maximum size of the controller token buffer; bi (t) the instantaneous value of the filling of the regulator token buffer.
De façon préférentielle, les jetons des N mémoires-tampons de jetons sont partagés entre les N niveaux de priorité, un paquet de niveau de priorité i pouvant se voir attribuer des jetons d'une mémoire-tampon de jetons associée à un niveau de priorité j
moins prioritaire lorsque les jetons disponibles dans la mémoire-tampon de jetons de niveau de priorité i ne sont pas suffisants.Preferably, the tokens of the N token buffers are shared between the N priority levels, a packet of priority level i being able to be allocated tokens of a token buffer associated with a priority level j less priority when the tokens available in the token buffer of priority level i are not sufficient.
De cette façon, on favorise les rafales des niveaux les plus prioritaires.In this way, we favor the bursts of the highest priority levels.
Avantageusement, pour chaque niveau de priorité hormis le niveau de priorité le plus prioritaire, on garantit une quantité de jetons réservés exclusivement aux paquets possédant ledit niveau de priorité.Advantageously, for each priority level apart from the highest priority level, it guarantees a quantity of tokens reserved exclusively for packets having said priority level.
Ainsi, on garantit une ressource minimum pour chaque niveau de priorité, sans exclure un usage partiellement partagé des ressources (c'est-à-dire des jetons des différents niveaux de fonctionnement du seau à jetons multi-niveau). Dans un premier mode de réalisation particulier de l'invention, l'attribution de jetons à un paquet de niveau de priorité i est effectuée selon un mode discontinu par paquet et consiste à attribuer : soit des jetons disponibles dans la mémoire-tampon de jetons de niveau de priorité i ; - soit des jetons disponibles dans une mémoire-tampon de jetons de niveau de priorité j moins prioritaire, lorsque les jetons disponibles dans la mémoire- tampon de jetons de niveau de priorité i ne sont pas suffisants.Thus, a minimum resource is guaranteed for each priority level, without excluding a partially shared use of the resources (ie tokens of the different operating levels of the multi-level token bucket). In a first particular embodiment of the invention, the allocation of tokens to a packet of priority level i is carried out according to a discontinuous mode per packet and consists in assigning: either tokens available in the token buffer memory of priority level i; - or tokens available in a token buffer of priority level j with lower priority, when the tokens available in the buffer of tokens of priority level i are not sufficient.
Ainsi, dans le mode discontinu, un paquet ne peut se servir des ressources (jetons) que d'un seul niveau de fonctionnement du seau à jetons multi-niveau. Dans un second mode de réalisation particulier de l'invention, l'attribution de jetons à un paquet de niveau de priorité i est effectuée selon un mode continu par bit et consiste à attribuer : des jetons disponibles dans la mémoire-tampon de jetons de niveau de priorité i ; et en complément des jetons disponibles dans au moins une mémoire-tampon de jetons de niveau de priorité j moins prioritaire, lorsque les jetons disponibles dans la mémoire-tampon de jetons de niveau de priorité i ne sont pas suffisants.Thus, in the discontinuous mode, a packet can use resources (tokens) only on one level of operation of the multi-level token bucket. In a second particular embodiment of the invention, the allocation of tokens to a packet of priority level i is carried out in a continuous mode per bit and consists in allocating: tokens available in the buffer of level tokens of priority i; and in addition to the tokens available in at least one buffer of tokens of priority level j with lower priority, when the tokens available in the buffer of tokens of priority level i are not sufficient.
En d'autres termes, dans le mode continu, un paquet peut se servir des ressources (jetons) de plusieurs niveaux de fonctionnement du seau à jetons multi-niveau à la fois.In other words, in the continuous mode, a packet can use the resources (tokens) of several operating levels of the multi-level token bucket at a time.
De façon avantageuse, les paquets acceptés par le mécanisme de seau à jetons à N niveaux de fonctionnement sont placés dans une file d'attente. Ledit procédé comprend en outre une étape de mise en œuvre d'un mécanisme de seau à jetons à un
seul niveau de fonctionnement avec une unique mémoire-tampon de jetons, de façon à prendre les paquets contenus dans la file d'attente et les envoyer sur le réseau en exécutant un lissage du trafic par limitation du débit instantané à une valeur acceptable par le réseau. Le seau à jetons à un seul niveau de fonctionnement (TBTS, pour « TokenAdvantageously, the packets accepted by the token bucket mechanism with N operating levels are placed in a queue. The method further includes a step of implementing a token bucket mechanism at a single level of operation with a single token buffer, so as to take the packets contained in the queue and send them over the network by performing traffic smoothing by limiting the instantaneous speed to a value acceptable by the network . The single-level token bucket (TBTS, for “Token
Bucket Traffic Shaper ») permet donc de limiter les débits crêtes émis par l'équipement réseau supportant l'invention. Il réalise une temporisation des rafales quand elles dépassent le débit toléré dans le réseau.Bucket Traffic Shaper ”) therefore makes it possible to limit the peak bit rates emitted by the network equipment supporting the invention. It delays gusts when they exceed the tolerated flow in the network.
On utilise par exemple une zone mémoire, dont l'entrée est gérée par le seau multi-niveau (contrôle des rafales) et dont la sortie est gérée par le seau à un seul niveauWe use for example a memory zone, whose input is managed by the multi-level bucket (burst control) and whose output is managed by the bucket at one level
(lissage de trafic).(traffic smoothing).
L'invention concerne également un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé tel que précité, lorsque ledit programme est exécuté sur un ordinateur. L'invention concerne aussi un dispositif de contrôle d'un trafic de paquets de données en entrée d'un réseau, le trafic comprenant N flux et/ou sous-flux associés chacun à un niveau de priorité, N > 2, chacun des paquets étant marqué avec le niveau de priorité associé au flux ou sous-flux auquel appartient ledit paquet, ledit dispositif comprenant des moyens de mise en œuvre d'un mécanisme de seau à jetons à N niveaux de fonctionnement avec N mémoires-tampons de jetons contenant chacune un nombre de jetons disponibles, les jetons de chacune des N mémoires-tampons de jetons étant utilisés pour traiter l'un des N niveaux de priorité, chacun des paquets étant accepté ou refusé selon qu'il est possible ou non de lui attribuer des jetons en fonction des jetons disponibles au moins dans la mémoire-tampon de jetons utilisée pour traiter le niveau de priorité dudit paquet.The invention also relates to a computer program comprising program code instructions for executing the steps of the method as mentioned above, when said program is executed on a computer. The invention also relates to a device for controlling a traffic of data packets entering a network, the traffic comprising N streams and / or substreams each associated with a priority level, N> 2, each of the packets being marked with the priority level associated with the stream or sub-stream to which said packet belongs, said device comprising means for implementing a token bucket mechanism with N operating levels with N token buffer memories each containing a number of tokens available, the tokens of each of the N token buffer memories being used to process one of the N priority levels, each of the packets being accepted or refused according to whether or not it is possible to assign tokens to it according to the tokens available at least in the token buffer memory used to process the priority level of said packet.
De façon préférentielle, ledit procédé comprend des moyens de partage des jetons des N mémoires-tampons de jetons entre les N niveaux de priorité, un paquet de niveau de priorité i pouvant se voir attribuer des jetons d'une mémoire-tampon de jetons associée à un niveau de priorité j moins prioritaire lorsque les jetons disponibles dans la mémoire-tampon de jetons de niveau de priorité i ne sont pas suffisants.
Avantageusement, pour chaque niveau de priorité hormis le niveau de priorité le plus prioritaire, lesdits moyens de partage comprennent des moyens de garantie d'une quantité de jetons réservés exclusivement aux paquets possédant ledit niveau de priorité. L'invention concerne encore un équipement réseau comprenant un dispositif de contrôle tel que précité, ledit équipement réseau appartenant au groupe comprenant : des équipements réseau situés entre un réseau d'un fournisseur d'application ou de service et un réseau d'un fournisseur d'un service réseau, constituant ledit réseau en entrée duquel est effectué le contrôle d'un trafic de paquets de données ; - des routeurs compris dans des nœuds d'un réseau d'un fournisseur d'un service réseau, constituant ledit réseau en entrée duquel est effectué le contrôle d'un trafic de paquets de donnéesPreferably, said method comprises means for sharing the tokens of the N token buffer memories between the N priority levels, a packet of priority level i being able to be allocated tokens from a token buffer associated with a lower priority level j when the tokens available in the token buffer of priority level i are not sufficient. Advantageously, for each priority level apart from the highest priority level, said sharing means comprise means for guaranteeing a quantity of tokens reserved exclusively for packets having said priority level. The invention also relates to network equipment comprising a control device as mentioned above, said network equipment belonging to the group comprising: network equipment located between a network of an application or service provider and a network of a provider of 'a network service, constituting said network at the input of which is carried out the control of a data packet traffic; - routers included in nodes of a network of a network service provider, constituting said network at the input of which is carried out the control of a traffic of data packets
D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante d'un mode de réalisation préférentiel de l'invention, donné à titre d'exemple indicatif et non limitatif, et des dessins annexés, dans lesquels : la figure 1 présente un exemple d'architecture de réseaux dans laquelle peut être mis en œuvre le procédé de contrôle de trafic selon l'invention ; la figure 2 illustre un mode de réalisation particulier du procédé selon l'invention, mettant en œuvre deux fonctions, basées sur l'utilisation respectivement d'un seau à jetons multi-niveau et un seau à jetons à niveau unique ; la figure 3 illustre un régulateur gérant un niveau de fonctionnement du seau à jetons multi-niveau illustré sur la figure 2, ainsi que l'utilisation dans ce régulateur d'un paramètre Kj garantissant un minimum de ressource pour le niveau de priorité associé à ce régulateur ; la figure 4 illustre un exemple d'attribution de jetons dans le cas où le fonctionnement du seau à jetons multi-niveau est décrit avec des mémoires- tampons (buffers) indépendantes ; la figure 5 illustre un exemple d'attribution de jetons dans le cas où le fonctionnement du seau à jetons multi-niveau est décrit avec des mémoires- tampons (buffers) corrélées.
L'invention concerne donc un procédé de contrôle d'un trafic de paquets de données en entrée d'un réseau. Le trafic est du type comprenant N flux et/ou sous-flux associés chacun à un niveau de priorité, avec N > 2. Chacun des paquets est marqué avec le niveau de priorité associé au flux ou sous-flux auquel il appartient. A titre d'exemple, l'invention permet de transmettre en priorité les informations essentielles d'un flux vidéo, ou de plusieurs flux vidéo regroupés dans un agrégat. Selon la nature du flux, cette distinction est par exemple possible soit par les images de type IBP (voir définition ci-dessus), soit par les n couches d'un flux hiérarchique. Si dans le premier cas le débit moyen des images I reste faible devant le débit global, dans le second cas l'information la plus importante et à protéger au maximum est définie par la fraction du débit global occupé par la couche de base, et pouvant représenter jusqu'à 50% du flux. En général, la couche de base est la seule à contenir les informations de références contenues dans les images I.Other characteristics and advantages of the invention will appear on reading the following description of a preferred embodiment of the invention, given by way of non-limiting example, and the accompanying drawings, in which: FIG. 1 presents an example of network architecture in which the traffic control method according to the invention can be implemented; FIG. 2 illustrates a particular embodiment of the method according to the invention, implementing two functions, based on the use respectively of a multi-level token bucket and a single-level token bucket; FIG. 3 illustrates a regulator managing an operating level of the multi-level token bucket illustrated in FIG. 2, as well as the use in this regulator of a parameter K j guaranteeing a minimum of resource for the priority level associated with this regulator; FIG. 4 illustrates an example of allocation of tokens in the case where the operation of the multi-level token bucket is described with independent buffer memories (buffers); FIG. 5 illustrates an example of allocation of tokens in the case where the operation of the multi-level token bucket is described with correlated buffers. The invention therefore relates to a method for controlling data packet traffic entering a network. The traffic is of the type comprising N streams and / or substreams each associated with a priority level, with N> 2. Each of the packets is marked with the priority level associated with the stream or substream to which it belongs. By way of example, the invention makes it possible to transmit, as a priority, the essential information of a video stream, or of several video streams grouped in an aggregate. Depending on the nature of the flow, this distinction is for example possible either by IBP type images (see definition above), or by the n layers of a hierarchical flow. If in the first case the average bit rate of the images I remains low compared to the global bit rate, in the second case the most important information and to be protected as much as possible is defined by the fraction of the global bit rate occupied by the base layer, and which can represent up to 50% of the flow. In general, the base layer is the only one to contain the reference information contained in the images I.
Dans un agrégat, toutes les données de même niveau de priorité subissent le même traitement. Par exemple, tous les flux de base ou toutes les images I sont traités comme un seul flux de débit plus important qu'une vidéo seule.In an aggregate, all data with the same priority level is treated the same. For example, all basic streams or all I frames are treated as a single higher bit rate stream than a single video.
On présente maintenant, en relation avec la figure 1, un exemple d'architecture de réseaux dans laquelle peut être mis en œuvre le procédé de contrôle de trafic selon l'invention. Dans cet exemple, on considère le cas de fournisseurs de service (ISP, pourWe now present, in relation to FIG. 1, an example of network architecture in which the traffic control method according to the invention can be implemented. In this example, we consider the case of service providers (ISP, for
« Internet Service provider ») offrant un service de transmission de vidéo en mode continu (« streaming »)."Internet Service provider") offering a streaming video transmission service.
L'exemple d'architecture (simplifiée) illustrée sur la figure 1 comprend :The example of (simplified) architecture illustrated in Figure 1 includes:
- un réseau IP de type « DiffServ » 1, géré par un opérateur réseau (aussi appelé fournisseur du service réseau, ou NSP (pour « Network service- an IP network of type "DiffServ" 1, managed by a network operator (also called network service provider, or NSP (for "Network service
Provider »)) et comprenant une pluralité de routeurs 2{ à 25 compris dans des nœuds du réseau IP ;Provider ")) and comprising a plurality of routers 2 { to 2 5 included in nodes of the IP network;
- deux réseaux de fournisseurs de service « streaming » 3 et 4, l'un comprenant deux serveurs 5 et 6, et l'autre un serveur 7. Chaque réseau de fournisseurs de service 3, 4 comprend en outre un équipement d'extrémité 8, 9 connecté à l'un des routeurs du réseau IP, appelé routeur d'extrémité (« edge routeur »)
2,, qui est chargé d'envoyer les données d'un serveur vers une artère principale d'un cœur de réseau IP ;- two networks of “streaming” service providers 3 and 4, one comprising two servers 5 and 6, and the other a server 7. Each network of service providers 3, 4 also comprises end equipment 8 , 9 connected to one of the routers on the IP network, called the edge router 2 ,, which is responsible for sending data from a server to a main route of an IP core network;
- deux terminaux clients 10 et 11, chacun connecté au réseau IP 1 par exemple via un lien ADSL 12, 13. On suppose qu'il existe deux contrats de trafic (symbolisés par les flèches référencées SLAl et SLA2 respectivement sur la figure 1) : l'un entre l'opérateur du réseau IP 1 et le fournisseur de service dont le réseau est référencé 3, et l'autre entre l'opérateur du réseau IP 1 et le fournisseur de service dont le réseau est référencé 4.- two client terminals 10 and 11, each connected to the IP network 1 for example via an ADSL link 12, 13. It is assumed that there are two traffic contracts (symbolized by the arrows referenced SLAl and SLA2 respectively in FIG. 1): one between the operator of the IP network 1 and the service provider whose network is referenced 3, and the other between the operator of the IP network 1 and the service provider whose network is referenced 4.
Le procédé selon l'invention est mis en œuvre dans un équipement réseau formant un conditionneur de trafic pour l'entrée dans le réseau IP 1. Cet équipement réseau peut être situé entre le réseau du fournisseur du service 3, 4 et le réseau IP 1 :The method according to the invention is implemented in network equipment forming a traffic conditioner for entry into the IP network 1. This network equipment can be located between the network of the service provider 3, 4 and the IP network 1 :
- soit dans l'un des équipements d'extrémité 8, 9 des réseaux de fournisseurs de service 3 et 4 ;- either in one of the end devices 8, 9 of the networks of service providers 3 and 4;
- soit dans le routeur d'extrémité 2, du réseau IP 1. L'équipement réseau implémentant le procédé selon l'invention peut également être tout routeur placé au niveau d'un point de congestion dans le réseau (en particulier pour tout accès à un lien ADSL).- or in the end router 2, of the IP network 1. The network equipment implementing the method according to the invention can also be any router placed at a congestion point in the network (in particular for any access to an ADSL link).
On présente maintenant, en relation avec la figure 2, un mode de réalisation particulier du procédé selon l'invention. Il permet de protéger les informations importantes des rafales et apporter des solutions à l'antinomie entre l'optimisation d'un flux vidéo contenant des rafales et le lissage des rafales pour un transport de qualité dans le réseau.We now present, in relation to FIG. 2, a particular embodiment of the method according to the invention. It protects important information from bursts and provides solutions to the contradiction between optimizing a video stream containing bursts and smoothing the bursts for quality transport in the network.
Dans ce mode de réalisation particulier du procédé selon l'invention, le mécanisme d'ensemble forme un « conditionneur de trafic décentralisé multi-couche » appelé «MLDTC » (pour « Multi-Layers Decentralized Traffic Conditioner »). Il est constitué de deux fonctions exécutées séquentiellement :In this particular embodiment of the method according to the invention, the overall mechanism forms a “multi-layer decentralized traffic conditioner” called “MLDTC” (for “Multi-Layers Decentralized Traffic Conditioner”). It consists of two functions executed sequentially:
- la première est appelée « MLTR » (pour « Multi-Layers Traffic Regulator ») du fait qu'elle forme un « régulateur de trafic multi-couche ». Elle assure le contrôle de rafales par niveau hiérarchique. Elle est basée sur la mise en œuvre d'un seau à jetons à N niveaux de fonctionnement (référencé 30), avec- the first is called "MLTR" (for "Multi-Layers Traffic Regulator") because it forms a "multi-layer traffic regulator". It provides burst control by hierarchical level. It is based on the implementation of a token bucket with N operating levels (referenced 30), with
N buffers (mémoires-tampons) de jetons virtuels. Chaque buffer de jetons
correspond à un niveau hiérarchique. Chaque niveau de fonctionnement est défini par un jeu de paramètres (voir discussion détaillée ci-après). La fonction MLTR assure l'attribution de jetons en fonction de la priorité du paquet entrant et de la ressource disponible dans le buffer de jetons correspondant. Dans l'exemple de la figure 2, on a N = 3 et la représentation de trois seaux indique uniquement la distinction des trois jeux de paramètresN buffers of virtual tokens. Each token buffer corresponds to a hierarchical level. Each operating level is defined by a set of parameters (see detailed discussion below). The MLTR function allocates tokens according to the priority of the incoming packet and the resource available in the corresponding token buffer. In the example in Figure 2, we have N = 3 and the representation of three buckets only indicates the distinction of the three sets of parameters
(il n'y a en réalité qu'un seul seau à trois niveaux de fonctionnement) ;(there is actually only one bucket with three operating levels);
- la seconde est appelée « TBTS » (pour « Token Bucket Traffic Shaper ») du fait qu'elle est basée sur un algorithme de type seau à jetons à niveau unique (« Token Bucket ») (référencé 31) et exécute un lissage du trafic pour un écoulement régulier sur le réseau en limitant le débit instantané à une valeur acceptable par le réseau. La mémoire tampon de la fonction TBTS est de capacité raisonnable pour garantir un coût moindre des systèmes et un temps de transfert limité dans la fourniture de l'information à l'usager. La contrepartie de la taille finie est la limitation des rafales acceptées en entrée du réseau.- the second is called “TBTS” (for “Token Bucket Traffic Shaper”) because it is based on a single-level token bucket algorithm (“Token Bucket”) (referenced 31) and performs a smoothing of the traffic for a regular flow on the network by limiting the instantaneous flow to a value acceptable by the network. The TBTS function buffer is of reasonable capacity to guarantee a lower cost of the systems and a limited transfer time in the supply of information to the user. The counterpart of the finite size is the limitation of the bursts accepted at the input of the network.
La fonction MLTR est adaptée à l'acceptation différentiée des rafales en fonction du niveau de priorité. Elle s'applique aux paquets IP (référencés 20 à 26 sur la figure 2) dont le champ DSCP (« Differentiated Services Code point ») est marqué soit par la source, soit par un système de classification. Chaque niveau de priorité i dispose de ses propres paramètres, pour un tampon unique, commun aux 3 niveaux, mais avec des niveaux d'acceptation des paquets de données variables. Ce mécanisme répond aux attentes d'un signal vidéo, car il ne traite pas uniformément toutes les informations. En effet, on rappelle qu'un codage MPEG aboutit à plusieurs niveaux d'informations qu'il convient de traiter différemment selon leur importance. L'objectif est de favoriser les rafales d'un niveau i par rapport à un niveau j, dont les informations sont moins importantes (j > i). Les paquets relatifs au niveau i ont alors la priorité pour exploiter les ressources disponibles.The MLTR function is adapted to the differentiated acceptance of bursts according to the priority level. It applies to IP packets (referenced 20 to 26 in Figure 2) whose DSCP (“Differentiated Services Code point”) field is marked either by the source or by a classification system. Each priority level i has its own parameters, for a single buffer, common to the 3 levels, but with varying levels of acceptance of data packets. This mechanism meets the expectations of a video signal, since it does not process all information uniformly. Indeed, it is recalled that an MPEG coding results in several levels of information which should be treated differently according to their importance. The objective is to favor the bursts of a level i compared to a level j, whose information is less important (j> i). The packets relating to level i then have priority to exploit the available resources.
Grâce à la fonction TBTS, le même débit moyen est obtenu pour des tailles de rafales différentes, et tenant compte de l'intervalle les séparant. Un tel mécanisme est
bien adapté aux rafales des flux vidéo, qui sont variables, en raison de la grande diversité des contenus transportés (sports, actualités, paysages, ...).Thanks to the TBTS function, the same average bit rate is obtained for different burst sizes, and taking into account the interval separating them. Such a mechanism is well suited to bursts of video streams, which are variable, due to the great diversity of content transported (sports, news, landscapes, ...).
On présente maintenant de façon détaillée un exemple de réalisation de la fonction MLTR, qui assure la régulation et le contrôle de rafales. Dans la suite de la description, on étudie à titre d'exemple le cas où cette fonction MLTR est basée sur un seau à jetons à trois niveaux de fonctionnement (N = 3).An exemplary embodiment of the MLTR function is now presented in detail, which provides regulation and control of bursts. In the following description, we study by way of example the case where this MLTR function is based on a token bucket with three operating levels (N = 3).
Comme illustré sur la figure 3, chaque niveau de fonctionnement i du seau à jetons à trois niveaux de fonctionnement 30 est géré par un régulateur bj , bm;), i E {1, 2, 3}, avec : - le débit nominal de ce régulateur ;As illustrated in FIG. 3, each operating level i of the token bucket with three operating levels 30 is managed by a regulator bj, bm ; ), i E {1, 2, 3}, with: - the nominal flow of this regulator;
- bmj la taille maximale du buffer de jetons de ce régulateur ;- bm j the maximum size of the token buffer for this regulator;
- bj(t) la valeur instantanée du remplissage du buffer de jetons de ce régulateur. La taille du buffer de jetons (b impose une taille maximale pour les rafales pour chaque niveau. La tolérance d'un régulateur de niveau i vis-à-vis des rafales de grande taille dépend de la taille du buffer de jetons b; et du débit .- b j (t) the instantaneous value of filling the token buffer of this regulator. The size of the token buffer (b imposes a maximum size for bursts for each level. The tolerance of a level regulator vis-à-vis large bursts depends on the size of the token buffer b ; and the debit .
Les paquets conformes (c'est-à-dire ceux à qui il a pu être attribué des jetons par le seau multi-niveau 30) sont placés dans un buffer de paquets à émettre 28, qui forme un moyen de gestion d'une file d'attente. Si un nombre insuffisant de jetons est disponible dans le seau multi-niveau, les paquets sont alors considérés comme non- conformes et sont éliminés. Ils sont jetés dans la poubelle référencée 27. Une autre option est de transmettre ces paquets avec une priorité plus faible. Cependant, le nouveau marquage des paquets pour leur attribuer une priorité plus faible augmente la probabilité de rejet de paquets dans les nœuds congestionnés.Compliant packets (i.e. those to which it has been possible to allocate tokens by the multi-level bucket 30) are placed in a buffer of packets to be sent 28, which forms a means of managing a queue wait. If an insufficient number of tokens is available in the multi-level bucket, the packets are then considered as non-compliant and are discarded. They are thrown in the trash referenced 27. Another option is to transmit these packets with a lower priority. However, re-marking packets to give them a lower priority increases the probability of packet rejection in congested nodes.
Pour favoriser les rafales des niveaux les plus prioritaires, les trois buffers de jetons, bl, b2 et b3 sont partagés entre les différents niveaux. En d'autres termes, un paquet de niveau de priorité i peut se voir attribuer des jetons d'un buffer de jetons associé à un niveau de priorité j moins prioritaire (j > i) lorsque les jetons disponibles dans le buffer de jetons de niveau de priorité i ne sont pas suffisants.To favor the bursts of the highest priority levels, the three token buffers, bl, b2 and b3 are shared between the different levels. In other words, a packet of priority level i can be allocated tokens from a token buffer associated with a priority level j of lower priority (j> i) when the tokens available in the buffer of level tokens of priority i are not sufficient.
Cependant, à cause de ce principe d'emprunt, les paquets de niveau i risquent d'utiliser toutes les ressources en jetons des niveaux moins prioritaires j. Ceci peut empêcher de garantir le débit nominal au niveau j au profit du niveau i. Comme illustré
sur la figure 3, la solution est de limiter cet emprunt par un paramètre Kj, propre au niveau j, et dont l'objectif est de protéger ce dernier des niveaux plus prioritaires en garantissant une quantité de ressources (jetons) réservées exclusivement aux paquets de niveau j. Par conséquent, le paramètre Kj garantit un seuil de remplissage des buffers de jetons au-dessous duquel les paquets d'un niveau plus prioritaire ne peuvent plus se servir. Le paramètre Kj du régulateur de niveau j est illustré sur la figure 3.However, because of this borrowing principle, packets of level i risk using all the token resources of lower priority levels j. This can prevent guaranteeing the nominal flow at level j in favor of level i. As illustrated in FIG. 3, the solution is to limit this borrowing by a parameter K j , specific to level j, the objective of which is to protect the latter from higher priority levels by guaranteeing a quantity of resources (tokens) reserved exclusively for packets of level j. Consequently, the parameter K j guarantees a threshold for filling the token buffers below which packets of a higher priority level can no longer be used. The parameter K j of the level regulator j is illustrated in Figure 3.
La valeur de Kj doit être choisie telle que bmj > Kj > MTU.The value of K j must be chosen such that bmj> K j > MTU.
Ceci revient à garantir pour les paquets de niveau j le débit nominal et des rafales limitées par Kj. Le cas particulier où Kj est adapté à la taille utile d'un paquet sur le réseau (MTU (« Maximum Transfer Unit », c'est-à-dire « taille maximale d'une unité élémentaire de transfert ») pour un réseau IP) correspond à une garantie du débit nominal rj pour le niveau j mais sans garantie de rafales. Les ressources en jetons pourraient être utilisées par les niveaux plus prioritaires.This amounts to guaranteeing for packets of level j the nominal bit rate and bursts limited by K j . The particular case where K j is adapted to the useful size of a packet on the network (MTU (“Maximum Transfer Unit”, ie “maximum size of an elementary transfer unit”) for a network IP) corresponds to a guarantee of the nominal flow rate r j for level j but without guarantee of gusts. Token resources could be used by higher priority levels.
Les trois jeux de paramètres définissant les trois niveaux de fonctionnement du seau à jetons multi-niveau peuvent être décrits :The three sets of parameters defining the three operating levels of the multi-level token bucket can be described:
- soit par une représentation de trois buffers indépendants, avec un usage partagé des ressources entre les trois niveaux ;- either by a representation of three independent buffers, with a shared use of resources between the three levels;
- soit par une représentation cumulée des ressources faisant mieux ressortir les priorités entre les niveaux et les interdépendances de fonctionnement provenant du partage des ressources.- or by a cumulative representation of resources, making it easier to highlight the priorities between the levels and the interdependencies of operation stemming from the sharing of resources.
Toutefois, ces représentations sont identiques dans leur fonctionnement. On présente maintenant, en relation avec la figure 4, une description du fonctionnement du seau à jetons multi-niveau avec des buffers (mémoires-tampons) indépendants. Le rechargement des buffers de jetons est calculé pour chacun des trois niveaux au moment de l'arrivée d'un nouveau paquet, en fonction du temps le séparant du paquet précédent.However, these representations are identical in their operation. We now present, in relation to FIG. 4, a description of the operation of the multi-level token bucket with independent buffers. The reloading of token buffers is calculated for each of the three levels when a new packet arrives, as a function of the time separating it from the previous packet.
(Équation 1)
La prise en compte du paquet arrivant de niveau i et de taille P, est obtenue par l'algorithme suivant : (mode paquets)(Equation 1) The incoming packet of level i and size P is taken into account by the following algorithm: (packet mode)
(Équation 2)(Equation 2)
La figure 4 est une représentation graphique de cet algorithme d'attribution de jetons dans le cas où le fonctionnement du seau à jetons multi-niveau est décrit avec des buffers indépendants. Elle montre l'usage possible des ressources bt, b2 et b3 pour chacun des niveaux. Les traits épais (référencés 41, 42 et 43) montrent le remplissage des buffers de jetons (c'est-à-dire le nombre de jetons disponibles) pour chacun des niveaux, et les flèches les ressources (c'est-à-dire les jetons) prises par les paquets entrants (PI, P2 ou P3) selon leur priorité.FIG. 4 is a graphic representation of this token allocation algorithm in the case where the operation of the multi-level token bucket is described with independent buffers. It shows the possible use of the resources b t , b 2 and b 3 for each of the levels. The thick lines (referenced 41, 42 and 43) show the filling of the token buffers (that is to say the number of tokens available) for each level, and the arrows the resources (that is to say tokens) taken by incoming packets (PI, P2 or P3) according to their priority.
On présente maintenant, en relation avec la figure 5, une description du fonctionnement du seau à jetons multi-niveau avec des buffers corrélés.We now present, in relation to FIG. 5, a description of the operation of the multi-level token bucket with correlated buffers.
Le fonctionnement avec trois régulateurs indépendants
i G {1, 2, 3}, est équivalent au fonctionnement avec trois régulateurs dépendants Bi Ri,BMi ) avec :Operation with three independent regulators i G {1, 2, 3}, is equivalent to operation with three dependent regulators B i R i , BM i ) with:
- Biψ) la valeur instantanée du remplissage du buffer de jetons virtuel relatif aux paquets de niveau i ;- Biψ) the instantaneous value of the filling of the virtual token buffer relating to the packets of level i;
- BMj la taille maximale du buffer de jetons virtuel relatif aux paquets de niveau i.- BM j the maximum size of the virtual token buffer relating to level i packets.
Les tailles de buffers de jetons par niveau sont obtenus par :
(Équation 3)
The sizes of token buffers per level are obtained by: (Equation 3)
Ce mode implique que : Bl ≥ B2 ≥ B3This mode implies that: Bl ≥ B2 ≥ B3
Le rechargement des buffers de jetons peut alors s'exprimer sous une forme équivalente à Equation 1 par :The reloading of token buffers can then be expressed in a form equivalent to Equation 1 by:
Bx (t +
B2 (t + T)= min[(b2 (t)+
min[(b3 (t)+
B3 (t + T ) = min[(&3 (t )+ r31 ) bm3 ]B x (t + B 2 (t + T) = min [(b 2 (t) + min [(b 3 (t) + B 3 (t + T) = min [(& 3 (t) + r 3 1) bm 3 ]
(Équation 4)(Equation 4)
Si on suppose que min[(ô1(t)+ r,.T')bmi.]= b,(t)+ r. , (Equation 4) devientIf we assume that min [(ô 1 (t) + r, .T ') bm i .] = B, (t) + r. , (Equation 4) becomes
Bx{t + T)= bx (t)+ b2 (t)+ b3 (t)+ (rx + r2 + r3 )l B2(t + τ)= b2(ή+ b3(t)+ (r2 + r3 )T B3(t + T)≈ b3(t)+ r3.TB x {t + T) = b x (t) + b 2 (t) + b 3 (t) + (r x + r 2 + r 3 ) l B 2 (t + τ) = b 2 (ή + b 3 (t) + (r 2 + r 3 ) TB 3 (t + T) ≈ b 3 (t) + r 3 .T
La figure 5 est une représentation graphique de l'algorithme d'attribution de jetons dans le cas où le fonctionnement du seau à jetons multi-niveau est décrit avec des buffers corrélés. Elle montre l'usage possible des ressources B,, B2 et B3 pour chacun des niveaux. De même que sur la figure 4, les traits épais (référencés 51, 52 et 53) montrent le remplissage des buffers de jetons (c'est-à-dire le nombre de jetons disponibles) pour chacun des niveaux, et les flèches les ressources (c'est-à-dire les jetons) prises par les paquets entrants (PI, P2 ou P3) selon leur priorité.FIG. 5 is a graphic representation of the token allocation algorithm in the case where the operation of the multi-level token bucket is described with correlated buffers. It shows the possible use of resources B ,, B 2 and B 3 for each of the levels. As in Figure 4, the thick lines (referenced 51, 52 and 53) show the filling of the token buffers (that is to say the number of tokens available) for each level, and the arrows the resources (i.e. tokens) taken by incoming packets (PI, P2 or P3) according to their priority.
Si les équations du rechargement traduisent exactement le même comportement pour les deux approches, le choix de l'attribution des jetons aux paquets à l'arrivée peut se réaliser par deux alternatives :If the reloading equations translate exactly the same behavior for the two approaches, the choice of the allocation of tokens to packets on arrival can be achieved by two alternatives:
- en mode discontinu (paquets): un paquet ne peut se servir que d'un seul régulateur ;- in batch mode (packets): a packet can only use one regulator;
- en mode continu (bits): un paquet peut se servir de plusieurs régulateurs à la fois.
Selon le fonctionnement en mode discontinu (paquets), la prise en compte de l'arrivée du paquet est obtenue par l'algorithme suivant :- in continuous mode (bits): a packet can use several regulators at the same time. According to the operation in discontinuous mode (packets), the taking into account of the arrival of the packet is obtained by the following algorithm:
Il est à noter que (Equation 2) et (Equation 5) sont équivalentes.Note that (Equation 2) and (Equation 5) are equivalent.
Dans ce mode de fonctionnement discontinu (paquets), un paquet est servi par les ressources du niveau correspondant au paquet (niveau i) ou d'un niveau moins prioritaire (niveau j). Il est à noter que ce fonctionnement n'est pas optimal, car un paquet entrant est rejeté même si la somme des ressources disponibles réparties sur les 3 niveaux est suffisante.In this discontinuous operating mode (packets), a packet is served by the resources of the level corresponding to the packet (level i) or of a lower priority level (level j). It should be noted that this operation is not optimal, since an incoming packet is rejected even if the sum of the available resources distributed over the 3 levels is sufficient.
Selon le fonctionnement en mode continu (bits), la prise en compte de l'arrivée du paquet est obtenue par l'algorithme suivant :
envoi;According to the operation in continuous mode (bits), the taking into account of the arrival of the packet is obtained by the following algorithm: shipment;
A priori ce mode de fonctionnement continu (bits) est plus optimal que le mode discontinu (paquets). En effet, il permet une utilisation maximale de ressources propres du niveau avant de demander des ressources à un niveau moins prioritaire.A priori this continuous operating mode (bits) is more optimal than the discontinuous mode (packets). Indeed, it allows maximum use of own resources of the level before requesting resources at a lower priority level.
On présente maintenant de façon détaillée un exemple de réalisation de la fonction TBTS qui assure la mise en forme du trafic.We now present in detail an embodiment of the SELV function which provides traffic shaping.
Le seau à jetons à niveau unique 31, sur lequel est basé cette fonction TBTS, est par exemple défini par les paramètres suivants :The single-level token bucket 31, on which this SELV function is based, is for example defined by the following parameters:
- R, le débit moyen ;- R, the average flow;
- Rmax, le débit maximal à la sortie ;- R max , the maximum flow at the outlet;
- B(t), la valeur instantanée du remplissage du buffer de jetons (Bmax est la taille maximale du buffer de jetons) ;- B (t), the instantaneous value of filling the token buffer (B max is the maximum size of the token buffer);
- S, la valeur instantanée du remplissage du buffer de paquets 28 (Smax est la taille maximale du buffer de paquets 28) ;
- T, le temps séparant l'arrivée de deux paquets consécutifs ;- S, the instantaneous value of filling the packet buffer 28 (S max is the maximum size of the packet buffer 28); - T, the time between the arrival of two consecutive packets;
- τ, la durée d'une rafale de paquets.- τ, the duration of a burst of packets.
Les paquets conformes (c'est-à-dire ceux à qui il a pu être attribué des jetons par le seau à niveau unique 31) sont transmis alors que les paquets non-conformes sont retardés dans le buffer de paquets 28 pour les contenir dans l'enveloppe de trafic ciblé. La taille du buffer de paquets 28 est à manipuler avec précaution car elle peut induire un délai supplémentaire, qui doit rester raisonnable.Compliant packets (i.e. those to which it was possible to allocate tokens by the single-level bucket 31) are transmitted while non-compliant packets are delayed in the packet buffer 28 to contain them in the targeted traffic envelope. The size of the packet buffer 28 should be handled with care because it can induce an additional delay, which must remain reasonable.
Le fonctionnement du seau à niveau unique 31 (et donc de la fonction TBTS) peut être décrit par les équations suivantes :The operation of the single-level bucket 31 (and therefore of the SELV function) can be described by the following equations:
B(t + τ)= min[(B(t)+R.τ)Bm B (t + τ) = min [(B (t) + R.τ) B m
L.ï ≤ L, + ϋ.τ →τ ≤ - 5raax L.ï ≤ L, + ϋ.τ → τ ≤ - 5raax
La prise en compte du paquet P; est obtenue par l'algorithme suivant :Taking account of the P package ; is obtained by the following algorithm:
Si on considère rmax, le débit maximal à la sortie de la fonction MLTR, l'évolution du remplissage du buffer de paquets 28 entre l'arrivée de deux paquets consécutifs peut être décrit par l'équation suivante :If we consider r max , the maximum bit rate at the output of the MLTR function, the evolution of the filling of the packet buffer 28 between the arrival of two consecutive packets can be described by the following equation:
S(t + τ)≤ S(t)-Bmm + (rmsx -R)TS (t + τ) ≤ S (t) -B mm + (r msx -R) T
et S(t)-R.T-Bmm ≤ S(t + τ)≤ S{t)+ (rmax -R)τ
and S (t) -RT-B mm ≤ S (t + τ) ≤ S {t) + (r max -R) τ