[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Sip] RFC 791
On Jul 28, 2005, at 4:14 AM, Palavesan V C. Arumugam wrote:
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
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
_______________________________________________
Sip mailing list https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors at cs.columbia.edu for questions on current sip
Use sipping at ietf.org for new developments on the application of sip