So verschicken Sie Pakete, die größer als 1500 bytes pcap_sendpacket?

Tatsächlich, ich habe zwei Fragen.

Ich fange gefilterten Netzwerkverkehr durch libpcap auf Debian. Dann muss ich replay dieser Verkehr auf Win2k3 server. Manchmal habe ich das capture-Pakete, TCP-und UDP, viel größer als 1500 bytes (MTU-Standardgröße für Ethernet). E. g., 2000+ bytes. Ich habe keine besonderen änderungen an der MTU-Größe auf Linux. Also Frage #1:

Was ist der Grund für diese Pakete viel größer als die Standard-MTU? Jumbo-frames? Dieser Wikipedia-Artikel besagt, dass "Netzwerk-interface-Karten fähig, jumbo-frames erfordern die explizite Konfiguration, um die Verwendung von jumbo-frames", aber ich bin mir nicht bewusst über derartige Konfiguration. Auch ifconfig zeigt mir "MTU:1500". Kann es sein, die irgendwie im Zusammenhang mit "interrupt-combining-Technik" (oder "interrupt-coalescing" wie in dieser Artikel)? Kann ich das unterdrücken solcher Pakete?

Dann Frage #2:

Wie kann ich das senden solcher Pakete durch pcap_sendpacket auf Windows? Ich erhalte die Fehlermeldung "Fehler send: PacketSendPacket fehlgeschlagen" nur für Pakete, die größer als 1500 bytes. Scheint, ich kann nicht die Verwendung von jumbo-frames, da ich das senden der Daten an direkt angeschlossene custom "net tap", wie Sie pci-Karte und ich bin mir nicht sicher, ich kann konfigurieren Sie Ihre Netzwerkkarte. Was sonst? Sollte ich das fragment diese Pakete laut Protokoll Regeln?

EDIT:

Überprüft Fragmentierung von NIC wie Guy Harris vorgeschlagen:

~# 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

Das gleiche für eth1 und br0 - Netzwerk-Brücke zwischen eth0 und eth1 ich bin zu schnüffeln.

Und ich bekomme noch immer große UDP-Pakete.

  • pcap ist wahrscheinlich kleben fragmentierten Datagramme wieder zusammen in einem Stück von der Draht-Pakete für Sie. Überprüfen Sie, wenn Sie können, bitten Sie ihn, Ihnen, ethernet-frames und nicht-transport-Pakete.
  • Ich bin empfangen von ethernet-frames
Schreibe einen Kommentar