Re: IP source routing questions
Tue, 7 Oct 86 10:58:23 edt

> host A gate B gate C host D
> +------+ +------+ +------+ +------+
> | | | | | | | |
> | A1|-------->|B1 B2|-------->|C2 C3|-------->|D3 |
> | | net 1 | | net 2 | | net 3 | |
> +------+ +------+ +------+ +------+
>where A1, B1, B2, etc. are IP addresses. I think that the upper layer
>protocol in host A should pass the following IP header values to the
>IP layer:
> source:A1 destination:B1 route:B1,C2,D3 offset:4

I know how you feel about the source routing spec [I had to implement
it for our NETBLT IP protocol -- a bit of a headache...].

Indeed, the offset at start is 4, however the route is not quite as
you specify it. The source host is A1 and the destination host B1;
the initial route is C2,D3.

on host A: source:A1 destination:B1 route:C2,D3 offset:4

at gate B: source:A1 destination:C2 route:B2,D3 offset:8

at gate C: source:A1 destination:D3 route:B2,C3 offset:12

The source host's IP address never changes; the only addresses that
change are the intermediate addresses and the destination address.

The idea behind replacing the source route addresses with the recorded
route addresses is that the IP packet doesn't change size when it
passes through a gateway. It also preovides the destination host with
an (albeit reversed) route back to the source host. The offset pointer
tells each gateway where to insert its recorded route address. When
the packet arrives, the destination host flips the route around,
removes the first hop on the route and makes it the destination, and
adds the final destination host as the last hop on the route. It also
resets the offset value to 4.

Host D3 goes through the following machinations before sending a
packet back to A1:

source route flipped, offset set to 4:

             source:D3 destination:<NULL> route:C3,B2 offset:4

first hop removed and made destination:

             source:D3 destination:C3 route:B2 offset:4

final destination added to route:

             source:D3 destination:C3 route:B2,A1 offset:4

This is the packet that is sent out.

Hope this was of some help (and that I got it right :-)



MIT Laboratory for Computer Science
Distributed Systems Group


"...the MGA 1600 Mk-II: Precision sports motoring in the MG racing

This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:36:58 GMT