[Nsi-wg] Message Delivery Layer

Jerry Sobieski jerry at nordu.net
Wed Dec 12 19:22:46 EST 2012


I think we need the MDL/MTL layer - it does things the traditional 
transport protocol layers do not.
Fundamentally, it notifies the NSI layer that a message was unable to be 
sent within a specified time.  That Timer needs to be specified by 
NSI...i'm not sure you can even specify such a timeout for the other 
transport protocols.  And if that send timer expires, the sending NSI 
layer needs to recover somehow.  The timeout may be different for 
different messages, and the recovery action will very likely be 
different depending on the message that failed to send. So, if a 
response timer expires that says the remote NSA did not respond in a 
reasonable amount of time, the local NSA's first question should be: Did 
the remote NSA even get the message?  Are we sure?  and when?  If the 
message was not sent and acknowledged, then the remote NSA does not know 
about it so  the local NSA can recover unilaterally.  If the message 
*was* sent and acknowledged, then the remote NSA is processing it 
somehow and the local NSA needs to take that into consideration in 
recovering.   How does web services deal with this?

On a connection by connection basis, messages are processed serially.  
Thus messages must be queued if a prior message has not been 
processed.   Thus, a crash could occur after receipt but before 
processing losing the queued message.   Thus the sending NSA thinks a 
messages was being processed and the remote NSA has lost it over the crash.
A custom MDL could make sure such messages are written to a persistent 
store before achnowledging the receipt of the message.

At the very least - I think we need to define clearly how we expect/want 
the message delivery process to function in order that the NSI protocols 
can be deterministic about the distributed state of a connection.


If there are existing layers that can do this, perhaps we can use just 
existing layers.  I know there are packages out there that have explicit 
MDLs - some I think are even defined as web services themselves.  So the 
issues is not unique to this NSI effort - many distributed WS based 
systems have had similar problems to address. Perhaps these is exsiting 
library out there to do this..?

But we need to define what we think we need first, then decide if the 
MDL is something new or something that already exists.

My thoughts...
Jerry





On 12/12/12 5:55 AM, Jeroen van der Ham wrote:
> Hi,
>
> On 12 Dec 2012, at 11:34, Inder Monga <imonga at es.net> wrote:
>
>> Jeroen,
>>
>> What solution are you proposing - it is not clear?
> I'm proposing to simplify things, to not introduce another layer, and simply describe that the NSI expects the NSA to make an effort in delivering a message. It should use the reliable MTL (which we've defined to be SOAP). If that fails, then it is up to the NSAs discretion to fail directly, or to make an extra effort and try again. Ultimately, it will either fail or it will succeed.
>
> To me, it seems like a simple statement that can be added to the document. For example where you describe when you go from a state to the failed state.
>
> Jeroen.
> _______________________________________________
> nsi-wg mailing list
> nsi-wg at ogf.org
> https://www.ogf.org/mailman/listinfo/nsi-wg



More information about the nsi-wg mailing list