Ping程序在TCP/IP中的应用

我们称发送回显请求的ping程序为客户,而称被ping的主机为服务器 。大多数的TCP/IP实现都在内核中直接支持Ping服务器—这种服务器不是一个用户进程(在第6章中描述的两种ICMP查询服务,地址掩码和时间戳请求,也都是直接在内核中进行处理的) 。
ICMP回显请求和回显应答报文如图7-1所示 。
图7-1 ICMP回显请求和回显应答报文格式【Ping程序在TCP/IP中的应用】 对于其他类型的I C M P查询报文,服务器必须响应标识符和序列号字段 。另外,客户发送的选项数据必须回显,假设客户对这些信息都会感爱好 。
U n i x系统在实现p i n g程序时是把I C M P报文中的标识符字段置成发送进程的I D号 。这样即使在同一台主机上同时运行了多个p i n g程序实例,p i n g程序也可以识别出返回的信息 。
序列号从0开始,每发送一次新的回显请求就加1 。p i n g程序打印出返回的每个分组的序列号,答应我们查看是否有分组丢失、失序或重复 。I P是一种最好的数据报传递服务,因此这三个条件都有可能发生 。
旧版本的p i n g程序曾经以这种模式运行,即每秒发送一个回显请求,并打印出返回的每个回显应答 。但是,新版本的实现需要加上-s选项才能以这种模式运行 。默认情况下,新版本的p i n g程序只发送一个回显请求 。假如收到回显应答,则输出“host is alive ”;否则,在2 0秒内没有收到应答就输出“no answer(没有回答)” 。

    推荐阅读