Internetwork Packet Exchange
# Internetwork Packet Exchange

L'Internetwork Packet Exchange (IPX) è un protocollo di rete al livello network del modello OSI, della pila di protocolli IPX/SPX, che veniva usato in origine per lo scambio di pacchetti nelle reti NetWare di Novell. Grazie alla popolarità di NetWare tra la fine degli anni 1980 e la metà degli anni 1990, l'IPX divenne un protocollo di internetworking molto diffuso. Novell derivò l'IPX dal protocollo IDP di Xerox Network Services.

L'uso di IPX è in generale declino in quanto il boom di Internet ha reso il TCP/IP praticamente universale. Computer e reti possono usare più protocolli di rete, così quasi tutti i siti IPX usano anche TCP/IP per permettere la connettività a Internet. È anche possibile usare i prodotti di Novell senza IPX, in quanto NetWare supporta sia IPX che TCP/IP fin dalla versione 5.

## Indirizzamento IPX

* Le reti (networks) sono assegnate a un unico indirizzo esadecimale a 32-bit all'interno dell'intervallo: 0x1 - 0xFFFFFFFE
* Gli host hanno indirizzi di nodo a 48-bit che di default sono settati sull'indirizzo MAC dell'interfaccia di rete. L'indirizzo di nodo viene unito all'indirizzo di rete in modo da creare un identificativo unico per l'host sulla rete (nel formato rete:nodo).

### Similarità con l'IP

L'indirizzo di rete IPX è concettualmente identico alla parte di rete dell'indirizzo IP (la parte con i bit della maschera settati a 1); l'indirizzo di nodo ha lo stesso significato dei bit settati a 0 nella maschera dell'indirizzo IP. Siccome l'indirizzo di nodo è solitamente identico all'indirizzo MAC della scheda di rete, l'Address Resolution Protocol non è necessario.

Per il routing, le entrate nella tabella di routing IPX sono simili a quelle delle tabelle di routing IP; il routing viene eseguito dall'indirizzo di rete, e per ogni indirizzo di rete viene specificata una coppia rete:nodo del router successivo, in modo simile a quella della coppia indirizzo/maschera delle tabelle di routing IP.

### IPX su Ethernet

IPX può essere trasmesso su Ethernet usando uno dei quattro seguenti tipi di incapsulazione:

* 802.3 (raw) viene usato nei sistemi "legacy" e prevede che i dati IPX inizino immediatamente dopo il frame header 802.3. I pacchetti iniziano con Destination Ethernet Address (6 byte), Source Ethernet Address (6 byte), Frame Length (2 byte), seguiti dai dati IPX. Questi ultimi iniziano sempre con due byte 0xFF (Checksum field), che possono essere usati per differenziare questo tipo di incapsulazione IPX dagli altri due.
* 802.2 (Novell) comprende un frame header 802.3 (destination, source, length) seguito da un header LLC (3 byte - 0xE0, 0xE0, 0x03) seguito dai dati IPX. Il campo 0xE0 dell'header LLC sta per protocollo 'Novell'.
* 802.2 (SNAP) comprende un frame header 802.3, un header LLC (3 byte - 0xAA, 0xAA, 0x03), un header SNAP (5 byte - 0x00, 0x00, 0x00, 0x81, 0x37) e i fdati IPX. I campi 0xAA dell'header LLC stanno per protocollo 'SNAP'. I primi tre byte dell'header SNAP sono un OUI seguiti da 2 byte dell'EtherType IPX.
* Ethernet II comprende un frame header Ethernet II (Destination, Source, EtherType) seguito dai dati IPX.
