参考:

https://download.csdn.net/download/qq_31567335/10213200

ping和traceroute都是ICMP协议的具体应用,ping命令在windows和linux上都可以使用。traceroute在windows上对应的命令是tracert, linux上如果没有安装需要使用“sudo apt-get install traceroute”命令进行安装。

ping报文格式:

tcp/ip学习笔记--第7章ping、8章traceroute

traceroute的工作原理就是通过从1开始增加TTL的值,当收到的包的TTL的值为1或0的时候,路由器会扔掉这个包并返回一个超时错误的ICMP报文,这个包的源ip会写这个路由器本身的,这样就可以探测路由过程中的每个路由器。同时发送一个目的端口非常大,一般来说程序不可能正在使用的端口,从而会收到一个端口不可达报文,从而得知到达了目的地。

traceroute报文格式:

tcp/ip学习笔记--第7章ping、8章traceroute

发送原始ip数据报中数据的前8个字节是为了从UDP头上读出源端口,从而得出是哪个程序的包。


有一篇用c++实现ping程序的文章比较有趣。贴下链接:

http://www.cnblogs.com/ranjiewen/p/5704627.html

相关文章:

  • 2021-12-09
  • 2021-07-03
  • 2021-10-28
  • 2021-09-30
  • 2021-09-30
  • 2022-01-28
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-28
  • 2022-01-07
  • 2022-01-15
  • 2021-12-23
  • 2022-12-23
  • 2021-12-20
  • 2022-12-23
相关资源
相似解决方案