5. Generazione del pacchetto (Packet Generation)
Mentre un pacchetto scende lungo lo stack di rete, il meccanismo di instradamento determina l'indirizzo di protocollo del prossimo hop del pacchetto e su quale hardware ci si aspetta di trovare lo stazione con l'indirizzo di protocollo di destinazione diretta. Per l'Ethernet 10Mbit è richiesta la risoluzione degli indirizzi, e un livello inferiore (probabilmente il driver hardware) deve consultare il modulo di risoluzione degli indirizzi (forse implementato nel modulo di supporto Ethernet) per convertire la coppia <protocol type, target protocol address> in un indirizzo Ethernet a 48 bit. Il modulo di risoluzione degli indirizzi tenta di cercare la coppia nella tabella. Se la trova, restituisce l'indirizzo Ethernet a 48 bit corrispondente al chiamante (il driver hardware), che trasmette il pacchetto. Se non la trova, può indicare al chiamante di scartare il pacchetto (assumendo che verrà ritrasmesso da un livello di rete superiore) e genera un pacchetto Ethernet il cui campo di tipo è ether_type$ADDRESS_RESOLUTION.
Il modulo di risoluzione degli indirizzi imposta quindi il campo ar$hrd su ares_hrd$Ethernet, ar$pro sul tipo di protocollo in fase di risoluzione, ar$hln su 6 (numero di byte di un indirizzo Ethernet a 48 bit), ar$pln sulla lunghezza dell'indirizzo in quel protocollo, ar$op su ares_op$REQUEST, ar$sha sul proprio indirizzo Ethernet a 48 bit, ar$spa sul proprio indirizzo di protocollo, ar$tpa sull'indirizzo di protocollo della macchina a cui si sta cercando di accedere. Non imposta ar$tha su alcun valore particolare, poiché è proprio questo il valore che sta cercando di determinare. Se risulta comodo per qualche aspetto dell'implementazione, è possibile impostare ar$tha sull'indirizzo di broadcast dell'hardware (tutti 1 nell'Ethernet 10Mbit). Il pacchetto viene quindi trasmesso in broadcast a tutte le stazioni sul cavo Ethernet inizialmente determinato dal meccanismo di instradamento.