En realidad, tengo dos preguntas relacionadas.¿Cómo enviar paquetes de más de 1500 bytes por pcap_sendpacket?
estoy capturando el tráfico de red filtrada por libpcap en Debian. Entonces necesito volver a reproducir este tráfico en el servidor Win2k3. A veces capturo paquetes, tanto TCP como UDP, mucho más grandes que 1500 bytes (tamaño de MTU predeterminado para Ethernet). Por ejemplo, 2000+ bytes. No hice cambios específicos en el tamaño de la MTU en ese Linux. Así que la pregunta # 1:
¿Cuál es la razón de estos paquetes mucho más grandes que MTU por defecto?Jumbo frames? Este artículo de Wikipedia afirma que "las tarjetas de interfaz de red capaces de marcos jumbo requieren una configuración explícita para utilizar marcos jumbo", pero no estoy al tanto de ninguna configuración de este tipo. También ifconfig
me muestra "MTU: 1500". ¿Se puede relacionar de alguna manera con la técnica de "combinación de interrupción" (o "interrupción de fusión" como en this article)? ¿Puedo suprimir tales paquetes?
Entonces, la pregunta # 2:
¿Cómo puedo enviar dichos paquetes por pcap_sendpacket
en Windows? Recibo el mensaje de error "Error de envío: Falló PacketSendPacket" solo para paquetes de más de 1500 bytes. Parece que no puedo usar marcos jumbo porque estoy enviando datos a un "toque de red" directamente conectado como una tarjeta pci y no estoy seguro de poder configurar su NIC. ¿Qué más? ¿Debería fragmentar estos paquetes de acuerdo con las reglas del protocolo?
EDIT:
cuadros fragmentación por NIC como Guy Harris sugirió:
~# ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: off
generic-receive-offload: off
large-receive-offload: off
ntuple-filters: off
receive-hashing: off
Lo mismo para eth1
y br0
- puente de red entre eth0
y eth1
la que estoy oliendo.
Y aún recibo grandes paquetes UDP.
pcap es probable que pegue datagramas fragmentados juntos en un solo trozo de los paquetes de cables para usted. Compruebe si puede pedirle que le proporcione marcos de Ethernet y no paquetes de transporte. –
@NikolaiNFetissov: Estoy recibiendo marcos de Ethernet –