Passa al contenuto principale

4. Host Requirements (Requisiti dell'host)

Questa sezione descrive i requisiti per gli host che supportano il multicast specifico della sorgente, tra cui:

  • Estensioni all'interfaccia del modulo IP

  • Estensioni al modulo IP

  • Allocazione degli indirizzi SSM

4.1. Extensions to the IP Module Interface (Estensioni all'interfaccia del modulo IP)

L'interfaccia del modulo IP verso i protocolli di livello superiore è estesa per consentire ai protocolli di richiedere la ricezione di tutti i datagrammi inviati a un particolare canale.

Subscribe ( socket, source-address, group-address, interface )

Unsubscribe ( socket, source-address, group-address, interface )

dove

"socket" è come definito precedentemente nella Sezione 2,

e, parafrasando [IGMPv3],

"interface" (interfaccia) è un identificatore locale dell'interfaccia di rete su cui deve essere abilitata o disabilitata la ricezione del canale identificato dalla coppia (source-address, group-address). Un valore speciale può essere utilizzato per indicare un'interfaccia "predefinita". Se si desidera la ricezione dello stesso canale su più interfacce, Subscribe viene invocato una volta per ciascuna.

Quanto sopra sono interfacce funzionali strettamente astratte -- la funzionalità può essere fornita in un modo specifico dell'implementazione. Su un host che supporta l'interfaccia di programmazione dell'applicazione di filtraggio della sorgente multicast di [MSFAPI], ad esempio, le interfacce Subscribe e Unsubscribe possono essere supportate tramite tale API. Quando un host è stato configurato per conoscere l'intervallo di indirizzi SSM (se il meccanismo di configurazione è manuale o tramite un protocollo), il sistema operativo dell'host DOVREBBE (SHOULD) restituire un errore a un'applicazione che effettua una richiesta non specifica della sorgente per ricevere multicast inviato a un indirizzo di destinazione SSM.

Un host che non supporta queste interfacce del modulo IP (ad esempio, host solo ASM) e i loro protocolli sottostanti non può aspettarsi di ricevere in modo affidabile il traffico inviato su un canale SSM. Come specificato di seguito nella Sezione 5.2, i router non imposteranno lo stato di inoltro SSM né inoltreranno datagrammi in risposta a una richiesta di join ASM.

Le implementazioni diffuse dell'interfaccia di ricezione dei pacchetti IP (ad esempio, la chiamata di sistema recvfrom() in BSD Unix) non consentono a un ricevitore di determinare l'indirizzo di destinazione a cui è stato inviato un datagramma. Su un host con una tale implementazione, l'indirizzo di destinazione di un datagramma non può essere dedotto quando il socket su cui viene ricevuto il datagramma è iscritto (Subscribed) a più canali. I sistemi operativi host DOVREBBERO (SHOULD) fornire un modo per un host di determinare sia la sorgente che l'indirizzo di destinazione a cui è stato inviato un datagramma. (Ad esempio, il sistema operativo Linux fornisce la destinazione di un pacchetto come parte della risposta alla chiamata di sistema recvmsg().) Fino a quando questa capacità non sarà presente, le applicazioni potrebbero essere costrette a utilizzare meccanismi di livello superiore per identificare il canale a cui è stato inviato un datagramma.

4.2. Requirements on the Host IP Module (Requisiti sul modulo IP dell'host)

Un datagramma in arrivo destinato a un indirizzo SSM DEVE (MUST) essere consegnato dal modulo IP a tutti i socket che hanno indicato (tramite Subscribe) il desiderio di ricevere dati che corrispondono all'indirizzo sorgente, all'indirizzo di destinazione e all'interfaccia di arrivo del datagramma. NON DEVE (MUST NOT) essere consegnato ad altri socket.

Quando il primo socket sull'host H si iscrive a un canale (S,G) sull'interfaccia I, il modulo IP dell'host su H invia una richiesta sull'interfaccia I per indicare ai router vicini che l'host desidera ricevere traffico inviato dalla sorgente S alla destinazione multicast specifica della sorgente G. Allo stesso modo, quando l'ultimo socket su un host si disiscrive da un canale sull'interfaccia I, il modulo IP dell'host invia una richiesta di disiscrizione per quel canale all'interfaccia I.

Queste richieste saranno tipicamente messaggi Internet Group Management Protocol versione 3 (IGMPv3) per IPv4, o messaggi Multicast Listener Discovery Versione 2 (MLDv2) per IPv6 [IGMPv3,MLDv2]. Un host che supporta il modello di servizio SSM DEVE (MUST) implementare la porzione host di [IGMPv3] per IPv4 e [MLDv2] per IPv6. DEVE (MUST) anche conformarsi al comportamento IGMPv3/MLDv2 descritto in [GMP-SSM].

4.3. Allocation of Source-Specific Multicast Addresses (Allocazione degli indirizzi multicast specifici della sorgente)

L'indirizzo di destinazione SSM 232.0.0.0 è riservato e non deve essere utilizzato come indirizzo di destinazione. Allo stesso modo, anche FF3x::4000:0000 è riservato. L'obiettivo di riservare questi due indirizzi è preservare una destinazione SSM non valida per IPv4 e IPv6, che può essere utile in un'implementazione come valore nullo. L'intervallo di indirizzi 232.0.0.1 - 232.0.0.255 è attualmente riservato per l'allocazione da parte della IANA. Gli indirizzi di destinazione SSM nell'intervallo da FF3x::4000:0001 a FF3x::7FFF:FFFF sono analogamente riservati per l'allocazione IANA [IPv6-MALLOC]. La motivazione per riservare questi indirizzi è delineata di seguito nella Sezione 9, "Considerazioni IANA".

La politica per l'allocazione del resto degli indirizzi SSM alle applicazioni mittenti è rigorosamente determinata localmente dall'host mittente.

Quando si allocano indirizzi SSM dinamicamente, un host o un sistema operativo host NON DEVE (MUST NOT) allocare sequenzialmente iniziando dal primo indirizzo consentito. Si RACCOMANDA (RECOMMENDED) di allocare indirizzi SSM alle applicazioni in modo casuale, garantendo al contempo che gli indirizzi allocati non siano dati contemporaneamente a più applicazioni (ed evitando gli indirizzi riservati). Per IPv6, la randomizzazione dovrebbe applicarsi ai 31 bit più bassi dell'indirizzo.

Come descritto nella Sezione 6, la mappatura di un pacchetto IP con indirizzo di destinazione SSM su un indirizzo multicast di livello collegamento non tiene conto dell'indirizzo IP sorgente del datagramma (su livelli di collegamento comunemente usati come Ethernet). Se tutti gli host iniziassero dal primo indirizzo consentito, allora con alta probabilità, molti canali specifici della sorgente su reti locali a mezzo condiviso utilizzerebbero lo stesso indirizzo multicast di livello collegamento. Di conseguenza, il traffico destinato a un abbonato del canale verrebbe consegnato al modulo IP di un altro, che dovrebbe quindi scartare il datagramma.

Un sistema operativo host DOVREBBE (SHOULD) fornire un'interfaccia per consentire a un'applicazione di richiedere un'allocazione univoca di un indirizzo di destinazione del canale prima dell'inizio di una sessione, e questo database di allocazione DOVREBBE (SHOULD) persistere attraverso i riavvii dell'host. Fornendo allocazioni persistenti, un'applicazione host può pubblicizzare la sessione prima dell'orario di inizio su una pagina web o in un'altra directory. (Notiamo che questo problema non è specifico per le applicazioni SSM -- lo stesso problema sorge per ASM.)

Questo documento non definisce le interfacce per richiedere o restituire indirizzi né specifica gli algoritmi host per memorizzare tali allocazioni. Un'API astratta plausibile è definita nell'RFC 2771 [RFC2771]. Si noti che l'RFC 2771 consente a un'applicazione di richiedere un indirizzo all'interno di un intervallo specifico di indirizzi. Se viene utilizzata questa interfaccia, l'indirizzo iniziale dell'intervallo DOVREBBE (SHOULD) essere selezionato casualmente dall'applicazione.

Per IPv6, gli indirizzi di canale SSM con ambito amministrativo vengono creati scegliendo un identificatore di ambito appropriato per l'indirizzo di destinazione SSM. I normali confini di ambito multicast IPv6 [SCOPINGv6] vengono applicati al traffico inviato a un indirizzo di destinazione SSM, inclusi eventuali confini rilevanti applicati sia all'indirizzo sorgente che a quello di destinazione.

Nessun intervallo di indirizzi con ambito amministrativo concordato a livello globale [ADMIN-SCOPE] è attualmente definito per il multicast specifico della sorgente IPv4. Per IPv4, lo scoping amministrativo degli indirizzi SSM può essere implementato all'interno di un dominio amministrativo filtrando il traffico SSM in uscita inviato a un indirizzo con ambito ai router di confine del dominio.