- Ping程序
- ping程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答;
- 文献[Stevens 1990]的第11章提供了P i n g程序的源代码;
- ICMP回显请求和回显应答报文如下入所示:
- Traceroute程序
- traceroute开始时发送一个TTL字段为1的UDP数据报(但它选择一个不可能的值作为UDP端口号(大于30000),使目的主机的任何一个应用程序都不可能使用该端口。因此,当该数据报到达时,将使目的主机的UDP模块产生一份“端口不可达”的ICMP报文;这样,traceroute程序所要做的就是区分接收到的ICMP报文是超时还是端口不可达,以判断什么时候结束),然后将TTL字段每次加1,以确定路径中的每个路由器;每个路由器在丢弃UDP数据报时都返回一个ICMP超时报文2,而最终目的主机则产生一个ICMP端口不可达的报文。