The contents of this legacy page are no longer maintained nor supported, and are made available only for historical purposes.


Skitter Output Packets


skitter will send two types of outbound packets: those with record-route and those without. In both cases, they will be ICMP echo requests. In the payload, we'll reserve 12 bytes at the start for kernel timestamping (FreeBSD). The next 8 bytes will be used in the same manner as ping: they'll hold a timeval representing the time the packet was sent, filled with a gettimeofday() call from user space. The next 4 bytes will hold the destination address. This is necessary because in the case of receiving an ICMP echo reply (where none of the original request packet will be present), the source address of the echo reply need not be the destination address of the echo request. For example, a box may transmit an echo reply via an interface that is different than the interface to which the echo request was sent, and may use the IP address of the transmitting interface as the source address in the echo reply.

NOTE: wording here is atrocious, fix.


Echo Request with IP Record Route

Below is a picture of the ICMP echo request to be sent by skitter with the IP record-route option. The only fields that we will fill from application space:
  • user transmit timeval in the payload
  • destination IP address in the payload
  • record-route will be initialized
  • hdr len will be set when we enable the IP record-route option
  • all of the ICMP header fields (type, code, checksum, identifier and sequence number)


Echo Request with Incrementing TTL

Below is a picture of the ICMP echo request to be sent by skitter when not using the IP record-route option. The fields we'll fill from application space:
  • user transmit timeval in the payload
  • destination IP address in the payload
  • ttl in the header (via setsockopt(fd,IPPROTO_IP,IP_TTL,...))
  • all of the ICMP header fields (type, code, checksum, identifier and sequence number)


Document:
Last Update:
Author: dwm@caida.org

Related Objects

See https://catalog.caida.org/software/skitter/ to explore related objects to this document in the CAIDA Resource Catalog.