Throughput
From Wikipedia, the free encyclopedia
-
For the usage of the term in business management, see throughput (business).
In communication networks, throughput is the amount of digital data per time unit that is delivered to a certain terminal in a network, from a network node, or from one node to another, for example via a communication link. The throughput is usually measured in bit per second (bit/s or bps).
The system throughput or aggregate throughput is the sum of the data rates that are delivered to all terminals in a network.
Often maximum throughput is implied by the term throughput. The maximum throughput of a node or communication link is synonym to its capacity.
The maximum throughput is defined as the asymptotic throughput when the load (the amount of incoming data) is very large. In packet switched systems where the load and the throughput are equal (where there are no packet drops), the maximum throughput may be defined as the load in bit/s when the delivery time (the latency) asymptotically reaches infinity.
Contents |
[edit] Channel utilization
The channel utilization in percentage is the achieved throughput related to the physical data rate in bit/s of a digital communication channel (also known as the network access connection speed, the digital bandwidth or the channel capacity). For example, if the the throughput is 70 Mbit/s in a 100 Mbit/s Ethernet connection, the channel utilization is 70%.
In a point-to-point or point-to-multipoint communication link, where only one terminal is transmitting, the maximum throughput is often equivalent to or very near the physical data rate (the channel capacity), since the channel utilization can be almost 100% in such a network, except for a small inter-frame gap.
For example in Ethernet, the interframe gap is 12 bytes, and the maximum frame size 1538 bytes (1500 byte payload + 12 byte interframe gap + 8 byte preamble + 14 byte header + 4 Byte trailer). This corresponds to a maximum channel utilization of (1538-12)/1538•100% = 99.2%, or a maximum throughput of 99.2 Mbit/s in a 100 Mbit/s Ethernet connection.
In a computer network, the throughput that is achieved from one computer to another may be lower than the maximum throughput, and than the network access channel capacity, for several reasons, for example:
- The channel capacity may be shared by other users. If a bottle neck communication link physical data rate R is shared by N, every user typically achieves a throughput of approximately N/R if fair queuing best-effort communication is assumed.
- Flow control, for example in the TCP protocol, affects the throughput if the bandwidth delay product is larger than the TCP window, i.e. the buffer size. In that case the sending computer must wait for acknowledgement of the data packets before it can send more packets.
- Packet loss due to Network congestion. Packets may be dropped in switches and routers when the packet queues are full due to congestion.
- Packet loss due to bit errors.
- TCP congestion avoidance controls the data rate. So called "slow start" occurs in the beginning of a file, and after packet drops caused by router congestion or bit errors in for example wireless links.
- Scheduling algorithms in routers and switches. If fair queuing is not provided, users that send large packet will get higher bandwidth. Some users may be prioritized in a weighted fair queuing (WFQ) algorithm if differentiated or guaranteed quality of service (QoS) is provided.
- Ethernet "backoff" waiting time after collisions.
[edit] Throughput, goodput and overhead
The maximum throughput is often an unreliable measurement of perceived speed, for example the file transmission speed in bits per seconds. As pointed out above, the achieved throughput is often lower than the maximum throughput. Also, the protocol overhead affect the perceived speed.
The throughput is not a well-defined measure when it comes to how to deal with protocol overhead.
The most simple definition is the number of bits per second that are physically delivered. A typical example where this definition is practised is an Ethernet network. In this case the maximum throughput is the gross bitrate or raw bitrate.
However, in schemes that include forward error correction codes (channel coding), the redundant error code is normally excluded from the throughput. An example in modem communication, where the throughput typically is measured in the interface between the PPP protocol and the circuit switched modem connection. In this case the maximum throughput is often called net bitrate or useful bitrate.
To determine the actual speed of a network or connection, the goodput measurement definition may be used. For example in file transmission, the goodput corresponds to the file size (in bits) divided by the file transmission time.
The goodput is the amount of useful information that is delivered per second to the application layer protocol. Dropped packets, packet retransmissions and protocol overhead are not counted. Because of that, the goodput is lower than the throughput. Technical factors that affect the difference are presented in the goodput article.
[edit] Throughput over analog channels
The maximum throughput of a point-to-point or point-to-multipoint physical transmission medium, is equal to or near the channel capacity. This is affected by modulation method and physical layer protocol overhead such as error correction coding, bit synchronization and equalizer training sequences.
The maximum throughput may be related to the analog bandwidth of a physical transmission medium, measured in Hertz. The link spectral efficiency in bit/s/Hz is the maximum throughput divided by the analog bandwidth. It is a measure of the efficiency of the digital transmission scheme.
In wireless networks or cellular systems, the system spectral efficiency in bit/s/Hz/area unit, bit/s/Hz/site or bit/s/Hz/cell, is the maximum system throughput (aggregate throughput) divided by the analog bandwidth and some measure of the system coverage area.
[edit] Throughput and latency
Normally throughput and latency are opposed goals. To improve latency you typically want to increase how much the computer checks to see if you are trying to interact. This checking overhead slows you down. However, there is one very common exception to this rule. Network protocols and programs tend to synchronize both ends regularly. If these synchronizations are slow, then throughput can suffer tremendously.
The perceived speed is mostly based on the speed of requests made or responsiveness. As such, responsiveness has far less to do with throughput than latency. To illustrate this, consider a truck full of magnetic tape en route from Moscow to Paris. The time or latency it takes to deliver the data may be several days, but the amount or throughput of data delivered will exceed the throughput of a broadband connection. In contrast, the broadband connection, which has a throughput many times less than that of the truck, has a relatively low latency and can deliver smaller amounts of data much faster. For a user, surfing the Internet for instance, the latter which has a lower latency is perceived as "faster".
Latency is measured from the time a request (e.g. a single packet) leaves the client to the time the response (e.g. An Acknowledgment) arrives back at the client from the serving entity. The unit of latency is time. Throughput on the other hand is the amount of data that is transferred over a period of time. For example if over ten seconds twenty packets are transferred then the throughput would be 20/10=2 packets per second. Throughput can have many units (for example: "bits/second," "bytes/second," or "packets/second"), but it is always measured in a volume-per-time ratio.
[edit] See also
- Measuring data throughput
- Goodput
- Link and system spectral efficiency