Pregunta

Un cliente solicitó que el límite de MTU debería ser 1492.

¿Hay alguna forma de hacerlo en el código fuente (programa en C)?

¿Hay alguna otra forma de hacerlo en general?(¿ifconfig?)

¿Por qué alguien necesita modificar MTU hasta cierto límite?¿Cuál es el beneficio?Y lo mas importante: al cambiar la MTU, ¿existe algún riesgo de romper el código?

¿Fue útil?

Solución

No se trata directamente de la velocidad;Al aumentar la MTU, se reducen los gastos generales, que son datos que son responsables de la entrega adecuada del paquete, pero que el usuario final no puede utilizar;Esto puede tener un aumento en la velocidad, pero solo para tráfico pesado;

Además, si aumenta la MTU, es propenso a aumentar la cantidad de paquetes que se descartan (ya que tiene una probabilidad de error de bit fija y más bits en un paquete), lo que eventualmente causa una disminución en el rendimiento con los paquetes reenviados,etc ... Así que es un compromiso entre la sobrecarga y la integridad de los datos;

Supongo que es más una configuración de interfaz que algo que controlas con un programa;Por lo tanto, es mejor seguir con el comando 'ifconfig' o encontrar la solución equivalente para Windows.

Otros consejos

De forma programática usando C:

int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
struct ifreq ifr;
strcpy(ifr.ifr_name, "eth0");
if(!ioctl(sock, SIOCGIFMTU, &ifr)) {
  ifr.ifr_mtu // Contains current mtu value
}
ifr.ifr_mtu = ... // Change value if it needed
if(!ioctl(sock, SIOCSIFMTU, &ifr)) {
  // Mtu changed successfully
}

Funciona al menos en Ubuntu, consulte man netdevice .

El MTU es un número que define la unidad máxima de transmisión por paquete.Cuanto más grande sea, más rápido se enviarán sus datos.Suponiendo que puede enviar npackets / s de msize, si m crece, m*n también crece.

Creo que su cliente quiere esa MTU debido a su equipo de red (tal vez ethernet 802.3).Algunos equipos tienen marcos de mayor tamaño que otros.

Puede utilizar ifconfig con la opción mtutocambiar su valor: ifconfig eth0 mtu 1492.

la forma moderna de configurar los parámetros de la interfaz es a través de sysfs

sudo sh -c 'echo 1492 > /sys/class/net/tun/mtu'

Con C, simplemente abra y escriba como archivos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top