II Structures de données
-
Table des connexions
-
Table des processus
-
Table des liens d'entrée
-
Table des liens de sortie
-
Table d'attribution des liens
Table des connexions
Celle-ci contient toutes les informations relatives aux sockets locales, notamment si une socket est engagée dans une connexion et, le cas échéant, dans quel état se trouve la connexion. Les entrées sont indexées par socket locale, mais d'autres tables comportent aussi des pointeurs vers cette table. (Voir la table des processus, la table des liens d'entrée et la table des liens de sortie.)
Chaque entrée contient les informations suivantes :
-
socket locale (clé)
-
socket étrangère
-
lien
-
état de connexion
-
état de flux et contrôle du tampon
-
pointeur vers le processus de l'utilisateur
-
état de contrôle de reconnexion
-
file d'attente des appelants
La socket locale est un nombre de 32 bits. Si aucune entrée n'existe pour une socket donnée, elle peut être créée avec des valeurs nulles.
La socket étrangère est un nombre de 40 bits. Ce champ ne sera pas attribué si aucune connexion n'est établie.
Le lien est un nombre de 8 bits et c'est le lien sur lequel les données sont envoyées de l'émetteur au récepteur. Une socket est une socket de réception si et seulement si son bit de poids faible est zéro.
L'état de connexion indique si une connexion est ouverte ou non, etc. Les possibilités suivantes peuvent se présenter.
-
le processus local a demandé une connexion
-
un ou plusieurs processus étrangers ont demandé une connexion
-
connexion établie
-
reconnexion en cours
-
fermeture en attente
-
reconnexion en attente
L'état de flux et le contrôle du tampon consistent à contrôler les RFNM, à envoyer et accepter les commandes d'arrêt, de suspension et de reprise, et à suivre les données entrantes ou sortantes.
Un pointeur vers le processus de l'utilisateur est nécessaire si le processus a demandé une connexion.
Si une reconnexion est en cours, il est nécessaire de suivre la séquence des événements. Une socket engagée dans une reconnexion est soit une extrémité, soit un milieu. S'il s'agit d'un milieu, il est nécessaire de stocker le nom de huit bits de l'autre milieu rattaché au même processus et d'enregistrer la réception des commandes END et RDY.
Enfin, si des RFC sont reçues soit lorsque la socket est occupée, soit lorsqu'aucun processus ne l'a engagée, les RFC sont empilées selon le principe premier entré, premier sorti dans une file d'attente pour la socket locale nommée.
Table des processus
Cette table associe un processus à une socket. Elle sert à traiter les appels système.
Table des liens d'entrée
Cette table associe les liens de réception aux sockets locales. Elle sert à déterminer à qui sont destinés les messages entrants.
Table des liens de sortie
Cette table associe les liens d'émission aux sockets locales. Elle sert à interpréter les RFNM et les commandes RSM.
Table d'attribution des liens
Les liens sont attribués par les récepteurs. Cette table indique quels liens sont libres.