Chcę przechwytywać pakiety UDP, które są przeznaczone do lokalnego portu, wyrażenie filtrujące jest takie jak udp port 20000
. Zauważam, że jeśli istnieje fragmentacja IP w pakiecie UDP, libpcap może przechwycić tylko pierwszy fragment IP. Przypuszczam, że powodem jest to, że drugi fragment IP nie jest z nagłówkiem UDP (myślę, że jest taki sam dla TCP), więc libpcap nie może ich przechwycić przy użyciu filtru express udp port 20000
.libpcap nie może przechwytywać fragmentów IP
Czy są jakieś obejścia tego problemu? lub dowolne inne biblioteki, które mogą przechwytywać pakiety przeznaczone dla określonego portu lokalnego?
dziękuję!
Jeśli pakiet UDP jest pofragmentowany, a fragmenty nie identyfikują swojego źródła/miejsca docelowego, to w jaki sposób w nazwie butlonu Zeusa są kierowane do właściwego hosta i aplikacji? –
Drugi fragment jest z nagłówkiem IP, ale bez nagłówka UDP. Stos IP/TCP będzie montował pierwszy i drugi fragment IP, zanim dostarczy cały pakiet UDP do aplikacji. Ale wydaje mi się, że libpcap nie może rozpoznać drugiego fragmentu IP. – misteryes
W jaki sposób stos TCP/IP wie, że drugi fragment należy do tego samego gniazda co pierwszy bez nagłówka UDP? Być może sam będziesz musiał dokonać ponownego montażu - co naprawdę nie powinno być trudne. –