Il 0% ha trovato utile questo documento (0 voti)
5 visualizzazioni

MAC Address Java

Caricato da

huskvoid
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
5 visualizzazioni

MAC Address Java

Caricato da

huskvoid
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 2

! Il file di testo frameeth.txt si trova nella cartella corrente e viene aperto, letto e chiuso con le righe 11÷13.

Il suo contenuto viene copiato nell’array di caratteri szEthFrame[ ].


PROGRAMMA

Il campo Type/lenght, in posizione 13 e 14, viene copiato in una stringa (righe 16÷19). Per raggiungerlo biso-
gna moltiplicare per 3 l’indice 13 e 14 (in una sequenza i byte sono spaziati e occupano tre caratteri).
Una volta trasformato in stringa esadecimale (su quattro caratteri), il campo Type/lenght va trasformato in nu-
mero decimale per poterlo confrontare con l’MTU di Ethernet (1500) per discriminare il tipo di pacchetto.
A tal scopo è stata scritta una funzione htoi() che, presa in ingresso una stringa esadecimale, restituisce il nu-
mero decimale equivalente. Il corpo della funzione si trova alle righe 46÷57 e il prototipo a riga 04.
Infine, per sapere se il pacchetto è un 802.3 SNAP o 802.3 LLC si legge il byte a indice 15 e lo si confronta con
la stringa esadecimale “aa” (righe 30÷32).

3 Dominio di broadcast
Gli indirizzi fisici delle LAN a 6 byte (MAC address) sono univoci su scala
mondiale e memorizzati permanentemente nella ROM della scheda di rete
dal produttore secondo lo schema OUI/n. di serie: i primi tre byte sono
l’indentificativo univoco su base mondiale assegnato dall’IEEE ad ogni
produttore, mentre il n. di serie è deciso autonomamente dal costruttore
per individuare la singola scheda commercializzata.

Ricavare l’indirizzo MAC (Java)


PROGRAMMA

Scrivere un programma in linguaggio Java che legge gli indirizzi MAC delle interfacce di rete installate sulla mac-
china.

Il codice in linguaggio Java potrebbe essere il seguente:

10 A1 Tecnologia IEEE 802.3


Paolo Ollari CORSO DI SISTEMI E RETI - Vol. 2 © Zanichelli 2013 per Informatica
!
PROGRAMMA

In evidenza alla riga 12 la chiamata di sistema, sottoforma di metodo statico, NetworkInterface.getNetworkIn-


terfaces().
Il metodo restituisce un vettore (un elemento per ogni scheda NIC) in cui ogni elemento è un oggetto di tipo Net-
workInterface dal quale invocare il metodo .getHardwareAddress() (riga 16) che restituisce il vettore contenente
i 6 byte dell’indirizzo MAC dell’interfaccia di rete.
Per scandire ogni elemento dell’enumerazione si usa l’interfaccia Collection (riga 13).

I due bit LSB del primo byte dell’OUI hanno un significato speciale e deter-
minano il tipo di pacchetto MAC. Sono sottratti quindi alla codifica OUI,
motivo per cui il primo byte di un OUI del produttore dovrebbe essere
sempre pari e dovrebbe essere sempre pari il settimo byte di un pacchetto
Ethernet:
tipi di indirizzi MAC
47464544 43424140 39383736 3534 3332 31302928 27262524 2322 21201918 17161514 13121110 9 8 7 6 5 4 3 2 1 0

7 6 5 4 3 2 1 0
OUI 0 U/L I/G OUI 1 OUI 2 serial number 0 serial number 1 serial number 2
1 1 1 1 1 1

Gli indirizzi MAC circolanti su Ethernet possono essere quindi di tre


tipi:
• single (o unicast, I/G= ), se riferito ad un singolo sistema;
• multicast (I/G= ), se riferito ad un gruppo di sistemi; solo se la trama Ethernet big
è multicast il bit U/L ha significato: 0, gruppo universale; 1, gruppo e little endian
locale. L’ordine standard di trasmis-
• broadcast (ff:ff:ff:ff:ff:ff, tutti i byte a ffh), se riferito a tutti i sistemi della sione dei bit sul mezzo di
Ethernet è bizzarro, benché sia
LAN.
stato poi adottato da tutte le
Quando una scheda LAN riceve un pacchetto effettua una serie di con- altre tecnologie su LAN.
trolli. Prima verifica che il pacchetto sia integro (cioè abbia una FCS cor- Rispetto ai byte del pacchetto
adotta big endian: i byte ven-
retta) e di dimensioni ammesse. Poi analizza l’indirizzo MAC destinata- gono spediti da sinistra verso
rio e: destra. Ma la spedizione dei
singoli bit di un byte avviene
• se è broadcast, il pacchetto viene sempre passato al livello superiore;
in modo little endian, da destra
• se è single, il pacchetto viene passato al livello superiore solo se è uguale verso sinistra, ovvero il primo
all’indirizzo MAC della scheda; bit che ‘parte’ è il bit di peso 0.
• se è multicast, verifica se il proprio MAC appartiene al gruppo indiriz- È per questo motivo che i due
zato, nel qual caso lo passa al livello superiore. bit I/G e U/L hanno peso 0 e 1,
così da essere i primi ad esse-
Pacchetti con indirizzi broadcast e multicast non trasportano mai dati uten- re spediti e quindi ricevuti.
Questa modalità è detta cano-
te ma solo dati di servizio (esempio, servono per far funzionare il program-
nical order.
ma arp).

3 Dominio di broadcast 11
Paolo Ollari CORSO DI SISTEMI E RETI - Vol. 2 © Zanichelli 2013 per Informatica

Potrebbero piacerti anche