我試圖在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協議時才能提供良好的結果。 –