In computer networks, goodput (a
portmanteau
In linguistics, a blend—also known as a blend word, lexical blend, or portmanteau—is a word formed by combining the meanings, and parts of the sounds, of two or more words together. of
good
In most contexts, the concept of good denotes the conduct that should be preferred when posed with a choice between possible actions. Good is generally considered to be the opposite of evil. The specific meaning and etymology of the term and its ...
and
throughput
Network throughput (or just throughput, when in context) refers to the rate of message delivery over a communication channel in a communication network, such as Ethernet or packet radio. The data that these messages contain may be delivered ov ...
) is the
application-level throughput of a communication; i.e. the number of useful information
bits delivered by the network to a certain destination per unit of time. The amount of data considered excludes
protocol overhead bits as well as retransmitted data packets. This is related to the amount of time from the first bit of the first packet sent (or delivered) until the last bit of the last packet is delivered.
For example, if a file is transferred, the goodput that the user experiences corresponds to the file size in bits divided by the file transfer time. The goodput is always lower than the throughput (the gross bit rate that is transferred physically), which generally is lower than network access connection speed (the
channel capacity
Channel capacity, in electrical engineering, computer science, and information theory, is the theoretical maximum rate at which information can be reliably transmitted over a communication channel.
Following the terms of the noisy-channel coding ...
or
bandwidth).
Examples of factors that cause lower goodput than throughput are:
* ''Protocol overhead'': Typically, transport layer, network layer and sometimes datalink layer protocol overhead is included in the throughput, but is excluded from the goodput.
* ''Transport layer
flow control and
congestion avoidance'': For example, TCP slow start may cause a lower goodput than the maximum throughput.
* Retransmission of lost or corrupt packets due to transport layer
automatic repeat request
Automatic repeat request (ARQ), also known as automatic repeat query, is an error-control method for data transmission that uses acknowledgements (messages sent by the receiver indicating that it has correctly received a message) and timeout ...
(ARQ), caused by bit errors or
packet dropping in congested switches and routers, is included in the datalink layer or network layer throughput but not in the goodput.
Example
Over Ethernet, files are broken down into individual chunks for transmission. These chunks are no larger than the
maximum transmission unit of IP over Ethernet, or 1500
byte
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable un ...
s. Each packet requires 20 bytes of
IPv4
Internet Protocol version 4 (IPv4) is the first version of the Internet Protocol (IP) as a standalone specification. It is one of the core protocols of standards-based internetworking methods in the Internet and other packet-switched networks. ...
header information and 20 bytes of
TCP header information, leaving 1460 bytes per packet for file data (
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
are further limited to 1448 bytes as they also carry a 12-byte time stamp). The data is transmitted over Ethernet in a frame, which imposes a 26 byte overhead per packet. Given these overheads, the maximum ''goodput'' is 1460/1526 × 100
Mbit/s which is 95.67 megabits per second or 11.959
megabytes per second.
Note that this example doesn't consider additional Ethernet overhead, such as the
interframe gap (a minimum of 96 bit times), or collisions (which have a variable impact, depending on the network load). TCP adds the overhead of acknowledgements (which along with the
round-trip delay time and the TCP window size in effect rate-limit each individual TCP connection, see
bandwidth-delay product). This example does not consider the overhead of the HTTP protocol itself, which becomes relevant when transferring small files.
Data delivery time
The goodput is a ratio between delivered amount of information, and the total delivery time. This delivery time includes:
* Inter-packet time gaps caused by packet generation processing time (a source that does not use the full network capacity), or by protocol timing (for example
collision avoidance)
* Data and overhead
transmission delay (amount of data divided by
bit rate
In telecommunications and computing, bit rate (bitrate or as a variable ''R'') is the number of bits that are conveyed or processed per unit of time.
The bit rate is expressed in the unit bit per second (symbol: bit/s), often in conjunction ...
)
*
Propagation delay
Propagation delay is the time duration taken for a signal to reach its destination, for example in the electromagnetic field, a wire, speed of sound, gas, fluid or seismic wave, solid body.
Physics
* An electromagnetic wave travelling through ...
(distance divided by wave propagation speed)
* Packet
queuing delay
In telecommunications and computer engineering, the queuing delay is the time a job waits in a queue until it can be executed. It is a key component of network delay. In a switched network, queuing delay is the time between the completion of si ...
*
NAT translation delay
* Intermediate node
store-and-forward processing delay
* Packet retransmission time (in case of deleted packets in congested routers, or detected bit errors)
* Delayed acknowledge due to flow control,
congestion avoidance and
processing delay
In a network based on packet switching, processing delay is the time it takes routers to process the packet header. Processing delay is a key component in network delay.
During processing of a packet, routers may check for bit-level errors in t ...
See also
*
Measuring network throughput
* Link and system
spectral efficiency
References
Sources
Goodput calculation{{Webarchive, url=https://web.archive.org/web/20100818222126/http://mailman.isi.edu/pipermail/ns-users/2001-June/015799.html , date=2010-08-18
Energy-Efficient Power and Rate Control with QoS Constraints: A Game-Theoretic ApproachRFC 2647 — Benchmarking Terminology for Firewall Performance
Network performance