Re: the ECN rules for aggregated packets, I got intrigued by this problem and wrote a draft. The rules I proposed earlier are, unsurprisingly, not the whole story.
On Wed, Aug 10, 2022 at 7:05 AM Martin Duke <martin.h.d...@gmail.com> wrote: > Sounds good to me, we're all set modulo the thread with Joe. > > On Wed, Aug 10, 2022, 01:25 Valery Smyslov <s...@elvis.ru> wrote: > >> Hi Martin, >> >> >> >> please see inline. >> >> >> >> On Mon, Aug 8, 2022 at 5:12 AM Valery Smyslov <s...@elvis.ru> wrote: >> >> > >> > (Sec 9.1) >> > "TCP-in-TCP can also lead to "TCP meltdown", where stacked instances >> > of TCP can result in significant impacts to performance >> > [TCP-MELTDOWN]. For the case in this document, such meltdown can >> > occur when the window size of the outer TCP connection is smaller >> > than the window sizes of the inner TCP connections. The resulting >> > interactions can lead to packets backing up in the outer TCP >> > connection's send buffers. In order to limit this effect, the outer >> > TCP connection should have limits on its send buffer size and on the >> > rate at which it reduces its window size." >> > >> > Which "window" are you referring to? Receive window, congestion window, >> > or the >> > send buffer? My reading of [TCP-MELTDOWN] is that the tunnel ingress >> > should set >> > its send buffer size to the BDP of the tunnel, which is easier said >> than done. >> > It appears you are using "window" and "send buffer" interchangeably >> here in a >> > way that is confusing. >> >> This text was suggested by Joe Touch ( >> https://mailarchive.ietf.org/arch/msg/ipsec/eD85hixrzfqwg4UhwRZ8WL5PkDA/) >> If you think it is unclear, can you please suggest how it can be improved? >> >> >> >> OK, I'll start a separate thread with Joe and you. >> >> >> >> OK, thank you. >> >> >> >> >> > (9.5) >> > Implementations SHOULD follow the ECN compatibility mode for tunnel >> > ingress as described in [RFC6040]. In compatibility mode, the outer >> > tunnel TCP connection marks its packet headers as not ECN-capable. >> > If upon egress, the arriving outer header is marked with CE, the >> > implementation will drop the inner packet, since there is not a >> > distinct inner packet header onto which to translate the ECN >> > markings. >> > >> > This is not an accurate summary of compatibility mode. In compatibility >> mode, >> > the outer packet is marked Not-ECT, which means it will not be marked >> CE. In >> > normal mode, the outer packet is marked as the inner, and this might >> result in >> > an outer CE marking. >> >> Can you please, clarify why the description is inaccurate? >> >> According to RFC 6040 in compatibility mode outer packet are marked as >> not ECN-capable >> (Not-ECT). On the other hand, since using compatibility mode is SHOULD >> here >> and currently it is assumed that IPsec tunnels are used with normal mode >> (RFC 4301, RFC 6040), then some >> additional guidelines are given what to do if peer still uses normal mode. >> >> Am I missing something? >> >> >> >> I think my confusion here was that I read the second sentence ("If upon >> egress...") as also describing RFC6040, >> >> which I see now it does not. My apologies; perhaps splitting it into two >> paragraphs would help. However, the need >> >> for this text is related to difficulty mapping outer to inner; see also >> below. >> >> >> >> I moved this sentence to a new paragraph. >> >> >> >> >> > It's a shame that there is no attempt to figure out a mapping between >> inner >> > and >> > outer that would make normal mode work, as this reviewer is optimistic >> that >> > ECN >> > marks will become increasingly important. But regardless, this section >> should >> > be clear and make correct statements. >> >> I'm not sure this is generally possible given that one outer TCP tunnel >> can include many inner TCP tunnels, so you have to decide which >> of them to inform. The things get worse if AggFrag mechanism >> is in use (draft-ietf-ipsecme-iptfs-13, in IESG evaluation). >> >> >> >> This isn't a DISCUSS, so you can choose to ignore this advice or not. >> However, my concern is that IPSec is going to miss >> >> out on the low-latency services operators are now enabling through ECN. >> >> >> >> Not exactly :-) Note, that TCP is not a default transport for >> IPsec >> >> and in case ESP is sent over IP or UDP, all the modern ECN >> >> techniques must work well (I guess you mean L4S networks?). >> >> TCP is a backup transport in case no other is available and >> >> due to the inherent problems (TCP-in-TCP) we don't expect >> >> to get good performance in this case, so there is no point >> >> to complicate the protocol. TCP encapsulation is for those cases >> >> when you need things to work somehow, not in the best way. >> >> >> >> If it were me I would design it this way: >> >> >> >> 1) Encapsulators SHOULD NOT mix ECT(0), Not-ECT, and ECT(1) inner packets >> in the same outer packet. >> >> 2) If they do, the outer packet MUST be marked Not-ECT. >> >> 3) If all packets are marked CE, mark the outer packet CE. >> >> 4) If CE packets are mixed with "something else", mark it "something >> else". >> >> 5) Decapsulators follow Figure 4 in RFC6040, except they SHOULD NOT log >> an event or raise an alarm when >> >> the outer packet is ECT(1) and one of the inner packets is CE. >> >> >> >> Per 3168, if an inner packet is fragmented, any CE applied to a fragment >> is applied to the reassembled packet. >> >> >> >> This might work, but please, see above. >> >> >> >> >> > (Appendix A) Why not provide an in-band way to determine TLS support? >> > There >> > could be another port number, or different magic bytes to indicate that >> TLS >> > handshake messages follow. >> >> Actually, with this draft in-band switching to TLS is really a downgrade, >> rather than an upgrade (surprise?). >> The reason is that actual protection of the traffic is provided by IPsec >> and both TCP and TLS >> are only used as transport mechanisms that allow IPsec to work in >> environments where it cannot >> be used otherwise. And TLS is worse, since it requires more resources and >> has bigger overhead. >> So, once you get through using plain TCP there is no sense to switch to >> TLS. >> >> >> >> Thanks for the info. It might be good to explicitly state this in >> Appendix A, but feel free to ignore that suggestion. >> >> >> >> Thank you! >> >> Valery. >> >> >> >> >> Regards, >> Valery. >> >>
_______________________________________________ IPsec mailing list IPsec@ietf.org https://www.ietf.org/mailman/listinfo/ipsec