nmicmpd(8)

NAME
nmicmpd - The network management ICMP daemon.

SYNOPSIS
nmicmpd

DESCRIPTION
The nmicmpd daemon allows a user processes to send ICMP messages (RFC 792, RFC 1122) to arbitrary hosts on the Internet. The daemon reads requests from the standard input and writes the results back to standard output. The format of these messages is described below. The daemon processes requests interleaved which allows to send ICMP messages to a large number of hosts efficiently. Parameters like the minimum delay between ICMP messages or the maximum number of ICMP messages on the wire can be used to control the network load created by this daemon. The nmicmpd daemon is usually used by the Tnm(n) Tcl extension which starts the daemon automatically when needed. However, you may also choose to run this daemon under the control of inetd(8). This allows remote sites to send ICMP messages from your machine.

PROTOCOL
The protocol used to access the nmicmpd is a simple request/response protocol. Note that requests are not necessarily processed in the order they are received by the nmicmpd. The request message format is as follows:
 0 7 8 15 16 23 24 32 +--------+--------+--------+--------+ | version| type | status | flags | +--------+--------+--------+--------+ | transaction identifier | +--------+--------+--------+--------+ | IPv4 address of the ICMP target | +--------+--------+--------+--------+ | ttl | timeout| retries| delay | +--------+--------+--------+--------+ | size | window | +--------+--------+--------+--------+ The response message format uses the same header. The response value is encoded in the IPv4 address field and the value field. Note that the meaning of the value field depends on the type of the ICMP request/response.
 0 7 8 15 16 23 24 32 +--------+--------+--------+--------+ | version| type | status | unused | +--------+--------+--------+--------+ | transaction identifier | +--------+--------+--------+--------+ | IPv4 address of responding host | +--------+--------+--------+--------+ | value | +--------+--------+--------+--------+ The value of the version field is 0x00. The type field indicates the requested ICMP operation. The values defined for this initial version are:

0x01	ICMP echo request

0x02	ICMP mask request

0x03	ICMP timestamp request

0x04	ICMP trace request
The status field indicates that return status of the requested operation. This field is zero for all request messages. Response messages may use the following values to indicate if there have been errors while processing this request.

0x00	NOERROR

0x01	TIMEOUT

0x02	GENERROR
The flags field is used to signal special conditions. The only defined bit is the FINALHOP bit (0x01) which may be set in responses to a ICMP trace request message. It indicates that a trace request reached the destination host. The transaction identifier is used to identify a request and is returned unchanged in the response packet. The IPv4 address in a request message defines the address of the target host. The IPv4 address in the response message indicates the IP address of the host which actually answered the request. The ttl value is used by ICMP trace requests to set the IP TTL option field. The timeout value is given in seconds while the delay value is given in milliseconds. The retries value defines the number of retries to perform the requested ICMP operation. A value of 0 indicates that no retries are made. The size parameter specifies the size of the ICMP packet. Note that the ICMP server might choose a different size if required by the ICMP protocol. The window parameter defines how many ICMP packets may be send in parallel to limit the number of ICMP packets on the wire.

SEE ALSO
scotty(1), tkined(1), Tnm(n)

AUTHORS
Erik Schoenfelder <schoenfr@gaertner.de>
Juergen Schoenwaelder <schoenw@ibr.cs.tu-bs.de>