2017-07-12 3 views
0

Je rejoue à partir d'un fichier .pcap contenant un seul datagramme UDP qui a été fragmenté en deux trames. Lorsque vous utilisez tcpreplay ou scapy, les deux programmes indiquent qu'ils ont envoyé les deux trames, mais je n'en reçois que 1 sur le périphérique directement connecté. Des idées pourquoi?Fragmentation de la trame UDP - réception d'une seule trame lors de l'envoi avec tcpreplay ou scapy

capture de paquets situé here

Edit: l'appareil connecté est un pare-feu et je suis en cours d'exécution tcpdump, donc j'attendre à voir les deux cadres

Edit2: tcpdump sur le pare-feu doit imprimer tous les paquets qu'il reçoit , même si elle devait être abandonnée pour une raison quelconque. Cependant, ce sont les seules empreintes tcpdump paquet:

968.681737 lan in 172.23.0.5.1812 -> 172.16.0.4.37507: udp 1434 (frag 4486:[email protected]+)

+0

Si le périphérique de réception utilise simplement l'API de socket normale pour recevoir UDP, la pile IP sur le périphérique fonctionne peut-être correctement et ré-assemble ces 2 paquets et fournit un datagramme à l'application comme prévu. – nos

+0

Je vais modifier la description ci-dessus - le périphérique de réception est un périphérique réseau (pare-feu), donc je m'attends à voir les deux cadres lors de l'utilisation tcpdump sur le pare-feu, mais je ne vois que le grand fragment. – john

+0

Ensuite, vous devez décrire soigneusement comment vous observez/déterminez que l'appareil ne "voit" qu'un seul paquet. Certains pare-feu réassembleront certainement les paquets UDP afin d'appliquer correctement les règles du pare-feu. D'autres pourraient selon votre configuration jeter l'un des fragments, vous devez fournir beaucoup de description détaillée de ce que vous faites et comment vous avez configuré votre pare-feu pour que quiconque fournisse de l'aide avec ceci. – nos

Répondre

0

Vous recevez datagrammes UDP, et non pas des fragments. Si les deux fragments arrivent, la couche IP va les combiner, voir que le paquet est maintenant terminé, et le transmettre à la couche UDP, qui le transmettra au processus de réception. Comme un seul datagramme réassemblé.

+0

Cela est vrai pour les applications basées sur socket, mais pas pour tcpdump qui devrait afficher toutes les images ethernet. Dans ce cas, il montre seulement le premier fragment IP, pas le paquet IP réassemblé. –