ping、traceroute原理
2024-10-18 18:14:21
说明:忘记从哪里拉的博文了,感谢!
ping
用类型码为0的ICMP发请 求,受到请求的主机则用类型码为8的ICMP回应。
ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。
tracert
收到目的主机的IP后,首先给目的主机发送一个TTL=1的UDP数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据报文。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。从而避开了ip头只能记录有限路由IP的问题。
1)如何判断UDP包到达主机
TCP和UDP协议有一个端口号定义,而普通的网络程序只监控少数的几个号码较 小的端口,比如说80,比如说23,等等。而traceroute发送的是端口号>30000(真变态)的UDP报,所以到达目的主机的时候,目的 主机只能发送一个端口不可达的ICMP数据报给主机。主机接到这个报告以后就知道,主机到了,所以,说Traceroute是一个骗子一点也不为过。
以上.
最新文章
- [BZOJ4199][NOI2015]品酒大会
- 保护眼睛,把常用软件的背景设置成Dark
- 一口气学会Linq
- wine install 32bit netframewok
- 【Python之路Day12】网络篇之Python操作MySQL
- linux下用core和gdb查询出现";段错误";的地方【转】
- IDEA -14 注册码生成工具
- CSS 之 清除 float 常用的方法
- Spreadsheets
- c语言,结构体里面的函数
- 记录一下从懵懂到理解RESTful的过程
- DevOps/TestOps概念
- 解构领域驱动设计(一):为什么DDD能够解决软件复杂性
- [No0000154]详解为什么32位系统只能用4G内存.
- openstack(Pike 版)集群部署(二)--- Keystone 部署
- python simple factory mode example
- 《Spring2之站立会议1》
- js处理url
- 实例解析Docker数据卷+数据卷容器+flocker数据共享+DockerHub操作
- mac下面安装多个JDK