Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site ucbvax.BERKELEY.EDU Path: utzoo!decvax!ucbvax!jhereg.lcs.mit.edu!markl From: markl@jhereg.lcs.mit.edu Newsgroups: mod.protocols.tcp-ip Subject: Re: IP source routing questions Message-ID: <8610071458.AA09007@JHEREG.LCS.MIT.EDU> Date: Tue, 7-Oct-86 10:58:23 EDT Article-I.D.: JHEREG.8610071458.AA09007 Posted: Tue Oct 7 10:58:23 1986 Date-Received: Wed, 8-Oct-86 18:01:27 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 73 Approved: tcp-ip@sri-nic.arpa > > 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: 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 :-) MarkL Internet: markl@jhereg.lcs.mit.edu MIT Laboratory for Computer Science Distributed Systems Group ---------- "...the MGA 1600 Mk-II: Precision sports motoring in the MG racing tradition..."