PER DISPOSITIVO ROOTED
(copiato dalla risposta di Mansour su questo post )
Acquista BradyBound . È uno shaper / limitatore di velocità di download a livello di sistema. Poche cose da notare:
- L'app richiede l'accesso come root.
- Funziona facendo cadere i pacchetti usando
iptables
. Questo spreca un po 'di traffico - quanto dipende dal tipo di traffico (ad es. Download di lunga durata, navigazione web).
- La misurazione della velocità viene eseguita per numero di pacchetti anziché per byte, quindi il limite di velocità non sarà preciso.
- Ciò limita solo il traffico TCP (non ha senso eliminare i pacchetti UDP).
Nota anche che sono l'autore di questa app.
Modifica n. 1:
Spiegazione:
I dati sono divisi in piccole parti chiamate Pacchetti da trasmettere attraverso la rete.
Può essere trasmesso tramite TCP (Transmission Control Protocol) o UDP (User Datagram Protocol)
Facciamo un esempio:
Supponiamo che tu sia il server e io sia l'host e voglio scaricare un file, quindi prima ti invierò una richiesta per esso, dopodiché elaborerai, e invece di inviare l'intero file, dividerai il file grande in piccoli pacchetti.
Ora ogni pacchetto che è stato creato conterrà informazioni come l'IP di origine (il tuo) e l'IP di destinazione (il mio), insieme ad alcuni dati aggiuntivi (numero di sequenza, dimensione dei dati, tempo di vita, ecc.)
Invierai quei pacchetti e loro potranno raggiungermi tramite router.
Non è necessario che tutti i pacchetti vengano da me attraverso lo stesso percorso. Possono venire da me attraverso diversi percorsi disponibili.
Quando mi raggiungono, TCP / UDP appare in foto.
Se hai utilizzato TCP per la trasmissione, quando un pacchetto mi raggiunge, ti viene inviato un riconoscimento che indica che il pacchetto mi ha raggiunto.
Questa funzionalità non è disponibile in UDP. Se hai utilizzato UDP, a differenza di TCP, non ti invia riconoscimenti. Ciò significa che tu, come server, non hai idea se i pacchetti mi stanno raggiungendo o meno. Nel caso in cui venga perso durante la trasmissione, viene perso per sempre.
Pacchetti che cadono
Far cadere i pacchetti significa scartare i pacchetti. Quindi, fondamentalmente, quando lascerò cadere il pacchetto inviato da te, ti verrà inviato un avviso (nel caso di TCP) che il pacchetto è stato perso durante la trasmissione, quindi dovrai inviarlo di nuovo.
In questo modo, spreca traffico e limita la velocità nello stesso momento in cui ottengo l'intero file.
Se lascerò cadere i pacchetti UDP, non riceverò l'intero file. Questo è il motivo per cui l'app non controlla il traffico UDP.
E sì, il privilegio di root è un must, poiché iptable è accessibile solo con accesso da superutente.