C’est avant tout une séquence de règles à suivre dans les télécommunications afin d’établir des liaisons téléinformatiques standardisées. Un des organisme les plus connu, le CCITT (Voir CCITT) a déterminé plusieurs types de protocoles à utiliser. C’est en général un ensemble de commandes spécifiques.
Protocoles de transfert de fichiers
Un protocole de transfert de fichiers assure non seulement l’envoi et la réception des données, mais également leur intégrité. Si tout ou une partie d’un fichier est mal reçu par le module récepteur, le module émetteur procède à une retransmission automatique des données concernés. Un protocole de transfert se compose ainsi de deux programmes fonctionnant chacun sur une extrémité de la liaison. Dans le détail, on s’aperçoit aussi que les modules émetteur et récepteur du protocole procèdent d’abord à une synchronisation de la communication avant d’effectuer le transfert du fichier proprement dit. Il existe ainsi une multitude de protocoles distincts, répondant chacun à des conditions matérielles et à des besoins précis.
L’efficacité permet de comparer les différents protocoles. c’est le rapport de (10 x nombre d’octets transférés par seconde) par (la vitesse de transfert de la ligne en bit/s). Ainsi un transfert de 240 octets par seconde sur une liaison de 2400 bit/s aura une efficacité de (240 x 10)/(2400) = 1 ou 100%.
Caractéristiques de ces protocoles
(Ci-dessous les protocoles les plus connus et les plus utilisés. Vous trouverez aussi une documentation relativement précise sur les principes, l’historique et les fiches techniques des différents protocoles. De plus, un certain nombre de protocoles Sharewares et Freewares distribués sur les BBS et différents autres serveurs télématiques).
KERMIT
Développé par Frank Da Cruz en 1980, issu des laboratoires de l’université de Columbia à New York, Kermit est certainement le protocole de transfert de fichiers le plus répandu dans le monde. Sa polyvalence et le nombre impressionnant de ses implémentations en font un véritable standard de communication entre ordinateurs, de types et de marques différents. Kermit existe sur PC, Macintosh, Atari, Amiga, système CP/M, système Unix, Vax, IBM … Le protocole Kermit autorise le transfert de fichiers binaires sur une liaison 7 bits grâce à un codage interne, l’intégrité de chaque paquet de données étant assurée par un système de checksum. L’envoi d’un entête contenant le nom et la taille du fichier permet le transfert de plusieurs fichiers dans une seule requête. De plus le mode « Kermit Server » autorise les transferts automatiques, le Kermit récepteur donnant lui même l’ordre d’envoi de fichiers à l’émetteur par exemple. Un système d’initialisation entre les Kermit permet également à deux versions différentes de trouver un plus petit commun dénominateur de leurs fonctionnalités respectives. Ainsi les versions les plus récentes du protocole peuvent toujours procéder à des transferts de fichiers avec d’anciennes versions.
Kermit n’est pas pour autant la panacée. Prévu pour fonctionner indifféremment sur des liaisons 7 ou 8 bits, le protocole a recours à un codage assez complexe pour transmettre les données binaires. Bien qu’un système de compression simplifié des données soit utilisé, ses performances sont médiocres (60% d’efficacité moyenne), et les divers artifices apparus au cours des années n’améliore pas son fonctionnement.
Malgré sa popularité, Kermit devenu une norme de fait, est peut efficace dans la réalité. Il reste cependant un standard que l’on trouvera sur beaucoup de plates-formes et de progiciels du marché (progiciels: Logiciels professionnels, développés pour une application précise, généralement coûteuse). Kermit est aussi le seul protocole largement disponible et faisant partie du domaine publique qui permette de réaliser un transfert de fichiers entre un mini et un micro mais également de tirer partie d’une liaison 7 bits.
XMODEM
L’un des premiers véritables protocoles de transfert de fichiers à voir le jour sur micro-ordinateur fut le désormais célèbre Xmodem. Sa première apparition remonte au mois d’août 1977 dans le logiciel modem écrit par Ward Christensen pour les systèmes CP/M. Le principe de transfert repose sur le découpage du fichier en blocs de 128 octets. Chaque bloc est envoyé sur la ligne, précédé de son numéro et suivi d’une somme de contrôle (checksum) des données qu’il contient. Le module de réception quant à lui enregistre ces paquets de données et compare le checksum reçu à la valeur calculée à partir du bloc reçu, afin de demander une éventuelle réémission. La seule restriction qui s’applique à Xmodem et ses dérivés est une impérative liaison 8 bits.
XMODEM-CRC
c’est une variante de Xmodem, qui utilise un polynôme de contrôle sur 16 bits, plus fiable, en lieu et place du classique checksum.
XMODEM-1K
souvent appelé à tort, Ymodem découpe le fichier à transmettre en bloc de 1 Ko, au lieu des 128 octets habituels.
YMODEM
ce protocole provient de l’optimisation de Xmodem, réalisées par Chuck Forsberg. Il utilise des blocs de 1Ko, mais peut repasser automatiquement à des blocs de 128 octets pour ajuster la taille du fichier transmis au plus près. De plus ce protocole possède la particularité de transférer un entête contenant le nom et la taille du fichier avant de procéder à l’envoi. Une variante, Ymodem-batch, utilise ce système pour transférer plusieurs fichiers lors d’une seule session.
YMODEM-G
L’apparition de modems dotés de systèmes de correction d’erreurs (MNP 4, V42) a donné naissance à de nouveaux protocoles. En effet le principe de checksum ou crc n’a plus de raison d’être puisque c’est le modem qui assure lui même l’intégrité des données. Si la double vérification n’a rien de gênant en soi, il en va autrement des délais qu’elle implique car le module émetteur attend d’avoir reçu un caractère d’acquittement (acknowledge) en provenance du récepteur avant de procéder à l’envoi du bloc de données suivant (ce n’est pas le cas avec Zmodem). Cette attente, bien que très courte nuit de manière importante aux performances du transfert. La principale différence avec le Ymodem classique réside dans le fait que les données sont envoyées au fil de l’eau, sans que le module émetteur n’attende d’acquittement. Les informations concernant le nom du fichier et le numéro du bloc transmis restent en revanche identiques. Ce protocole, ne comportant pas de contrôle / correction d’erreurs, doit être exclusivement utilisé avec des liaisons en MNP ou V42. Dans ce cas, c’est le modem qui se charge d’assurer la synchronisation de la communication grâce à ses buffers internes. Un modem V22 bis (2400 bit/s) utilisant le protocole MNP 4 ou 5 (ou V42 bis) devra donc communiquer à 4800 bit/s avec l’unité centrale pour que la compression des données se fasse sentir.
ZMODEM
conçu en 1986 par Chuck Forsberg, il possède des particularités propres qui le rendent tout à fait différents des Xmodem et Ymodem. Ainsi, Zmodem est spécialement étudié pour ne pas subir de dégradations de performances lorsque la transmission met en oeuvre un réseau de transmission par paquets (Transpac …). De plus la taille des paquets de données transmis peut varier pour assurer une meilleure optimisation. Zmodem fonctionne indifféremment sur une liaison half ou full duplex et autorise les transferts en « batch ». Zmodem met en oeuvre une nouvelle technique, celle du protocole « asynchrone ». Asynchrone parce que l’expéditeur n’attend pas la réponse du destinataire pour transmettre le bloc suivant, et que les blocs à retransmettre peuvent être indépendant de leur ordre de succession. Le gain est donc notable puisque le débit effectif en cas d’absence d’erreur rejoint le débit maximal. Mais la caractéristique marquante de Zmodem est son aptitude à reprendre un transfert de fichiers interrompu accidentellement sans avoir à tout recommencer (« Crash Recovery »).
SUPER ZMODEM
Même chose que Zmodem mais intégrant une interface graphique et un contrôle sensiblement plus efficace, mais un peu moins populaire.
ZEDZAP
Même chose que Zmodem, mais envoi des paquets maximum de 8 Ko. Utilisés surtout dans les mailers. Il est préférable d’utiliser une ligne de bonne qualité.
EFFICACITÉ COMPARÉE DES PRINCIPAUX PROTOCOLES
Transfert sans erreur d’un fichier compressé de 10 Ko sur une liaison V22 bis (2400 bit/s) 8 bits.
Protocole | Temps | Taux | efficacité |
Kermit * | 71s | 144 octets/s | 60% |
Xmodem | 50s | 203 octets/s | 85% |
Ymodem | 46s | 225 octets/s | 94% |
Zmodem | 45s | 230 octets/s | 96% |
Ymodem-G ** | 38s | 273 octets/s | 114% |
* Compression et « sliding windows » utilisés.
** protocole MNP 4 utilisé, vitesse PC-modem 4800 bit/s.
Les pauvres résultats enregistrés avec le protocole Kermit viennent, en partie, au fait que, même sur une liaison 8 bits Kermit n’utilise que 7 bits et procède donc à un codage des données, augmentant ainsi le nombre d’octets transmis.
De nombreux autres protocoles non documentés existent, ils n’apportent que peu de choses, et sont moins populaires. Ci-dessous une liste non exhaustive des protocoles que vous pourriez découvrir:
BI-MODEM
protocole bidirectionnel. Un des plus vieux protocole Bidirectionnel, ayant laissé place au fameux HS-LINK.
HS-LINK
protocole bidirectionnel permettant l’envoi de fichiers dans les deux sens simultanément et faire un chat en plus !
JMODEM
Un autre protocole bidirectionnel.
CMODEM, MEGALINK, PUMA, VFAST, RPC (Rockwel Protocole…), etc.
Protocoles moins populaires, mais parfois utilisés dans des cas bien précis.
Note sur le MINITEL (France et Europe)
Les utilisateurs de Minitel (France) utilisent des protocoles de transfert de données développés par quelques compagnies Françaises télématiques indépendantes. La norme du Minitel étant un peu spéciale, (vitesse 1200/75 bauds ou 75/1200 bauds) le modem doit être retourné afin de bénéficier de la vitesse maximum autorisée (1200 bauds) suivant si l’on envoi ou l’on reçoit un fichier (voir la norme V23). De bons logiciels utilisent cette norme comme TIMTEL ou OVERCOM de la société GOTO informatique (France) et ont très bien adapté le vidéotexte du Minitel et les nouvelles normes haut-graphiques que permettent le MINITEL-2 de France-Télécom et ces derniers logiciels.