# Commutation de paquets

La commutation de paquets, ou commutation par paquets, ou encore transmission par paquets, est une technique utilisée pour le transfert de données informatiques dans des réseaux spécialisés. Elle existe en deux grandes variantes : les datagrammes (données transmises sans connexions connues dans le réseau), et les circuits virtuels (données transmises avec connexions connues dans le réseau).
La commutation par paquets est une méthode de regroupement de données qui sont transmises sur un réseau numérique sous forme de paquets composés d'un en-tête et d'une charge utile. Les données de l'en-tête sont utilisées par le matériel de mise en réseau pour diriger le paquet vers sa destination où la charge utile est extraite et utilisée par le logiciel d'application. La commutation par paquets est la base première des communications de données dans les réseaux informatiques du monde entier.
La commutation de paquets s'oppose à la technique de la commutation de circuits, dans laquelle les terminaux entre lesquels transitent l'information sont physiquement connectés durant toute la durée d'une communication.

## Historique

Au début des années 1960, l'informaticien américain Paul Baran a développé le concept « Distributed Adaptive Message Block Switching » dans le but de fournir une méthode de routage efficace et tolérante aux pannes pour les messages de télécommunication dans le cadre d'un programme de recherche de la RAND Corporation, financé par le département de la Défense des États-Unis. Ce concept contrastait et contredisait les principes alors établis de pré-attribution de la largeur de bande d'un réseau, largement renforcée par le développement des télécommunications dans le système Bell aux États-Unis. Le nouveau concept a trouvé peu de résonance chez les personnes chargées de la mise en œuvre des réseaux, jusqu'au travail indépendant de l'informaticien britannique Donald Davies au National Physical Laboratory (Royaume-Uni) en 1965.
Le réseau du NPL est devenu opérationnel en 1969, suivi de l’Arpanet au même moment, constitutant les deux premiers réseaux à utiliser la commutation par paquets$^,$.
Davies est crédité d'avoir inventé le nom moderne de « commutation de paquets », dans un mode qu'on appellera plus tard datagramme, et d'avoir inspiré des réseaux réels de commutation par paquets dans la décennie suivante, ARPANET aux États-Unis puis dans le réseau expérimental Cyclades en France, cette fois en mode datagramme pur. La commutation de paquets a aussi été utilisée avant Internet dans le réseau public mondial fondé sur le standard des circuits virtuels X.25 du CCITT.

## Principe de fonctionnement

Cette technique de commutation est fondée sur le découpage des données pour permettre une utilisation rationnelle du réseau. En effet, contrairement à la commutation de circuits, les ressources ne sont réservées que durant leur utilisation effective (par exemple : le temps de transfert d'un paquet). Chaque paquet est composé d'un en-tête contenant des informations sur son contenu et sa destination, qui permet au commutateur d'aiguiller le paquet sur le réseau vers son point final.
La décision de commutation repose donc sur un des champs de la PDU (Protocol Data Unit, terme générique d'origine ISO désignant une trame, une cellule, un paquet, un datagramme, un segment, etc.), appelé étiquette, à acheminer : le commutateur qui reçoit une PDU, extrait l'étiquette et va rechercher dans sa table de commutation l'entrée qui correspond à l'interface sur laquelle il a reçu la PDU et à la valeur de l'étiquette. Ceci permet au commutateur de trouver le numéro de l'interface sur laquelle il va transmettre la PDU et, éventuellement, la nouvelle valeur de l'étiquette :
* En mode datagramme un nœud du réseau est appelé routeur. L'étiquette en question est l'adresse de destination contenue dans l'en-tête IP, et en principe elle ne change pas en cours de route (il y a des exceptions depuis l'introduction de la fonction NAT dans Internet). Il en va de même dans un commutateur Ethernet où l'étiquette est l'adresse MAC de destination. Moyennant la consultation d'une table de routage répétée à chaque paquet, un traitement non trivial, cela assure qu'une panne de routeur n'entraine pas la rupture des connexions qui le traversent (pourvu que la mise à jour des tables de routage en amont soit suffisamment rapide).
* En mode circuit virtuel, un nœud du réseau est appelé commutateur (service X.25, FR, ATM, MPLS). Il s'agit de mode connecté. L'étiquette identifie la connexion en cours parmi celles qui traversent le commutateur. À l'arrivée d'un paquet, l'étiquette entrante permet à chaque commutateur de trouver directement la liaison suivante à emprunter, ainsi que l'étiquette sortante à y mettre. Il utilise pour cela une correspondance enregistrée à l'établissement de la connexion. L'avantage en temps de traitement de ne pas consulter une table de routage à chaque paquet a pour contrepartie que la connexion devra être rétablie par son initiateur en cas de panne du commutateur (contrainte partagée en mode datagramme par les routeurs qui supportent la fonction NAT).

### Concept

Une définition simple de la commutation de paquets est :
« Le routage et le transfert de données au moyen de paquets adressés de sorte qu'un canal est occupé pendant la transmission du paquet seulement, et une fois la transmission terminée, le canal est mis à disposition pour le transfert d'autres trafics. »
La commutation par paquets permet de fournir des flux de données à débit binaire variable, réalisés sous forme de séquences de paquets, sur un réseau informatique qui alloue les ressources de transmission selon les besoins à l'aide de techniques de multiplexage statistique ou d'allocation dynamique de bande passante. Lorsqu'ils traversent les nœuds du réseau, tels que les commutateurs et les routeurs, les paquets sont reçus, mis en mémoire tampon, mis en file d'attente et transmis (stockés et transférés), ce qui entraîne une latence et un débit variables en fonction de la capacité de la liaison et de la charge de trafic sur le réseau.
La commutation par paquets contraste avec un autre paradigme de réseau principal, la commutation de circuits, une méthode qui pré-alloue de la bande passante du réseau, dédiée spécifiquement à chaque session de communication ; chacune ayant un débit binaire constant et une latence garantie entre les nœuds. Dans le cas des services facturables, comme les services de communication cellulaire de premières générations, la commutation de circuits était caractérisée par une redevance par unité de temps de connexion, même lorsque aucune donnée n'est transférée, tandis que la commutation par paquets peut être caractérisée par une redevance par unité d'information transmise, comme les caractères, les paquets ou les messages.
La communication en mode paquet peut être mise en œuvre avec ou sans nœuds de transfert intermédiaires (commutateurs de paquets ou routeurs). Les paquets sont normalement acheminés par les nœuds de réseau intermédiaires de manière asynchrone en utilisant la méthode du premier entré, premier sorti. Mais ils peuvent être acheminés selon une certaine planification pour rendre une file d'attente "équitable", soit pour la mise en forme du trafic soit pour une qualité de service différenciée ou garantie, comme une file d'attente équitable pondérée (WFQ)$^,$. Dans le cas d'un support physique partagé tels que la radio (Wi-Fi par exemple) ou l'Ethernet 10BASE5, les paquets peuvent être livrés selon un schéma de multiplexage à accès multiple.

## Circuits virtuels vs datagrammes

La comparaison technico-économique entre les circuits virtuels X.25, standardisés au CCITT en 1976, et les datagrammes IP, standardisés à l'IETF en 1981, a été l'objet de nombreux débats entre spécialistes parmi lesquels Louis Pouzin et Rémi Després, le principal responsable de la conception du réseau Transpac.