Résumé

  • Le RFC 1235 proposait de diffuser une seule fois un fichier identique à plusieurs clients, à partir d'essais de démarrage simultané sur un réseau radio expérimental.
  • Un poste écoutait d'abord un transfert déjà engagé; faute de trafic, il demandait le fichier entier. Après une interruption, il réclamait seulement les blocs qui lui manquaient.

Un serveur, trois postes sans disque, un même fichier de démarrage. Trois transferts privés répètent les mêmes données et occupent trois fois le serveur. Dans leur RFC 1235 de juin 1991, John Ioannidis et Gerald Maguire Jr. ont voulu exploiter la diffusion propre aux réseaux capables d'atteindre plusieurs destinataires à la fois. Le fichier part une fois; chaque machine récupère ce qu'elle a effectivement reçu.

Le protocole avait été conçu pour le démarrage simultané de postes sur un réseau radio expérimental. Les auteurs citaient aussi la mise à jour de logiciels sur plusieurs ordinateurs et l'envoi d'un objet partagé pendant un cours à distance. Même problème dans chaque cas : quelques serveurs, beaucoup de clients, des octets identiques. La répétition des conversations individuelles charge le serveur et le réseau sans ajouter d'information.

Avant d'écouter, le client obtient un billet de 32 bits associé au nom du fichier, à sa taille et à la taille des blocs. Un service adapté de type BOOTP ou TFTP peut fournir ce billet. Ce guichet de correspondance n'appartient pas au cœur du transfert CFDP. Une fois le billet obtenu, le poste cherche d'abord une émission portant le même numéro. S'il en trouve une, il s'y joint. S'il n'entend rien pendant le délai prévu, il envoie FULREQ pour demander la diffusion du fichier complet.

Le serveur émet alors des blocs UDP numérotés. Le client vérifie chacun d'eux et l'écrit à sa place dans le fichier local. Les postes ne commencent pas nécessairement au même instant; ils ne perdent pas nécessairement les mêmes paquets. Quand les données cessent d'arriver et que le fichier demeure incomplet, chaque client envoie PARREQ avec la liste de ses propres numéros manquants. Le déroulé à trois clients donné dans le RFC montre cette différence entre un envoi commun et trois états locaux.

La réparation a un coût temporel. Le serveur ignore une nouvelle demande pour le même fichier pendant qu'il est déjà en train de l'émettre; le client réessaie après attente. Les auteurs évitaient le contrôle de débit individuel, mal adapté à une émission commune, et préféraient espacer les paquets. Ils proposaient un intervalle proche du double du temps de transmission d'un paquet sur l'interface; dans leur expérimentation, des délais d'attente de six à huit fois ce temps fonctionnaient le mieux. Le poste le plus lent n'obtient pas une ligne privée pour réclamer que toute l'émission ralentisse.

Avec des blocs de 512 octets, la taille totale restait sous le minimum IP de 576 octets cité par le document. Le numéro de bloc sur 16 bits limitait alors le fichier logique à 32 Mo; des blocs de 1 024 octets portaient cette limite à 64 Mo. Le texte envisageait aussi la multidiffusion IP, quand elle serait plus répandue, pour épargner les machines qui n'avaient rien demandé mais entendaient la diffusion.

La notice de l'éditeur des RFC classe CFDP comme Experimental. Le document décrit des réalisations de référence sans fournir de mesure d'adoption ni prouver qu'un poste a achevé son démarrage. Le mécanisme raconte déjà une leçon de réseau : économiser l'envoi commun ne dispense pas de tenir dix, cent ou mille comptes de réception séparés.

Sources