RFC 2 - Software host
- Stato: Sconosciuto
- Pubblicato: aprile 1969
- Stream: Legacy
- Errata: Errata dell'editor RFC
Informazioni sul documento
- RFC Number: 2
- Title: Host Software
- Authors: Bill Duvall (SRI)
- Date: April 1969
- Category: Unknown
Nota: La pagina 1 del documento originale è mancante; la fonte archiviata contiene i segnaposto [unknown title] e [page 1 missing] dove si trovavano la riga del titolo e l'eventuale testo di apertura. Il titolo e l'autore indicati sopra sono tratti dal catalogo dell'RFC Editor e dal RFC 3, che registra che sia l'RFC 1 sia l'RFC 2 sono intitolati HOST Software.
Sommario
RFC 2 delinea il software host previsto per l'ARPANET. Definisce tre tipi di collegamenti — di controllo, primari e ausiliari — e descrive come ciascuno viene stabilito, mantenuto e rilasciato tramite il monitor di rete. Specifica poi il controllo degli errori applicato ai messaggi, le funzioni del monitor che gestiscono input e output e tengono traccia dello stato della rete, le primitive esecutive che un programma utente chiama per aprire e usare i collegamenti, e la procedura di verifica iniziale prevista per portare due host in comunicazione.
Indice
- 1. Collegamenti
- 1a. Collegamenti di controllo
- 1b. Collegamenti primari
- 1b1. Un utente su un dato HOST può avere esattamente 1 collegamento primario verso ciascuno degli altri HOST della rete.
- 1b1a. Il collegamento primario deve essere il primo collegamento stabilito tra un utente di un HOST e un altro HOST.
- 1b1b. I collegamenti primari sono globali per un utente, cioè un programma utente può aprire un collegamento primario e quel collegamento resta aperto finché non viene chiuso esplicitamente.
- 1b1c. Il collegamento primario è trattato dall'HOST remoto come un telescrivente collegato tramite un normale data-phone o una linea diretta, cioè l'HOST remoto considera un collegamento primario come un normale utente di telescrivente.
- 1b1d. Il collegamento primario è usato per trasmettere informazioni di controllo (dell'utente) all'HOST remoto, ad esempio sarà usato per effettuare il login sull'host remoto (con la procedura di login standard dell'host remoto).
- 1b1. Un utente su un dato HOST può avere esattamente 1 collegamento primario verso ciascuno degli altri HOST della rete.
- 1c. Collegamenti ausiliari
- 2. Manipolazione dei collegamenti
- 2a. Collegamenti di controllo
- 2b. Collegamenti primari
- 2b1. I collegamenti primari vengono stabiliti da una chiamata dell'utente o dell'executive al monitor
- 2b1a. Nella chiamata deve essere incluso il numero di identificazione di rete dell'HOST a cui collegarsi
- 2b1b. Un tentativo di stabilire più di un collegamento primario verso un particolare HOST sarà considerato un errore e la richiesta sarà respinta
- 2b1c. Set di caratteri standard per la trasmissione
- 2b1d. (get link) Il protocollo per stabilire un collegamento verso l'HOST B dall'HOST A è il seguente
- 2b1d1. A seleziona dalle proprie tabelle di allocazione un collegamento verso l'HOST B attualmente non usato
- 2b1d2. A trasmette a B un messaggio di connessione del collegamento sul collegamento 0.
- 2b1d3. A attende quindi:
- 2b1d4. Se da B viene ricevuta una comunicazione relativa al collegamento, la si esamina per stabilire se si tratta di:
- 2b1d4a. Una verifica del collegamento da parte di B.
- 2b1d4a1. Ciò comporta un ritorno con successo dal monitor al richiedente. Il numero del collegamento viene restituito al richiedente e il collegamento è stabilito.
- 2b1d4b. Una richiesta da B di stabilire il collegamento. Ciò significa che B sta cercando di stabilire lo stesso collegamento di A indipendentemente da A.
- 2b1d4b1. Se il numero di ID di rete di A (Na) è maggiore di quello di B (Nb), allora A ignora la richiesta e continua ad attendere la conferma del collegamento da B.
- 2b1d4b2. Se invece Na<Nb, A:
- 2b1d4b2a. Accoglie la richiesta di B di stabilire il collegamento,
- 2b1d4b2b. Invia la verifica come richiesto,
- 2b1d4b2c. Annulla la propria richiesta e ripete il processo di allocazione.
- 2b1d4c. Qualche altra comunicazione da B relativa al collegamento.
- 2b1d4c1. Questa è una condizione di errore, che significa che si è verificato uno dei seguenti casi:
- 2b1d4c1a. A ha commesso un errore selezionando per l'allocazione un collegamento già allocato,
- 2b1d4c1b. B sta trasmettendo informazioni su un collegamento non allocato,
- 2b1d4c1c. Oppure un messaggio da B ad A relativo all'allocazione è stato alterato durante la trasmissione.
- 2b1d4c2. In questo caso, l'azione di A è:
- 2b1d4c2a. Inviare a B un messaggio di disconnessione del collegamento relativo al tentativo di connessione
- 2b1d4c2b. Considerare lo stato dell'HOST B in errore e avviare l'ingresso in una routine di panico (error).
- 2b1d5. Se entro il tempo prescritto non si riceve da B alcuna comunicazione relativa al collegamento, l'HOST B è considerato in stato di errore.
- 2b1. I collegamenti primari vengono stabiliti da una chiamata dell'utente o dell'executive al monitor
- 2c. Collegamenti ausiliari
- 2c1. I collegamenti ausiliari vengono stabiliti da una chiamata al monitor effettuata da un programma utente.
- 2c1a. La richiesta deve specificare al monitor i dati pertinenti relativi al collegamento desiderato
- 2c1b. La richiesta di un collegamento ausiliario deve essere effettuata da un programma utente in ciascuno degli HOST (A e B).
- 2c1c. Se Na > Nb, l'HOST A procede a stabilire un collegamento verso l'HOST B nel modo sopra descritto (getlink).
- 2c1d. Se Na<Nb, A attende:
- 2c1. I collegamenti ausiliari vengono stabiliti da una chiamata al monitor effettuata da un programma utente.
- 3. Controllo degli errori
- 3a. Tutti i messaggi inviati sulla rete saranno inizialmente sottoposti a controllo degli errori in modo da aiutare a isolare i bug software e hardware.
- 3b. A ogni messaggio sarà associato un checksum, dipendente dall'ordine.
- 3b1. Il seguente algoritmo è uno di quelli che potrebbero essere usati:
- 3b1a. Un checksum di lunghezza 1 può essere formato sommando in serie i campi successivi della stringa da controllare e aggiungendo il bit di riporto nella posizione di bit più bassa della somma.
- 3b1a1. Questo processo è noto come folding.
- 3b1a2. Più campi possono essere sommati e sottoposti a folding in parallelo, se vengono piegati in modo appropriato dopo l'addizione.
- 3b1a3. Un checksum calcolato in questo modo ha il vantaggio che le lunghezze di parola delle diverse macchine possono essere sfruttate ciascuna in modo ottimale:
- 3b1a3a. Se si sceglie una stringa di lunghezza adeguata per calcolare il checksum e si seleziona una lunghezza adeguata del campo checksum, la tecnica di checksum sarà relativamente ottimale per ciascuna delle macchine.
- 3b1a3a1. Lunghezza del campo: 288 bit (minimo comune denominatore di (24,32,36)
- 3b1a3a2. Lunghezza del checksum: 8 bit (dimensione di campo comoda per tutte le macchine)
- 3b1b. Se un messaggio è diviso in gruppi di campi e ciascun gruppo è sottoposto a checksum in questo modo, si può ottenere un checksum dipendente dall'ordine spostando il checksum di ciascun gruppo e sommandolo (successivamente) al checksum del gruppo successivo
- 3b1a. Un checksum di lunghezza 1 può essere formato sommando in serie i campi successivi della stringa da controllare e aggiungendo il bit di riporto nella posizione di bit più bassa della somma.
- 3b1. Il seguente algoritmo è uno di quelli che potrebbero essere usati:
- 3c. Sarà fornita una funzionalità che consente a due HOST di entrare in una modalità che richiede la verifica positiva di tutti i messaggi. Tale verifica viene inviata sul collegamento di controllo.
- 4. Funzioni del monitor
- 4a. Driver di I/O di rete
- 4a1. Input
- 4a1a. Messaggio in input dall'IMP.
- 4a1b. Eseguire il controllo degli errori sul messaggio.
- 4a1c. Traduzione dei caratteri (trans)
- 4a1d. Decodificare l'header e passare il messaggio al destinatario corretto, identificato da sorgente e collegamento.
- 4a2. Output
- 4a1. Input
- 4b. Stato della rete
- 4b1. Mantenere lo stato degli altri HOST della rete
- 4b2. Mantenere lo stato delle linee di controllo.
- 4b3. Rispondere alle richieste di stato degli altri HOST.
- 4b4. Informare gli altri HOST sullo stato dei collegamenti primari e ausiliari su base di interrupt.
- 4b5. Informare gli altri HOST sullo stato dei programmi che usano i collegamenti primari e secondari
- 4a. Driver di I/O di rete
- 5. Primitive esecutive
- 5a. Collegamenti primari
- 5a1. Queste richiedono il numero dell'HOST come parametro.
- 5a1a. Stabilire un collegamento primario
- 5a1b. Collegare la telescrivente di controllo al collegamento primario
- 5a1c. INPUT/OUTPUT sul collegamento primario
- 5a1d. Interrogare lo stato del collegamento primario
- 5a1e. Scollegare la telescrivente di controllo dal collegamento primario
- 5a1f. Terminare il collegamento primario
- 5a1. Queste richiedono il numero dell'HOST come parametro.
- 5b. Collegamenti ausiliari.
- 5c. Funzioni esecutive speciali
- 5c1. Trasparente. INPUT/OUTPUT sul collegamento
- 5a. Collegamenti primari
- 6. Verifica iniziale
Risorse correlate
- Testo ufficiale: RFC 2
- DataTracker: RFC 2 Info
- Errata: RFC Editor Errata