我试图在c中实现ios的traceroute。 (例如:为了找到哪个路由器不工作)。不幸的是,我不能使用每次路由器杀死我的数据包时向我发送响应的ICMP协议。它是用TCP或其他协议实现它的任何方式吗? 我需要一些关于如何完成的思考方向。iOS上的ICMP vs TCP协议
回答
基本上,可以使用全部三种,ICMP,UDP和TCP。 的BSD实现使用UDP据我所知,在这个源文件:
http://www.opensource.apple.com/source/network_cmds/network_cmds-307/traceroute.tproj/traceroute.c
正如你所看到的,这是不是太琐碎。
编辑:
FreeBSD的路由跟踪来源:
http://svnweb.freebsd.org/base/release/9.1.0/contrib/traceroute/
我目前正在使用该源代码,但正如您在代码中看到的那样,它会给我一个“好结果”(实际上只在使用ICMP protocole时才显示我的跟踪)。随着所有协议的其余部分,我将得到什么或***这是没有用 –
我确实有root权限。它可以配置在Xcode –
你的意思是原始套接字或其他人的根?我对苹果系统没有太多具体的了解。我会选择FreeBSD的traceroute实用程序的源代码,如果上述内容没有完全实现,这可能是可行的。我刚刚使用'traceroute -PUDP google.com'在我的FreebSD 8.2机器上尝试过,它显示出正确的结果,就像ICMP一样。请注意,某些路由器可能在某些3/4层协议上不能正确响应。 – Sam
- 1. Icmp协议问题
- 2. 网络协议TCP/UDP/ICMP之间的区别
- 3. AIMD TCP协议
- 4. WCF TCP协议
- 5. WebDav协议VS HTTP协议
- 6. ios蓝牙不支持tcp/ip协议
- 7. iOS 6上的AVAssetResourceLoaderDelegate协议
- 8. 在TCP上运行的写入协议
- 9. AWS Cloudformation配置ICMP协议安全组
- 10. ICMP是传输层协议吗?
- 11. 互联网协议端口vs TCP端口vs UDP端口
- 12. iOS的协议
- 13. OPC vs SNMP协议
- 14. BitTorrent对等线协议(TCP)
- 15. tcp keepalive - 协议不可用?
- 16. mqtt协议vs webRTC
- 17. TCP/IP协议栈:简单协议和IP
- 18. iOS上的VoIP支持哪些协议?
- 19. gson vs协议缓冲区
- 20. WCF支持SMB协议?或其他协议不一定在TCP上运行?
- 21. iOS + Android HTTP协议
- 22. iOS协议问题
- 23. 寻呼协议,Telocator字母数字协议,“TAP”,通过TCP/IP?
- 24. 通过TCP协议的代理
- 25. 使用二进制协议的TCP帧
- 26. 一个简单的TCP消息协议?
- 27. 简单的Java TCP套接字协议
- 28. 挂钩到C中的TCP协议栈
- 29. 为什么基于TCP的HTTP协议?
- 30. TCP协议中的重传机制
检查http://michael.toren.net/code/tcptraceroute/。 – netcoder
请参阅http://www.inetdaemon.com/tutorials/troubleshooting/tools/traceroute/definition.shtml – banuj
作为参考代码,我使用http://www.opensource.apple.com/source/network_cmds/network_cmds-307/traceroute .tproj/traceroute.c仅在使用ICMP协议时才能提供良好的结果。 –