RFC 2 - Logiciel hôte
- Statut: Inconnu
- Publié: avril 1969
- Stream: Legacy
- Errata: Errata de l'éditeur RFC
Informations sur le document
- RFC Number: 2
- Title: Host Software
- Authors: Bill Duvall (SRI)
- Date: April 1969
- Category: Unknown
Note : La page 1 du document original est manquante ; la source archivée porte les espaces réservés [unknown title] et [page 1 missing] là où la ligne de titre et tout texte d'ouverture auraient dû figurer. Le titre et l'auteur indiqués ci-dessus proviennent du catalogue du RFC Editor et du RFC 3, qui rapporte que les RFC 1 et RFC 2 sont tous deux intitulés HOST Software.
Résumé
RFC 2 décrit le logiciel hôte prévu pour l'ARPANET. Il définit trois types de liens — de contrôle, primaire et auxiliaire — et décrit comment chacun est établi, maintenu et libéré via le moniteur du réseau. Il spécifie ensuite la vérification des erreurs appliquée aux messages, les fonctions du moniteur qui gèrent l'entrée et la sortie et suivent l'état du réseau, les primitives exécutives qu'un programme utilisateur appelle pour ouvrir et utiliser des liens, ainsi que la procédure de vérification initiale prévue pour amener deux hôtes à communiquer.
Table des matières
- 1. Liens
- 1a. Liens de contrôle
- 1b. Liens primaires
- 1b1. Un utilisateur sur un HOST donné peut avoir exactement 1 lien primaire vers chacun des autres HOST du réseau.
- 1b1a. Le lien primaire doit être le premier lien établi entre un utilisateur d'un HOST et un autre HOST.
- 1b1b. Les liens primaires sont globaux pour un utilisateur, c'est-à-dire qu'un programme utilisateur peut ouvrir un lien primaire, et que ce lien reste ouvert jusqu'à ce qu'il soit spécifiquement fermé.
- 1b1c. Le lien primaire est traité par le HOST distant comme un téléscripteur connecté par un data-phone normal ou une ligne directe, c'est-à-dire que le HOST distant considère un lien primaire comme un utilisateur de téléscripteur normal.
- 1b1d. Le lien primaire est utilisé pour transmettre des informations de contrôle (utilisateur) au HOST distant, par exemple il sera utilisé pour se connecter à l'hôte distant (en utilisant la procédure de connexion standard de l'hôte distant).
- 1b1. Un utilisateur sur un HOST donné peut avoir exactement 1 lien primaire vers chacun des autres HOST du réseau.
- 1c. Liens auxiliaires
- 2. Manipulation des liens
- 2a. Liens de contrôle
- 2b. Liens primaires
- 2b1. Les liens primaires sont établis par un appel utilisateur ou exécutif au moniteur
- 2b1a. Le numéro d'identification réseau du HOST à relier doit être inclus dans l'appel
- 2b1b. Une tentative d'établir plus d'un lien primaire vers un HOST particulier sera considérée comme une erreur, et la requête sera rejetée par défaut
- 2b1c. Jeu de caractères de transmission standard
- 2b1d. (get link) Le protocole pour établir un lien vers le HOST B depuis le HOST A est le suivant
- 2b1d1. A sélectionne un lien actuellement inutilisé vers le HOST B dans ses tables d'allocation
- 2b1d2. A transmet un message de connexion de lien à B sur le lien 0.
- 2b1d3. A attend alors :
- 2b1d4. Si une communication concernant le lien est reçue de B, elle est examinée pour voir s'il s'agit de :
- 2b1d4a. Une vérification du lien de la part de B.
- 2b1d4a1. Cela entraîne un retour réussi du moniteur vers le demandeur. Le numéro de lien est renvoyé au demandeur, et le lien est établi.
- 2b1d4b. Une demande de B d'établir le lien. Cela signifie : que B essaie d'établir le même lien que A indépendamment de A.
- 2b1d4b1. Si le numéro d'identification réseau de A(Na) est supérieur à celui de B(Nb), alors A ignore la demande, et continue d'attendre la confirmation du lien de la part de B.
- 2b1d4b2. Si, en revanche, Na<Nb, A :
- 2b1d4b2a. Honore la demande de B d'établir le lien,
- 2b1d4b2b. Envoie la vérification comme requis,
- 2b1d4b2c. Abandonne sa propre demande, et répète le processus d'allocation.
- 2b1d4c. Une autre communication de B concernant le lien.
- 2b1d4c1. C'est une condition d'erreur, signifiant soit que :
- 2b1d4c1a. A a fauté en sélectionnant un lien déjà alloué pour l'allocation,
- 2b1d4c1b. B transmet des informations sur un lien non alloué,
- 2b1d4c1c. Soit qu'un message concernant l'allocation de B vers A a été brouillé en transmission.
- 2b1d4c2. Dans ce cas, l'action de A est de :
- 2b1d4c2a. Envoyer un message de déconnexion de lien à B concernant la connexion tentée
- 2b1d4c2b. Considérer l'état du HOST B comme étant en erreur et initier l'entrée dans une routine de panique (erreur).
- 2b1d5. Si aucune communication concernant le lien n'est reçue de B dans le délai prescrit, le HOST B est considéré comme étant dans un état d'erreur.
- 2b1. Les liens primaires sont établis par un appel utilisateur ou exécutif au moniteur
- 2c. Liens auxiliaires
- 2c1. Les liens auxiliaires sont établis par un appel au moniteur depuis un programme utilisateur.
- 2c1a. La requête doit spécifier au moniteur les données pertinentes concernant le lien souhaité
- 2c1b. La requête d'un lien auxiliaire doit être faite par un programme utilisateur dans chacun des HOST (A et B).
- 2c1c. Si Na > Nb, alors le HOST A procède à l'établissement d'un lien vers le HOST B de la manière décrite ci-dessus (getlink).
- 2c1d. Si Na<Nb, alors A attend :
- 2c1. Les liens auxiliaires sont établis par un appel au moniteur depuis un programme utilisateur.
- 3. Vérification des erreurs
- 3a. Tous les messages envoyés sur le réseau seront initialement soumis à une vérification d'erreur afin d'aider à isoler les bogues logiciels et matériels.
- 3b. Une somme de contrôle sera associée à chaque message, laquelle dépend de l'ordre.
- 3b1. L'algorithme suivant est l'un de ceux qui pourraient être utilisés :
- 3b1a. Une somme de contrôle de longueur 1 peut être formée en additionnant les champs successifs de la chaîne à vérifier en série, et en ajoutant le bit de report dans la position du bit le plus faible de la somme.
- 3b1a1. Ce processus est connu sous le nom de repliement.
- 3b1a2. Plusieurs champs peuvent être additionnés et repliés en parallèle, s'ils sont repliés de manière appropriée après l'addition.
- 3b1a3. Une somme de contrôle calculée de cette manière présente l'avantage que les longueurs de mot des différentes machines peuvent chacune être utilisées de manière optimale :
- 3b1a3a. Si une chaîne de longueur appropriée est choisie pour calculer la somme de contrôle, et qu'une longueur de champ de somme de contrôle appropriée est sélectionnée, la technique de somme de contrôle de chacune des machines sera relativement optimale.
- 3b1a3a1. Longueur du champ : 288 bits (plus petit dénominateur commun de (24,32,36)
- 3b1a3a2. Longueur de la somme de contrôle : 8 bits (taille de champ pratique pour toutes les machines)
- 3b1b. Si un message est divisé en groupes de champs, et que chaque groupe est soumis à une somme de contrôle de cette manière, une somme de contrôle dépendante de l'ordre peut être obtenue en décalant la somme de contrôle de chaque groupe, et en l'ajoutant (successivement) à la somme de contrôle du groupe suivant
- 3b1a. Une somme de contrôle de longueur 1 peut être formée en additionnant les champs successifs de la chaîne à vérifier en série, et en ajoutant le bit de report dans la position du bit le plus faible de la somme.
- 3b1. L'algorithme suivant est l'un de ceux qui pourraient être utilisés :
- 3c. Une facilité sera fournie permettant à deux HOST d'entrer dans un mode qui exige une vérification positive de tous les messages. Cette vérification est envoyée sur le lien de contrôle.
- 4. Fonctions du moniteur
- 4a. Pilotes I/O réseau
- 4a1. Entrée
- 4a1a. Message d'entrée provenant de l'IMP.
- 4a1b. Effectuer la vérification d'erreur sur le message.
- 4a1c. (trans)traduction de caractères
- 4a1c1. Il y a une forte possibilité que la traduction de caractères soit effectuée dans l'IMP.
- 4a1c2. Cela doit être approfondi avec BBN.
- 4a1c3. Il y a deux considérations principales
- 4a1c3a. La traduction doit-elle être effectuée par table ou par algorithme ?
- 4a1c3a1. Au départ, il semble que la meilleure approche soit la table.
- 4a1c3b. Comment devrions-nous décider quels messages doivent être traduits, c'est-à-dire est-il souhaitable de ne pas tout traduire (OUI !!) et par quels moyens pouvons-nous les différencier ?
- 4a1d. Décoder l'en-tête, et transmettre le message au destinataire correct identifié par la source et le lien.
- 4a2. Sortie
- 4a1. Entrée
- 4b. État du réseau
- 4b1. Maintenir l'état des autres HOST du réseau
- 4b2. Maintenir l'état des lignes de contrôle.
- 4b3. Répondre aux requêtes d'état des autres HOST.
- 4b4. Informer les autres HOST de l'état des liens primaires et auxiliaires sur une base d'interruption.
- 4b5. Informer les autres HOST de l'état des programmes utilisant les liens primaires et secondaires
- 4a. Pilotes I/O réseau
- 5. Primitives exécutives
- 5a. Liens primaires
- 5a1. Celles-ci exigent le numéro du HOST comme paramètre.
- 5b. Liens auxiliaires.
- 5c. Fonctions exécutives spéciales
- 5c1. Transparent. INPUT/OUTPUT sur le lien
- 5a. Liens primaires
- 6. Vérification initiale
Ressources associées
- Texte officiel : RFC 2
- DataTracker: RFC 2 Info
- Errata : RFC Editor Errata