Passa al contenuto principale

7.2. Extensions to the IP Module (Estensioni al modulo IP)

7.2. Extensions to the IP Module (Estensioni al modulo IP)

Per supportare la ricezione di datagrammi IP multicast, il modulo IP deve essere esteso in due modi: mantenendo un elenco delle appartenenze ai gruppi di host associate a ciascuna interfaccia di rete e filtrando i datagrammi IP in entrata per i datagrammi indirizzati ai gruppi di host a cui l'host appartiene.

L'elenco delle appartenenze ai gruppi di host viene aggiornato in risposta alle azioni JoinHostGroup e LeaveHostGroup. Ogni voce di membro dovrebbe contenere un conteggio del numero di richieste JoinHostGroup per un particolare gruppo su una particolare interfaccia che non sono state ancora annullate da richieste LeaveHostGroup, in modo che lo stesso gruppo possa essere unito più di una volta sulla stessa interfaccia. Quando viene eseguito il primo join e non esiste ancora alcuna voce di membro per quel gruppo, viene creata una nuova voce di membro. Quando viene eseguito l'ultimo leave rimanente per un gruppo su un'interfaccia, la voce di membro per quel gruppo su quell'interfaccia viene eliminata.

Ogni volta che viene ricevuto un datagramma IP, il modulo IP verifica se l'indirizzo di destinazione corrisponde a un indirizzo di gruppo di host in una qualsiasi delle voci di membro e, in tal caso, passa una copia del datagramma a ciascun protocollo di livello superiore specificato nel set di protocolli del membro. Per tutti i protocolli di livello superiore membri che specificano lo stesso protocollo di livello superiore, viene passata solo una copia del datagramma corrispondente. Un datagramma in entrata non viene scartato semplicemente perché è indirizzato a un gruppo di host a cui l'host apparentemente non appartiene. Potrebbe essere un datagramma multicast in entrata la cui durata di vita è scaduta, nel qual caso verrà passato al protocollo ICMP.

Dovrebbe essere mantenuto un contatore di errori chiamato "datagrammi IP multicast errati ricevuti" e incrementato ogni volta che un datagramma IP multicast non raggiunge la soglia time-to-live richiesta, oppure ha un indirizzo sorgente IP non valido, oppure viene ricevuto su un'interfaccia di rete che non supporta il multicasting IP, ma altrimenti sembra essere un datagramma IP valido. (Questa estensione è una generalizzazione del controllo degli errori di indirizzo eseguito da un modulo IP non multicast.)