Utenti Online:  | IP:  28/10/2002: Aggiornata la grafica del sito, by pCwArE ;))
Documentazione
Enciclopedia Lord Shinva
Guida protocollo TCP/IP

Security FAQ 1.0

RFC
Porte di connessione
Jargon file
E-zine

 

DISCLAIMER: Si ricorda che il Web Admin del sito ed il provider non si ritengono responsabili in nessun modo del cattivo utilizzo che chiunque dovesse fare di tutto il materiale contenuto nel sito. Lo scopo della Security Check Community è quello di condividere ed approfondire le conoscenze della comunità.

 

Votaci!!

Hacking/Documentazione
RFC 951
Network Working Group Bill Croft (Stanford University)

Request for Comments: 951 John Gilmore (Sun Microsystems)

September 1985

BOOTSTRAP PROTOCOL (BOOTP)

tradotto da Therbium (therbium@supereva.it) ver 0.01

1. Stato di questo promemoria

Questo RFC illustra un protocollo proposto per la comunità ARPA, e

richiede discussioni e suggerimenti per migliorie.

La distribuzione di questo file è senza limiti.

2. Descrizione

Questo RFC descrive il protocollo di bootstrap IP/UDP (BOOTP) che permette

ad una macchina senza dischi di scoprire il proprio indirizzo IP, l'indirizzo

del server e il nome del file che deve essere caricato nella memoria ed

eseguito. L'operazione di bootstrap può essere pensata come costituita

da due fasi. Questo RFC descrive la prima fase, che potrebbe essere

intitolata 'determinazione dell'indirizzo e selezione del file di bootstrap'.

Quando si conosce sia l'indirizzo che l'informazione del nome del file,

il controllo passa alla seconda fase di bootstrap dove occorre un trasferimento

di file. Il trasferimento di file userà tipicamente il protocollo TFTP [9],

entrambe le fasi risiedono nella PROM (Programmable ROM) del computer.

Comunque il BOOTP potrebbe anche funzionare con altri protocolli come

l'SFTP [3] o l'FTP [6].

Si informa che la PROM del computer client provvede un modo per un

bootstrap completo senza l'intervento dell'utente. Questo è un tipo di

boot che potrebbe occorrere durante un'accensione inattesa. Un modo

dovrebbe essere dato all'utente per inserire manualmente l'indirizzo ed

entrare direttamente nel trasferimento di file. Se è disponibile un

dispositivo di massa non volatile, suggeriamo di mantenere le impostazioni

di default e bypassare il protocollo BOOTP, a meno che queste impostazioni

siano sbagliate. Se l'informazione memorizzata fallisce, il bootstrap

dovrebbe tornare indietro alla fase 1 e usare BOOTP.

Ecco un breve riassunto del protocollo:

1. E' eseguito un singolo scambio di pacchetti. I timeout sono usati per

ritrasmettere fino a che è ricevuta una risposta. Lo stesso pacchetto è

utilizzato in entrambe le direzioni. Sono utilizzati campi a lunghezza fissa

(fino ad un massimo ragionevole) per semplificare la definizione della

struttura e il parsing (interpretazione).

2. Il campo del codice operativo (opcode) esiste con due valori. Il client

trasmette un pacchetto di richiesta boot (bootrequest). Quindi il server

invia un pacchetto di risposta di boot (bootreply). Il bootrequest contiene

l'indirizzo hardware del client e il suo indirizzo IP, se conosciuto.

3. La richiesta può a volte contenere il nome del server dal quale il client

vuole aver risposta. Questo è per forzare il boot su uno specifico host (es.

se esistono versioni multiple del file di boot o se il server è in un domino

molto distante). Il client non dovrebbe avere a che fare con servizi di nome/

dominio; questo dovrebbe essere inviato dal server di BOOTP.

4. La richiesta può a volte contenere il nome del file generico da lanciare.

Per esempio 'unix' o 'ethertip'. Quando il server invia la risposta bootreply,

rimpiazza questo campo con il nome di file completo di path. Per determinare

questo nome, il server potrebbe consultare il proprio database correlato con

l'indirizzo del client e il nome del file richiesto, per fornire il file

appropriato. Se il nome di file di boot è lasciato vuoto, il server dovrebbe

rispondere con il file di boot di default per quel client.

5. Nel caso che i client non abbiano il proprio indirizzo IP, il server

deve inoltre avere un database che correli l'indirizzo hardware all'IP.

Quindi il client userà l'indirizzo IP e lo inserirà nel campo del bootreply.

6. Alcune topologie di rete (come la Stanford) potrebbero non avere un server

TFTP direttamente disponibile per ogni collegamento fisico (es. tutti i gateways

e gli host su un certo cavo possono essere senza dischi). Con la cooperazione

delle gateway vicine, BOOTP può permettere ai client di partire da server

distanti molti nodi, attraverso queste vie. Guardare la sezione 'Booting

attraverso gateways'. Questa parte del protocollo non richiede azioni

speciali da parte del client. L'implementazione è opzionale e richiede solo

l'aggiunta di poco codice nelle gateway e nei server.

3. Formato dei pacchetti

Tutti i numeri sono in decimale, se non indicati diversamente. Il pacchetto

BOOTP è racchiuso in uno standard IP [8] o UDP [7]. Per semplicità è assunto

che il pacchetto BOOTP non è mai frammentato. Tutti i campi numerici sono

nell'ordine di byte standard per le reti (i bit di ordine più grande sono

trasmessi prima).

Nell'intestazione (header) dell'IP del bootrequest, il client riempe il campo

dell'IP col proprio se noto, altrimenti lo pone a zero. Quando l'indirizzo

del server è sconosciuto, l'IP di destinazione sarà l'indirizzo di 'broadcast'

255.255.255.255. Questo indirizzo significa trasmetti sul cavo locale [4].

L'header UDP contiene i numeri delle porte della sorgente e destinazione.

Il protocollo BOOTP usa due numeri di porte riservate, 'BOOTP client' (68)

e 'BOOTP server' (67). Il client invia la richiesta usando 'BOOTP server'

come porta di destinazione. Il server invia le risposte usando 'BOOTP client'

come porta di destinazione; dipendentemente dal kernel o driver del server,

questo potrebbe essere o no una trasmissione (broadcast) (questo è spiegato

dopo nella sezione 'Gallina/Uovo'). La ragione dell'uso di due porte è per

evitare il risveglio (waking up) e la schedulazione del daemon del server

BOOTP, quando la richiesta deve essere trasmessa al client. Se il server

e gli altri host non ascolteranno la porta 'BOOTP client', ogni trasmissione

di questo tipo sarà filtrata a livello di kernel. Non potremmo semplicemente

permettere al client di prendere un numero di porta casuale per la sorgente

UDP, perchè la risposta del server sulla porta casuale potrebbe confondere

gli altri host che ascoltano quella porta.

La lunghezza del campo UDP è impostata alla lunghezza dell'UDP più la porzione

BOOTP del pacchetto. Il campo del checksum UDP deve essere settato a zero

dal client (o server) se desiderato, per evitare il sovraccarico (overhead)

nell'implementazione su PROM. Nella sezione sotto di 'Processamento dei

pacchetti' la frase '[UDP checksum]' è usata ogni volta che il checksum

potrebbe essere verificato/calcolato.

CAMPO BYTES DESCRIZIONE

----- ----- -----------

op 1 codice operativo del pacchetto/tipo di messaggio.

1 = richiesta di BOOT, 2 = risposta di BOOT

htype 1 Tipo di indirizzo hardware

guardare la sezione 'numeri assegnati' RFC.

'1' = 10mb ethernet

hlen 1 lunghezza di indirizzo hardware

(esempio '6' per un ethernet a 10mb).

hops 1 client settati a zero,

usato opzionalmente dai gateways in boot attraverso di esse

xid 4 Identificativo (ID) di transazione, un numero casuale

usato per identificare questa richiesta di boot con le

risposte che genera.

secs 2 riempito dal client, secondi trascorsi da quando il client

ha iniziato il boot.

-- 2 inutilizzati

ciaddr 4 indirizzo IP del client

riempito dal client durante il bootrequest (se noto)

yiaddr 4 'il tuo' indirizzo IP del client

riempito dal server se il client non conosce l'indirizzo

siaddr 4 indirizzo IP del server

ritorna durante il bootreply dal server

giaddr 4 indirizzo IP del gateway

usato nei boot opzionali attraverso il gateway

chaddr 16 indirizzo hardware del client

riempito dal client

sname 64 indirizzo opzionale del server

stringa terminata dal carattere null

file 128 nome del file di boot, (terminata con null)

il nome è generico nel bootrequest ma comprensivo

di path nel bootreply

vend 64 opzionale area riservata al venditore

(es. versione hardware ecc..)

 

4. Gallina/Uovo

Come può il server inviare un dato IP (datagram) al client, se il client

non conosce (ancora) il proprio indirizzo IP? Ogni volta che si invia

un bootreply la macchina che trasmette compie le seguenti azioni:

1. Se il client conosce il proprio IP (ciaddr non è a zero), allora la

trasmissione avverrà con l'ARP [5].

2. Se il client non conosce ancora il proprio IP (ciaddr =0), allora il

client non può rispondere con l'ARP; ci sono quindi due possibilità:

a. Se chi trasmette ha il kernel o i driver necessari per costruire

'manualmente' l'ARP, allora può riempire i campi chaddr e yiaddr.

Naturalmente questa modifica deve avere un timeout, proprio come ogni

altro codice ARP. Quello che trasmette il bootreply può allora semplicemente

inviarlo all'IP del client. UNIX (4.2 BSD) ha questa capacità.

b. Se chi trasmette non ha invece questa possibilità, può semplicemente

inviare il bootreply alla trasmissione IP (broadcast) sull'interfaccia

appropriata.

5. Come il client usa ARP

La PROM del client deve contenere un'implementazione semplice dell'ARP,

ovvero la memoria dell'indirizzo dovrebbe essere grande come un entry.

Questo permetterà al boot di seconda fase (TFTP) di essere eseguito quando

il client conosce l'IP e il nome del file di boot.

Ogni volta che il client sta aspettando di ricevere una risposta TFTP o

BOOTP, dovrebbe essere preparato a rispondere ad una richiesta ARP per

il proprio IP.

Il bootreply conterrà (nello stream hardware) l'indirizzo hardware sorgente

del server o gateway, il client dovrebbe essere in grado di evitare l'invio

di una richiesta ARP per lindirizzo IP del server o gateway da usare nella

fase seguente di TFTP. Comunque dovrebbe essere trattato solo come caso

speciale, perchè è meglio permettere un boot seconda fase come descritto sopra.

6. Confronto con RARP

Un protocollo più vecchio, il protocollo Reverse Address Resolution Protocol

(RARP) [1] fu proposto per permettere ad un client di determinare il proprio

IP, dato che l'indirizzo hardware è noto. Comunque il RARP ha lo svantaggio

che era un protocollo di collegamento hardware (non basato su IP/UDP).

Questo significa che il RARP potrebbe essere implementato solo su host

che contengano kernel o driver speciali per accedere a questi pacchetti 'raw'.

Poichè ci sono molti kernel di reti esistenti oggi, con ogni programma

sorgente mantenuto da differenti organizzazioni, un protocollo di boot che

non richiede una modifica al kernel è decisamente un vantaggio.

BOOTP fornisce a questo hardware la funzione di ricerca dell'IP, oltre

alle altre caratteristiche utili descritte nelle sezioni sopra.

7. Processamento dei pacchetti

7.1 Trasmissione del client

Prima di impostare il pacchetto per la prima volta, è una buona idea

cancellare l'intero buffer del pacchetto mettendolo a zero; questo metterà

tutti i campi nel loro stato di default. Il client poi crea un pacchetto

con i seguenti campi.

L'indirizzo IP di destinazione è settato a 255.255.255.255. (l'indirizzo

broadcast) o all'indirizzo IP del server (se noto). L'indirizzo IP della

sorgente e 'ciaddr' sono settati con l'IP del client se noti, altrimenti

a zero. L'header UDP è impostato con la lunghezza opportuna; porta sorgente

a 'BOOTP client' e la porta di destinazione a 'BOOTP server'.

'op' è impostato ad 1, cioè BOOTREQUEST. 'htype' è impostato con l'indirizzo

hardware come assegnato nella sezione ARP dei 'NUMERI ASSEGNATI' RFC.

'hlen' è impostato alla lunghezza dell'indirizzo hardware (es. 6 per ethernet

a 10Mb).

'xid' è impostato ad un valore casuale. 'secs' è impostato al numero di

secondi che sono passati da quando il client ha iniziato il boot. Questo

permetterà al server di conoscere da quanto tempo un client sta provando.

Se questo numero sale, il server potrà decidere di processarlo prima di altri.

Se il client non possiede un orologio preciso, potrebbe costruirne uno

con un ciclo di loop. O potrebbe semplicemente scegliere di inviare un numero

fisso in questo campo, diciamo 100 secondi.

Se il client conosce il proprio IP, 'ciaddr' (e l'indirizzo IP sorgente)

vengono settati a questo valore. 'chaddr' è riempito con l'indirizzo hardware

del client.

Se il client desidera restringere il boot ad un particolare nome di server,

può metterlo in 'sname' seguito da un carattere null. Il nome deve essere

uno di quelli disponibili per l'host desiderato.

Il client ha molte possibilità per riempire il campo 'file'. Se lasciato

vuoto, il significato è 'voglio usare il nome di default per la mia macchina'.

Un nome vuoto può anche significare 'sono solo interessato a conoscere

l'indirizzo IP del client/server/gateway, non mi interessa il nome del file'.

Il campo può anche essere un nome generico come 'unix' o 'gateway'; questo

significa 'forniscimi il nome del file di boot adeguato alla mia richiesta'.

Finalmente il campo può essere un nome di file comprensivo del path.

Il campo 'vend' può essere riempito dal client con stringhe o strutture

fornite dal venditore. Per esempio il tipo di hardware o il numero di serie

viene impostato qui. Comunque l'operazione di BOOTP non dipende da questa

informazione.

Se viene usato il campo 'vend', è raccomandato che i primi 4 byte siano

appunto la stringa 'vend'. Questo permette ad un server di determinare che

tipo di informazione è contenuta in questo campo. I numeri possono essere

assegnati dal processo solito dei 'numeri magici' --- ne prendi uno e questo

è magico. Un numero magico diverso potrebbe essere usato per permettere al

client di avere azioni speciali.

[UDP checksum]

7.2 Strategia di ritrasmissione del client

Se non è ricevuta una risposta dopo un certo periodo di tempo, il client

dovrebbe ritrasmettere la richiesta. L'intervallo di tempo deve essere

scelto con cautela per non sovraccaricare la rete (flood). Considera un

cavo a cui sono collegate 100 macchine che stanno ripartendo dopo un blackout.

Semplicemente ritrasmettendo la richiesta ogni quattro secondi innonderà la

rete.

Come possibile strategia, bisognerebbe considerare il back off esponenzialmente,

come il modo che ethernet tratta una collisione. Per esempio se il primo

pacchetto è a tempo 0:00, il secondo sarà a :04, poi :08, :16, :32...

Bisogna anche randomizzare ogni tempo, questo può essere fatto come

indicato nelle specifiche ethernet: iniziando con una maschera e facendo

delle AND logiche con un numero casuale per prendere il primo backoff.

Ad ogni backoff successivo, la maschera è aumentata in lunghezza da un bit.

Questo raddoppia il ritardo medio a ciascun backoff.

Dopo che il backoff medio raggiunge circa 60 secondi, non dovrebbe

venire incrementato ulteriormente, ma randomizzato.

Prima di ogni ritrasmissione, il client dovrebbe aggiornare il campo

'secs' [UDP checksum]

7.3 Il server riceve BOOTREQUEST

[UDP checksum] Se la porta di destinazione UDP non coincide con la porta

'BOOTP server', scartare il pacchetto.

Se il campo del nome del server è vuoto o coincide con il nome o soprannome

di questo server, allora continua.

Se il campo 'sname' è specificato, ma non coincide con questo server,

allora ci sono altre possibilità:

1. Si può scegliere di scaricare semplicemente il pacchetto.

2. Se il nome mostra essere su questo cavo, allora trascura il pacchetto.

3. Se il nome è su una rete differente, si può scegliere di inviare il

pacchetto a quell'indirizzo. Se così, bisogna controllare il campo 'giaddr'

(indirizzo gateway). Se 'giaddr' è zero, riempilo con questo indirizzo

o con l'indirizzo di un gateway che può essere usato per accedere a

quella rete. Quindi inoltra il pacchetto.

Se l'indirizzo del client (ciaddr) è zero, allora il client non conosce

il proprio IP. Cerca di trovare l'indirizzo hardware del client (chaddr,

hlen,htype) nel proprio database. Se non c'è ignora il pacchetto.

Altrimenti metti l'indirizzo IP del client trovato e mettilo in 'yiaddr'.

Ora controlliamo il nome del file di boot. Il campo sarà vuoto se il

client non è interessato al nome del file o vuole sapere il nome del

proprio file di boot di default. Se il campo non è vuoto ma non corrisponde

ad un nome di file noto o valido, si scarta il pacchetto, forse qualche

altro server BOOTP avrà il file corretto.

Il campo 'vend' potrebbe essere controllato ora e se viene riconosciuto

un certo codice si possono effettuare operazioni dipendenti dal client.

Per esempio una workstation client potrebbe fornire una chiave di

autenticazione e ricevere dal server una capacità di accesso remoto a

file, o un'impostazione delle opzioni di configurazione che possono essere

passate al sistema operativo che sta eseguendo il boot.

Metti il mio indirizzo IP nel campo 'siaddr. Imposta il campo 'op' a

BOOTREPLY. La porta di destinazione UDP è messa a 'BOOTP client'. Se

l'indirizzo del client 'ciaddr' non è zero, manda il pacchetto là;

altrimenti se l'indirizzo del gateway 'giaddr' non è zero, metti la

porta UDP di destinazione a 'BOOTP server' a manda il pacchetto a 'giaddr';

altrimenti il client è su uno dei nostri cavi ma non conosce ancora il

proprio IP -- usa il metodo descritto nella sezione 'Uovo' vista prima

e invialo al client. Se è utilizzato il metodo 'uovo' e abbiamo molte

interfacce a questo host, usa 'yiaddr' (il nostro IP) per sapere in

quale rete inviare il pacchetto [UDP checksum]

7.4 Il server/gateway riceve BOOTREPLY

[UDP checksum] Se 'yiaddr' (il tuo IP [del tuo cliente]) si riferisce

ad uno dei nostri cavi, usa uno dei metodi 'uovo' descritti sopra per

inviarlo al client. Assicurati di inviarlo alla porta di destinazione UDP

'BOOTP client'.

7.5 Ricezione del client

Non dimenticarti di processare le richieste ARP per il mio IP (se lo

conosco). [UDP checksum] Il client dovrebbe ignorare pacchetti che:

non sono indirizzati IP/UDP alla porta di boot; non sono BOOTREPLY, non

coincidono con il mio IP (se lo so) o il mio indirizzo hardware; non sono

uguali al mio ID di transazione. Altrimenti abbiamo ricevuto una risposta

al nostro bootreply. 'yiaddr' conterrà il mio IP, se non lo conoscevo.

'file' è il nome del file da usare con la richiesta di file TFTP.

L'indirizzo del server è in 'siaddr'. Se 'giaddr' (indirizzo di gateway)

è diverso da zero, allora il pacchetto dovrebbe essere prima inviato là,

per poter collegarsi al server.

8. Il boot attraverso le gateway

Questa parte del protocollo è opzionale e richiede del codice addizionale

in cooperazione con gateway e server, ma è permesso il boot tra gateway

(cross-gateway), potrebbe girare bene sui propri server BOOTP/TFTP.

I gateway che ascoltano la trasmissione BOOTREQUEST possono decidere di

inoltrare o ritrasmettere queste richieste quando è opportuno. Per esempio

il gateway potrebbe avere, come parte della sua tabella di configurazione,

una lista di altre reti o host per ricevere qualsiasi richiesta BOOTREQUEST.

Anche quando esiste il campo 'hops', non è una buona idea ritrasmettere

solo le richieste, poichè dei cicli di ritrasmissione si creeranno sicuramente.

La ritrasmissione può iniziare immediatamente, o aspettare che i secondi del campo

'secs' (secondi che il client ha atteso) superino una certa soglia.

Se un gateway decide di inoltrare la richiesta, dovrebbe osservare il campo 'giaddr'

(indirizzo IP del gateway). Se zero, deve mettere il proprio IP (IP di gateway)

in questo campo. Deve anche usare il campo 'hops' per controllare quanto

distante deve forwardare il pacchetto. Il campo 'hops' dovrebbe essere

incrementato a ciascun inoltro. Per esempio, se 'hops' supera '3' il pacchetto

dovrebbe probabilmente essere scartato.

[UDP checksum]

 

Qui abbiamo raccomandato di mettere questa funzione speciale di forward nei

gateway. Ma quello non deve essere il caso. Fino a quando alcuni agenti di

forward BOOTP esistono sulla rete con il client del boot, l'agente può fare

il forward quando appropriato. Allora questo servizio può essere o no nel

gateway.

Nel caso che un agente di forward non sia localizzato nel gateway, l'agente

potrebbe salvare da solo qualche lavoro mettendo l'indirizzo di trasmissione

dell'interfaccia ricevente il bootrequest nel campo 'giaddr'.

Allora la risposta verrebbe trasferita con i normali gateway, senza usare

l'agente di forward. Naturalmente lo svantaggio qui è che si perde la possibilita'

di usare un metodo intelligente non di trasmissione per inviare la risposta,

causando un carico extra per ogni host sul cavo client.

9. Esempio di database di un server BOOTP

Come suggerimento, mostriamo un esempio di un database testuale che il programma

di BOOTP potrebbe usare. Il database ha due sezioni, delimitate da una linea

contenente un percento nella colonna 1. La prima sezione contiene una directory

di default e mappature da un file generico a uno directory/path. Il primo nome

generico in questa sezione è il file di default che si da quando il bootrequest

contiene un campo 'file' nullo.

La seconda sezione mappa l'indirizzo hardware in un indirizzo IP. Opzionalmente

si può anche ignorare il nome di file generico dandone uno specifico. Può

essere inoltre definito un 'suffisso', se dato, qualsiasi nome generico specificato

dal client sara' modificato con l'aggiunta di questo dato alla fine. Se questo

campo non c'è, sara' impostato solo il nome del file. Questa opzione di suffisso

permette ad un intero insieme di file di essere impostati senza molta fatica.

Sotto è mostrato il formato generale; i campi sono delimitati da uno o più

spazi o tab; campi vuoti possono essere omessi; linee vuote e/o che iniziano

col cancelletto saranno ignorate.

# Linea di commento

directory_di_partenza

nomegenerico1 path1

nomegenerico2 path2

...

% fine dei nomi generici, inizia la mappatura degli indirizzi

nomehost1 tipohardware indirizzohardware1 ipaddr1 nomegenerico suffisso

nomehost2 tipohardware indirizzohardware2 ipaddr2 nomegenerico suffisso

...

Questo è un esempio specifico. Notare che il numero del 'tipohardware' è lo stesso

mostrato nella sezione ARP dei 'Numeri Assegnati' RFC.

Il 'tipohardware' e 'ipaddr' sono in decimale;

'indirizzohardware' è in esadecimale.

 

# ultima modifica Pippo

/usr/boot

vmunix vmunix

tip ethertip

watch /user/diag/etherwatch

gate gate

% fine dei nomi generici, inizia la mappatura degli indirizzi

hamilton 1 02.60.8c.06.34.98 36.19.0.5

burr 1 02.60.8c.34.11.78 36.44.0.12

101-gateway 1 02.60.8c.23.ab.35 36.44.0.32 gate 101

mjh-gateway 1 02.60.8c.12.32.bc 36.42.0.64 gate mjh

welch-tipa 1 02.60.8c.22.65.32 36.47.0.14 tip

welch-tipb 1 02.60.8c.12.15.c8 36.46.0.12 tip

Nell'esempio sopra, se 'mjh-gateway' fara' un boot di default, carichera' il

file 'usr/boot/gate.mjh.

10. Ringraziamenti

Ross Finlayson (et al) che hanno prodotto i primi due RFC sul TFTP bootstraping

usando [2] RAPP [1].

Vogliamo anche ringraziare il lavoro precedente e i commenti di

Noel Chiappa, Bob Lyon, Jeff Mogul, Mark Lewis, e David Plummer.

RIFERIMENTI

REFERENCES

1. Ross Finlayson, Timothy Mann, Jeffrey Mogul, Marvin Theimer. A

Reverse Address Resolution Protocol. RFC 903, NIC, June, 1984.

2. Ross Finlayson. Bootstrap Loading using TFTP. RFC 906, NIC,

June, 1984.

3. Mark Lottor. Simple File Transfer Protocol. RFC 913, NIC,

September, 1984.

4. Jeffrey Mogul. Broadcasting Internet Packets. RFC 919, NIC,

October, 1984.

5. David Plummer. An Ethernet Address Resolution Protocol. RFC

826, NIC, September, 1982.

6. Jon Postel. File Transfer Protocol. RFC 765, NIC, June, 1980.

7. Jon Postel. User Datagram Protocol. RFC 768, NIC, August, 1980.

8. Jon Postel. Internet Protocol. RFC 791, NIC, September, 1981.

9. K. R. Sollins, Noel Chiappa. The TFTP Protocol. RFC 783, NIC,

June, 1981.

 

Per ulteriori RFC in italiano visita http://www.napolihak.it

 

 

 

Partner

pCwArE
ZeroDay
Il tuo sito qui..
Il tuo sito qui..
Il tuo sito qui..

>Diventa Partner

Newsletter

A breve la Newsletter!!
Community
Forum
Chat

Statistiche

[contatore visite]

 

TORNA ALLA HOMEPAGE


Security Check™ Designed By http://www.pcware.tk