¿Cómo limitar / acelerar la velocidad de datos WiFi en mi dispositivo Android?


9

Estoy probando una aplicación de Android y necesito entender cómo se comporta la aplicación en diferentes velocidades de Internet. Un ejemplo de caso de prueba es: 1. establecer el ancho de banda máximo a 20 kbps y verificar cómo funciona; 2. establezca el ancho de banda máximo a 50 kbps y compruebe cómo funciona ... etc.

El problema es que no tengo idea de cómo limitar el tráfico.

Estoy usando WiFi y Charles Proxy . Uso a Charles para verificar cómo reacciona la aplicación. Desafortunadamente, no puedo limitar el uso de Charles; por alguna razón, los límites de Charles no afectan mi aplicación en absoluto.

De todos modos, ¿alguien puede ayudarme con este problema? ¿Tienes alguna idea sobre cómo limitar el ancho de banda?

Gracias por adelantado.


Parece que sería mejor usar un proxy diferente que admita la aceleración.
GAThrawn

Respuestas:


8

PARA DISPOSITIVO ENRAIZADO (copiado de la respuesta de Mansour en esta publicación )

Pagar BradyBound . Es un modelador / limitador de velocidad de descarga de todo el sistema. Pocas cosas a tener en cuenta:

  • La aplicación requiere acceso de root.
  • Funciona soltando paquetes usando iptables. Esto desperdicia algo de tráfico: cuánto depende del tipo de tráfico (por ejemplo, descarga de larga duración, navegación web).
  • La medición de la velocidad se realiza por número de paquetes en lugar de bytes, por lo que el límite de velocidad no será preciso.
  • Esto solo limita el tráfico TCP (no tiene sentido descartar paquetes UDP).

Tenga en cuenta también que soy el autor de esta aplicación.

Editar # 1:

Explicación:

Los datos se dividen en pequeñas partes llamadas paquetes que se transmiten a través de la red.

Se puede transmitir utilizando TCP (Protocolo de control de transmisión) o UDP (Protocolo de datagramas de usuario)

Tomemos un ejemplo:

Supongamos que usted es el servidor y yo soy el anfitrión y quiero descargar un archivo, así que primero le enviaré una solicitud, luego de lo cual procesará, y en lugar de enviar el archivo completo, dividirá el archivo grande en Pequeños paquetes.

Ahora cada paquete que se ha creado contendrá información como la IP de origen (la suya) y la IP de destino (la mía), junto con algunos datos adicionales (número de secuencia, tamaño de los datos, tiempo de vida, etc.)

Enviarás esos paquetes y pueden comunicarse conmigo a través de enrutadores. No es necesario que todos los paquetes me lleguen por la misma ruta. Pueden venir a mí a través de diferentes rutas disponibles.

Cuando me alcanzan, TCP / UDP aparece en la imagen.

Si ha utilizado TCP para la transmisión, cuando me llega un paquete, se le envía un acuse de recibo que indica que me llegó el paquete.

Esta característica carece de UDP. Si ha utilizado UDP, a diferencia de TCP, no le enviará acuses de recibo. Eso significa que usted, como servidor, no tiene idea de si los paquetes me llegan o no. En caso de que se pierda en la transmisión, se pierde para siempre.

Dejar caer paquetes

Descartar paquetes significa descartar paquetes. Básicamente, cuando descarte el paquete enviado por usted, se le enviará un acuse de recibo (en el caso de TCP) de que el paquete se perdió en la transmisión, por lo que deberá enviarlo nuevamente.

De esta manera, desperdicia el tráfico y limita la velocidad al mismo tiempo que obtengo el archivo completo.

Si descarto los paquetes UDP, no recibiré el archivo completo. Esa es la razón por la cual la aplicación no controla el tráfico UDP.

Y sí, el privilegio de root es obligatorio, ya que solo se puede acceder a iptable con acceso de superusuario.


¿Es posible limitar la velocidad de descarga solo no subir?
Rakki s

Parece difícil controlar la velocidad de descarga solamente ... pero intentaré actualizar la respuesta tan pronto como encuentre la manera de hacerlo.
Ash-Ishh ..

¿Es completamente imposible hacer que la aplicación funcione también en dispositivos no rooteados? Usted dijo que descartar paquetes usando iptables desperdicia algo de tráfico, ¿qué quiere decir con desperdicios? Sé que el límite de velocidad no será exactamente exacto, pero todavía necesito que sea bastante preciso, digamos una desviación del 10%. ¿Qué quiere decir con "esto solo limita el tráfico TCP (no los paquetes UDP)" ?, lo siento, no sé qué son TCP y UDP.
rakki s

0

Si está bajo Mac OS X, puede usar "Network Link Conditioner".

Puede instalarlo en xcode desde:

Xcode> Open Developer Tool> Más herramientas de desarrollador

Se abrirá una página web de recursos de Apple (es posible que deba iniciar sesión). En la lista de recursos, busque la última "Hardware IO Tools" y descárguela. Luego instale "Network Link Conditioner", agregará una opción en su panel de preferencias de mac.

La idea es tener tu Mac en Ethernet. Comparte su conexión por wifi. Limite el tráfico con Network Link Conditionner. Y conecta tu Android en tu Mac wifi.

editar: parece que la aceleración de la red de soporte de caché de calamar. http://www.tldp.org/HOWTO/Bandwidth-Limiting-HOWTO/index.html


0

Puede controlar el ancho de banda con su enrutador (si lo admite).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.