2

我正在尝试在 c 中为 ios 实现 traceroute。(例如:为了找出哪个路由器不工作)。不幸的是,我不能使用每次路由器杀死我的数据包时都会向我发送响应的 ICMP 协议。有没有办法用 TCP 或其他协议来实现它。我需要一些关于如何完成的思考方向。

4

1 回答 1

1

基本上,一个人可以同时使用这三个,ICMP、UDP 和 TCP。BSD 实现使用 UDP AFAIK,如下源文件:

http://www.opensource.apple.com/source/network_cmds/network_cmds-307/traceroute.tproj/traceroute.c

正如你所看到的,这不是太琐碎。

编辑:

FreeBSD的traceroute的来源:

http://svnweb.freebsd.org/base/release/9​​.1.0/contrib/traceroute/

于 2013-01-04T16:15:52.640 回答