spina ha scritto:Scusa Vic Steele ma io il tuo ragionamento non lo seguo proprio. Fai una premessa che non sembra c'entrare nulla con la conclusione.
Innanzi tutto non è vero che la connessione tra due host avviene in due livelli e, soprattutto, non è vero che il livello IP è un livello fisico, che cos'ha di fisico?
Poi, questa frase non la capisco:"Se un pacchetto a livello di rete ([cut]) arriva direttamente a un dispositivo connesso con IPv4, quest'ultimo per colpa di questa versione di protocollo non lo riconoscerà e quindi lo scarterà perdendo il pacchetto...". Cioé, se un pacchetto arriva allora è arrivato, il problema non dovrebbe essere farlo arrivare? Come anche la frase:"Questo non accade viceversa, perché IPv6 è retrocompatibile con IPv4.", che vuol dire retrocompatibile?
Scusami, è un discorso che stavo scrivendo a più riprese mentre ero all'università a fare altre cose, e rileggendo solo ora mi sono reso conto che ho commesso alcune imprecisioni.
Spiego meglio quello che volevo dire.
IP appartiene al livello della pila di protocolli che, rispetto ai livelli a lui superiori, più si avvicina alla fisicità (che quindi NON è di IP, ma dei protocolli dei livelli inferiori, a partire da quello di collegamento leggendoli in bottom-up, implementati nelle schede di rete, come Ethernet o 802.11). Di fisico quindi non ha niente, è interamente software.
Come conseguenza a questo mi spiego meglio anche sulla seconda parte che mi hai citato.
Il pacchetto a livello di link, è un frame composto da tanti bit 0 e 1 che viene trasmesso fisicamente nelle interfacce. Questo significa che al nodo, intendendolo indifferentemente sia come host che come router intermedio, nessuno vieta a questa sequenza di bit di entrare al suo interno. La complicazione del discorso nasce quando il frame supera la coda di input del dispositivo, e arriva al processore che si occupa di lavorarci. Dal frame estrae il datagramma, e a quel punto ci vuole l'interpretazione di IP, che è un protocollo che i commutatori lungo il percorso e naturalmente gli host finali sicuramente implementano. Quindi il pacchetto in questo caso è "arrivato" a IP, che però naturalmente se vede come illeggibile scarta direttamente, essendogli impossibile occuparsi di passarlo al prossimo nodo segnato o passarlo al livello di trasporto nel caso dell'host destinatario.
La retrocompatibilità di IPv6 con IPv4 significa appunto che la versione 6 di IP è capace di leggere le intestazioni di un pacchetto generato con IPv4, e quindi ne permette il resto del procedimento. IPv4 come già detto non conosce il modo in cui IPv6 intesta (ragionevolmente, come avrebbero fatto i progettisti a prevederlo?), per cui un pacchetto con l'intestazione di IPv6 sarebbe scartato a priori in quanto non trovandosi con i bit di intestazione disposti come lui conosce non è in grado di fare nient'altro.
Per questo motivo vengono inventate varie tecniche di work-around per risolvere la situazione di transizione, tra cui il tunneling che è quello usato praticamente (in breve al raggiungimento dell'intervallo dei nodi IPv4 tra i nodi IPv6, si incapsula il datagramma IPv6 nel campo dati di un nuovo datagramma IPv4 e lo si destina all'indirizzo IP del router alla fine del tunnel, cioè il prossimo che contiene l'IPv6 nel cammino, che quindi al suo ricevimento lo scarterà, troverà il datagramma IPv6 esattamente identico a com'era all'inizio del tunnel, e continuerà a processarlo).
In conclusione, se due host non riescono a comunicare lo stesso, anche se tutti e due utilizzano IPv6 come protocollo di rete, una motivazione può essere data dal fatto che non esistono percorsi in grado di supportare correttamente il cammino di datagrammi IPv6, per l'appunto perché non implementano il tunneling.
Naturalmente mi ripeto dicendo che sto comunicando le mie conoscenze, da studente universitario che ha nozioni solo accademiche e per il momento non abbastanza pratiche sull'argomento. Se qualcuno avesse dubbi o smentite su quello che ho scritto mi farebbe anche piacere una vostra risposta.