基于软件无线电的Ping程序原理与应用探究
7.1 概述
“Ping”一词源于声纳定位技术,其程序由Mike Muuss开发,检测目标主机连通性。Ping程序通过向目标主机发送ICMP回显请求报文,并监听ICMP回显应答报文来实现这一功能 (图6-3展示了所有ICMP报文类型)。一般情况下,如果无法ping通目标主机,则无法通过Telnet或FTP等服务与其建立连接。反之,如果无法通过Telnet连接目标主机,则可借助Ping程序定位问题根源。
此外,Ping程序还能测量网络延迟,即数据包从发送到接收的往返时间 (RTT),从而反映目标主机与本地主机的“距离”。本章将深入探讨如何利用Ping程序作为诊断工具分析ICMP协议,并借此探究IP记录路由和时间戳选项。读者可参阅文献[Stevens 1990]第11章获取Ping程序源码。
需要指出的是,早期的网络环境下,如果无法ping通目标主机,则基本可以断定无法通过Telnet或FTP与其建立连接。但随着互联网安全意识的提升,路由器和防火墙等安全设备的普及,这一断言不再绝对成立。
当前,主机的可达性不仅取决于IP层的连通性,还与所使用的协议和端口号密切相关。例如,Ping程序测试结果可能显示目标主机不可达,但我们仍然可以通过Telnet远程登录其25号端口 (邮件服务器)。
7.2 Ping程序解析
在Ping程序中,发送回显请求的一方称为客户端,而接收请求并作出响应的一方称为服务器。大多数TCP/IP实现都在内核中直接支持Ping服务器,而非将其作为一个独立的用户进程 (类似地,第6章中介绍的地址掩码和时间戳请求等ICMP查询服务也在内核中直接处理)。
图7-1展示了ICMP回显请求和回显应答报文的格式。与其他类型的ICMP查询报文类似,服务器必须对标识符和序列号字段进行响应。此外,客户端发送的选项数据也必须原样返回,因为这些信息对客户端可能至关重要。
(接下来的内容请继续提供,我将按照相同的格式继续为您修改)