Re: [tsvwg] [iccrg] New Internet Draft: Congestion Signaling (CSIG)

Christian Huitema <[email protected]> Tue, 20 Feb 2024 12:08:10 -0800
Newsgroups gmane.ietf.ippm,gmane.ietf.tsvwg,gmane.ietf.irtf.iccrg
Message-ID <[email protected]>

On 2/20/2024 9:55 AM, Sebastian Moeller wrote:
>> That's more of a statement of security and not feasibility. There's simply no security in the Internet, so we cannot trust or validate that anonymous intermediate nodes are going to write correct information. Any plain text in a packet on the Internet is subject to inspection and modification if the data isn't authenticated, and in the worst case this could be a DoS vector by writing bad information.
> [SM3] Indeed, but e.g. for TCP you would need to know a lot about the most recent packet to be able to play games, no? So either you are on path and already can drop/duplicate packets at will or you are off path but still need a recent enough veridical packet to be able cause mischief, no? (I might be insufficiently creative in attack vectors)

I am analysis congestion control information using the framework of 
"honest signals". In human communication, "honest signals" are those 
that cannot be easily faked by the communicator. For example, smiling is 
not really a honest signal, because it is easy to fake; blushing, on the 
other hand, is hard to fake.

When it come to Internet wide congestion control, we have pretty much 
the same issue. Networks may want to fool the application for a variety 
of reasons, and may start faking congestion signals. Some of these 
signals are hard to fake. End to end data rate for example: slowing a 
specific stream of packets is hard to fake; measuring the end to end 
data rate is a pretty good indication of the state of the network. End 
to end RTT is also a rather honest signal: yes, routers could put some 
specific packets in a slow queue, but that requires resource.

Packet losses almost belong in that category. They are not hard to fake, 
routers could play favorites and selectively drop packets with a certain 
profile. But dropping too many packets affects the "quality rating" of a 
provider, so there is some pressure to not fake it. That pressure is 
probably one of the reasons behind bufferbloat. The main problem with 
packet loss as a signal is that losses may have other causes than 
congestion.

ECN is not really a honest signal. Setting a bit in a packet header does 
not require a lot of efforts, so routers could do that to play 
favorites. In fact, past bugs in some networks caused almost all packets 
to be marked as CE. Using ECN is very nice when you can trust it, but 
end nodes should probably do that cautiously, detecting for example a 
sudden raise in ECN marks rather than reacting to an average value.

ECN is just one bit. There is always a temptation to do a better ECN 
with many more bits. For example, CE directs a sender to slow down. It 
would be nice to have a corresponding "All clear" signal telling the 
senders that they can speed up. L4S attempts to do that by modulating 
the CE bit, so that a low frequency kinda indicates "all clear", while a 
high frequency says "slow down", and give some indication of how much. 
Suddenly, one bit becomes several bits, just spread over many packets.

The idea of adding more bits in packet headers is not exactly new -- see 
for example TCP QUIC Start by Sally Floyd et al., RFC 4782, January 
2007. The problem is that the more bits you add, the more you exacerbate 
issues of trust, and also risks of bugs. "Many more bits" may work in a 
controlled environment, but I really do not see that working on the 
whole Internet.

-- Christian Huitema