Presentation is loading. Please wait.

Presentation is loading. Please wait.

Non-INVITE Transaction Issues Robert Sparks dynamicsoft.

Similar presentations


Presentation on theme: "Non-INVITE Transaction Issues Robert Sparks dynamicsoft."— Presentation transcript:

1 Non-INVITE Transaction Issues Robert Sparks dynamicsoft

2 The Race Condition 64*T1 UAC UAS Timeout Request Response

3 The Race Condition UAS believes it responded in time UAC and UAS have different ideas of the result of the transaction UAS has no way to know how much its transaction has been offset from the UAC Each proxy makes the race easier to lose 64*T1 UAC UAS Timeout Request Response RESULT: UAS Non-INVITE transactions must complete immediately!

4 408 is Not Useful 64*T1 UAC UAS Timeout Request 408 Request Timeout

5 408 is Not Useful 64*T1 UAC Proxy Request 408 Proxy UAS Request 408

6 408 is Not Useful 64*T1 UAC Proxy Request 408 Proxy UAS Request 408 200 408 200

7 Non-INVITE Timeouts Doom Forking Proxies 64*T1 UAC UAS1 Request 408 Proxy UAS2 415 UAS2’s failure to respond forces both proxies to lose the race 415

8 Failure to Respond Gets You Blacklisted RFC 3263 discusses moving to next SRV on a no-response timeout (or explicit transport failure) Non-INVITE can’t use next SRV on this request – transaction is already over If failure isn’t cached (address temporarily blacklisted), next request is doomed to the same failure.

9 Non-INVITE Provisional Responses Arguments for Banning –Wasteful since transaction must complete immediately –(Early) provisionals harm recovery from lost final responses Arguments Against –No response causes blacklisting –Losing the race is the same as not responding at all Should they be banned?

10 Proposals Proposal A –Make minor changes to use of current Non-INVITE transaction Proposal B –Reform the Non-INVITE transaction to allow it to pend indefinitely

11 Proposal A 1.Disallow non-100 provisionals 2.Disallow 100 Trying before Timer E reaches T2 3.Encourage 100 Trying if no final response after Timer E reaches T2 4.Disallow 408 to non-INVITE requests 5.Absorb late non-INVITE responses

12 Proposal A 1.Disallow non-100 provisionals 2.Disallow 100 Trying before Timer E reaches T2 3.Encourage 100 Trying if no final response after Timer E reaches T2 Prevents blacklisting Doesn’t harm lost final response recovery Doesn’t allow reliable provisional responses

13 Proposal A 4.Disallow 408 to non-INVITE requests Currently they waste network 5.Absorb late non-INVITE responses Don’t statelessly forward after the transaction times out

14 Proposal B Allow Non-INVITEs to pend (no timer F) Allow CANCEL ACK is not needed Backwards safe

15 Contrast Proposal A –Removes waste from the network –Improves recovery from a failed node –UAS NI transactions still have to complete immediately or risk losing the race –Does not address proxy doom Proposal B –408s become useful again –Relieves proxies from timeout doom –Still need to address harmful provisionals for UDP Either deprecate UDP or take Proposal A 1-3


Download ppt "Non-INVITE Transaction Issues Robert Sparks dynamicsoft."

Similar presentations


Ads by Google