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
--------------------------------------------------------------------

Reply via email to