ICMP(点对点)
被主机和路由器用来彼此沟通网络层的信息。ICMP最典型的用途是差错报告。例如,在某个位置,IP路由器不能找到一条通往HTTP请求中所指定的主机路径,该路由器就会向你的主机生成并发出一个ICMP报文以指示错误。
ICMP通常被认为是IP的一部分。但从体系结构上它讲位于IP之上,因为ICMP报文是承载在IP分组中的。
ping
ping的运作原理是向目标主机传出一个ICMP 回显请求数据包,并等待接收 回显应答 数据包。程序会按时间和成功响应的次数估算丢失数据包率(丢包率)和数据包往返时间。
tracerout/tracert
- Traceroute程序发送n个具有一个不可达udp端口号的udp报文段,每个TTL数据包的递增,并为每个数据包开启定时器。
- 当TTL减为0时,路由器会丢弃这个数据包并发给该主机一个ICMP包,里面带有路由器名字和ip。源主机得到这个ICMP时可计算往返时延。
- Traceroute如何知道n是多少?要发送多少个udp包呢?当到达目的主机时,目的主机发现这是一个不可达端口,就返回另一个标识着端口不可达类型的icmp报文。源主机收到这个报文后便不再发送探测的udp报文。