Frage

Beim Ping-Echo Validierung, scheint es, dass Dienstprogramme / Bibliotheken oft nur die Prüfsumme des Pakets überprüfen, und nicht wirklich bestätigen, dass die Nutzlast gesendet, um die Nutzlast übereinstimmt, die zurückgegeben wurde. Zum Beispiel nur ICMP-Parser überprüft Wireshark für schlechte Prüfsummen, und das ist alles, dass Rubys Vernetzung Rubin sowie Schecks.

Ich bin Debuggen ein Low-Level-Netzwerktreiber Problem, und ich brauche, um zu bestätigen, dass die Daten nicht verstümmelt werden, wenn sie empfangen werden, so mag ich meinen Fahrer testen, eine Low-Level-Anforderung wie ICMP Echo . Allerdings sind meine vorhandenen Ping-Tools unzureichend, weil ich fürchte, dass, während die Prüfsumme der Daten in der Echoantwort enthaltenen entsprechen können, werden die Daten in der Echoantwort nicht die Daten in der Echo-Anforderung entspricht. Also auch wenn sie beide gültige Prüfsummen haben (es gibt keine Fehler in der Prüfsumme-Code), gibt es einen Fehler in den Daten Empfangsteil, so dass mein Fahrer nicht empfangen, was der Wirt denkt es aussendet.

Wie kann ich überprüfen, um das Echo Nutzlast, um zu bestätigen, dass es das gleiche wie das, was ich geschickt? Wenn es ein eigenständiges „paranoid ping“ ist Dienstprogramm, das ich verwenden könnte, das ist auch in Ordnung - ich muß nur in der Lage sein, um die Ping-Längen und Frequenzen zu variieren, da ich nur sehe das Problem, wenn das Netzwerk des überflutet.

Ich würde es vorziehen, in Form eines Ruby-Bibliothek / Schnipsel, aber jede Sprache oder Standalone-Anwendung ist akzeptabel, so lange, wie ich es in auf Windows Schuhanzieher kann.

Danke!

War es hilfreich?

Lösung 2

@ Tom: Danke für die Antwort. Du hast gesagt:

  

Der Empfänger wieder berechnet eine Prüfsumme aus den Daten und vergleicht sie mit dem, die gesendet wurde.

Aber dann sagte sie auch:

  

Das ICMP-Prüfsumme enthält nicht die TCP-Header, nur den ICMP-Typen, Code, Prüfsumme und Datenfelder.

Die ICMP-Typ unterscheidet sich zwischen dem Echo Request / Response (eine 0 ist, das andere Ich denke, 8). So per Definition (und in der Praxis, wenn Sie einen Blick mit Wireshark nehmen) die ICMP Prüfsummen nicht zwischen der Sendeanforderung und der Echoantwort entsprechen.

Mein Problem war, dass, wenn Ping-Dienstprogramme / Bibliotheken etwas überprüft (und oft nicht taten), sie nur geprüft, um sicherzustellen, dass die Prüfsumme der Daten abgestimmt. Es scheint, dass nur selten tatsächlich Menschen mit der echo'd Antwort der gesendeten Daten überprüfen, um sicherzustellen, dass die beiden Nutzlasten identisch sind. Es ist möglich, dass sowohl eine Anfrage und eine Antwort gültig Prüfsummen haben könnte, aber unterschiedliche Nutzlasten und die meisten Ping-Routinen ich gesehen habe, haben nicht für einen solchen Zustand überprüft worden (aber es ist nun mal die Art von Fehler zu sein, ich habe auf meinem Gerät im Moment).

Vielen Dank für meine Frage suchen und reagiert aber -. Es ist sehr geschätzt

@All:

In der Antwort auf meine eigene Frage, ich war in der Lage, die robust

Andere Tipps

Ich glaube, Sie den Punkt der Prüfsumme sind vermisst. Der Zweck des Prüfsumme zu überprüfen, dass die Daten intakt sind. Der Absender berechnet die Prüfsumme aus den Daten und überträgt ihn mit den Daten. Der Empfänger erneut berechnet eine Prüfsumme aus den Daten und vergleicht sie mit dem, die gesendet wurde. Wenn sie nicht übereinstimmen, dann sind die Daten nicht intakt oder einer der beiden rechnet es falsch. Am häufigsten schlechten Prüfsummen führen nicht verworfene Pakete, weil es eine Menge gebrochen Protokoll gibt stapelt und natürlich Paket manglers und reparieren nicht die Prüfsumme, aber wenn beide Seiten passieren, es richtig zu tun, dann die Prüfsumme Scheck sagt Ihnen, dass die Daten intakt ist.

Suchen Sie auf den TCP-Prüfsumme oder die ICMP-Prüfsumme? Das ICMP-Prüfsumme enthält nicht die TCP-Header, nur die ICMP-Typen, Code, Prüfsumme und Datenfelder. Eine TCP-Prüfsummenfehler nicht unbedingt die ICMP Inhalte bedeuten nicht intakt sind, könnte es nur bedeuten, dass die TCP-Header mit messed wurden (durch eine unterbrochene NAT, vielleicht).

scroll top