Newsgroup: it.discussioni.ingegneria
Titolo: Protocollo ARP...

Salve, avrei un dubbio sulle modalità esatte del funzionamento dell'arp. Se
non ho capito male, nella pila protocollare l'arp si può porre tra il
livello 2 e il livello 3. Si potrebbe forse dire che è un sottolivello
dell'IP.
Per come ho capito io, suppondendo di trovarci in una rete tcp/ip su
ethernet, quando un pacchetto ip deve essere spedito all'indirizzo a.b.c.d,
l'ip level interroga, tramite una primitiva di servizio, l'arp per conoscere
quale sia l'indirizzo hardware corrispondente all'indirizzo ip dato. Se
nelle tabelle arp questa informazione non è presente, l'arp stesso (mettendo
in attesa l'ip), compila un pacchetto e lo passa al livello data link
insieme all'indirizzo hardware broadcast. Quindi il data link tratta il
pacchetto come ogni altro, e lo inoltra sul bus di rete. Tutte le schede di
rete ricevono il pacchetto e lo passano al livello superiore.
Ed è qui che nasce il mio dubbio: qual è il livello superiore? In teoria
dovrebbe essere l'ip, ma il pacchetto è invece indirizzato all'arp! Inoltre,
non c'è nell'intestazione del pacchetto nessun campo che indichi quale sia
il tipo di pacchetto: se dati o arp. E quindi non ci dovrebbe essere, almeno
in teoria, modo per il livello ip di sapere che quello che sta leggendo non
è un qualsiasi pacchetto dati ma un pacchetto arp! E se non ricordo male,
neanche nella frame ethernet esiste un campo che indichi a quale entità
passare il payload (all'ip o all'arp, supponendo che si possano considerare
due entità separate dello stesso livello).
Magari vi sembrerò pignolo, ma vorrei capire per bene come funziona questa
cosa. Sapete darmi una mano a schiarirmi le idee?
Grazie a tutti. Ciao
P.S. Scusate per il crosspost con it.istruzione.università.ingegneria, ma 
quel NG non mi sembra molto frequentato ultimamente. 

 campo che indichi quale sia il tipo di pacchetto: se dati o arp.
Il type field nel pacchetto Ethernet (o quello che è) deve essere 0x806, 
cosicché quando ARP viene implementato dal livello di rete (ed è IMHO un 
protocollo del livello 3, ma di pareri discordanti ne ho letti diversi 
negli anni, hai visto che ne dice il Gay?), è quest'ultimo che capisce 
che il pacchetto che gli arriva è una richiesta (o una risposta) ARP, ed 
agisce di conseguenza (ad esempio lancia una primitiva arp_process() 
oppure una ip_process()).
-- 
ale
http://www.sen.it
et corruptissima re pubblica plurimae leges 

 ..  hai visto che ne dice il ..
Ovviamente mi riferivo al libro "Reti locali: dal cablaggio 
all'internetworking" del Prof. Silvano Gai, con il quale mi scuso per 
averne storpiato in maniera involontaria il cognome.


 averne storpiato in maniera involontaria il cognome.
A dire il vero non conosco questo testo, ma da come ne parli deve essere una 
sorta di bibbia sull'argomento.
In ogni caso, mi sono andato a riguardare il formato della frame 802.3, e ho 
avuto la conferma che non c'č un campo type field. Tuttavia, cercando in 
rete, pare che la frame Ethernet II lo abbia. Anche se non ho capito bene se 
ethernet II sta per fast ethernet, o semplicemente la versione su doppino di 
802.3
Cmq, grazie per la risposta. Pare che in ogni caso il mio ragionamento 
filasse.
Ciao 

 doppino di 802.3
Scusa, mi dico da solo che sono un idiota... il formato che dovevo andare a 
cercarmi non era quello della frame 802.3, ma quello della frame 802.2, 
ovvero del LLC layer, che è poi quello che effettivamente è a contatto con 
il livello 3. E nella frame 802.2 c'è un campo control field, che potrebbe 
essere quello usato per distinguere i pacchetti ip da quelli arp. Tuttavia 
non ho trovato conferme definitive, in quanto non ho trovato descrizioni 
esaustive del formato della frame 802.2
Ciao di nuovo 

Mi auto-rispondo ancora una volta, perchè ho trovato un interessantissimo 
articolo sulla frame ethernet, su come è nata, e come è stata modificata 
negli anni, che tratta in particolare il problema della molteplicità dei 
protocolli possibili usati a livello 3 (oltre ad ip ed arp ce ne sono 
parecchi altri, come l'ipx, il packet level della x.25, etc...).
Lo trovi all'url:
http://www.khet.net/libreria/networking/networking_frame_ethernet.htm
Credo di aver finalmente fugato tutti i miei dubbi!
Grazie dell'imput che mi hai dato :D
Ciao 

 Grazie dell'imput che mi hai dato :D
Prego.


 essere una sorta di bibbia sull'argomento.
In Italia ed in Italiano, più o meno sì. É un testo che ha oramai 
qualche anno, ma se uno si avvicina alle reti è sempre un ottimo punto 
di partenza.
Qui ne trovi una versione online:
http://www.google.co.uk/search?q=+site:www2.inf.unitn.it+reti+dal+cablaggio+all%27internetworking+pdf&hl=en&lr=&safe=off&rls=GGLD,GGLD:2004-34,GGLD:en&start=0&sa=N
