[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: SIIT translation
In your previous mail you wrote:
I haven't looked at the details recently, but I think the addition of
the pseudo-header checksum is solvable without needing state in the
translator. The pseudo-header (from the IPv6 header) is available in the
same packet as the ICMP checksum field.
Thus the checksum can be adjusted based on the delta of adding or
deleting (for v4->v6 and v6->v4 translation, respectively) the
pseudo-header checksum by only looking at that one packet.
=> I agree: the checksum is adjusted and not recomputed. Usually
the address part is cached in the mapping, and when you can choose
one part of an address you even try to make the update null.
The UDP with zero checksum is much different, because it requires a
computation of the checksum for the whole datagram i.e. across all the
fragments.
=> note zero checksum UDPs should only occur in cases where they are
small enough to be never fragmented, i.e., UDP checksums are highly
recommended in NFS & co, DNS including EDNS0, but not for video
or voice where large packets and fragmentation add too much delay.
Regards
Francis.Dupont@enst-bretagne.fr