Passa al contenuto principale

II Strutture dati

  1. Tabella delle connessioni

  2. Tabella dei processi

  3. Tabella dei collegamenti di ingresso

  4. Tabella dei collegamenti di uscita

  5. Tabella di assegnazione dei collegamenti

Tabella delle connessioni​

Questa contiene tutte le informazioni relative ai socket locali, in particolare se un socket è impegnato in una connessione e, in tal caso, in quale stato si trovi la connessione. Le voci sono indicizzate per socket locale, ma anche altre tabelle hanno puntatori verso questa tabella. (Vedere la Tabella dei processi, la Tabella dei collegamenti di ingresso e la Tabella dei collegamenti di uscita.)

Ciascuna voce contiene le seguenti informazioni:

  1. socket locale (chiave)

  2. socket remoto

  3. collegamento

  4. stato della connessione

  5. stato del flusso e controllo del buffer

  6. puntatore al processo dell'utente

  7. stato del controllo di riconnessione

  8. coda dei chiamanti in attesa

Il socket locale è un numero di 32 bit. Se non esiste alcuna voce per un particolare socket, essa può essere creata con valori nulli.

Il socket remoto è un numero di 40 bit. Questo campo sarà non assegnato se non è stabilita alcuna connessione.

Il collegamento è un numero di 8 bit ed è il collegamento sul quale i dati sono inviati dal mittente al destinatario. Un socket è un socket di ricezione se e solo se il suo bit di ordine inferiore è zero.

Lo stato della connessione si riferisce al fatto che una connessione sia aperta o meno, ecc. Possono verificarsi le seguenti possibilità.

  1. il processo locale ha richiesto una connessione

  2. il processo o i processi remoti hanno richiesto una connessione

  3. connessione stabilita

  4. riconnessione in corso

  5. chiusura in attesa

  6. riconnessione in attesa

Lo stato del flusso e il controllo del buffer si riferiscono alla verifica dell'invio dei RFNM e all'accettazione dei comandi di cessazione, sospensione e ripresa, e al tenere traccia dei dati in entrata o in uscita.

Un puntatore al processo dell'utente è necessario se il processo ha richiesto una connessione.

Se la riconnessione è in corso, è necessario tenere traccia della sequenza degli eventi. Un socket impegnato in una riconnessione è o un'estremità o un punto intermedio. Se è un punto intermedio, è necessario memorizzare il nome di otto bit dell'altro punto intermedio collegato allo stesso processo, e registrare la ricezione dei comandi END e RDY.

Infine, se dei comandi RFC vengono ricevuti sia quando il socket è occupato sia quando nessun processo lo ha impegnato, i comandi RFC sono accodati in ordine first-in-first-out su una coda per il socket locale indicato.

Tabella dei processi​

Questa tabella associa un processo a un socket. È usata per elaborare le chiamate di sistema.

Tabella dei collegamenti di ingresso​

Questa tabella associa i collegamenti di ricezione ai socket locali. È usata per decidere a chi sono destinati i messaggi in arrivo.

Tabella dei collegamenti di uscita​

Questa tabella associa i collegamenti di invio ai socket locali. È usata per interpretare i RFNM e i comandi RSM.

Tabella di assegnazione dei collegamenti​

I collegamenti sono assegnati dai destinatari. Questa tabella mostra quali collegamenti sono liberi.