Unformatted text preview: ll look at the Traceroute tool for determining
the route followed by a datagram.) Despite these shortcomings, the record route option works
and provides an opportunity to look in detail at the handling of IP options. Figure 7.3 shows the
general format of the RR option in the IP datagram. Figure 7.3 General format of record route option in IP header.
Code is a I-byte field specifying the type of IP option. For the RR option its value is 7. Len is
the total number of bytes of the RR option, which in this case is 39. (Although it's possible to
specify an RR option with less than the maximum size, ping always provides a 39-byte option
field, to record up to nine IP addresses. Given the limited room in the IP header for options, it
doesn't make sense to specify a size less than the maximum.)
Ptr is called the pointer field. It is a 1-based index into the 39-byte option of where to store the
next IP address. Its minimum value is 4, which is the pointer to the first IP address. As each IP
address is recorded into the list, the value of ptr becomes 8, 12, 16, up to 36. After the ninth
address is recorded ptr becomes 40, indicating the list is full.
When a router (which by definition is multihomed) records its IP address in the list, which IP
address is recorded? It could be the address of the incoming interface or the outgoing interface.
RFC 791 [Postel 1981a] specifies that the router records the outgoing IP address. We'll see that
when the originating host (the host running ping) receives the ICMP echo reply with the RR
option enabled, it also records its incoming IP address in the list.
Let's run an example of the RR option with the ping program. We'll run ping on the host svr4
to the host slip. One intermediate router (bsdi) will handle the datagram. The following
output is from svr4:
svr4 % ping -R slip
PING slip (220.127.116.11): 56 data bytes
64 bytes from 18.104.22.168: icmp_seq=0 ttl=254 time=280 ms
RR: bsdi (22.214.171.124)
View Full Document
- Spring '12