Subject: [Sip] RFC 791

From: "Palavesan V C. Arumugam" <[email-masked]>
Date: Thu, 28 Jul 2005 14:44:29 +0530

HI sir
 
I am new to IP networks I want some clarification in RFC 791

Page 18 and 19
"Loose Source and Record Route"
 
The paragraph in page 19 which states
 
"If the address in destination address field has been reached and
the pointer is not greater than the length, the next address in
the source route replaces the address in the destination address
field, and the recorded route address replaces the source
address just used, and pointer is increased by four"
 
I am not getting cleared with the concept of Source route and record
route what does the above statement means Can someone give an insight
into it with an example
 
Thanks and Regards
Palavesam

_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip

---

From: Dean Willis <[email-masked]>
Date: Thu, 28 Jul 2005 12:12:44 -0500

> route what does the above statement means Can someone give an insight 

Well, either you're on the wrong list, or you're looking at the wrong 
RFC. While RFC 791 is conceptually similar to SIP routing, it's really 
about IP routing. That's at an entirely different ISO layer.

Classically, there is two ways to do route discovery ("search" and 
"route knowledge"), and two different ways to do additional routing 
after that discovery has completed ("source routing" and 'route 
knowledge").

Consider a sequence:

           -----E
           |
U1---A----B----C----D----U2

where U1 wants to send a packet to U2.

U1 doesn't know anything about the network except that A exists and is 
a router, so U1 sends the packet to A.

A looks at the address of the destination, and either 1) asks its 
neighbor B, who asks E and C, and C asks D, who knows (this is 
"search"), or 2) calculates from its knowledge of the routing fabric 
that B is closer to U2 than is A, so S sends the packet to B, who uses 
similar logic to forward along the chain to U2.

Now, for routing subsequent transactions. Basic IP routing just 
continues to use knowledge in the router for forwarding future packets. 
It can do this because the routers are stateless with respect to the 
dialog between U1 and U2 -- all the routers do is forward packets, 
using rules and knowledge of the network topology. In the absence of 
"record routing"(more below), stateless SIP proxies do the exact same 
thing, but at the SIP layer ratehr than the IP layer.

Some protocols, like Token-Ring and SIP, report back the sequence of 
routers to U1, so that when U1 sends a subsequent request, that request 
contains an explicit list of nodes to visit (in this case, 
"A,B,C,D,U2").

SIP extends this a little bit by making it easy for nodes to "drop out" 
of subsequent requests. In fact, "dropping out" is the default -- 
unless a node adds itself to the Record-Route list, it will get dropped 
out.

So, let's say we're using SIP and only C record routes in the above. 
This leaves UA knowing "C,U2" and subsequent requests in the same 
dialog do not visit A, B, E, or D. They just go from UA to C to U2.

So, on to the text you're asking about -- the "length" bit is how that 
particular protocol tracks its route list. In SIP, we generally use a 
grammatic mechanism -- the route-set is just an ordered list of URIs.

So in RFC 3261 "loose source routing", a proxy receiving a request 
looks at the first Route entry. If the URI of that
entry belongs to the proxy, the proxy pops off the entry and forwards 
the request on towards the next entry. If the URI does NOT belong to 
the proxy, it forwards the request with the route unmodified, unless it 
has reason not to (local policy). There are some subtleties that apply 
to the unfortunately not-very-clever source routing mechanism of RFC 
2543, which we still support for backward-compatibility reasons.

--
Dean