Ahoj
dělám vývoj embedded zařízení s mikrokontrolérem, AD převodníky a ethernetem, který má posílat bursty dat (offset + vzorky v 500 bajtech payloadu udp datagramu) do PC.
Pro základní seznámení se sítěma jsem nejpve používal Wireshark pro analýzu a pro základní komunikaci PC utilitku Packet sender.
Abych si mohl udělat nějaký základní procesing přijatých vzorků, tak jsem si z dostupných materiálů udělal jednoduchý konzolový UDP server v Cčku (
http://www.sallyx.org/sally/c/linux/udp,
http://www.binarytides.com/udp-socket-programming-in-winsock/ - pro widle).
Na PC otevřu udp socket pro naslouchání na určitém portu a pak v nekonečné smyčce přes recvfrom tahám přijaté data, které chci ukládat do texťáku ve vhodném formátu pro Octave (pořadí vzorku: hodnota)
S hrůzou jsem zjistil, že z burstu udp packetů zachytila tahle primitivní aplikace cca polovinu...zatímco wireshark mi tvrdí, že zachytil všechny. Pro cílovou funkci nevadí, že některé vzorky ztratím (z principu UDP a požadavků aplikace jsem s tím počítal), ale přece jenom 50% ztrátovost je přece jenom moc

.
Částečným řešením je snížit výstupní datový tok z embedded zařízení - ať už nějakým zpožděním mezi odesíláním jednotlivých paketů nebo zvýšit payload UDP datagramu a poslat ho vícekrát za sebou.
Zajímalo by mě, kde je problém, když Wireshark zachytí 98-100% UDP packetů z embedded zařízení.
Děkuji