Ich versuche, Traceroute für iOS in C zu implementieren. (Zum Beispiel, um herauszufinden, welcher Router nicht funktioniert). Leider kann ich das ICMP-Protokoll nicht verwenden, das mir jedes Mal eine Antwort sendet, wenn der Router mein Paket abbricht. Gibt es eine Möglichkeit, es mit TCP oder einem anderen Protokoll zu implementieren? Ich benötige einige Denkanstöße, wie dies erreicht werden kann.
Antwort
Zu viele Anzeigen?Grundsätzlich kann man alle drei verwenden, ICMP, UDP und TCP. Die BSD-Implementierungen verwenden meines Wissens nach UDP, wie in dieser Quelldatei:
http://www.opensource.apple.com/source/network_cmds/network_cmds-307/traceroute.tproj/traceroute.c
Wie man sehen kann, ist es nicht allzu trivial.
BEARBEITEN:
Quelle des Traceroute von FreeBSD:
http://svnweb.freebsd.org/base/release/9.1.0/contrib/traceroute/