Le 30 juil. 09 à 03:09, Christian Huitema a écrit :
On 2009-07-29 19:43, Benny Amorsen wrote:
Brian E Carpenter <brian.e.carpen...@gmail.com> writes:
Er, do your routers do that when they throw away packets due to
congestion?
If a router throws away a packet due to congestion, there's a good
chance that a retransmission will go through. In this case you can
retransmit as many no-UDP-checksum packets you want, none of them
will
get through. The host really ought to be told that it is wasting its
time.
There's no retransmission in UDP.
Presumably there is no harm in sending back some kind of ICMP error,
most likely Parameter Problem, at a throttled rate. But we shouldn't
mandate
it IMHO, and you certainly can't rely on a host stopping a UDP stream
as a result.
What happened to being conservative with what we send and
permissive with what we receive?
It seems that the direct application should be:
1) Be conservative: hosts should not send UDP packets with null
checksums.
2) Permissive: gateways who receive UDP packets with null checksum
should compute a checksum based on the received bytes, and then
forward the packet.
I understand there may be resource limits on gateways, and that the
UDP checksum compute requirement might throw the packet back to
some kind of slow path, with potential packet loss due to
congestion. But that's way better than a black hole.
In view of the various arguments made, here is IMHO a good combination:
- IPv6 hosts MUST create UDP datagrams with non-zero checksums.
(Nothing new here.)
- IPv6 hosts MAY accept UDP datagrams with zero checksum.
((1) Application of the classic principle "be strict in what you
send, tolerant in what you receive"; (2) useful for some UDP
datagrams that cross some v4-v6 translators.)
- IPv6 hosts that accept zero-checksum UDP datagrams MAY restrict
this tolerance to remote hosts whose IPv6 addresses include an IPv4
mapped address.
(Thus no new tolerance is introduced for IPv6 hosts.)
- IPv4 to IPv6 translators that receive UDP datagrams with zero
checksums MAY keep these checksums in translated datagrams.
((1) Simple to implement; (2) works for fragmented IPv4 datagrams;
(3) avoids the waste of CPU power to compute UDP checksums of IPv4
unfragmented UDP datagrams received with zero checksums.)
Regards,
RD
--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------