<html>
<body>
<font size=3>At 10:38 p.m. 20/08/2008, you wrote:<br><br>
<blockquote type=cite class=cite cite="">
<blockquote type=cite class=cite cite="">Si el modulo IPv4 encuentra que
el campo Version de un paquete que está procesando contiene por ejemplo
el valor "6", entonces quiere decir que por ejemplo el campo
"Protocol Type" del paquete Ethernet indicaba IPv4 (mediante el
valor 0x0800), mientras que el campo Version del IP header indica IPv6.
Esto es un error, y por ello el paquete debería ser descartado.<br><br>
Lo que vos decís es que el texto parece indicar que en la link layer
*siempre* se utiliza el valor 0x0800 para indicar IPv4?<br>
</blockquote><br>
La verdad me cuesta generalizar, acordate que mismo en Ethernet lo que se
usa generalmente es Ethernet II, pero existe 802.3, con LLC, existe
tocken ring, etc, habria que chequear todas las implementaciones. Nunca
he disenado stacks a este nivel, pero esa frase me llamo la
atencion.</font></blockquote><br>
El argumento del documento es que, para versiones distintas del protocolo
IP (es decir, IPv6 vs. IPv6), siempre se usan valores distintos de
"Protocol Type" a nivel link-layer. Por ello, los paquetes se
demultiplexarán a distintos modulos de nivel software de la capa de
red.<br><br>
Si el modulo de IPv4 termina procesando un paquete IPv6, es simplemente
porque el campo "Protocol Type" de la link layer estaba
falsificado (es decir, se puso un 0x0800 en vez de 0x86DD (que es lo que
se debería haber puesto).<br><br>
Se entiende? (O es que me pasé algo por alto?)<br><br>
<font size=3>Saludos,<br>
<x-sigsep><p></x-sigsep>
--<br>
Fernando Gont<br>
e-mail: fernando@gont.com.ar || fgont@acm.org<br>
PGP Fingerprint: 7809 84F5 322E 45C7 F1C9 3945 96EE A9EF D076
FFF1<br><br>
<br><br>
</font></body>
</html>