I took an introductory course to networking this semester and I was wondering: looking at things at the layer 4 level using TCP can the throughput on the network exceed its bandwidth? According to the definition I believe throughput is defined as the percentage of packets on a link whether they fail to reach the other end or not.

If that's the true definition and a network theoretically can run at 100% of its bandwidth wouldn't all window sizes of senders on that link now grow larger too and altogether exceed the bandwidth of the entire link?

In other words the throughput momentarily would exceed 100% which would surely lead to packet loss, am I correct to think of it this way?

  • 1
    Can there be 25hrs in a day? A 1Gb link is a 1Gb link. No amount of prayer or math can make it move more than 1Gb. You can throw more than 1Gb at it, but only 1Gb will ever get through it. The rest is either delayed (queued) or lost (dropped) – Ricky Beam Mar 5 '19 at 23:58
  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you can provide and accept your own answer. – Ron Maupin Dec 14 '19 at 21:14

The bandwidth is the number of bits that can be sent on a link in one second. The throughput is the amount of data sent, and that will need to subtract the protocol overhead from the bandwidth, so no, the throughput cannot exceed the bandwidth. It may seem that way if you compress the data, but that is an illusion.

| improve this answer | |
  • Well if I send more than the network link can handle wouldn't it still be accounted for? As in we could exceed 100% although it would surely cause segments to be lost – crommy Mar 5 '19 at 20:10
  • It would simply be queued or dropped at the interface. You cannot send more bits than the interface can send during a specific time period (one second). – Ron Maupin Mar 5 '19 at 20:11
  • I see, so what matters is what is physically sent, I've always looked at the throughput "through the eyes" of the sender meaning the sender could send more than what the network could handle. Thanks for making it clear. – crommy Mar 5 '19 at 20:14
  • 1
    @edanpatt I wonder if what you're really asking is what would happen if you tried to send move bits in one second than the physical interface could handle. Generally, every layer of the network stack is designed to prevent this, so one answer is, "you just can't". In situations where it is possible to attempt this, the data that is attempted beyond the bandwidth limit is dropped or otherwise lost in some way. The net effect being that you have reduced your throughput because the fragmentary data is useless and everything must be re-transmitted. – Todd Wilcox Mar 5 '19 at 23:23
  • 2
    @edanpatt If the data is in a queue still waiting to go out of the network port, is it really "sent"? – user253751 Mar 5 '19 at 23:56

TCP also implements a receive window that's sent in the ACK for each received packet, so if you try to overload the host on the other end, it'll set the receive window to a smaller value as the TCP receive buffer fills, until finally it's set to 0 to tell the sending party to back off until it has had time process the incoming packets and hand them off to the upper layers of the networking stack. So this limits the sending capabilities. Also, if a network switch were to drop a frame due to over-congestion, that will cause TCP to halt everything, ask for a fast retransmit of the missing packet (since packets will start to arrive out of order), and then resume processing of the other packets. TCP doesn't care about maximum speed or throughput, it cares about getting every single frame through, in order and without errors. For what you're describing to even happen, you'd need to use another Layer 4 protocol, preferably something which doesn't care about anything, like UDP.

| improve this answer | |

Throughput on the network device can and in fact it is highly recommended to be so.

Let's say we have an industrial switch with 24 gigabit ports. It's bandwidth will always be gigabit on any of the ports but the total throughput it can sustain can be 10 gigabit or more. The closer the value is to the total combined speed of the ports, the better the switch will be under heavy traffic load. Example: a 52-port XGS2210 switch can sustain a throughput of 176 Gpbs, which is more than 48Gbps from ethernet ports + 40Gbps from optical ports. That means it will never be overloaded even if full traffic is present on all ports.

A bad implementation example are some home routers that do offer gigabit ports for both LAN and WAN but their throughput is limited to 500Mbps or less.

| improve this answer | |

Yes, sort of. ISPs often "oversell" the capacities of their lines, so that the total throughput available to the users is greater than the capacity of their line. They do this because usually the data the users use is significantly less than what they'd be allowed to use, theoretically - it's rare for all of the users to use their maximum allocated capacity at the same time. For instance, if they have a line that has 1 GB/s of throughput, they might sell 50 100 MB/s plans to their customers.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.