Wondering, because by the nature of TCP/IP, it's hard to get the full capacity of a link with a single TCP connection -- such as an HTTP download. You'll get much closer to full utilization with multiple connections -- such as with P2P app parallel downloading.
But to further complicate things: if you are saturating your uplink (as is also typical with P2P apps) on an asymmetric service, you may impair your download connections' throughput (as upstream ACKs on the downloads are occasionally dropped). So you should also cap your upload rate to something under the uplink capacity -- the P2P app or a home router may have configuration allowing this.
With those in mind, I've usually observed my throughput on DSL or cable modem links as much more than 60% of the advertised speed -- and sometimes more than 100% of the advertised speed!
that hasn't got much to do with the nature of TCP/IP but with the nature of the various links that your traffic will take and the limitations of the web server you are querying.
In a simple test situation (say ftp or http over a lan link) you are using TCP/IP/and some hardware link layer and you'll see close to wire speed.
It's inherent to TCP's exponential backoff, which means any one connection's throughput follows a sawtooth pattern, pushing to use more capacity, then falling back after lost packets. The gaps between the 'teeth' are suboptimal utilization.
Multiple TCP connections improve things as long as each connection's 'teeth' aren't aligned. Consumer broadband asymmetry makes it worse, because when one direction gets saturated (like an uplink) and loses ACK packets on connections that are primarily downward, the downward side still backs off, even if it wasn't yet close to using downward capacity.
Your example of getting full capacity from a LAN link isn't very instructive for what happens over broadband links. Suppose your NIC supports 100Mbps and every link to your LAN destination has at least that capacity. Your NIC will be the bottleneck; you won't trigger the TCP mechanisms. As soon as your 100Mbps local link hits your 10Mbps cable modem, the TCP congestion control becomes a significant factor.
Wondering, because by the nature of TCP/IP, it's hard to get the full capacity of a link with a single TCP connection -- such as an HTTP download. You'll get much closer to full utilization with multiple connections -- such as with P2P app parallel downloading.
But to further complicate things: if you are saturating your uplink (as is also typical with P2P apps) on an asymmetric service, you may impair your download connections' throughput (as upstream ACKs on the downloads are occasionally dropped). So you should also cap your upload rate to something under the uplink capacity -- the P2P app or a home router may have configuration allowing this.
With those in mind, I've usually observed my throughput on DSL or cable modem links as much more than 60% of the advertised speed -- and sometimes more than 100% of the advertised speed!