# Goodput

A les xarxes d'ordinadors, goodput (un acrònim de bé i rendiment) és el rendiment a nivell d'aplicació d'una comunicació; és a dir, el nombre de bits d'informació útils lliurats per la xarxa a una destinació determinada per unitat de temps. La quantitat de dades considerada exclou els bits de sobrecàrrega del protocol així com els paquets de dades retransmesos. Això està relacionat amb la quantitat de temps des del primer bit del primer paquet enviat (o lliurat) fins que es lliura l'últim bit de l'últim paquet.
Per exemple, si es transfereix un fitxer, el bon rendiment que experimenta l'usuari correspon a la mida del fitxer en bits dividida pel temps de transferència del fitxer. El rendiment positiu sempre és inferior al rendiment (la taxa de bits bruta que es transfereix físicament), que generalment és inferior a la velocitat de connexió d'accés a la xarxa (la capacitat del canal o l'ample de banda).
Alguns exemples de factors que causen un rendiment inferior al rendiment són:
* Sobrecàrrega de protocol: normalment, la sobrecàrrega del protocol de la capa de transport, la capa de xarxa i, de vegades, la capa d'enllaç de dades s'inclou en el rendiment, però s'exclou de la producció bona.
* Control del flux de la capa de transport i evitació de la congestió: per exemple, l'inici lent de TCP pot provocar un rendiment inferior al rendiment màxim.
* La retransmissió de paquets perduts o corruptes a causa de la sol·licitud de repetició automàtica de la capa de transport (ARQ), causada per errors de bits o caiguda de paquets en commutadors i encaminadors congestionats, s'inclou a la capa d'enllaç de dades o al rendiment de la capa de xarxa, però no a la bona entrada.

## Exemple

Els fitxers per Ethernet es divideixen en fragments individuals per a la transmissió. Aquests fragments no són més grans que la unitat de transmissió màxima d'IP a través d'Ethernet, o 1500 bytes. Cada paquet requereix 20 bytes d'informació de capçalera IPv4 i 20 bytes d'informació de capçalera TCP, deixant 1460 bytes per paquet per a dades de fitxer (Linux i macOS estan limitats a 1448 bytes, ja que també porten una marca de temps de 12 bytes). Les dades es transmeten a través d'Ethernet en una trama, que imposa una sobrecàrrega de 26 bytes per paquet. Tenint en compte aquestes despeses generals, el rendiment màxim és de 1460/1526 × 100 Mbit/s, que és de 95,67 megabits per segon o 11,959 megabytes per segon.
Tingueu en compte que aquest exemple no té en compte la sobrecàrrega d'Ethernet addicional, com ara la bretxa entre trames (un mínim de 96 bits) o les col·lisions (que tenen un impacte variable, depenent de la càrrega de la xarxa). TCP afegeix la sobrecàrrega dels reconeixements (que juntament amb el temps de retard d'anada i tornada i la mida de la finestra TCP en efecte limiten la velocitat de cada connexió TCP individual, vegeu producte de retard d'ample de banda. Aquest exemple no té en compte la sobrecàrrega del propi protocol HTTP, que esdevé rellevant quan es transfereixen fitxers petits.

## Termini de lliurament de dades

El goodput és una relació entre la quantitat d'informació lliurada i el temps de lliurament total. Aquest termini de lliurament inclou:
* Espais de temps entre paquets causats pel temps de processament de generació de paquets (una font que no utilitza tota la capacitat de la xarxa) o pel temps de protocol (per exemple, evitació de col·lisions).
* Retard de transmissió de dades i sobrecàrrega (quantitat de dades dividida per velocitat de bits).
* Retard de propagació (distància dividida per la velocitat de propagació de l'ona).
* Retard de la cua de paquets.
* Retard de traducció de NAT.
* Retard de processament d'emmagatzematge i reenviament del node intermedi.
* Temps de retransmissió de paquets (en cas de paquets suprimits en encaminadors congestionats o errors de bit detectats).
* Recepció retardada a causa del control del flux, l'evitació de la congestió i el retard en el processament.

## Referències

* ↑ «What is Goodput - and Why It Matters» (en anglès americà), 27-09-2021. [Consulta: 14 novembre 2023].
* ↑ «What is the difference between throughput & goodput?» (en anglès). [Consulta: 14 novembre 2023].
* ↑ «Cisco Learning Network» (en anglès). [Consulta: 14 novembre 2023].
* ↑ Stuart Cheshire. «TCP Performance problems caused by interaction between Nagle's Algorithm and Delayed ACK» (en anglès). [Consulta: 13 gener 2010].
* ↑ «Difference between good-put throughput and data rate» (en anglès). [Consulta: 14 novembre 2023].