Halløj herinde..
Jeg står og skal teste hvordan nogen af vores produkter her på jobbet håndtere tab af halv vigtig udp pakker.
og må krybe til korset, og sige at programmeringsvis (med en pc og 2 netkort, linux mm) så er jeg ikke dygtig nok til dette.
plus at så tror jeg at en noget mere offiel test vil være bedre at have til produktet...
nogen der kender til noget i denne kaliber?
Prøv https://jagt.github.io/clumsy/
Der kan du simulere pakketab, lag osv på en specifik protocol
Vigtige pakker og udp, høre ikke sammen.
UDP er en forbindelseløs protokol, dvs. At den er designet til at sende data, hvor at tabte datapakker ikke har nogen betydning, så derfor egner den bedst til stramning, spil, Webcam og ip telefoni. Da pakkerne ikke bliver gensendt, da modtager ikke sender nogle kvittering.
TCP, er en forbindelse orienteret protokol hvilket gør at den sender en kvittering, når at pakken er modtaget, og hvis at den mangler en pakke, så bliver den gensendt, da dataene ellers ikke vil kunne læses.
#2 i know, men vores controller benytter sig af begge, hvor tcp er alle de vigtigste data der bliver sendt imellem dem, som Hz, og volt, og hvilke powerrange de skal virke i.
og så har vi noget der hedder PMS (Plant Management System) som holder styr på hvilke controllere der er på netværket, deres position, og nogle andre små data (alt efter mængden af data er det et sted imellem 1500-200 bytes af hvad jeg lige kan læse mig frem til) som bliver sendt over multicast, så hvis disse pakker ikke bliver sendt/korrupte eller ligende skal vi have nogen specifikke fejlmeldseleler.
deraf kunne jeg godt tænke mig af vide hvad der findes af løsninger til enten at 'sniffe' en pakke og så ændre i den og sende den ud igen som en korrupt fil.
eller, et stykke hardware som sidder imellem controllerne og enten fjer udp pakker eller beskadiger dem.
Vigtige pakker og udp, høre ikke sammen.
UDP er en forbindelseløs protokol, dvs. At den er designet til at sende data, hvor at tabte datapakker ikke har nogen betydning, så derfor egner den bedst til stramning, spil, Webcam og ip telefoni. Da pakkerne ikke bliver gensendt, da modtager ikke sender nogle kvittering.
TCP, er en forbindelse orienteret protokol hvilket gør at den sender en kvittering, når at pakken er modtaget, og hvis at den mangler en pakke, så bliver den gensendt, da dataene ellers ikke vil kunne læses.
Skrev ICE-Cool d. 15-10-2018 20:15:36
#4
Det du skriver er korrekt, vil dog for en ordens skyld tilføje, at UDP også benyttes til trafik, hvor indholdet kun er relevant kort. eks. IP telefoni og Video overvågning hvor du ikke har noget at bruge en pakke til efter få sekunder.
Et gæt
"som holder styr på hvilke controllere der er på netværket, deres position, og nogle andre små data"
Kan det tænkes dit program er bygget til at kunne håndtere tabet af pakker uden problemer? udover måske en langsommere live log (rent gæt).
Derudover så har er der en ting
deraf kunne jeg godt tænke mig af vide hvad der findes af løsninger til enten at 'sniffe' en pakke og så ændre i den og sende den ud igen som en korrupt fil.
eller, et stykke hardware som sidder imellem controllerne og enten fjer udp pakker eller beskadiger dem.
Du tager ikke "bare" en pakke og ændrer i den, en pakke indeholder tæt på ingenting, for at få data frem kræver det rigtig mange pakker.
Hvordan er netværket imellem din source og destination? Hvis der sidder en firewall kunne du potentielt blokere trafikken kortvarigt på den UDP port, og se om det kan give dig den test som du beder om.
#5
Heh, du har helt ret, der bliver håndteret hvis pakker ikke kommer frem og vi for en 'missing controller' efter et givent antal pakker ikke kommer frem, og vi kan følge med i hvor mange der ikke kommer frem.
jeg ved godt jeg 'ikke bare' kan tage en pakke og ændre i den, da både crc data og hop samt alive, også skal passe sammen alt sammen. og at det ikke hjælper bare at tage en enkelt pakke, men nærmere en hel sekvens af dem (vi sender en 50-100 pakker i sekundet alt efter hvilket mode controlleren er i)
id er hvilket controller id den har (vi har op til 64)
Vores controllere er daisy chained sammen i grupper af 4 eller 8 (alt efter tavle størrelse)