![]() |
![]() ![]() What are spirals? Why does a proxy care? |
Sprials are defined in bis-03. They are requests that loop back to the same
proxy, but for which the request URI has changed. Classic example: joe@example.com calls bob@bigcompany.com. Goes to the bigcompany.com proxy. It proxies it to bob@marketing.bigcompany.com. The marketing.bigcompany.com proxy invokes a CPL. The CPL has bob forwarding all his calls to jane@bigcompany.com. This request is then proxied to the bigcompany.com proxy. Now, this is a "loop", in the sense that the request has hit the same server, but its a valid one. Its valid because the request URI the second time around (sip:jane@bigcompany.com) is not the same as the first time around (sip:bob@bigcompany.com). So, the proxy should accept this and process it. This case is called a "spiral". Its called that since you can think of a proxy network in two dimensions; one dimension is the set of elements, and the other is the r-uri. The request returns to the same point in the first axis, but a different point in the second. Much like a spiral in 3D space, which returns to the same point in the X,Y axis, but a different one in the Z.
Now, how does the proxy know this was a spiral, and not a loop? Using the
branch-ID. The branch-ID is supposed to contain a hash of the R-URI. So,
when the request arrives again at the proxy, it finds its previous Via entry
(because of the host name), and it matches. THen, it computes the hash of
the R-URI in the incoming request, and compares it to the hash in the branch
ID. If they are not the same, its a spiral. If they're the same, its a loop. | |
[Append to This Answer] | |
jdrosen@dynamicsoft.com | |
2001-Jun-12 1:23pm |
Previous: |
![]() |
Next: |
![]() |
|