I keep not wanting to necro either, but this post keeps coming up in my search results and it drives me nuts that the last post is both pedantic and wrong.
So nice that the one guy on here that knows the OSI model can correct all the "gurus" in re: what L3 vs L4 is. And yeah, every networking 101 textbook will tell you that a router operates on L3, and TCP is on L4, so clearly a TCP congestion protocol can't affect a router's operation. "Only when the router itself is an endpoint to a TCP connection," like when you log into it, he says.
Of course, *maybe* the gurus have gotten a little farther than networking 101...
Turns out, someone that'd gotten a little farther in their studies (even a very basic CCNA should know this) would realize that under the typical use case, the router is an endpoint to TCP connections *all the time*. After all, 99% of people using these routers are using it for NAT (or more correctly, NAT with IP masquerading -- or what the Cisco people would call PAT; shame on them for using proprietary terms but good on them for actually differentiating between the two technologies). We're abstracting a local subnet (e.g. 192.168.0.0./24) behind a single public IP address provided by an ISP. That is done by the router assigning that particular machine/port combination a unique, new outgoing port number at the router end -- hey, catch that, did ya? Ports don't exist as a construct until the TCP layer, in L4! So IP masquerading actually requires the router to decode the L4 packet, reconstruct the packet with the public IP in L3/IP and the newly assigned port in L4/TCP, and then establish a *new* TCP connection with the receiving server.
Yup -- turns out pretty much *all* of your non-handshake traffic coming out of your NATted router is affected by your TCP congestion control protocol. No shock to anyone who's actually played with the setting, as in the few years back of evidence on this thread. Remember, kids: science doesn't mean that when others observe something that doesn't conform to the science you tell them they're wrong. It means that when others observe something that doesn't conform, you validate that they saw what they saw (depending on the circumstances, multiple people seeing the same thing can often be pretty decent validation) and then you *look for a better answer*.
Aside 1: How exactly could anyone make the "routers only operate on L3, never above" argument when using router software with L7 QoS? Beyond me.
Aside 2: The OSI protocol model is a theoretical construct, which real systems are under no obligation to conform to -- and it just so happens that the TCP/IP specs define their own protocol model. OSI doesn't even directly apply here. That *should* have been something that was taught in your networking 101 class.